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