111
|
1 /* PR c/70436 */
|
|
2 /* { dg-additional-options "-Wparentheses" } */
|
|
3
|
|
4 int a, b, c;
|
|
5 void bar (void);
|
|
6 void baz (void);
|
|
7
|
|
8 void
|
|
9 f1 (void)
|
|
10 {
|
|
11 int i, j;
|
|
12
|
|
13 if (a) /* { dg-warning "ambiguous" } */
|
|
14 #pragma omp for
|
|
15 for (i = 0; i < 10; i++)
|
|
16 if (b)
|
|
17 bar ();
|
|
18 else
|
|
19 baz ();
|
|
20
|
|
21 if (a) /* { dg-warning "ambiguous" } */
|
|
22 while (1)
|
|
23 #pragma omp for
|
|
24 for (i = 0; i < 10; i++)
|
|
25 if (b)
|
|
26 bar ();
|
|
27 else
|
|
28 baz ();
|
|
29
|
|
30 if (a) /* { dg-warning "ambiguous" } */
|
|
31 for (i = 0; i < 10; i++)
|
|
32 #pragma omp for
|
|
33 for (j = 0; j < 10; j++)
|
|
34 if (b)
|
|
35 bar ();
|
|
36 else
|
|
37 baz ();
|
|
38
|
|
39 if (a)
|
|
40 #pragma omp for
|
|
41 for (i = 0; i < 10; i++)
|
|
42 if (b) /* { dg-warning "ambiguous" } */
|
|
43 #pragma omp parallel for
|
|
44 for (j = 0; j < 10; j++)
|
|
45 if (c)
|
|
46 bar ();
|
|
47 else
|
|
48 baz ();
|
|
49
|
|
50 if (a) /* { dg-warning "ambiguous" } */
|
|
51 #pragma omp taskloop
|
|
52 for (i = 0; i < 10; i++)
|
|
53 if (b)
|
|
54 #pragma omp parallel for
|
|
55 for (j = 0; j < 10; j++)
|
|
56 if (c)
|
|
57 bar ();
|
|
58 else
|
|
59 baz ();
|
|
60 else
|
|
61 bar ();
|
|
62
|
|
63 if (a) /* { dg-warning "ambiguous" } */
|
|
64 #pragma omp taskloop simd
|
|
65 for (i = 0; i < 10; i++)
|
|
66 if (b)
|
|
67 bar ();
|
|
68 else
|
|
69 baz ();
|
|
70
|
|
71 if (a) /* { dg-warning "ambiguous" } */
|
|
72 #pragma omp for collapse(2)
|
|
73 for (i = 0; i < 10; i++)
|
|
74 for (j = 0; j < 10; j++)
|
|
75 if (b)
|
|
76 bar ();
|
|
77 else
|
|
78 baz ();
|
|
79
|
|
80 if (a) /* { dg-warning "ambiguous" } */
|
|
81 #pragma omp critical
|
|
82 if (b)
|
|
83 bar ();
|
|
84 else
|
|
85 baz ();
|
|
86
|
|
87 if (a) /* { dg-warning "ambiguous" } */
|
|
88 for (i = 0; i < 10; i++)
|
|
89 #pragma omp simd
|
|
90 for (j = 0; j < 10; j++)
|
|
91 if (b)
|
|
92 bar ();
|
|
93 else
|
|
94 baz ();
|
|
95
|
|
96 if (a) /* { dg-warning "ambiguous" } */
|
|
97 #pragma omp for simd schedule(runtime)
|
|
98 for (i = 0; i < 10; i++)
|
|
99 if (b)
|
|
100 bar ();
|
|
101 else
|
|
102 baz ();
|
|
103
|
|
104 if (a) /* { dg-warning "ambiguous" } */
|
|
105 #pragma omp master
|
|
106 if (b)
|
|
107 bar ();
|
|
108 else
|
|
109 baz ();
|
|
110
|
|
111 if (a) /* { dg-warning "ambiguous" } */
|
|
112 #pragma omp parallel
|
|
113 if (b)
|
|
114 bar ();
|
|
115 else
|
|
116 baz ();
|
|
117
|
|
118 if (a) /* { dg-warning "ambiguous" } */
|
|
119 for (i = 0; i < 10; i++)
|
|
120 #pragma omp parallel for
|
|
121 for (j = 0; j < 10; j++)
|
|
122 if (b)
|
|
123 bar ();
|
|
124 else
|
|
125 baz ();
|
|
126
|
|
127 if (a) /* { dg-warning "ambiguous" } */
|
|
128 for (i = 0; i < 10; i++)
|
|
129 #pragma omp parallel for simd
|
|
130 for (j = 0; j < 10; j++)
|
|
131 if (b)
|
|
132 bar ();
|
|
133 else
|
|
134 baz ();
|
|
135
|
|
136 if (a) /* { dg-warning "ambiguous" } */
|
|
137 #pragma omp single
|
|
138 if (b)
|
|
139 bar ();
|
|
140 else
|
|
141 baz ();
|
|
142
|
|
143 if (a) /* { dg-warning "ambiguous" } */
|
|
144 #pragma omp task
|
|
145 if (b)
|
|
146 bar ();
|
|
147 else
|
|
148 baz ();
|
|
149
|
|
150 if (a) /* { dg-warning "ambiguous" } */
|
|
151 #pragma omp taskgroup
|
|
152 if (b)
|
|
153 bar ();
|
|
154 else
|
|
155 baz ();
|
|
156
|
|
157 if (a)
|
|
158 #pragma omp for
|
|
159 for (i = 0; i < 10; i++)
|
|
160 {
|
|
161 if (b)
|
|
162 bar ();
|
|
163 else
|
|
164 baz ();
|
|
165 }
|
|
166
|
|
167 if (a)
|
|
168 {
|
|
169 #pragma omp taskloop
|
|
170 for (i = 0; i < 10; ++i)
|
|
171 if (b)
|
|
172 bar ();
|
|
173 }
|
|
174 else baz ();
|
|
175
|
|
176 if (a)
|
|
177 #pragma omp for collapse(2)
|
|
178 for (i = 0; i < 10; i++)
|
|
179 {
|
|
180 for (j = 0; j < 10; j++)
|
|
181 if (b)
|
|
182 bar ();
|
|
183 else
|
|
184 baz ();
|
|
185 }
|
|
186
|
|
187 if (a)
|
|
188 #pragma omp critical
|
|
189 {
|
|
190 if (b)
|
|
191 bar ();
|
|
192 else
|
|
193 baz ();
|
|
194 }
|
|
195
|
|
196 if (a)
|
|
197 for (i = 0; i < 10; i++)
|
|
198 #pragma omp simd
|
|
199 for (j = 0; j < 10; j++)
|
|
200 {
|
|
201 if (b)
|
|
202 bar ();
|
|
203 }
|
|
204 else
|
|
205 baz ();
|
|
206
|
|
207 if (a)
|
|
208 #pragma omp for simd schedule(dynamic, 5)
|
|
209 for (i = 0; i < 10; i++)
|
|
210 {
|
|
211 if (b)
|
|
212 bar ();
|
|
213 else
|
|
214 baz ();
|
|
215 }
|
|
216
|
|
217 if (a)
|
|
218 #pragma omp master
|
|
219 {
|
|
220 if (b)
|
|
221 bar ();
|
|
222 else
|
|
223 baz ();
|
|
224 }
|
|
225
|
|
226 if (a)
|
|
227 #pragma omp parallel
|
|
228 {
|
|
229 if (b)
|
|
230 bar ();
|
|
231 else
|
|
232 baz ();
|
|
233 }
|
|
234
|
|
235 if (a)
|
|
236 {
|
|
237 #pragma omp parallel
|
|
238 if (b)
|
|
239 bar ();
|
|
240 else
|
|
241 baz ();
|
|
242 }
|
|
243
|
|
244 if (a)
|
|
245 for (i = 0; i < 10; i++)
|
|
246 #pragma omp parallel for
|
|
247 for (j = 0; j < 10; j++)
|
|
248 {
|
|
249 if (b)
|
|
250 bar ();
|
|
251 }
|
|
252 else
|
|
253 baz ();
|
|
254
|
|
255 if (a)
|
|
256 for (i = 0; i < 10; i++)
|
|
257 #pragma omp parallel for simd
|
|
258 for (j = 0; j < 10; j++)
|
|
259 {
|
|
260 if (b)
|
|
261 bar ();
|
|
262 }
|
|
263 else
|
|
264 baz ();
|
|
265
|
|
266 if (a)
|
|
267 #pragma omp single
|
|
268 {
|
|
269 if (b)
|
|
270 bar ();
|
|
271 }
|
|
272 else
|
|
273 baz ();
|
|
274
|
|
275 if (a)
|
|
276 #pragma omp task
|
|
277 {
|
|
278 if (b)
|
|
279 bar ();
|
|
280 }
|
|
281 else
|
|
282 baz ();
|
|
283
|
|
284 if (a)
|
|
285 #pragma omp taskgroup
|
|
286 {
|
|
287 if (b)
|
|
288 bar ();
|
|
289 else
|
|
290 baz ();
|
|
291 }
|
|
292
|
|
293 if (a)
|
|
294 #pragma omp taskloop simd
|
|
295 for (i = 0; i < 10; i++)
|
|
296 {
|
|
297 if (b)
|
|
298 bar ();
|
|
299 else
|
|
300 baz ();
|
|
301 }
|
|
302 }
|
|
303
|
|
304 void
|
|
305 f2 (int d, int e, int f)
|
|
306 {
|
|
307 if (a) /* { dg-warning "ambiguous" } */
|
|
308 #pragma omp ordered
|
|
309 if (b)
|
|
310 bar ();
|
|
311 else
|
|
312 baz ();
|
|
313
|
|
314 if (d) /* { dg-warning "ambiguous" } */
|
|
315 #pragma omp ordered threads
|
|
316 if (b)
|
|
317 bar ();
|
|
318 else
|
|
319 baz ();
|
|
320
|
|
321 if (e)
|
|
322 #pragma omp ordered
|
|
323 {
|
|
324 if (b)
|
|
325 bar ();
|
|
326 else
|
|
327 baz ();
|
|
328 }
|
|
329
|
|
330 if (f)
|
|
331 #pragma omp ordered threads
|
|
332 {
|
|
333 if (b)
|
|
334 bar ();
|
|
335 else
|
|
336 baz ();
|
|
337 }
|
|
338 }
|