1! { dg-do compile } 2 3! Type-bound procedures 4! Test that the basic syntax for specific bindings is parsed and resolved. 5 6MODULE othermod 7 IMPLICIT NONE 8 9CONTAINS 10 11 SUBROUTINE othersub () 12 IMPLICIT NONE 13 END SUBROUTINE othersub 14 15END MODULE othermod 16 17MODULE testmod 18 USE othermod 19 IMPLICIT NONE 20 21 TYPE t1 22 ! Might be empty 23 CONTAINS 24 PROCEDURE proc1 25 PROCEDURE, PASS(me) :: p2 => proc2 26 END TYPE t1 27 28 TYPE t2 29 INTEGER :: x 30 CONTAINS 31 PRIVATE 32 PROCEDURE, NOPASS, PRIVATE :: othersub 33 PROCEDURE,NON_OVERRIDABLE,PUBLIC,PASS :: proc3 34 END TYPE t2 35 36 TYPE t3 37 CONTAINS 38 ! This might be empty for Fortran 2008 39 END TYPE t3 40 41 TYPE t4 42 CONTAINS 43 PRIVATE 44 ! Empty, too 45 END TYPE t4 46 47CONTAINS 48 49 SUBROUTINE proc1 (me) 50 IMPLICIT NONE 51 CLASS(t1) :: me 52 END SUBROUTINE proc1 53 54 REAL FUNCTION proc2 (x, me) 55 IMPLICIT NONE 56 REAL :: x 57 CLASS(t1) :: me 58 proc2 = x / 2 59 END FUNCTION proc2 60 61 INTEGER FUNCTION proc3 (me) 62 IMPLICIT NONE 63 CLASS(t2) :: me 64 proc3 = 42 65 END FUNCTION proc3 66 67END MODULE testmod 68