[Bug debug/48826] ICE in dwarf2out_var_location, at dwarf2out.c:22013

rmansfield at qnx dot com gcc-bugzilla@gcc.gnu.org
Thu May 5 13:22:00 GMT 2011


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

--- Comment #4 from Ryan Mansfield <rmansfield at qnx dot com> 2011-05-05 13:19:43 UTC ---
The issue with ARM/SH/S390 backends appears to be there was a literal pool
split happening in between a call insn and the NOTE_INSN_CALL_ARG_LOCATION. It
looks like on mips the issue, at least for my testcase, is the gp store in
mips_split_call is getting emitted in between the call insn and the note.

(call_insn 39 5 40 (parallel [
            (set (reg:SI 2 $2)
                (call (mem:SI (reg:SI 25 $25 [196]) [0 S4 A32])
                    (const_int 16 [0x10])))
            (clobber (reg:SI 31 $31))
            (clobber (reg:SI 28 $28))
        ]) /home/ryan/ice.i:2 575 {call_value_split}
     (nil)
    (expr_list:REG_DEP_TRUE (use (reg:SI 79 $fakec))
        (expr_list:REG_DEP_TRUE (use (reg:SI 28 $28))
            (nil))))

(insn 40 39 32 (set (reg:SI 28 $28)
        (mem/c:SI (plus:SI (reg/f:SI 29 $sp)
                (const_int 16 [0x10])) [0 S4 A32])) /home/ryan/ice.i:2 280
{*movsi_internal}
     (nil))

(note 32 40 7 (expr_list:REG_DEP_TRUE (concat:SI (reg:SI 79 $fakec)
        (reg:SI 79 $fakec))
    (expr_list:REG_DEP_TRUE (concat:SI (reg:SI 28 $28)
            (reg:SI 28 $28))
        (nil))) NOTE_INSN_CALL_ARG_LOCATION)



More information about the Gcc-bugs mailing list