blob: 3c49de3715221c76c08674c68c9ab27d22e6fdfb [file] [log] [blame]
! { 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