annotate gcc/testsuite/g++.dg/warn/Wparentheses-25.C @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 84e7813d76e9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* PR 7543. Test operation of -Wparentheses. Precedence warnings.
kono
parents:
diff changeset
2 !a | b and !a & b. */
kono
parents:
diff changeset
3 /* { dg-do compile } */
kono
parents:
diff changeset
4 /* { dg-options "-Wparentheses" } */
kono
parents:
diff changeset
5 // C++ version of Wparentheses-11.c
kono
parents:
diff changeset
6 int foo (int);
kono
parents:
diff changeset
7
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
8 void
111
kono
parents:
diff changeset
9 bar (int a, int b, int c)
kono
parents:
diff changeset
10 {
kono
parents:
diff changeset
11 foo (!a & b); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
12 foo (!a & (b < c));
kono
parents:
diff changeset
13 foo (!a & (b > c));
kono
parents:
diff changeset
14 foo (!a & (b == c));
kono
parents:
diff changeset
15 foo (!a & (b != c));
kono
parents:
diff changeset
16 foo (!a & (b <= c));
kono
parents:
diff changeset
17 foo (!a & (b >= c));
kono
parents:
diff changeset
18 foo (!a & (b && c));
kono
parents:
diff changeset
19 foo (!a & (b || c));
kono
parents:
diff changeset
20 foo (!a & !b);
kono
parents:
diff changeset
21 foo (!(a & b));
kono
parents:
diff changeset
22 foo ((!a) & b);
kono
parents:
diff changeset
23 foo (!a & 2); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
24 foo (!a & (2 < c));
kono
parents:
diff changeset
25 foo (!a & (2 > c));
kono
parents:
diff changeset
26 foo (!a & (2 == c));
kono
parents:
diff changeset
27 foo (!a & (2 != c));
kono
parents:
diff changeset
28 foo (!a & (2 <= c));
kono
parents:
diff changeset
29 foo (!a & (2 >= c));
kono
parents:
diff changeset
30 foo (!a & (2 && c));
kono
parents:
diff changeset
31 foo (!a & (2 || c));
kono
parents:
diff changeset
32 foo (!a & !2);
kono
parents:
diff changeset
33 foo (!(a & 2));
kono
parents:
diff changeset
34 foo ((!a) & 2);
kono
parents:
diff changeset
35 foo (!1 & 2); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
36 foo (!1 & (2 < c));
kono
parents:
diff changeset
37 foo (!1 & (2 > c));
kono
parents:
diff changeset
38 foo (!1 & (2 == c));
kono
parents:
diff changeset
39 foo (!1 & (2 != c));
kono
parents:
diff changeset
40 foo (!1 & (2 <= c));
kono
parents:
diff changeset
41 foo (!1 & (2 >= c));
kono
parents:
diff changeset
42 foo (!1 & (2 && c));
kono
parents:
diff changeset
43 foo (!1 & (2 || c));
kono
parents:
diff changeset
44 foo (!1 & !2);
kono
parents:
diff changeset
45 foo (!(1 & 2));
kono
parents:
diff changeset
46
kono
parents:
diff changeset
47 foo (!a | b); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
48 foo (!a | (b < c));
kono
parents:
diff changeset
49 foo (!a | (b > c));
kono
parents:
diff changeset
50 foo (!a | (b == c));
kono
parents:
diff changeset
51 foo (!a | (b != c));
kono
parents:
diff changeset
52 foo (!a | (b <= c));
kono
parents:
diff changeset
53 foo (!a | (b >= c));
kono
parents:
diff changeset
54 foo (!a | (b && c));
kono
parents:
diff changeset
55 foo (!a | (b || c));
kono
parents:
diff changeset
56 foo (!a | !b);
kono
parents:
diff changeset
57 foo (!(a | b));
kono
parents:
diff changeset
58 foo ((!a) | b);
kono
parents:
diff changeset
59 foo (!a | 2); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
60 foo (!a | (2 < c));
kono
parents:
diff changeset
61 foo (!a | (2 > c));
kono
parents:
diff changeset
62 foo (!a | (2 == c));
kono
parents:
diff changeset
63 foo (!a | (2 != c));
kono
parents:
diff changeset
64 foo (!a | (2 <= c));
kono
parents:
diff changeset
65 foo (!a | (2 >= c));
kono
parents:
diff changeset
66 foo (!a | (2 && c));
kono
parents:
diff changeset
67 foo (!a | (2 || c));
kono
parents:
diff changeset
68 foo (!a | !2);
kono
parents:
diff changeset
69 foo (!(a | 2));
kono
parents:
diff changeset
70 foo ((!a) | 2);
kono
parents:
diff changeset
71 foo (!1 | 2); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
72 foo (!1 | (2 < c));
kono
parents:
diff changeset
73 foo (!1 | (2 > c));
kono
parents:
diff changeset
74 foo (!1 | (2 == c));
kono
parents:
diff changeset
75 foo (!1 | (2 != c));
kono
parents:
diff changeset
76 foo (!1 | (2 <= c));
kono
parents:
diff changeset
77 foo (!1 | (2 >= c));
kono
parents:
diff changeset
78 foo (!1 | (2 && c));
kono
parents:
diff changeset
79 foo (!1 | (2 || c));
kono
parents:
diff changeset
80 foo (!1 | !2);
kono
parents:
diff changeset
81 foo (!(1 | 2));
kono
parents:
diff changeset
82 foo ((!1) | 2);
kono
parents:
diff changeset
83
kono
parents:
diff changeset
84 foo (b & !a); /* { dg-bogus "parentheses" "bogus warning" } */
kono
parents:
diff changeset
85 foo ((b < c) & !a);
kono
parents:
diff changeset
86 foo ((b > c) & !a);
kono
parents:
diff changeset
87 foo ((b == c) & !a);
kono
parents:
diff changeset
88 foo ((b != c) & !a);
kono
parents:
diff changeset
89 foo ((b <= c) & !a);
kono
parents:
diff changeset
90 foo ((b >= c) & !a);
kono
parents:
diff changeset
91 foo ((b && c) & !a);
kono
parents:
diff changeset
92 foo ((b || c) & !a);
kono
parents:
diff changeset
93 foo (!b & !a);
kono
parents:
diff changeset
94 foo (!(b & a));
kono
parents:
diff changeset
95 foo (b & (!a));
kono
parents:
diff changeset
96 foo (2 & !a); /* { dg-bogus "parentheses" "correct warning" } */
kono
parents:
diff changeset
97 foo ((2 < c) & !a);
kono
parents:
diff changeset
98 foo ((2 > c) & !a);
kono
parents:
diff changeset
99 foo ((2 == c) & !a);
kono
parents:
diff changeset
100 foo ((2 != c) & !a);
kono
parents:
diff changeset
101 foo ((2 <= c) & !a);
kono
parents:
diff changeset
102 foo ((2 >= c) & !a);
kono
parents:
diff changeset
103 foo ((2 && c) & !a);
kono
parents:
diff changeset
104 foo ((2 || c) & !a);
kono
parents:
diff changeset
105 foo (!2 & !a);
kono
parents:
diff changeset
106 foo (!(2 & a));
kono
parents:
diff changeset
107 foo (2 & (!a));
kono
parents:
diff changeset
108 foo (2 & !1); /* { dg-bogus "parentheses" "correct warning" } */
kono
parents:
diff changeset
109 foo ((2 < c) & !1);
kono
parents:
diff changeset
110 foo ((2 > c) & !1);
kono
parents:
diff changeset
111 foo ((2 == c) & !1);
kono
parents:
diff changeset
112 foo ((2 != c) & !1);
kono
parents:
diff changeset
113 foo ((2 <= c) & !1);
kono
parents:
diff changeset
114 foo ((2 >= c) & !1);
kono
parents:
diff changeset
115 foo ((2 && c) & !1);
kono
parents:
diff changeset
116 foo ((2 || c) & !1);
kono
parents:
diff changeset
117 foo (!2 & !1);
kono
parents:
diff changeset
118 foo (!(2 & 1));
kono
parents:
diff changeset
119
kono
parents:
diff changeset
120 foo (b | !a); /* { dg-bogus "parentheses" "correct warning" } */
kono
parents:
diff changeset
121 foo ((b < c) | !a);
kono
parents:
diff changeset
122 foo ((b > c) | !a);
kono
parents:
diff changeset
123 foo ((b == c) | !a);
kono
parents:
diff changeset
124 foo ((b != c) | !a);
kono
parents:
diff changeset
125 foo ((b <= c) | !a);
kono
parents:
diff changeset
126 foo ((b >= c) | !a);
kono
parents:
diff changeset
127 foo ((b && c) | !a);
kono
parents:
diff changeset
128 foo ((b || c) | !a);
kono
parents:
diff changeset
129 foo (!b | !a);
kono
parents:
diff changeset
130 foo (!(b | a));
kono
parents:
diff changeset
131 foo (b | (!a));
kono
parents:
diff changeset
132 foo (2 | !a); /* { dg-bogus "parentheses" "correct warning" } */
kono
parents:
diff changeset
133 foo ((2 < c) | !a);
kono
parents:
diff changeset
134 foo ((2 > c) | !a);
kono
parents:
diff changeset
135 foo ((2 == c) | !a);
kono
parents:
diff changeset
136 foo ((2 != c) | !a);
kono
parents:
diff changeset
137 foo ((2 <= c) | !a);
kono
parents:
diff changeset
138 foo ((2 >= c) | !a);
kono
parents:
diff changeset
139 foo ((2 && c) | !a);
kono
parents:
diff changeset
140 foo ((2 || c) | !a);
kono
parents:
diff changeset
141 foo (!2 | !a);
kono
parents:
diff changeset
142 foo (!(2 | a));
kono
parents:
diff changeset
143 foo (2 | (!a));
kono
parents:
diff changeset
144 foo (2 | !1); /* { dg-bogus "parentheses" "correct warning" } */
kono
parents:
diff changeset
145 foo ((2 < c) | !1);
kono
parents:
diff changeset
146 foo ((2 > c) | !1);
kono
parents:
diff changeset
147 foo ((2 == c) | !1);
kono
parents:
diff changeset
148 foo ((2 != c) | !1);
kono
parents:
diff changeset
149 foo ((2 <= c) | !1);
kono
parents:
diff changeset
150 foo ((2 >= c) | !1);
kono
parents:
diff changeset
151 foo ((2 && c) | !1);
kono
parents:
diff changeset
152 foo ((2 || c) | !1);
kono
parents:
diff changeset
153 foo (!2 | !1);
kono
parents:
diff changeset
154 foo (!(2 | 1));
kono
parents:
diff changeset
155 foo (2 | (!1));
kono
parents:
diff changeset
156 }
kono
parents:
diff changeset
157
kono
parents:
diff changeset
158
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
159 void
111
kono
parents:
diff changeset
160 baz (int a, int b, int c)
kono
parents:
diff changeset
161 {
kono
parents:
diff changeset
162 foo (!a & (b << c));/* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
163 foo (!a & (b >> c));/* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
164 foo (!a & (b + c)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
165 foo (!a & (b - c)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
166 foo (!a & (b = c)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
167 foo (!a & ~b); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
168 foo (!a & (b & c)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
169 foo (!a & (b | c)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
170 foo (!a & 2); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
171 foo (!a & (2 << c));/* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
172 foo (!a & (2 >> c));/* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
173 foo (!a & (2 + c)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
174 foo (!a & (2 - c)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
175 foo (!a & (c = 2)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
176 foo (!a & ~2); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
177 foo (!a & (2 & c)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
178 foo (!a & (2 | c)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
179 foo (!1 & (2 << c));/* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
180 foo (!1 & (2 >> c));/* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
181 foo (!1 & (2 + c)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
182 foo (!1 & (2 - c)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
183 foo (!1 & (c = 2)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
184 foo (!1 & ~2); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
185 foo (!1 & (2 & c)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
186 foo (!1 & (2 | c)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
187 foo (!a | (b << c));/* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
188 foo (!a | (b >> c));/* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
189 foo (!a | (b + c)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
190 foo (!a | (b - c)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
191 foo (!a | (b = c)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
192 foo (!a | ~b); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
193 foo (!a | (b & c)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
194 foo (!a | (b | c)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
195 foo (!a | (2 << c));/* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
196 foo (!a | (2 >> c));/* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
197 foo (!a | (2 + c)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
198 foo (!a | (2 - c)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
199 foo (!a | (c = 2)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
200 foo (!a | ~2); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
201 foo (!a | (2 & c)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
202 foo (!a | (2 | c)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
203 foo (!1 | (2 << c));/* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
204 foo (!1 | (2 >> c));/* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
205 foo (!1 | (2 + c)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
206 foo (!1 | (2 - c)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
207 foo (!1 | (c = 2)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
208 foo (!1 | ~2); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
209 foo (!1 | (2 & c)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
210 foo (!1 | (2 | c)); /* { dg-warning "parentheses" "correct warning" } */
kono
parents:
diff changeset
211 foo ((b << c) & !a);
kono
parents:
diff changeset
212 foo ((b >> c) & !a);
kono
parents:
diff changeset
213 foo ((b + c) & !a);
kono
parents:
diff changeset
214 foo ((b - c) & !a);
kono
parents:
diff changeset
215 foo ((b = c) & !a);
kono
parents:
diff changeset
216 foo (~b & !a);
kono
parents:
diff changeset
217 foo ((b & c) & !a);
kono
parents:
diff changeset
218 foo ((b | c) & !a);
kono
parents:
diff changeset
219 foo ((2 << c) & !a);
kono
parents:
diff changeset
220 foo ((2 >> c) & !a);
kono
parents:
diff changeset
221 foo ((2 + c) & !a);
kono
parents:
diff changeset
222 foo ((2 - c) & !a);
kono
parents:
diff changeset
223 foo ((c = 2) & !a);
kono
parents:
diff changeset
224 foo (~2 & !a);
kono
parents:
diff changeset
225 foo ((2 & c) & !a);
kono
parents:
diff changeset
226 foo ((2 | c) & !a);
kono
parents:
diff changeset
227 foo ((2 << c) & !1);
kono
parents:
diff changeset
228 foo ((2 >> c) & !1);
kono
parents:
diff changeset
229 foo ((2 + c) & !1);
kono
parents:
diff changeset
230 foo ((2 - c) & !1);
kono
parents:
diff changeset
231 foo ((c = 2) & !1);
kono
parents:
diff changeset
232 foo (~2 & !1);
kono
parents:
diff changeset
233 foo ((2 & c) & !1);
kono
parents:
diff changeset
234 foo ((2 | c) & !1);
kono
parents:
diff changeset
235 foo ((b << c) | !a);
kono
parents:
diff changeset
236 foo ((b >> c) | !a);
kono
parents:
diff changeset
237 foo ((b + c) | !a);
kono
parents:
diff changeset
238 foo ((b - c) | !a);
kono
parents:
diff changeset
239 foo ((b = c) | !a);
kono
parents:
diff changeset
240 foo (~b | !a);
kono
parents:
diff changeset
241 foo ((b & c) | !a);
kono
parents:
diff changeset
242 foo ((b | c) | !a);
kono
parents:
diff changeset
243 foo ((2 << c) | !a);
kono
parents:
diff changeset
244 foo ((2 >> c) | !a);
kono
parents:
diff changeset
245 foo ((2 + c) | !a);
kono
parents:
diff changeset
246 foo ((2 - c) | !a);
kono
parents:
diff changeset
247 foo ((c = 2) | !a);
kono
parents:
diff changeset
248 foo (~2 | !a);
kono
parents:
diff changeset
249 foo ((2 & c) | !a);
kono
parents:
diff changeset
250 foo ((2 | c) | !a);
kono
parents:
diff changeset
251 foo ((2 << c) | !1);
kono
parents:
diff changeset
252 foo ((2 >> c) | !1);
kono
parents:
diff changeset
253 foo ((2 + c) | !1);
kono
parents:
diff changeset
254 foo ((2 - c) | !1);
kono
parents:
diff changeset
255 foo ((c = 2) | !1);
kono
parents:
diff changeset
256 foo (~2 | !1);
kono
parents:
diff changeset
257 foo ((2 & c) | !1);
kono
parents:
diff changeset
258 foo ((2 | c) | !1);
kono
parents:
diff changeset
259 }