https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82105
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- This is how bitfields work. You can use typedef struct __attribute__((packed,aligned(4))) { unsigned int x:16; unsigned int y:17; unsigned short z; } XXX; to get what you want.