After r147995,

gcc.c-torture/compile/20080903-1.c fails for -O3 -g on SH with

20080903-1.c:12: internal compiler error: in dwarf2out_begin_epilogue, at
dwarf2out.c:2689

In failing case, sched2 moves a frame related insn in prologue
after NOTE_INSN_EPILOGUE_BEG note:

(note 42 6 43 2 NOTE_INSN_EPILOGUE_BEG)

(insn:TI 43 42 35 2 20080903-1.c:12 (set (reg:SI 7 r7)
        (const_int 4096 [0x1000])) 175 {movsi_ie} (nil))

(insn/f 35 43 36 2 20080903-1.c:5 (set (reg/f:SI 14 r14)
        (reg/f:SI 15 r15)) 175 {movsi_ie} (nil))

I'm testing a patch which emits a blockage insn before insn 35
when dwarf2out_do_frame returns true.  We already do so when
exception handling is enabled.  It will change the code with
-g.  This isn't good in general but wouldn't be a real problem
in the above situation because if such movement of the frame insn
happened, then no one can expect -g works well in the first place.


-- 
           Summary: SH: ICE in dwarf2out_begin_epilogue, at dwarf2out.c:2689
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: kkojima at gcc dot gnu dot org
GCC target triplet: sh-unkonwn-elf


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

Reply via email to