197403Sobrien! { dg-do compile } 297403Sobrien! 397403Sobrien! PR fortran/38536 497403Sobrien! Accept as argument to C_LOC a subcomponent accessed through a pointer. 597403Sobrien 697403Sobrien USE ISO_C_BINDING 797403Sobrien 897403Sobrien IMPLICIT NONE 997403Sobrien TYPE test3 1097403Sobrien INTEGER, DIMENSION(5) :: b 1197403Sobrien END TYPE test3 1297403Sobrien 1397403Sobrien TYPE test2 1497403Sobrien TYPE(test3), DIMENSION(:), POINTER :: a 1597403Sobrien END TYPE test2 1697403Sobrien 1797403Sobrien TYPE test 1897403Sobrien TYPE(test2), DIMENSION(2) :: c 1997403Sobrien END TYPE test 2097403Sobrien 2197403Sobrien TYPE(test) :: chrScalar 2297403Sobrien TYPE(C_PTR) :: f_ptr 2397403Sobrien TYPE(test3), TARGET :: d(3) 2497403Sobrien 2597403Sobrien 2697403Sobrien chrScalar%c(1)%a => d 2797403Sobrien f_ptr = C_LOC(chrScalar%c(1)%a(1)%b(1)) 2897403Sobrien end 2997403Sobrien 3097403Sobrien