1! Offloading test checking interaction of mapping a member of a common block to 2! a target region 3! REQUIRES: flang, amdgcn-amd-amdhsa 4! UNSUPPORTED: nvptx64-nvidia-cuda 5! UNSUPPORTED: nvptx64-nvidia-cuda-LTO 6! UNSUPPORTED: aarch64-unknown-linux-gnu 7! UNSUPPORTED: aarch64-unknown-linux-gnu-LTO 8! UNSUPPORTED: x86_64-unknown-linux-gnu 9! UNSUPPORTED: x86_64-unknown-linux-gnu-LTO 10 11! RUN: %libomptarget-compile-fortran-run-and-check-generic 12program main 13 implicit none 14 common /var_common/ var1, var2 15 integer :: var1, var2 16 17 call modify_1 18 19 !$omp target map(tofrom: var2) 20 var2 = var2 + 20 21 !$omp end target 22 23 call modify_2 24 25 print *, var1 26 print *, var2 27end program 28 29subroutine modify_1 30 common /var_common/ var1, var2 31 integer :: var1, var2 32!$omp target map(tofrom: var2) 33 var2 = var2 + 20 34!$omp end target 35end 36 37subroutine modify_2 38 common /var_common/ var1, var2 39 integer :: var1, var2 40!$omp target map(tofrom: var2) 41 var2 = var2 * 10 42!$omp end target 43end 44 45!CHECK: 0 46!CHECK: 400 47