https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89647
Bug ID: 89647 Summary: Host associated procedure unable to be used as binding target Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: ian_harvey at bigpond dot com Target Milestone: --- The following example: MODULE m1 IMPLICIT NONE PUBLIC :: False PUBLIC :: True CONTAINS FUNCTION False() RESULT(b) LOGICAL :: b b = .FALSE. END FUNCTION False FUNCTION True() RESULT(b) LOGICAL :: b b = .TRUE. END FUNCTION True END MODULE m1 MODULE m2 USE m1 IMPLICIT NONE TYPE, ABSTRACT :: t_parent CONTAINS PROCEDURE(False), DEFERRED, NOPASS :: Binding END TYPE t_parent CONTAINS SUBROUTINE s TYPE, EXTENDS(t_parent) :: t_extension CONTAINS PROCEDURE, NOPASS :: Binding => True END TYPE t_extension END SUBROUTINE s END MODULE m2 when compiled with recent trunk (r269545) results in the error: binding.f90:28:15: 28 | PROCEDURE, NOPASS :: Binding => True | 1 Error: ‘true’ must be a module procedure or an external procedure with an explicit interface at (1) `True` is a module procedure, and it is available within the scope of the subroutine by host association.