! { dg-do compile } ! { dg-options "-std=f2003" } ! Test the patch for PR25098, where passing a variable as an ! actual argument to a formal argument that is a procedure ! went undiagnosed. ! ! Based on contribution by Joost VandeVondele ! integer function y() y = 1 end integer function z() z = 1 end module m1 contains subroutine s1(f) interface function f() integer f end function f end interface end subroutine s1 subroutine s2(x) integer :: x end subroutine end module m1 use m1 external y interface function x() integer x end function x end interface integer :: i, y, z i=1 call s1(i) ! { dg-error "Expected a procedure for argument" } call s1(w) ! { dg-error "used as actual argument" } call s1(x) ! explicit interface call s1(y) ! declared external call s1(z) ! { dg-error "Expected a procedure for argument" } call s2(x) ! { dg-error "Invalid procedure argument" } contains integer function w() w = 1 end function w end