| /* PR tree-optimization/81588 */ |
| |
| __attribute__((noinline, noclone)) int |
| bar (int x) |
| { |
| __asm volatile ("" : : "g" (x) : "memory"); |
| } |
| |
| __attribute__((noinline, noclone)) int |
| foo (unsigned x, long long y) |
| { |
| if (y < 0) |
| return 0; |
| if (y < (long long) (4 * x)) |
| { |
| bar (y); |
| return 1; |
| } |
| return 0; |
| } |
| |
| int |
| main () |
| { |
| volatile unsigned x = 10; |
| volatile long long y = -10000; |
| if (foo (x, y) != 0) |
| __builtin_abort (); |
| y = -1; |
| if (foo (x, y) != 0) |
| __builtin_abort (); |
| y = 0; |
| if (foo (x, y) != 1) |
| __builtin_abort (); |
| y = 39; |
| if (foo (x, y) != 1) |
| __builtin_abort (); |
| y = 40; |
| if (foo (x, y) != 0) |
| __builtin_abort (); |
| y = 10000; |
| if (foo (x, y) != 0) |
| __builtin_abort (); |
| return 0; |
| } |