1  /* { dg-do compile } */
       2  /* { dg-additional-options "-g" } */
       3  
       4  int a, b, c, d, i, j, q, *e, *h, *k, *r, **p = &e;
       5  const int *f, **n = &f;
       6  static int g;
       7  
       8  void
       9  fn1 (int p1)
      10  {
      11    c = p1;
      12  }
      13  
      14  static int *
      15  fn2 (int *p1, const int *p2)
      16  {
      17    if (g)
      18      n = &p2;
      19    *n = p2;
      20    int o[245];
      21    fn1 (o != p2);
      22    return p1;
      23  }
      24  
      25  static int *
      26  fn3 ()
      27  {
      28    int s[54], *t = &s[0], u = 0, v = 1;
      29    h = &v;
      30    q = 1;
      31    for (; q; q++)
      32      {
      33        int *w[] = { &u };
      34        for (; v;)
      35  	return *p;
      36      }
      37    *r = *t + b >= 0;
      38    return *p;
      39  }
      40  
      41  static int
      42  fn4 (int *p1)
      43  {
      44    int *l[2], **m[7];
      45    for (; i < 1; i++)
      46      for (; j < 1; j++)
      47        m[i * 70] = &l[0];
      48    k = fn3 ();
      49    fn2 (0, p1);
      50    if ((m[0] == 0) & a)
      51      for (;;)
      52        ;
      53    return 0;
      54  }
      55  
      56  int
      57  main ()
      58  {
      59    fn4 (&d);
      60    return 0;
      61  }