xref: /llvm-project/clang/test/SemaOpenACC/loop-construct-auto_seq_independent-clauses.c (revision be32621ce8cbffe674c62e87c0c51c9fc4a21e5f)
1 // RUN: %clang_cc1 %s -fopenacc -verify
2 
3 void uses() {
4 #pragma acc loop auto
5   for(unsigned i = 0; i < 5; ++i);
6 #pragma acc loop seq
7   for(unsigned i = 0; i < 5; ++i);
8 #pragma acc loop independent
9   for(unsigned i = 0; i < 5; ++i);
10 
11   // expected-error@+2{{OpenACC clause 'seq' on 'loop' construct conflicts with previous data dependence clause}}
12   // expected-note@+1{{previous clause is here}}
13 #pragma acc loop auto seq
14   for(unsigned i = 0; i < 5; ++i);
15   // expected-error@+2{{OpenACC clause 'independent' on 'loop' construct conflicts with previous data dependence clause}}
16   // expected-note@+1{{previous clause is here}}
17 #pragma acc loop auto independent
18   for(unsigned i = 0; i < 5; ++i);
19   // expected-error@+2{{OpenACC clause 'auto' on 'loop' construct conflicts with previous data dependence clause}}
20   // expected-note@+1{{previous clause is here}}
21 #pragma acc loop seq auto
22   for(unsigned i = 0; i < 5; ++i);
23   // expected-error@+2{{OpenACC clause 'independent' on 'loop' construct conflicts with previous data dependence clause}}
24   // expected-note@+1{{previous clause is here}}
25 #pragma acc loop seq independent
26   for(unsigned i = 0; i < 5; ++i);
27   // expected-error@+2{{OpenACC clause 'auto' on 'loop' construct conflicts with previous data dependence clause}}
28   // expected-note@+1{{previous clause is here}}
29 #pragma acc loop independent auto
30   for(unsigned i = 0; i < 5; ++i);
31   // expected-error@+2{{OpenACC clause 'seq' on 'loop' construct conflicts with previous data dependence clause}}
32   // expected-note@+1{{previous clause is here}}
33 #pragma acc loop independent seq
34   for(unsigned i = 0; i < 5; ++i);
35 
36   int Var;
37   int *VarPtr;
38 
39   // 'auto' can combine with any other clause.
40   // expected-error@+1{{OpenACC 'finalize' clause is not valid on 'loop' directive}}
41 #pragma acc loop auto finalize
42   for(unsigned i = 0; i < 5; ++i);
43   // expected-error@+1{{OpenACC 'if_present' clause is not valid on 'loop' directive}}
44 #pragma acc loop auto if_present
45   for(unsigned i = 0; i < 5; ++i);
46 #pragma acc loop auto worker
47   for(unsigned i = 0; i < 5; ++i);
48 #pragma acc loop auto vector
49   for(unsigned i = 0; i < 5; ++i);
50   // expected-warning@+1{{OpenACC clause 'nohost' not yet implemented}}
51 #pragma acc loop auto nohost
52   for(unsigned i = 0; i < 5; ++i);
53   // expected-error@+1{{OpenACC 'default' clause is not valid on 'loop' directive}}
54 #pragma acc loop auto default(none)
55   for(unsigned i = 0; i < 5; ++i);
56   // expected-error@+1{{OpenACC 'if' clause is not valid on 'loop' directive}}
57 #pragma acc loop auto if(1)
58   for(unsigned i = 0; i < 5; ++i);
59   // expected-error@+1{{OpenACC 'self' clause is not valid on 'loop' directive}}
60 #pragma acc loop auto self
61   for(unsigned i = 0; i < 5; ++i);
62   // expected-error@+1{{OpenACC 'copy' clause is not valid on 'loop' directive}}
63 #pragma acc loop auto copy(Var)
64   for(unsigned i = 0; i < 5; ++i);
65   // expected-error@+1{{OpenACC 'pcopy' clause is not valid on 'loop' directive}}
66 #pragma acc loop auto pcopy(Var)
67   for(unsigned i = 0; i < 5; ++i);
68   // expected-error@+1{{OpenACC 'present_or_copy' clause is not valid on 'loop' directive}}
69 #pragma acc loop auto present_or_copy(Var)
70   for(unsigned i = 0; i < 5; ++i);
71   // expected-error@+1{{OpenACC 'use_device' clause is not valid on 'loop' directive}}
72 #pragma acc loop auto use_device(Var)
73   for(unsigned i = 0; i < 5; ++i);
74   // expected-error@+1{{OpenACC 'attach' clause is not valid on 'loop' directive}}
75 #pragma acc loop auto attach(Var)
76   for(unsigned i = 0; i < 5; ++i);
77   // expected-error@+1{{OpenACC 'delete' clause is not valid on 'loop' directive}}
78 #pragma acc loop auto delete(Var)
79   for(unsigned i = 0; i < 5; ++i);
80   // expected-error@+1{{OpenACC 'detach' clause is not valid on 'loop' directive}}
81 #pragma acc loop auto detach(Var)
82   for(unsigned i = 0; i < 5; ++i);
83   // expected-error@+1{{OpenACC 'device' clause is not valid on 'loop' directive}}
84 #pragma acc loop auto device(VarPtr)
85   for(unsigned i = 0; i < 5; ++i);
86   // expected-error@+1{{OpenACC 'deviceptr' clause is not valid on 'loop' directive}}
87 #pragma acc loop auto deviceptr(VarPtr)
88   for(unsigned i = 0; i < 5; ++i);
89   // expected-warning@+1{{OpenACC clause 'device_resident' not yet implemented}}
90 #pragma acc loop auto device_resident(VarPtr)
91   for(unsigned i = 0; i < 5; ++i);
92   // expected-error@+1{{OpenACC 'firstprivate' clause is not valid on 'loop' directive}}
93 #pragma acc loop auto firstprivate(Var)
94   for(unsigned i = 0; i < 5; ++i);
95   // expected-error@+1{{OpenACC 'host' clause is not valid on 'loop' directive}}
96 #pragma acc loop auto host(Var)
97   for(unsigned i = 0; i < 5; ++i);
98   // expected-warning@+1{{OpenACC clause 'link' not yet implemented}}
99 #pragma acc loop auto link(Var)
100   for(unsigned i = 0; i < 5; ++i);
101   // expected-error@+1{{OpenACC 'no_create' clause is not valid on 'loop' directive}}
102 #pragma acc loop auto no_create(Var)
103   for(unsigned i = 0; i < 5; ++i);
104   // expected-error@+1{{OpenACC 'present' clause is not valid on 'loop' directive}}
105 #pragma acc loop auto present(Var)
106   for(unsigned i = 0; i < 5; ++i);
107 #pragma acc loop auto private(Var)
108   for(unsigned i = 0; i < 5; ++i);
109   // expected-error@+1{{OpenACC 'copyout' clause is not valid on 'loop' directive}}
110 #pragma acc loop auto copyout(Var)
111   for(unsigned i = 0; i < 5; ++i);
112   // expected-error@+1{{OpenACC 'pcopyout' clause is not valid on 'loop' directive}}
113 #pragma acc loop auto pcopyout(Var)
114   for(unsigned i = 0; i < 5; ++i);
115   // expected-error@+1{{OpenACC 'present_or_copyout' clause is not valid on 'loop' directive}}
116 #pragma acc loop auto present_or_copyout(Var)
117   for(unsigned i = 0; i < 5; ++i);
118   // expected-error@+1{{OpenACC 'copyin' clause is not valid on 'loop' directive}}
119 #pragma acc loop auto copyin(Var)
120   for(unsigned i = 0; i < 5; ++i);
121   // expected-error@+1{{OpenACC 'pcopyin' clause is not valid on 'loop' directive}}
122 #pragma acc loop auto pcopyin(Var)
123   for(unsigned i = 0; i < 5; ++i);
124   // expected-error@+1{{OpenACC 'present_or_copyin' clause is not valid on 'loop' directive}}
125 #pragma acc loop auto present_or_copyin(Var)
126   for(unsigned i = 0; i < 5; ++i);
127   // expected-error@+1{{OpenACC 'create' clause is not valid on 'loop' directive}}
128 #pragma acc loop auto create(Var)
129   for(unsigned i = 0; i < 5; ++i);
130   // expected-error@+1{{OpenACC 'pcreate' clause is not valid on 'loop' directive}}
131 #pragma acc loop auto pcreate(Var)
132   for(unsigned i = 0; i < 5; ++i);
133   // expected-error@+1{{OpenACC 'present_or_create' clause is not valid on 'loop' directive}}
134 #pragma acc loop auto present_or_create(Var)
135   for(unsigned i = 0; i < 5; ++i);
136 #pragma acc loop auto reduction(+:Var)
137   for(unsigned i = 0; i < 5; ++i);
138 #pragma acc loop auto collapse(1)
139   for(unsigned i = 0; i < 5; ++i);
140   // expected-warning@+1{{OpenACC clause 'bind' not yet implemented}}
141 #pragma acc loop auto bind(Var)
142   for(unsigned i = 0; i < 5; ++i);
143   // expected-error@+1{{OpenACC 'vector_length' clause is not valid on 'loop' directive}}
144 #pragma acc loop auto vector_length(1)
145   for(unsigned i = 0; i < 5; ++i);
146   // expected-error@+1{{OpenACC 'num_gangs' clause is not valid on 'loop' directive}}
147 #pragma acc loop auto num_gangs(1)
148   for(unsigned i = 0; i < 5; ++i);
149   // expected-error@+1{{OpenACC 'num_workers' clause is not valid on 'loop' directive}}
150 #pragma acc loop auto num_workers(1)
151   for(unsigned i = 0; i < 5; ++i);
152   // expected-error@+1{{OpenACC 'device_num' clause is not valid on 'loop' directive}}
153 #pragma acc loop auto device_num(1)
154   for(unsigned i = 0; i < 5; ++i);
155   // expected-error@+1{{OpenACC 'default_async' clause is not valid on 'loop' directive}}
156 #pragma acc loop auto default_async(1)
157   for(unsigned i = 0; i < 5; ++i);
158 #pragma acc loop auto device_type(*)
159   for(unsigned i = 0; i < 5; ++i);
160 #pragma acc loop auto dtype(*)
161   for(unsigned i = 0; i < 5; ++i);
162   // expected-error@+1{{OpenACC 'async' clause is not valid on 'loop' directive}}
163 #pragma acc loop auto async
164   for(unsigned i = 0; i < 5; ++i);
165 #pragma acc loop auto tile(1+2, 1)
166   for(unsigned j = 0; j < 5; ++j)
167     for(unsigned i = 0; i < 5; ++i);
168 #pragma acc loop auto gang
169   for(unsigned i = 0; i < 5; ++i);
170   // expected-error@+1{{OpenACC 'wait' clause is not valid on 'loop' directive}}
171 #pragma acc loop auto wait
172   for(unsigned i = 0; i < 5; ++i);
173 
174   // expected-error@+1{{OpenACC 'finalize' clause is not valid on 'loop' directive}}
175 #pragma acc loop finalize auto
176   for(unsigned i = 0; i < 5; ++i);
177   // expected-error@+1{{OpenACC 'if_present' clause is not valid on 'loop' directive}}
178 #pragma acc loop if_present auto
179   for(unsigned i = 0; i < 5; ++i);
180 #pragma acc loop worker auto
181   for(unsigned i = 0; i < 5; ++i);
182 #pragma acc loop vector auto
183   for(unsigned i = 0; i < 5; ++i);
184   // expected-warning@+1{{OpenACC clause 'nohost' not yet implemented}}
185 #pragma acc loop nohost auto
186   for(unsigned i = 0; i < 5; ++i);
187   // expected-error@+1{{OpenACC 'default' clause is not valid on 'loop' directive}}
188 #pragma acc loop default(none) auto
189   for(unsigned i = 0; i < 5; ++i);
190   // expected-error@+1{{OpenACC 'if' clause is not valid on 'loop' directive}}
191 #pragma acc loop if(1) auto
192   for(unsigned i = 0; i < 5; ++i);
193   // expected-error@+1{{OpenACC 'self' clause is not valid on 'loop' directive}}
194 #pragma acc loop self auto
195   for(unsigned i = 0; i < 5; ++i);
196   // expected-error@+1{{OpenACC 'copy' clause is not valid on 'loop' directive}}
197 #pragma acc loop copy(Var) auto
198   for(unsigned i = 0; i < 5; ++i);
199   // expected-error@+1{{OpenACC 'pcopy' clause is not valid on 'loop' directive}}
200 #pragma acc loop pcopy(Var) auto
201   for(unsigned i = 0; i < 5; ++i);
202   // expected-error@+1{{OpenACC 'present_or_copy' clause is not valid on 'loop' directive}}
203 #pragma acc loop present_or_copy(Var) auto
204   for(unsigned i = 0; i < 5; ++i);
205   // expected-error@+1{{OpenACC 'use_device' clause is not valid on 'loop' directive}}
206 #pragma acc loop use_device(Var) auto
207   for(unsigned i = 0; i < 5; ++i);
208   // expected-error@+1{{OpenACC 'attach' clause is not valid on 'loop' directive}}
209 #pragma acc loop attach(Var) auto
210   for(unsigned i = 0; i < 5; ++i);
211   // expected-error@+1{{OpenACC 'delete' clause is not valid on 'loop' directive}}
212 #pragma acc loop delete(Var) auto
213   for(unsigned i = 0; i < 5; ++i);
214   // expected-error@+1{{OpenACC 'detach' clause is not valid on 'loop' directive}}
215 #pragma acc loop detach(Var) auto
216   for(unsigned i = 0; i < 5; ++i);
217   // expected-error@+1{{OpenACC 'device' clause is not valid on 'loop' directive}}
218 #pragma acc loop device(VarPtr) auto
219   for(unsigned i = 0; i < 5; ++i);
220   // expected-error@+1{{OpenACC 'deviceptr' clause is not valid on 'loop' directive}}
221 #pragma acc loop deviceptr(VarPtr) auto
222   for(unsigned i = 0; i < 5; ++i);
223   // expected-warning@+1{{OpenACC clause 'device_resident' not yet implemented}}
224 #pragma acc loop device_resident(VarPtr) auto
225   for(unsigned i = 0; i < 5; ++i);
226   // expected-error@+1{{OpenACC 'firstprivate' clause is not valid on 'loop' directive}}
227 #pragma acc loop firstprivate(Var) auto
228   for(unsigned i = 0; i < 5; ++i);
229   // expected-error@+1{{OpenACC 'host' clause is not valid on 'loop' directive}}
230 #pragma acc loop host(Var) auto
231   for(unsigned i = 0; i < 5; ++i);
232   // expected-warning@+1{{OpenACC clause 'link' not yet implemented}}
233 #pragma acc loop link(Var) auto
234   for(unsigned i = 0; i < 5; ++i);
235   // expected-error@+1{{OpenACC 'no_create' clause is not valid on 'loop' directive}}
236 #pragma acc loop no_create(Var) auto
237   for(unsigned i = 0; i < 5; ++i);
238   // expected-error@+1{{OpenACC 'present' clause is not valid on 'loop' directive}}
239 #pragma acc loop present(Var) auto
240   for(unsigned i = 0; i < 5; ++i);
241 #pragma acc loop private(Var) auto
242   for(unsigned i = 0; i < 5; ++i);
243   // expected-error@+1{{OpenACC 'copyout' clause is not valid on 'loop' directive}}
244 #pragma acc loop copyout(Var) auto
245   for(unsigned i = 0; i < 5; ++i);
246   // expected-error@+1{{OpenACC 'pcopyout' clause is not valid on 'loop' directive}}
247 #pragma acc loop pcopyout(Var) auto
248   for(unsigned i = 0; i < 5; ++i);
249   // expected-error@+1{{OpenACC 'present_or_copyout' clause is not valid on 'loop' directive}}
250 #pragma acc loop present_or_copyout(Var) auto
251   for(unsigned i = 0; i < 5; ++i);
252   // expected-error@+1{{OpenACC 'copyin' clause is not valid on 'loop' directive}}
253 #pragma acc loop copyin(Var) auto
254   for(unsigned i = 0; i < 5; ++i);
255   // expected-error@+1{{OpenACC 'pcopyin' clause is not valid on 'loop' directive}}
256 #pragma acc loop pcopyin(Var) auto
257   for(unsigned i = 0; i < 5; ++i);
258   // expected-error@+1{{OpenACC 'present_or_copyin' clause is not valid on 'loop' directive}}
259 #pragma acc loop present_or_copyin(Var) auto
260   for(unsigned i = 0; i < 5; ++i);
261   // expected-error@+1{{OpenACC 'create' clause is not valid on 'loop' directive}}
262 #pragma acc loop create(Var) auto
263   for(unsigned i = 0; i < 5; ++i);
264   // expected-error@+1{{OpenACC 'pcreate' clause is not valid on 'loop' directive}}
265 #pragma acc loop pcreate(Var) auto
266   for(unsigned i = 0; i < 5; ++i);
267   // expected-error@+1{{OpenACC 'present_or_create' clause is not valid on 'loop' directive}}
268 #pragma acc loop present_or_create(Var) auto
269   for(unsigned i = 0; i < 5; ++i);
270 #pragma acc loop reduction(+:Var) auto
271   for(unsigned i = 0; i < 5; ++i);
272 #pragma acc loop collapse(1) auto
273   for(unsigned i = 0; i < 5; ++i);
274   // expected-warning@+1{{OpenACC clause 'bind' not yet implemented}}
275 #pragma acc loop bind(Var) auto
276   for(unsigned i = 0; i < 5; ++i);
277   // expected-error@+1{{OpenACC 'vector_length' clause is not valid on 'loop' directive}}
278 #pragma acc loop vector_length(1) auto
279   for(unsigned i = 0; i < 5; ++i);
280   // expected-error@+1{{OpenACC 'num_gangs' clause is not valid on 'loop' directive}}
281 #pragma acc loop num_gangs(1) auto
282   for(unsigned i = 0; i < 5; ++i);
283   // expected-error@+1{{OpenACC 'num_workers' clause is not valid on 'loop' directive}}
284 #pragma acc loop num_workers(1) auto
285   for(unsigned i = 0; i < 5; ++i);
286   // expected-error@+1{{OpenACC 'device_num' clause is not valid on 'loop' directive}}
287 #pragma acc loop device_num(1) auto
288   for(unsigned i = 0; i < 5; ++i);
289   // expected-error@+1{{OpenACC 'default_async' clause is not valid on 'loop' directive}}
290 #pragma acc loop default_async(1) auto
291   for(unsigned i = 0; i < 5; ++i);
292 #pragma acc loop device_type(*) auto
293   for(unsigned i = 0; i < 5; ++i);
294 #pragma acc loop dtype(*) auto
295   for(unsigned i = 0; i < 5; ++i);
296   // expected-error@+1{{OpenACC 'async' clause is not valid on 'loop' directive}}
297 #pragma acc loop async auto
298   for(unsigned i = 0; i < 5; ++i);
299 #pragma acc loop tile(1+2, 1) auto
300   for(unsigned j = 0; j < 5; ++j)
301     for(unsigned i = 0; i < 5; ++i);
302 #pragma acc loop gang auto
303   for(unsigned i = 0; i < 5; ++i);
304   // expected-error@+1{{OpenACC 'wait' clause is not valid on 'loop' directive}}
305 #pragma acc loop wait auto
306   for(unsigned i = 0; i < 5; ++i);
307 
308   // 'independent' can also be combined with any clauses
309   // expected-error@+1{{OpenACC 'finalize' clause is not valid on 'loop' directive}}
310 #pragma acc loop independent finalize
311   for(unsigned i = 0; i < 5; ++i);
312   // expected-error@+1{{OpenACC 'if_present' clause is not valid on 'loop' directive}}
313 #pragma acc loop independent if_present
314   for(unsigned i = 0; i < 5; ++i);
315 #pragma acc loop independent worker
316   for(unsigned i = 0; i < 5; ++i);
317 #pragma acc loop independent vector
318   for(unsigned i = 0; i < 5; ++i);
319   // expected-warning@+1{{OpenACC clause 'nohost' not yet implemented}}
320 #pragma acc loop independent nohost
321   for(unsigned i = 0; i < 5; ++i);
322   // expected-error@+1{{OpenACC 'default' clause is not valid on 'loop' directive}}
323 #pragma acc loop independent default(none)
324   for(unsigned i = 0; i < 5; ++i);
325   // expected-error@+1{{OpenACC 'if' clause is not valid on 'loop' directive}}
326 #pragma acc loop independent if(1)
327   for(unsigned i = 0; i < 5; ++i);
328   // expected-error@+1{{OpenACC 'self' clause is not valid on 'loop' directive}}
329 #pragma acc loop independent self
330   for(unsigned i = 0; i < 5; ++i);
331   // expected-error@+1{{OpenACC 'copy' clause is not valid on 'loop' directive}}
332 #pragma acc loop independent copy(Var)
333   for(unsigned i = 0; i < 5; ++i);
334   // expected-error@+1{{OpenACC 'pcopy' clause is not valid on 'loop' directive}}
335 #pragma acc loop independent pcopy(Var)
336   for(unsigned i = 0; i < 5; ++i);
337   // expected-error@+1{{OpenACC 'present_or_copy' clause is not valid on 'loop' directive}}
338 #pragma acc loop independent present_or_copy(Var)
339   for(unsigned i = 0; i < 5; ++i);
340   // expected-error@+1{{OpenACC 'use_device' clause is not valid on 'loop' directive}}
341 #pragma acc loop independent use_device(Var)
342   for(unsigned i = 0; i < 5; ++i);
343   // expected-error@+1{{OpenACC 'attach' clause is not valid on 'loop' directive}}
344 #pragma acc loop independent attach(Var)
345   for(unsigned i = 0; i < 5; ++i);
346   // expected-error@+1{{OpenACC 'delete' clause is not valid on 'loop' directive}}
347 #pragma acc loop independent delete(Var)
348   for(unsigned i = 0; i < 5; ++i);
349   // expected-error@+1{{OpenACC 'detach' clause is not valid on 'loop' directive}}
350 #pragma acc loop independent detach(Var)
351   for(unsigned i = 0; i < 5; ++i);
352   // expected-error@+1{{OpenACC 'device' clause is not valid on 'loop' directive}}
353 #pragma acc loop independent device(VarPtr)
354   for(unsigned i = 0; i < 5; ++i);
355   // expected-error@+1{{OpenACC 'deviceptr' clause is not valid on 'loop' directive}}
356 #pragma acc loop independent deviceptr(VarPtr)
357   for(unsigned i = 0; i < 5; ++i);
358   // expected-warning@+1{{OpenACC clause 'device_resident' not yet implemented}}
359 #pragma acc loop independent device_resident(VarPtr)
360   for(unsigned i = 0; i < 5; ++i);
361   // expected-error@+1{{OpenACC 'firstprivate' clause is not valid on 'loop' directive}}
362 #pragma acc loop independent firstprivate(Var)
363   for(unsigned i = 0; i < 5; ++i);
364   // expected-error@+1{{OpenACC 'host' clause is not valid on 'loop' directive}}
365 #pragma acc loop independent host(Var)
366   for(unsigned i = 0; i < 5; ++i);
367   // expected-warning@+1{{OpenACC clause 'link' not yet implemented}}
368 #pragma acc loop independent link(Var)
369   for(unsigned i = 0; i < 5; ++i);
370   // expected-error@+1{{OpenACC 'no_create' clause is not valid on 'loop' directive}}
371 #pragma acc loop independent no_create(Var)
372   for(unsigned i = 0; i < 5; ++i);
373   // expected-error@+1{{OpenACC 'present' clause is not valid on 'loop' directive}}
374 #pragma acc loop independent present(Var)
375   for(unsigned i = 0; i < 5; ++i);
376 #pragma acc loop independent private(Var)
377   for(unsigned i = 0; i < 5; ++i);
378   // expected-error@+1{{OpenACC 'copyout' clause is not valid on 'loop' directive}}
379 #pragma acc loop independent copyout(Var)
380   for(unsigned i = 0; i < 5; ++i);
381   // expected-error@+1{{OpenACC 'pcopyout' clause is not valid on 'loop' directive}}
382 #pragma acc loop independent pcopyout(Var)
383   for(unsigned i = 0; i < 5; ++i);
384   // expected-error@+1{{OpenACC 'present_or_copyout' clause is not valid on 'loop' directive}}
385 #pragma acc loop independent present_or_copyout(Var)
386   for(unsigned i = 0; i < 5; ++i);
387   // expected-error@+1{{OpenACC 'copyin' clause is not valid on 'loop' directive}}
388 #pragma acc loop independent copyin(Var)
389   for(unsigned i = 0; i < 5; ++i);
390   // expected-error@+1{{OpenACC 'pcopyin' clause is not valid on 'loop' directive}}
391 #pragma acc loop independent pcopyin(Var)
392   for(unsigned i = 0; i < 5; ++i);
393   // expected-error@+1{{OpenACC 'present_or_copyin' clause is not valid on 'loop' directive}}
394 #pragma acc loop independent present_or_copyin(Var)
395   for(unsigned i = 0; i < 5; ++i);
396   // expected-error@+1{{OpenACC 'create' clause is not valid on 'loop' directive}}
397 #pragma acc loop independent create(Var)
398   for(unsigned i = 0; i < 5; ++i);
399   // expected-error@+1{{OpenACC 'pcreate' clause is not valid on 'loop' directive}}
400 #pragma acc loop independent pcreate(Var)
401   for(unsigned i = 0; i < 5; ++i);
402   // expected-error@+1{{OpenACC 'present_or_create' clause is not valid on 'loop' directive}}
403 #pragma acc loop independent present_or_create(Var)
404   for(unsigned i = 0; i < 5; ++i);
405 #pragma acc loop independent reduction(+:Var)
406   for(unsigned i = 0; i < 5; ++i);
407 #pragma acc loop independent collapse(1)
408   for(unsigned i = 0; i < 5; ++i);
409   // expected-warning@+1{{OpenACC clause 'bind' not yet implemented}}
410 #pragma acc loop independent bind(Var)
411   for(unsigned i = 0; i < 5; ++i);
412   // expected-error@+1{{OpenACC 'vector_length' clause is not valid on 'loop' directive}}
413 #pragma acc loop independent vector_length(1)
414   for(unsigned i = 0; i < 5; ++i);
415   // expected-error@+1{{OpenACC 'num_gangs' clause is not valid on 'loop' directive}}
416 #pragma acc loop independent num_gangs(1)
417   for(unsigned i = 0; i < 5; ++i);
418   // expected-error@+1{{OpenACC 'num_workers' clause is not valid on 'loop' directive}}
419 #pragma acc loop independent num_workers(1)
420   for(unsigned i = 0; i < 5; ++i);
421   // expected-error@+1{{OpenACC 'device_num' clause is not valid on 'loop' directive}}
422 #pragma acc loop independent device_num(1)
423   for(unsigned i = 0; i < 5; ++i);
424   // expected-error@+1{{OpenACC 'default_async' clause is not valid on 'loop' directive}}
425 #pragma acc loop independent default_async(1)
426   for(unsigned i = 0; i < 5; ++i);
427 #pragma acc loop independent device_type(*)
428   for(unsigned i = 0; i < 5; ++i);
429 #pragma acc loop independent dtype(*)
430   for(unsigned i = 0; i < 5; ++i);
431   // expected-error@+1{{OpenACC 'async' clause is not valid on 'loop' directive}}
432 #pragma acc loop independent async
433   for(unsigned i = 0; i < 5; ++i);
434 #pragma acc loop independent tile(1+2, 1)
435   for(unsigned j = 0; j < 5; ++j)
436     for(unsigned i = 0; i < 5; ++i);
437 #pragma acc loop independent gang
438   for(unsigned i = 0; i < 5; ++i);
439   // expected-error@+1{{OpenACC 'wait' clause is not valid on 'loop' directive}}
440 #pragma acc loop independent wait
441   for(unsigned i = 0; i < 5; ++i);
442 
443   // expected-error@+1{{OpenACC 'finalize' clause is not valid on 'loop' directive}}
444 #pragma acc loop finalize independent
445   for(unsigned i = 0; i < 5; ++i);
446   // expected-error@+1{{OpenACC 'if_present' clause is not valid on 'loop' directive}}
447 #pragma acc loop if_present independent
448   for(unsigned i = 0; i < 5; ++i);
449 #pragma acc loop worker independent
450   for(unsigned i = 0; i < 5; ++i);
451 #pragma acc loop vector independent
452   for(unsigned i = 0; i < 5; ++i);
453   // expected-warning@+1{{OpenACC clause 'nohost' not yet implemented}}
454 #pragma acc loop nohost independent
455   for(unsigned i = 0; i < 5; ++i);
456   // expected-error@+1{{OpenACC 'default' clause is not valid on 'loop' directive}}
457 #pragma acc loop default(none) independent
458   for(unsigned i = 0; i < 5; ++i);
459   // expected-error@+1{{OpenACC 'if' clause is not valid on 'loop' directive}}
460 #pragma acc loop if(1) independent
461   for(unsigned i = 0; i < 5; ++i);
462   // expected-error@+1{{OpenACC 'self' clause is not valid on 'loop' directive}}
463 #pragma acc loop self independent
464   for(unsigned i = 0; i < 5; ++i);
465   // expected-error@+1{{OpenACC 'copy' clause is not valid on 'loop' directive}}
466 #pragma acc loop copy(Var) independent
467   for(unsigned i = 0; i < 5; ++i);
468   // expected-error@+1{{OpenACC 'pcopy' clause is not valid on 'loop' directive}}
469 #pragma acc loop pcopy(Var) independent
470   for(unsigned i = 0; i < 5; ++i);
471   // expected-error@+1{{OpenACC 'present_or_copy' clause is not valid on 'loop' directive}}
472 #pragma acc loop present_or_copy(Var) independent
473   for(unsigned i = 0; i < 5; ++i);
474   // expected-error@+1{{OpenACC 'use_device' clause is not valid on 'loop' directive}}
475 #pragma acc loop use_device(Var) independent
476   for(unsigned i = 0; i < 5; ++i);
477   // expected-error@+1{{OpenACC 'attach' clause is not valid on 'loop' directive}}
478 #pragma acc loop attach(Var) independent
479   for(unsigned i = 0; i < 5; ++i);
480   // expected-error@+1{{OpenACC 'delete' clause is not valid on 'loop' directive}}
481 #pragma acc loop delete(Var) independent
482   for(unsigned i = 0; i < 5; ++i);
483   // expected-error@+1{{OpenACC 'detach' clause is not valid on 'loop' directive}}
484 #pragma acc loop detach(Var) independent
485   for(unsigned i = 0; i < 5; ++i);
486   // expected-error@+1{{OpenACC 'device' clause is not valid on 'loop' directive}}
487 #pragma acc loop device(VarPtr) independent
488   for(unsigned i = 0; i < 5; ++i);
489   // expected-error@+1{{OpenACC 'deviceptr' clause is not valid on 'loop' directive}}
490 #pragma acc loop deviceptr(VarPtr) independent
491   for(unsigned i = 0; i < 5; ++i);
492   // expected-warning@+1{{OpenACC clause 'device_resident' not yet implemented}}
493 #pragma acc loop device_resident(VarPtr) independent
494   for(unsigned i = 0; i < 5; ++i);
495   // expected-error@+1{{OpenACC 'firstprivate' clause is not valid on 'loop' directive}}
496 #pragma acc loop firstprivate(Var) independent
497   for(unsigned i = 0; i < 5; ++i);
498   // expected-error@+1{{OpenACC 'host' clause is not valid on 'loop' directive}}
499 #pragma acc loop host(Var) independent
500   for(unsigned i = 0; i < 5; ++i);
501   // expected-warning@+1{{OpenACC clause 'link' not yet implemented}}
502 #pragma acc loop link(Var) independent
503   for(unsigned i = 0; i < 5; ++i);
504   // expected-error@+1{{OpenACC 'no_create' clause is not valid on 'loop' directive}}
505 #pragma acc loop no_create(Var) independent
506   for(unsigned i = 0; i < 5; ++i);
507   // expected-error@+1{{OpenACC 'present' clause is not valid on 'loop' directive}}
508 #pragma acc loop present(Var) independent
509   for(unsigned i = 0; i < 5; ++i);
510 #pragma acc loop private(Var) independent
511   for(unsigned i = 0; i < 5; ++i);
512   // expected-error@+1{{OpenACC 'copyout' clause is not valid on 'loop' directive}}
513 #pragma acc loop copyout(Var) independent
514   for(unsigned i = 0; i < 5; ++i);
515   // expected-error@+1{{OpenACC 'pcopyout' clause is not valid on 'loop' directive}}
516 #pragma acc loop pcopyout(Var) independent
517   for(unsigned i = 0; i < 5; ++i);
518   // expected-error@+1{{OpenACC 'present_or_copyout' clause is not valid on 'loop' directive}}
519 #pragma acc loop present_or_copyout(Var) independent
520   for(unsigned i = 0; i < 5; ++i);
521   // expected-error@+1{{OpenACC 'copyin' clause is not valid on 'loop' directive}}
522 #pragma acc loop copyin(Var) independent
523   for(unsigned i = 0; i < 5; ++i);
524   // expected-error@+1{{OpenACC 'pcopyin' clause is not valid on 'loop' directive}}
525 #pragma acc loop pcopyin(Var) independent
526   for(unsigned i = 0; i < 5; ++i);
527   // expected-error@+1{{OpenACC 'present_or_copyin' clause is not valid on 'loop' directive}}
528 #pragma acc loop present_or_copyin(Var) independent
529   for(unsigned i = 0; i < 5; ++i);
530   // expected-error@+1{{OpenACC 'create' clause is not valid on 'loop' directive}}
531 #pragma acc loop create(Var) independent
532   for(unsigned i = 0; i < 5; ++i);
533   // expected-error@+1{{OpenACC 'pcreate' clause is not valid on 'loop' directive}}
534 #pragma acc loop pcreate(Var) independent
535   for(unsigned i = 0; i < 5; ++i);
536   // expected-error@+1{{OpenACC 'present_or_create' clause is not valid on 'loop' directive}}
537 #pragma acc loop present_or_create(Var) independent
538   for(unsigned i = 0; i < 5; ++i);
539 #pragma acc loop reduction(+:Var) independent
540   for(unsigned i = 0; i < 5; ++i);
541 #pragma acc loop collapse(1) independent
542   for(unsigned i = 0; i < 5; ++i);
543   // expected-warning@+1{{OpenACC clause 'bind' not yet implemented}}
544 #pragma acc loop bind(Var) independent
545   for(unsigned i = 0; i < 5; ++i);
546   // expected-error@+1{{OpenACC 'vector_length' clause is not valid on 'loop' directive}}
547 #pragma acc loop vector_length(1) independent
548   for(unsigned i = 0; i < 5; ++i);
549   // expected-error@+1{{OpenACC 'num_gangs' clause is not valid on 'loop' directive}}
550 #pragma acc loop num_gangs(1) independent
551   for(unsigned i = 0; i < 5; ++i);
552   // expected-error@+1{{OpenACC 'num_workers' clause is not valid on 'loop' directive}}
553 #pragma acc loop num_workers(1) independent
554   for(unsigned i = 0; i < 5; ++i);
555   // expected-error@+1{{OpenACC 'device_num' clause is not valid on 'loop' directive}}
556 #pragma acc loop device_num(1) independent
557   for(unsigned i = 0; i < 5; ++i);
558   // expected-error@+1{{OpenACC 'default_async' clause is not valid on 'loop' directive}}
559 #pragma acc loop default_async(1) independent
560   for(unsigned i = 0; i < 5; ++i);
561 #pragma acc loop device_type(*) independent
562   for(unsigned i = 0; i < 5; ++i);
563 #pragma acc loop dtype(*) independent
564   for(unsigned i = 0; i < 5; ++i);
565   // expected-error@+1{{OpenACC 'async' clause is not valid on 'loop' directive}}
566 #pragma acc loop async independent
567   for(unsigned i = 0; i < 5; ++i);
568 #pragma acc loop tile(1+2, 1) independent
569   for(unsigned j = 0; j < 5; ++j)
570     for(unsigned i = 0; i < 5; ++i);
571 #pragma acc loop gang independent
572   for(unsigned i = 0; i < 5; ++i);
573   // expected-error@+1{{OpenACC 'wait' clause is not valid on 'loop' directive}}
574 #pragma acc loop wait independent
575   for(unsigned i = 0; i < 5; ++i);
576 
577   // 'seq' cannot be combined with 'gang', 'worker' or 'vector'
578   // expected-error@+2{{OpenACC clause 'gang' may not appear on the same construct as a 'seq' clause on a 'loop' construct}}
579   // expected-note@+1{{previous clause is here}}
580 #pragma acc loop seq gang
581   for(unsigned i = 0; i < 5; ++i);
582   // expected-error@+2{{OpenACC clause 'worker' may not appear on the same construct as a 'seq' clause on a 'loop' construct}}
583   // expected-note@+1{{previous clause is here}}
584 #pragma acc loop seq worker
585   for(unsigned i = 0; i < 5; ++i);
586   // expected-error@+2{{OpenACC clause 'vector' may not appear on the same construct as a 'seq' clause on a 'loop' construct}}
587   // expected-note@+1{{previous clause is here}}
588 #pragma acc loop seq vector
589   for(unsigned i = 0; i < 5; ++i);
590   // expected-error@+1{{OpenACC 'finalize' clause is not valid on 'loop' directive}}
591 #pragma acc loop seq finalize
592   for(unsigned i = 0; i < 5; ++i);
593   // expected-error@+1{{OpenACC 'if_present' clause is not valid on 'loop' directive}}
594 #pragma acc loop seq if_present
595   for(unsigned i = 0; i < 5; ++i);
596   // expected-warning@+1{{OpenACC clause 'nohost' not yet implemented}}
597 #pragma acc loop seq nohost
598   for(unsigned i = 0; i < 5; ++i);
599   // expected-error@+1{{OpenACC 'default' clause is not valid on 'loop' directive}}
600 #pragma acc loop seq default(none)
601   for(unsigned i = 0; i < 5; ++i);
602   // expected-error@+1{{OpenACC 'if' clause is not valid on 'loop' directive}}
603 #pragma acc loop seq if(1)
604   for(unsigned i = 0; i < 5; ++i);
605   // expected-error@+1{{OpenACC 'self' clause is not valid on 'loop' directive}}
606 #pragma acc loop seq self
607   for(unsigned i = 0; i < 5; ++i);
608   // expected-error@+1{{OpenACC 'copy' clause is not valid on 'loop' directive}}
609 #pragma acc loop seq copy(Var)
610   for(unsigned i = 0; i < 5; ++i);
611   // expected-error@+1{{OpenACC 'pcopy' clause is not valid on 'loop' directive}}
612 #pragma acc loop seq pcopy(Var)
613   for(unsigned i = 0; i < 5; ++i);
614   // expected-error@+1{{OpenACC 'present_or_copy' clause is not valid on 'loop' directive}}
615 #pragma acc loop seq present_or_copy(Var)
616   for(unsigned i = 0; i < 5; ++i);
617   // expected-error@+1{{OpenACC 'use_device' clause is not valid on 'loop' directive}}
618 #pragma acc loop seq use_device(Var)
619   for(unsigned i = 0; i < 5; ++i);
620   // expected-error@+1{{OpenACC 'attach' clause is not valid on 'loop' directive}}
621 #pragma acc loop seq attach(Var)
622   for(unsigned i = 0; i < 5; ++i);
623   // expected-error@+1{{OpenACC 'delete' clause is not valid on 'loop' directive}}
624 #pragma acc loop seq delete(Var)
625   for(unsigned i = 0; i < 5; ++i);
626   // expected-error@+1{{OpenACC 'detach' clause is not valid on 'loop' directive}}
627 #pragma acc loop seq detach(Var)
628   for(unsigned i = 0; i < 5; ++i);
629   // expected-error@+1{{OpenACC 'device' clause is not valid on 'loop' directive}}
630 #pragma acc loop seq device(VarPtr)
631   for(unsigned i = 0; i < 5; ++i);
632   // expected-error@+1{{OpenACC 'deviceptr' clause is not valid on 'loop' directive}}
633 #pragma acc loop seq deviceptr(VarPtr)
634   for(unsigned i = 0; i < 5; ++i);
635   // expected-warning@+1{{OpenACC clause 'device_resident' not yet implemented}}
636 #pragma acc loop seq device_resident(VarPtr)
637   for(unsigned i = 0; i < 5; ++i);
638   // expected-error@+1{{OpenACC 'firstprivate' clause is not valid on 'loop' directive}}
639 #pragma acc loop seq firstprivate(Var)
640   for(unsigned i = 0; i < 5; ++i);
641   // expected-error@+1{{OpenACC 'host' clause is not valid on 'loop' directive}}
642 #pragma acc loop seq host(Var)
643   for(unsigned i = 0; i < 5; ++i);
644   // expected-warning@+1{{OpenACC clause 'link' not yet implemented}}
645 #pragma acc loop seq link(Var)
646   for(unsigned i = 0; i < 5; ++i);
647   // expected-error@+1{{OpenACC 'no_create' clause is not valid on 'loop' directive}}
648 #pragma acc loop seq no_create(Var)
649   for(unsigned i = 0; i < 5; ++i);
650   // expected-error@+1{{OpenACC 'present' clause is not valid on 'loop' directive}}
651 #pragma acc loop seq present(Var)
652   for(unsigned i = 0; i < 5; ++i);
653 #pragma acc loop seq private(Var)
654   for(unsigned i = 0; i < 5; ++i);
655   // expected-error@+1{{OpenACC 'copyout' clause is not valid on 'loop' directive}}
656 #pragma acc loop seq copyout(Var)
657   for(unsigned i = 0; i < 5; ++i);
658   // expected-error@+1{{OpenACC 'pcopyout' clause is not valid on 'loop' directive}}
659 #pragma acc loop seq pcopyout(Var)
660   for(unsigned i = 0; i < 5; ++i);
661   // expected-error@+1{{OpenACC 'present_or_copyout' clause is not valid on 'loop' directive}}
662 #pragma acc loop seq present_or_copyout(Var)
663   for(unsigned i = 0; i < 5; ++i);
664   // expected-error@+1{{OpenACC 'copyin' clause is not valid on 'loop' directive}}
665 #pragma acc loop seq copyin(Var)
666   for(unsigned i = 0; i < 5; ++i);
667   // expected-error@+1{{OpenACC 'pcopyin' clause is not valid on 'loop' directive}}
668 #pragma acc loop seq pcopyin(Var)
669   for(unsigned i = 0; i < 5; ++i);
670   // expected-error@+1{{OpenACC 'present_or_copyin' clause is not valid on 'loop' directive}}
671 #pragma acc loop seq present_or_copyin(Var)
672   for(unsigned i = 0; i < 5; ++i);
673   // expected-error@+1{{OpenACC 'create' clause is not valid on 'loop' directive}}
674 #pragma acc loop seq create(Var)
675   for(unsigned i = 0; i < 5; ++i);
676   // expected-error@+1{{OpenACC 'pcreate' clause is not valid on 'loop' directive}}
677 #pragma acc loop seq pcreate(Var)
678   for(unsigned i = 0; i < 5; ++i);
679   // expected-error@+1{{OpenACC 'present_or_create' clause is not valid on 'loop' directive}}
680 #pragma acc loop seq present_or_create(Var)
681   for(unsigned i = 0; i < 5; ++i);
682 #pragma acc loop seq reduction(+:Var)
683   for(unsigned i = 0; i < 5; ++i);
684 #pragma acc loop seq collapse(1)
685   for(unsigned i = 0; i < 5; ++i);
686   // expected-warning@+1{{OpenACC clause 'bind' not yet implemented}}
687 #pragma acc loop seq bind(Var)
688   for(unsigned i = 0; i < 5; ++i);
689   // expected-error@+1{{OpenACC 'vector_length' clause is not valid on 'loop' directive}}
690 #pragma acc loop seq vector_length(1)
691   for(unsigned i = 0; i < 5; ++i);
692   // expected-error@+1{{OpenACC 'num_gangs' clause is not valid on 'loop' directive}}
693 #pragma acc loop seq num_gangs(1)
694   for(unsigned i = 0; i < 5; ++i);
695   // expected-error@+1{{OpenACC 'num_workers' clause is not valid on 'loop' directive}}
696 #pragma acc loop seq num_workers(1)
697   for(unsigned i = 0; i < 5; ++i);
698   // expected-error@+1{{OpenACC 'device_num' clause is not valid on 'loop' directive}}
699 #pragma acc loop seq device_num(1)
700   for(unsigned i = 0; i < 5; ++i);
701   // expected-error@+1{{OpenACC 'default_async' clause is not valid on 'loop' directive}}
702 #pragma acc loop seq default_async(1)
703   for(unsigned i = 0; i < 5; ++i);
704 #pragma acc loop seq device_type(*)
705   for(unsigned i = 0; i < 5; ++i);
706 #pragma acc loop seq dtype(*)
707   for(unsigned i = 0; i < 5; ++i);
708   // expected-error@+1{{OpenACC 'async' clause is not valid on 'loop' directive}}
709 #pragma acc loop seq async
710   for(unsigned i = 0; i < 5; ++i);
711 #pragma acc loop seq tile(1+2, 1)
712   for(;;)
713     for(unsigned i = 0; i < 5; ++i);
714   // expected-error@+1{{OpenACC 'wait' clause is not valid on 'loop' directive}}
715 #pragma acc loop seq wait
716   for(unsigned i = 0; i < 5; ++i);
717 
718   // expected-error@+2{{OpenACC clause 'seq' may not appear on the same construct as a 'gang' clause on a 'loop' construct}}
719   // expected-note@+1{{previous clause is here}}
720 #pragma acc loop gang seq
721   for(unsigned i = 0; i < 5; ++i);
722   // expected-error@+2{{OpenACC clause 'seq' may not appear on the same construct as a 'worker' clause on a 'loop' construct}}
723   // expected-note@+1{{previous clause is here}}
724 #pragma acc loop worker seq
725   for(unsigned i = 0; i < 5; ++i);
726   // expected-error@+2{{OpenACC clause 'seq' may not appear on the same construct as a 'vector' clause on a 'loop' construct}}
727   // expected-note@+1{{previous clause is here}}
728 #pragma acc loop vector seq
729   for(unsigned i = 0; i < 5; ++i);
730   // expected-error@+1{{OpenACC 'finalize' clause is not valid on 'loop' directive}}
731 #pragma acc loop finalize seq
732   for(unsigned i = 0; i < 5; ++i);
733   // expected-error@+1{{OpenACC 'if_present' clause is not valid on 'loop' directive}}
734 #pragma acc loop if_present seq
735   for(unsigned i = 0; i < 5; ++i);
736   // expected-warning@+1{{OpenACC clause 'nohost' not yet implemented}}
737 #pragma acc loop nohost seq
738   for(unsigned i = 0; i < 5; ++i);
739   // expected-error@+1{{OpenACC 'default' clause is not valid on 'loop' directive}}
740 #pragma acc loop default(none) seq
741   for(unsigned i = 0; i < 5; ++i);
742   // expected-error@+1{{OpenACC 'if' clause is not valid on 'loop' directive}}
743 #pragma acc loop if(1) seq
744   for(unsigned i = 0; i < 5; ++i);
745   // expected-error@+1{{OpenACC 'self' clause is not valid on 'loop' directive}}
746 #pragma acc loop self seq
747   for(unsigned i = 0; i < 5; ++i);
748   // expected-error@+1{{OpenACC 'copy' clause is not valid on 'loop' directive}}
749 #pragma acc loop copy(Var) seq
750   for(unsigned i = 0; i < 5; ++i);
751   // expected-error@+1{{OpenACC 'pcopy' clause is not valid on 'loop' directive}}
752 #pragma acc loop pcopy(Var) seq
753   for(unsigned i = 0; i < 5; ++i);
754   // expected-error@+1{{OpenACC 'present_or_copy' clause is not valid on 'loop' directive}}
755 #pragma acc loop present_or_copy(Var) seq
756   for(unsigned i = 0; i < 5; ++i);
757   // expected-error@+1{{OpenACC 'use_device' clause is not valid on 'loop' directive}}
758 #pragma acc loop use_device(Var) seq
759   for(unsigned i = 0; i < 5; ++i);
760   // expected-error@+1{{OpenACC 'attach' clause is not valid on 'loop' directive}}
761 #pragma acc loop attach(Var) seq
762   for(unsigned i = 0; i < 5; ++i);
763   // expected-error@+1{{OpenACC 'delete' clause is not valid on 'loop' directive}}
764 #pragma acc loop delete(Var) seq
765   for(unsigned i = 0; i < 5; ++i);
766   // expected-error@+1{{OpenACC 'detach' clause is not valid on 'loop' directive}}
767 #pragma acc loop detach(Var) seq
768   for(unsigned i = 0; i < 5; ++i);
769   // expected-error@+1{{OpenACC 'device' clause is not valid on 'loop' directive}}
770 #pragma acc loop device(VarPtr) seq
771   for(unsigned i = 0; i < 5; ++i);
772   // expected-error@+1{{OpenACC 'deviceptr' clause is not valid on 'loop' directive}}
773 #pragma acc loop deviceptr(VarPtr) seq
774   for(unsigned i = 0; i < 5; ++i);
775   // expected-warning@+1{{OpenACC clause 'device_resident' not yet implemented}}
776 #pragma acc loop device_resident(VarPtr) seq
777   for(unsigned i = 0; i < 5; ++i);
778   // expected-error@+1{{OpenACC 'firstprivate' clause is not valid on 'loop' directive}}
779 #pragma acc loop firstprivate(Var) seq
780   for(unsigned i = 0; i < 5; ++i);
781   // expected-error@+1{{OpenACC 'host' clause is not valid on 'loop' directive}}
782 #pragma acc loop host(Var) seq
783   for(unsigned i = 0; i < 5; ++i);
784   // expected-warning@+1{{OpenACC clause 'link' not yet implemented}}
785 #pragma acc loop link(Var) seq
786   for(unsigned i = 0; i < 5; ++i);
787   // expected-error@+1{{OpenACC 'no_create' clause is not valid on 'loop' directive}}
788 #pragma acc loop no_create(Var) seq
789   for(unsigned i = 0; i < 5; ++i);
790   // expected-error@+1{{OpenACC 'present' clause is not valid on 'loop' directive}}
791 #pragma acc loop present(Var) seq
792   for(unsigned i = 0; i < 5; ++i);
793 #pragma acc loop private(Var) seq
794   for(unsigned i = 0; i < 5; ++i);
795   // expected-error@+1{{OpenACC 'copyout' clause is not valid on 'loop' directive}}
796 #pragma acc loop copyout(Var) seq
797   for(unsigned i = 0; i < 5; ++i);
798   // expected-error@+1{{OpenACC 'pcopyout' clause is not valid on 'loop' directive}}
799 #pragma acc loop pcopyout(Var) seq
800   for(unsigned i = 0; i < 5; ++i);
801   // expected-error@+1{{OpenACC 'present_or_copyout' clause is not valid on 'loop' directive}}
802 #pragma acc loop present_or_copyout(Var) seq
803   for(unsigned i = 0; i < 5; ++i);
804   // expected-error@+1{{OpenACC 'copyin' clause is not valid on 'loop' directive}}
805 #pragma acc loop copyin(Var) seq
806   for(unsigned i = 0; i < 5; ++i);
807   // expected-error@+1{{OpenACC 'pcopyin' clause is not valid on 'loop' directive}}
808 #pragma acc loop pcopyin(Var) seq
809   for(unsigned i = 0; i < 5; ++i);
810   // expected-error@+1{{OpenACC 'present_or_copyin' clause is not valid on 'loop' directive}}
811 #pragma acc loop present_or_copyin(Var) seq
812   for(unsigned i = 0; i < 5; ++i);
813   // expected-error@+1{{OpenACC 'create' clause is not valid on 'loop' directive}}
814 #pragma acc loop create(Var) seq
815   for(unsigned i = 0; i < 5; ++i);
816   // expected-error@+1{{OpenACC 'pcreate' clause is not valid on 'loop' directive}}
817 #pragma acc loop pcreate(Var) seq
818   for(unsigned i = 0; i < 5; ++i);
819   // expected-error@+1{{OpenACC 'present_or_create' clause is not valid on 'loop' directive}}
820 #pragma acc loop present_or_create(Var) seq
821   for(unsigned i = 0; i < 5; ++i);
822 #pragma acc loop reduction(+:Var) seq
823   for(unsigned i = 0; i < 5; ++i);
824 #pragma acc loop collapse(1) seq
825   for(unsigned i = 0; i < 5; ++i);
826   // expected-warning@+1{{OpenACC clause 'bind' not yet implemented}}
827 #pragma acc loop bind(Var) seq
828   for(unsigned i = 0; i < 5; ++i);
829   // expected-error@+1{{OpenACC 'vector_length' clause is not valid on 'loop' directive}}
830 #pragma acc loop vector_length(1) seq
831   for(unsigned i = 0; i < 5; ++i);
832   // expected-error@+1{{OpenACC 'num_gangs' clause is not valid on 'loop' directive}}
833 #pragma acc loop num_gangs(1) seq
834   for(unsigned i = 0; i < 5; ++i);
835   // expected-error@+1{{OpenACC 'num_workers' clause is not valid on 'loop' directive}}
836 #pragma acc loop num_workers(1) seq
837   for(unsigned i = 0; i < 5; ++i);
838   // expected-error@+1{{OpenACC 'device_num' clause is not valid on 'loop' directive}}
839 #pragma acc loop device_num(1) seq
840   for(unsigned i = 0; i < 5; ++i);
841   // expected-error@+1{{OpenACC 'default_async' clause is not valid on 'loop' directive}}
842 #pragma acc loop default_async(1) seq
843   for(unsigned i = 0; i < 5; ++i);
844 #pragma acc loop device_type(*) seq
845   for(unsigned i = 0; i < 5; ++i);
846 #pragma acc loop dtype(*) seq
847   for(unsigned i = 0; i < 5; ++i);
848   // expected-error@+1{{OpenACC 'async' clause is not valid on 'loop' directive}}
849 #pragma acc loop async seq
850   for(unsigned i = 0; i < 5; ++i);
851 #pragma acc loop tile(1+2, 1) seq
852   for(;;)
853     for(unsigned i = 0; i < 5; ++i);
854   // expected-error@+1{{OpenACC 'wait' clause is not valid on 'loop' directive}}
855 #pragma acc loop wait seq
856   for(unsigned i = 0; i < 5; ++i);
857 }
858