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