]> git.ipfire.org Git - thirdparty/gcc.git/blob - libgomp/testsuite/libgomp.oacc-c-c++-common/lib-49.c
Merge current set of OpenACC changes from gomp-4_0-branch.
[thirdparty/gcc.git] / libgomp / testsuite / libgomp.oacc-c-c++-common / lib-49.c
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 int
9 main (int argc, char **argv)
10 {
11 const int N = 256;
12 int i;
13 unsigned char *h;
14 void *d;
15
16 h = (unsigned char *) malloc (N);
17
18 for (i = 0; i < N; i++)
19 {
20 h[i] = i;
21 }
22
23 d = acc_copyin (h, N);
24 if (!d)
25 abort ();
26
27 memset (&h[0], 0, N);
28
29 acc_update_self (h, N - 2);
30
31 for (i = 0; i < N - 2; i++)
32 {
33 if (h[i] != i)
34 abort ();
35 }
36
37 for (i = N - 2; i < N; i++)
38 {
39 if (h[i] != 0)
40 abort ();
41 }
42
43 acc_delete (h, N);
44
45 free (h);
46
47 return 0;
48 }