]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/testsuite/c-c++-common/goacc/asyncwait-1.c
Merge current set of OpenACC changes from gomp-4_0-branch.
[thirdparty/gcc.git] / gcc / testsuite / c-c++-common / goacc / asyncwait-1.c
1 void
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 }