2 ! { dg-options "-fdump-tree-original" }
4 ! PR 42647: Missed initialization/dealloc of allocatable scalar DT with allocatable component
6 ! Contributed by Tobias Burnus <burnus@gcc.gnu.org>
10 integer , allocatable
:: a1
13 integer , allocatable
:: a2(:)
17 type(st
), allocatable
:: b1
20 type(st
), allocatable
:: b2(:)
23 type(at
), allocatable
:: b3
26 type(at
), allocatable
:: b4(:)
31 block
! Start new scoping unit as otherwise the vars are implicitly SAVEd
32 type(t1
) :: na1
, a1
, aa1(:)
33 type(t2
) :: na2
, a2
, aa2(:)
34 type(t3
) :: na3
, a3
, aa3(:)
35 type(t4
) :: na4
, a4
, aa4(:)
37 allocatable
:: a1
, a2
, a3
, a4
, aa1
, aa2
, aa3
,aa4
39 if(allocated(a1
)) STOP 1
40 if(allocated(a2
)) STOP 2
41 if(allocated(a3
)) STOP 3
42 if(allocated(a4
)) STOP 4
43 if(allocated(aa1
)) STOP 5
44 if(allocated(aa2
)) STOP 6
45 if(allocated(aa3
)) STOP 7
46 if(allocated(aa4
)) STOP 8
48 if(allocated(na1
%b1
)) STOP 9
49 if(allocated(na2
%b2
)) STOP 10
50 if(allocated(na3
%b3
)) STOP 11
51 if(allocated(na4
%b4
)) STOP 12
55 ! { dg-final { scan-tree-dump-times "__builtin_free" 54 "original" } }