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