1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
/* { dg-do run } */ extern "C" void abort() __attribute__ ((noreturn)); struct s { unsigned long long f1 : 40; unsigned int f2 : 24; } sv; int main() { int f2; sv.f2 = (1 << 24) - 1; __asm__ volatile ("" : : : "memory"); ++sv.f2; f2 = sv.f2; if (f2 != 0) abort(); return 0; }