Fix xfail for 32-bit hppa*-*-* in gcc.dg/pr84877.c
[official-gcc.git] / libgomp / testsuite / libgomp.c++ / ref-mapping-1.C
blob9aa232f3f672ab9e02f182bc235838d66f960fb1
1 /* { dg-do run } */
3 #include <cassert>
5 void test_ref ()
7   int c_orig = 5;
8   int &c = c_orig;
10 #pragma omp target map(tofrom: c)
11   {
12     c++;
13   }
15   assert (c == 6);
18 void test_ref_to_ptr ()
20   int val = 5;
21   int *ptr_orig = &val;
22   int *&ptr_ref = ptr_orig;
24 #pragma omp target map(tofrom: ptr_ref[0])
25   {
26     (*ptr_ref)++;
27   }
29   assert (val == 6);
32 void test_ref_to_array ()
34   int arr[1];
35   int (&arr_ref)[1] = arr;
37   arr_ref[0] = 5;
39 #pragma omp target map(tofrom: arr_ref[0:1])
40   {
41     arr_ref[0]++;
42   }
44   assert (arr_ref[0] == 6);
46 #pragma omp target map(tofrom: arr_ref[0])
47   {
48     arr_ref[0]++;
49   }
51   assert (arr_ref[0] == 7);
54 void test_ref_to_ptr_array ()
56   int *arr[1];
57   int *(&arr_ref)[1] = arr;
58   int val = 5;
60   arr_ref[0] = &val;
62 #pragma omp target data map(alloc: arr_ref, arr_ref[0])
63   {
64 #pragma omp target map(tofrom: arr_ref[0][0:1])
65     {
66       arr_ref[0][0]++;
67     }
68   }
70   assert (arr_ref[0][0] == 6);
73 int main ()
75   test_ref ();
76   test_ref_to_ptr ();
77   test_ref_to_array ();
78   test_ref_to_ptr_array ();
79   return 0;