This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug middle-end/61141] [4.10 Regression] c-common.c:1502:1: ICE: in reset_insn_used_flags, at emit-rtl.c:2677


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

--- Comment #6 from John David Anglin <danglin at gcc dot gnu.org> ---
I added a gcc_assert in pa_output_call to detect branch sequences with
a deleted insn.  I didn't trigger.

The reason the submitted patch works is the RTL "cleanup" that deletes
insns in delay slots is being run after assembly output has been generated.
See backtrace:

Breakpoint 2, reset_all_used_flags () at ../../gcc/gcc/emit-rtl.c:2723
2723            if (INSN_P (insn))
(gdb) bt   
#0  reset_all_used_flags () at ../../gcc/gcc/emit-rtl.c:2723
#1  0x4000000000771df0 in verify_rtl_sharing ()
    at ../../gcc/gcc/emit-rtl.c:2752
#2  0x4000000000bc3b58 in execute_function_todo (fn=0x800003fffdca2d20, 
    data=0x40) at ../../gcc/gcc/passes.c:1794
#3  0x4000000000bc2090 in do_per_function (callback=0x4000000000357710, 
    data=0x40) at ../../gcc/gcc/passes.c:1504
#4  0x4000000000bc3e0c in execute_todo (flags=64)
    at ../../gcc/gcc/passes.c:1834
#5  0x4000000000bc55d8 in execute_one_pass (pass=0x800000010037b7b8)
    at ../../gcc/gcc/passes.c:2194
#6  0x4000000000bc55d8 in execute_one_pass (pass=0x800000010037b7b8)
    at ../../gcc/gcc/passes.c:2194
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb) p debug_rtx (insn)
(note:TI 238 239 302 NOTE_INSN_DELETED)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]