! { dg-do compile } ! { dg-compile-aux-modules "pr114535iv.f90" } ! Contributed by Andrew Benson ! module d implicit none contains function en() result(dd) use :: iv implicit none type(vs) :: dd dd%i = 1 end function en end module d ! Delete line 1 and all brands complain that 'vs' is an undefined type. ! Delete lines 1 and line 2 recreates the original problem. module ni implicit none contains subroutine iss1() ! use :: iv ! line 1 use :: d implicit none ! type(vs) :: ans; ans = en(); ! line 2 end subroutine iss1 subroutine iss2() use :: d implicit none end subroutine iss2 end module ni ! Used to give an ICE: in gfc_trans_call, at fortran/trans-stmt.cc:400 use ni use iv type(vs) :: x call iss1() call iss1() if ((ctr .eq. 0) .or. (ctr .ne. 6)) stop 1 ! Depends whether lines 1 & 2 are present call iss2() x = vs(42) if ((ctr .eq. 1) .or. (ctr .ne. 7)) stop 2 ! Make sure destructor available here end