http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56765
--- Comment #4 from janus at gcc dot gnu.org 2013-03-31 17:35:13 UTC --- Btw, this bug does not require unlimited polymorphism, but also shows up with normal ('limited'?) CLASS definitions: program t_limited implicit none type :: t integer :: i = 0 end type class(t), dimension(:), pointer :: u u => sub() contains function sub() result(r) class(t), dimension(:), pointer :: r type(t), dimension(3), target :: x = t(1) r => x end function end program