111
|
1 /* PR middle-end/57344 */
|
|
2 /* { dg-require-effective-target int32plus } */
|
|
3
|
|
4 struct __attribute__((packed)) S
|
|
5 {
|
|
6 int a : 27;
|
|
7 #if __SIZEOF_INT__ * __CHAR_BIT__ >= 32
|
|
8 int b : 22;
|
|
9 #else
|
|
10 int b : 13;
|
|
11 #endif
|
|
12 char c;
|
|
13 int : 0;
|
|
14 } s[2];
|
|
15 int i;
|
|
16
|
|
17 __attribute__((noinline, noclone)) void
|
|
18 foo (int x)
|
|
19 {
|
|
20 if (x != -3161)
|
|
21 __builtin_abort ();
|
|
22 asm volatile ("" : : : "memory");
|
|
23 }
|
|
24
|
|
25 int
|
|
26 main ()
|
|
27 {
|
|
28 struct S t = { 0, -3161L };
|
|
29 s[1] = t;
|
|
30 for (; i < 1; i++)
|
|
31 foo (s[1].b);
|
|
32 return 0;
|
|
33 }
|