annotate gcc/testsuite/c-c++-common/gomp/Wparentheses-4.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* PR c/70436 */
kono
parents:
diff changeset
2 /* { dg-additional-options "-Wparentheses -fno-openmp" } */
kono
parents:
diff changeset
3
kono
parents:
diff changeset
4 int a, b, c;
kono
parents:
diff changeset
5 void bar (void);
kono
parents:
diff changeset
6 void baz (void);
kono
parents:
diff changeset
7 void f1 (void);
kono
parents:
diff changeset
8 #pragma omp declare target to (bar, baz, f1, a, b, c)
kono
parents:
diff changeset
9
kono
parents:
diff changeset
10 void
kono
parents:
diff changeset
11 f1 (void)
kono
parents:
diff changeset
12 {
kono
parents:
diff changeset
13 int i, j;
kono
parents:
diff changeset
14
kono
parents:
diff changeset
15 if (a) /* { dg-warning "ambiguous" } */
kono
parents:
diff changeset
16 #pragma omp distribute
kono
parents:
diff changeset
17 for (i = 0; i < 10; i++)
kono
parents:
diff changeset
18 if (b)
kono
parents:
diff changeset
19 bar ();
kono
parents:
diff changeset
20 else
kono
parents:
diff changeset
21 baz ();
kono
parents:
diff changeset
22
kono
parents:
diff changeset
23 if (a) /* { dg-warning "ambiguous" } */
kono
parents:
diff changeset
24 for (i = 0; i < 10; i++)
kono
parents:
diff changeset
25 #pragma omp distribute simd
kono
parents:
diff changeset
26 for (j = 0; j < 10; j++)
kono
parents:
diff changeset
27 if (b)
kono
parents:
diff changeset
28 bar ();
kono
parents:
diff changeset
29 else
kono
parents:
diff changeset
30 baz ();
kono
parents:
diff changeset
31
kono
parents:
diff changeset
32 if (a)
kono
parents:
diff changeset
33 #pragma omp distribute parallel for
kono
parents:
diff changeset
34 for (i = 0; i < 10; i++)
kono
parents:
diff changeset
35 if (b) /* { dg-warning "ambiguous" } */
kono
parents:
diff changeset
36 #pragma omp parallel for
kono
parents:
diff changeset
37 for (j = 0; j < 10; j++)
kono
parents:
diff changeset
38 if (c)
kono
parents:
diff changeset
39 bar ();
kono
parents:
diff changeset
40 else
kono
parents:
diff changeset
41 baz ();
kono
parents:
diff changeset
42
kono
parents:
diff changeset
43 if (a) /* { dg-warning "ambiguous" } */
kono
parents:
diff changeset
44 #pragma omp distribute parallel for simd collapse(2)
kono
parents:
diff changeset
45 for (i = 0; i < 10; i++)
kono
parents:
diff changeset
46 for (j = 0; j < 10; j++)
kono
parents:
diff changeset
47 if (b)
kono
parents:
diff changeset
48 bar ();
kono
parents:
diff changeset
49 else
kono
parents:
diff changeset
50 baz ();
kono
parents:
diff changeset
51
kono
parents:
diff changeset
52 if (a)
kono
parents:
diff changeset
53 #pragma omp distribute
kono
parents:
diff changeset
54 for (i = 0; i < 10; i++)
kono
parents:
diff changeset
55 {
kono
parents:
diff changeset
56 if (b)
kono
parents:
diff changeset
57 bar ();
kono
parents:
diff changeset
58 else
kono
parents:
diff changeset
59 baz ();
kono
parents:
diff changeset
60 }
kono
parents:
diff changeset
61
kono
parents:
diff changeset
62 if (a)
kono
parents:
diff changeset
63 {
kono
parents:
diff changeset
64 #pragma omp distribute simd
kono
parents:
diff changeset
65 for (i = 0; i < 10; ++i)
kono
parents:
diff changeset
66 if (b)
kono
parents:
diff changeset
67 bar ();
kono
parents:
diff changeset
68 }
kono
parents:
diff changeset
69 else baz ();
kono
parents:
diff changeset
70
kono
parents:
diff changeset
71 if (a)
kono
parents:
diff changeset
72 #pragma omp distribute parallel for collapse(2)
kono
parents:
diff changeset
73 for (i = 0; i < 10; i++)
kono
parents:
diff changeset
74 {
kono
parents:
diff changeset
75 for (j = 0; j < 10; j++)
kono
parents:
diff changeset
76 if (b)
kono
parents:
diff changeset
77 bar ();
kono
parents:
diff changeset
78 else
kono
parents:
diff changeset
79 baz ();
kono
parents:
diff changeset
80 }
kono
parents:
diff changeset
81
kono
parents:
diff changeset
82 if (a)
kono
parents:
diff changeset
83 for (i = 0; i < 10; i++)
kono
parents:
diff changeset
84 #pragma omp distribute parallel for simd
kono
parents:
diff changeset
85 for (j = 0; j < 10; j++)
kono
parents:
diff changeset
86 {
kono
parents:
diff changeset
87 if (b)
kono
parents:
diff changeset
88 bar ();
kono
parents:
diff changeset
89 }
kono
parents:
diff changeset
90 else
kono
parents:
diff changeset
91 baz ();
kono
parents:
diff changeset
92 }
kono
parents:
diff changeset
93
kono
parents:
diff changeset
94 void
kono
parents:
diff changeset
95 f2 (void)
kono
parents:
diff changeset
96 {
kono
parents:
diff changeset
97 int i, j;
kono
parents:
diff changeset
98
kono
parents:
diff changeset
99 if (a) /* { dg-warning "ambiguous" } */
kono
parents:
diff changeset
100 #pragma omp target teams distribute
kono
parents:
diff changeset
101 for (i = 0; i < 10; i++)
kono
parents:
diff changeset
102 if (b)
kono
parents:
diff changeset
103 bar ();
kono
parents:
diff changeset
104 else
kono
parents:
diff changeset
105 baz ();
kono
parents:
diff changeset
106
kono
parents:
diff changeset
107 if (a) /* { dg-warning "ambiguous" } */
kono
parents:
diff changeset
108 for (i = 0; i < 10; i++)
kono
parents:
diff changeset
109 #pragma omp target teams distribute simd
kono
parents:
diff changeset
110 for (j = 0; j < 10; j++)
kono
parents:
diff changeset
111 if (b)
kono
parents:
diff changeset
112 bar ();
kono
parents:
diff changeset
113 else
kono
parents:
diff changeset
114 baz ();
kono
parents:
diff changeset
115
kono
parents:
diff changeset
116 if (a)
kono
parents:
diff changeset
117 #pragma omp target teams distribute parallel for
kono
parents:
diff changeset
118 for (i = 0; i < 10; i++)
kono
parents:
diff changeset
119 if (b) /* { dg-warning "ambiguous" } */
kono
parents:
diff changeset
120 #pragma omp parallel for
kono
parents:
diff changeset
121 for (j = 0; j < 10; j++)
kono
parents:
diff changeset
122 if (c)
kono
parents:
diff changeset
123 bar ();
kono
parents:
diff changeset
124 else
kono
parents:
diff changeset
125 baz ();
kono
parents:
diff changeset
126
kono
parents:
diff changeset
127 if (a) /* { dg-warning "ambiguous" } */
kono
parents:
diff changeset
128 #pragma omp target teams distribute parallel for simd collapse(2)
kono
parents:
diff changeset
129 for (i = 0; i < 10; i++)
kono
parents:
diff changeset
130 for (j = 0; j < 10; j++)
kono
parents:
diff changeset
131 if (b)
kono
parents:
diff changeset
132 bar ();
kono
parents:
diff changeset
133 else
kono
parents:
diff changeset
134 baz ();
kono
parents:
diff changeset
135
kono
parents:
diff changeset
136 if (a) /* { dg-warning "ambiguous" } */
kono
parents:
diff changeset
137 #pragma omp target teams
kono
parents:
diff changeset
138 if (b)
kono
parents:
diff changeset
139 bar ();
kono
parents:
diff changeset
140 else
kono
parents:
diff changeset
141 baz ();
kono
parents:
diff changeset
142
kono
parents:
diff changeset
143 if (a) /* { dg-warning "ambiguous" } */
kono
parents:
diff changeset
144 #pragma omp target
kono
parents:
diff changeset
145 #pragma omp parallel
kono
parents:
diff changeset
146 if (b)
kono
parents:
diff changeset
147 bar ();
kono
parents:
diff changeset
148 else
kono
parents:
diff changeset
149 baz ();
kono
parents:
diff changeset
150
kono
parents:
diff changeset
151 if (a) /* { dg-warning "ambiguous" } */
kono
parents:
diff changeset
152 #pragma omp target
kono
parents:
diff changeset
153 if (b)
kono
parents:
diff changeset
154 bar ();
kono
parents:
diff changeset
155 else
kono
parents:
diff changeset
156 baz ();
kono
parents:
diff changeset
157
kono
parents:
diff changeset
158 if (a) /* { dg-warning "ambiguous" } */
kono
parents:
diff changeset
159 #pragma omp target parallel
kono
parents:
diff changeset
160 if (b)
kono
parents:
diff changeset
161 bar ();
kono
parents:
diff changeset
162 else
kono
parents:
diff changeset
163 baz ();
kono
parents:
diff changeset
164
kono
parents:
diff changeset
165 if (a) /* { dg-warning "ambiguous" } */
kono
parents:
diff changeset
166 #pragma omp target simd
kono
parents:
diff changeset
167 for (i = 0; i < 10; i++)
kono
parents:
diff changeset
168 if (b)
kono
parents:
diff changeset
169 bar ();
kono
parents:
diff changeset
170 else
kono
parents:
diff changeset
171 baz ();
kono
parents:
diff changeset
172
kono
parents:
diff changeset
173 if (a) /* { dg-warning "ambiguous" } */
kono
parents:
diff changeset
174 #pragma omp target simd collapse(2)
kono
parents:
diff changeset
175 for (i = 0; i < 10; i++)
kono
parents:
diff changeset
176 for (j = 0; j < 10; j++)
kono
parents:
diff changeset
177 if (b)
kono
parents:
diff changeset
178 bar ();
kono
parents:
diff changeset
179 else
kono
parents:
diff changeset
180 baz ();
kono
parents:
diff changeset
181
kono
parents:
diff changeset
182 if (a)
kono
parents:
diff changeset
183 #pragma omp target teams distribute
kono
parents:
diff changeset
184 for (i = 0; i < 10; i++)
kono
parents:
diff changeset
185 {
kono
parents:
diff changeset
186 if (b)
kono
parents:
diff changeset
187 bar ();
kono
parents:
diff changeset
188 else
kono
parents:
diff changeset
189 baz ();
kono
parents:
diff changeset
190 }
kono
parents:
diff changeset
191
kono
parents:
diff changeset
192 if (a)
kono
parents:
diff changeset
193 {
kono
parents:
diff changeset
194 #pragma omp target teams distribute simd
kono
parents:
diff changeset
195 for (i = 0; i < 10; ++i)
kono
parents:
diff changeset
196 if (b)
kono
parents:
diff changeset
197 bar ();
kono
parents:
diff changeset
198 }
kono
parents:
diff changeset
199 else baz ();
kono
parents:
diff changeset
200
kono
parents:
diff changeset
201 if (a)
kono
parents:
diff changeset
202 #pragma omp target teams distribute parallel for collapse(2)
kono
parents:
diff changeset
203 for (i = 0; i < 10; i++)
kono
parents:
diff changeset
204 {
kono
parents:
diff changeset
205 for (j = 0; j < 10; j++)
kono
parents:
diff changeset
206 if (b)
kono
parents:
diff changeset
207 bar ();
kono
parents:
diff changeset
208 else
kono
parents:
diff changeset
209 baz ();
kono
parents:
diff changeset
210 }
kono
parents:
diff changeset
211
kono
parents:
diff changeset
212 if (a)
kono
parents:
diff changeset
213 for (i = 0; i < 10; i++)
kono
parents:
diff changeset
214 #pragma omp target teams distribute parallel for simd
kono
parents:
diff changeset
215 for (j = 0; j < 10; j++)
kono
parents:
diff changeset
216 {
kono
parents:
diff changeset
217 if (b)
kono
parents:
diff changeset
218 bar ();
kono
parents:
diff changeset
219 }
kono
parents:
diff changeset
220 else
kono
parents:
diff changeset
221 baz ();
kono
parents:
diff changeset
222
kono
parents:
diff changeset
223 if (a)
kono
parents:
diff changeset
224 #pragma omp target teams
kono
parents:
diff changeset
225 {
kono
parents:
diff changeset
226 if (b)
kono
parents:
diff changeset
227 bar ();
kono
parents:
diff changeset
228 }
kono
parents:
diff changeset
229 else
kono
parents:
diff changeset
230 baz ();
kono
parents:
diff changeset
231
kono
parents:
diff changeset
232 if (a)
kono
parents:
diff changeset
233 #pragma omp target
kono
parents:
diff changeset
234 #pragma omp parallel
kono
parents:
diff changeset
235 {
kono
parents:
diff changeset
236 if (b)
kono
parents:
diff changeset
237 bar ();
kono
parents:
diff changeset
238 else
kono
parents:
diff changeset
239 baz ();
kono
parents:
diff changeset
240 }
kono
parents:
diff changeset
241
kono
parents:
diff changeset
242 if (a)
kono
parents:
diff changeset
243 #pragma omp target
kono
parents:
diff changeset
244 {
kono
parents:
diff changeset
245 if (b)
kono
parents:
diff changeset
246 bar ();
kono
parents:
diff changeset
247 }
kono
parents:
diff changeset
248 else
kono
parents:
diff changeset
249 baz ();
kono
parents:
diff changeset
250
kono
parents:
diff changeset
251 if (a)
kono
parents:
diff changeset
252 #pragma omp target parallel
kono
parents:
diff changeset
253 {
kono
parents:
diff changeset
254 if (b)
kono
parents:
diff changeset
255 bar ();
kono
parents:
diff changeset
256 }
kono
parents:
diff changeset
257 else
kono
parents:
diff changeset
258 baz ();
kono
parents:
diff changeset
259
kono
parents:
diff changeset
260 if (a)
kono
parents:
diff changeset
261 #pragma omp target simd
kono
parents:
diff changeset
262 for (i = 0; i < 10; i++)
kono
parents:
diff changeset
263 {
kono
parents:
diff changeset
264 if (b)
kono
parents:
diff changeset
265 bar ();
kono
parents:
diff changeset
266 else
kono
parents:
diff changeset
267 baz ();
kono
parents:
diff changeset
268 }
kono
parents:
diff changeset
269
kono
parents:
diff changeset
270 if (a)
kono
parents:
diff changeset
271 #pragma omp target simd
kono
parents:
diff changeset
272 for (i = 0; i < 10; i++)
kono
parents:
diff changeset
273 {
kono
parents:
diff changeset
274 if (b)
kono
parents:
diff changeset
275 bar ();
kono
parents:
diff changeset
276 }
kono
parents:
diff changeset
277 else
kono
parents:
diff changeset
278 baz ();
kono
parents:
diff changeset
279
kono
parents:
diff changeset
280 if (a)
kono
parents:
diff changeset
281 #pragma omp target simd collapse(2)
kono
parents:
diff changeset
282 for (i = 0; i < 10; i++)
kono
parents:
diff changeset
283 { {
kono
parents:
diff changeset
284 for (j = 0; j < 10; j++)
kono
parents:
diff changeset
285 if (b)
kono
parents:
diff changeset
286 bar ();
kono
parents:
diff changeset
287 else
kono
parents:
diff changeset
288 baz ();
kono
parents:
diff changeset
289 } }
kono
parents:
diff changeset
290
kono
parents:
diff changeset
291 if (a)
kono
parents:
diff changeset
292 #pragma omp target simd collapse(2)
kono
parents:
diff changeset
293 for (i = 0; i < 10; i++)
kono
parents:
diff changeset
294 { {
kono
parents:
diff changeset
295 for (j = 0; j < 10; j++)
kono
parents:
diff changeset
296 if (b)
kono
parents:
diff changeset
297 bar ();
kono
parents:
diff changeset
298 }
kono
parents:
diff changeset
299 }
kono
parents:
diff changeset
300 else
kono
parents:
diff changeset
301 baz ();
kono
parents:
diff changeset
302 }
kono
parents:
diff changeset
303
kono
parents:
diff changeset
304 void
kono
parents:
diff changeset
305 f3 (void)
kono
parents:
diff changeset
306 {
kono
parents:
diff changeset
307 int i, j;
kono
parents:
diff changeset
308
kono
parents:
diff changeset
309 if (a) /* { dg-warning "ambiguous" } */
kono
parents:
diff changeset
310 #pragma omp target
kono
parents:
diff changeset
311 #pragma omp teams distribute
kono
parents:
diff changeset
312 for (i = 0; i < 10; i++)
kono
parents:
diff changeset
313 if (b)
kono
parents:
diff changeset
314 bar ();
kono
parents:
diff changeset
315 else
kono
parents:
diff changeset
316 baz ();
kono
parents:
diff changeset
317
kono
parents:
diff changeset
318 if (a) /* { dg-warning "ambiguous" } */
kono
parents:
diff changeset
319 for (i = 0; i < 10; i++)
kono
parents:
diff changeset
320 #pragma omp target
kono
parents:
diff changeset
321 #pragma omp teams distribute simd
kono
parents:
diff changeset
322 for (j = 0; j < 10; j++)
kono
parents:
diff changeset
323 if (b)
kono
parents:
diff changeset
324 bar ();
kono
parents:
diff changeset
325 else
kono
parents:
diff changeset
326 baz ();
kono
parents:
diff changeset
327
kono
parents:
diff changeset
328 if (a)
kono
parents:
diff changeset
329 #pragma omp target
kono
parents:
diff changeset
330 #pragma omp teams distribute parallel for
kono
parents:
diff changeset
331 for (i = 0; i < 10; i++)
kono
parents:
diff changeset
332 if (b) /* { dg-warning "ambiguous" } */
kono
parents:
diff changeset
333 #pragma omp parallel for
kono
parents:
diff changeset
334 for (j = 0; j < 10; j++)
kono
parents:
diff changeset
335 if (c)
kono
parents:
diff changeset
336 bar ();
kono
parents:
diff changeset
337 else
kono
parents:
diff changeset
338 baz ();
kono
parents:
diff changeset
339
kono
parents:
diff changeset
340 if (a) /* { dg-warning "ambiguous" } */
kono
parents:
diff changeset
341 #pragma omp target
kono
parents:
diff changeset
342 #pragma omp teams distribute parallel for simd collapse(2)
kono
parents:
diff changeset
343 for (i = 0; i < 10; i++)
kono
parents:
diff changeset
344 for (j = 0; j < 10; j++)
kono
parents:
diff changeset
345 if (b)
kono
parents:
diff changeset
346 bar ();
kono
parents:
diff changeset
347 else
kono
parents:
diff changeset
348 baz ();
kono
parents:
diff changeset
349
kono
parents:
diff changeset
350 if (a) /* { dg-warning "ambiguous" } */
kono
parents:
diff changeset
351 #pragma omp target
kono
parents:
diff changeset
352 #pragma omp teams
kono
parents:
diff changeset
353 if (b)
kono
parents:
diff changeset
354 bar ();
kono
parents:
diff changeset
355 else
kono
parents:
diff changeset
356 baz ();
kono
parents:
diff changeset
357
kono
parents:
diff changeset
358 if (a) /* { dg-warning "ambiguous" } */
kono
parents:
diff changeset
359 #pragma omp target
kono
parents:
diff changeset
360 #pragma omp teams
kono
parents:
diff changeset
361 #pragma omp parallel
kono
parents:
diff changeset
362 if (b)
kono
parents:
diff changeset
363 bar ();
kono
parents:
diff changeset
364 else
kono
parents:
diff changeset
365 baz ();
kono
parents:
diff changeset
366
kono
parents:
diff changeset
367 if (a)
kono
parents:
diff changeset
368 #pragma omp target
kono
parents:
diff changeset
369 #pragma omp teams distribute
kono
parents:
diff changeset
370 for (i = 0; i < 10; i++)
kono
parents:
diff changeset
371 {
kono
parents:
diff changeset
372 if (b)
kono
parents:
diff changeset
373 bar ();
kono
parents:
diff changeset
374 else
kono
parents:
diff changeset
375 baz ();
kono
parents:
diff changeset
376 }
kono
parents:
diff changeset
377
kono
parents:
diff changeset
378 if (a)
kono
parents:
diff changeset
379 {
kono
parents:
diff changeset
380 #pragma omp target
kono
parents:
diff changeset
381 #pragma omp teams distribute simd
kono
parents:
diff changeset
382 for (i = 0; i < 10; ++i)
kono
parents:
diff changeset
383 if (b)
kono
parents:
diff changeset
384 bar ();
kono
parents:
diff changeset
385 }
kono
parents:
diff changeset
386 else baz ();
kono
parents:
diff changeset
387
kono
parents:
diff changeset
388 if (a)
kono
parents:
diff changeset
389 #pragma omp target
kono
parents:
diff changeset
390 #pragma omp teams distribute parallel for collapse(2)
kono
parents:
diff changeset
391 for (i = 0; i < 10; i++)
kono
parents:
diff changeset
392 {
kono
parents:
diff changeset
393 for (j = 0; j < 10; j++)
kono
parents:
diff changeset
394 if (b)
kono
parents:
diff changeset
395 bar ();
kono
parents:
diff changeset
396 else
kono
parents:
diff changeset
397 baz ();
kono
parents:
diff changeset
398 }
kono
parents:
diff changeset
399
kono
parents:
diff changeset
400 if (a)
kono
parents:
diff changeset
401 for (i = 0; i < 10; i++)
kono
parents:
diff changeset
402 #pragma omp target
kono
parents:
diff changeset
403 #pragma omp teams distribute parallel for simd
kono
parents:
diff changeset
404 for (j = 0; j < 10; j++)
kono
parents:
diff changeset
405 {
kono
parents:
diff changeset
406 if (b)
kono
parents:
diff changeset
407 bar ();
kono
parents:
diff changeset
408 }
kono
parents:
diff changeset
409 else
kono
parents:
diff changeset
410 baz ();
kono
parents:
diff changeset
411
kono
parents:
diff changeset
412 if (a)
kono
parents:
diff changeset
413 #pragma omp target
kono
parents:
diff changeset
414 #pragma omp teams
kono
parents:
diff changeset
415 {
kono
parents:
diff changeset
416 if (b)
kono
parents:
diff changeset
417 bar ();
kono
parents:
diff changeset
418 }
kono
parents:
diff changeset
419 else
kono
parents:
diff changeset
420 baz ();
kono
parents:
diff changeset
421
kono
parents:
diff changeset
422 if (a)
kono
parents:
diff changeset
423 #pragma omp target
kono
parents:
diff changeset
424 #pragma omp teams
kono
parents:
diff changeset
425 #pragma omp parallel
kono
parents:
diff changeset
426 {
kono
parents:
diff changeset
427 if (b)
kono
parents:
diff changeset
428 bar ();
kono
parents:
diff changeset
429 else
kono
parents:
diff changeset
430 baz ();
kono
parents:
diff changeset
431 }
kono
parents:
diff changeset
432 }
kono
parents:
diff changeset
433
kono
parents:
diff changeset
434 void
kono
parents:
diff changeset
435 f4 (void)
kono
parents:
diff changeset
436 {
kono
parents:
diff changeset
437 if (a) /* { dg-warning "ambiguous" } */
kono
parents:
diff changeset
438 #pragma omp target data map (tofrom: b)
kono
parents:
diff changeset
439 if (b)
kono
parents:
diff changeset
440 bar ();
kono
parents:
diff changeset
441 else
kono
parents:
diff changeset
442 baz ();
kono
parents:
diff changeset
443
kono
parents:
diff changeset
444 if (a)
kono
parents:
diff changeset
445 #pragma omp target data map (tofrom: b)
kono
parents:
diff changeset
446 {
kono
parents:
diff changeset
447 if (b)
kono
parents:
diff changeset
448 bar ();
kono
parents:
diff changeset
449 else
kono
parents:
diff changeset
450 baz ();
kono
parents:
diff changeset
451 }
kono
parents:
diff changeset
452 }