#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}}
for(inti=0;i<100;i++){
ind2+=LEN;
}
return0;
}
structS1;// expected-note 2 {{declared here}}
externS1a;// expected-note {{'a' declared here}}
classS2{
mutableinta;
public:
S2():a(0){}
};
constS2b;// expected-note 1 {{'b' defined here}}
constS2ba[5];
classS3{
inta;
public:
S3():a(0){}
};
constS3ca[5];
classS4{
inta;
S4();
public:
S4(intv):a(v){}
};
classS5{
inta;
S5():a(0){}
public:
S5(intv):a(v){}
};
S3h;// expected-note 2 {{'h' defined here}}
#pragma omp threadprivate(h)
template<classI,classC>intfoomain(Iargc,C**argv){
Ie(argc);
Ig(argc);
inti;// expected-note {{declared here}} expected-note {{'i' defined here}}
// expected-note@+2 {{declared here}}
// expected-note@+1 {{reference to 'i' is not a constant expression}}
#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}}
for(intk=0;k<argc;++k)++k;
#pragma omp target
#pragma omp teams
#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'}}
#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}}