! { dg-do compile } ! ! PR fortran/51809 ! ! Contributed by Kacper Kowalik ! module foo implicit none type foo_t contains procedure :: func_foo end type foo_t contains subroutine func_foo(this) implicit none class(foo_t), intent(in) :: this end subroutine func_foo end module foo module bar use foo, only: foo_t implicit none type, extends(foo_t) :: bar_t contains procedure :: func_bar end type bar_t contains subroutine func_bar(this) use foo, only: foo_t ! <--- removing this line also fixes ICE implicit none class(bar_t), intent(in) :: this end subroutine func_bar end module bar module merry_ICE use foo, only: foo_t ! <------ change order to prevent ICE use bar, only: bar_t ! <------ change order to prevent ICE end module merry_ICE