Fix xfail for 32-bit hppa*-*-* in gcc.dg/pr84877.c
[official-gcc.git] / libgomp / testsuite / libgomp.c++ / baseptrs-5.C
blob16bdfff3ae08a39b1302a53b325fa7d2586731e4
1 // { dg-do run }
3 #include <cstring>
4 #include <cassert>
6 struct sa
8   int *ptr;
9   int *ptr2;
12 struct sb
14   int arr[10];
17 struct scp
19   sa *&a;
20   sb *&b;
21   scp (sa *&my_a, sb *&my_b) : a(my_a), b(my_b) {}
24 int
25 main ()
27   sa *my_a = new sa;
28   sb *my_b = new sb;
30   my_a->ptr = new int[10];
31   my_a->ptr2 = new int[10];
32   scp *my_c = new scp(my_a, my_b);
34   memset (my_c->a->ptr, 0, sizeof (int) * 10);
35   memset (my_c->a->ptr2, 0, sizeof (int) * 10);
37   #pragma omp target map (my_c->a, \
38                           my_c->a->ptr, my_c->a->ptr[:10], \
39                           my_c->a->ptr2, my_c->a->ptr2[:10])
40   {
41     for (int i = 0; i < 10; i++)
42       {
43         my_c->a->ptr[i] = i;
44         my_c->a->ptr2[i] = i * 2;
45       }
46   }
48   for (int i = 0; i < 10; i++)
49     {
50       assert (my_c->a->ptr[i] == i);
51       assert (my_c->a->ptr2[i] == i * 2);
52     }
54   delete[] my_a->ptr;
55   delete[] my_a->ptr2;
56   delete my_a;
57   delete my_b;
58   delete my_c;
60   return 0;