While nonlocal gotos of the setjmp / longjmp variety are harmless, nonlocal gotos like in execute/nestfunc-6.c arrive at a label not associated with the call site, and hence the target registers can contain unexpected values. branch target register load migration must not hoist register loads past a nonlocal goto receiver of this kind.
-- Summary: bt-load.c doesn't take nonlocal gotos into account. Product: gcc Version: 4.1.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P2 Component: rtl-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: amylaar at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20769