[Flang] remove whole-archive option for AIX linker (#76039)
[llvm-project.git] / clang / test / ParserOpenACC / parse-constructs.c
blob0bb33269bbe98fce5f7744b45d1810ef7a289345
1 // RUN: %clang_cc1 %s -verify -fopenacc
3 void func() {
5 // expected-error@+2{{expected OpenACC directive}}
6 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
7 #pragma acc
8 for(;;){}
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}}
18 #pragma acc) routine
20 // expected-error@+2{{invalid OpenACC directive 'invalid'}}
21 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
22 #pragma acc invalid
23 for(;;){}
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
28 for(;;){}
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
33 for(;;){}
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
39 for(;;){}
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
43 for(;;){}
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
47 for(;;){}
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
51 for(;;){}
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
55 for(;;){}
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
59 for(;;){}
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
63 for(;;){}
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
67 for(;;){}
68 // expected-error@+2{{invalid OpenACC directive 'enter'}}
69 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
70 #pragma acc enter
71 for(;;){}
72 // expected-error@+2{{expected identifier}}
73 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
74 #pragma acc exit }
75 for(;;){}
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
79 for(;;){}
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
83 for(;;){}
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
87 for(;;){}
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
91 for(;;){}
93 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
94 #pragma acc parallel loop
95 for(;;){}
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
99 for(;;){}
100 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
101 #pragma acc serial loop
102 for(;;){}
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
106 for(;;){}
107 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
108 #pragma acc kernels loop
109 for(;;){}
111 int i = 0, j = 0, k = 0;
112 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
113 #pragma acc atomic
114 i = j;
115 // expected-error@+2{{invalid OpenACC clause 'garbage'}}
116 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
117 #pragma acc atomic garbage
118 i = j;
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
122 i = j;
123 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
124 #pragma acc atomic read
125 i = j;
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
129 i = i + j;
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
133 i++;
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
137 i = j++;
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
143 for(;;){}
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
147 for(;;){}
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
151 for(;;){}
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
155 for(;;){}
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
159 for(;;){}
162 // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
163 #pragma acc routine
164 void routine_func();
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
168 void routine_func();
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)