| /* 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; |
| } |