Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / OpenMP / target_parallel_for_simd_misc_messages.c
blob87dbe8ca230ba27a243fd862ab4e745bd31b09df
1 // RUN: %clang_cc1 -fsyntax-only -fopenmp -fopenmp-version=45 -verify=expected,omp45 %s -Wuninitialized
2 // RUN: %clang_cc1 -fsyntax-only -fopenmp -verify=expected,omp51 %s -Wuninitialized
4 // RUN: %clang_cc1 -fsyntax-only -fopenmp-simd -fopenmp-version=45 -verify=expected,omp45 %s -Wuninitialized
5 // RUN: %clang_cc1 -fsyntax-only -fopenmp-simd -verify=expected,omp51 %s -Wuninitialized
7 // expected-error@+1 {{unexpected OpenMP directive '#pragma omp target parallel for simd'}}
8 #pragma omp target parallel for simd
10 // expected-error@+1 {{unexpected OpenMP directive '#pragma omp target parallel for simd'}}
11 #pragma omp target parallel for simd foo
13 void test_no_clause(void) {
14 int i;
15 #pragma omp target parallel for simd
16 for (i = 0; i < 16; ++i)
19 // expected-error@+2 {{statement after '#pragma omp target parallel for simd' must be a for loop}}
20 #pragma omp target parallel for simd
21 ++i;
24 void test_branch_protected_scope(void) {
25 int i = 0;
26 L1:
27 ++i;
29 int x[24];
31 #pragma omp target parallel for simd
32 for (i = 0; i < 16; ++i) {
33 if (i == 5)
34 goto L1; // expected-error {{use of undeclared label 'L1'}}
35 else if (i == 6)
36 return; // expected-error {{cannot return from OpenMP region}}
37 else if (i == 7)
38 goto L2;
39 else if (i == 8) {
40 L2:
41 x[i]++;
45 if (x[0] == 0)
46 goto L2; // expected-error {{use of undeclared label 'L2'}}
47 else if (x[1] == 1)
48 goto L1;
51 void test_invalid_clause(void) {
52 int i;
53 // expected-warning@+1 {{extra tokens at the end of '#pragma omp target parallel for simd' are ignored}}
54 #pragma omp target parallel for simd foo bar
55 for (i = 0; i < 16; ++i)
59 void test_non_identifiers(void) {
60 int i, x;
62 // expected-warning@+1 {{extra tokens at the end of '#pragma omp target parallel for simd' are ignored}}
63 #pragma omp target parallel for simd;
64 for (i = 0; i < 16; ++i)
67 // expected-warning@+1 {{extra tokens at the end of '#pragma omp target parallel for simd' are ignored}}
68 #pragma omp target parallel for simd private(x);
69 for (i = 0; i < 16; ++i)
72 // expected-warning@+1 {{extra tokens at the end of '#pragma omp target parallel for simd' are ignored}}
73 #pragma omp target parallel for simd, private(x);
74 for (i = 0; i < 16; ++i)
78 extern int foo(void);
80 void test_collapse(void) {
81 int i;
82 // expected-error@+1 {{expected '('}}
83 #pragma omp target parallel for simd collapse
84 for (i = 0; i < 16; ++i)
86 // expected-error@+1 {{expected expression}} expected-error@+1 {{expected ')'}} expected-note@+1 {{to match this '('}}
87 #pragma omp target parallel for simd collapse(
88 for (i = 0; i < 16; ++i)
90 // expected-error@+1 {{expected expression}}
91 #pragma omp target parallel for simd collapse()
92 for (i = 0; i < 16; ++i)
94 // expected-error@+1 {{expected expression}} expected-error@+1 {{expected ')'}} expected-note@+1 {{to match this '('}}
95 #pragma omp target parallel for simd collapse(,
96 for (i = 0; i < 16; ++i)
98 // expected-error@+1 {{expected expression}} expected-error@+1 {{expected ')'}} expected-note@+1 {{to match this '('}}
99 #pragma omp target parallel for simd collapse(, )
100 for (i = 0; i < 16; ++i)
102 // expected-warning@+2 {{extra tokens at the end of '#pragma omp target parallel for simd' are ignored}}
103 // expected-error@+1 {{expected '('}}
104 #pragma omp target parallel for simd collapse 4)
105 for (i = 0; i < 16; ++i)
107 // expected-error@+2 {{expected ')'}}
108 // expected-note@+1 {{to match this '('}} expected-note@+1 {{as specified in 'collapse' clause}}
109 #pragma omp target parallel for simd collapse(4
110 for (i = 0; i < 16; ++i)
111 ; // expected-error {{expected 4 for loops after '#pragma omp target parallel for simd', but found only 1}}
112 // expected-error@+2 {{expected ')'}}
113 // expected-note@+1 {{to match this '('}} expected-note@+1 {{as specified in 'collapse' clause}}
114 #pragma omp target parallel for simd collapse(4,
115 for (i = 0; i < 16; ++i)
116 ; // expected-error {{expected 4 for loops after '#pragma omp target parallel for simd', but found only 1}}
117 // expected-error@+2 {{expected ')'}}
118 // expected-note@+1 {{to match this '('}} expected-note@+1 {{as specified in 'collapse' clause}}
119 #pragma omp target parallel for simd collapse(4, )
120 for (i = 0; i < 16; ++i)
121 ; // expected-error {{expected 4 for loops after '#pragma omp target parallel for simd', but found only 1}}
122 // expected-note@+1 {{as specified in 'collapse' clause}}
123 #pragma omp target parallel for simd collapse(4)
124 for (i = 0; i < 16; ++i)
125 ; // expected-error {{expected 4 for loops after '#pragma omp target parallel for simd', but found only 1}}
126 // expected-error@+2 {{expected ')'}}
127 // expected-note@+1 {{to match this '('}} expected-note@+1 {{as specified in 'collapse' clause}}
128 #pragma omp target parallel for simd collapse(4 4)
129 for (i = 0; i < 16; ++i)
130 ; // expected-error {{expected 4 for loops after '#pragma omp target parallel for simd', but found only 1}}
131 // expected-error@+2 {{expected ')'}}
132 // expected-note@+1 {{to match this '('}} expected-note@+1 {{as specified in 'collapse' clause}}
133 #pragma omp target parallel for simd collapse(4, , 4)
134 for (i = 0; i < 16; ++i)
135 ; // expected-error {{expected 4 for loops after '#pragma omp target parallel for simd', but found only 1}}
136 #pragma omp target parallel for simd collapse(4)
137 for (int i1 = 0; i1 < 16; ++i1)
138 for (int i2 = 0; i2 < 16; ++i2)
139 for (int i3 = 0; i3 < 16; ++i3)
140 for (int i4 = 0; i4 < 16; ++i4)
141 foo();
142 // expected-error@+2 {{expected ')'}}
143 // expected-note@+1 {{to match this '('}} expected-note@+1 {{as specified in 'collapse' clause}}
144 #pragma omp target parallel for simd collapse(4, 8)
145 for (i = 0; i < 16; ++i)
146 ; // expected-error {{expected 4 for loops after '#pragma omp target parallel for simd', but found only 1}}
147 // expected-error@+1 {{integer constant expression}}
148 #pragma omp target parallel for simd collapse(2.5)
149 for (i = 0; i < 16; ++i)
151 // expected-error@+1 {{integer constant expression}}
152 #pragma omp target parallel for simd collapse(foo())
153 for (i = 0; i < 16; ++i)
155 // expected-error@+1 {{argument to 'collapse' clause must be a strictly positive integer value}}
156 #pragma omp target parallel for simd collapse(-5)
157 for (i = 0; i < 16; ++i)
159 // expected-error@+1 {{argument to 'collapse' clause must be a strictly positive integer value}}
160 #pragma omp target parallel for simd collapse(0)
161 for (i = 0; i < 16; ++i)
163 // expected-error@+1 {{argument to 'collapse' clause must be a strictly positive integer value}}
164 #pragma omp target parallel for simd collapse(5 - 5)
165 for (i = 0; i < 16; ++i)
167 // expected-note@+1 {{defined as firstprivate}}
168 #pragma omp target parallel for simd collapse(2) firstprivate(i) // expected-note {{defined as firstprivate}}
169 for (i = 0; i < 16; ++i) // expected-error {{loop iteration variable in the associated loop of 'omp target parallel for simd' directive may not be firstprivate, predetermined as lastprivate}}
170 // expected-note@+1 {{variable with automatic storage duration is predetermined as private; perhaps you forget to enclose 'omp for' directive into a parallel or another task region?}}
171 for (int j = 0; j < 16; ++j)
172 // expected-error@+2 2 {{reduction variable must be shared}}
173 // expected-error@+1 {{OpenMP constructs may not be nested inside a simd region}}
174 #pragma omp for reduction(+ : i, j)
175 for (int k = 0; k < 16; ++k)
176 i += j;
179 void test_private(void) {
180 int i;
181 // expected-error@+2 {{expected expression}}
182 // expected-error@+1 {{expected ')'}} expected-note@+1 {{to match this '('}}
183 #pragma omp target parallel for simd private(
184 for (i = 0; i < 16; ++i)
186 // expected-error@+2 {{expected ')'}} expected-note@+2 {{to match this '('}}
187 // expected-error@+1 2 {{expected expression}}
188 #pragma omp target parallel for simd private(,
189 for (i = 0; i < 16; ++i)
191 // expected-error@+1 2 {{expected expression}}
192 #pragma omp target parallel for simd private(, )
193 for (i = 0; i < 16; ++i)
195 // expected-error@+1 {{expected expression}}
196 #pragma omp target parallel for simd private()
197 for (i = 0; i < 16; ++i)
199 // expected-error@+1 {{expected expression}}
200 #pragma omp target parallel for simd private(int)
201 for (i = 0; i < 16; ++i)
203 // expected-error@+1 {{expected variable name}}
204 #pragma omp target parallel for simd private(0)
205 for (i = 0; i < 16; ++i)
208 int x, y, z;
209 #pragma omp target parallel for simd private(x)
210 for (i = 0; i < 16; ++i)
212 #pragma omp target parallel for simd private(x, y)
213 for (i = 0; i < 16; ++i)
215 #pragma omp target parallel for simd private(x, y, z)
216 for (i = 0; i < 16; ++i) {
217 x = y * i + z;
221 void test_lastprivate(void) {
222 int i;
223 // expected-error@+2 {{expected ')'}} expected-note@+2 {{to match this '('}}
224 // expected-error@+1 {{expected expression}}
225 #pragma omp target parallel for simd lastprivate(
226 for (i = 0; i < 16; ++i)
229 // expected-error@+2 {{expected ')'}} expected-note@+2 {{to match this '('}}
230 // expected-error@+1 2 {{expected expression}}
231 #pragma omp target parallel for simd lastprivate(,
232 for (i = 0; i < 16; ++i)
234 // expected-error@+1 2 {{expected expression}}
235 #pragma omp target parallel for simd lastprivate(, )
236 for (i = 0; i < 16; ++i)
238 // expected-error@+1 {{expected expression}}
239 #pragma omp target parallel for simd lastprivate()
240 for (i = 0; i < 16; ++i)
242 // expected-error@+1 {{expected expression}}
243 #pragma omp target parallel for simd lastprivate(int)
244 for (i = 0; i < 16; ++i)
246 // expected-error@+1 {{expected variable name}}
247 #pragma omp target parallel for simd lastprivate(0)
248 for (i = 0; i < 16; ++i)
251 int x, y, z;
252 #pragma omp target parallel for simd lastprivate(x)
253 for (i = 0; i < 16; ++i)
255 #pragma omp target parallel for simd lastprivate(x, y)
256 for (i = 0; i < 16; ++i)
258 #pragma omp target parallel for simd lastprivate(x, y, z)
259 for (i = 0; i < 16; ++i)
263 void test_firstprivate(void) {
264 int i;
265 // expected-error@+2 {{expected ')'}} expected-note@+2 {{to match this '('}}
266 // expected-error@+1 {{expected expression}}
267 #pragma omp target parallel for simd firstprivate(
268 for (i = 0; i < 16; ++i)
271 // expected-error@+2 {{expected ')'}} expected-note@+2 {{to match this '('}}
272 // expected-error@+1 2 {{expected expression}}
273 #pragma omp target parallel for simd firstprivate(,
274 for (i = 0; i < 16; ++i)
276 // expected-error@+1 2 {{expected expression}}
277 #pragma omp target parallel for simd firstprivate(, )
278 for (i = 0; i < 16; ++i)
280 // expected-error@+1 {{expected expression}}
281 #pragma omp target parallel for simd firstprivate()
282 for (i = 0; i < 16; ++i)
284 // expected-error@+1 {{expected expression}}
285 #pragma omp target parallel for simd firstprivate(int)
286 for (i = 0; i < 16; ++i)
288 // expected-error@+1 {{expected variable name}}
289 #pragma omp target parallel for simd firstprivate(0)
290 for (i = 0; i < 16; ++i)
293 int x, y, z;
294 #pragma omp target parallel for simd lastprivate(x) firstprivate(x)
295 for (i = 0; i < 16; ++i)
297 #pragma omp target parallel for simd lastprivate(x, y) firstprivate(x, y)
298 for (i = 0; i < 16; ++i)
300 #pragma omp target parallel for simd lastprivate(x, y, z) firstprivate(x, y, z)
301 for (i = 0; i < 16; ++i)
305 void test_loop_messages(void) {
306 float a[100], b[100], c[100];
307 // expected-error@+2 {{variable must be of integer or pointer type}}
308 #pragma omp target parallel for simd
309 for (float fi = 0; fi < 10.0; fi++) {
310 c[(int)fi] = a[(int)fi] + b[(int)fi];
312 // expected-error@+2 {{variable must be of integer or pointer type}}
313 #pragma omp target parallel for simd
314 for (double fi = 0; fi < 10.0; fi++) {
315 c[(int)fi] = a[(int)fi] + b[(int)fi];
319 void test_safelen(void) {
320 int i;
321 // expected-error@+1 {{expected '('}}
322 #pragma omp target parallel for simd safelen
323 for (i = 0; i < 16; ++i)
325 // expected-error@+1 {{expected expression}} expected-error@+1 {{expected ')'}} expected-note@+1 {{to match this '('}}
326 #pragma omp target parallel for simd safelen(
327 for (i = 0; i < 16; ++i)
329 // expected-error@+1 {{expected expression}}
330 #pragma omp target parallel for simd safelen()
331 for (i = 0; i < 16; ++i)
333 // expected-error@+1 {{expected expression}} expected-error@+1 {{expected ')'}} expected-note@+1 {{to match this '('}}
334 #pragma omp target parallel for simd safelen(,
335 for (i = 0; i < 16; ++i)
337 // expected-error@+1 {{expected expression}} expected-error@+1 {{expected ')'}} expected-note@+1 {{to match this '('}}
338 #pragma omp target parallel for simd safelen(, )
339 for (i = 0; i < 16; ++i)
341 // expected-warning@+2 {{extra tokens at the end of '#pragma omp target parallel for simd' are ignored}}
342 // expected-error@+1 {{expected '('}}
343 #pragma omp target parallel for simd safelen 4)
344 for (i = 0; i < 16; ++i)
346 // expected-error@+2 {{expected ')'}}
347 // expected-note@+1 {{to match this '('}}
348 #pragma omp target parallel for simd safelen(4
349 for (i = 0; i < 16; ++i)
351 // expected-error@+2 {{expected ')'}}
352 // expected-note@+1 {{to match this '('}}
353 #pragma omp target parallel for simd safelen(4,
354 for (i = 0; i < 16; ++i)
356 // expected-error@+2 {{expected ')'}}
357 // expected-note@+1 {{to match this '('}}
358 #pragma omp target parallel for simd safelen(4, )
359 for (i = 0; i < 16; ++i)
361 #pragma omp target parallel for simd safelen(4)
362 for (i = 0; i < 16; ++i)
364 // expected-error@+2 {{expected ')'}}
365 // expected-note@+1 {{to match this '('}}
366 #pragma omp target parallel for simd safelen(4 4)
367 for (i = 0; i < 16; ++i)
369 // expected-error@+2 {{expected ')'}}
370 // expected-note@+1 {{to match this '('}}
371 #pragma omp target parallel for simd safelen(4, , 4)
372 for (i = 0; i < 16; ++i)
374 #pragma omp target parallel for simd safelen(4)
375 for (i = 0; i < 16; ++i)
377 // expected-error@+2 {{expected ')'}}
378 // expected-note@+1 {{to match this '('}}
379 #pragma omp target parallel for simd safelen(4, 8)
380 for (i = 0; i < 16; ++i)
382 // expected-error@+1 {{integer constant expression}}
383 #pragma omp target parallel for simd safelen(2.5)
384 for (i = 0; i < 16; ++i)
386 // expected-error@+1 {{integer constant expression}}
387 #pragma omp target parallel for simd safelen(foo())
388 for (i = 0; i < 16; ++i)
390 // expected-error@+1 {{argument to 'safelen' clause must be a strictly positive integer value}}
391 #pragma omp target parallel for simd safelen(-5)
392 for (i = 0; i < 16; ++i)
394 // expected-error@+1 {{argument to 'safelen' clause must be a strictly positive integer value}}
395 #pragma omp target parallel for simd safelen(0)
396 for (i = 0; i < 16; ++i)
398 // expected-error@+1 {{argument to 'safelen' clause must be a strictly positive integer value}}
399 #pragma omp target parallel for simd safelen(5 - 5)
400 for (i = 0; i < 16; ++i)
404 void test_simdlen(void) {
405 int i;
406 // expected-error@+1 {{expected '('}}
407 #pragma omp target parallel for simd simdlen
408 for (i = 0; i < 16; ++i)
410 // expected-error@+1 {{expected expression}} expected-error@+1 {{expected ')'}} expected-note@+1 {{to match this '('}}
411 #pragma omp target parallel for simd simdlen(
412 for (i = 0; i < 16; ++i)
414 // expected-error@+1 {{expected expression}}
415 #pragma omp target parallel for simd simdlen()
416 for (i = 0; i < 16; ++i)
418 // expected-error@+1 {{expected expression}} expected-error@+1 {{expected ')'}} expected-note@+1 {{to match this '('}}
419 #pragma omp target parallel for simd simdlen(,
420 for (i = 0; i < 16; ++i)
422 // expected-error@+1 {{expected expression}} expected-error@+1 {{expected ')'}} expected-note@+1 {{to match this '('}}
423 #pragma omp target parallel for simd simdlen(, )
424 for (i = 0; i < 16; ++i)
426 // expected-warning@+2 {{extra tokens at the end of '#pragma omp target parallel for simd' are ignored}}
427 // expected-error@+1 {{expected '('}}
428 #pragma omp target parallel for simd simdlen 4)
429 for (i = 0; i < 16; ++i)
431 // expected-error@+2 {{expected ')'}}
432 // expected-note@+1 {{to match this '('}}
433 #pragma omp target parallel for simd simdlen(4
434 for (i = 0; i < 16; ++i)
436 // expected-error@+2 {{expected ')'}}
437 // expected-note@+1 {{to match this '('}}
438 #pragma omp target parallel for simd simdlen(4,
439 for (i = 0; i < 16; ++i)
441 // expected-error@+2 {{expected ')'}}
442 // expected-note@+1 {{to match this '('}}
443 #pragma omp target parallel for simd simdlen(4, )
444 for (i = 0; i < 16; ++i)
446 #pragma omp target parallel for simd simdlen(4)
447 for (i = 0; i < 16; ++i)
449 // expected-error@+2 {{expected ')'}}
450 // expected-note@+1 {{to match this '('}}
451 #pragma omp target parallel for simd simdlen(4 4)
452 for (i = 0; i < 16; ++i)
454 // expected-error@+2 {{expected ')'}}
455 // expected-note@+1 {{to match this '('}}
456 #pragma omp target parallel for simd simdlen(4, , 4)
457 for (i = 0; i < 16; ++i)
459 #pragma omp target parallel for simd simdlen(4)
460 for (i = 0; i < 16; ++i)
462 // expected-error@+2 {{expected ')'}}
463 // expected-note@+1 {{to match this '('}}
464 #pragma omp target parallel for simd simdlen(4, 8)
465 for (i = 0; i < 16; ++i)
467 // expected-error@+1 {{integer constant expression}}
468 #pragma omp target parallel for simd simdlen(2.5)
469 for (i = 0; i < 16; ++i)
471 // expected-error@+1 {{integer constant expression}}
472 #pragma omp target parallel for simd simdlen(foo())
473 for (i = 0; i < 16; ++i)
475 // expected-error@+1 {{argument to 'simdlen' clause must be a strictly positive integer value}}
476 #pragma omp target parallel for simd simdlen(-5)
477 for (i = 0; i < 16; ++i)
479 // expected-error@+1 {{argument to 'simdlen' clause must be a strictly positive integer value}}
480 #pragma omp target parallel for simd simdlen(0)
481 for (i = 0; i < 16; ++i)
483 // expected-error@+1 {{argument to 'simdlen' clause must be a strictly positive integer value}}
484 #pragma omp target parallel for simd simdlen(5 - 5)
485 for (i = 0; i < 16; ++i)
489 void test_safelen_simdlen(void) {
490 int i;
491 // expected-error@+1 {{the value of 'simdlen' parameter must be less than or equal to the value of the 'safelen' parameter}}
492 #pragma omp target parallel for simd simdlen(6) safelen(5)
493 for (i = 0; i < 16; ++i)
495 // expected-error@+1 {{the value of 'simdlen' parameter must be less than or equal to the value of the 'safelen' parameter}}
496 #pragma omp target parallel for simd safelen(5) simdlen(6)
497 for (i = 0; i < 16; ++i)
501 void test_nontemporal(void) {
502 int i;
503 // omp45-error@+1 {{unexpected OpenMP clause 'nontemporal' in directive '#pragma omp target parallel for simd'}} expected-error@+1 {{expected expression}} expected-error@+1 {{expected ')'}} expected-note@+1 {{to match this '('}}
504 #pragma omp target parallel for simd nontemporal(
505 for (i = 0; i < 16; ++i)
507 // omp45-error@+1 {{unexpected OpenMP clause 'nontemporal' in directive '#pragma omp target parallel for simd'}} expected-error@+1 2 {{expected expression}} expected-error@+1 {{expected ')'}} expected-note@+1 {{to match this '('}}
508 #pragma omp target parallel for simd nontemporal(,
509 for (i = 0; i < 16; ++i)
511 // omp45-error@+1 {{unexpected OpenMP clause 'nontemporal' in directive '#pragma omp target parallel for simd'}} expected-error@+1 2 {{expected expression}}
512 #pragma omp target parallel for simd nontemporal(, )
513 for (i = 0; i < 16; ++i)
515 // omp45-error@+1 {{unexpected OpenMP clause 'nontemporal' in directive '#pragma omp target parallel for simd'}} expected-error@+1 {{expected expression}}
516 #pragma omp target parallel for simd nontemporal()
517 for (i = 0; i < 16; ++i)
519 // omp45-error@+1 {{unexpected OpenMP clause 'nontemporal' in directive '#pragma omp target parallel for simd'}} expected-error@+1 {{expected expression}}
520 #pragma omp target parallel for simd nontemporal(int)
521 for (i = 0; i < 16; ++i)
523 // omp45-error@+1 {{unexpected OpenMP clause 'nontemporal' in directive '#pragma omp target parallel for simd'}} omp51-error@+1 {{expected variable name}}
524 #pragma omp target parallel for simd nontemporal(0)
525 for (i = 0; i < 16; ++i)
527 // omp45-error@+1 {{unexpected OpenMP clause 'nontemporal' in directive '#pragma omp target parallel for simd'}} expected-error@+1 {{use of undeclared identifier 'x'}}
528 #pragma omp target parallel for simd nontemporal(x)
529 for (i = 0; i < 16; ++i)
531 // expected-error@+2 {{use of undeclared identifier 'x'}}
532 // omp45-error@+1 {{unexpected OpenMP clause 'nontemporal' in directive '#pragma omp target parallel for simd'}} expected-error@+1 {{use of undeclared identifier 'y'}}
533 #pragma omp target parallel for simd nontemporal(x, y)
534 for (i = 0; i < 16; ++i)
536 // expected-error@+3 {{use of undeclared identifier 'x'}}
537 // expected-error@+2 {{use of undeclared identifier 'y'}}
538 // omp45-error@+1 {{unexpected OpenMP clause 'nontemporal' in directive '#pragma omp target parallel for simd'}} expected-error@+1 {{use of undeclared identifier 'z'}}
539 #pragma omp target parallel for simd nontemporal(x, y, z)
540 for (i = 0; i < 16; ++i)
543 int x, y;
544 // omp45-error@+1 {{unexpected OpenMP clause 'nontemporal' in directive '#pragma omp target parallel for simd'}} expected-error@+1 {{expected ',' or ')' in 'nontemporal' clause}} expected-error@+1 {{expected ')'}} expected-note@+1 {{to match this '('}}
545 #pragma omp target parallel for simd nontemporal(x :)
546 for (i = 0; i < 16; ++i)
548 // omp45-error@+1 {{unexpected OpenMP clause 'nontemporal' in directive '#pragma omp target parallel for simd'}} expected-error@+1 {{expected ')'}} expected-note@+1 {{to match this '('}} expected-error@+1 {{expected ',' or ')' in 'nontemporal' clause}}
549 #pragma omp target parallel for simd nontemporal(x :, )
550 for (i = 0; i < 16; ++i)
553 // omp51-note@+2 {{defined as nontemporal}}
554 // omp45-error@+1 2 {{unexpected OpenMP clause 'nontemporal' in directive '#pragma omp target parallel for simd'}} omp51-error@+1 {{a variable cannot appear in more than one nontemporal clause}}
555 #pragma omp target parallel for simd nontemporal(x) nontemporal(x)
556 for (i = 0; i < 16; ++i)
559 // omp45-error@+1 {{unexpected OpenMP clause 'nontemporal' in directive '#pragma omp target parallel for simd'}}
560 #pragma omp target parallel for simd private(x) nontemporal(x)
561 for (i = 0; i < 16; ++i)
564 // omp45-error@+1 {{unexpected OpenMP clause 'nontemporal' in directive '#pragma omp target parallel for simd'}}
565 #pragma omp target parallel for simd nontemporal(x) private(x)
566 for (i = 0; i < 16; ++i)
569 // omp45-error@+1 {{unexpected OpenMP clause 'nontemporal' in directive '#pragma omp target parallel for simd'}} expected-note@+1 {{to match this '('}} expected-error@+1 {{expected ',' or ')' in 'nontemporal' clause}} expected-error@+1 {{expected ')'}}
570 #pragma omp target parallel for simd nontemporal(x, y : 0)
571 for (i = 0; i < 16; ++i)
574 // omp45-error@+1 {{unexpected OpenMP clause 'nontemporal' in directive '#pragma omp target parallel for simd'}}
575 #pragma omp target parallel for simd nontemporal(x) lastprivate(x)
576 for (i = 0; i < 16; ++i)
579 // omp45-error@+1 {{unexpected OpenMP clause 'nontemporal' in directive '#pragma omp target parallel for simd'}}
580 #pragma omp target parallel for simd lastprivate(x) nontemporal(x)
581 for (i = 0; i < 16; ++i)