You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#pragma omp target map(arg[2:2],a,d) // expected-error {{subscripted value is not an array or pointer}}
89
89
{}
90
-
#pragma omp target map(arg,a*2) // lt50-error {{expected expression containing only member accesses and/or array sections based on named variables}} ge50-error {{expected addressable lvalue in 'map' clause}}
90
+
#pragma omp target map(arg,a*2) // lt50-error {{expected expression containing only member accesses and/or array sections based on named variables}} ge50-error {{expected addressable lvalue in 'map' clause}} ge60-error {{expected addressable lvalue in 'map' clause}}
91
91
{}
92
92
#pragma omp target map(arg,(c+1)[2]) // lt50-error {{expected expression containing only member accesses and/or array sections based on named variables}}
93
93
{}
@@ -170,27 +170,32 @@ struct SA {
170
170
// expected-error@+1 {{use of undeclared identifier 'present'}}
171
171
#pragma omp target map(present)
172
172
{}
173
+
// ge60-error@+4 {{incorrect map type modifier, expected one of: 'always', 'close', 'mapper', 'present', 'iterator', 'self}}
173
174
// ge52-error@+3 {{incorrect map type modifier, expected one of: 'always', 'close', 'mapper', 'present', 'iterator'}}
174
175
// ge51-omp-error@+2 {{incorrect map type modifier, expected one of: 'always', 'close', 'mapper', 'present'}}
175
176
// lt51-omp-error@+1 {{incorrect map type modifier, expected one of: 'always', 'close', 'mapper'}}
176
177
#pragma omp target map(ompx_hold, tofrom: c,f)
177
178
{}
179
+
// ge60-error@+4 {{incorrect map type modifier, expected one of: 'always', 'close', 'mapper', 'present', 'iterator', 'self}}
178
180
// ge52-error@+3 {{incorrect map type modifier, expected one of: 'always', 'close', 'mapper', 'present', 'iterator'}}
179
181
// ge51-omp-error@+2 {{incorrect map type modifier, expected one of: 'always', 'close', 'mapper', 'present'}}
180
182
// lt51-omp-error@+1 {{incorrect map type modifier, expected one of: 'always', 'close', 'mapper'}}
// ge60-error@+5 {{incorrect map type modifier, expected one of: 'always', 'close', 'mapper', 'present', 'iterator', 'self}}
188
192
// ge52-error@+4 {{incorrect map type modifier, expected one of: 'always', 'close', 'mapper', 'present', 'iterator'}}
189
193
// expected-error@+3 {{section length is unspecified and cannot be inferred because subscripted value is not an array}}
190
194
// ge51-omp-error@+2 {{incorrect map type modifier, expected one of: 'always', 'close', 'mapper', 'present'}}
191
195
// lt51-omp-error@+1 {{incorrect map type modifier, expected one of: 'always', 'close', 'mapper'}}
192
196
#pragma omp target map(ompx_hold, tofrom: c[:],f)
193
197
{}
198
+
// ge60-error@+5 {{incorrect map type modifier, expected one of: 'always', 'close', 'mapper', 'present', 'iterator', 'self}}
194
199
// ge52-error@+4 {{incorrect map type modifier, expected one of: 'always', 'close', 'mapper', 'present', 'iterator'}}
195
200
// expected-error@+3 {{section length is unspecified and cannot be inferred because subscripted value is not an array}}
196
201
// ge51-omp-error@+2 {{incorrect map type modifier, expected one of: 'always', 'close', 'mapper', 'present'}}
@@ -211,12 +216,14 @@ struct SA {
211
216
// lt51-error@+1 2 {{incorrect map type modifier, expected one of: 'always', 'close', 'mapper'}}
212
217
#pragma omp target map(present, present, tofrom: a)
213
218
{}
219
+
// ge60-error@+5 2 {{incorrect map type modifier, expected one of: 'always', 'close', 'mapper', 'present', 'iterator', 'self}}
214
220
// ge52-error@+4 2 {{incorrect map type modifier, expected one of: 'always', 'close', 'mapper', 'present', 'iterator'}}
215
221
// ompx-error@+3 {{same map type modifier has been specified more than once}}
216
222
// ge51-omp-error@+2 2 {{incorrect map type modifier, expected one of: 'always', 'close', 'mapper', 'present'}}
217
223
// lt51-omp-error@+1 2 {{incorrect map type modifier, expected one of: 'always', 'close', 'mapper'}}
218
224
#pragma omp target map(ompx_hold, ompx_hold, tofrom: a)
219
225
{}
226
+
// ge60-error@+10 2 {{incorrect map type modifier, expected one of: 'always', 'close', 'mapper', 'present', 'iterator', 'self}}
220
227
// ge60-error@+9 {{same map type modifier has been specified more than once}}
221
228
// ge52-error@+8 2 {{incorrect map type modifier, expected one of: 'always', 'close', 'mapper', 'present', 'iterator'}}
222
229
// expected-error@+7 2 {{same map type modifier has been specified more than once}}
@@ -247,10 +254,11 @@ struct SA {
247
254
// lt60-error@+1 {{missing map type}}
248
255
#pragma omp target map( , f, : a)
249
256
{}
250
-
#pragma omp target map(always close: a) // lt60-error {{missing map type}} ge52-error{{missing ',' after map type modifier}}
257
+
#pragma omp target map(always close: a) // lt60-error {{missing map type}} ge52-error{{missing ',' after map type modifier}} ge60-error {{missing ',' after map type modifier}}
251
258
{}
252
-
#pragma omp target map(always close bf: a) // ge52-error 2 {{missing ',' after map type modifier}} expected-error {{incorrect map type, expected one of 'to', 'from', 'tofrom', 'alloc', 'release', or 'delete'}}
259
+
#pragma omp target map(always close bf: a) // ge52-error 2 {{missing ',' after map type modifier}} expected-error {{incorrect map type, expected one of 'to', 'from', 'tofrom', 'alloc', 'release', or 'delete'}} ge60-error 2 {{missing ',' after map type modifier}}
253
260
{}
261
+
// ge60-error@+5 {{missing ',' after map type modifier}}
254
262
// ge52-error@+4 {{missing ',' after map type modifier}}
255
263
// ge51-error@+3 {{incorrect map type modifier, expected one of: 'always', 'close', 'mapper', 'present'}}
256
264
// lt51-error@+2 {{incorrect map type modifier, expected one of: 'always', 'close', 'mapper'}}
@@ -263,14 +271,15 @@ struct SA {
263
271
// lt51-error@+1 {{incorrect map type modifier, expected one of: 'always', 'close', 'mapper'}}
264
272
#pragma omp target map(tofrom from: a)
265
273
{}
274
+
// ge60-error@+6 {{missing ',' after map type modifier}}
266
275
// ge60-note@+5 {{map type 'to' is previous specified here}}
267
276
// ge60-error@+4 {{map type is already specified}}
268
277
// ge52-error@+3 {{missing ',' after map type modifier}}
269
278
// ge51-error@+2 {{incorrect map type modifier, expected one of: 'always', 'close', 'mapper', 'present'}}
270
279
// lt51-error@+1 {{incorrect map type modifier, expected one of: 'always', 'close', 'mapper'}}
271
280
#pragma omp target map(to always from: a)
272
281
{}
273
-
#pragma omp target map(close bf: a) // ge52-error {{missing ',' after map type modifier}} expected-error {{incorrect map type, expected one of 'to', 'from', 'tofrom', 'alloc', 'release', or 'delete'}}
282
+
#pragma omp target map(close bf: a) // ge52-error {{missing ',' after map type modifier}} expected-error {{incorrect map type, expected one of 'to', 'from', 'tofrom', 'alloc', 'release', or 'delete'}} ge60-error {{missing ',' after map type modifier}}
274
283
{}
275
284
#pragma omp target map(([b[I]][bf])f) // lt50-error {{expected ',' or ']' in lambda capture list}} lt50-error {{expected ')'}} lt50-note {{to match this '('}}
276
285
{}
@@ -476,7 +485,7 @@ void SAclient(int arg) {
476
485
{}
477
486
#pragma omp target map(r.S.Arr[:12])
478
487
{}
479
-
#pragma omp target map(r.S.foo() [:12]) // lt50-error {{expected expression containing only member accesses and/or array sections based on named variables}} ge50-error {{expected addressable lvalue in 'map' clause}}
488
+
#pragma omp target map(r.S.foo() [:12]) // lt50-error {{expected expression containing only member accesses and/or array sections based on named variables}} ge50-error {{expected addressable lvalue in 'map' clause}} ge60-error {{expected addressable lvalue in 'map' clause}}
480
489
{}
481
490
#pragma omp target map(r.C, r.D)
482
491
{}
@@ -673,7 +682,7 @@ T tmain(T argc) {
673
682
foo();
674
683
#pragma omp target map(T) // expected-error {{'T' does not refer to a value}}
675
684
foo();
676
-
#pragma omp target map(I) // lt50-error 2 {{expected expression containing only member accesses and/or array sections based on named variables}} ge50-error 2 {{expected addressable lvalue in 'map' clause}}
685
+
#pragma omp target map(I) // lt50-error 2 {{expected expression containing only member accesses and/or array sections based on named variables}} ge50-error 2 {{expected addressable lvalue in 'map' clause}} ge60-error 2 {{expected addressable lvalue in 'map' clause}}
677
686
foo();
678
687
#pragma omp target map(S2::S2s)
679
688
foo();
@@ -690,7 +699,7 @@ T tmain(T argc) {
690
699
#pragma omp target map(to, x)
691
700
foo();
692
701
#pragma omp target data map(to x) // expected-error {{expected ',' or ')' in 'map' clause}}
693
-
#pragma omp target data map(tofrom: argc > 0 ? x : y) // lt50-error 2 {{expected expression containing only member accesses and/or array sections based on named variables}} ge50-error 2 {{expected addressable lvalue in 'map' clause}}
702
+
#pragma omp target data map(tofrom: argc > 0 ? x : y) // lt50-error 2 {{expected expression containing only member accesses and/or array sections based on named variables}} ge50-error 2 {{expected addressable lvalue in 'map' clause}} ge60-error 2 {{expected addressable lvalue in 'map' clause}}
694
703
#pragma omp target data map(argc)
695
704
#pragma omp target data map(S1) // expected-error {{'S1' does not refer to a value}}
696
705
#pragma omp target data map(a, b, c, d, f) // expected-error {{incomplete type 'S1' where a complete type is required}} warn-warning 2 {{type 'const S2' is not trivially copyable and not guaranteed to be mapped correctly}} warn-warning 2 {{type 'const S3' is not trivially copyable and not guaranteed to be mapped correctly}}
@@ -809,7 +818,11 @@ int main(int argc, char **argv) {
809
818
SC1 s;
810
819
SC1 *p;
811
820
int Arr[10];
812
-
#pragma omp target data map // expected-error {{expected '(' after 'map'}} lt50-error {{expected at least one 'map' or 'use_device_ptr' clause for '#pragma omp target data'}} ge50-error {{expected at least one 'map', 'use_device_ptr', or 'use_device_addr' clause for '#pragma omp target data'}}
821
+
// expected-error@+4 {{expected '(' after 'map'}}
822
+
// lt50-error@+3 {{expected at least one 'map' or 'use_device_ptr' clause for '#pragma omp target data'}}
823
+
// omp5x-error@+2 {{expected at least one 'map', 'use_device_ptr', or 'use_device_addr' clause for '#pragma omp target data'}}
824
+
// ge60-error@+1 {{expected at least one 'map', 'use_device_ptr', or 'use_device_addr' clause for '#pragma omp target_data'}}
825
+
#pragma omp target data map
813
826
#pragma omp target data map( // expected-error {{expected ')'}} expected-note {{to match this '('}} expected-error {{expected expression}}
814
827
#pragma omp target data map() // expected-error {{expected expression}}
815
828
#pragma omp target data map(alloc) // expected-error {{use of undeclared identifier 'alloc'}}
@@ -828,7 +841,7 @@ int main(int argc, char **argv) {
828
841
#pragma omp target map(to, x)
829
842
foo();
830
843
#pragma omp target data map(to x) // expected-error {{expected ',' or ')' in 'map' clause}}
831
-
#pragma omp target data map(tofrom: argc > 0 ? argv[1] : argv[2]) // lt50-error {{expected expression containing only member accesses and/or array sections based on named variables}} ge50-error {{expected addressable lvalue in 'map' clause}}
844
+
#pragma omp target data map(tofrom: argc > 0 ? argv[1] : argv[2]) // lt50-error {{expected expression containing only member accesses and/or array sections based on named variables}} ge50-error {{expected addressable lvalue in 'map' clause}} ge60-error {{expected addressable lvalue in 'map' clause}}
832
845
#pragma omp target data map(argc)
833
846
#pragma omp target data map(S1) // expected-error {{'S1' does not refer to a value}}
834
847
#pragma omp target data map(a, b, c, d, f) // expected-error {{incomplete type 'S1' where a complete type is required}} warn-warning {{type 'const S2' is not trivially copyable and not guaranteed to be mapped correctly}} warn-warning {{type 'const S3' is not trivially copyable and not guaranteed to be mapped correctly}}
0 commit comments