Mercurial > hg > CbC > CbC_gcc
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 } |