http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48696
--- Comment #12 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-04-20 16:19:05 UTC --- Well, there is also the expander that can and often does increase the size of the accesses, see e.g. PR48124 for more details. And e.g. for C++0x memory model as well as -fopenmp or, I guess, kernel SMP as well, the access size should never grow into following non-bitfield fields and the bitfield access lowering has to take it into account.