1! Offloading test checking interaction of an explicit derived type member 2! mapping of two arrays with explicit bounds when mapped to target 3! REQUIRES: flang, amdgpu 4 5! RUN: %libomptarget-compile-fortran-run-and-check-generic 6program main 7 type :: scalar_array 8 real(4) :: break_0 9 integer(4) :: array_x(3,3,3) 10 real(4) :: break_1 11 integer(4) :: array_y(3,3,3) 12 real(4) :: break_3 13 end type scalar_array 14 15 type(scalar_array) :: scalar_arr 16 17 do i = 1, 3 18 do j = 1, 3 19 do k = 1, 3 20 scalar_arr%array_x(i, j, k) = 42 21 scalar_arr%array_y(i, j, k) = 0 ! Will get overwritten by garbage values in target 22 end do 23 end do 24 end do 25 26 !$omp target map(tofrom:scalar_arr%array_x(1:3, 1:3, 2:2), scalar_arr%array_y(1:3, 1:3, 1:3)) 27 do j = 1, 3 28 do k = 1, 3 29 scalar_arr%array_y(k, j, 2) = scalar_arr%array_x(k, j, 2) 30 end do 31 end do 32 !$omp end target 33 34 print *, scalar_arr%array_y 35end program main 36 37!CHECK: 0 0 0 0 0 0 0 0 0 42 42 42 42 42 42 42 42 42 0 0 0 0 0 0 0 0 38