1#include <assert.h>
2
3int a, *b, c, d, f, **i, p, q, *r;
4short o, j;
5
6static int __attribute__((noinline, noclone))
7fn1 (int *p1, int **p2)
8{
9  int **e = &b;
10  for (; p; p++)
11    *p1 = 1;
12  *e = *p2 = &d;
13
14  assert (r);
15
16  return c;
17}
18
19static int ** __attribute__((noinline, noclone))
20fn2 (void)
21{
22  for (f = 0; f != 42; f++)
23    {
24      int *g[3] = {0, 0, 0};
25      for (o = 0; o; o--)
26        for (; a > 1;)
27          {
28            int **h[1] = { &g[2] };
29          }
30    }
31  return &r;
32}
33
34int
35main (void)
36{
37  i = fn2 ();
38  fn1 (b, i);
39  return 0;
40}
41