1  /* { dg-do compile } */
       2  
       3  int a, b, c, e, f;
       4  
       5  void fn1 (int p) { }
       6  
       7  int
       8  fn2 (int p)
       9  {
      10    return a ? p % a : 0; 
      11  }
      12  
      13  short
      14  fn3 (int p)
      15  {
      16    return (1 >> p) < 1 ? 1 : p;
      17  }
      18  
      19  int
      20  fn4 ()
      21  {
      22    int g = 0, h = 1;
      23    if (b)
      24      goto lbl;
      25    fn2 (0);
      26    if (fn3 (1))
      27      fn1 (e && c);
      28    if (h)
      29      {
      30        int i = 1;
      31  lbl:
      32        if (i)
      33  	return 0;
      34        for (; g < 1; g++)
      35  	;
      36      }
      37    for (;;)
      38      f || g > 0;
      39  }
      40  
      41  int
      42  main ()
      43  {
      44    fn4 (); 
      45    return 0;
      46  }