3 ! Type-bound procedures
4 ! Check for errors with calls to GENERIC bindings and their module IO.
12 PROCEDURE, NOPASS :: func_int
13 PROCEDURE, NOPASS :: sub_int
14 GENERIC :: func => func_int
15 GENERIC :: sub => sub_int
18 TYPE, EXTENDS(supert) :: t
20 PROCEDURE, NOPASS :: func_real
21 GENERIC :: func => func_real
26 INTEGER FUNCTION func_int (x)
32 INTEGER FUNCTION func_real (x)
35 func_real = INT(x * 4.2)
36 END FUNCTION func_real
38 SUBROUTINE sub_int (x)
41 END SUBROUTINE sub_int
53 WRITE (*,*) myobj%func (1)
54 WRITE (*,*) myobj%func (2.5)
57 CALL myobj%sub (2.5) ! { dg-error "no matching specific binding" }
58 WRITE (*,*) myobj%func ("hello") ! { dg-error "no matching specific binding" }
59 CALL myobj%func (2.5) ! { dg-error "SUBROUTINE" }
60 WRITE (*,*) myobj%sub (1) ! { dg-error "FUNCTION" }
64 ! { dg-final { cleanup-modules "m" } }