Mercurial > hg > CbC > CbC_gcc
comparison libgomp/testsuite/libgomp.c/target-14.c @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
68:561a7518be6b | 111:04ced10e8804 |
---|---|
1 #include <omp.h> | |
2 #include <stdlib.h> | |
3 | |
4 int | |
5 main () | |
6 { | |
7 int d = omp_get_default_device (); | |
8 int id = omp_get_initial_device (); | |
9 int err; | |
10 void *p; | |
11 | |
12 if (d < 0 || d >= omp_get_num_devices ()) | |
13 d = id; | |
14 | |
15 p = omp_target_alloc (128 * sizeof (int), d); | |
16 if (p == NULL) | |
17 return 0; | |
18 | |
19 #pragma omp target is_device_ptr (p) if (d >= 0) device (d >= 0 ? d : 0) | |
20 { | |
21 int i, *q = (int *) p; | |
22 for (i = 0; i < 128; i++) | |
23 q[i] = i + 7; | |
24 } | |
25 #pragma omp target is_device_ptr (p) if (d >= 0) device (d >= 0 ? d : 0) map(from:err) | |
26 { | |
27 int i; | |
28 err = 0; | |
29 for (i = 0; i < 128; i++) | |
30 if (((int *) p)[i] != i + 7) | |
31 err = 1; | |
32 } | |
33 if (err) | |
34 abort (); | |
35 | |
36 omp_target_free (p, d); | |
37 return 0; | |
38 } |