1  /* { dg-do run { target ia32 } } */
       2  /* { dg-options "-Os" } */
       3  
       4  void
       5  __attribute__ ((noipa))
       6  foo (const char *x)
       7  {
       8    asm volatile ("" : "+g" (x) : : "memory");
       9    if (x)
      10      __builtin_abort ();
      11  }
      12  
      13  int a, b = 1;
      14  
      15  int
      16  main ()
      17  {
      18    while (1)
      19      {
      20        unsigned long long d = 18446744073709551615UL;
      21        while (1)
      22  	{
      23  	  int e = b;
      24  	  while (d < 2)
      25  	    foo ("0");
      26  	  if (a)
      27  	    d++;
      28  	  if (b)
      29  	    break;
      30  	}
      31        break;
      32      }
      33    return 0;
      34  }