http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50521
--- Comment #7 from Henrik Nordström <henrik at henriknordstrom dot net> 2011-10-28 01:59:34 UTC --- Right. r171347 seem to be about fetches from bitfields while this change is about stores? An interesting test would be bitfield.bits.a = bitfield.bits.c which should load the int to a register, load the int again to another register, copy c to a between them and store the result. I guess the double load may be optimized away as it's an sideeffect of the aassignment.