https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122491

--- Comment #4 from anlauf at gcc dot gnu.org ---
I see invalid read/write with valgrind:

pr103508.f90:19:9:

   19 |       end ! { dg-error "END BLOCK statement expected" }
      |         1
Error: END BLOCK statement expected at (1)
pr103508.f90:20:6:

   20 |    end    ! { dg-error "END BLOCK statement expected" }
      |      1
Error: END BLOCK statement expected at (1)
==12540== Invalid read of size 8
==12540==    at 0xD6F460: next_statement() (parse.cc:1862)
==12540==    by 0xD7B2FD: parse_executable(gfc_statement) (parse.cc:6847)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD76F79: parse_block_construct() (parse.cc:5279)
==12540==    by 0xD7B107: parse_executable(gfc_statement) (parse.cc:6728)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD7CDEB: gfc_parse_file() (parse.cc:7673)
==12540==    by 0xDF6AAF: gfc_be_parse_file() (f95-lang.cc:247)
==12540==    by 0x170469D: compile_file() (toplev.cc:455)
==12540==    by 0x1707BFD: do_compile() (toplev.cc:2224)
==12540==    by 0x1708064: toplev::main(int, char**) (toplev.cc:2389)
==12540==    by 0xC8B91A: main (main.cc:39)
==12540==  Address 0x5c8b130 is 2,064 bytes inside a block of size 2,800 free'd
==12540==    at 0x499294B: free (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12540==    by 0xDE36D9: gfc_free_namespace(gfc_namespace*&) (symbol.cc:4306)
==12540==    by 0xCCF1D1: gfc_match_end(gfc_statement*) (decl.cc:9219)
==12540==    by 0xD67A7F: decode_statement() (parse.cc:552)
==12540==    by 0xD6EF67: next_free() (parse.cc:1652)
==12540==    by 0xD6F4FC: next_statement() (parse.cc:1885)
==12540==    by 0xD7B2FD: parse_executable(gfc_statement) (parse.cc:6847)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD76F79: parse_block_construct() (parse.cc:5279)
==12540==    by 0xD7B107: parse_executable(gfc_statement) (parse.cc:6728)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD76F79: parse_block_construct() (parse.cc:5279)
==12540==  Block was alloc'd at
==12540==    at 0x4996C31: calloc (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12540==    by 0x31722D4: xcalloc (xmalloc.c:164)
==12540==    by 0xDE1A9F: gfc_get_namespace(gfc_namespace*, int)
(symbol.cc:3001)
==12540==    by 0xD76DAE: gfc_build_block_ns(gfc_namespace*) (parse.cc:5227)
==12540==    by 0xD76F0B: parse_block_construct() (parse.cc:5268)
==12540==    by 0xD7B107: parse_executable(gfc_statement) (parse.cc:6728)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD7CDEB: gfc_parse_file() (parse.cc:7673)
==12540==    by 0xDF6AAF: gfc_be_parse_file() (f95-lang.cc:247)
==12540==    by 0x170469D: compile_file() (toplev.cc:455)
==12540==    by 0x1707BFD: do_compile() (toplev.cc:2224)
==12540==    by 0x1708064: toplev::main(int, char**) (toplev.cc:2389)
==12540== 
==12540== Invalid write of size 8
==12540==    at 0xD6F467: next_statement() (parse.cc:1862)
==12540==    by 0xD7B2FD: parse_executable(gfc_statement) (parse.cc:6847)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD76F79: parse_block_construct() (parse.cc:5279)
==12540==    by 0xD7B107: parse_executable(gfc_statement) (parse.cc:6728)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD7CDEB: gfc_parse_file() (parse.cc:7673)
==12540==    by 0xDF6AAF: gfc_be_parse_file() (f95-lang.cc:247)
==12540==    by 0x170469D: compile_file() (toplev.cc:455)
==12540==    by 0x1707BFD: do_compile() (toplev.cc:2224)
==12540==    by 0x1708064: toplev::main(int, char**) (toplev.cc:2389)
==12540==    by 0xC8B91A: main (main.cc:39)
==12540==  Address 0x5c8b138 is 2,072 bytes inside a block of size 2,800 free'd
==12540==    at 0x499294B: free (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12540==    by 0xDE36D9: gfc_free_namespace(gfc_namespace*&) (symbol.cc:4306)
==12540==    by 0xCCF1D1: gfc_match_end(gfc_statement*) (decl.cc:9219)
==12540==    by 0xD67A7F: decode_statement() (parse.cc:552)
==12540==    by 0xD6EF67: next_free() (parse.cc:1652)
==12540==    by 0xD6F4FC: next_statement() (parse.cc:1885)
==12540==    by 0xD7B2FD: parse_executable(gfc_statement) (parse.cc:6847)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD76F79: parse_block_construct() (parse.cc:5279)
==12540==    by 0xD7B107: parse_executable(gfc_statement) (parse.cc:6728)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD76F79: parse_block_construct() (parse.cc:5279)
==12540==  Block was alloc'd at
==12540==    at 0x4996C31: calloc (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12540==    by 0x31722D4: xcalloc (xmalloc.c:164)
==12540==    by 0xDE1A9F: gfc_get_namespace(gfc_namespace*, int)
(symbol.cc:3001)
==12540==    by 0xD76DAE: gfc_build_block_ns(gfc_namespace*) (parse.cc:5227)
==12540==    by 0xD76F0B: parse_block_construct() (parse.cc:5268)
==12540==    by 0xD7B107: parse_executable(gfc_statement) (parse.cc:6728)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD7CDEB: gfc_parse_file() (parse.cc:7673)
==12540==    by 0xDF6AAF: gfc_be_parse_file() (f95-lang.cc:247)
==12540==    by 0x170469D: compile_file() (toplev.cc:455)
==12540==    by 0x1707BFD: do_compile() (toplev.cc:2224)
==12540==    by 0x1708064: toplev::main(int, char**) (toplev.cc:2389)
==12540== 
==12540== Invalid read of size 8
==12540==    at 0xD6F47C: next_statement() (parse.cc:1863)
==12540==    by 0xD7B2FD: parse_executable(gfc_statement) (parse.cc:6847)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD76F79: parse_block_construct() (parse.cc:5279)
==12540==    by 0xD7B107: parse_executable(gfc_statement) (parse.cc:6728)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD7CDEB: gfc_parse_file() (parse.cc:7673)
==12540==    by 0xDF6AAF: gfc_be_parse_file() (f95-lang.cc:247)
==12540==    by 0x170469D: compile_file() (toplev.cc:455)
==12540==    by 0x1707BFD: do_compile() (toplev.cc:2224)
==12540==    by 0x1708064: toplev::main(int, char**) (toplev.cc:2389)
==12540==    by 0xC8B91A: main (main.cc:39)
==12540==  Address 0x5c8b380 is 2,656 bytes inside a block of size 2,800 free'd
==12540==    at 0x499294B: free (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12540==    by 0xDE36D9: gfc_free_namespace(gfc_namespace*&) (symbol.cc:4306)
==12540==    by 0xCCF1D1: gfc_match_end(gfc_statement*) (decl.cc:9219)
==12540==    by 0xD67A7F: decode_statement() (parse.cc:552)
==12540==    by 0xD6EF67: next_free() (parse.cc:1652)
==12540==    by 0xD6F4FC: next_statement() (parse.cc:1885)
==12540==    by 0xD7B2FD: parse_executable(gfc_statement) (parse.cc:6847)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD76F79: parse_block_construct() (parse.cc:5279)
==12540==    by 0xD7B107: parse_executable(gfc_statement) (parse.cc:6728)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD76F79: parse_block_construct() (parse.cc:5279)
==12540==  Block was alloc'd at
==12540==    at 0x4996C31: calloc (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12540==    by 0x31722D4: xcalloc (xmalloc.c:164)
==12540==    by 0xDE1A9F: gfc_get_namespace(gfc_namespace*, int)
(symbol.cc:3001)
==12540==    by 0xD76DAE: gfc_build_block_ns(gfc_namespace*) (parse.cc:5227)
==12540==    by 0xD76F0B: parse_block_construct() (parse.cc:5268)
==12540==    by 0xD7B107: parse_executable(gfc_statement) (parse.cc:6728)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD7CDEB: gfc_parse_file() (parse.cc:7673)
==12540==    by 0xDF6AAF: gfc_be_parse_file() (f95-lang.cc:247)
==12540==    by 0x170469D: compile_file() (toplev.cc:455)
==12540==    by 0x1707BFD: do_compile() (toplev.cc:2224)
==12540==    by 0x1708064: toplev::main(int, char**) (toplev.cc:2389)
==12540== 
==12540== Invalid write of size 8
==12540==    at 0xD6F483: next_statement() (parse.cc:1863)
==12540==    by 0xD7B2FD: parse_executable(gfc_statement) (parse.cc:6847)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD76F79: parse_block_construct() (parse.cc:5279)
==12540==    by 0xD7B107: parse_executable(gfc_statement) (parse.cc:6728)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD7CDEB: gfc_parse_file() (parse.cc:7673)
==12540==    by 0xDF6AAF: gfc_be_parse_file() (f95-lang.cc:247)
==12540==    by 0x170469D: compile_file() (toplev.cc:455)
==12540==    by 0x1707BFD: do_compile() (toplev.cc:2224)
==12540==    by 0x1708064: toplev::main(int, char**) (toplev.cc:2389)
==12540==    by 0xC8B91A: main (main.cc:39)
==12540==  Address 0x5c8b388 is 2,664 bytes inside a block of size 2,800 free'd
==12540==    at 0x499294B: free (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12540==    by 0xDE36D9: gfc_free_namespace(gfc_namespace*&) (symbol.cc:4306)
==12540==    by 0xCCF1D1: gfc_match_end(gfc_statement*) (decl.cc:9219)
==12540==    by 0xD67A7F: decode_statement() (parse.cc:552)
==12540==    by 0xD6EF67: next_free() (parse.cc:1652)
==12540==    by 0xD6F4FC: next_statement() (parse.cc:1885)
==12540==    by 0xD7B2FD: parse_executable(gfc_statement) (parse.cc:6847)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD76F79: parse_block_construct() (parse.cc:5279)
==12540==    by 0xD7B107: parse_executable(gfc_statement) (parse.cc:6728)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD76F79: parse_block_construct() (parse.cc:5279)
==12540==  Block was alloc'd at
==12540==    at 0x4996C31: calloc (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12540==    by 0x31722D4: xcalloc (xmalloc.c:164)
==12540==    by 0xDE1A9F: gfc_get_namespace(gfc_namespace*, int)
(symbol.cc:3001)
==12540==    by 0xD76DAE: gfc_build_block_ns(gfc_namespace*) (parse.cc:5227)
==12540==    by 0xD76F0B: parse_block_construct() (parse.cc:5268)
==12540==    by 0xD7B107: parse_executable(gfc_statement) (parse.cc:6728)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD7CDEB: gfc_parse_file() (parse.cc:7673)
==12540==    by 0xDF6AAF: gfc_be_parse_file() (f95-lang.cc:247)
==12540==    by 0x170469D: compile_file() (toplev.cc:455)
==12540==    by 0x1707BFD: do_compile() (toplev.cc:2224)
==12540==    by 0x1708064: toplev::main(int, char**) (toplev.cc:2389)
==12540== 
f951: Error: Unexpected end of file in 'pr103508.f90'
==12540== Invalid write of size 8
==12540==    at 0xD73B8B: unexpected_eof() (parse.cc:3436)
==12540==    by 0xD7B0D0: parse_executable(gfc_statement) (parse.cc:6712)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD76F79: parse_block_construct() (parse.cc:5279)
==12540==    by 0xD7B107: parse_executable(gfc_statement) (parse.cc:6728)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD7CDEB: gfc_parse_file() (parse.cc:7673)
==12540==    by 0xDF6AAF: gfc_be_parse_file() (f95-lang.cc:247)
==12540==    by 0x170469D: compile_file() (toplev.cc:455)
==12540==    by 0x1707BFD: do_compile() (toplev.cc:2224)
==12540==    by 0x1708064: toplev::main(int, char**) (toplev.cc:2389)
==12540==    by 0xC8B91A: main (main.cc:39)
==12540==  Address 0x5c8b128 is 2,056 bytes inside a block of size 2,800 free'd
==12540==    at 0x499294B: free (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12540==    by 0xDE36D9: gfc_free_namespace(gfc_namespace*&) (symbol.cc:4306)
==12540==    by 0xCCF1D1: gfc_match_end(gfc_statement*) (decl.cc:9219)
==12540==    by 0xD67A7F: decode_statement() (parse.cc:552)
==12540==    by 0xD6EF67: next_free() (parse.cc:1652)
==12540==    by 0xD6F4FC: next_statement() (parse.cc:1885)
==12540==    by 0xD7B2FD: parse_executable(gfc_statement) (parse.cc:6847)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD76F79: parse_block_construct() (parse.cc:5279)
==12540==    by 0xD7B107: parse_executable(gfc_statement) (parse.cc:6728)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD76F79: parse_block_construct() (parse.cc:5279)
==12540==  Block was alloc'd at
==12540==    at 0x4996C31: calloc (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12540==    by 0x31722D4: xcalloc (xmalloc.c:164)
==12540==    by 0xDE1A9F: gfc_get_namespace(gfc_namespace*, int)
(symbol.cc:3001)
==12540==    by 0xD76DAE: gfc_build_block_ns(gfc_namespace*) (parse.cc:5227)
==12540==    by 0xD76F0B: parse_block_construct() (parse.cc:5268)
==12540==    by 0xD7B107: parse_executable(gfc_statement) (parse.cc:6728)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD7CDEB: gfc_parse_file() (parse.cc:7673)
==12540==    by 0xDF6AAF: gfc_be_parse_file() (f95-lang.cc:247)
==12540==    by 0x170469D: compile_file() (toplev.cc:455)
==12540==    by 0x1707BFD: do_compile() (toplev.cc:2224)
==12540==    by 0x1708064: toplev::main(int, char**) (toplev.cc:2389)
==12540== 
==12540== Invalid read of size 8
==12540==    at 0xDE471D: gfc_symbol_done_2() (symbol.cc:4333)
==12540==    by 0xD3AE18: gfc_done_2() (misc.cc:396)
==12540==    by 0xD73B96: unexpected_eof() (parse.cc:3437)
==12540==    by 0xD7B0D0: parse_executable(gfc_statement) (parse.cc:6712)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD76F79: parse_block_construct() (parse.cc:5279)
==12540==    by 0xD7B107: parse_executable(gfc_statement) (parse.cc:6728)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD7CDEB: gfc_parse_file() (parse.cc:7673)
==12540==    by 0xDF6AAF: gfc_be_parse_file() (f95-lang.cc:247)
==12540==    by 0x170469D: compile_file() (toplev.cc:455)
==12540==    by 0x1707BFD: do_compile() (toplev.cc:2224)
==12540==  Address 0x5c8b228 is 2,312 bytes inside a block of size 2,800 free'd
==12540==    at 0x499294B: free (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12540==    by 0xDE36D9: gfc_free_namespace(gfc_namespace*&) (symbol.cc:4306)
==12540==    by 0xCCF1D1: gfc_match_end(gfc_statement*) (decl.cc:9219)
==12540==    by 0xD67A7F: decode_statement() (parse.cc:552)
==12540==    by 0xD6EF67: next_free() (parse.cc:1652)
==12540==    by 0xD6F4FC: next_statement() (parse.cc:1885)
==12540==    by 0xD7B2FD: parse_executable(gfc_statement) (parse.cc:6847)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD76F79: parse_block_construct() (parse.cc:5279)
==12540==    by 0xD7B107: parse_executable(gfc_statement) (parse.cc:6728)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD76F79: parse_block_construct() (parse.cc:5279)
==12540==  Block was alloc'd at
==12540==    at 0x4996C31: calloc (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==12540==    by 0x31722D4: xcalloc (xmalloc.c:164)
==12540==    by 0xDE1A9F: gfc_get_namespace(gfc_namespace*, int)
(symbol.cc:3001)
==12540==    by 0xD76DAE: gfc_build_block_ns(gfc_namespace*) (parse.cc:5227)
==12540==    by 0xD76F0B: parse_block_construct() (parse.cc:5268)
==12540==    by 0xD7B107: parse_executable(gfc_statement) (parse.cc:6728)
==12540==    by 0xD7BC2F: parse_progunit(gfc_statement) (parse.cc:7136)
==12540==    by 0xD7CDEB: gfc_parse_file() (parse.cc:7673)
==12540==    by 0xDF6AAF: gfc_be_parse_file() (f95-lang.cc:247)
==12540==    by 0x170469D: compile_file() (toplev.cc:455)
==12540==    by 0x1707BFD: do_compile() (toplev.cc:2224)
==12540==    by 0x1708064: toplev::main(int, char**) (toplev.cc:2389)

Reply via email to