! { dg-do compile } ! Type-bound procedures ! Test that the basic syntax for specific bindings is parsed and resolved. MODULE othermod IMPLICIT NONE CONTAINS SUBROUTINE othersub () IMPLICIT NONE END SUBROUTINE othersub END MODULE othermod MODULE testmod USE othermod IMPLICIT NONE TYPE t1 ! Might be empty CONTAINS PROCEDURE proc1 PROCEDURE, PASS(me) :: p2 => proc2 END TYPE t1 TYPE t2 INTEGER :: x CONTAINS PRIVATE PROCEDURE, NOPASS, PRIVATE :: othersub PROCEDURE,NON_OVERRIDABLE,PUBLIC,PASS :: proc3 END TYPE t2 TYPE t3 CONTAINS ! This might be empty for Fortran 2008 END TYPE t3 TYPE t4 CONTAINS PRIVATE ! Empty, too END TYPE t4 CONTAINS SUBROUTINE proc1 (me) IMPLICIT NONE CLASS(t1) :: me END SUBROUTINE proc1 REAL FUNCTION proc2 (x, me) IMPLICIT NONE REAL :: x CLASS(t1) :: me proc2 = x / 2 END FUNCTION proc2 INTEGER FUNCTION proc3 (me) IMPLICIT NONE CLASS(t2) :: me proc3 = 42 END FUNCTION proc3 END MODULE testmod