Daily bump.
[official-gcc.git] / libgomp / testsuite / libgomp.c / target-18.c
blobcbacaf6a77ac673864f943a88e312e743441155f
1 extern void abort (void);
3 void
4 foo (int n)
6 int a[4] = { 0, 1, 2, 3 }, b[n];
7 int *p = a + 1, i, err;
8 for (i = 0; i < n; i++)
9 b[i] = 9 + i;
10 #pragma omp target data map(to:a)
11 #pragma omp target data use_device_ptr(p) map(from:err)
12 #pragma omp target is_device_ptr(p) private(i) map(from:err)
14 err = 0;
15 for (i = 0; i < 4; i++)
16 if (p[i - 1] != i)
17 err = 1;
19 if (err)
20 abort ();
21 for (i = 0; i < 4; i++)
22 a[i] = 23 + i;
23 #pragma omp target data map(to:a)
24 #pragma omp target data use_device_ptr(a) map(from:err)
25 #pragma omp target is_device_ptr(a) private(i) map(from:err)
27 err = 0;
28 for (i = 0; i < 4; i++)
29 if (a[i] != 23 + i)
30 err = 1;
32 if (err)
33 abort ();
34 #pragma omp target data map(to:b)
35 #pragma omp target data use_device_ptr(b) map(from:err)
36 #pragma omp target is_device_ptr(b) private(i) map(from:err)
38 err = 0;
39 for (i = 0; i < 4; i++)
40 if (b[i] != 9 + i)
41 err = 1;
43 if (err)
44 abort ();
47 int
48 main ()
50 foo (9);
51 return 0;