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