------- Comment #3 from rguenth at gcc dot gnu dot org 2009-06-17 12:51 ------- C frontend issue.
The gimplfier is fed (*fp)(0) with fp of type void (*) (const int) but then, after gimplifying foo we do patch fps type to void (*) (int): Hardware watchpoint 4: *$2 Old value = (tree) 0xb7d4e230 New value = (tree) 0xb7d4e310 0x080c80c6 in pop_scope () at /home/richard/src/trunk/gcc/c-decl.c:1225 1225 TREE_TYPE (b->shadowed->decl) = b->shadowed->u.type; (gdb) bt #0 0x080c80c6 in pop_scope () at /home/richard/src/trunk/gcc/c-decl.c:1225 #1 0x080c8501 in pop_file_scope () at /home/richard/src/trunk/gcc/c-decl.c:1306 #2 0x08166df6 in c_common_parse_file (set_yydebug=0) at /home/richard/src/trunk/gcc/c-opts.c:1281 #3 0x08599792 in compile_file () at /home/richard/src/trunk/gcc/toplev.c:1025 #4 0x0859b61f in do_compile () at /home/richard/src/trunk/gcc/toplev.c:2345 #5 0x0859b6f8 in toplev_main (argc=3, argv=0xbffff534) at /home/richard/src/trunk/gcc/toplev.c:2390 #6 0x0819d96a in main (argc=153092128, argv=0x0) at /home/richard/src/trunk/gcc/main.c:35 that's not going to fly. Maybe fixed with gimplification unit-at-a-time. -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|rguenth at gcc dot gnu dot |unassigned at gcc dot gnu |org |dot org Status|ASSIGNED |NEW Component|middle-end |c http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40401