xref: /llvm-project/clang/test/SemaOpenACC/compute-construct-default-clause.cpp (revision 2b939e182db6251f1d54a990e080df5ac8f05c29)
1 // RUN: %clang_cc1 %s -fopenacc -verify
2 
3 template<typename T>
SingleOnly()4 void SingleOnly() {
5   #pragma acc parallel default(none)
6   while(false);
7 
8   int i;
9 
10   // expected-error@+2{{OpenACC 'default' clause cannot appear more than once on a 'parallel' directive}}
11   // expected-note@+1{{previous clause is here}}
12   #pragma acc parallel default(present) async default(none)
13   while(false);
14 
15   // expected-error@+2{{OpenACC 'default' clause cannot appear more than once on a 'serial' directive}}
16   // expected-note@+1{{previous clause is here}}
17   #pragma acc serial async default(present) copy(i) default(none) self
18   while(false);
19 
20   // expected-error@+2{{OpenACC 'default' clause cannot appear more than once on a 'kernels' directive}}
21   // expected-note@+1{{previous clause is here}}
22   #pragma acc kernels async default(present) copy(i) default(none) self
23   while(false);
24 
25   // expected-error@+1{{expected '('}}
26   #pragma acc parallel async default(none) copy(i) default self
27   while(false);
28 }
29 
Instantiate()30 void Instantiate() {
31   SingleOnly<int>();
32 }
33