! { dg-do compile } ! ! PR 44718: Procedure-pointer name is wrongly regarded as "external procedure" ! ! Contributed by John McFarland MODULE m IMPLICIT NONE CONTAINS FUNCTION func(x) RESULT(y) INTEGER :: x,y y = x *2 END FUNCTION func SUBROUTINE sub(x) INTEGER :: x PRINT*, x END SUBROUTINE sub SUBROUTINE use_func() PROCEDURE(func), POINTER :: f INTEGER :: y f => func y = f(2) END SUBROUTINE use_func SUBROUTINE use_sub() PROCEDURE(sub), POINTER :: f f => sub CALL f(2) END SUBROUTINE use_sub END MODULE m