The problem can be seen in the ev67 failure of 23_containers/vector/cons/4.cc,
ldah $29,0($26) !gpdisp!18 ldq $3,_ZN10__gnu_test10destructor8_M_countE($29) !literal ldq $2,16($9) mov $16,$10 lda $29,0($29) !gpdisp!18 Note the second instruction uses $29 before it is completely initialized in the last instruction. The problem is due to exposing the EH receiver gp load before sched1, but not exposing the symbol gp use until after reload. By inspection, the same problem exists for the builtin_setjmp_receiver patterns, though there is no known test case. Presumably it wouldn't be impossible to write one. By inspection, this problem should exist at least back through 3.3 branch. I havn't tried to create a simplified test case with which to show the problem on that branch. -- Summary: setjmp and eh receivers can mis-schedule Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: target 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 GCC target triplet: alpha http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18841