11
11
12
12
// RUN: %clang_cc1 %{common_opts_mac} -verify=expected,omp45,omp45-to-51,omp45-to-51-var,omp45-to-51-clause,omp45-to-51-clause %{openmp45} %{limit} -o - %s
13
13
// RUN: %clang_cc1 %{common_opts_mac} -verify=expected,omp5,ompvar,omp45-to-51,omp5-and-51,omp5-or-later,omp5-or-later-var,omp45-to-51-var,omp45-to-51-clause,host5,host-5-and-51,no-host5-and-51 %{openmp50} %{target_mac} %{limit} -o - %s
14
- // RUN: %clang_cc1 %{common_opts_mac} -verify=expected,omp52,ompvar,omp5-or-later,omp5-or-later-var %{openmp60} %{target_mac} %{limit} -o - %s
14
+ // RUN: %clang_cc1 %{common_opts_mac} -verify=expected,omp60, omp52-or-later ,ompvar,omp5-or-later,omp5-or-later-var %{openmp60} %{target_mac} %{limit} -o - %s
15
15
// RUN: %clang_cc1 %{common_opts_mac} -verify=expected,omp5,ompvar,omp45-to-51,omp5-and-51,omp5-or-later,omp5-or-later-var,omp45-to-51-var,omp45-to-51-clause,host-5-and-51,no-host5-and-51,dev5 %{openmp50} -fopenmp-is-target-device %{target_mac} %{aux_triple} %{limit} -o - %s
16
- // RUN: %clang_cc1 %{common_opts_mac} -verify=expected,omp52,ompvar,omp5-or-later,omp5-or-later-var %{openmp60} -fopenmp-is-target-device %{target_mac} %{aux_triple} %{limit} -o - %s
16
+ // RUN: %clang_cc1 %{common_opts_mac} -verify=expected,omp60, omp52-or-later ,ompvar,omp5-or-later,omp5-or-later-var %{openmp60} -fopenmp-is-target-device %{target_mac} %{aux_triple} %{limit} -o - %s
17
17
18
18
// RUN: %clang_cc1 %{common_opts_mac} -verify=expected,omp5,ompvar,omp45-to-51,omp5-and-51,omp5-or-later,omp5-or-later-var,omp45-to-51-var,omp45-to-51-clause,host5,host-5-and-51,no-host5-and-51 %{openmp50_simd} %{target_mac} %{limit} -o - %s
19
- // RUN: %clang_cc1 %{common_opts_mac} -verify=expected,omp52,ompvar,omp5-or-later,omp5-or-later-var %{openmp60_simd} %{target_mac} %{limit} -o - %s
19
+ // RUN: %clang_cc1 %{common_opts_mac} -verify=expected,omp60, omp52-or-later ,ompvar,omp5-or-later,omp5-or-later-var %{openmp60_simd} %{target_mac} %{limit} -o - %s
20
20
// RUN: %clang_cc1 %{common_opts_mac} -verify=expected,omp5,ompvar,omp45-to-51,omp5-and-51,omp5-or-later,omp5-or-later-var,omp45-to-51-var,omp45-to-51-clause,host5,host-5-and-51,no-host5-and-51 %{openmp50_simd} -fopenmp-is-target-device %{target_mac} %{limit} -o - %s
21
- // RUN: %clang_cc1 %{common_opts_mac} -verify=expected,omp52,ompvar,omp5-or-later,omp5-or-later-var %{openmp60_simd} -fopenmp-is-target-device %{target_mac} %{limit} -o - %s
21
+ // RUN: %clang_cc1 %{common_opts_mac} -verify=expected,omp60, omp52-or-later ,ompvar,omp5-or-later,omp5-or-later-var %{openmp60_simd} -fopenmp-is-target-device %{target_mac} %{limit} -o - %s
22
22
23
23
// RUN: %clang_cc1 %{common_opts_mac} -verify=expected,omp45,omp45-to-51,omp45-to-51-var,omp45-to-51-clause -fopenmp-version=45 -fopenmp-simd %{limit} -o - %s
24
24
// RUN: %clang_cc1 %{common_opts_mac} -verify=expected,omp51,ompvar,omp45-to-51,omp5-and-51,omp5-or-later,omp5-or-later-var,omp45-to-51-var,omp45-to-51-clause,host-5-and-51,no-host5-and-51 -fopenmp %{limit} -o - %s
25
25
// RUN: %clang_cc1 %{common_opts_mac} -verify=expected,omp51,ompvar,omp45-to-51,omp5-and-51,omp5-or-later,omp5-or-later-var,omp45-to-51-var,omp45-to-51-clause,host-5-and-51,no-host5-and-51 -fopenmp %{limit} -DTESTEND=1 -o - %s
26
26
// RUN: %clang_cc1 %{common_opts_mac} -verify=expected,omp51,ompvar,omp45-to-51,omp5-and-51,omp5-or-later,omp5-or-later-var,omp45-to-51-var,omp45-to-51-clause,host-5-and-51,no-host5-and-51 -fopenmp %{limit} -I%S/Inputs -DTESTENDINC=1 -o - %s
27
27
// RUN: %clang_cc1 %{common_opts_mac} -verify=expected,omp51,ompvar,omp45-to-51,omp5-and-51,omp5-or-later,omp5-or-later-var,omp45-to-51-var,omp45-to-51-clause,host-5-and-51,no-host5-and-51 -fopenmp-simd %{limit} -o - %s
28
28
29
- // RUN: %clang_cc1 %{common_opts_mac} -verify=expected,omp52,ompvar,omp5-or-later,omp5-or-later-var %{openmp52} -DVERBOSE_MODE=1 %{limit} -o - %s
30
- // RUN: %clang_cc1 %{common_opts_mac} -verify=expected,omp52,ompvar,omp5-or-later,omp5-or-later-var %{openmp60} -DVERBOSE_MODE=1 %{limit} -o - %s
29
+ // RUN: %clang_cc1 %{common_opts_mac} -verify=expected,omp52,omp52-or-later, ompvar,omp5-or-later,omp5-or-later-var %{openmp52} -DVERBOSE_MODE=1 %{limit} -o - %s
30
+ // RUN: %clang_cc1 %{common_opts_mac} -verify=expected,omp60, omp52-or-later ,ompvar,omp5-or-later,omp5-or-later-var %{openmp60} -DVERBOSE_MODE=1 %{limit} -o - %s
31
31
32
32
// RUN: %clang_cc1 %{common_opts_mac} -verify=expected,omp5,ompvar,omp45-to-51,omp5-and-51,omp5-or-later,omp5-or-later-var,omp45-to-51-var,omp45-to-51-clause,host-5-and-51,no-host5-and-51 %{openmp50} %{limit} -o - %s
33
33
// RUN: %clang_cc1 %{common_opts_mac} -verify=expected,omp51,ompvar,omp45-to-51,omp5-and-51,omp5-or-later,omp5-or-later-var,omp45-to-51-var,omp45-to-51-clause,host-5-and-51,no-host5-and-51 -fopenmp %{limit} -o - %s
34
- // RUN: %clang_cc1 %{common_opts_mac} -verify=expected,omp52,ompvar,omp5-or-later,omp5-or-later-var %{openmp60} %{limit} -o - %s
34
+ // RUN: %clang_cc1 %{common_opts_mac} -verify=expected,omp60, omp52-or-later ,ompvar,omp5-or-later,omp5-or-later-var %{openmp60} %{limit} -o - %s
35
35
36
36
#pragma omp begin declare target
37
37
static int gg;
38
38
// expected-warning@+1 {{variable 'recursive' is uninitialized when used within its own initialization}}
39
39
int recursive = recursive ^ 3 + gg;
40
40
#pragma omp end declare target
41
41
42
- // expected-error@+1 {{unexpected OpenMP directive '#pragma omp end declare target'}}
42
+ // omp60-error@+3 {{unexpected OpenMP directive '#pragma omp end declare_target'}}
43
+ // omp52-error@+2 {{unexpected OpenMP directive '#pragma omp end declare target'}}
44
+ // omp45-to-51-error@+1 {{unexpected OpenMP directive '#pragma omp end declare target'}}
43
45
#pragma omp end declare target
44
46
45
47
// ompvar-error@+1 {{variable captured in declare target region must appear in a to clause}}
46
48
int a, b, z;
47
49
// expected-note@+1 {{defined as threadprivate or thread local}}
48
50
__thread int t;
49
51
50
- // expected-error@+1 {{expected '(' after 'declare target'}}
52
+ // omp60-error@+3 {{expected '(' after 'declare_target'}}
53
+ // omp52-error@+2 {{expected '(' after 'declare target'}}
54
+ // omp45-to-51-error@+1 {{expected '(' after 'declare target'}}
51
55
#pragma omp declare target .
52
56
53
57
#pragma omp declare target
54
58
void f ();
55
- // expected-warning@+1 {{extra tokens at the end of '#pragma omp end declare target' are ignored}}
59
+ // omp60-warning@+3 {{extra tokens at the end of '#pragma omp end declare_target' are ignored}}
60
+ // omp52-warning@+2 {{extra tokens at the end of '#pragma omp end declare target' are ignored}}
61
+ // omp45-to-51-warning@+1 {{extra tokens at the end of '#pragma omp end declare target' are ignored}}
56
62
#pragma omp end declare target shared(a)
57
63
64
+ // omp60-error@+10 {{unexpected 'map' clause, only 'enter', 'link', 'device_type' or 'indirect' clauses expected}}
65
+ // omp60-error@+9 {{expected at least one 'enter', 'link' or 'indirect' clause}}
58
66
// omp52-error@+8 {{unexpected 'map' clause, only 'enter', 'link', 'device_type' or 'indirect' clauses expected}}
59
67
// omp52-error@+7 {{expected at least one 'enter', 'link' or 'indirect' clause}}
60
68
// omp51-error@+6 {{unexpected 'map' clause, only 'to', 'link', 'device_type' or 'indirect' clauses expected}}
@@ -65,6 +73,8 @@ void f();
65
73
// omp45-error@+1 {{expected at least one 'to' or 'link' clause}}
66
74
#pragma omp declare target map(a)
67
75
76
+ // omp60-error@+5 {{unexpected 'to' clause, use 'enter' instead}}
77
+ // omp60-error@+4 {{expected at least one 'enter', 'link' or 'indirect' clause}}
68
78
// omp52-error@+3 {{unexpected 'to' clause, use 'enter' instead}}
69
79
// omp52-error@+2 {{expected at least one 'enter', 'link' or 'indirect' clause}}
70
80
// omp45-to-51-error@+1 {{use of undeclared identifier 'foo1'}}
@@ -73,15 +83,17 @@ void f();
73
83
// expected-error@+1 {{use of undeclared identifier 'foo2'}}
74
84
#pragma omp declare target link(foo2)
75
85
86
+ // omp60-error@+6 {{unexpected 'to' clause, use 'enter' instead}}
87
+ // omp60-error@+5 {{expected at least one 'enter', 'link' or 'indirect' clause}}
76
88
// omp52-error@+4 {{unexpected 'to' clause, use 'enter' instead}}
77
89
// omp52-error@+3 {{expected at least one 'enter', 'link' or 'indirect' clause}}
78
90
// dev5-note@+2 {{marked as 'device_type(host)' here}}
79
91
// omp45-error@+1 {{unexpected 'device_type' clause, only 'to' or 'link' clauses expected}}
80
92
#pragma omp declare target to(f) device_type(host)
81
93
82
94
void q ();
83
- // omp52-error@+4 {{unexpected 'to' clause, use 'enter' instead}}
84
- // omp52-error@+3 {{expected at least one 'enter', 'link' or 'indirect' clause}}
95
+ // omp52-or-later- error@+4 {{unexpected 'to' clause, use 'enter' instead}}
96
+ // omp52-or-later- error@+3 {{expected at least one 'enter', 'link' or 'indirect' clause}}
85
97
// omp5-and-51-warning@+2 {{more than one 'device_type' clause is specified}}
86
98
// omp45-error@+1 {{unexpected 'device_type' clause, only 'to' or 'link' clauses expected}}
87
99
#pragma omp declare target to(q) device_type(any) device_type(any) device_type(host)
@@ -121,7 +133,7 @@ void c();
121
133
// expected-note@+1 {{'func' defined here}}
122
134
void func () {}
123
135
124
- // omp52-error@+5 {{unexpected 'allocate' clause, only 'enter', 'link', 'device_type' or 'indirect' clauses expected}}
136
+ // omp52-or-later- error@+5 {{unexpected 'allocate' clause, only 'enter', 'link', 'device_type' or 'indirect' clauses expected}}
125
137
// omp51-error@+4 {{unexpected 'allocate' clause, only 'to', 'link', 'device_type' or 'indirect' clauses expected}}
126
138
// omp5-error@+3 {{unexpected 'allocate' clause, only 'to', 'link' or 'device_type' clauses expected}}
127
139
// expected-error@+2 {{function name is not allowed in 'link' clause}}
@@ -171,7 +183,9 @@ void t2() {
171
183
void abc ();
172
184
#pragma omp end declare target
173
185
void cba ();
174
- // expected-error@+1 {{unexpected OpenMP directive '#pragma omp end declare target'}}
186
+ // omp60-error@+3 {{unexpected OpenMP directive '#pragma omp end declare_target'}}
187
+ // omp52-error@+2 {{unexpected OpenMP directive '#pragma omp end declare target'}}
188
+ // omp45-to-51-error@+1 {{unexpected OpenMP directive '#pragma omp end declare target'}}
175
189
#pragma omp end declare target
176
190
177
191
#pragma omp declare target
@@ -234,7 +248,9 @@ void foo1() {
234
248
235
249
#pragma omp end declare target
236
250
#pragma omp end declare target
237
- // expected-error@+1 {{unexpected OpenMP directive '#pragma omp end declare target'}}
251
+ // omp60-error@+3 {{unexpected OpenMP directive '#pragma omp end declare_target'}}
252
+ // omp52-error@+2 {{unexpected OpenMP directive '#pragma omp end declare target'}}
253
+ // omp45-to-51-error@+1 {{unexpected OpenMP directive '#pragma omp end declare target'}}
238
254
#pragma omp end declare target
239
255
240
256
int C::method () {
@@ -255,18 +271,22 @@ int *y;
255
271
int **w = &y;
256
272
int main (int argc, char **argv) {
257
273
int a = 2 ;
258
- // expected-error@+1 {{unexpected OpenMP directive '#pragma omp declare target'}}
274
+ // omp60-error@+3 {{unexpected OpenMP directive '#pragma omp declare_target'}}
275
+ // omp52-error@+2 {{unexpected OpenMP directive '#pragma omp declare target'}}
276
+ // omp45-to-51-error@+1 {{unexpected OpenMP directive '#pragma omp declare target'}}
259
277
#pragma omp declare target
260
278
int v;
261
- // expected-error@+1 {{unexpected OpenMP directive '#pragma omp end declare target'}}
279
+ // omp60-error@+3 {{unexpected OpenMP directive '#pragma omp end declare_target'}}
280
+ // omp52-error@+2 {{unexpected OpenMP directive '#pragma omp end declare target'}}
281
+ // omp45-to-51-error@+1 {{unexpected OpenMP directive '#pragma omp end declare target'}}
262
282
#pragma omp end declare target
263
283
foo (v);
264
284
265
- // omp52-error@+2 {{expected at least one 'enter', 'link' or 'indirect' clause}}
266
- // omp52-error@+1 {{unexpected 'to' clause, use 'enter' instead}}
285
+ // omp52-or-later- error@+2 {{expected at least one 'enter', 'link' or 'indirect' clause}}
286
+ // omp52-or-later- error@+1 {{unexpected 'to' clause, use 'enter' instead}}
267
287
#pragma omp declare target to(foo3) link(w)
268
- // omp52-error@+3 {{unexpected 'to' clause, use 'enter' instead}}
269
- // omp52-error@+2 {{expected at least one 'enter', 'link' or 'indirect' clause}}
288
+ // omp52-or-later- error@+3 {{unexpected 'to' clause, use 'enter' instead}}
289
+ // omp52-or-later- error@+2 {{expected at least one 'enter', 'link' or 'indirect' clause}}
270
290
// omp45-to-51-var-error@+1 {{local variable 'a' should not be used in 'declare target' directive}}
271
291
#pragma omp declare target to(a)
272
292
return (0 );
@@ -283,48 +303,48 @@ namespace {
283
303
284
304
// expected-error@+1 {{'x' appears multiple times in clauses on the same declare target directive}}
285
305
#pragma omp declare target (x, x)
286
- // omp52-error@+3 {{unexpected 'to' clause, use 'enter' instead}}
287
- // omp52-error@+2 {{expected at least one 'enter', 'link' or 'indirect' clause}}
306
+ // omp52-or-later- error@+3 {{unexpected 'to' clause, use 'enter' instead}}
307
+ // omp52-or-later- error@+2 {{expected at least one 'enter', 'link' or 'indirect' clause}}
288
308
// omp45-to-51-clause-error@+1 {{'x' appears multiple times in clauses on the same declare target directive}}
289
309
#pragma omp declare target to(x) to(x)
290
310
// expected-error@+1 {{'x' must not appear in both clauses 'to' and 'link'}}
291
311
#pragma omp declare target link(x)
292
312
293
313
void bazz () {}
294
- // omp52-error@+4 {{unexpected 'to' clause, use 'enter' instead}}
295
- // omp52-error@+3 {{expected at least one 'enter', 'link' or 'indirect' clause}}
314
+ // omp52-or-later- error@+4 {{unexpected 'to' clause, use 'enter' instead}}
315
+ // omp52-or-later- error@+3 {{expected at least one 'enter', 'link' or 'indirect' clause}}
296
316
// host5-note@+2 3 {{marked as 'device_type(nohost)' here}}
297
317
// omp45-error@+1 {{unexpected 'device_type' clause, only 'to' or 'link' clauses expected}}
298
318
#pragma omp declare target to(bazz) device_type(nohost)
299
319
void bazzz () {bazz ();}
300
- // omp52-error@+3 {{unexpected 'to' clause, use 'enter' instead}}
301
- // omp52-error@+2 {{expected at least one 'enter', 'link' or 'indirect' clause}}
320
+ // omp52-or-later- error@+3 {{unexpected 'to' clause, use 'enter' instead}}
321
+ // omp52-or-later- error@+2 {{expected at least one 'enter', 'link' or 'indirect' clause}}
302
322
// omp45-error@+1 {{unexpected 'device_type' clause, only 'to' or 'link' clauses expected}}
303
323
#pragma omp declare target to(bazzz) device_type(nohost)
304
324
// host5-error@+1 {{function with 'device_type(nohost)' is not available on host}}
305
325
void any () {bazz ();}
306
326
// host5-error@+1 {{function with 'device_type(nohost)' is not available on host}}
307
327
void host1 () {bazz ();}
308
- // omp52-error@+4 {{unexpected 'to' clause, use 'enter' instead}}
309
- // omp52-error@+3 {{expected at least one 'enter', 'link' or 'indirect' clause}}
328
+ // omp52-or-later- error@+4 {{unexpected 'to' clause, use 'enter' instead}}
329
+ // omp52-or-later- error@+3 {{expected at least one 'enter', 'link' or 'indirect' clause}}
310
330
// dev5-note@+2 3 {{marked as 'device_type(host)' here}}
311
331
// omp45-error@+1 {{unexpected 'device_type' clause, only 'to' or 'link' clauses expected}}
312
332
#pragma omp declare target to(host1) device_type(host)
313
333
// host5-error@+1 {{function with 'device_type(nohost)' is not available on host}}
314
334
void host2 () {bazz ();}
315
- // omp52-error@+2 {{unexpected 'to' clause, use 'enter' instead}}
316
- // omp52-error@+1 {{expected at least one 'enter', 'link' or 'indirect' clause}}
335
+ // omp52-or-later- error@+2 {{unexpected 'to' clause, use 'enter' instead}}
336
+ // omp52-or-later- error@+1 {{expected at least one 'enter', 'link' or 'indirect' clause}}
317
337
#pragma omp declare target to(host2)
318
338
// dev5-error@+1 {{function with 'device_type(host)' is not available on device}}
319
339
void device () {host1 ();}
320
- // omp52-error@+4 {{unexpected 'to' clause, use 'enter' instead}}
321
- // omp52-error@+3 {{expected at least one 'enter', 'link' or 'indirect' clause}}
340
+ // omp52-or-later- error@+4 {{unexpected 'to' clause, use 'enter' instead}}
341
+ // omp52-or-later- error@+3 {{expected at least one 'enter', 'link' or 'indirect' clause}}
322
342
// host5-note@+2 2 {{marked as 'device_type(nohost)' here}}
323
343
// omp45-error@+1 {{unexpected 'device_type' clause, only 'to' or 'link' clauses expected}}
324
344
#pragma omp declare target to(device) device_type(nohost)
325
345
void host3 () {host1 ();} // dev5-error {{function with 'device_type(host)' is not available on device}}
326
- // omp52-error@+2 {{unexpected 'to' clause, use 'enter' instead}}
327
- // omp52-error@+1 {{expected at least one 'enter', 'link' or 'indirect' clause}}
346
+ // omp52-or-later- error@+2 {{unexpected 'to' clause, use 'enter' instead}}
347
+ // omp52-or-later- error@+1 {{expected at least one 'enter', 'link' or 'indirect' clause}}
328
348
#pragma omp declare target to(host3)
329
349
330
350
#pragma omp declare target
@@ -343,17 +363,17 @@ void any7() {device();}
343
363
void any8 () {any2 ();}
344
364
345
365
int MultiDevTy;
346
- // omp52-error@+3 {{unexpected 'to' clause, use 'enter' instead}}
347
- // omp52-error@+2 {{expected at least one 'enter', 'link' or 'indirect' clause}}
366
+ // omp52-or-later- error@+3 {{unexpected 'to' clause, use 'enter' instead}}
367
+ // omp52-or-later- error@+2 {{expected at least one 'enter', 'link' or 'indirect' clause}}
348
368
// omp45-error@+1 {{unexpected 'device_type' clause, only 'to' or 'link' clauses expected}}
349
369
#pragma omp declare target to(MultiDevTy) device_type(any)
350
- // omp52-error@+4 {{unexpected 'to' clause, use 'enter' instead}}
351
- // omp52-error@+3 {{expected at least one 'enter', 'link' or 'indirect' clause}}
370
+ // omp52-or-later- error@+4 {{unexpected 'to' clause, use 'enter' instead}}
371
+ // omp52-or-later- error@+3 {{expected at least one 'enter', 'link' or 'indirect' clause}}
352
372
// host-5-and-51-error@+2 {{'device_type(host)' does not match previously specified 'device_type(any)' for the same declaration}}
353
373
// omp45-error@+1 {{unexpected 'device_type' clause, only 'to' or 'link' clauses expected}}
354
374
#pragma omp declare target to(MultiDevTy) device_type(host)
355
- // omp52-error@+4 {{unexpected 'to' clause, use 'enter' instead}}
356
- // omp52-error@+3 {{expected at least one 'enter', 'link' or 'indirect' clause}}
375
+ // omp52-or-later- error@+4 {{unexpected 'to' clause, use 'enter' instead}}
376
+ // omp52-or-later- error@+3 {{expected at least one 'enter', 'link' or 'indirect' clause}}
357
377
// no-host5-and-51-error@+2 {{'device_type(nohost)' does not match previously specified 'device_type(any)' for the same declaration}}
358
378
// omp45-error@+1 {{unexpected 'device_type' clause, only 'to' or 'link' clauses expected}}
359
379
#pragma omp declare target to(MultiDevTy) device_type(nohost)
@@ -414,6 +434,8 @@ target *S1 = &S;
414
434
// expected-warning@+1 {{expected '#pragma omp end declare target' at end of file to match '#pragma omp declare target'}}
415
435
#pragma omp declare target
416
436
#else
417
- // expected-warning@+1 {{expected '#pragma omp end declare target' at end of file to match '#pragma omp begin declare target'}}
437
+ // omp60-warning@+3 {{expected '#pragma omp end declare target' at end of file to match '#pragma omp begin declare_target'}}
438
+ // omp52-warning@+2 {{expected '#pragma omp end declare target' at end of file to match '#pragma omp begin declare target'}}
439
+ // omp45-to-51-warning@+1 {{expected '#pragma omp end declare target' at end of file to match '#pragma omp begin declare target'}}
418
440
#pragma omp begin declare target
419
441
#endif
0 commit comments