#pragma omp distribute firstprivate(ca) // expected-error {{no matching constructor for initialization of 'S3'}}
for(i=0;i<argc;++i)foo();
#pragma omp target
#pragma omp teams
#pragma omp distribute firstprivate(da)
for(i=0;i<argc;++i)foo();
#pragma omp target
#pragma omp teams
#pragma omp distribute firstprivate(S2::S2s)
for(i=0;i<argc;++i)foo();
#pragma omp target
#pragma omp teams
#pragma omp distribute firstprivate(S2::S2sc)
for(i=0;i<argc;++i)foo();
#pragma omp target
#pragma omp teams
#pragma omp distribute firstprivate(h) // expected-error {{threadprivate or thread local variable cannot be firstprivate}}
for(i=0;i<argc;++i)foo();
#pragma omp target
#pragma omp teams
#pragma omp distribute private(i), firstprivate(i) // expected-error {{private variable cannot be firstprivate}} expected-note{{defined as private}}
for(i=0;i<argc;++i)foo();
#pragma omp target
#pragma omp teams shared(i)
#pragma omp distribute firstprivate(i)
for(j=0;j<argc;++j)foo();
#pragma omp target
#pragma omp teams shared(i)
#pragma omp distribute firstprivate(i) // expected-note {{defined as firstprivate}}
for(i=0;i<argc;++i)foo();// expected-error {{loop iteration variable in the associated loop of 'omp distribute' directive may not be firstprivate, predetermined as private}}
#pragma omp target
#pragma omp teams private(argc) // expected-note {{defined as private}}
#pragma omp distribute firstprivate(argc) // expected-error {{private variable in '#pragma omp teams' cannot be firstprivate in '#pragma omp distribute'}}
for(i=0;i<argc;++i)foo();
#pragma omp target
#pragma omp teams reduction(+:argc) // expected-note {{defined as reduction}}
#pragma omp distribute firstprivate(argc) // expected-error {{reduction variable in '#pragma omp teams' cannot be firstprivate in '#pragma omp distribute'}}
for(i=0;i<argc;++i)foo();
#pragma omp target
#pragma omp teams
#pragma omp distribute firstprivate(j)
for(i=0;i<argc;++i)foo();
#pragma omp target
#pragma omp teams
#pragma omp distribute lastprivate(argc), firstprivate(argc) // expected-error {{lastprivate variable cannot be firstprivate in '#pragma omp distribute'}} expected-note{{defined as lastprivate}}
for(i=0;i<argc;++i)foo();
#pragma omp target
#pragma omp teams
#pragma omp distribute firstprivate(argc), lastprivate(argc) // expected-error {{lastprivate variable cannot be firstprivate in '#pragma omp distribute'}} expected-note{{defined as firstprivate}}