This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/30478] FAIL: gfortran.dg/enum_2.f90 -O (internal compiler error)
- From: "danglin at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 30 Jan 2007 23:15:24 -0000
- Subject: [Bug fortran/30478] FAIL: gfortran.dg/enum_2.f90 -O (internal compiler error)
- References: <bug-30478-276@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #3 from danglin at gcc dot gnu dot org 2007-01-30 23:15 -------
It appears that the object pointed to by last_initializer is free'd
by gfc_free_expr. This causes the change in value in
initializer->value.integer[0]._mp_d:
(gdb) p &initializer->value.integer[0]._mp_d
$16 = (mp_limb_t **) 0x400817e0
(gdb) watch *0x400817e0
Hardware watchpoint 3: *1074272224
(gdb) c
Continuing.
In file /mnt/gnu/gcc/gcc/gcc/testsuite/gfortran.dg/enum_2.f90:8
integer :: x ! { dg-error "Unexpected data declaration" }
1
Error: Unexpected data declaration statement at (1)
Hardware watchpoint 3: *1074272224
Old value = 1074134928
New value = 0
0x7af697b4 in memset () from /usr/lib/libc.2
(gdb) bt
#0 0x7af697b4 in memset () from /usr/lib/libc.2
#1 0x0004c7ec in free_expr0 (e=0x400817a8) at ../../gcc/gcc/fortran/expr.c:217
#2 0x0004c988 in gfc_free_expr (e=0x400817a8)
at ../../gcc/gcc/fortran/expr.c:230
#3 0x0008b394 in gfc_free_symbol (sym=0x40081700)
at ../../gcc/gcc/fortran/symbol.c:1859
#4 0x0008b7dc in gfc_undo_symbols () at ../../gcc/gcc/fortran/symbol.c:2175
#5 0x00070c1c in reject_statement () at ../../gcc/gcc/fortran/parse.c:1075
#6 0x00072d1c in parse_spec (st=ST_END_ENUM)
at ../../gcc/gcc/fortran/parse.c:1402
#7 0x000742d0 in parse_progunit (st=1074272216)
at ../../gcc/gcc/fortran/parse.c:2325
#8 0x00074748 in gfc_parse_file () at ../../gcc/gcc/fortran/parse.c:2621
#9 0x00095ec4 in gfc_be_parse_file (set_yydebug=1074272216)
at ../../gcc/gcc/fortran/f95-lang.c:289
#10 0x0018aa2c in toplev_main (argc=1074013248, argv=0x40042c40)
at ../../gcc/gcc/toplev.c:991
#11 0x000bf66c in main (argc=1074272216, argv=0x0) at ../../gcc/gcc/main.c:35
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30478