! { dg-do compile } ! 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 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 "not allowed as an actual argument" } call s1(x) ! explicit interface call s1(y) ! declared external call s1(z) ! { dg-error "Expected a procedure for argument" } contains integer function w() w = 1 end function w end ! { dg-final { cleanup-modules "m1" } }