Daily bump.
[official-gcc.git] / gcc / testsuite / c-c++-common / goacc-gomp / nesting-fail-1.c
blob1a3324200e2c4989d5189cafc35df7bf38d8aa0b
1 extern int i;
2 #pragma acc declare create(i)
4 void
5 f_omp (void)
7 #pragma omp parallel
9 #pragma acc parallel /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
11 #pragma acc kernels /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
13 #pragma acc data /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
15 #pragma acc update host(i) /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
16 #pragma acc enter data copyin(i) /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
17 #pragma acc exit data delete(i) /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
18 #pragma acc loop /* { dg-error "loop directive must be associated with an OpenACC compute region" } */
19 for (i = 0; i < 2; ++i)
23 #pragma omp for
24 for (i = 0; i < 3; i++)
26 #pragma acc parallel /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
28 #pragma acc kernels /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
30 #pragma acc data /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
32 #pragma acc update host(i) /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
33 #pragma acc enter data copyin(i) /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
34 #pragma acc exit data delete(i) /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
35 #pragma acc loop /* { dg-error "loop directive must be associated with an OpenACC compute region" } */
36 for (i = 0; i < 2; ++i)
40 #pragma omp sections
43 #pragma acc parallel /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
46 #pragma omp section
48 #pragma acc kernels /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
51 #pragma omp section
53 #pragma acc data /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
56 #pragma omp section
58 #pragma acc update host(i) /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
60 #pragma omp section
62 #pragma acc enter data copyin(i) /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
64 #pragma omp section
66 #pragma acc exit data delete(i) /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
68 #pragma omp section
70 #pragma acc loop /* { dg-error "loop directive must be associated with an OpenACC compute region" } */
71 for (i = 0; i < 2; ++i)
76 #pragma omp single
78 #pragma acc parallel /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
80 #pragma acc kernels /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
82 #pragma acc data /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
84 #pragma acc update host(i) /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
85 #pragma acc enter data copyin(i) /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
86 #pragma acc exit data delete(i) /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
87 #pragma acc loop /* { dg-error "loop directive must be associated with an OpenACC compute region" } */
88 for (i = 0; i < 2; ++i)
92 #pragma omp task
94 #pragma acc parallel /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
96 #pragma acc kernels /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
98 #pragma acc data /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
100 #pragma acc update host(i) /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
101 #pragma acc enter data copyin(i) /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
102 #pragma acc exit data delete(i) /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
103 #pragma acc loop /* { dg-error "loop directive must be associated with an OpenACC compute region" } */
104 for (i = 0; i < 2; ++i)
108 #pragma omp master
110 #pragma acc parallel /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
112 #pragma acc kernels /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
114 #pragma acc data /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
116 #pragma acc update host(i) /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
117 #pragma acc enter data copyin(i) /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
118 #pragma acc exit data delete(i) /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
119 #pragma acc loop /* { dg-error "loop directive must be associated with an OpenACC compute region" } */
120 for (i = 0; i < 2; ++i)
124 #pragma omp critical
126 #pragma acc parallel /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
128 #pragma acc kernels /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
130 #pragma acc data /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
132 #pragma acc update host(i) /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
133 #pragma acc enter data copyin(i) /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
134 #pragma acc exit data delete(i) /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
135 #pragma acc loop /* { dg-error "loop directive must be associated with an OpenACC compute region" } */
136 for (i = 0; i < 2; ++i)
140 #pragma omp ordered
142 #pragma acc parallel /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
144 #pragma acc kernels /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
146 #pragma acc data /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
148 #pragma acc update host(i) /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
149 #pragma acc enter data copyin(i) /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
150 #pragma acc exit data delete(i) /* { dg-error "OpenACC construct inside of non-OpenACC region" } */
151 #pragma acc loop /* { dg-error "loop directive must be associated with an OpenACC compute region" } */
152 for (i = 0; i < 2; ++i)
156 #pragma omp target
158 #pragma acc parallel /* { dg-error "OpenACC .parallel. construct inside of OpenMP .target. region" } */
160 #pragma acc kernels /* { dg-error "OpenACC .kernels. construct inside of OpenMP .target. region" } */
162 #pragma acc data /* { dg-error "OpenACC .data. construct inside of OpenMP .target. region" } */
164 #pragma acc update host(i) /* { dg-error "OpenACC .update. construct inside of OpenMP .target. region" } */
165 #pragma acc enter data copyin(i) /* { dg-error "OpenACC .enter/exit data. construct inside of OpenMP .target. region" } */
166 #pragma acc exit data delete(i) /* { dg-error "OpenACC .enter/exit data. construct inside of OpenMP .target. region" } */
167 #pragma acc loop /* { dg-error "loop directive must be associated with an OpenACC compute region" } */
168 for (i = 0; i < 2; ++i)
173 void
174 f_acc_parallel (void)
176 #pragma acc parallel
178 #pragma omp parallel /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
182 #pragma acc parallel
184 #pragma omp for /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
185 for (i = 0; i < 3; i++)
189 #pragma acc parallel
191 #pragma omp sections /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
197 #pragma acc parallel
199 #pragma omp single /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
203 #pragma acc parallel
205 #pragma omp task /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
209 #pragma acc parallel
211 #pragma omp master /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
215 #pragma acc parallel
217 #pragma omp critical /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
221 #pragma acc parallel
223 #pragma omp ordered /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
227 #pragma acc parallel
229 #pragma omp target /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
231 #pragma omp target data map(i) /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
233 #pragma omp target update to(i) /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
237 void
238 f_acc_kernels (void)
240 #pragma acc kernels
242 #pragma omp parallel /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
246 #pragma acc kernels
248 #pragma omp for /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
249 for (i = 0; i < 3; i++)
253 #pragma acc kernels
255 #pragma omp sections /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
261 #pragma acc kernels
263 #pragma omp single /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
267 #pragma acc kernels
269 #pragma omp task /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
273 #pragma acc kernels
275 #pragma omp master /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
279 #pragma acc kernels
281 #pragma omp critical /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
285 #pragma acc kernels
287 #pragma omp ordered /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
291 #pragma acc kernels
293 #pragma omp target /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
295 #pragma omp target data map(i) /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
297 #pragma omp target update to(i) /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
301 void
302 f_acc_data (void)
304 #pragma acc data
306 #pragma omp parallel /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
310 #pragma acc data
312 #pragma omp for /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
313 for (i = 0; i < 3; i++)
317 #pragma acc data
319 #pragma omp sections /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
325 #pragma acc data
327 #pragma omp single /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
331 #pragma acc data
333 #pragma omp task /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
337 #pragma acc data
339 #pragma omp master /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
343 #pragma acc data
345 #pragma omp critical /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
349 #pragma acc data
351 #pragma omp ordered /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
355 #pragma acc data
357 #pragma omp target /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
359 #pragma omp target data map(i) /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
361 #pragma omp target update to(i) /* { dg-error "non-OpenACC construct inside of OpenACC region" } */
365 #pragma acc routine
366 void
367 f_acc_loop (void)
369 #pragma acc loop
370 for (i = 0; i < 2; ++i)
372 #pragma omp parallel /* { dg-error "non-OpenACC construct inside of OpenACC routine" } */
376 #pragma acc loop
377 for (i = 0; i < 2; ++i)
379 #pragma omp for /* { dg-error "non-OpenACC construct inside of OpenACC routine" } */
380 for (i = 0; i < 3; i++)
384 #pragma acc loop
385 for (i = 0; i < 2; ++i)
387 #pragma omp sections /* { dg-error "non-OpenACC construct inside of OpenACC routine" } */
393 #pragma acc loop
394 for (i = 0; i < 2; ++i)
396 #pragma omp single /* { dg-error "non-OpenACC construct inside of OpenACC routine" } */
400 #pragma acc loop
401 for (i = 0; i < 2; ++i)
403 #pragma omp task /* { dg-error "non-OpenACC construct inside of OpenACC routine" } */
407 #pragma acc loop
408 for (i = 0; i < 2; ++i)
410 #pragma omp master /* { dg-error "non-OpenACC construct inside of OpenACC routine" } */
414 #pragma acc loop
415 for (i = 0; i < 2; ++i)
417 #pragma omp critical /* { dg-error "non-OpenACC construct inside of OpenACC routine" } */
421 #pragma acc loop
422 for (i = 0; i < 2; ++i)
424 #pragma omp ordered /* { dg-error "non-OpenACC construct inside of OpenACC routine" } */
428 #pragma acc loop
429 for (i = 0; i < 2; ++i)
431 #pragma omp target /* { dg-error "non-OpenACC construct inside of OpenACC routine" } */
433 #pragma omp target data map(i) /* { dg-error "non-OpenACC construct inside of OpenACC routine" } */
435 #pragma omp target update to(i) /* { dg-error "non-OpenACC construct inside of OpenACC routine" } */
439 #pragma acc routine
440 void
441 f_acc_routine (void)
443 #pragma omp target /* { dg-error "non-OpenACC construct inside of OpenACC routine" } */