------- Comment #8 from fxcoudert at gcc dot gnu dot org 2007-02-07 22:31 ------- Reduced testcase:
enum, bind (c) integer :: x enumerator blue end enum end It fails under valgrind for both i686-linux and x86_64-linux: ==5651== Invalid read of size 4 ==5651== at 0x9DBD13: __gmpz_add_ui (in /utmp/coudert/gfortran/irun/libexec/gcc/x86_64-unknown-linux-gnu/4.3.0/f951) ==5651== by 0x403EC2: gfc_enum_initializer (arith.c:2422) ==5651== by 0x4135A0: variable_decl (decl.c:1366) ==5651== by 0x413886: gfc_match_enumerator_def (decl.c:4497) ==5651== by 0x43F792: match_word (parse.c:63) ==5651== by 0x43FD59: decode_statement (parse.c:133) ==5651== by 0x4407AA: next_statement (parse.c:499) ==5651== by 0x441955: parse_spec (parse.c:1645) ==5651== by 0x442DB5: parse_progunit (parse.c:2886) ==5651== by 0x44304F: gfc_parse_file (parse.c:3224) ==5651== by 0x4613ED: gfc_be_parse_file (f95-lang.c:307) ==5651== by 0x652942: toplev_main (toplev.c:1021) ==5651== Address 0x4AA00C4 is 100 bytes inside a block of size 160 free'd ==5651== at 0x4905A18: free (vg_replace_malloc.c:233) ==5651== by 0x458644: gfc_free_symbol (symbol.c:2005) ==5651== by 0x458A1C: gfc_undo_symbols (symbol.c:2326) ==5651== by 0x43F743: reject_statement (parse.c:1323) ==5651== by 0x441950: parse_spec (parse.c:1669) ==5651== by 0x442DB5: parse_progunit (parse.c:2886) ==5651== by 0x44304F: gfc_parse_file (parse.c:3224) ==5651== by 0x4613ED: gfc_be_parse_file (f95-lang.c:307) ==5651== by 0x652942: toplev_main (toplev.c:1021) ==5651== by 0x3FF241C4BA: (below main) (in /lib64/tls/libc-2.3.4.so) Adding Tobias to the CC list, as I think he was the one who wrote the ENUMERATOR support. -- fxcoudert at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |Tobias dot Schlueter at | |physik dot uni-muenchen dot | |de Last reconfirmed|2007-02-05 22:23:02 |2007-02-07 22:31:11 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30478