xref: /llvm-project/clang/test/ParserOpenACC/parse-wait-construct.c (revision e34cc7c99375c43e1698c78ec9150fa40c88d486)
1df3db035SErich Keane // RUN: %clang_cc1 %s -verify -fopenacc
2df3db035SErich Keane 
3df3db035SErich Keane void func() {
4df3db035SErich Keane   int i, j;
5df3db035SErich Keane 
6df3db035SErich Keane   #pragma acc wait
7df3db035SErich Keane 
8*e34cc7c9Serichkeane   // expected-error@+1{{invalid OpenACC clause 'clause'}}
9df3db035SErich Keane   #pragma acc wait clause-list
10df3db035SErich Keane 
11*e34cc7c9Serichkeane   // expected-error@+2{{expected ')'}}
12*e34cc7c9Serichkeane   // expected-note@+1{{to match this '('}}
13df3db035SErich Keane   #pragma acc wait (
14df3db035SErich Keane 
15df3db035SErich Keane   #pragma acc wait ()
16df3db035SErich Keane 
17*e34cc7c9Serichkeane   // expected-error@+1{{invalid OpenACC clause 'clause'}}
18df3db035SErich Keane   #pragma acc wait () clause-list
19df3db035SErich Keane 
20*e34cc7c9Serichkeane   // expected-error@+3{{expected expression}}
21*e34cc7c9Serichkeane   // expected-error@+2{{expected ')'}}
22*e34cc7c9Serichkeane   // expected-note@+1{{to match this '('}}
23df3db035SErich Keane   #pragma acc wait (devnum:
24df3db035SErich Keane 
25*e34cc7c9Serichkeane   // expected-error@+1{{expected expression}}
26df3db035SErich Keane   #pragma acc wait (devnum:)
27df3db035SErich Keane 
28*e34cc7c9Serichkeane   // expected-error@+2{{expected expression}}
29*e34cc7c9Serichkeane   // expected-error@+1{{invalid OpenACC clause 'clause'}}
30df3db035SErich Keane   #pragma acc wait (devnum:) clause-list
31df3db035SErich Keane 
32*e34cc7c9Serichkeane   // expected-error@+3{{expected ':'}}
33*e34cc7c9Serichkeane   // expected-error@+2{{expected ')'}}
34*e34cc7c9Serichkeane   // expected-note@+1{{to match this '('}}
35df3db035SErich Keane   #pragma acc wait (devnum: i + j
36df3db035SErich Keane 
37*e34cc7c9Serichkeane   // expected-error@+1{{expected ':'}}
38df3db035SErich Keane   #pragma acc wait (devnum: i + j)
39df3db035SErich Keane 
40*e34cc7c9Serichkeane   // expected-error@+2{{expected ':'}}
41*e34cc7c9Serichkeane   // expected-error@+1{{invalid OpenACC clause 'clause'}}
42df3db035SErich Keane   #pragma acc wait (devnum: i + j) clause-list
43df3db035SErich Keane 
44*e34cc7c9Serichkeane   // expected-error@+2{{expected ')'}}
45*e34cc7c9Serichkeane   // expected-note@+1{{to match this '('}}
46df3db035SErich Keane   #pragma acc wait (queues:
47df3db035SErich Keane 
48df3db035SErich Keane   #pragma acc wait (queues:)
49df3db035SErich Keane 
50*e34cc7c9Serichkeane   // expected-error@+1{{invalid OpenACC clause 'clause'}}
51df3db035SErich Keane   #pragma acc wait (queues:) clause-list
52df3db035SErich Keane 
53*e34cc7c9Serichkeane   // expected-error@+2{{expected ')'}}
54*e34cc7c9Serichkeane   // expected-note@+1{{to match this '('}}
55df3db035SErich Keane   #pragma acc wait (devnum: i + j:queues:
56df3db035SErich Keane 
57df3db035SErich Keane   #pragma acc wait (devnum: i + j:queues:)
58df3db035SErich Keane 
59*e34cc7c9Serichkeane   // expected-error@+1{{invalid OpenACC clause 'clause'}}
60df3db035SErich Keane   #pragma acc wait (devnum: i + j:queues:) clause-list
61df3db035SErich Keane 
6230cfe2b2Serichkeane   // expected-error@+4{{use of undeclared identifier 'devnum'}}
6330cfe2b2Serichkeane   // expected-error@+3{{expected ','}}
64*e34cc7c9Serichkeane   // expected-error@+2{{expected ')'}}
65*e34cc7c9Serichkeane   // expected-note@+1{{to match this '('}}
66*e34cc7c9Serichkeane   #pragma acc wait (queues:devnum: i + j
67*e34cc7c9Serichkeane 
68*e34cc7c9Serichkeane   // expected-error@+2{{use of undeclared identifier 'devnum'}}
69*e34cc7c9Serichkeane   // expected-error@+1{{expected ','}}
70*e34cc7c9Serichkeane   #pragma acc wait (queues:devnum: i + j)
71*e34cc7c9Serichkeane 
72*e34cc7c9Serichkeane   // expected-error@+3{{use of undeclared identifier 'devnum'}}
73*e34cc7c9Serichkeane   // expected-error@+2{{expected ','}}
74*e34cc7c9Serichkeane   // expected-error@+1{{invalid OpenACC clause 'clause'}}
75df3db035SErich Keane   #pragma acc wait (queues:devnum: i + j) clause-list
76df3db035SErich Keane 
77*e34cc7c9Serichkeane   // expected-error@+3{{OpenACC directive 'wait' requires expression of integer type ('double' invalid)}}
78*e34cc7c9Serichkeane   // expected-error@+2{{expected ')'}}
79*e34cc7c9Serichkeane   // expected-note@+1{{to match this '('}}
80df3db035SErich Keane   #pragma acc wait(i, j, 1+1, 3.3
81df3db035SErich Keane 
82*e34cc7c9Serichkeane   // expected-error@+1{{OpenACC directive 'wait' requires expression of integer type ('double' invalid)}}
83df3db035SErich Keane   #pragma acc wait(i, j, 1+1, 3.3)
84*e34cc7c9Serichkeane   // expected-error@+2{{OpenACC directive 'wait' requires expression of integer type ('double' invalid)}}
85*e34cc7c9Serichkeane   // expected-error@+1{{invalid OpenACC clause 'clause'}}
86df3db035SErich Keane   #pragma acc wait(i, j, 1+1, 3.3) clause-list
87df3db035SErich Keane 
88*e34cc7c9Serichkeane   // expected-error@+3{{expected expression}}
89*e34cc7c9Serichkeane   // expected-error@+2{{expected ')'}}
90*e34cc7c9Serichkeane   // expected-note@+1{{to match this '('}}
91df3db035SErich Keane   #pragma acc wait(,
92df3db035SErich Keane 
93*e34cc7c9Serichkeane   // expected-error@+1{{expected expression}}
94df3db035SErich Keane   #pragma acc wait(,)
95df3db035SErich Keane 
96*e34cc7c9Serichkeane   // expected-error@+2{{expected expression}}
97*e34cc7c9Serichkeane   // expected-error@+1{{invalid OpenACC clause 'clause'}}
98df3db035SErich Keane   #pragma acc wait(,) clause-list
99df3db035SErich Keane 
100*e34cc7c9Serichkeane   // expected-error@+3{{OpenACC directive 'wait' requires expression of integer type ('double' invalid)}}
101*e34cc7c9Serichkeane   // expected-error@+2{{expected ')'}}
102*e34cc7c9Serichkeane   // expected-note@+1{{to match this '('}}
103df3db035SErich Keane   #pragma acc wait(queues:i, j, 1+1, 3.3
104df3db035SErich Keane 
105*e34cc7c9Serichkeane   // expected-error@+4{{OpenACC directive 'wait' requires expression of integer type ('double' invalid)}}
106*e34cc7c9Serichkeane   // expected-error@+3{{expected expression}}
107*e34cc7c9Serichkeane   // expected-error@+2{{expected ')'}}
108*e34cc7c9Serichkeane   // expected-note@+1{{to match this '('}}
109df3db035SErich Keane   #pragma acc wait(queues:i, j, 1+1, 3.3,
110df3db035SErich Keane 
111*e34cc7c9Serichkeane   // expected-error@+1{{OpenACC directive 'wait' requires expression of integer type ('double' invalid)}}
112df3db035SErich Keane   #pragma acc wait(queues:i, j, 1+1, 3.3)
113df3db035SErich Keane 
114*e34cc7c9Serichkeane   // expected-error@+2{{OpenACC directive 'wait' requires expression of integer type ('double' invalid)}}
115*e34cc7c9Serichkeane   // expected-error@+1{{invalid OpenACC clause 'clause'}}
116df3db035SErich Keane   #pragma acc wait(queues:i, j, 1+1, 3.3) clause-list
117df3db035SErich Keane 
11830cfe2b2Serichkeane   // expected-error@+3{{OpenACC directive 'wait' requires expression of integer type ('double' invalid)}}
119*e34cc7c9Serichkeane   // expected-error@+2{{expected ')'}}
120*e34cc7c9Serichkeane   // expected-note@+1{{to match this '('}}
121*e34cc7c9Serichkeane   #pragma acc wait(devnum:3:i, j, 1+1, 3.3
122*e34cc7c9Serichkeane   // expected-error@+1{{OpenACC directive 'wait' requires expression of integer type ('double' invalid)}}
123*e34cc7c9Serichkeane   #pragma acc wait(devnum:3:i, j, 1+1, 3.3)
124*e34cc7c9Serichkeane   // expected-error@+2{{OpenACC directive 'wait' requires expression of integer type ('double' invalid)}}
125*e34cc7c9Serichkeane   // expected-error@+1{{invalid OpenACC clause 'clause'}}
126df3db035SErich Keane   #pragma acc wait(devnum:3:i, j, 1+1, 3.3) clause-list
127df3db035SErich Keane 
12830cfe2b2Serichkeane   // expected-error@+3{{OpenACC directive 'wait' requires expression of integer type ('double' invalid)}}
129*e34cc7c9Serichkeane   // expected-error@+2{{expected ')'}}
130*e34cc7c9Serichkeane   // expected-note@+1{{to match this '('}}
131*e34cc7c9Serichkeane   #pragma acc wait(devnum:3:queues:i, j, 1+1, 3.3
132*e34cc7c9Serichkeane   // expected-error@+1{{OpenACC directive 'wait' requires expression of integer type ('double' invalid)}}
133*e34cc7c9Serichkeane   #pragma acc wait(devnum:3:queues:i, j, 1+1, 3.3)
134*e34cc7c9Serichkeane   // expected-error@+2{{OpenACC directive 'wait' requires expression of integer type ('double' invalid)}}
135*e34cc7c9Serichkeane   // expected-error@+1{{invalid OpenACC clause 'clause'}}
136df3db035SErich Keane   #pragma acc wait(devnum:3:queues:i, j, 1+1, 3.3) clause-list
137df3db035SErich Keane }
138