! Offload test that ensures defaultmap(tofrom: scalar) does not suppress ! implicit default mapper generation for allocatable derived types. ! REQUIRES: flang, amdgpu ! RUN: %libomptarget-compile-fortran-run-and-check-generic program defaultmap_implicit_mapper implicit none type :: payload_t integer, allocatable :: arr(:) end type payload_t type(payload_t), allocatable :: obj integer, parameter :: n = 8 integer :: i integer :: scalar logical :: ok allocate(obj) allocate(obj%arr(n)) obj%arr = 1 scalar = 2 !$omp target defaultmap(tofrom: scalar) do i = 1, n obj%arr(i) = obj%arr(i) + scalar end do scalar = 7 !$omp end target ok = .true. do i = 1, n if (obj%arr(i) /= 3) ok = .false. end do if (scalar /= 7) ok = .false. if (ok) then print *, "Test passed!" else print *, "Test failed!" print *, obj%arr print *, scalar end if deallocate(obj%arr) deallocate(obj) end program defaultmap_implicit_mapper ! CHECK: Test passed!