! { dg-do run } ! { dg-additional-options "-fdump-tree-original" } ! PR 94109 ! This used to leak memory. Test case by Antony Lewis. module debug implicit none Type Tester real, dimension(:), allocatable :: Dat, Dat2 end Type Type TestType2 Type(Tester) :: T end type TestType2 contains subroutine Leaker class(TestType2), pointer :: ActiveState Type(Tester) :: Temp allocate(Temp%Dat2(10000)) allocate(TestType2::ActiveState) ActiveState%T = Temp deallocate(ActiveState) end subroutine end module program run use debug call Leaker() end program ! { dg-final { scan-tree-dump-times "__builtin_free\\ \\(ptr2" 4 "original" } }