1 // { dg-do run { target offload_device_nonshared_as } }
6 extern "C" void abort ();
19 uintptr_t hostptr = (uintptr_t) ptr;
20 #pragma omp target map(from:mapped)
22 if (ptr != (int *) hostptr)
23 for (int i = 0; i < ptr_len; i++)
25 mapped = (ptr != (int *) hostptr);
30 bool set_refptr (int n)
33 uintptr_t hostrefptr = (uintptr_t) refptr;
34 #pragma omp target map(from:mapped)
36 if (refptr != (int *) hostrefptr)
37 for (int i = 0; i < refptr_len; i++)
39 mapped = (refptr != (int *) hostrefptr);
48 int *ptr1 = new int[N];
49 int *ptr2 = new int[N];
51 memset (ptr1, 0, sizeof (int) * N);
52 memset (ptr2, 0, sizeof (int) * N);
54 S s = { ptr1, N, ptr2, N };
59 mapped = s.set_ptr (val);
64 for (int i = 0; i < N; i++)
68 mapped = s.set_refptr (val);
73 for (int i = 0; i < N; i++)
77 #pragma omp target data map(ptr1[:N])
78 mapped = s.set_ptr (val);
84 if (s.ptr != ptr1 || s.refptr != ptr2)
86 for (int i = 0; i < N; i++)
90 #pragma omp target data map(ptr2[:N])
91 mapped = s.set_refptr (val);
97 if (s.ptr != ptr1 || s.refptr != ptr2)
99 for (int i = 0; i < N; i++)