[Bug fortran/48351] New: [OOP] Realloc on assignment fails if parent component is CLASS
burnus at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Mar 30 06:51:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48351
Summary: [OOP] Realloc on assignment fails if parent component
is CLASS
Product: gcc
Version: 4.6.0
Status: UNCONFIRMED
Keywords: wrong-code
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: burnus@gcc.gnu.org
CC: janus@gcc.gnu.org
http://groups.google.com/group/comp.lang.fortran/browse_thread/thread/b7a36eba5ef7f68b
by Nasser M. Abbasi
In the following program "%u" is allocatable. For
this%u = u
the LHS should be allocated, but this only happens if "this" is a TYPE and not
a CLASS - but that should be completely unrelated to (re)alloc on assignment.
The program works with ifort 11.1.
module foo
implicit none
type :: foo_t
! private
DOUBLE PRECISION , ALLOCATABLE :: u(:)
contains
PROCEDURE :: make ! or procedure, pass, same effect
end type foo_t
contains
subroutine make(this,u)
implicit none
CLASS(foo_t) :: this
DOUBLE PRECISION, intent(in) :: u(:) ! must be CLASS
! allocate(this%u(size(u))) ! Must allocate now, else crash
this%u = u
end subroutine make
end module foo
program main2
use foo
implicit none
TYPE(foo_t) :: o
DOUBLE PRECISION , ALLOCATABLE :: u(:)
u=[1,2,3,4]
CALL o%make(u)
print *, o%u
end program main2
More information about the Gcc-bugs
mailing list