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}; 1887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarconst S2 b; 1987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarconst S2 ba[5]; 2087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarclass S3 { 2187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int a; 2287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 2387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarpublic: 2487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S3() : a(0) {} 2587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar}; 2687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarconst S3 ca[5]; 2787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarclass S4 { 2887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int a; 2987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S4(); // expected-note {{implicitly declared private here}} 3087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 3187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarpublic: 324967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S4(int v) : a(v) { 334967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp taskloop private(a) private(this->a) 344967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (int k = 0; k < v; ++k) 354967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar ++this->a; 364967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 3787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar}; 3887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarclass S5 { 3987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int a; 4087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S5() : a(0) {} // expected-note {{implicitly declared private here}} 4187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 4287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarpublic: 4387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S5(int v) : a(v) {} 444967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S5 &operator=(S5 &s) { 454967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp taskloop private(a) private(this->a) private(s.a) // expected-error {{expected variable name or data member of current class}} 464967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (int k = 0; k < s.a; ++k) 474967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar ++s.a; 484967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar return *this; 494967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 504967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}; 514967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 524967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainartemplate <typename T> 534967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarclass S6 { 544967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarpublic: 554967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar T a; 564967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 574967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S6() : a(0) {} 584967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S6(T v) : a(v) { 594967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp taskloop private(a) private(this->a) 604967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (int k = 0; k < v; ++k) 614967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar ++this->a; 624967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 634967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S6 &operator=(S6 &s) { 644967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp taskloop private(a) private(this->a) private(s.a) // expected-error {{expected variable name or data member of current class}} 654967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (int k = 0; k < s.a; ++k) 664967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar ++s.a; 674967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar return *this; 684967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 694967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}; 704967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 714967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainartemplate <typename T> 724967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarclass S7 : public T { 734967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar T a; 744967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S7() : a(0) {} 754967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 764967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarpublic: 774967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S7(T v) : a(v) { 784967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp taskloop private(a) private(this->a) private(T::a) 794967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (int k = 0; k < a.a; ++k) 804967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar ++this->a.a; 814967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 824967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S7 &operator=(S7 &s) { 834967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp taskloop private(a) private(this->a) private(s.a) private(s.T::a) // expected-error 2 {{expected variable name or data member of current class}} 844967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (int k = 0; k < s.a.a; ++k) 854967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar ++s.a.a; 864967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar return *this; 874967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 8887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar}; 8987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 9087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga NainarS3 h; 9187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp threadprivate(h) // expected-note 2 {{defined as threadprivate or thread local}} 9287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 9387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainartemplate <class I, class C> 9487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarint foomain(I argc, C **argv) { 9587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar I e(4); 9687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar I g(5); 9787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int i; 9887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int &j = i; 9987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private // expected-error {{expected '(' after 'private'}} 10087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 10187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 10287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private( // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} 10387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 10487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 10587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private() // expected-error {{expected expression}} 10687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 10787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 10887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private(argc // expected-error {{expected ')'}} expected-note {{to match this '('}} 10987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 11087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 11187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} 11287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 11387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 11487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} 11587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 11687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 11787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private(argc) 11887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 11987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 12087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private(S1) // expected-error {{'S1' does not refer to a value}} 12187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 12287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 12387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private(a, b) // expected-error {{private variable with incomplete type 'S1'}} 12487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 12587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 12687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private(argv[1]) // expected-error {{expected variable name}} 12787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 12887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 12987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private(e, g) 13087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 13187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 13287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private(h) // expected-error {{threadprivate or thread local variable cannot be private}} 13387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 13487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 13587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop shared(i) 13687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 13787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 13887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 13987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar { 14087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int v = 0; 14187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int i; 14287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private(i) 14387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) { 14487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar i = k; 14587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar v += i; 14687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar } 14787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar } 14887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel shared(i) 14987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel private(i) 15087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private(j) 15187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 15287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 15387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private(i) 15487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 15587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 15687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar return 0; 15787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 15887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 15987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid bar(S4 a[2]) { 16087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 16187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private(a) 16287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int i = 0; i < 2; ++i) 16387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 16487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 16587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 16687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarnamespace A { 16787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainardouble x; 16887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp threadprivate(x) // expected-note {{defined as threadprivate or thread local}} 16987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 17087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarnamespace B { 17187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarusing A::x; 17287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 17387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 17487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarint main(int argc, char **argv) { 17587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S4 e(4); 17687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S5 g(5); 1774967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S6<float> s6(0.0) , s6_0(1.0); 1784967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S7<S6<float> > s7(0.0) , s7_0(1.0); 17987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int i; 18087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int &j = i; 18187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private // expected-error {{expected '(' after 'private'}} 18287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 18387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 18487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private( // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} 18587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 18687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 18787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private() // expected-error {{expected expression}} 18887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 18987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 19087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private(argc // expected-error {{expected ')'}} expected-note {{to match this '('}} 19187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 19287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 19387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} 19487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 19587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 19687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} 19787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 19887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 19987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private(argc) 20087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 20187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 20287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private(S1) // expected-error {{'S1' does not refer to a value}} 20387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 20487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 20587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private(a, b) // expected-error {{private variable with incomplete type 'S1'}} 20687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 20787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 20887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private(argv[1]) // expected-error {{expected variable name}} 20987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 21087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 21187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private(e, g) // expected-error {{calling a private constructor of class 'S4'}} expected-error {{calling a private constructor of class 'S5'}} 21287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 21387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 21487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private(h) // expected-error {{threadprivate or thread local variable cannot be private}} 21587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 21687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 21787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private(B::x) // expected-error {{threadprivate or thread local variable cannot be private}} 21887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 21987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 22087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop shared(i) 22187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 22287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 22387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel 22487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar { 22587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int i; 22687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private(i) 22787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 22887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 22987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar } 23087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel shared(i) 23187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp parallel private(i) 23287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private(j) 23387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 23487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 23587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private(i) 23687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 23787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar ++k; 23887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar static int si; 23987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp taskloop private(si) // OK 24087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar for(int k = 0; k < argc; ++k) 24187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar si = k + 1; 24287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 2434967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar s6 = s6_0; // expected-note {{in instantiation of member function 'S6<float>::operator=' requested here}} 2444967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar s7 = s7_0; // expected-note {{in instantiation of member function 'S7<S6<float> >::operator=' requested here}} 2454967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar return foomain(argc, argv); // expected-note {{in instantiation of function template specialization 'foomain<int, char>' requested here}} 24687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 24787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 248