Fix xfail for 32-bit hppa*-*-* in gcc.dg/pr84877.c
[official-gcc.git] / libgomp / testsuite / libgomp.c++ / target-exit-data-reftoptr-1.C
blob1a66fcb0f7fbb2a5f6c7c634c5a6e0f01799d8af
1 #include <cstring>
2 #include <cassert>
4 struct S {
5   int *&ptr;
6   S(int *&ptr_) : ptr(ptr_) { }
7 };
9 int main()
11   int *orig = new int[100];
13   memset (orig, 0, sizeof (int) * 100);
15   S svar(orig);
17 #pragma omp target enter data map(to: svar.ptr, svar.ptr[10:80])
19 #pragma omp target
20   {
21     for (int i = 10; i < 90; i++)
22       svar.ptr[i]++;
23   }
25 #pragma omp target exit data map(release: svar.ptr) map(from: svar.ptr[10:80])
27   for (int i = 0; i < 100; i++)
28     assert (i >= 10 && i < 90 && svar.ptr[i] == 1
29             || svar.ptr[i] == 0);
31   delete orig;
33   return 0;