1  /* PR debug/49522 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-fcompare-debug" } */
       4  
       5  int val1 = 0L;
       6  volatile int val2 = 7L;
       7  long long val3;
       8  int *ptr = &val1;
       9  
      10  int foo (void);
      11  
      12  static int
      13  func1 ()
      14  {
      15    return 0;
      16  }
      17  
      18  static short int
      19  func2 (short int a, unsigned int b)
      20  {
      21    return !b ? a : a >> b;
      22  }
      23  
      24  static unsigned long long
      25  func3 (unsigned long long a, unsigned long long b)
      26  {
      27    return !b ? a : a % b;
      28  }
      29  
      30  void
      31  func4 (unsigned short arg1, int arg2)
      32  {
      33    for (arg2 = 0; arg2 < 2; arg2++)
      34      {
      35        *ptr = func3 (func3 (10, func2 (val3, val2)), val3);
      36        for (arg1 = -14; arg1 > 14; arg1 = func1 ())
      37  	{
      38  	  *ptr = -1;
      39  	  if (foo ())
      40  	    ;
      41  	}
      42      }
      43  }