xref: /llvm-project/offload/test/offloading/fortran/target-map-nested-dtype-single-member.f90 (revision 372344995568cae076477a8b0e98fcdec7c49379)
1! Offloading test checking interaction of an single explicit member map from a
2! nested derived type.
3! REQUIRES: flang, amdgpu
4
5! RUN: %libomptarget-compile-fortran-run-and-check-generic
6program main
7    type :: bottom_layer
8      real(8) :: i2
9      real(4) :: array_i2(10)
10      real(4) :: array_j2(10)
11    end type bottom_layer
12
13    type :: top_layer
14      real(4) :: i
15      integer(4) :: array_i(10)
16      real(4) :: j
17      type(bottom_layer) :: nested
18      integer, allocatable :: array_j(:)
19      integer(4) :: k
20    end type top_layer
21
22    type(top_layer) :: top_dtype
23
24!$omp target map(tofrom: top_dtype%nested%array_i2)
25    do i = 1, 10
26      top_dtype%nested%array_i2(i) = i * 2
27    end do
28!$omp end target
29
30  print *, top_dtype%nested%array_i2
31end program main
32
33!CHECK: 2. 4. 6. 8. 10. 12. 14. 16. 18. 20.
34