/* { dg-do run } */ /* { dg-options "-g" } */ void __attribute__((noinline)) optimize_me_not () { __asm__ volatile ("" : : : "memory"); } volatile long a; int b[9][1]; static short c[2][1] = {3}; int main() { int i, d, e; i = 0; for (; i < 9; i++) a = b[i][0]; i = 0; for (; i < 2; i++) { d = 0; for (; d < 1; d++) { e = 0; for (; e < 1; e++) a = c[i][e]; /* i may very well be optimized out, so we cannot test for i == 0. Instead test i + 1 which will make the test UNSUPPORTED if i is optimized out. Since the test previously had wrong debug with i == 9 this is acceptable. */ optimize_me_not(); /* { dg-final { gdb-test . "i + 1" "1" } } */ } } return 0; }