------- Comment #2 from pault at gcc dot gnu dot org 2007-02-21 10:47 ------- This fixes it:
Index: gcc/fortran/resolve.c =================================================================== *** gcc/fortran/resolve.c (revision 122101) --- gcc/fortran/resolve.c (working copy) *************** resolve_actual_arglist (gfc_actual_argli *** 924,932 **** if (sym->attr.generic) { ! gfc_error ("GENERIC non-INTRINSIC procedure '%s' is not " ! "allowed as an actual argument at %L", sym->name, ! &e->where); } /* If the symbol is the function that names the current (or --- 924,943 ---- if (sym->attr.generic) { ! gfc_interface *p; ! for (p = sym->generic; p; p = p->next) ! if (strcmp (sym->name, p->sym->name) == 0) ! { ! e->symtree = gfc_find_symtree ! (p->sym->ns->sym_root, sym->name); ! sym = p->sym; ! break; ! } ! ! if (p == NULL || e->symtree == NULL) ! gfc_error ("GENERIC non-INTRINSIC procedure '%s' is not " ! "allowed as an actual argument at %L", sym->name, ! &e->where); } /* If the symbol is the function that names the current (or It needs commenting to the effect that a generic that is also a specific is OK. I'd be more than happy if somebody would regtest/submit/commit this one - I cannot for some weeks. Paul -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30870