GCC will not bootstrap after the expand from tuples checkin because the pointer extension code is wrong. If you compile gcc.dg/20020517-1.c you can see the problem. This test compiled and ran before but now core dumps. The difference in the generated assembly code is:
< addp4 r14 = r12, r0 --- > addp4 r14 = 0,r12 Addp4 is the instruction IA64 uses to extend 32 bit pointers to 64 bits on IA64 HP-UX. It is not a symetrical instruction so the pointer must be the right most operand, the other input is a register or constant offset to be added to the pointer after it is extended. Before the change we generated "addp4 r14 = 0, r12" and that was good. But now we generate "addp4 r14 = r12, r0" and that is wrong. IA64 uses the REG_POINTER macro to determine which input is a pointer so that value must be wrong now. -- Summary: bootstrap is broken after r151350 (expand from tuples) Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: sje at cup dot hp dot com GCC build triplet: ia64-hp-hpux11.23 GCC host triplet: ia64-hp-hpux11.23 GCC target triplet: ia64-hp-hpux11.23 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41268