http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45722
--- Comment #22 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> 2010-11-11 21:45:40 UTC --- It dies with SIGBUS here: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 1 (LWP 1)] 0x00012d24 in testE () at /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.c-torture/execute/20040709-2.c:95 95 struct pck E { unsigned long long l, i : 12, j : 23, k : 29; }; T(E) 1: x/i $pc => 0x12d24 <testE+428>: ld [ %i5 ], %i0 (gdb) p $i5 $1 = 162310 The source address (%i5) isn't 4-byte aligned as it should be. I'm attaching the assembler output for the 32-bit -Os case. Btw., IRIX 6.5 (mips-sgi-irix6.5) is equally affected, both 32 and 64-bit. I haven't checked in more detail what's happening there yet. Rainer