! { dg-do run } ! reduced testcase from PR 17740 module FOO interface BAR module procedure BAR2 end interface contains elemental integer function BAR2(X) integer, intent(in) :: X BAR2 = X end function subroutine BAZ(y,z) integer :: Y(3), Z(3) Z = BAR(Y) end subroutine end module use foo integer :: y(3), z(3) y = (/1,2,3/) call baz(y,z) if (any (y /= z)) call abort () end ! { dg-final { cleanup-modules "FOO" } }