! Offloading test with two target regions mapping the same
! declare target Fortran array and writing some values to 
! it before checking the host correctly receives the 
! correct updates made on the device.
! REQUIRES: flang, amdgcn-amd-amdhsa, nvptx64-nvidia-cuda
! UNSUPPORTED: nvptx64-nvidia-cuda-LTO
! UNSUPPORTED: aarch64-unknown-linux-gnu
! UNSUPPORTED: aarch64-unknown-linux-gnu-LTO
! UNSUPPORTED: x86_64-pc-linux-gnu
! UNSUPPORTED: x86_64-pc-linux-gnu-LTO

! RUN: %libomptarget-compile-fortran-run-and-check-generic
module test_0
    implicit none
    integer :: sp(10) = (/0,0,0,0,0,0,0,0,0,0/)
    !$omp declare target link(sp)
end module test_0

program main
    use test_0
    integer :: i = 1
    integer :: j = 11

!$omp target map(tofrom:sp) map(to: i, j)
    do while (i <= j)
        sp(i) = i;
        i = i + 1
    end do
!$omp end target

!$omp target map(tofrom:sp) map(to: i, j)
    do while (i <= j)
        sp(i) = sp(i) + i;
        i = i + 1
    end do
!$omp end target
    
print *, sp(:)

end program

! CHECK: 2 4 6 8 10 12 14 16 18 20
