1! Offloading test checking interaction of an nested derived type member map of 2! a complex number member 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 complex :: j2 10 real(4) :: array_i2(10) 11 real(4) :: array_j2(10) 12 end type bottom_layer 13 14 type :: top_layer 15 real(4) :: i 16 integer(4) :: array_i(10) 17 real(4) :: j 18 type(bottom_layer) :: nested 19 integer, allocatable :: array_j(:) 20 integer(4) :: k 21 complex :: l 22 end type top_layer 23 24 type(top_layer) :: top_dtype 25 26!$omp target map(tofrom: top_dtype%nested%i2, top_dtype%k, top_dtype%nested%j2, top_dtype%nested%array_i2, top_dtype%l) 27 do i = 1, 10 28 top_dtype%nested%array_i2(i) = i * 2 29 end do 30 31 top_dtype%l = (10,20) 32 top_dtype%nested%j2 = (510,210) 33 34 top_dtype%nested%i2 = 30.30 35 top_dtype%k = 74 36!$omp end target 37 38 print *, top_dtype%nested%i2 39 print *, top_dtype%k 40 print *, top_dtype%nested%array_i2 41 print *, top_dtype%l 42 print *, top_dtype%nested%j2 43end program main 44 45!CHECK: 30.299999237060547 46!CHECK: 74 47!CHECK: 2. 4. 6. 8. 10. 12. 14. 16. 18. 20. 48!CHECK: (10.,20.) 49!CHECK: (510.,210.) 50