http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58026
--- Comment #11 from janus at gcc dot gnu.org --- Further reduced test case for the error recovery: type sysmtx_t type(ext_complex_t), allocatable :: S(:) end type end Trunk (and 4.4 - 4.8) yield: c3.f90:3.40: type(ext_complex_t), allocatable :: S(:) 1 Error: Derived type at (1) has not been previously defined and so cannot appear in a derived type definition c3.f90:3.45: type(ext_complex_t), allocatable :: S(:) 1 Error: The pointer component 's' of 'sysmtx_t' at (1) is a type that has not been declared With the patch in comment 4 the second error, which is bogus, is removed.