46 lines
735 B
Fortran
46 lines
735 B
Fortran
! { dg-do run }
|
|
! { dg-output "Super(\n|\r\n|\r).*Sub" }
|
|
|
|
! Type-bound procedures
|
|
! Check for calling right overloaded procedure.
|
|
|
|
MODULE m
|
|
IMPLICIT NONE
|
|
|
|
TYPE supert
|
|
CONTAINS
|
|
PROCEDURE, NOPASS :: proc => proc_super
|
|
END TYPE supert
|
|
|
|
TYPE, EXTENDS(supert) :: subt
|
|
CONTAINS
|
|
PROCEDURE, NOPASS :: proc => proc_sub
|
|
END TYPE subt
|
|
|
|
CONTAINS
|
|
|
|
SUBROUTINE proc_super ()
|
|
IMPLICIT NONE
|
|
WRITE (*,*) "Super"
|
|
END SUBROUTINE proc_super
|
|
|
|
SUBROUTINE proc_sub ()
|
|
IMPLICIT NONE
|
|
WRITE (*,*) "Sub"
|
|
END SUBROUTINE proc_sub
|
|
|
|
END MODULE m
|
|
|
|
PROGRAM main
|
|
USE m
|
|
IMPLICIT NONE
|
|
|
|
TYPE(supert) :: super
|
|
TYPE(subt) :: sub
|
|
|
|
CALL super%proc
|
|
CALL sub%proc
|
|
END PROGRAM main
|
|
|
|
! { dg-final { cleanup-modules "m" } }
|