14967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar// RUN: %clang_cc1 -verify -fopenmp -ferror-limit 200 %s 24967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar// RUN: %clang_cc1 -DCCODE -verify -fopenmp -ferror-limit 200 -x c %s 34967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#ifdef CCODE 44967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarvoid foo(int arg) { 54967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar const int n = 0; 687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 74967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar double marr[10][10][10]; 84967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 94967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[2][0:2][0:2]) // expected-error {{array section does not specify contiguous storage}} 104967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 114967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[:][0:][:]) 124967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 134967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[:][1:][:]) // expected-error {{array section does not specify contiguous storage}} 144967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 154967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[:][n:][:]) 164967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 174967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar} 184967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#else 194967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainartemplate <typename T, int I> 204967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarstruct SA { 214967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar static int ss; 224967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp threadprivate(ss) // expected-note {{defined as threadprivate or thread local}} 234967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar float a; 244967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar int b[12]; 254967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar float *c; 264967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar T d; 274967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar float e[I]; 284967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar T *f; 294967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar void func(int arg) { 304967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(arg,a,d) 314967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 324967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(arg[2:2],a,d) // expected-error {{subscripted value is not an array or pointer}} 334967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 344967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(arg,a*2) // expected-error {{expected expression containing only member accesses and/or array sections based on named variables}} 354967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 364967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(arg,(c+1)[2]) // expected-error {{expected expression containing only member accesses and/or array sections based on named variables}} 374967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 384967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(arg,a[:2],d) // expected-error {{subscripted value is not an array or pointer}} 394967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 404967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(arg,a,d[:2]) // expected-error {{subscripted value is not an array or pointer}} 414967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 424967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 434967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(to:ss) // expected-error {{threadprivate variables are not allowed in 'map' clause}} 444967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 454967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 464967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(to:b,e) 474967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 484967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(to:b,e) map(to:b) // expected-error {{variable already marked as mapped in current construct}} expected-note {{used here}} 494967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 504967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(to:b[:2],e) 514967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 524967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(to:b,e[:]) 534967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 544967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 554967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(always, tofrom: c,f) 564967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 574967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(always, tofrom: c[1:2],f) 584967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 594967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(always, tofrom: c,f[1:2]) 604967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 614967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(always, tofrom: c[:],f) // expected-error {{section length is unspecified and cannot be inferred because subscripted value is not an array}} 624967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 634967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(always, tofrom: c,f[:]) // expected-error {{section length is unspecified and cannot be inferred because subscripted value is not an array}} 644967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 654967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar return; 664967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 674967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}; 684967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 694967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarstruct SB { 704967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar unsigned A; 714967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar unsigned B; 724967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar float Arr[100]; 734967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar float *Ptr; 744967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar float *foo() { 754967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar return &Arr[0]; 764967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 774967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}; 784967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 794967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarstruct SC { 804967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar unsigned A : 2; 814967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar unsigned B : 3; 824967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar unsigned C; 834967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar unsigned D; 844967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar float Arr[100]; 854967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar SB S; 864967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar SB ArrS[100]; 874967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar SB *PtrS; 884967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar SB *&RPtrS; 894967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar float *Ptr; 904967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 914967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar SC(SB *&_RPtrS) : RPtrS(_RPtrS) {} 924967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}; 934967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 944967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarunion SD { 954967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar unsigned A; 964967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar float B; 974967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}; 984967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 994967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarvoid SAclient(int arg) { 1004967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar SA<int,123> s; 1014967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar s.func(arg); // expected-note {{in instantiation of member function}} 1024967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar double marr[10][10][10]; 1034967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar double marr2[5][10][1]; 1044967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar double mvla[5][arg][10]; 1054967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar double ***mptr; 1064967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar const int n = 0; 1074967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar const int m = 1; 1084967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar double mvla2[5][arg][m+n+10]; 1094967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 1104967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar SB *p; 1114967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 1124967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar SD u; 1134967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar SC r(p),t(p); 1144967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r) 1154967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1164967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[2][0:2][0:2]) // expected-error {{array section does not specify contiguous storage}} 1174967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1184967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[:][0:2][0:2]) // expected-error {{array section does not specify contiguous storage}} 1194967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1204967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[2][3][0:2]) 1214967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1224967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[:][:][:]) 1234967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1244967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[:2][:][:]) 1254967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1264967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[arg:][:][:]) 1274967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1284967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[arg:]) 1294967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1304967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[arg:][:arg][:]) // correct if arg is the size of dimension 2 1314967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1324967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[:arg][:]) 1334967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1344967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[:arg][n:]) 1354967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1364967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[:][:arg][n:]) // correct if arg is the size of dimension 2 1374967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1384967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[:][:m][n:]) // expected-error {{array section does not specify contiguous storage}} 1394967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1404967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[n:m][:arg][n:]) 1414967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1424967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[:2][:1][:]) // expected-error {{array section does not specify contiguous storage}} 1434967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1444967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[:2][1:][:]) // expected-error {{array section does not specify contiguous storage}} 1454967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1464967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[:2][:][:1]) // expected-error {{array section does not specify contiguous storage}} 1474967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1484967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[:2][:][1:]) // expected-error {{array section does not specify contiguous storage}} 1494967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1504967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[:1][:2][:]) 1514967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1524967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[:1][0][:]) 1534967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1544967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[:arg][:2][:]) // correct if arg is 1 1554967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1564967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[:1][3:1][:2]) 1574967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1584967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[:1][3:arg][:2]) // correct if arg is 1 1594967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1604967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[:1][3:2][:2]) // expected-error {{array section does not specify contiguous storage}} 1614967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1624967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[:2][:10][:]) 1634967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1644967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[:2][:][:5+5]) 1654967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1664967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[:2][2+2-4:][0:5+5]) 1674967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1684967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 1694967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr[:1][:2][0]) // expected-error {{array section does not specify contiguous storage}} 1704967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1714967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(marr2[:1][:2][0]) 1724967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1734967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 1744967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(mvla[:1][:][0]) // correct if the size of dimension 2 is 1. 1754967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1764967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(mvla[:2][:arg][:]) // correct if arg is the size of dimension 2. 1774967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1784967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(mvla[:1][:2][0]) // expected-error {{array section does not specify contiguous storage}} 1794967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1804967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(mvla[1][2:arg][:]) 1814967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1824967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(mvla[:1][:][:]) 1834967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1844967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(mvla2[:1][:2][:11]) 1854967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1864967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(mvla2[:1][:2][:10]) // expected-error {{array section does not specify contiguous storage}} 1874967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1884967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 1894967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(mptr[:2][2+2-4:1][0:5+5]) // expected-error {{array section does not specify contiguous storage}} 1904967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1914967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(mptr[:1][:2-1][2:4-3]) 1924967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1934967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(mptr[:1][:arg][2:4-3]) // correct if arg is 1. 1944967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1954967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(mptr[:1][:2-1][0:2]) 1964967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1974967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(mptr[:1][:2][0:2]) // expected-error {{array section does not specify contiguous storage}} 1984967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 1994967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(mptr[:1][:][0:2]) // expected-error {{section length is unspecified and cannot be inferred because subscripted value is not an array}} 2004967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2014967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(mptr[:2][:1][0:2]) // expected-error {{array section does not specify contiguous storage}} 2024967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2034967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 2044967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r.ArrS[0].B) 2054967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2064967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r.ArrS[:1].B) // expected-error {{OpenMP array section is not allowed here}} 2074967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2084967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r.ArrS[:arg].B) // expected-error {{OpenMP array section is not allowed here}} 2094967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2104967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r.ArrS[0].Arr[1:23]) 2114967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2124967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r.ArrS[0].Arr[1:arg]) 2134967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2144967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r.ArrS[0].Arr[arg:23]) 2154967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2164967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r.ArrS[0].Error) // expected-error {{no member named 'Error' in 'SB'}} 2174967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2184967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r.ArrS[0].A, r.ArrS[1].A) // expected-error {{multiple array elements associated with the same variable are not allowed in map clauses of the same construct}} expected-note {{used here}} 2194967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2204967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r.ArrS[0].A, t.ArrS[1].A) 2214967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2224967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r.PtrS[0], r.PtrS->B) // expected-error {{same pointer derreferenced in multiple different ways in map clause expressions}} expected-note {{used here}} 2234967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2244967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r.RPtrS[0], r.RPtrS->B) // expected-error {{same pointer derreferenced in multiple different ways in map clause expressions}} expected-note {{used here}} 2254967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2264967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r.S.Arr[:12]) 2274967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2284967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r.S.foo()[:12]) // expected-error {{expected expression containing only member accesses and/or array sections based on named variables}} 2294967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2304967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r.C, r.D) 2314967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2324967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r.C, r.C) // expected-error {{variable already marked as mapped in current construct}} expected-note {{used here}} 2334967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2344967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r.C) map(r.C) // expected-error {{variable already marked as mapped in current construct}} expected-note {{used here}} 2354967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2364967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r.C, r.S) // this would be an error only caught at runtime - Sema would have to make sure there is not way for the missing data between fields to be mapped somewhere else. 2374967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2384967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r, r.S) // expected-error {{variable already marked as mapped in current construct}} expected-note {{used here}} 2394967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2404967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r.C, t.C) 2414967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2424967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r.A) // expected-error {{bit fields cannot be used to specify storage in a 'map' clause}} 2434967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2444967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r.Arr) 2454967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2464967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r.Arr[3:5]) 2474967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2484967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r.Ptr[3:5]) 2494967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2504967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r.ArrS[3:5].A) // expected-error {{OpenMP array section is not allowed here}} 2514967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2524967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r.ArrS[3:5].Arr[6:7]) // expected-error {{OpenMP array section is not allowed here}} 2534967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2544967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r.ArrS[3].Arr[6:7]) 2554967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2564967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r.S.Arr[4:5]) 2574967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2584967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r.S.Ptr[4:5]) 2594967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2604967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r.S.Ptr[:]) // expected-error {{section length is unspecified and cannot be inferred because subscripted value is not an array}} 2614967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2624967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map((p+1)->A) // expected-error {{expected expression containing only member accesses and/or array sections based on named variables}} 2634967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2644967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(u.B) // expected-error {{mapped storage cannot be derived from a union}} 2654967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2664967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 2674967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target data map(to: r.C) //expected-note {{used here}} 2684967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar { 2694967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(r.D) // expected-error {{original storage of expression in data environment is shared but data environment do not fully contain mapped expression storage}} 2704967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2714967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 2724967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 2734967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target data map(to: t.Ptr) //expected-note {{used here}} 2744967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar { 2754967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(t.Ptr[:23]) // expected-error {{pointer cannot be mapped along with a section derived from itself}} 2764967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2774967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 2784967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 2794967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target data map(to: t.C, t.D) 2804967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar { 2814967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target data map(to: t.C) 2824967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar { 2834967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(t.D) 2844967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2854967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 2864967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 2874967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 2884967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target data map(to: t) 2894967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar { 2904967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target data map(to: t.C) 2914967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar { 2924967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar #pragma omp target map(t.D) 2934967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 2944967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 2954967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar } 2964967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar} 29787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid foo() { 29887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 29987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 30087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarbool foobool(int argc) { 30187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar return argc; 30287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 30387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 30487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarstruct S1; // expected-note 2 {{declared here}} 30587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarextern S1 a; 30687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarclass S2 { 30787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar mutable int a; 30887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarpublic: 30987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S2():a(0) { } 31087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S2(S2 &s2):a(s2.a) { } 31187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar static float S2s; // expected-note 4 {{mappable type cannot contain static members}} 31287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar static const float S2sc; // expected-note 4 {{mappable type cannot contain static members}} 31387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar}; 31487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarconst float S2::S2sc = 0; 31587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarconst S2 b; 31687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarconst S2 ba[5]; 31787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarclass S3 { 31887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int a; 31987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarpublic: 32087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S3():a(0) { } 32187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S3(S3 &s3):a(s3.a) { } 32287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar}; 32387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarconst S3 c; 32487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarconst S3 ca[5]; 32587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarextern const int f; 32687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarclass S4 { 32787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int a; 32887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S4(); 32987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S4(const S4 &s4); 33087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarpublic: 33187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S4(int v):a(v) { } 33287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar}; 33387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarclass S5 { 33487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int a; 33587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S5():a(0) {} 33687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S5(const S5 &s5):a(s5.a) { } 33787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarpublic: 33887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S5(int v):a(v) { } 33987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar}; 34087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 34187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga NainarS3 h; 34287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp threadprivate(h) // expected-note 2 {{defined as threadprivate or thread local}} 34387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 34487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainartypedef int from; 34587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 34687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainartemplate <typename T, int I> // expected-note {{declared here}} 34787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga NainarT tmain(T argc) { 34887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar const T d = 5; 34987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar const T da[5] = { 0 }; 35087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S4 e(4); 35187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S5 g(5); 35287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar T i, t[20]; 35387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar T &j = i; 35487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar T *k = &j; 35587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar T x; 35687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar T y; 35787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar T to, tofrom, always; 35887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar const T (&l)[5] = da; 35987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp target map // expected-error {{expected '(' after 'map'}} 3604967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 36187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp target map( // expected-error {{expected ')'}} expected-note {{to match this '('}} expected-error {{expected expression}} 3624967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 36387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp target map() // expected-error {{expected expression}} 3644967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 36587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp target map(alloc) // expected-error {{use of undeclared identifier 'alloc'}} 3664967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 36787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp target map(to argc // expected-error {{expected ')'}} expected-note {{to match this '('}} expected-error {{expected ',' or ')' in 'map' clause}} 3684967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 36987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp target map(to:) // expected-error {{expected expression}} 3704967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 37187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp target map(from: argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} 3724967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 37387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp target map(x: y) // expected-error {{incorrect map type, expected one of 'to', 'from', 'tofrom', 'alloc', 'release', or 'delete'}} 3744967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 37587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp target map(x) 37687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 37787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp target map(tofrom: t[:I]) 37887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 3794967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target map(T: a) // expected-error {{incorrect map type, expected one of 'to', 'from', 'tofrom', 'alloc', 'release', or 'delete'}} expected-error {{incomplete type 'S1' where a complete type is required}} 38087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 38187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp target map(T) // expected-error {{'T' does not refer to a value}} 38287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 3834967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target map(I) // expected-error 2 {{expected expression containing only member accesses and/or array sections based on named variables}} 38487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 38587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp target map(S2::S2s) 38687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 38787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp target map(S2::S2sc) 38887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 38987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp target map(x) 39087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 39187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp target map(to: x) 39287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 39387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp target map(to: to) 39487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 39587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp target map(to) 39687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 39787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp target map(to, x) 39887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 3994967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(to x) // expected-error {{expected ',' or ')' in 'map' clause}} 4004967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(tofrom: argc > 0 ? x : y) // expected-error 2 {{expected expression containing only member accesses and/or array sections based on named variables}} 4014967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(argc) 4024967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(S1) // expected-error {{'S1' does not refer to a value}} 4034967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(a, b, c, d, f) // expected-error {{incomplete type 'S1' where a complete type is required}} expected-error 2 {{type 'S2' is not mappable to target}} 4044967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(ba) // expected-error 2 {{type 'S2' is not mappable to target}} 4054967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(ca) 4064967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(da) 4074967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(S2::S2s) 4084967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(S2::S2sc) 4094967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(e, g) 4104967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(h) // expected-error {{threadprivate variables are not allowed in 'map' clause}} 4114967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(k) map(k) // expected-error 2 {{variable already marked as mapped in current construct}} expected-note 2 {{used here}} 4124967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target map(k), map(k[:5]) // expected-error 2 {{pointer cannot be mapped along with a section derived from itself}} expected-note 2 {{used here}} 41387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 4144967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(da) 41587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp target map(da[:4]) 41687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 4174967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(k, j, l) // expected-note 2 {{used here}} 4184967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(k[:4]) // expected-error 2 {{pointer cannot be mapped along with a section derived from itself}} 4194967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(j) 4204967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target map(l) map(l[:5]) // expected-error 2 {{variable already marked as mapped in current construct}} expected-note 2 {{used here}} 42187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 4224967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(k[:4], j, l[:5]) // expected-note 4 {{used here}} 4234967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(k) // expected-error 2 {{pointer cannot be mapped along with a section derived from itself}} 4244967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(j) 4254967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target map(l) // expected-error 2 {{original storage of expression in data environment is shared but data environment do not fully contain mapped expression storage}} 42687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 42787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 4284967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(always, tofrom: x) 4294967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(always: x) // expected-error {{missing map type}} 4304967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(tofrom, always: x) // expected-error {{incorrect map type modifier, expected 'always'}} expected-error {{incorrect map type, expected one of 'to', 'from', 'tofrom', 'alloc', 'release', or 'delete'}} 4314967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(always, tofrom: always, tofrom, x) 43287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp target map(tofrom j) // expected-error {{expected ',' or ')' in 'map' clause}} 43387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 43487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar return 0; 43587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 43687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 43787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarint main(int argc, char **argv) { 43887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar const int d = 5; 43987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar const int da[5] = { 0 }; 44087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S4 e(4); 44187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar S5 g(5); 44287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int i; 44387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int &j = i; 44487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int *k = &j; 44587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int x; 44687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int y; 44787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar int to, tofrom, always; 44887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar const int (&l)[5] = da; 4494967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map // expected-error {{expected '(' after 'map'}} expected-error {{expected at least one map clause for '#pragma omp target data'}} 4504967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map( // expected-error {{expected ')'}} expected-note {{to match this '('}} expected-error {{expected expression}} 4514967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map() // expected-error {{expected expression}} 4524967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(alloc) // expected-error {{use of undeclared identifier 'alloc'}} 4534967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(to argc // expected-error {{expected ')'}} expected-note {{to match this '('}} expected-error {{expected ',' or ')' in 'map' clause}} 4544967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(to:) // expected-error {{expected expression}} 4554967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(from: argc, // expected-error {{expected expression}} expected-error {{expected ')'}} expected-note {{to match this '('}} 4564967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(x: y) // expected-error {{incorrect map type, expected one of 'to', 'from', 'tofrom', 'alloc', 'release', or 'delete'}} 45787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp target map(x) 45887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 45987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp target map(to: x) 46087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 46187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp target map(to: to) 46287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 46387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp target map(to) 46487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 46587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp target map(to, x) 46687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 4674967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(to x) // expected-error {{expected ',' or ')' in 'map' clause}} 4684967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(tofrom: argc > 0 ? argv[1] : argv[2]) // expected-error {{xpected expression containing only member accesses and/or array sections based on named variables}} 4694967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(argc) 4704967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(S1) // expected-error {{'S1' does not refer to a value}} 4714967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(a, b, c, d, f) // expected-error {{incomplete type 'S1' where a complete type is required}} expected-error 2 {{type 'S2' is not mappable to target}} 4724967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(argv[1]) 4734967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(ba) // expected-error 2 {{type 'S2' is not mappable to target}} 4744967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(ca) 4754967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(da) 4764967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(S2::S2s) 4774967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(S2::S2sc) 4784967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(e, g) 4794967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(h) // expected-error {{threadprivate variables are not allowed in 'map' clause}} 4804967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(k), map(k) // expected-error {{variable already marked as mapped in current construct}} expected-note {{used here}} 4814967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target map(k), map(k[:5]) // expected-error {{pointer cannot be mapped along with a section derived from itself}} expected-note {{used here}} 48287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 4834967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(da) 48487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp target map(da[:4]) 48587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 4864967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(k, j, l) // expected-note {{used here}} 4874967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(k[:4]) // expected-error {{pointer cannot be mapped along with a section derived from itself}} 4884967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(j) 4894967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target map(l) map(l[:5]) // expected-error {{variable already marked as mapped in current construct}} expected-note {{used here}} 49087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 4914967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(k[:4], j, l[:5]) // expected-note 2 {{used here}} 4924967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(k) // expected-error {{pointer cannot be mapped along with a section derived from itself}} 4934967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(j) 4944967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target map(l) // expected-error {{original storage of expression in data environment is shared but data environment do not fully contain mapped expression storage}} 49587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 49687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar 4974967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(always, tofrom: x) 4984967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(always: x) // expected-error {{missing map type}} 4994967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(tofrom, always: x) // expected-error {{incorrect map type modifier, expected 'always'}} expected-error {{incorrect map type, expected one of 'to', 'from', 'tofrom', 'alloc', 'release', or 'delete'}} 5004967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target data map(always, tofrom: always, tofrom, x) 50187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar#pragma omp target map(tofrom j) // expected-error {{expected ',' or ')' in 'map' clause}} 50287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar foo(); 5034967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target private(j) map(j) // expected-error {{private variable cannot be in a map clause in '#pragma omp target' directive}} expected-note {{defined as private}} 5044967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 5054967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target firstprivate(j) map(j) // expected-error {{firstprivate variable cannot be in a map clause in '#pragma omp target' directive}} expected-note {{defined as firstprivate}} 5064967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar {} 50787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar return tmain<int, 3>(argc)+tmain<from, 4>(argc); // expected-note {{in instantiation of function template specialization 'tmain<int, 3>' requested here}} expected-note {{in instantiation of function template specialization 'tmain<int, 4>' requested here}} 50887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar} 5094967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#endif 510