The Linux kernel, and probably some user-space applications and
libraries
as well, depend on GCC guaranteeing (a variant of) the following:
"any access to a naturally aligned scalar object in memory
that is not a bit-field will be performed by a single machine
instruction whenever possible"
and it seems the current compiler actually does work like this.
Seems a pity to have the bit-field exception here, why is it there?
Bit-fields will generally require a read-modify-write instruction,
and I don't think we actually guarantee to generate one right now.
Segher