! Offloading test checking interaction of mapping all the members of a common ! block with a mix of explicit and implicit mapping to a target region ! REQUIRES: flang, amdgcn-amd-amdhsa ! UNSUPPORTED: nvptx64-nvidia-cuda ! UNSUPPORTED: nvptx64-nvidia-cuda-LTO ! UNSUPPORTED: aarch64-unknown-linux-gnu ! UNSUPPORTED: aarch64-unknown-linux-gnu-LTO ! UNSUPPORTED: x86_64-unknown-linux-gnu ! UNSUPPORTED: x86_64-unknown-linux-gnu-LTO ! RUN: %libomptarget-compile-fortran-run-and-check-generic program main implicit none common /var_common/ var1, var2, var3 integer :: var1, var2, var3 call modify_1 !$omp target map(tofrom: var2) var2 = var2 + var3 !$omp end target call modify_2 print *, var1 print *, var2 print *, var3 end program subroutine modify_1 common /var_common/ var1, var2, var3 integer :: var1, var2, var3 !$omp target map(tofrom: /var_common/) var1 = 10 var2 = 20 var3 = 30 !$omp end target end subroutine modify_2 common /var_common/ var1, var2, var3 integer :: var1, var2, var3 integer :: copy !$omp target map(tofrom: copy) copy = var2 + var3 !$omp end target print *, copy end !CHECK: 80 !CHECK: 10 !CHECK: 50 !CHECK: 30