| /* PR tree-optimization/89143 */ |
| /* { dg-do compile } */ |
| /* { dg-options "-O2 -fdump-tree-optimized" } */ |
| /* { dg-final { scan-tree-dump-not "link_error \\\(" "optimized" } } */ |
| |
| void link_error (void); |
| |
| void |
| f1 (signed char i) |
| { |
| if (__builtin_abs (i) < 0 || __builtin_abs (i) > __SCHAR_MAX__ + 1) |
| link_error (); |
| } |
| |
| void |
| f2 (signed char i) |
| { |
| if (i < 0 || i > 15) |
| __builtin_unreachable (); |
| if (__builtin_abs (i) < 0 || __builtin_abs (i) > 15) |
| link_error (); |
| } |
| |
| void |
| f3 (signed char i) |
| { |
| if (i < 19 || i > 25) |
| __builtin_unreachable (); |
| if (__builtin_abs (i) < 19 || __builtin_abs (i) > 25) |
| link_error (); |
| } |
| |
| void |
| f4 (signed char i) |
| { |
| if (i > -60) |
| __builtin_unreachable (); |
| if (__builtin_abs (i) < 60 || __builtin_abs (i) > __SCHAR_MAX__ + 1) |
| link_error (); |
| } |
| |
| void |
| f5 (signed char i) |
| { |
| if (i < -__SCHAR_MAX__ || i > -30) |
| __builtin_unreachable (); |
| if (__builtin_abs (i) < 30 || __builtin_abs (i) > __SCHAR_MAX__) |
| link_error (); |
| } |
| |
| void |
| f6 (signed char i) |
| { |
| if (i < -__SCHAR_MAX__ || i > 30) |
| __builtin_unreachable (); |
| if (__builtin_abs (i) < 0 || __builtin_abs (i) > __SCHAR_MAX__) |
| link_error (); |
| } |
| |
| void |
| f7 (signed char i) |
| { |
| if (i < -31 || i > 30) |
| __builtin_unreachable (); |
| if (__builtin_abs (i) < 0 || __builtin_abs (i) > 31) |
| link_error (); |
| } |