PR c++/86342 - -Wdeprecated-copy and system headers.
[official-gcc.git] / libgomp / testsuite / libgomp.oacc-c-c++-common / declare-3.c
blobc3a2187631232c980e58075487cf632f02aefb8e
1 /* { dg-do run { target openacc_nvidia_accel_selected } } */
3 #include <stdlib.h>
4 #include <openacc.h>
6 float *b;
7 #pragma acc declare deviceptr (b)
9 #pragma acc routine
10 float *
11 subr2 (void)
13 return b;
16 float
17 subr1 (float a)
19 float b;
20 #pragma acc declare present_or_copy (b)
21 float c;
22 #pragma acc declare present_or_copyin (c)
23 float d;
24 #pragma acc declare present_or_create (d)
25 float e;
26 #pragma acc declare present_or_copyout (e)
28 #pragma acc parallel copy (a)
30 b = a;
31 c = b;
32 d = c;
33 e = d;
34 a = e;
37 return a;
40 int
41 main (int argc, char **argv)
43 float a;
44 float *c;
46 a = 2.0;
48 a = subr1 (a);
50 if (a != 2.0)
51 abort ();
53 b = (float *) acc_malloc (sizeof (float));
55 c = subr2 ();
57 if (b != c)
58 abort ();
60 return 0;