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

Reply via email to