!REQUIRES: flang, amdgpu !Test derived from the sollve test for has-device-addr. !RUN: %libomptarget-compile-fortran-run-and-check-generic module m use iso_c_binding contains subroutine target_has_device_addr() integer, target :: x integer, pointer :: first_scalar_device_addr type(c_ptr) :: cptr_scalar1 integer :: res1, res2 nullify (first_scalar_device_addr) x = 10 !$omp target enter data map(to: x) !$omp target data use_device_addr(x) x = 11 cptr_scalar1 = c_loc(x) !$omp end target data call c_f_pointer (cptr_scalar1, first_scalar_device_addr) !$omp target map(to: x) map(from: res1, res2) & !$omp & has_device_addr(first_scalar_device_addr) res1 = first_scalar_device_addr res2 = x !$omp end target print *, "res1", res1, "res2", res2 end subroutine end module program p use m call target_has_device_addr() end !CHECK: res1 11 res2 11