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 (primary-|)expression before" } */
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 (primary-|)expression before" } */
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 numeric constant" } */
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 (primary-|)expression before" } */
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 } 54 } */
56 	/* { dg-error "'async' expression must be integral" "" { target c++ } 54 } */
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 } 62 } */
64 	/* { dg-error "'async' expression must be integral" "" { target c++ } 62 } */
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     /* { dg-error "expected integer expression before '\\\)'" "" { target c++ } 118 } */
120     {
121         for (ii = 0; ii < N; ii++)
122             b[ii] = a[ii];
123     }
124 
125 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) wait (1,*) /* { dg-error "expected (primary-|)expression before" } */
126     {
127         for (ii = 0; ii < N; ii++)
128             b[ii] = a[ii];
129     }
130 
131 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) wait (1,a) /*{ dg-error "must be integral" } */
132     {
133         for (ii = 0; ii < N; ii++)
134             b[ii] = a[ii];
135     }
136 
137 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) wait (a) /* { dg-error "must be integral" } */
138     {
139         for (ii = 0; ii < N; ii++)
140             b[ii] = a[ii];
141     }
142 
143 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) wait (1.0) /* { dg-error "must be integral" } */
144     {
145         for (ii = 0; ii < N; ii++)
146             b[ii] = a[ii];
147     }
148 
149 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) wait () /* { dg-error "expected (integer |)expression (list |)before" } */
150     {
151         for (ii = 0; ii < N; ii++)
152             b[ii] = a[ii];
153     }
154 
155 #pragma acc parallel copyin (a[0:N]) copy (b[0:N]) wait
156     {
157         for (ii = 0; ii < N; ii++)
158             b[ii] = a[ii];
159     }
160 
161 #pragma acc wait (1 2) /* { dg-error "expected '\\)' before numeric constant" } */
162 
163 #pragma acc wait (1,) /* { dg-error "expected (primary-|)expression before" } */
164 
165 #pragma acc wait (,1) /* { dg-error "expected (primary-|)expression before" } */
166 
167 #pragma acc wait (1,2,) /* { dg-error "expected (primary-|)expression before" } */
168 
169 #pragma acc wait (1,2 3) /* { dg-error "expected '\\)' before numeric constant" } */
170 
171 #pragma acc wait (1,2,,) /* { dg-error "expected (primary-|)expression before" } */
172 
173 #pragma acc wait (1 /* { dg-error "expected '\\\)' before end of line" } */
174     /* { dg-error "expected integer expression before '\\\)'" "" { target c++ } 173 } */
175 
176 #pragma acc wait (1,*) /* { dg-error "expected (primary-|)expression before" } */
177 
178 #pragma acc wait (1,a) /* { dg-error "expression must be integral" } */
179 
180 #pragma acc wait (a) /* { dg-error "expression must be integral" } */
181 
182 #pragma acc wait (1.0) /* { dg-error "expression must be integral" } */
183 
184 #pragma acc wait 1 /* { dg-error "expected '#pragma acc' clause before numeric constant" } */
185 
186 #pragma acc wait N /* { dg-error "expected '#pragma acc' clause before 'N'" } */
187 
188 #pragma acc wait async (1 2) /* { dg-error "expected '\\)' before numeric constant" } */
189 
190 #pragma acc wait async (1 2) /* { dg-error "expected '\\)' before numeric constant" } */
191 
192 #pragma acc wait async (1,) /* { dg-error "expected (primary-|)expression before" } */
193 
194 #pragma acc wait async (,1) /* { dg-error "expected (primary-|)expression before" } */
195 
196 #pragma acc wait async (1,2,) /* { dg-error "expected (primary-|)expression before" } */
197 
198 #pragma acc wait async (1,2 3) /* { dg-error "expected '\\)' before numeric constant" } */
199 
200 #pragma acc wait async (1,2,,) /* { dg-error "expected (primary-|)expression before" } */
201 
202 #pragma acc wait async (1 /* { dg-error "expected '\\)' before end of line" } */
203 
204 #pragma acc wait async (*) /* { dg-error "expected (primary-|)expression before " } */
205 
206 #pragma acc wait async (a)
207     /* { dg-error "expected integer expression before" "" { target c } 206 } */
208     /* { dg-error "expression must be integral" "" { target c++ } 206 } */
209 
210 #pragma acc wait async (1.0)
211    /* { dg-error "expected integer expression before" "" { target c } 210 } */
212    /* { dg-error "expression must be integral" "" { target c++ } 210 } */
213 }
214