// RUN: %libomptarget-compilexx-run-and-check-generic // UNSUPPORTED: amdgcn-amd-amdhsa extern "C" int printf(const char *, ...); typedef struct { int a; } C; #pragma omp declare mapper(C s) map(to : s.a) typedef struct { int e; C f; int h; } D; int main() { D sa[10]; sa[1].e = 111; sa[1].f.a = 222; // CHECK: 111 222 printf("%d %d \n", sa[1].e, sa[1].f.a); #pragma omp target map(tofrom : sa[0 : 2]) { // CHECK: 111 printf("%d \n", sa[1].e); sa[0].e = 333; sa[1].f.a = 444; // CHECK: 333 444 printf("%d %d \n", sa[0].e, sa[1].f.a); } // CHECK: 333 222 printf("%d %d \n", sa[0].e, sa[1].f.a); }