This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug fortran/54874] OOP: polymorphic allocation with SOURCE


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]