1 /* PR tree-optimization/58277 */
2
3 extern void abort (void);
4 static int a[2];
5 int b, c, d, *e, f, g, h, **i = &e, k, l = 1, n, o, p;
6 static int **volatile j = &e;
7 const int m;
8 char u;
9
10 int
bar()11 bar ()
12 {
13 u = 0;
14 return m;
15 }
16
17 __attribute__((noinline, noclone)) void
baz()18 baz ()
19 {
20 asm ("");
21 }
22
23 static int
foo()24 foo ()
25 {
26 int t1;
27 g = bar ();
28 if (l)
29 ;
30 else
31 for (;; h++)
32 {
33 *i = 0;
34 o = *e = 0;
35 if (p)
36 {
37 f = 0;
38 return 0;
39 }
40 for (;; k++)
41 {
42 int *t2 = 0;
43 int *const *t3[] = {
44 0, 0, 0, 0, 0, 0, 0, 0, 0, &t2, 0, 0, &t2, &t2, &t2,
45 &t2, &t2, 0, 0, 0, 0, 0, 0, 0, &t2, 0, 0, 0, 0, 0, 0,
46 0, 0, 0, 0, &t2, 0, 0, 0, 0, 0, 0, 0, &t2, &t2,
47 &t2, &t2, &t2, 0, 0, 0, 0, 0, 0, 0, &t2, 0, 0, 0,
48 &t2, 0, 0, 0, &t2, 0, &t2, 0, 0, &t2, 0, 0, 0, 0,
49 0, &t2, 0, 0, 0, 0, &t2, &t2, 0, 0, 0, 0, &t2, 0,
50 0, 0, 0, 0, 0, 0, &t2, 0, 0, 0, 0, 0, &t2, 0, 0, 0,
51 &t2, &t2
52 };
53 int *const **t4[] = {&t3[0]};
54 **i = 0;
55 if (**j)
56 break;
57 u = 0;
58 }
59 *i = *j;
60 t1 = 0;
61 for (; t1 < 5; t1++)
62 *i = *j;
63 }
64 *j = 0;
65 return 1;
66 }
67
68 int
main()69 main ()
70 {
71 int t5;
72 a[0] = 1;
73 {
74 int *t6[6] = {&d, &d};
75 for (n = 1; n; n--)
76 if (foo())
77 {
78 int *t7[] = {0};
79 d = 0;
80 for (; u < 1; u++)
81 *i = *j;
82 *i = 0;
83 *i = 0;
84 int t8[5] = {0};
85 *i = &t8[0];
86 int *const *t9 = &t6[0];
87 int *const **t10 = &t9;
88 *t10 = &t7[0];
89 }
90 }
91 u = 0;
92 for (; b; b++)
93 for (t5 = 0; t5 < 10; t5++)
94 c = a[a[a[a[a[a[a[a[c]]]]]]]];
95
96 baz ();
97
98 if (!a[a[a[a[a[a[a[a[a[a[a[a[a[a[a[u]]]]]]]]]]]]]]])
99 abort ();
100
101 return 0;
102 }
103