[Bug middle-end/41268] New: bootstrap is broken after r151350 (expand from tuples)

sje at cup dot hp dot com gcc-bugzilla@gcc.gnu.org
Fri Sep 4 23:38:00 GMT 2009


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



More information about the Gcc-bugs mailing list