http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58026
--- Comment #4 from janus at gcc dot gnu.org --- Draft patch: Index: gcc/fortran/decl.c =================================================================== --- gcc/fortran/decl.c (revision 201331) +++ gcc/fortran/decl.c (working copy) @@ -4286,12 +4286,10 @@ gfc_match_data_decl (void) || current_ts.u.derived->attr.zero_comp)) goto ok; - /* Now we have an error, which we signal, and then fix up - because the knock-on is plain and simple confusing. */ gfc_error_now ("Derived type at %C has not been previously defined " "and so cannot appear in a derived type definition"); - current_attr.pointer = 1; - goto ok; + m = MATCH_ERROR; + goto cleanup; } ok: