! { dg-do run }

module target3
contains
  subroutine foo (f, g)
    integer :: n
    integer, pointer :: f, g(:)
    integer, pointer :: j, k(:)
    logical :: r
    nullify (j)
    k => null ()
    !$omp target map (tofrom: f, g, j, k) map (from: r)
      r = associated (f) .or. associated (g)
      r = r .or. associated (j) .or. associated (k)
    !$omp end target
    if (r) stop 1
    !$omp target
      r = associated (f) .or. associated (g)
      r = r .or. associated (j) .or. associated (k)
    !$omp end target
    if (r) stop 2
  end subroutine foo
end module target3
  use target3, only : foo
  integer, pointer :: f, g(:)
  f => null ()
  nullify (g)
  call foo (f, g)
end
