comparison gcc/testsuite/gcc.dg/analyzer/conditionals-notrans.c @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
comparison
equal deleted inserted replaced
131:84e7813d76e9 145:1830386684a0
1 /* { dg-additional-options "-fno-analyzer-transitivity" } */
2 #include "analyzer-decls.h"
3
4 void test (int i, int j)
5 {
6 if (i > 4)
7 {
8 __analyzer_eval (i > 4); /* { dg-warning "TRUE" } */
9 __analyzer_eval (i <= 4); /* { dg-warning "FALSE" } */
10 __analyzer_eval (i > 3); /* { dg-warning "TRUE" "desired" { xfail *-*-* } } */
11 /* { dg-bogus "UNKNOWN" "status quo" { xfail *-*-* } .-1 } */
12
13 __analyzer_eval (i > 5); /* { dg-warning "UNKNOWN" } */
14 __analyzer_eval (i != 3); /* { dg-warning "TRUE" "desired" { xfail *-*-* } } */
15 /* { dg-bogus "UNKNOWN" "status quo" { xfail *-*-* } .-1 } */
16
17 __analyzer_eval (i == 3); /* { dg-warning "FALSE" "desired" { xfail *-*-* } } */
18 /* { dg-bogus "UNKNOWN" "status quo" { xfail *-*-* } .-1 } */
19
20 __analyzer_eval (i != 4); /* { dg-warning "TRUE" } */
21 __analyzer_eval (i == 4); /* { dg-warning "FALSE" } */
22 __analyzer_eval (i == 5); /* { dg-warning "UNKNOWN" } */
23 __analyzer_eval (i != 5); /* { dg-warning "UNKNOWN" } */
24 __analyzer_eval (i < 5); /* { dg-warning "FALSE" } */
25 __analyzer_eval (i <= 5); /* { dg-warning "UNKNOWN" } */
26
27 /* Tests of transitivity. */
28 if (j < i)
29 {
30 __analyzer_eval (j < i); /* { dg-warning "TRUE" } */
31 __analyzer_eval (j <= 4); /* { dg-warning "UNKNOWN" } */
32 }
33 else
34 {
35 __analyzer_eval (j >= i); /* { dg-warning "TRUE" } */
36 __analyzer_eval (j > 4); /* { dg-warning "TRUE" "desired" { xfail *-*-* } } */
37 /* { dg-bogus "UNKNOWN" "status quo" { xfail *-*-* } .-1 } */
38 }
39 }
40 else
41 {
42 __analyzer_eval (i > 4); /* { dg-warning "FALSE" } */
43 __analyzer_eval (i <= 4); /* { dg-warning "TRUE" } */
44 __analyzer_eval (i > 3); /* { dg-warning "UNKNOWN" } */
45
46 __analyzer_eval (i > 5); /* { dg-warning "FALSE" "desired" { xfail *-*-* } } */
47 /* { dg-bogus "UNKNOWN" "status quo" { xfail *-*-* } .-1 } */
48 __analyzer_eval (i != 3); /* { dg-warning "UNKNOWN" } */
49
50 __analyzer_eval (i == 3); /* { dg-warning "UNKNOWN" } */
51
52 __analyzer_eval (i != 4); /* { dg-warning "UNKNOWN" } */
53 __analyzer_eval (i == 4); /* { dg-warning "UNKNOWN" } */
54 __analyzer_eval (i == 5); /* { dg-warning "FALSE" "desired" { xfail *-*-* } } */
55 /* { dg-bogus "UNKNOWN" "status quo" { xfail *-*-* } .-1 } */
56 __analyzer_eval (i != 5); /* { dg-warning "TRUE" "desired" { xfail *-*-* } } */
57 /* { dg-bogus "UNKNOWN" "status quo" { xfail *-*-* } .-1 } */
58 __analyzer_eval (i < 5); /* { dg-warning "TRUE" } */
59 __analyzer_eval (i <= 5); /* { dg-warning "TRUE" "desired" { xfail *-*-* } } */
60 /* { dg-bogus "UNKNOWN" "status quo" { xfail *-*-* } .-1 } */
61 }
62 }
63
64 void test_2 (int i, int j, int k)
65 {
66 if (i >= j)
67 {
68 __analyzer_eval (i == k); /* { dg-warning "UNKNOWN" } */
69 if (j >= k)
70 {
71 __analyzer_eval (i >= k); /* { dg-warning "TRUE" "desired" { xfail *-*-* } } */
72 /* { dg-bogus "UNKNOWN" "status quo" { xfail *-*-* } .-1 } */
73 __analyzer_eval (i == k); /* { dg-warning "UNKNOWN" } */
74 if (k >= i)
75 __analyzer_eval (i == k); /* { dg-warning "TRUE" "desired" { xfail *-*-* } } */
76 /* { dg-bogus "UNKNOWN" "status quo" { xfail *-*-* } .-1 } */
77 }
78 }
79 }
80
81 void test_3 (int flag, unsigned int i)
82 {
83 if (!flag) {
84 return;
85 }
86
87 __analyzer_eval (flag); /* { dg-warning "TRUE" } */
88
89 if (i>0) {
90 __analyzer_eval (i > 0); /* { dg-warning "TRUE" } */
91 __analyzer_eval (flag); /* { dg-warning "TRUE" } */
92 } else {
93 __analyzer_eval (i <= 0); /* { dg-warning "TRUE" } */
94 __analyzer_eval (flag); /* { dg-warning "TRUE" } */
95 }
96
97 __analyzer_eval (flag); /* { dg-warning "TRUE" } */
98 }
99
100 void test_range_int_gt_lt (int i)
101 {
102 if (i > 3)
103 if (i < 5)
104 __analyzer_eval (i == 4); /* { dg-warning "TRUE" "desired" { xfail *-*-* } } */
105 /* { dg-bogus "UNKNOWN" "status quo" { xfail *-*-* } .-1 } */
106 }
107
108 void test_range_float_gt_lt (float f)
109 {
110 if (f > 3)
111 if (f < 5)
112 __analyzer_eval (f == 4); /* { dg-warning "UNKNOWN" } */
113 }
114
115 void test_range_int_ge_lt (int i)
116 {
117 if (i >= 4)
118 if (i < 5)
119 __analyzer_eval (i == 4); /* { dg-warning "TRUE" "desired" { xfail *-*-* } } */
120 /* { dg-bogus "UNKNOWN" "status quo" { xfail *-*-* } .-1 } */
121 }
122
123 void test_range_float_ge_lt (float f)
124 {
125 if (f >= 4)
126 if (f < 5)
127 __analyzer_eval (f == 4); /* { dg-warning "UNKNOWN" } */
128 }
129
130 void test_range_int_gt_le (int i)
131 {
132 if (i > 3)
133 if (i <= 4)
134 __analyzer_eval (i == 4); /* { dg-warning "TRUE" "desired" { xfail *-*-* } } */
135 /* { dg-bogus "UNKNOWN" "status quo" { xfail *-*-* } .-1 } */
136 }
137
138 void test_range_float_gt_le (float f)
139 {
140 if (f > 3)
141 if (f <= 4)
142 __analyzer_eval (f == 4); /* { dg-warning "UNKNOWN" } */
143 }
144
145 void test_range_int_ge_le (int i)
146 {
147 if (i >= 4)
148 if (i <= 4)
149 __analyzer_eval (i == 4); /* { dg-warning "TRUE" "desired" { xfail *-*-* } } */
150 /* { dg-bogus "UNKNOWN" "status quo" { xfail *-*-* } .-1 } */
151 }
152
153 void test_range_float_ge_le (float f)
154 {
155 if (f >= 4)
156 if (f <= 4)
157 __analyzer_eval (f == 4); /* { dg-warning "TRUE" "desired" { xfail *-*-* } } */
158 /* { dg-bogus "UNKNOWN" "status quo" { xfail *-*-* } .-1 } */
159 }
160
161 void test_float_selfcmp (float f)
162 {
163 __analyzer_eval (f == f); /* { dg-warning "UNKNOWN" } */
164 __analyzer_eval (f != f); /* { dg-warning "UNKNOWN" } */
165 }