3 ! Type-bound procedures
4 ! Check correct type-bound operator definitions.
12 PROCEDURE, PASS :: onearg
13 PROCEDURE, PASS :: twoarg1
14 PROCEDURE, PASS :: twoarg2
15 PROCEDURE, PASS(me) :: assign_proc
17 GENERIC :: OPERATOR(.BINARY.) => twoarg1, twoarg2
18 GENERIC :: OPERATOR(.UNARY.) => onearg
19 GENERIC :: ASSIGNMENT(=) => assign_proc
24 INTEGER FUNCTION onearg (me)
25 CLASS(t), INTENT(IN) :: me
29 INTEGER FUNCTION twoarg1 (me, a)
30 CLASS(t), INTENT(IN) :: me
31 INTEGER, INTENT(IN) :: a
35 INTEGER FUNCTION twoarg2 (me, a)
36 CLASS(t), INTENT(IN) :: me
41 SUBROUTINE assign_proc (me, b)
42 CLASS(t), INTENT(OUT) :: me
43 LOGICAL, INTENT(IN) :: b
45 END SUBROUTINE assign_proc
49 ! { dg-final { cleanup-modules "m" } }