This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/54874] OOP: polymorphic allocation with SOURCE
- From: "sfilippone at uniroma2 dot it" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 09 Oct 2012 10:02:41 +0000
- Subject: [Bug fortran/54874] OOP: polymorphic allocation with SOURCE
- Auto-submitted: auto-generated
- References: <bug-54874-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54874
--- Comment #1 from Salvatore Filippone <sfilippone at uniroma2 dot it> 2012-10-09 10:02:41 UTC ---
Interestingly, taking out the outer container p% makes the code work...
-------------------------------------------------------------------
[sfilippo@jacobi bug34]$ gfortran -o poywork polywork.f90
[sfilippo@jacobi bug34]$ ./poywork
level 1
New inner descr
level 1
New inner descr
level 2
New inner descr
level 1
New inner descr
level 2
New inner descr
level 3
New inner descr
level 1
New inner descr
level 2
New inner descr
level 3
New inner descr
level 4
Base inner descr
------------------------------------------------------
program testsource
use testmod
type(level), allocatable :: vect(:)
class(outer), allocatable :: outvar1, outvar2
integer :: i,j,k,n,info
n = 4
allocate(outer :: outvar1)
allocate(outer :: outvar2)
allocate(new_inner :: outvar1%var)
allocate(inner :: outvar2%var)
allocate(vect(n))
do i=1, n
if (i<n) then
allocate(vect(i)%outvar,source=outvar1)
else
allocate(vect(i)%outvar,source=outvar2)
end if
write(0,*)
do k=1,i
write(0,*) 'level ',k
call vect(k)%outvar%var%descr()
end do
end do
end program testsourc