https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85042
Bug ID: 85042 Summary: Empty derived type allocation ICE Product: gcc Version: 7.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: brichardson at structint dot com Target Milestone: --- Given an empty, abstract derived type, and an empty derived type which extends from it, trying to assign to an allocatable variable of the abstract class causes the compiler to segfault. The bug can be reproduced using the following code and commands. the_types_m.f90 module the_types_m implicit none private type, public, abstract :: Abst_t end type Abst_t type, public, extends(Abst_t) :: Derived_t end type Derived_t public :: Derived contains pure function Derived() type(derived_t) :: Derived Derived = Derived_t() end function Derived end module the_types_m cause_sefault.f90 module cause_segfault use the_types_m, only: Abst_t, Derived implicit none contains subroutine the_problem class(Abst_t), allocatable :: var var = Derived() end subroutine the_problem end module cause_segfault compile commands gfortran -c the_types_m.f90 gfortran -c cause_segfault.f90 cause_segfault.f90:10:0: var = Derived() internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <file:///usr/share/doc/gcc-7/README.Bugs> for instructions.