/* PR middle-end/57344 */ | |
struct __attribute__((packed)) S | |
{ | |
int a : 11; | |
#if __SIZEOF_INT__ * __CHAR_BIT__ >= 32 | |
int b : 22; | |
#else | |
int b : 13; | |
#endif | |
char c; | |
int : 0; | |
} s[2]; | |
int i; | |
__attribute__((noinline, noclone)) void | |
foo (int x) | |
{ | |
if (x != -3161) | |
__builtin_abort (); | |
asm volatile ("" : : : "memory"); | |
} | |
int | |
main () | |
{ | |
struct S t = { 0, -3161L }; | |
s[1] = t; | |
for (; i < 1; i++) | |
foo (s[1].b); | |
return 0; | |
} |