[Bug fortran/25391] New: Module derived type issue

jakub at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Tue Dec 13 13:40:00 GMT 2005


module mod1
  type t1
    real :: f1
  end type t1
  type t2
    type(t1), pointer :: f2(:)
    real, pointer :: f3(:,:)
  end type t2
end module mod1

module mod2
  use mod1
  type(t1), pointer, save :: v(:)
contains
  subroutine foo (x)
    use mod1
    implicit none
    type(t2) :: x
    integer :: d
    d = size (x%f3, 2)
    v = x%f2(:)
  end subroutine foo
end module mod2

ICEs in fold_convert, because gfortran created two distinct t1 types,
one for the v variable and a different one for x.

I'd say either gfortran should cache somewhere module derived type tree nodes
and reuse them, or it needs a non-default type comparison hook that would
figure which derived types are in fact compatible.


-- 
           Summary: Module derived type issue
           Product: gcc
           Version: 4.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: jakub at gcc dot gnu dot org


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



More information about the Gcc-bugs mailing list