http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46344
--- Comment #4 from janus at gcc dot gnu.org 2010-11-07 13:16:29 UTC --- Here's a variant: module m type t1 end type type t2 class(t1), allocatable :: cc end type class(t2), allocatable :: sm end module m program p use m implicit none type(t2), allocatable :: x(:) allocate(x(1)) end program p (Same ICE.)