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


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

--- Comment #1 from John David Anglin <danglin at gcc dot gnu.org> ---
On hppa64-hp-hpux11.11, a similar error occurs.  It is easier to debug:

Breakpoint 1, reset_insn_used_flags (insn=0x800003fffdcb8630)
    at ../../gcc/gcc/emit-rtl.c:2677
2677      gcc_assert (INSN_P (insn));
(gdb) p debug_rtx(insn)
(note:TI 238 239 302 NOTE_INSN_DELETED)

In libgcc2.c.245r.dwarf2, we have:

(insn 325 220 304 (sequence [
            (call_insn:TI 236 220 86 (parallel [
                        (set (reg:TF 28 %r28)
                            (call (mem:SI (symbol_ref/v:DI ("@_U_Qfmpy") [flags
0x41]) [0  S4 A32])
                                (const_int 64 [0x40])))
                        (clobber (reg:DI 1 %r1))
                        (clobber (reg:DI 2 %r2))
                        (use (reg:DI 27 %r27))
                        (use (reg/f:DI 29 %r29 [orig:28+8 ] [28]))
                        (use (const_int 0 [0]))
                    ]) ../../../gcc/libgcc/libgcc2.c:1848 262
{*call_val_symref_64bit_post_reload}
                 (expr_list:REG_DEAD (reg:DI 27 %r27)
                    (expr_list:REG_DEAD (reg:DI 26 %r26)
                        (expr_list:REG_DEAD (reg:DI 25 %r25)
                            (expr_list:REG_DEAD (reg:DI 24 %r24)
                                (expr_list:REG_DEAD (reg:DI 23 %r23)
                                    (nil))))))
                (expr_list (use (reg:DI 23 %r23))
                    (expr_list (use (reg:DI 24 %r24))
                        (expr_list (use (reg:DI 25 %r25))
                            (expr_list (use (reg:DI 26 %r26))
                                (nil))))))
            (insn:TI 86 236 304 (set (reg:DI 24 %r24)
                    (reg:DI 6 %r6 [orig:122 x ] [122])) 121 {*pa.md:4180}
                 (nil))
        ]) ../../../gcc/libgcc/libgcc2.c:1848 -1
     (nil))
(note 304 325 278 (nil) NOTE_INSN_CALL_ARG_LOCATION)
(insn:TI 278 304 305 (set (reg:SI 5 %r5 [102])
        (lshiftrt:SI (reg:SI 3 %r3 [orig:68 n ] [68])
            (const_int 1 [0x1]))) ../../../gcc/libgcc/libgcc2.c:1844 237
{lshrsi3}
     (expr_list:REG_DEAD (reg:SI 3 %r3 [orig:68 n ] [68])
        (nil)))
(note 305 278 237 (var_location n (nil)) NOTE_INSN_VAR_LOCATION)
(insn 237 305 101 (set (reg:DI 27 %r27)
        (reg:DI 4 %r4)) ../../../gcc/libgcc/libgcc2.c:1848 121 {*pa.md:4180}
     (expr_list:REG_DEAD (reg:DI 4 %r4)
        (nil)))

In libgcc2.c.246r.final, all that is output is:

deleting insn with uid = 238.
deleting insn with uid = 86.
deleting insn with uid = 147.

Deleting insn 238 would seem to be OK as it's the last restore of the PIC
register in the function.


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