1 /* { dg-do run } */
2 /* { dg-options "-O" } */
3 
4 #if __SIZEOF_INT__ == 2
5 #define int __INT32_TYPE__
6 #endif
7 
8 struct A
9 {
10   int b;
11   int c;
12   int d;
13 };
14 
15 struct E
16 {
17   int f;
18   int g:18;
19   struct A h;
20 };
21 
22 struct I
23 {
24   int b;
25   int j;
26   struct E k;
27 };
28 
29 int l, *m = &l;
30 
31 struct A n;
32 struct I o;
33 
34 void __attribute__ ((noipa))
test_l(void)35 test_l (void)
36 {
37   if (l != 1)
38     __builtin_abort ();
39 }
40 
41 #undef int
42 
main()43 int main ()
44 {
45   while (1)
46     {
47       struct I q = { 0, 0, {0, 0, {1, 1, 1}}}, p = q, r = p, *s = &q;
48       if (p.k.h.c)
49         o = p;
50       *m = r.k.h.d;
51       n = (*s).k.h;
52       break;
53     }
54   test_l ();
55   return 0;
56 }
57