14967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar// RUN: %clang_cc1 -verify -fopenmp %s 24967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 34967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarvoid foo() { 44967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar} 54967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 64967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarbool foobool(int argc) { 74967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar return argc; 84967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar} 94967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 104967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarstruct S1; // expected-note 2 {{declared here}} expected-note 2 {{forward declaration of 'S1'}} 114967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarextern S1 a; 124967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarclass S2 { 134967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar mutable int a; 144967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 154967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarpublic: 164967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S2() : a(0) {} 174967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S2(S2 &s2) : a(s2.a) {} 184967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar const S2 &operator =(const S2&) const; 194967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S2 &operator =(const S2&); 204967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar static float S2s; // expected-note {{static data member is predetermined as shared}} 214967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar static const float S2sc; 224967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}; 234967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarconst float S2::S2sc = 0; // expected-note {{static data member is predetermined as shared}} 244967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarconst S2 b; 254967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarconst S2 ba[5]; 264967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarclass S3 { 274967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar int a; 284967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S3 &operator=(const S3 &s3); // expected-note 2 {{implicitly declared private here}} 294967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 304967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarpublic: 314967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S3() : a(0) {} 324967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S3(S3 &s3) : a(s3.a) {} 334967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}; 344967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarconst S3 c; // expected-note {{global variable is predetermined as shared}} 354967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarconst S3 ca[5]; // expected-note {{global variable is predetermined as shared}} 364967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarextern const int f; // expected-note {{global variable is predetermined as shared}} 374967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarclass S4 { 384967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar int a; 394967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S4(); // expected-note 3 {{implicitly declared private here}} 404967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S4(const S4 &s4); 414967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 424967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarpublic: 434967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S4(int v) : a(v) {} 444967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}; 454967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarclass S5 { 464967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar int a; 474967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S5() : a(0) {} // expected-note {{implicitly declared private here}} 484967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 494967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarpublic: 504967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S5(const S5 &s5) : a(s5.a) {} 514967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S5(int v) : a(v) {} 524967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}; 534967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarclass S6 { 544967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar int a; 554967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S6() : a(0) {} 564967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 574967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarpublic: 584967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S6(const S6 &s6) : a(s6.a) {} 594967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S6(int v) : a(v) {} 604967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}; 614967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 624967a710c84587c654b56c828382219c3937dacbPirama Arumuga NainarS3 h; 634967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp threadprivate(h) // expected-note 2 {{defined as threadprivate or thread local}} 644967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 654967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainartemplate <class I, class C> 664967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarint foomain(int argc, char **argv) { 674967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar I e(4); 684967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar I g(5); 694967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar int i; 704967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar int &j = i; 714967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 724967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 734967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate // expected-error {{expected '(' after 'lastprivate'}} 744967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 754967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar ++k; 764967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 774967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 784967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate( // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} 794967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 804967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar ++k; 814967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 824967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 834967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate() // expected-error {{expected expression}} 844967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 854967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar ++k; 864967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 874967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 884967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(argc // expected-error {{expected ')'}} expected-note {{to match this '('}} 894967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 904967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar ++k; 914967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 924967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 934967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} 944967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 954967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar ++k; 964967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 974967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 984967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} 994967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 1004967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar ++k; 1014967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 1024967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 1034967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(argc) 1044967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 1054967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar ++k; 1064967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 1074967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 1084967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(S1) // expected-error {{'S1' does not refer to a value}} 1094967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 1104967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar ++k; 1114967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 1124967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 1134967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(a, b) // expected-error {{lastprivate variable with incomplete type 'S1'}} 1144967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 1154967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar ++k; 1164967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 1174967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 1184967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(argv[1]) // expected-error {{expected variable name}} 1194967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 1204967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar ++k; 1214967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 1224967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 1234967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(e, g) // expected-error 2 {{calling a private constructor of class 'S4'}} 1244967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 1254967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar ++k; 1264967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 1274967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 1284967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(h) // expected-error {{threadprivate or thread local variable cannot be lastprivate}} 1294967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 1304967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar ++k; 1314967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 1324967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar int v = 0; 1334967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 1344967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 1354967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar { 1364967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(i) 1374967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (int k = 0; k < argc; ++k) { 1384967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar i = k; 1394967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar v += i; 1404967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 1414967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 1424967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 1434967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams private(i) 1444967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(j) 1454967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 1464967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar ++k; 1474967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 1484967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 1494967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(i) 1504967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (int k = 0; k < argc; ++k) 1514967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar ++k; 1524967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar return 0; 1534967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar} 1544967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 1554967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarvoid bar(S4 a[2]) { 1564967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 1574967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 1584967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(a) 1594967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (int i = 0; i < 2; ++i) 1604967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 1614967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar} 1624967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 1634967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarnamespace A { 1644967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainardouble x; 1654967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp threadprivate(x) // expected-note {{defined as threadprivate or thread local}} 1664967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar} 1674967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarnamespace B { 1684967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarusing A::x; 1694967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar} 1704967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 1714967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarint main(int argc, char **argv) { 1724967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar const int d = 5; // expected-note {{constant variable is predetermined as shared}} 1734967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar const int da[5] = {0}; // expected-note {{constant variable is predetermined as shared}} 1744967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S4 e(4); 1754967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S5 g(5); 1764967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S3 m; 1774967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S6 n(2); 1784967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar int i; 1794967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar int &j = i; 1804967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 1814967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 1824967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate // expected-error {{expected '(' after 'lastprivate'}} 1834967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 1844967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 1854967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 1864967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 1874967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate( // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} 1884967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 1894967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 1904967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 1914967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 1924967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate() // expected-error {{expected expression}} 1934967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 1944967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 1954967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 1964967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 1974967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(argc // expected-error {{expected ')'}} expected-note {{to match this '('}} 1984967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 1994967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 2004967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2014967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2024967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} 2034967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 2044967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 2054967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2064967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2074967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} 2084967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 2094967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 2104967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2114967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2124967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(argc) 2134967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 2144967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 2154967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2164967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2174967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(S1) // expected-error {{'S1' does not refer to a value}} 2184967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 2194967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 2204967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2214967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2224967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(a, b, c, d, f) // expected-error {{lastprivate variable with incomplete type 'S1'}} expected-error 3 {{shared variable cannot be lastprivate}} 2234967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 2244967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 2254967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2264967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2274967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(argv[1]) // expected-error {{expected variable name}} 2284967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 2294967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 2304967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2314967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2324967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(2 * 2) // expected-error {{expected variable name}} 2334967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 2344967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 2354967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2364967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2374967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(ba) 2384967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 2394967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 2404967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2414967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2424967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(ca) // expected-error {{shared variable cannot be lastprivate}} 2434967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 2444967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 2454967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2464967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2474967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(da) // expected-error {{shared variable cannot be lastprivate}} 2484967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 2494967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 2504967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar int xa; 2514967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2524967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2534967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(xa) // OK 2544967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 2554967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 2564967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2574967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2584967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(S2::S2s) // expected-error {{shared variable cannot be lastprivate}} 2594967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 2604967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 2614967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2624967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2634967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(S2::S2sc) // expected-error {{shared variable cannot be lastprivate}} 2644967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 2654967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 2664967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2674967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2684967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd safelen(5) // OK 2694967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 2704967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 2714967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2724967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2734967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(e, g) // expected-error {{calling a private constructor of class 'S4'}} expected-error {{calling a private constructor of class 'S5'}} 2744967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 2754967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 2764967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2774967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2784967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(m) // expected-error {{'operator=' is a private member of 'S3'}} 2794967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 2804967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 2814967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2824967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2834967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(h) // expected-error {{threadprivate or thread local variable cannot be lastprivate}} 2844967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 2854967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 2864967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2874967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2884967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(B::x) // expected-error {{threadprivate or thread local variable cannot be lastprivate}} 2894967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 2904967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 2914967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2924967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2934967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd private(xa), lastprivate(xa) // expected-error {{private variable cannot be lastprivate}} expected-note {{defined as private}} 2944967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 2954967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 2964967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2974967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2984967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(i) // expected-note {{defined as lastprivate}} 2994967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) // expected-error{{loop iteration variable in the associated loop of 'omp distribute simd' directive may not be lastprivate, predetermined as linear}} 3004967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 3014967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 3024967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 3034967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(xa) 3044967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 3054967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 3064967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 3074967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 3084967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(xa) 3094967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 3104967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 3114967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 3124967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 3134967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(j) 3144967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 3154967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 3164967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 3174967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 3184967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd firstprivate(m) lastprivate(m) // expected-error {{'operator=' is a private member of 'S3'}} 3194967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 3204967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 3214967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 3224967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 3234967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(n) firstprivate(n) // OK 3244967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 3254967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 3264967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar static int si; 3274967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 3284967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 3294967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute simd lastprivate(si) // OK 3304967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 3314967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar si = i + 1; 3324967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar return foomain<S4, S5>(argc, argv); // expected-note {{in instantiation of function template specialization 'foomain<S4, S5>' requested here}} 3334967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar} 334