Index: gcc/fortran/resolve.c =================================================================== --- gcc/fortran/resolve.c (revision 201034) +++ gcc/fortran/resolve.c (working copy) @@ -4908,7 +4908,10 @@ for (formal = entry->sym->formal; formal; formal = formal->next) { if (formal->sym && sym->name == formal->sym->name) - seen = true; + { + seen = true; + break; + } } /* If it has not been seen as a dummy, this is an error. */