// RUN: %libomptarget-compile-run-and-check-generic #include #include #define NUM 1024 class C { public: int *a; }; #pragma omp declare mapper(id : C s) map(s.a[0 : NUM]) int main() { C c; c.a = (int *)malloc(sizeof(int) * NUM); for (int i = 0; i < NUM; i++) { c.a[i] = 1; } #pragma omp target teams distribute parallel for map(mapper(id), tofrom : c) for (int i = 0; i < NUM; i++) { ++c.a[i]; } int sum = 0; for (int i = 0; i < NUM; i++) { sum += c.a[i]; } // CHECK: Sum = 2048 printf("Sum = %d\n", sum); return 0; }