#pragma omp distribute simd aligned(B::ib:B:bfoo()) // expected-error {{unexpected ':' in nested name specifier; did you mean '::'}}
for(inti=0;i<10;++i);
#pragma omp target
#pragma omp teams
#pragma omp distribute simd aligned(B:B::bfoo())
for(inti=0;i<10;++i);
#pragma omp target
#pragma omp teams
#pragma omp distribute simd aligned(z:B:bfoo()) // expected-error {{unexpected ':' in nested name specifier; did you mean '::'?}}
for(inti=0;i<10;++i);
#pragma omp target
#pragma omp teams
#pragma omp distribute simd aligned(B:B::bfoo())
for(inti=0;i<10;++i);
#pragma omp target
#pragma omp teams
#pragma omp distribute simd aligned(X::x : ::z) // expected-error {{integral constant expression must have integral or unscoped enumeration type, not 'int **'}} expected-error {{argument of aligned clause should be array, pointer, reference to array or reference to pointer, not 'B'}}
for(inti=0;i<10;++i);
#pragma omp target
#pragma omp teams
#pragma omp distribute simd aligned(B,rp,::z: X::x) // expected-error {{integral constant expression must have integral or unscoped enumeration type, not 'B'}}
#pragma omp distribute simd aligned(B::ib,B:C1+C2) // expected-warning {{aligned clause will be ignored because the requested alignment is not a power of 2}}
#pragma omp distribute simd aligned(arr:L) // expected-error {{argument to 'aligned' clause must be a strictly positive integer value}}
for(i=0;i<num;++i){
Tcur=arr[(int)ind2];
ind2+=L;
sum+=cur;
}
#pragma omp target
#pragma omp teams
#pragma omp distribute simd aligned(num:4) // expected-error {{argument of aligned clause should be array, pointer, reference to array or reference to pointer, not 'int'}}
for(i=0;i<num;++i);
returnT();
}
template<intLEN>inttest_warn(){
int*ind2=0;
#pragma omp target
#pragma omp teams
#pragma omp distribute simd aligned(ind2:LEN) // expected-error {{argument to 'aligned' clause must be a strictly positive integer value}}
#pragma omp distribute simd aligned (argc : 5) // expected-warning {{aligned clause will be ignored because the requested alignment is not a power of 2}}
for(Ik=0;k<argc;++k)++k;
#pragma omp target
#pragma omp teams
#pragma omp distribute simd aligned (S1) // expected-error {{'S1' does not refer to a value}}
#pragma omp distribute simd aligned(h) // expected-error {{argument of aligned clause should be array, pointer, reference to array or reference to pointer, not 'S3'}}
for(Ik=0;k<argc;++k)++k;
#pragma omp target
#pragma omp teams
#pragma omp distribute simd aligned(i) // expected-error {{argument of aligned clause should be array, pointer, reference to array or reference to pointer, not 'int'}}
for(Ik=0;k<argc;++k)++k;
#pragma omp parallel
{
int*v=0;
Ii;
#pragma omp target
#pragma omp teams
#pragma omp distribute simd aligned(v:16)
for(Ik=0;k<argc;++k){i=k;v+=2;}
}
float*f;
#pragma omp target
#pragma omp teams
#pragma omp distribute simd aligned(f)
for(Ik=0;k<argc;++k)++k;
intv=0;
#pragma omp target
#pragma omp teams
#pragma omp distribute simd aligned(f:j) // expected-note {{initializer of 'j' is not a constant expression}} expected-error {{expression is not an integral constant expression}}
for(Ik=0;k<argc;++k){++k;v+=j;}
#pragma omp target
#pragma omp teams
#pragma omp distribute simd aligned(f)
for(Ik=0;k<argc;++k)++k;
return0;
}
// expected-note@+1 2 {{'argc' defined here}}
intmain(intargc,char**argv){
doubledarr[100];
// expected-note@+1 {{in instantiation of function template specialization 'test_template<-4, double, int>' requested here}}
test_template<-4>(darr,4);
test_warn<4>();// ok
// expected-note@+1 {{in instantiation of function template specialization 'test_warn<0>' requested here}}
#pragma omp distribute simd aligned (argv // expected-error {{expected ')'}} expected-note {{to match this '('}}
for(intk=0;k<argc;++k)++k;
#pragma omp target
#pragma omp teams
#pragma omp distribute simd aligned (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} expected-error {{argument of aligned clause should be array, pointer, reference to array or reference to pointer, not 'int'}}
#pragma omp distribute simd aligned (argc) // expected-error {{argument of aligned clause should be array, pointer, reference to array or reference to pointer, not 'int'}}
for(intk=0;k<argc;++k)++k;
#pragma omp target
#pragma omp teams
#pragma omp distribute simd aligned (S1) // expected-error {{'S1' does not refer to a value}}
#pragma omp distribute simd aligned (a, b) // expected-error {{argument of aligned clause should be array, pointer, reference to array or reference to pointer, not 'S1'}} expected-error {{argument of aligned clause should be array, pointer, reference to array or reference to pointer, not 'S2'}} expected-error {{incomplete type 'S1' where a complete type is required}} expected-warning {{Non-trivial type 'const S2' is mapped, only trivial types are guaranteed to be mapped correctly}}
#pragma omp distribute simd aligned(h) // expected-error {{argument of aligned clause should be array, pointer, reference to array or reference to pointer, not 'S3'}}
for(intk=0;k<argc;++k)++k;
int*pargc=&argc;
// expected-note@+1 {{in instantiation of function template specialization 'foomain<int *, char>' requested here}}