1! { dg-do compile }
2! { dg-options "-fdump-tree-original" }
3!
4! PR 80121: Memory leak with derived-type intent(out) argument
5!
6! Contributed by Andrew Wood <andrew@fluidgravity.co.uk>
7
8PROGRAM p
9    IMPLICIT NONE
10    TYPE t1
11      INTEGER, ALLOCATABLE :: i(:)
12    END TYPE
13    call leak
14  CONTAINS
15    SUBROUTINE s1(e)
16      TYPE(t1), ALLOCATABLE, INTENT(OUT) :: e(:)
17      ALLOCATE( e(1) )
18      ALLOCATE( e(1)%i(2) )
19    END SUBROUTINE
20    SUBROUTINE leak
21      TYPE(t1), ALLOCATABLE :: e(:)
22      CALL s1(e)
23      CALL s1(e)
24    END SUBROUTINE
25END PROGRAM
26
27! { dg-final { scan-tree-dump-times "__builtin_free" 6 "original" } }
28