! { dg-do compile } ! PR 18197: Check that dummy functions with RESULT variable and dimension works. module innerfun contains function f(n,x) result(y) integer, intent(in) :: n real, dimension(:), intent(in) :: x real, dimension(n) :: y y = 1 end function f end module innerfun module outerfun contains subroutine foo(n,funname) integer, intent(in) :: n real, dimension(n) :: y real, dimension(2) :: x interface function funname(n,x) result(y) integer, intent(in) :: n real, dimension(:), intent(in) :: x real, dimension(n) :: y end function funname end interface y = funname(n, (/ 0.2, 0.3 /) ) end subroutine foo end module outerfun program test use outerfun use innerfun call foo(3,f) end program test ! { dg-final { cleanup-modules "innerfun outerfun" } }