Respect GNATMAKE Makefile variable
[official-gcc.git] / libgomp / testsuite / libgomp.oacc-c++ / declare-pr94120.C
blobed69359b5335feca26080298011488bf50ad8627
1 #include <openacc.h>
2 #include <stdlib.h>
4 #define N 8
6 namespace one {
7   int A[N] = { 1, 2, 3, 4, 5, 6, 7, 8 };
8   #pragma acc declare copyin (A)
9 };
11 namespace outer {
12   namespace inner {
13     int B[N];
14     #pragma acc declare create (B)
15   };
18 static void
19 f (void)
21   int i;
22   int C[N];
23   #pragma acc declare copyout (C)
25   if (!acc_is_present (&one::A, sizeof (one::A)))
26     abort ();
28   if (!acc_is_present (&outer::inner::B, sizeof (outer::inner::B)))
29     abort ();
31 #pragma acc parallel
32   for (i = 0; i < N; i++)
33     {
34       outer::inner::B[i] = one::A[i];
35       C[i] = outer::inner::B[i];
36     }
38 #pragma acc parallel
39   for (i = 0; i < N; i++)
40     {
41       if (C[i] != i + 1)
42         abort ();
43     }
45 #pragma acc parallel
46   for (i = 0; i < N; i++)
47     if (outer::inner::B[i] != i + 1)
48       abort ();
52 int
53 main (int argc, char **argv)
55   f ();
57   return 0;