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 type(t1
) :: na1
, a1
, aa1(:)
32 type(t2
) :: na2
, a2
, aa2(:)
33 type(t3
) :: na3
, a3
, aa3(:)
34 type(t4
) :: na4
, a4
, aa4(:)
35 allocatable
:: a1
, a2
, a3
, a4
, aa1
, aa2
, aa3
,aa4
37 if(allocated(a1
)) call abort()
38 if(allocated(a2
)) call abort()
39 if(allocated(a3
)) call abort()
40 if(allocated(a4
)) call abort()
41 if(allocated(aa1
)) call abort()
42 if(allocated(aa2
)) call abort()
43 if(allocated(aa3
)) call abort()
44 if(allocated(aa4
)) call abort()
46 if(allocated(na1
%b1
)) call abort()
47 if(allocated(na2
%b2
)) call abort()
48 if(allocated(na3
%b3
)) call abort()
49 if(allocated(na4
%b4
)) call abort()
52 ! { dg-final { scan-tree-dump-times "__builtin_free" 32 "original" } }
53 ! { dg-final { cleanup-tree-dump "original" } }
55 ! { dg-final { cleanup-modules "m" } }