| /* PR tree-optimization/69615 */ |
| /* { dg-do compile } */ |
| /* { dg-options "-O2 -fdump-tree-optimized" } */ |
| /* { dg-final { scan-tree-dump-not " >= 0" "optimized" } } */ |
| /* { dg-final { scan-tree-dump-not " < 0" "optimized" } } */ |
| /* { dg-final { scan-tree-dump-not " <= 23" "optimized" } } */ |
| /* { dg-final { scan-tree-dump-not " > 23" "optimized" } } */ |
| |
| extern void foo (void); |
| |
| void |
| f1 (int x) |
| { |
| if (x >= 0 && x <= __INT_MAX__ - 1) |
| foo (); |
| } |
| |
| void |
| f2 (int x, int y) |
| { |
| if (x >= 0 && y && x <= __INT_MAX__ - 1) |
| foo (); |
| } |
| |
| void |
| f3 (int x) |
| { |
| if (x > -__INT_MAX__ - 1 && x <= 23) |
| foo (); |
| } |
| |
| void |
| f4 (int x, int y) |
| { |
| if (x > -__INT_MAX__ - 1 && y && x <= 23) |
| foo (); |
| } |