! { dg-do compile } ! PR 55593 - bogus error with generic subroutines module foo implicit none interface sub subroutine sub2(i) integer, intent(in) :: i end subroutine sub2 subroutine sub(i) integer, dimension(:), intent(out) :: i end subroutine sub end interface sub interface tub2 subroutine tub2(i) integer, intent(in) :: i end subroutine tub2 subroutine tub(i) integer, dimension(:), intent(out) :: i end subroutine tub end interface tub2 interface func integer function ifunc(i) integer, intent(in) :: i end function ifunc integer function func(i) integer, intent(in) :: i(:) end function func end interface func interface igunc integer function igunc(i) integer, intent(in) :: i end function igunc integer function gunc(i) integer, intent(in) :: i(:) end function gunc end interface igunc end module foo program main use foo implicit none integer :: i do i=1,10 call sub(i) call tub2(i) end do do i=1,10 print *,func(i) print *,igunc(i) end do do undeclared=1,10 ! { dg-error "has no IMPLICIT type" } call sub(undeclared) end do end program main ! { dg-final { cleanup-modules "foo" } }