https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114289
--- Comment #3 from Dan Stahlke <dan at stahlke dot org> --- Variants that generate more reasonable results: struct foo { int x:32; } __attribute__((packed)); struct foo { int x:16; } __attribute__((packed)); struct foo { int x:31; }; struct foo { int x:31; } __attribute__((packed, aligned(4)));