1 /* Check acc_is_present and acc_delete.  */
2 
3 /* { dg-do run { target openacc_nvidia_accel_selected } } */
4 
5 #include <stdlib.h>
6 #include <openacc.h>
7 
8 #include <stdio.h>
9 
10 int
main(int argc,char ** argv)11 main (int argc, char **argv)
12 {
13   const int N = 256;
14   int i;
15   unsigned char *h;
16   void *d;
17 
18   h = (unsigned char *) malloc (N);
19 
20   for (i = 0; i < N; i++)
21     {
22       h[i] = i;
23     }
24 
25   d = acc_copyin (h, N);
26 
27   if (acc_is_present (h, 1) != 1)
28     abort ();
29 
30   if (acc_is_present (h, N + 1) != 0)
31     abort ();
32 
33   if (acc_is_present (h + 1, N) != 0)
34     abort ();
35 
36   if (acc_is_present (h - 1, N) != 0)
37     abort ();
38 
39   if (acc_is_present (h - 1, N - 1) != 0)
40     abort ();
41 
42   if (acc_is_present (h + N, 0) != 0)
43     abort ();
44 
45   if (acc_is_present (h + N, N) != 0)
46     abort ();
47 
48   if (acc_is_present (0, N) != 0)
49     abort ();
50 
51   if (acc_is_present (h, 0) != 0)
52     abort ();
53 
54   acc_delete (h, N);
55 
56   if (acc_is_present (h, 1) != 0)
57     abort ();
58 
59   free (h);
60 
61   return 0;
62 }
63