[libc++][NFC] Replace typedefs with using aliases in <string> (#126070)
[llvm-project.git] / clang / test / SemaOpenACC / compute-construct-wait-clause.c
blobdf82740a465a85467ab8ed662ac13f341e9c525b
1 // RUN: %clang_cc1 %s -fopenacc -verify
3 struct NotConvertible{} NC;
4 short getS();
5 int getI();
7 void uses() {
8 int arr[5];
10 #pragma acc parallel wait
11 while(1);
13 #pragma acc serial wait()
14 while(1);
16 #pragma acc kernels wait(getS(), getI())
17 while(1);
19 #pragma acc parallel wait(devnum:getS(): getI())
20 while(1);
22 #pragma acc parallel wait(devnum:getS(): queues: getI()) wait(devnum:getI(): queues: getS(), getI(), 5)
23 while(1);
25 // expected-error@+1{{OpenACC clause 'wait' requires expression of integer type ('struct NotConvertible' invalid)}}
26 #pragma acc parallel wait(devnum:NC : 5)
27 while(1);
29 // expected-error@+1{{OpenACC clause 'wait' requires expression of integer type ('struct NotConvertible' invalid)}}
30 #pragma acc parallel wait(devnum:5 : NC)
31 while(1);
33 // expected-error@+3{{OpenACC clause 'wait' requires expression of integer type ('int[5]' invalid)}}
34 // expected-error@+2{{OpenACC clause 'wait' requires expression of integer type ('int[5]' invalid)}}
35 // expected-error@+1{{OpenACC clause 'wait' requires expression of integer type ('struct NotConvertible' invalid)}}
36 #pragma acc parallel wait(devnum:arr : queues: arr, NC, 5)
37 while(1);
39 // expected-error@+1{{OpenACC 'wait' clause is not valid on 'loop' directive}}
40 #pragma acc loop wait
41 for(int i = 5; i < 10;++i);