MODULE BUG_MODULE

  TYPE::A_TYPE
  END TYPE A_TYPE

  TYPE,EXTENDS(A_TYPE)::B_TYPE
     TYPE(A_TYPE),DIMENSION(:),ALLOCATABLE::A_LIST
  END TYPE B_TYPE

  TYPE::C_TYPE
     TYPE(B_TYPE),DIMENSION(:),ALLOCATABLE::B_LIST
   CONTAINS
     PROCEDURE::DO_SOMETHING
  END TYPE C_TYPE

CONTAINS

  SUBROUTINE DO_SOMETHING(DTV)
    CLASS(C_TYPE) :: DTV
    CLASS(A_TYPE),POINTER::A_POINTER
    SELECT TYPE(A_POINTER)
    TYPE IS (B_TYPE)
       DTV%B_LIST(1)=A_POINTER
    END SELECT
  END SUBROUTINE DO_SOMETHING

END MODULE BUG_MODULE

GNU Fortran (GCC) 4.6.0 20100921 (experimental)
gfortran -c BUG_MODULE.f03
BUG_MODULE.f03: In Funktion »do_something«:
BUG_MODULE.f03:23:0: interner Compiler-Fehler: in fold_convert_loc, bei
fold-const.c:2021


-- 
           Summary: [OOP] ICE in fold_convert_loc: pointer to allocatable
                    array with select type
           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=45746

Reply via email to