1 /* { dg-do run } */
2 /* { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } } */
3 
4 #include <openacc.h>
5 #include <stdlib.h>
6 
7 int
main(int argc,char ** argv)8 main (int argc, char **argv)
9 {
10   int N = 8;
11   float *a, *b;
12   int i;
13 
14   a = (float *) malloc (N * sizeof (float));
15   b = (float *) malloc (N * sizeof (float));
16 
17   for (i = 0; i < N; i++)
18     {
19       a[i] = 4.0;
20       b[i] = 0.0;
21     }
22 
23 #pragma acc data copyin(a[0:N]) copyout(b[0:N])
24   {
25 
26 #pragma acc parallel present(a[0:N])
27     {
28       int ii;
29 
30       for (ii = 0; ii < N; ii++)
31 	{
32 	  b[ii] = a[ii];
33 	}
34     }
35 
36   }
37 
38   for (i = 0; i < N; i++)
39     {
40       if (a[i] != 4.0)
41 	abort ();
42 
43       if (b[i] != 4.0)
44 	abort ();
45     }
46 
47   return 0;
48 }
49