http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59547
--- Comment #3 from janus at gcc dot gnu.org --- The following should be sufficient (regtesting now): Index: gcc/fortran/class.c =================================================================== --- gcc/fortran/class.c (revision 206083) +++ gcc/fortran/class.c (working copy) @@ -721,9 +721,11 @@ add_proc_comp (gfc_symbol *vtype, const char *name if (tb->u.specific) { - c->ts.interface = tb->u.specific->n.sym; + gfc_symbol *ifc = tb->u.specific->n.sym; + c->ts.interface = ifc; if (!tb->deferred) c->initializer = gfc_get_variable_expr (tb->u.specific); + c->attr.pure = ifc->attr.pure; } }