The store at the beginning of a catch block can use an alias set that is allegedly disjoint from the one used to load that value. When scheduling, this can cause the load to be moved before the store.
-- Summary: alias information for EH is wrong Product: gcc Version: 4.2.0 Status: UNCONFIRMED Keywords: wrong-code, EH Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: amylaar at gcc dot gnu dot org GCC target triplet: sh-elf http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28139