Seen as an ia64 bootstrap failure as of 20050828 in
libjava/java/lang/reflect/natMethod.cc, though the problem could affect
any target.

The observed problem is that reload chooses a reg/reg alternative for
reloading a memory (for unknown reasons).  This causes the insn stream
to be changed from

  (set (reg 1) (mem)) // REG_EH_REGION 1

to

  (set (reg 2) (addr))
  (set (reg 1) (mem))
  (set (reg 1) (reg 1))  // REG_EH_REGION 1

so that the insn that actually traps no longer contains the REG_EH_REGION note.

I figure the note ought to get distributed during emit_reload_insns.

-- 
           Summary: reload may drop non-call exception information
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Keywords: wrong-code, ice-on-valid-code
          Severity: normal
          Priority: P2
         Component: rtl-optimization
        AssignedTo: rth at gcc dot gnu dot org
        ReportedBy: rth at gcc dot gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org


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

Reply via email to