https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65223
--- Comment #5 from Dominique d'Humieres <dominiq at lps dot ens.fr> --- The patch --- ../_clean/gcc/fortran/resolve.c 2015-10-07 02:32:16.000000000 +0200 +++ gcc/fortran/resolve.c 2015-10-10 17:01:17.000000000 +0200 @@ -415,7 +415,7 @@ resolve_formal_arglist (gfc_symbol *proc } /* F08:C1278a. */ - if (sym->ts.type == BT_CLASS && sym->attr.intent == INTENT_OUT) + if ( !gfc_notification_std (GFC_STD_F2008) && sym->ts.type == BT_CLASS && sym->attr.intent == INTENT_OUT) { gfc_error ("INTENT(OUT) argument %qs of pure procedure %qs at %L" " may not be polymorphic", sym->name, proc->name, allows the code to compile with -std=f2003.