http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52890
--- Comment #1 from Pat Haugen <pthaugen at gcc dot gnu.org> 2012-04-06 21:13:04 UTC --- My main question on this is why the MEM_REF has an alignment of 8 (i.e. byte)? Breakpoint 1, expand_assignment (to=0xfffafed2790, from=<optimized out>, nontemporal=<optimized out>) at /home/pthaugen/src/gcc/temp3/gcc/gcc/expr.c:4653 4653 store_bit_field (mem, GET_MODE_BITSIZE (mode), (gdb) prt to <mem_ref 0xfffafed2790 type <real_type 0xfffb0057b60 double DF size <integer_cst 0xfffafe125e0 constant 64> unit size <integer_cst 0xfffafe12600 constant 8> align 8 symtab 0 alias set 2 canonical type 0xfffaff00f18 precision 64> arg 0 <ssa_name 0xfffb00e1d60 type <reference_type 0xfffb0055f28 type <record_type 0xfffb0055d30 mrViewingHitRecord> public unsigned DI size <integer_cst 0xfffafe125e0 64> unit size <integer_cst 0xfffafe12600 8> align 64 symtab 0 alias set 6 canonical type 0xfffb0055f28> visited var <parm_decl 0xfffafe41980 VHR>def_stmt GIMPLE_NOP version 1 ptr-info 0xfffafe9af80> arg 1 <integer_cst 0xfffafe19b80 type <reference_type 0xfffb0055f28> constant 0> test.cc:29:44> (gdb) pr mem (mem:DF (reg/v/f:DI 120 [ VHR ]) [5 MEM[(struct mrViewingHitRecord &)VHR_1(D)]+0 S8 A8])