http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53505
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-05-28 13:39:12 UTC --- That revision added: + /* But leave bitfield accesses alone. */ + && (root->offset % BITS_PER_UNIT) == 0) Here root->offset % BITS_PER_UNIT is 0, still it is a bitfield and IMHO we should leave it alone. The question is how to differentiate bitfields at byte boundary offsets from e.g. non-bitfield _Bool where it should be user's responsibility to keep just 0 or 1 in the whole byte.