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