1 /* { dg-do run } */
2 
3 int a, c, d, *h;
4 unsigned b;
5 
fn1()6 int *fn1 ()
7 {
8   int *f[3], g = 0;
9   for (; g < 3; g++)
10     f[g] = &a;
11   if (--b > a)
12     {
13       if (a > b)
14 	d++;
15       return f[0];
16     }
17 }
18 
fn2()19 void fn2 ()
20 {
21   for (; c >= 0; --c)
22     {
23       int j[] = { 0, 0, 0, 0, 0 };
24       int *k = fn1 ();
25       if (!k)
26 	__builtin_abort ();
27       h = &j[4];
28     }
29 }
30 
main()31 int main ()
32 {
33   fn2 ();
34   if (d != 0)
35     __builtin_abort ();
36   return 0;
37 }
38