https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91126
--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> --- Testcase that fails for a longer time already: struct S { int a : 24; int b : 8; } s; int main() { s.a = 0xfefefe; s.b = 0xfe; unsigned char c; c = ((unsigned char *)&s)[0]; if (c != 0xfe) __builtin_abort (); c = ((unsigned char *)&s)[1]; if (c != 0xfe) __builtin_abort (); c = ((unsigned char *)&s)[2]; if (c != 0xfe) __builtin_abort (); c = ((unsigned char *)&s)[3]; if (c != 0xfe) __builtin_abort (); return 0; }