1  /* { dg-do run } */
       2  /* { dg-options "-ftree-loop-if-convert" } */
       3  
       4  void abort (void);
       5  
       6  int a, b, c, d, o = 1, p;
       7  short e;
       8  
       9  int
      10  fn1 (int * p1)
      11  {
      12    int f, g, h, j = 0, k = 0, l = 0;
      13    unsigned int i;
      14    int *m[1] = { &l };
      15    for (; b >= 0; b--)
      16      {
      17        if (*p1)
      18  	if (j >= 0)
      19  	  {
      20  	    int n = 1;
      21  	    e = 1;
      22  	    h = a ? a : 1 % n;
      23  	    g = h > 0 ? 0 : h + 1;
      24  	    k = c + g;
      25  	  }
      26  	else
      27  	  continue;
      28        else
      29  	{
      30  
      31  	  f = d > 0 ? 0 : d + 1;
      32  	  i = f;
      33  	  j = 1 + i;
      34  	}
      35        l++;
      36      }
      37    return k;
      38  }
      39  
      40  int
      41  main ()
      42  {
      43    for (;; p++)
      44      {
      45        fn1 (&o);
      46        break;
      47      }
      48    if (e != 1)
      49      abort ();
      50    return 0;
      51  }