187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// RUN: %clang_cc1 -verify -fopenmp %s 287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid foo() { 487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarbool foobool(int argc) { 787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar return argc; 887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 1087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarstruct S1; // expected-note 2 {{declared here}} expected-note 2 {{forward declaration of 'S1'}} 1187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarextern S1 a; 1287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarclass S2 { 1387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar mutable int a; 1487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 1587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarpublic: 1687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S2() : a(0) {} 1787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S2(S2 &s2) : a(s2.a) {} 1887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar const S2 &operator =(const S2&) const; 1987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S2 &operator =(const S2&); 2087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar static float S2s; // expected-note {{static data member is predetermined as shared}} 2187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar static const float S2sc; 2287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar}; 2387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarconst float S2::S2sc = 0; // expected-note {{static data member is predetermined as shared}} 2487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarconst S2 b; 2587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarconst S2 ba[5]; 2687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarclass S3 { 2787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int a; 2887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S3 &operator=(const S3 &s3); // expected-note 2 {{implicitly declared private here}} 2987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 3087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarpublic: 3187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S3() : a(0) {} 3287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S3(S3 &s3) : a(s3.a) {} 3387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar}; 3487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarconst S3 c; // expected-note {{global variable is predetermined as shared}} 3587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarconst S3 ca[5]; // expected-note {{global variable is predetermined as shared}} 3687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarextern const int f; // expected-note {{global variable is predetermined as shared}} 3787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarclass S4 { 3887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int a; 3987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S4(); // expected-note 3 {{implicitly declared private here}} 4087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S4(const S4 &s4); 4187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 4287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarpublic: 4387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S4(int v) : a(v) {} 4487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar}; 4587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarclass S5 { 4687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int a; 4787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S5() : a(0) {} // expected-note {{implicitly declared private here}} 4887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 4987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarpublic: 5087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S5(const S5 &s5) : a(s5.a) {} 5187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S5(int v) : a(v) {} 5287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar}; 5387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarclass S6 { 5487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int a; 5587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S6() : a(0) {} 5687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 5787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarpublic: 5887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S6(const S6 &s6) : a(s6.a) {} 5987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S6(int v) : a(v) {} 6087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar}; 6187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 6287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga NainarS3 h; 6387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp threadprivate(h) // expected-note 2 {{defined as threadprivate or thread local}} 6487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 6587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainartemplate <class I, class C> 6687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarint foomain(int argc, char **argv) { 6787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar I e(4); 6887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar I g(5); 6987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int i; 7087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int &j = i; 7187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 7287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate // expected-error {{expected '(' after 'lastprivate'}} 7387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 7487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 7587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 7687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate( // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} 7787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 7887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 7987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 8087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate() // expected-error {{expected expression}} 8187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 8287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 8387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 8487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(argc // expected-error {{expected ')'}} expected-note {{to match this '('}} 8587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 8687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 8787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 8887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} 8987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 9087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 9187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 9287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} 9387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 9487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 9587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 9687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(argc) 9787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 9887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 9987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 10087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(S1) // expected-error {{'S1' does not refer to a value}} 10187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 10287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 10387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 10487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(a, b) // expected-error {{lastprivate variable with incomplete type 'S1'}} 10587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 10687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 10787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 10887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(argv[1]) // expected-error {{expected variable name}} 10987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 11087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 11187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 11287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(e, g) // expected-error 2 {{calling a private constructor of class 'S4'}} 11387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 11487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 11587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 11687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(h) // expected-error {{threadprivate or thread local variable cannot be lastprivate}} 11787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 11887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 11987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 12087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar { 12187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int v = 0; 12287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int i; 12387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(i) 12487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) { 12587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar i = k; 12687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar v += i; 12787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar } 12887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar } 12987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel shared(i) 13087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel private(i) 13187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(j) 13287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 13387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 13487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 13587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(i) 13687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 13787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 13887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar return 0; 13987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 14087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 14187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid bar(S4 a[2]) { 14287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 14387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(a) 14487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int i = 0; i < 2; ++i) 14587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 14687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 14787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 14887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarnamespace A { 14987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainardouble x; 15087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp threadprivate(x) // expected-note {{defined as threadprivate or thread local}} 15187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 15287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarnamespace B { 15387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarusing A::x; 15487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 15587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 15687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarint main(int argc, char **argv) { 15787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar const int d = 5; // expected-note {{constant variable is predetermined as shared}} 15887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar const int da[5] = {0}; // expected-note {{constant variable is predetermined as shared}} 15987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S4 e(4); 16087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S5 g(5); 16187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S3 m; 16287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S6 n(2); 16387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int i; 16487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int &j = i; 16587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 16687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate // expected-error {{expected '(' after 'lastprivate'}} 16787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 16887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 16987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 17087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate( // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} 17187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 17287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 17387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 17487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate() // expected-error {{expected expression}} 17587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 17687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 17787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 17887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(argc // expected-error {{expected ')'}} expected-note {{to match this '('}} 17987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 18087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 18187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 18287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} 18387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 18487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 18587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 18687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} 18787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 18887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 18987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 19087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(argc) 19187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 19287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 19387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 19487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(S1) // expected-error {{'S1' does not refer to a value}} 19587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 19687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 19787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 19887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(a, b, c, d, f) // expected-error {{lastprivate variable with incomplete type 'S1'}} expected-error 3 {{shared variable cannot be lastprivate}} 19987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 20087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 20187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 20287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(argv[1]) // expected-error {{expected variable name}} 20387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 20487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 20587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 20687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(2 * 2) // expected-error {{expected variable name}} 20787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 20887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 20987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 21087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(ba) 21187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 21287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 21387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 21487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(ca) // expected-error {{shared variable cannot be lastprivate}} 21587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 21687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 21787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 21887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(da) // expected-error {{shared variable cannot be lastprivate}} 21987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 22087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 22187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int xa; 22287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 22387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(xa) // OK 22487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 22587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 22687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 22787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(S2::S2s) // expected-error {{shared variable cannot be lastprivate}} 22887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 22987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 23087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 23187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(S2::S2sc) // expected-error {{shared variable cannot be lastprivate}} 23287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 23387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 23487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 23587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop safelen(5) // expected-error {{unexpected OpenMP clause 'safelen' in directive '#pragma omp taskloop'}} 23687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 23787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 23887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 23987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(e, g) // expected-error {{calling a private constructor of class 'S4'}} expected-error {{calling a private constructor of class 'S5'}} 24087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 24187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 24287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 24387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(m) // expected-error {{'operator=' is a private member of 'S3'}} 24487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 24587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 24687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 24787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(h) // expected-error {{threadprivate or thread local variable cannot be lastprivate}} 24887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 24987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 25087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 25187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(B::x) // expected-error {{threadprivate or thread local variable cannot be lastprivate}} 25287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 25387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 25487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 25587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private(xa), lastprivate(xa) // expected-error {{private variable cannot be lastprivate}} expected-note {{defined as private}} 25687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 25787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 25887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 25987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(i) 26087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 26187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 26287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel private(xa) 26387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(xa) 26487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 26587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 26687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel reduction(+ : xa) 26787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(xa) 26887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 26987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 27087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 27187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(j) 27287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 27387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 27487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 27587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop firstprivate(m) lastprivate(m) // expected-error {{'operator=' is a private member of 'S3'}} 27687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 27787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 27887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 27987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(n) firstprivate(n) // OK 28087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 28187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 28287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar static int si; 28387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop lastprivate(si) // OK 28487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (i = 0; i < argc; ++i) 28587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = i + 1; 28687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar return foomain<S4, S5>(argc, argv); // expected-note {{in instantiation of function template specialization 'foomain<S4, S5>' requested here}} 28787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 288