[Bug fortran/57696] New: Defined assignment for components not used when those are ALLOCATABLE
burnus at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Jun 24 10:15:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57696
Bug ID: 57696
Summary: Defined assignment for components not used when those
are ALLOCATABLE
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Keywords: wrong-code
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: burnus at gcc dot gnu.org
CC: pault at gcc dot gnu.org
The following prints
42
42
with gfortran and
42
20
with crayftn. Thus, gfortran does not use defined assignment - but it should.
Note: If "right%foo" is not allocated, the code segfaults with crayftn.
module m0
implicit none
type component
integer :: i = 42
contains
procedure :: assign0
generic :: assignment(=) => assign0
end type
type parent
type(component), allocatable :: foo
end type
contains
elemental subroutine assign0(lhs,rhs)
class(component), intent(INout) :: lhs
class(component), intent(in) :: rhs
lhs%i = 20
end subroutine
end module
program main
use m0
implicit none
type(parent) :: left, right
allocate(right%foo)
print *, right%foo
left = right
print *, left%foo
end
More information about the Gcc-bugs
mailing list