! { dg-do compile } ! Test the fix for PR113885, where not only was there a gimplifier ICE ! for a derived type 't' with no components but, with a component, gfortran ! gave wrong results. ! Contributed by David Binderman ! module types type t contains final :: finalize end type t contains pure subroutine finalize(x) type(t), intent(inout) :: x end subroutine finalize end module types subroutine test1(x) use types interface elemental function elem(x) use types type(t), intent(in) :: x type(t) :: elem end function elem end interface type(t) :: x(:) x = elem(x) end subroutine test1 subroutine test2(x) use types interface elemental function elem(x) use types type(t), intent(in) :: x type(t) :: elem end function elem elemental function elem2(x, y) use types type(t), intent(in) :: x, y type(t) :: elem2 end function elem2 end interface type(t) :: x(:) x = elem2(elem(x), elem(x)) end subroutine test2