1  /* { dg-do run } */
       2  /* { dg-options "-g" } */
       3  
       4  void __attribute__((noinline))
       5  optimize_me_not ()
       6  {
       7    __asm__ volatile ("" : : : "memory");
       8  }
       9  volatile long a;
      10  int b[9][1];
      11  static short c[2][1] = {3};
      12  int main()
      13  {
      14    int i, d, e;
      15    i = 0;
      16    for (; i < 9; i++)
      17      a = b[i][0];
      18    i = 0;
      19    for (; i < 2; i++)
      20      {
      21        d = 0;
      22        for (; d < 1; d++)
      23  	{
      24  	  e = 0;
      25  	  for (; e < 1; e++)
      26  	    a = c[i][e];
      27  	  /* i may very well be optimized out, so we cannot test for i == 0.
      28  	     Instead test i + 1 which will make the test UNSUPPORTED if i
      29  	     is optimized out.  Since the test previously had wrong debug
      30  	     with i == 9 this is acceptable.  */
      31  	  optimize_me_not(); /* { dg-final { gdb-test . "i + 1" "1" } } */
      32  	}
      33      }
      34    return 0;
      35  }