1/* PR tree-optimization/58277 */
2
3extern void abort (void);
4static int a[2];
5int b, c, d, *e, f, g, h, **i = &e, k, l = 1, n, o, p;
6static int **volatile j = &e;
7const int m;
8char u;
9
10int
11bar ()
12{
13  u = 0;
14  return m;
15}
16
17__attribute__((noinline, noclone)) void
18baz ()
19{
20  asm ("");
21}
22
23static int
24foo ()
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
68int
69main ()
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