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