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.