1! Offloading test checking interaction of a two 1-D allocatable arrays with a
2! target region while providing the map upper and lower bounds
3! REQUIRES: flang, amdgpu
4
5! RUN: %libomptarget-compile-fortran-run-and-check-generic
6program main
7    integer,  allocatable :: sp_read(:), sp_write(:)
8    allocate(sp_read(10))
9    allocate(sp_write(10))
10
11    do i = 1, 10
12        sp_read(i) = i
13        sp_write(i) = 0
14    end do
15
16    !$omp target map(tofrom:sp_read(2:6)) map(tofrom:sp_write(2:6))
17        do i = 1, 10
18            sp_write(i) = sp_read(i)
19        end do
20    !$omp end target
21
22    do i = 1, 10
23        print *, sp_write(i)
24    end do
25
26    deallocate(sp_read)
27    deallocate(sp_write)
28end program
29
30! CHECK: 0
31! CHECK: 2
32! CHECK: 3
33! CHECK: 4
34! CHECK: 5
35! CHECK: 6
36! CHECK: 0
37! CHECK: 0
38! CHECK: 0
39! CHECK: 0
40