1 extern void abort (void);
2 struct S
{ int e
, f
; };
7 int a
[4] = { 0, 1, 2, 3 }, b
[n
], c
= 4;
9 int *p
= a
+ 1, i
, err
;
10 for (i
= 0; i
< n
; i
++)
12 #pragma omp target data use_device_ptr(p) map(from:err) map(to:a)
13 #pragma omp target is_device_ptr(p) private(i) map(from:err)
16 for (i
= 0; i
< 4; i
++)
22 for (i
= 0; i
< 4; i
++)
24 #pragma omp target data map(to:a) use_device_addr(a) map(from:err)
25 #pragma omp target is_device_ptr(a) private(i) map(from:err)
28 for (i
= 0; i
< 4; i
++)
34 #pragma omp target data use_device_addr(b) map(from:err) map(to:b)
35 #pragma omp target is_device_ptr(b) private(i) map(from:err)
38 for (i
= 0; i
< 4; i
++)
44 #pragma omp target data map(to:c) use_device_addr(c) map(from:err)
47 #pragma omp target is_device_ptr(q) map(from:err)
54 #pragma omp target data use_device_addr(d) map(to:d) map(from:err)
57 #pragma omp target is_device_ptr(r) map(from:err)
59 err
= r
->e
!= 5 || r
->f
!= 6;