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