| ! { dg-do compile} |
| ! |
| ! TS 29113 |
| ! 8.1 Removed restrictions on ISO_C_BINDING module procedures |
| ! |
| ! [...] |
| ! |
| ! The function C_FUNLOC from the intrinsic module ISO_C_BINDING has |
| ! the restriction in ISO/IEC 1539-1:2010 that its argument shall be |
| ! interoperable. |
| ! |
| ! 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 (fptr, cptr) |
| procedure (foo), pointer, intent(in) :: fptr |
| type(C_FUNPTR), intent(out) :: cptr |
| |
| cptr = c_funloc (fptr) |
| end subroutine |
| end module |