| ! { 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" } } |