https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81531
Bug ID: 81531 Summary: Multiple Invalid reads seen by valgrind on an invalid test-case Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org Target Milestone: --- $ valgrind --leak-check=yes --trace-children=yes gcc /home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/fimplicit_none_2.f90 -c ==22751== Command: /usr/lib64/gcc/x86_64-suse-linux/7/f951 /home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/fimplicit_none_2.f90 -quiet -dumpbase fimplicit_none_2.f90 -mtune=generic -march=x86-64 -auxbase fimplicit_none_2 -fintrinsic-modules-path /usr/lib64/gcc/x86_64-suse-linux/7/finclude -o /tmp/ccFBcqXQ.s ==22751== /home/marxin/Programming/gcc/gcc/testsuite/gfortran.dg/fimplicit_none_2.f90:5:34: character(*), parameter :: z(2) = [character(n) :: 'x', 'y'] ! { dg-error "Scalar INTEGER expression expected" } 1 Error: Cannot initialize parameter array at (1) with variable length elements ==22751== Invalid read of size 8 ==22751== at 0xE11DFD: gfc_resolve_expr(gfc_expr*) (in /usr/lib64/gcc/x86_64-suse-linux/7/f951) ==22751== by 0x624C31: ??? (in /usr/lib64/gcc/x86_64-suse-linux/7/f951) ==22751== by 0x617E16: ??? (in /usr/lib64/gcc/x86_64-suse-linux/7/f951) ==22751== by 0xE125C1: gfc_resolve(gfc_namespace*) (in /usr/lib64/gcc/x86_64-suse-linux/7/f951) ==22751== by 0xE08D41: gfc_parse_file() (in /usr/lib64/gcc/x86_64-suse-linux/7/f951) ==22751== by 0xE24ECF: ??? (in /usr/lib64/gcc/x86_64-suse-linux/7/f951) ==22751== by 0x137B308: ??? (in /usr/lib64/gcc/x86_64-suse-linux/7/f951) ==22751== by 0xDEA25D: toplev::main(int, char**) (in /usr/lib64/gcc/x86_64-suse-linux/7/f951) ==22751== by 0xDEBB2A: main (in /usr/lib64/gcc/x86_64-suse-linux/7/f951) ==22751== Address 0x655a7c8 is 24 bytes inside a block of size 48 free'd ==22751== at 0x4C2D2BB: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==22751== by 0xE19FB3: gfc_undo_symbols() (in /usr/lib64/gcc/x86_64-suse-linux/7/f951) ==22751== by 0xE0AB35: ??? (in /usr/lib64/gcc/x86_64-suse-linux/7/f951) ==22751== by 0xE0A402: ??? (in /usr/lib64/gcc/x86_64-suse-linux/7/f951) ==22751== by 0xE0C465: ??? (in /usr/lib64/gcc/x86_64-suse-linux/7/f951) ==22751== by 0xE0C207: ??? (in /usr/lib64/gcc/x86_64-suse-linux/7/f951) ==22751== by 0xE09C1A: gfc_parse_file() (in /usr/lib64/gcc/x86_64-suse-linux/7/f951) ==22751== by 0xE24ECF: ??? (in /usr/lib64/gcc/x86_64-suse-linux/7/f951) ==22751== by 0x137B308: ??? (in /usr/lib64/gcc/x86_64-suse-linux/7/f951) ==22751== by 0xDEA25D: toplev::main(int, char**) (in /usr/lib64/gcc/x86_64-suse-linux/7/f951) ==22751== by 0xDEBB2A: main (in /usr/lib64/gcc/x86_64-suse-linux/7/f951) ==22751== Block was alloc'd at ==22751== at 0x4C2E0A5: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==22751== by 0x13FF1F0: xcalloc (in /usr/lib64/gcc/x86_64-suse-linux/7/f951) ==22751== by 0xE1A4C5: gfc_get_ha_sym_tree(char const*, gfc_symtree**) (in /usr/lib64/gcc/x86_64-suse-linux/7/f951) ==22751== by 0xE10B02: gfc_match_rvalue(gfc_expr**) (in /usr/lib64/gcc/x86_64-suse-linux/7/f951) ==22751== by 0xDFC761: gfc_match_expr(gfc_expr**) (in /usr/lib64/gcc/x86_64-suse-linux/7/f951) ==22751== by 0x5C428D: ??? (in /usr/lib64/gcc/x86_64-suse-linux/7/f951) ==22751== by 0x5C25A2: gfc_match_char_spec(gfc_typespec*) (in /usr/lib64/gcc/x86_64-suse-linux/7/f951) ==22751== by 0x5F10E9: gfc_match_type_spec(gfc_typespec*) (in /usr/lib64/gcc/x86_64-suse-linux/7/f951) ==22751== by 0x5A9EE7: ??? (in /usr/lib64/gcc/x86_64-suse-linux/7/f951) ==22751== by 0xDFC750: gfc_match_expr(gfc_expr**) (in /usr/lib64/gcc/x86_64-suse-linux/7/f951) ==22751== by 0xDF232D: gfc_match_init_expr(gfc_expr**) (in /usr/lib64/gcc/x86_64-suse-linux/7/f951) ==22751== by 0xDEEC86: gfc_match_data_decl() (in /usr/lib64/gcc/x86_64-suse-linux/7/f951)