/* PR middle-end/57344 */ struct __attribute__((packed)) S { long long int a : 43; long long int b : 22; char c; long long int : 0; } s[2]; int i; __attribute__((noinline, noclone)) void foo (long long int x) { if (x != -3161LL) __builtin_abort (); asm volatile ("" : : : "memory"); } int main () { struct S t = { 0, -3161LL }; s[1] = t; for (; i < 1; i++) foo (s[1].b); return 0; }