1 // RUN: %clang_cc1 %s -verify -fopenacc
5 // expected-error@+2{{expected OpenACC directive}}
6 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
10 // expected-error@+3{{expected OpenACC directive}}
11 // expected-error@+2{{invalid OpenACC clause 'whatever'}}
12 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
13 #pragma acc(whatever) routine
15 // expected-error@+3{{expected OpenACC directive}}
16 // expected-error@+2{{invalid OpenACC clause 'routine'}}
17 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
20 // expected-error@+2{{invalid OpenACC directive 'invalid'}}
21 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
25 // expected-error@+2{{invalid OpenACC clause 'clause'}}
26 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
27 #pragma acc parallel clause list
29 // expected-error@+3{{expected clause-list or newline in OpenACC directive}}
30 // expected-error@+2{{invalid OpenACC clause 'clause'}}
31 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
32 #pragma acc parallel() clause list
34 // expected-error@+4{{expected clause-list or newline in OpenACC directive}}
35 // expected-error@+3{{expected ')'}}
36 // expected-note@+2{{to match this '('}}
37 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
38 #pragma acc parallel( clause list
40 // expected-error@+2{{invalid OpenACC clause 'clause'}}
41 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
42 #pragma acc serial clause list
44 // expected-error@+2{{invalid OpenACC clause 'clause'}}
45 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
46 #pragma acc kernels clause list
48 // expected-error@+2{{invalid OpenACC clause 'clause'}}
49 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
50 #pragma acc data clause list
52 // expected-error@+2{{invalid OpenACC clause 'clause'}}
53 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
54 #pragma acc enter data clause list
56 // expected-error@+2{{invalid OpenACC clause 'clause'}}
57 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
58 #pragma acc exit data clause list
60 // expected-error@+2{{invalid OpenACC directive 'enter invalid'}}
61 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
62 #pragma acc enter invalid
64 // expected-error@+2{{invalid OpenACC directive 'exit invalid'}}
65 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
66 #pragma acc exit invalid
68 // expected-error@+2{{invalid OpenACC directive 'enter'}}
69 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
72 // expected-error@+2{{expected identifier}}
73 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
76 // expected-error@+2{{invalid OpenACC clause 'clause'}}
77 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
78 #pragma acc host_data clause list
80 // expected-error@+2{{invalid OpenACC clause 'clause'}}
81 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
82 #pragma acc loop clause list
84 // expected-error@+2{{invalid OpenACC clause 'invalid'}}
85 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
86 #pragma acc parallel invalid clause list
88 // expected-error@+2{{invalid OpenACC clause 'clause'}}
89 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
90 #pragma acc parallel loop clause list
93 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
94 #pragma acc parallel loop
96 // expected-error@+2{{invalid OpenACC clause 'clause'}}
97 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
98 #pragma acc serial loop clause list
100 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
101 #pragma acc serial loop
103 // expected-error@+2{{invalid OpenACC clause 'clause'}}
104 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
105 #pragma acc kernels loop clause list
107 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
108 #pragma acc kernels loop
111 int i
= 0, j
= 0, k
= 0;
112 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
115 // expected-error@+2{{invalid OpenACC clause 'garbage'}}
116 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
117 #pragma acc atomic garbage
119 // expected-error@+2{{invalid OpenACC clause 'garbage'}}
120 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
121 #pragma acc atomic garbage clause list
123 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
124 #pragma acc atomic read
126 // expected-error@+2{{invalid OpenACC clause 'clause'}}
127 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
128 #pragma acc atomic write clause list
130 // expected-error@+2{{invalid OpenACC clause 'clause'}}
131 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
132 #pragma acc atomic update clause list
134 // expected-error@+2{{invalid OpenACC clause 'clause'}}
135 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
136 #pragma acc atomic capture clause list
140 // expected-error@+2{{invalid OpenACC clause 'clause'}}
141 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
142 #pragma acc declare clause list
144 // expected-error@+2{{invalid OpenACC clause 'clause'}}
145 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
146 #pragma acc init clause list
148 // expected-error@+2{{invalid OpenACC clause 'clause'}}
149 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
150 #pragma acc shutdown clause list
152 // expected-error@+2{{invalid OpenACC clause 'clause'}}
153 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
154 #pragma acc set clause list
156 // expected-error@+2{{invalid OpenACC clause 'clause'}}
157 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
158 #pragma acc update clause list
162 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
165 // expected-error@+2{{invalid OpenACC clause 'clause'}}
166 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
167 #pragma acc routine clause list
170 // expected-error@+2{{use of undeclared identifier 'func_name'}}
171 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
172 #pragma acc routine (func_name)
173 // expected-error@+3{{use of undeclared identifier 'func_name'}}
174 // expected-error@+2{{invalid OpenACC clause 'clause'}}
175 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
176 #pragma acc routine (func_name) clause list
178 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
179 #pragma acc routine (routine_func)
180 // expected-error@+2{{invalid OpenACC clause 'clause'}}
181 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
182 #pragma acc routine (routine_func) clause list
184 // expected-error@+3{{expected ')'}}
185 // expected-note@+2{{to match this '('}}
186 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
187 #pragma acc routine (routine_func())
189 // expected-error@+2{{expected identifier}}
190 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
191 #pragma acc routine()
193 // expected-error@+2{{expected identifier}}
194 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
195 #pragma acc routine(int)