! { dg-do run }
call foo ()
contains
subroutine foo ()
integer, target :: A(30)
integer, pointer :: p(:)
!$omp target data map(A(1:10))
p => A
!$omp target map(p(4:10)) map(A(1:10))
A(3) = 777
p(9) = 777
A(9) = 999
!$omp end target
!$omp end target data
if (A(3) /= 777 .or. A(9) /= 999) STOP 1
end subroutine
end