http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54756
--- Comment #4 from janus at gcc dot gnu.org 2012-11-06 17:58:36 UTC --- Draft patch: Index: gcc/fortran/resolve.c =================================================================== --- gcc/fortran/resolve.c (revision 193224) +++ gcc/fortran/resolve.c (working copy) @@ -419,6 +419,16 @@ resolve_formal_arglist (gfc_symbol *proc) &sym->declared_at); } } + + /* F08:C1278a. */ + if (sym->ts.type == BT_CLASS && sym->attr.intent == INTENT_OUT + && (gfc_option.allow_std & GFC_STD_F2008) != 0) + { + gfc_error ("INTENT(OUT) argument '%s' of pure procedure '%s' " + "at %L may not be polymorphic in Fortran 2008", + sym->name, proc->name, &sym->declared_at); + continue; + } } if (proc->attr.implicit_pure) Unfortunately, we cannot use 'gfc_notify_std' here (or we would need to add something like GFC_STD_F2008_DEL, although this is not officially a 'deleted feature', I guess). So, we could just go with the above, or alternatively reject it regardless of the chosen standard. This 'feature' probably counts as an 'oversight' which was missed in F03 and added to F08 only in a corrigendum.