1! { dg-do compile } 2! { dg-options "-Wc-binding-type" } 3! { dg-require-visibility "" } 4! This should compile, though there is a warning about the type of len 5! (return variable of strlen()) for being implicit. 6! PR fortran/32797 7! 8MODULE ISO_C_UTILITIES 9 USE ISO_C_BINDING 10 implicit none 11 CHARACTER(C_CHAR), DIMENSION(1), SAVE, TARGET, PRIVATE :: dummy_string="?" 12CONTAINS 13 FUNCTION C_F_STRING(CPTR) RESULT(FPTR) 14 use, intrinsic :: iso_c_binding 15 TYPE(C_PTR), INTENT(IN) :: CPTR ! The C address 16 CHARACTER(KIND=C_CHAR), DIMENSION(:), POINTER :: FPTR 17 INTERFACE 18 FUNCTION strlen(string) RESULT(len) BIND(C,NAME="strlen") ! { dg-warning "Implicitly declared" } 19 USE ISO_C_BINDING 20 TYPE(C_PTR), VALUE :: string ! A C pointer 21 END FUNCTION 22 END INTERFACE 23 CALL C_F_POINTER(FPTR=FPTR, CPTR=CPTR, SHAPE=[strlen(CPTR)]) 24 END FUNCTION 25END MODULE ISO_C_UTILITIES 26