! Offloading test checking interaction of mapping all the members of a common ! block 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: var1, var2, var3) var3 = var3 * 10 var2 = var2 * 10 var1 = var1 * 10 !$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: var2, var1, var3) var3 = var3 + 40 var2 = var2 + 20 var1 = var1 + 30 !$omp end target end subroutine modify_2 common /var_common/ var1, var2, var3 integer :: var1, var2, var3 !$omp target map(tofrom: var2, var3, var1) var3 = var3 + 20 var1 = var1 + 10 var2 = var2 + 15 !$omp end target end !CHECK: 310 !CHECK: 215 !CHECK: 420