[Bug fortran/87937] New: [8/9 Regression] LHS reallocation broken inside "select type"
tomastrnka at gmx dot com
gcc-bugzilla@gcc.gnu.org
Thu Nov 8 11:21:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87937
Bug ID: 87937
Summary: [8/9 Regression] LHS reallocation broken inside
"select type"
Product: gcc
Version: 8.2.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: tomastrnka at gmx dot com
Target Milestone: ---
The fix for pr85954 broke LHS reallocation inside "select type" blocks. The
following program segfaults with current 8.2 branch (including the system
compiler 8.2.1 20181011 on my Fedora 29):
program lhsalloc
type, abstract :: A
real, allocatable :: x(:)
end type
type, extends(A) :: B
end type
class(A), allocatable :: t
real :: y(4)
y = 1
allocate(B::t)
select type (t)
type is (B)
t%x = y
end select
write(*,*) allocated(t%x)
end program
The code to allocate t%x is simply never generated.
Partially reverting the offending change by removing these two lines from
gfc_is_reallocatable_lhs fixes the issue:
if (sym->attr.associate_var)
return false;
Although pr87625 sounds related, its fix doesn't help here because the
associate_var check comes earlier.
More information about the Gcc-bugs
mailing list