1 /* PR tree-optimization/89143 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2 -fdump-tree-optimized" } */
4 /* { dg-final { scan-tree-dump-not "link_error \\\(" "optimized" } } */
5
6 void link_error (void);
7
8 void
9 f1 (signed char i)
10 {
11 if (__builtin_abs (i) < 0 || __builtin_abs (i) > __SCHAR_MAX__ + 1)
12 link_error ();
13 }
14
15 void
16 f2 (signed char i)
17 {
18 if (i < 0 || i > 15)
19 __builtin_unreachable ();
20 if (__builtin_abs (i) < 0 || __builtin_abs (i) > 15)
21 link_error ();
22 }
23
24 void
25 f3 (signed char i)
26 {
27 if (i < 19 || i > 25)
28 __builtin_unreachable ();
29 if (__builtin_abs (i) < 19 || __builtin_abs (i) > 25)
30 link_error ();
31 }
32
33 void
34 f4 (signed char i)
35 {
36 if (i > -60)
37 __builtin_unreachable ();
38 if (__builtin_abs (i) < 60 || __builtin_abs (i) > __SCHAR_MAX__ + 1)
39 link_error ();
40 }
41
42 void
43 f5 (signed char i)
44 {
45 if (i < -__SCHAR_MAX__ || i > -30)
46 __builtin_unreachable ();
47 if (__builtin_abs (i) < 30 || __builtin_abs (i) > __SCHAR_MAX__)
48 link_error ();
49 }
50
51 void
52 f6 (signed char i)
53 {
54 if (i < -__SCHAR_MAX__ || i > 30)
55 __builtin_unreachable ();
56 if (__builtin_abs (i) < 0 || __builtin_abs (i) > __SCHAR_MAX__)
57 link_error ();
58 }
59
60 void
61 f7 (signed char i)
62 {
63 if (i < -31 || i > 30)
64 __builtin_unreachable ();
65 if (__builtin_abs (i) < 0 || __builtin_abs (i) > 31)
66 link_error ();
67 }