1! { dg-do compile } 2! 3! PR fortran/38536 4! Accept as argument to C_LOC a subcomponent accessed through a pointer. 5 6 USE ISO_C_BINDING 7 8 IMPLICIT NONE 9 TYPE test3 10 INTEGER, DIMENSION(5) :: b 11 END TYPE test3 12 13 TYPE test2 14 TYPE(test3), DIMENSION(:), POINTER :: a 15 END TYPE test2 16 17 TYPE test 18 TYPE(test2), DIMENSION(2) :: c 19 END TYPE test 20 21 TYPE(test) :: chrScalar 22 TYPE(C_PTR) :: f_ptr 23 TYPE(test3), TARGET :: d(3) 24 25 26 chrScalar%c(1)%a => d 27 f_ptr = C_LOC(chrScalar%c(1)%a(1)%b(1)) 28 end 29 30