! Test implicit mapping of alloctable record fields. ! REQUIRES: flang, amdgpu ! This fails only because it needs the Fortran runtime built for device. If this ! is available, this test succeeds when run. ! XFAIL: * ! RUN: %libomptarget-compile-fortran-generic ! RUN: env LIBOMPTARGET_INFO=16 %libomptarget-run-generic 2>&1 | %fcheck-generic program test_implicit_field_mapping implicit none type record_t real, allocatable :: not_to_implicitly_map(:) real, allocatable :: to_implicitly_map(:) end type type(record_t) :: dst_record real :: src_array(10) real :: dst_sum, src_sum integer :: i call random_number(src_array) dst_sum = 0 src_sum = 0 do i=1,10 src_sum = src_sum + src_array(i) end do print *, "src_sum=", src_sum !$omp target map(from: dst_sum) dst_record%to_implicitly_map = src_array dst_sum = 0 do i=1,10 dst_sum = dst_sum + dst_record%to_implicitly_map(i) end do !$omp end target print *, "dst_sum=", dst_sum if (src_sum == dst_sum) then print *, "Test succeeded!" else print *, "Test failed!", " dst_sum=", dst_sum, "vs. src_sum=", src_sum endif end program ! CHECK: "PluginInterface" device {{[0-9]+}} info: Launching kernel {{.*}} ! CHECK: Test succeeded!