xref: /llvm-project/offload/test/mapping/target_use_device_addr.c (revision 330d8983d25d08580fc1642fea48b2473f47a9da)
1*330d8983SJohannes Doerfert // RUN: %libomptarget-compile-generic -fopenmp-version=51
2*330d8983SJohannes Doerfert // RUN: %libomptarget-run-generic 2>&1 \
3*330d8983SJohannes Doerfert // RUN: | %fcheck-generic
4*330d8983SJohannes Doerfert 
5*330d8983SJohannes Doerfert #include <stdio.h>
main()6*330d8983SJohannes Doerfert int main() {
7*330d8983SJohannes Doerfert   short x[10];
8*330d8983SJohannes Doerfert   short *xp = &x[0];
9*330d8983SJohannes Doerfert 
10*330d8983SJohannes Doerfert   x[1] = 111;
11*330d8983SJohannes Doerfert 
12*330d8983SJohannes Doerfert   printf("%d, %p\n", xp[1], &xp[1]);
13*330d8983SJohannes Doerfert #pragma omp target data use_device_addr(xp[1 : 3]) map(tofrom : x)
14*330d8983SJohannes Doerfert #pragma omp target is_device_ptr(xp)
15*330d8983SJohannes Doerfert   { xp[1] = 222; }
16*330d8983SJohannes Doerfert   // CHECK: 222
17*330d8983SJohannes Doerfert   printf("%d, %p\n", xp[1], &xp[1]);
18*330d8983SJohannes Doerfert }
19