/* PR tree-optimization/98255 */ /* { dg-do run } */ /* { dg-options "-Os" } */ /* { dg-additional-options "-fPIC" { target fpic } } */ struct A { volatile unsigned b; unsigned c; }; int d, *e, h, k, l; static struct A f; long g; static unsigned i = -2U; volatile int j; long foo (void) { char n[4][4][3] = { { {9, 2, 8}, {9, 2, 8}, {9, 2, 8}, {9} }, { {8} }, { {8} }, { {2} } }; while (d) { for (; f.c < 4; f.c++) { *e = 0; h = n[f.c + 4][0][d]; } while (g) return n[0][3][i]; while (1) { if (k) { j = 0; if (j) continue; } if (l) break; } } return 0; } int main () { asm volatile ("" : "+g" (d), "+g" (g), "+g" (f.c)); asm volatile ("" : "+g" (e), "+g" (k), "+g" (l)); foo (); return 0; }