http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57748
--- Comment #23 from Bernd Edlinger <bernd.edlinger at hotmail dot de> --- Martin, one of the errors with strict volatile bitfields was with a structure like this. struct S0 { signed a : 7; unsigned b : 28; } __attribute__((packed)); here the member b is using SImode but the data are spread over 5 bytes. This stucture access does not go thru the misalign code path. But it it did, then I think we could get into trouble. The code in the misalign code path assumes, that bitpos == 0. Otherwise the condition if (bitsize != GET_MODE_BITSIZE (mode)) will not do the right thing. And the misalign code path will break the -fstrict-volatile-bitfields if the access is volatile. What I mean is if we could find an example where this code path is executed for a bit field it will break the strict volatile bitfileds once again, even with Sandra Loosemore's patch. Probably there is a reason why this can not happen but I do not see it. At least there should be some assertions here.