57 lines · plain
1! Offloading test checking interaction of mapping all the members of a common2! block with a mix of explicit and implicit mapping to a target region3! REQUIRES: flang, amdgcn-amd-amdhsa4! UNSUPPORTED: nvptx64-nvidia-cuda5! UNSUPPORTED: nvptx64-nvidia-cuda-LTO6! UNSUPPORTED: aarch64-unknown-linux-gnu7! UNSUPPORTED: aarch64-unknown-linux-gnu-LTO8! UNSUPPORTED: x86_64-unknown-linux-gnu9! UNSUPPORTED: x86_64-unknown-linux-gnu-LTO10 11! RUN: %libomptarget-compile-fortran-run-and-check-generic12program main13 implicit none14 common /var_common/ var1, var2, var315 integer :: var1, var2, var316 17 call modify_118 19 !$omp target map(tofrom: var2)20 var2 = var2 + var321 !$omp end target22 23 call modify_224 25 print *, var126 print *, var227 print *, var328end program29 30subroutine modify_131 common /var_common/ var1, var2, var332 integer :: var1, var2, var333 34 !$omp target map(tofrom: /var_common/)35 var1 = 1036 var2 = 2037 var3 = 3038 !$omp end target39end40 41subroutine modify_242 common /var_common/ var1, var2, var343 integer :: var1, var2, var344 integer :: copy45 46 !$omp target map(tofrom: copy)47 copy = var2 + var348 !$omp end target49 50 print *, copy51end52 53!CHECK: 8054!CHECK: 1055!CHECK: 5056!CHECK: 3057