The failure is caused by an 
(gdb) r
Starting program: /mnt/gnu/gcc-3.3/objdir/gcc/testsuite/strct-pack-3.xg
Program received signal SIGBUS, Bus error.
0x000029a8 in f ()
(gdb) disass f
Dump of assembler code for function f:
0x00002998 <f+0>:       ldh 8(,r26),ret0
0x0000299c <f+4>:       extrw,s ret0,31,15,ret0
0x000029a0 <f+8>:       depw,z ret0,30,31,r19
0x000029a4 <f+12>:      ldi 2,r20
0x000029a8 <f+16>:      ldw 2(,r26),ret0
...
(gdb) p/x $r26
$1 = 0x7eff05b8

The r26 base register and the displacement of 2 must sum to zero modulo 4.
Since it's the sum that matters for this insn, we don't require both the base
and the displacement to be aligned.

This worked in 3.[34].

-- 
           Summary: [4.0 Regression] FAIL: gcc.c-torture/execute/strct-pack-
                    3.c execution,  -O1
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: middle-end
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: danglin at gcc dot gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: hppa2.0w-hp-hpux11.11
  GCC host triplet: hppa2.0w-hp-hpux11.11
GCC target triplet: hppa2.0w-hp-hpux11.11


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19083

Reply via email to