blob: 36a2ed5ef11c09f0e24a1b486523cfb8cce6ec41 [file] [log] [blame]
! { dg-additional-options "-DMEM_SHARED" { target offload_device_shared_as } }
! { dg-do run }
!
! PR middle-end/94635
implicit none
integer, parameter :: N = 20
integer, allocatable, dimension(:) :: my1DPtr
integer, dimension(N) :: my1DArr
integer :: i
allocate(my1DPtr(N))
my1DPtr = 43
!$omp target enter data map(alloc: my1DPtr)
!$omp target
my1DPtr = [(i , i = 1, N)]
!$omp end target
!$omp target map(from: my1DArr)
my1DArr = my1DPtr
!$omp end target
!$omp target exit data map(delete: my1DPtr)
if (any (my1DArr /= [(i, i = 1, N)])) stop 1
#if MEM_SHARED
if (any (my1DArr /= my1DPtr)) stop 2
#else
if (any (43 /= my1DPtr)) stop 3
#endif
my1DPtr = [(2*N-i, i = 1, N)]
my1DArr = 42
!$omp target map(tofrom: my1DArr) map(tofrom: my1DPtr(:))
my1DArr = my1DPtr
my1DPtr = 20
!$omp end target
if (any (my1DArr /= [(2*N-i, i = 1, N)])) stop 4
if (any (20 /= my1DPtr)) stop 6
end