1 void
f(int N,float * a,float * b)2 f (int N, float *a, float *b)
3 {
4 int ii;
5
6 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) async (1 2) /* { dg-error "expected '\\)' before numeric constant" } */
7 {
8 for (ii = 0; ii < N; ii++)
9 b[ii] = a[ii];
10 }
11
12 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) async (1,) /* { dg-error "expected '\\)' before ',' token" } */
13 {
14 for (ii = 0; ii < N; ii++)
15 b[ii] = a[ii];
16 }
17
18 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) async (,1) /* { dg-error "expected (primary-|)expression before" } */
19 {
20 for (ii = 0; ii < N; ii++)
21 b[ii] = a[ii];
22 }
23
24 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) async (1,2,) /* { dg-error "expected '\\)' before ',' token" } */
25 {
26 for (ii = 0; ii < N; ii++)
27 b[ii] = a[ii];
28 }
29
30 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) async (1,2 3) /* { dg-error "expected '\\)' before ',' token" } */
31 {
32 for (ii = 0; ii < N; ii++)
33 b[ii] = a[ii];
34 }
35
36 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) async (1,2,,) /* { dg-error "expected '\\)' before ',' token" } */
37 {
38 for (ii = 0; ii < N; ii++)
39 b[ii] = a[ii];
40 }
41
42 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) async (1 /* { dg-error "expected '\\)' before end of line" } */
43 {
44 for (ii = 0; ii < N; ii++)
45 b[ii] = a[ii];
46 }
47
48 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) async (*) /* { dg-error "expected (primary-|)expression before" } */
49 {
50 for (ii = 0; ii < N; ii++)
51 b[ii] = a[ii];
52 }
53
54 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) async (a)
55 /* { dg-error "expected integer expression before" "" { target c } .-1 } */
56 /* { dg-error "'async' expression must be integral" "" { target c++ } .-2 } */
57 {
58 for (ii = 0; ii < N; ii++)
59 b[ii] = a[ii];
60 }
61
62 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) async (1.0)
63 /* { dg-error "expected integer expression before" "" { target c } .-1 } */
64 /* { dg-error "'async' expression must be integral" "" { target c++ } .-2 } */
65 {
66 for (ii = 0; ii < N; ii++)
67 b[ii] = a[ii];
68 }
69
70 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) async () /* { dg-error "expected (primary-|)expression before" } */
71 {
72 for (ii = 0; ii < N; ii++)
73 b[ii] = a[ii];
74 }
75
76 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) async
77 {
78 for (ii = 0; ii < N; ii++)
79 b[ii] = a[ii];
80 }
81
82 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) wait (1 2) /* { dg-error "expected '\\)' before numeric constant" } */
83 {
84 for (ii = 0; ii < N; ii++)
85 b[ii] = a[ii];
86 }
87
88 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) wait (1,) /* { dg-error "expected (primary-|)expression before" } */
89 {
90 for (ii = 0; ii < N; ii++)
91 b[ii] = a[ii];
92 }
93
94 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) wait (,1) /* { dg-error "expected (primary-|)expression before" } */
95 {
96 for (ii = 0; ii < N; ii++)
97 b[ii] = a[ii];
98 }
99
100 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) wait (1,2,) /* { dg-error "expected (primary-|)expression before" } */
101 {
102 for (ii = 0; ii < N; ii++)
103 b[ii] = a[ii];
104 }
105
106 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) wait (1,2 3) /* { dg-error "expected '\\)' before numeric constant" } */
107 {
108 for (ii = 0; ii < N; ii++)
109 b[ii] = a[ii];
110 }
111
112 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) wait (1,2,,) /* { dg-error "expected (primary-|)expression before" } */
113 {
114 for (ii = 0; ii < N; ii++)
115 b[ii] = a[ii];
116 }
117
118 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) wait (1 /* { dg-error "expected '\\\)' before end of line" } */
119 {
120 for (ii = 0; ii < N; ii++)
121 b[ii] = a[ii];
122 }
123
124 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) wait (1,*) /* { dg-error "expected (primary-|)expression before" } */
125 {
126 for (ii = 0; ii < N; ii++)
127 b[ii] = a[ii];
128 }
129
130 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) wait (1,a) /*{ dg-error "must be integral" } */
131 {
132 for (ii = 0; ii < N; ii++)
133 b[ii] = a[ii];
134 }
135
136 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) wait (a) /* { dg-error "must be integral" } */
137 {
138 for (ii = 0; ii < N; ii++)
139 b[ii] = a[ii];
140 }
141
142 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) wait (1.0) /* { dg-error "must be integral" } */
143 {
144 for (ii = 0; ii < N; ii++)
145 b[ii] = a[ii];
146 }
147
148 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) wait () /* { dg-error "expected (integer |)expression (list |)before" } */
149 {
150 for (ii = 0; ii < N; ii++)
151 b[ii] = a[ii];
152 }
153
154 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) wait ( /* { dg-error "expected (primary-|)expression before" } */
155 {
156 for (ii = 0; ii < N; ii++)
157 b[ii] = a[ii];
158 }
159
160 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) wait
161 {
162 for (ii = 0; ii < N; ii++)
163 b[ii] = a[ii];
164 }
165
166 #pragma acc wait (1 2) /* { dg-error "expected '\\)' before numeric constant" } */
167
168 #pragma acc wait (1,) /* { dg-error "expected (primary-|)expression before" } */
169
170 #pragma acc wait (,1) /* { dg-error "expected (primary-|)expression before" } */
171
172 #pragma acc wait (1,2,) /* { dg-error "expected (primary-|)expression before" } */
173
174 #pragma acc wait (1,2 3) /* { dg-error "expected '\\)' before numeric constant" } */
175
176 #pragma acc wait (1,2,,) /* { dg-error "expected (primary-|)expression before" } */
177
178 #pragma acc wait (1 /* { dg-error "expected '\\\)' before end of line" } */
179
180 #pragma acc wait (1,*) /* { dg-error "expected (primary-|)expression before" } */
181
182 #pragma acc wait (1,a) /* { dg-error "expression must be integral" } */
183
184 #pragma acc wait (a) /* { dg-error "expression must be integral" } */
185
186 #pragma acc wait (1.0) /* { dg-error "expression must be integral" } */
187
188 #pragma acc wait 1 /* { dg-error "expected '#pragma acc' clause before numeric constant" } */
189
190 #pragma acc wait N /* { dg-error "expected '#pragma acc' clause before 'N'" } */
191
192 #pragma acc wait async (1 2) /* { dg-error "expected '\\)' before numeric constant" } */
193
194 #pragma acc wait async (1 2) /* { dg-error "expected '\\)' before numeric constant" } */
195
196 #pragma acc wait async (1,) /* { dg-error "expected '\\)' before ',' token" } */
197
198 #pragma acc wait async (,1) /* { dg-error "expected (primary-|)expression before" } */
199
200 #pragma acc wait async (1,2,) /* { dg-error "expected '\\)' before ',' token" } */
201
202 #pragma acc wait async (1,2 3) /* { dg-error "expected '\\)' before ',' token" } */
203
204 #pragma acc wait async (1,2,,) /* { dg-error "expected '\\)' before ',' token" } */
205
206 #pragma acc wait async (1 /* { dg-error "expected '\\)' before end of line" } */
207
208 #pragma acc wait async (*) /* { dg-error "expected (primary-|)expression before " } */
209
210 #pragma acc wait async (a)
211 /* { dg-error "expected integer expression before" "" { target c } .-1 } */
212 /* { dg-error "expression must be integral" "" { target c++ } .-2 } */
213
214 #pragma acc wait async (1.0)
215 /* { dg-error "expected integer expression before" "" { target c } .-1 } */
216 /* { dg-error "expression must be integral" "" { target c++ } .-2 } */
217 }
218
219 /* PR c/99137 */
f2()220 void f2 ()
221 {
222 #pragma acc parallel async(1,2) /* { dg-error "expected '\\)' before ',' token" } */
223 ;
224 }
225