1111
1212// 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
1313// 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
1515// 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
1717
1818// 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
2020// 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
2222
2323// 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
2424// 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
2525// 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
2626// 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
2727// 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
2828
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
3131
3232// 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
3333// 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
3535
3636#pragma omp begin declare target
3737static int gg;
3838// expected-warning@+1 {{variable 'recursive' is uninitialized when used within its own initialization}}
3939int recursive = recursive ^ 3 + gg;
4040#pragma omp end declare target
4141
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'}}
4345#pragma omp end declare target
4446
4547// ompvar-error@+1 {{variable captured in declare target region must appear in a to clause}}
4648int a, b, z;
4749// expected-note@+1 {{defined as threadprivate or thread local}}
4850__thread int t;
4951
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'}}
5155#pragma omp declare target .
5256
5357#pragma omp declare target
5458void 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}}
5662#pragma omp end declare target shared(a)
5763
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}}
5866// omp52-error@+8 {{unexpected 'map' clause, only 'enter', 'link', 'device_type' or 'indirect' clauses expected}}
5967// omp52-error@+7 {{expected at least one 'enter', 'link' or 'indirect' clause}}
6068// omp51-error@+6 {{unexpected 'map' clause, only 'to', 'link', 'device_type' or 'indirect' clauses expected}}
@@ -65,6 +73,8 @@ void f();
6573// omp45-error@+1 {{expected at least one 'to' or 'link' clause}}
6674#pragma omp declare target map(a)
6775
76+ // omp60-error@+5 {{unexpected 'to' clause, use 'enter' instead}}
77+ // omp60-error@+4 {{expected at least one 'enter', 'link' or 'indirect' clause}}
6878// omp52-error@+3 {{unexpected 'to' clause, use 'enter' instead}}
6979// omp52-error@+2 {{expected at least one 'enter', 'link' or 'indirect' clause}}
7080// omp45-to-51-error@+1 {{use of undeclared identifier 'foo1'}}
@@ -73,15 +83,17 @@ void f();
7383// expected-error@+1 {{use of undeclared identifier 'foo2'}}
7484#pragma omp declare target link(foo2)
7585
86+ // omp60-error@+6 {{unexpected 'to' clause, use 'enter' instead}}
87+ // omp60-error@+5 {{expected at least one 'enter', 'link' or 'indirect' clause}}
7688// omp52-error@+4 {{unexpected 'to' clause, use 'enter' instead}}
7789// omp52-error@+3 {{expected at least one 'enter', 'link' or 'indirect' clause}}
7890// dev5-note@+2 {{marked as 'device_type(host)' here}}
7991// omp45-error@+1 {{unexpected 'device_type' clause, only 'to' or 'link' clauses expected}}
8092#pragma omp declare target to(f) device_type(host)
8193
8294void 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}}
8597// omp5-and-51-warning@+2 {{more than one 'device_type' clause is specified}}
8698// omp45-error@+1 {{unexpected 'device_type' clause, only 'to' or 'link' clauses expected}}
8799#pragma omp declare target to(q) device_type(any) device_type(any) device_type(host)
@@ -121,7 +133,7 @@ void c();
121133// expected-note@+1 {{'func' defined here}}
122134void func () {}
123135
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}}
125137// omp51-error@+4 {{unexpected 'allocate' clause, only 'to', 'link', 'device_type' or 'indirect' clauses expected}}
126138// omp5-error@+3 {{unexpected 'allocate' clause, only 'to', 'link' or 'device_type' clauses expected}}
127139// expected-error@+2 {{function name is not allowed in 'link' clause}}
@@ -171,7 +183,9 @@ void t2() {
171183 void abc ();
172184#pragma omp end declare target
173185void 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'}}
175189#pragma omp end declare target
176190
177191#pragma omp declare target
@@ -234,7 +248,9 @@ void foo1() {
234248
235249#pragma omp end declare target
236250#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'}}
238254#pragma omp end declare target
239255
240256int C::method () {
@@ -255,18 +271,22 @@ int *y;
255271int **w = &y;
256272int main (int argc, char **argv) {
257273 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'}}
259277#pragma omp declare target
260278 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'}}
262282#pragma omp end declare target
263283 foo (v);
264284
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}}
267287#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}}
270290 // omp45-to-51-var-error@+1 {{local variable 'a' should not be used in 'declare target' directive}}
271291#pragma omp declare target to(a)
272292 return (0 );
@@ -283,48 +303,48 @@ namespace {
283303
284304// expected-error@+1 {{'x' appears multiple times in clauses on the same declare target directive}}
285305#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}}
288308// omp45-to-51-clause-error@+1 {{'x' appears multiple times in clauses on the same declare target directive}}
289309#pragma omp declare target to(x) to(x)
290310// expected-error@+1 {{'x' must not appear in both clauses 'to' and 'link'}}
291311#pragma omp declare target link(x)
292312
293313void 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}}
296316// host5-note@+2 3 {{marked as 'device_type(nohost)' here}}
297317// omp45-error@+1 {{unexpected 'device_type' clause, only 'to' or 'link' clauses expected}}
298318#pragma omp declare target to(bazz) device_type(nohost)
299319void 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}}
302322// omp45-error@+1 {{unexpected 'device_type' clause, only 'to' or 'link' clauses expected}}
303323#pragma omp declare target to(bazzz) device_type(nohost)
304324// host5-error@+1 {{function with 'device_type(nohost)' is not available on host}}
305325void any () {bazz ();}
306326// host5-error@+1 {{function with 'device_type(nohost)' is not available on host}}
307327void 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}}
310330// dev5-note@+2 3 {{marked as 'device_type(host)' here}}
311331// omp45-error@+1 {{unexpected 'device_type' clause, only 'to' or 'link' clauses expected}}
312332#pragma omp declare target to(host1) device_type(host)
313333// host5-error@+1 {{function with 'device_type(nohost)' is not available on host}}
314334void 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}}
317337#pragma omp declare target to(host2)
318338// dev5-error@+1 {{function with 'device_type(host)' is not available on device}}
319339void 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}}
322342// host5-note@+2 2 {{marked as 'device_type(nohost)' here}}
323343// omp45-error@+1 {{unexpected 'device_type' clause, only 'to' or 'link' clauses expected}}
324344#pragma omp declare target to(device) device_type(nohost)
325345void 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}}
328348#pragma omp declare target to(host3)
329349
330350#pragma omp declare target
@@ -343,17 +363,17 @@ void any7() {device();}
343363void any8 () {any2 ();}
344364
345365int 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}}
348368// omp45-error@+1 {{unexpected 'device_type' clause, only 'to' or 'link' clauses expected}}
349369#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}}
352372// host-5-and-51-error@+2 {{'device_type(host)' does not match previously specified 'device_type(any)' for the same declaration}}
353373// omp45-error@+1 {{unexpected 'device_type' clause, only 'to' or 'link' clauses expected}}
354374#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}}
357377// no-host5-and-51-error@+2 {{'device_type(nohost)' does not match previously specified 'device_type(any)' for the same declaration}}
358378// omp45-error@+1 {{unexpected 'device_type' clause, only 'to' or 'link' clauses expected}}
359379#pragma omp declare target to(MultiDevTy) device_type(nohost)
@@ -414,6 +434,8 @@ target *S1 = &S;
414434// expected-warning@+1 {{expected '#pragma omp end declare target' at end of file to match '#pragma omp declare target'}}
415435#pragma omp declare target
416436#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'}}
418440#pragma omp begin declare target
419441#endif
0 commit comments