1  /* { dg-do run } */
       2  
       3  int a, c, d, *h;
       4  unsigned b;
       5  
       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  
      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  
      31  int main ()
      32  { 
      33    fn2 ();
      34    if (d != 0)
      35      __builtin_abort ();
      36    return 0;
      37  }