module ice_module
  type::ice_type
     class(ice_type),pointer::next
   contains
     procedure::ice_proc
  end type ice_type
contains
  subroutine ice_proc(this)
    class(ice_type)::this
  end subroutine ice_proc
  subroutine ice_sub()
    type(ice_type),dimension(2)::ice_array
    class(ice_type),pointer::ice_p
    ice_p=>ice_array(2)%next             ! works
    call ice_array(2)%ice_proc()         ! works
    call ice_array(2)%next%ice_proc()    ! ICE
  end subroutine ice_sub
end module ice_module

Compiling this with GNU Fortran (GCC) 4.6.0 20100518 (experimental) will cause
a segmentation violation at compile time.

The two lines with "! works" and ice_p are not relevant, they only show that
the combination of the array, the pointer component and the type bound
procedure is really necessary for the compiler error.


-- 
           Summary: ICE with TBP of pointer component of derived type array
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: boschmann at tp1 dot physik dot uni-siegen dot de


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44211

Reply via email to