[Bug fortran/100440] allocated() gives True for unallocated variable
David.Smith at lmu dot edu
gcc-bugzilla@gcc.gnu.org
Mon Jul 26 16:45:50 GMT 2021
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100440
--- Comment #13 from David.Smith at lmu dot edu ---
Thanks for working on the bug I reported in May.
I am hoping you can give me some information that I can pass on to
the users of my open-source software who use gfortran to run it.
Can you estimate when the fix will appear in an official release
of gfortran, and what version number to look for?
Thanks,
David Smith
________________________________________
From: anlauf at gcc dot gnu.org <gcc-bugzilla@gcc.gnu.org>
Sent: Tuesday, May 11, 2021 1:23 PM
To: Smith, David
Subject: [Bug fortran/100440] allocated() gives True for unallocated variable
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100440
--- Comment #12 from anlauf at gcc dot gnu.org ---
A small variation of the testcase in comment#9 suggests that there are
actually two underlying issues: lack of initialization and a missing
temporary.
program p
implicit none
type fm
real, allocatable :: mp(:)
integer :: dummy = 42
end type
type(fm), allocatable :: a(:), b(:)
integer :: n = 1
allocate (a(n))
print *, "main:", n, allocated (a(n)% mp), a(n)% dummy
b = mm (a)
a = mm (b)
a = mm (a)
a = mm (a) ! crashes here with -fsanitize=address
contains
function mm (ma)
type(fm), intent(in) :: ma(:)
type(fm) :: mm(size(ma))
integer :: i
! type(fm) :: z(size(ma))
! mm = z ! Explicit initialization of function result
do i = 1, size(ma)
print *, "in mm:", i, allocated (mm(i)% mp), mm(i)% dummy
end do
end function mm
end program p
This gives:
main: 1 F 42
in mm: 1 F 0
in mm: 1 F 42
in mm: 1 F 0
in mm: 1 T 0
while with -fsanitize=address,undefined :
main: 1 F 42
in mm: 1 F -1094795586
in mm: 1 F 42
in mm: 1 T -1094795586
in mm: 1 T -1094795586
Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
Backtrace for this error:
#0 0x14987da6f49f in ???
[...]
#6 0x409669 in p
at /home/anlauf/gcc-bugs/pr100440-red3.f90:14
#7 0x4097d9 in main
at /home/anlauf/gcc-bugs/pr100440-red3.f90:14
--
You are receiving this mail because:
You reported the bug.
More information about the Gcc-bugs
mailing list