This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/42647] Missed initialization/dealloc of allocatable scalar DT with allocatable component
- From: "dominiq at lps dot ens dot fr" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 10 Jan 2010 15:36:53 -0000
- Subject: [Bug fortran/42647] Missed initialization/dealloc of allocatable scalar DT with allocatable component
- References: <bug-42647-13404@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #4 from dominiq at lps dot ens dot fr 2010-01-10 15:36 -------
The patch in comment #1 fixes the test in comment#0, bootstrapped, regtested,
and passed my tests.
I have split the tests in comment#2 and #3 in two:
module m
type st
integer , allocatable :: a1
end type st
type at
integer , allocatable :: a2(:)
end type at
type t1
type(st), allocatable :: b1
end type t1
type t3
type(at), allocatable :: b3
end type t3
end module m
use m
type(t1) :: na1, a1, aa1(:)
type(t3) :: na3, a3, aa3(:)
allocatable :: a1, a3, aa1, aa3
if(allocated(a1)) call abort()
if(allocated(a3)) call abort()
if(allocated(aa1)) call abort()
if(allocated(aa3)) call abort()
if(allocated(na1%b1)) call abort()
if(allocated(na3%b3)) call abort()
print *, 'end'
end
and
module m
type st
integer , allocatable :: a1
end type st
type at
integer , allocatable :: a2(:)
end type at
type t2
type(st), allocatable :: b2(:)
end type t2
type t4
type(at), allocatable :: b4(:)
end type t4
end module m
use m
type(t2) :: na2, a2, aa2(:)
type(t4) :: na4, a4, aa4(:)
allocatable :: a2, a4, aa2, aa4
!if(allocated(a2)) call abort()
!if(allocated(a4)) call abort()
if(allocated(aa2)) call abort()
if(allocated(aa4)) call abort()
if(allocated(na2%b2)) call abort()
if(allocated(na4%b4)) call abort()
print *, 'end'
end
As such, both pass with the patch, while the first one gives a "Segmentation
fault" before the print without the patch (the second pass). If I remove one of
the '!', the test fails with "Segmentation fault" AFTER the print with or
without the patch.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42647