The compiler warns that in the function "resolve_function" of resolve.c:, the variable "name" might be used unintialized. I think gcc is right.
Name is initialized with: if (!pure_function (expr, &name) && name) and later used without extra if(name) in: if (expr->value.function.esym && !expr->value.function.esym->attr.recursive) { gfc_symbol *esym, *proc; esym = expr->value.function.esym; proc = gfc_current_ns->proc_name; if (esym == proc) { gfc_error ("Function '%s' at %L cannot call itself, as it is not " "RECURSIVE", name, &expr->where); t = FAILURE; } if (esym->attr.entry && esym->ns->entries && proc->ns->entries && esym->ns->entries->sym == proc->ns->entries->sym) { gfc_error ("Call to ENTRY '%s' at %L is recursive, but function " "'%s' is not declared as RECURSIVE", esym->name, &expr->where, esym->ns->entries->sym->name); t = FAILURE; } } -- Summary: compiler warning in resolve.c: possibly uninitialized use of name Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: minor Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: burnus at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30549