! { dg-do compile } ! ! TS 29113 ! 8.1 Removed restrictions on ISO_C_BINDING module procedures ! ! The function C_F_PROCPOINTER from the intrinsic module ISO_C_BINDING ! has the restriction in ISO/IEC 1539-1:2010 that CPTR and FPTR shall ! not be the C address and interface of a noninteroperable Fortran ! procedure. ! ! [...] ! ! These restrictions are removed. module m use ISO_C_BINDING implicit none ! Declare a non-interoperable Fortran procedure interface. abstract interface function foo (x, y) integer :: foo integer, intent (in) :: x, y end function end interface contains subroutine test (cptr, fptr) type(C_FUNPTR), intent(in) :: cptr procedure (foo), pointer, intent(out) :: fptr call c_f_procpointer (cptr, fptr) end subroutine end module