blob: db171d2f5a3d0a8440fa98a221a28b925e33a03e [file] [log] [blame]
#include <cstring>
#include <cassert>
struct s {
int (&a)[10];
s(int (&a0)[10]) : a(a0) {}
};
int
main (int argc, char *argv[])
{
int la[10];
s v(la);
memset (la, 0, sizeof la);
#pragma omp target enter data map(to: v)
/* This mapping must use GOMP_MAP_ATTACH_DETACH not GOMP_MAP_ALWAYS_POINTER,
else the host reference v.a will be corrupted on copy-out. */
#pragma omp target map(v.a[0:10])
{
v.a[5]++;
}
#pragma omp target exit data map(from: v)
assert (v.a[5] == 1);
return 0;
}