#pragma omp target parallel for map // expected-error {{expected '(' after 'map'}}
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map( // expected-error {{expected ')'}} expected-note {{to match this '('}} expected-error {{expected expression}}
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map() // expected-error {{expected expression}}
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map(alloc) // expected-error {{use of undeclared identifier 'alloc'}}
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map(to argc // expected-error {{expected ')'}} expected-note {{to match this '('}} expected-error {{expected ',' or ')' in 'map' clause}}
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map(to:) // expected-error {{expected expression}}
#pragma omp target parallel for map(tofrom: t[:I])
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map(T: a) // expected-error {{incorrect map type, expected one of 'to', 'from', 'tofrom', 'alloc', 'release', or 'delete'}} expected-error {{incomplete type 'S1' where a complete type is required}}
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map(T) // expected-error {{'T' does not refer to a value}}
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map(I) // expected-error 2 {{expected expression containing only member accesses and/or array sections based on named variables}}
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map(S2::S2s)
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map(S2::S2sc)
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map(x)
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map(to: x)
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map(to: to)
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map(to)
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map(to, x)
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map(to x) // expected-error {{expected ',' or ')' in 'map' clause}}
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map(tofrom: argc > 0 ? x : y) // expected-error 2 {{expected expression containing only member accesses and/or array sections based on named variables}}
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map(argc)
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map(S1) // expected-error {{'S1' does not refer to a value}}
#pragma omp target parallel for map(k), map(k) // expected-error 2 {{variable already marked as mapped in current construct}} expected-note 2 {{used here}}
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map(k), map(k[:5]) // expected-error 2 {{pointer cannot be mapped along with a section derived from itself}} expected-note 2 {{used here}}
#pragma omp target parallel for map(tofrom, always: x) // expected-error {{incorrect map type modifier, expected 'always'}} expected-error {{incorrect map type, expected one of 'to', 'from', 'tofrom', 'alloc', 'release', or 'delete'}}
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map(always, tofrom: always, tofrom, x)
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map(tofrom j) // expected-error {{expected ',' or ')' in 'map' clause}}
for(i=0;i<argc;++i)foo();
return0;
}
intmain(intargc,char**argv){
constintd=5;
constintda[5]={0};
S4e(4);
S5g(5);
inti;
int&j=i;
int*k=&j;
intx;
inty;
intto,tofrom,always;
constint(&l)[5]=da;
#pragma omp target parallel for map // expected-error {{expected '(' after 'map'}}
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map( // expected-error {{expected ')'}} expected-note {{to match this '('}} expected-error {{expected expression}}
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map() // expected-error {{expected expression}}
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map(alloc) // expected-error {{use of undeclared identifier 'alloc'}}
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map(to argc // expected-error {{expected ')'}} expected-note {{to match this '('}} expected-error {{expected ',' or ')' in 'map' clause}}
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map(to:) // expected-error {{expected expression}}
#pragma omp target parallel for map(to x) // expected-error {{expected ',' or ')' in 'map' clause}}
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map(tofrom: argc > 0 ? argv[1] : argv[2]) // expected-error {{expected expression containing only member accesses and/or array sections based on named variables}}
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map(argc)
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map(S1) // expected-error {{'S1' does not refer to a value}}
#pragma omp target parallel for map(k), map(k) // expected-error {{variable already marked as mapped in current construct}} expected-note {{used here}}
for(i=0;i<argc;++i)foo();
#pragma omp target parallel for map(k), map(k[:5]) // expected-error {{pointer cannot be mapped along with a section derived from itself}} expected-note {{used here}}