14967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar// RUN: %clang_cc1 -verify -fopenmp -ferror-limit 100 %s 24967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 34967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 44967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarstruct S1; // expected-note 2 {{declared here}} 54967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarextern S1 a; 64967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarclass S2 { 74967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar mutable int a; 84967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarpublic: 94967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S2():a(0) { } 104967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S2(S2 &s2):a(s2.a) { } 114967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}; 124967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarconst S2 b; 134967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarconst S2 ba[5]; 144967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarclass S3 { 154967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar int a; 164967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarpublic: 174967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S3():a(0) { } 184967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S3(S3 &s3):a(s3.a) { } 194967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}; 204967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarconst S3 c; 214967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarconst S3 ca[5]; 224967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarextern const int f; 234967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarclass S4 { 244967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar int a; 254967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S4(); 264967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S4(const S4 &s4); 274967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarpublic: 284967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S4(int v):a(v) { } 294967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}; 304967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarclass S5 { 314967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar int a; 324967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S5():a(0) {} 334967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S5(const S5 &s5):a(s5.a) { } 344967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarpublic: 354967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S5(int v):a(v) { } 364967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}; 374967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 384967a710c84587c654b56c828382219c3937dacbPirama Arumuga NainarS3 h; 394967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp threadprivate(h) // expected-note 2 {{defined as threadprivate or thread local}} 404967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 414967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarnamespace A { 424967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainardouble x; 434967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp threadprivate(x) // expected-note 2 {{defined as threadprivate or thread local}} 444967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar} 454967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarnamespace B { 464967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarusing A::x; 474967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar} 484967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 494967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainartemplate <class T, typename S, int N> 504967a710c84587c654b56c828382219c3937dacbPirama Arumuga NainarT tmain(T argc, S **argv) { 514967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar const int d = 5; 524967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar const int da[5] = { 0 }; 534967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S4 e(4); 544967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S5 g(5); 554967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar int i; 564967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar int &j = i; 574967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar int acc = 0; 584967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar int n = 1000; 594967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 604967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 614967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 624967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared // expected-error {{expected '(' after 'shared'}} 634967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 644967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 654967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 664967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 674967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 684967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 694967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared ( // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} 704967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 714967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 724967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 734967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 744967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 754967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 764967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared () // expected-error {{expected expression}} 774967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 784967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 794967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 804967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 814967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 824967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 834967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared (argc // expected-error {{expected ')'}} expected-note {{to match this '('}} 844967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 854967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 864967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 874967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 884967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 894967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 904967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} 914967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 924967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 934967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 944967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 954967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 964967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 974967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} 984967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 994967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 1004967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 1014967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 1024967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 1034967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 1044967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared (argc) 1054967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 1064967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 1074967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 1084967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 1094967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 1104967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 1114967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared (S1) // expected-error {{'S1' does not refer to a value}} 1124967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 1134967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 1144967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 1154967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 1164967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 1174967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 1184967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared (a, b, c, d, f) 1194967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 1204967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 1214967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 1224967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 1234967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 1244967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 1254967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared (argv[1]) // expected-error {{expected variable name}} 1264967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 1274967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 1284967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 1294967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 1304967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 1314967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 1324967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared(ba) 1334967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 1344967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 1354967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 1364967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 1374967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 1384967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 1394967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared(ca) 1404967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 1414967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 1424967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 1434967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 1444967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 1454967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 1464967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared(da) 1474967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 1484967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 1494967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 1504967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 1514967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 1524967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 1534967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared(e, g) 1544967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 1554967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 1564967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 1574967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 1584967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 1594967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 1604967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared(h, B::x) // expected-error 2 {{threadprivate or thread local variable cannot be shared}} 1614967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 1624967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 1634967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 1644967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 1654967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 1664967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 1674967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd private(i), shared(i) // expected-error {{private variable cannot be shared}} expected-note {{defined as private}} 1684967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 1694967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 1704967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 1714967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 1724967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 1734967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 1744967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd firstprivate(i), shared(i) // expected-error {{firstprivate variable cannot be shared}} expected-note {{defined as firstprivate}} 1754967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 1764967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 1774967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 1784967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 1794967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 1804967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 1814967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd private(i) 1824967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 1834967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 1844967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 1854967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 1864967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 1874967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 1884967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared(i) 1894967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 1904967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 1914967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 1924967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 1934967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 1944967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 1954967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared(j) 1964967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 1974967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 1984967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 1994967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 2004967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2014967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2024967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd firstprivate(i) 2034967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 2044967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 2054967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 2064967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 2074967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2084967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2094967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared(i) 2104967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 2114967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 2124967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 2134967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 2144967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2154967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2164967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared(j) 2174967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 2184967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 2194967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 2204967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarreturn T(); 2214967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar} 2224967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 2234967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 2244967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarint main(int argc, char **argv) { 2254967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar const int d = 5; 2264967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar const int da[5] = { 0 }; 2274967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S4 e(4); 2284967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar S5 g(5); 2294967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar int i; 2304967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar int &j = i; 2314967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar int acc = 0; 2324967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar int n = argc; 2334967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 2344967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2354967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2364967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared // expected-error {{expected '(' after 'shared'}} 2374967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 2384967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 2394967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 2404967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 2414967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2424967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2434967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared ( // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} 2444967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 2454967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 2464967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 2474967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 2484967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2494967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2504967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared () // expected-error {{expected expression}} 2514967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 2524967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 2534967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 2544967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 2554967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2564967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2574967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared (argc // expected-error {{expected ')'}} expected-note {{to match this '('}} 2584967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 2594967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 2604967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 2614967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 2624967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2634967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2644967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared (argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} 2654967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 2664967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 2674967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 2684967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 2694967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2704967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2714967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared (argc > 0 ? argv[1] : argv[2]) // expected-error {{expected variable name}} 2724967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 2734967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 2744967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 2754967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 2764967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2774967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2784967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared (argc) 2794967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 2804967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 2814967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 2824967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 2834967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2844967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2854967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared (S1) // expected-error {{'S1' does not refer to a value}} 2864967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 2874967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 2884967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 2894967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 2904967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2914967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2924967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared (a, b, c, d, f) 2934967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 2944967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 2954967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 2964967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 2974967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 2984967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 2994967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared (argv[1]) // expected-error {{expected variable name}} 3004967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 3014967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 3024967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 3034967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 3044967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 3054967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 3064967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared(ba) 3074967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 3084967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 3094967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 3104967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 3114967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 3124967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 3134967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared(ca) 3144967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 3154967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 3164967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 3174967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 3184967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 3194967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 3204967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared(da) 3214967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 3224967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 3234967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 3244967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 3254967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 3264967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 3274967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared(e, g) 3284967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 3294967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 3304967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 3314967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 3324967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 3334967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 3344967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared(h, B::x) // expected-error 2 {{threadprivate or thread local variable cannot be shared}} 3354967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 3364967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 3374967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 3384967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 3394967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 3404967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 3414967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd private(i), shared(i) // expected-error {{private variable cannot be shared}} expected-note {{defined as private}} 3424967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 3434967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 3444967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 3454967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 3464967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 3474967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 3484967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd firstprivate(i), shared(i) // expected-error {{firstprivate variable cannot be shared}} expected-note {{defined as firstprivate}} 3494967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 3504967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 3514967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 3524967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 3534967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 3544967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 3554967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd private(i) 3564967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 3574967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 3584967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 3594967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 3604967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 3614967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 3624967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared(i) 3634967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 3644967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 3654967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 3664967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 3674967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 3684967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 3694967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared(j) 3704967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 3714967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 3724967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 3734967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 3744967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 3754967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 3764967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd firstprivate(i) 3774967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 3784967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 3794967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 3804967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 3814967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 3824967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 3834967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared(i) 3844967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 3854967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 3864967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 3874967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 3884967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 3894967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 3904967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for simd shared(j) 3914967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for(int k = 0 ; k < n ; k++) { 3924967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar acc++; 3934967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 3944967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 3954967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarreturn tmain<int, char, 1000>(argc, argv); // expected-note {{in instantiation of function template specialization 'tmain<int, char, 1000>' requested here}} 3964967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar} 397