1 #include <assert.h>
2 
3 int a, *b, c, d, f, **i, p, q, *r;
4 short o, j;
5 
6 static int __attribute__((noinline, noclone))
fn1(int * p1,int ** p2)7 fn1 (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 
19 static int ** __attribute__((noinline, noclone))
fn2(void)20 fn2 (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 
34 int
main(void)35 main (void)
36 {
37   i = fn2 ();
38   fn1 (b, i);
39   return 0;
40 }
41