Files
clang-p2996/offload/test/offloading/fortran/target-map-enter-exit-array-bounds.f90
agozillon 3723449955 [OpenMP] Allocatable explicit member mapping fortran offloading tests (#113555)
This PR is one in a series of 3 that aim to add support for explicit
member mapping of allocatable components in derived types within
OpenMP+Fortran for Flang.

This PR provides all of the runtime tests that are currently
upstreamable, unfortunately some of the other tests would require
linking of the fortran runtime for offload which we currently do not do.
But regardless, this is plenty to ensure that the mapping is working in
most cases.
2024-11-16 12:22:33 +01:00

36 lines
883 B
Fortran

! Offloading test checking interaction of an enter and exit map of an array of
! scalars with specified bounds
! REQUIRES: flang, amdgpu
! RUN: %libomptarget-compile-fortran-run-and-check-generic
program main
integer :: array(10)
do I = 1, 10
array(I) = I + I
end do
!$omp target enter data map(to: array(3:6))
! Shouldn't overwrite data already locked in
! on target via enter, which will then be
! overwritten by our exit
do I = 1, 10
array(I) = 10
end do
! The compiler/runtime is less lenient about read/write out of
! bounds when using enter and exit, we have to specifically loop
! over the correctly mapped range
!$omp target
do i=3,6
array(i) = array(i) + i
end do
!$omp end target
!$omp target exit data map(from: array(3:6))
print *, array
end program
!CHECK: 10 10 9 12 15 18 10 10 10 10