https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104649
kargl at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |kargl at gcc dot gnu.org Priority|P3 |P4 --- Comment #2 from kargl at gcc dot gnu.org --- Null pointer dereference. diff --git a/gcc/fortran/decl.cc b/gcc/fortran/decl.cc index bd586e75008..8e2cd511c4d 100644 --- a/gcc/fortran/decl.cc +++ b/gcc/fortran/decl.cc @@ -6730,12 +6730,20 @@ ok: || (p->next == NULL && q->next != NULL)) arg_count_mismatch = true; else if ((p->sym == NULL && q->sym == NULL) - || strcmp (p->sym->name, q->sym->name) == 0) + || (p->sym && q->sym + && strcmp (p->sym->name, q->sym->name) == 0)) continue; else - gfc_error_now ("Mismatch in MODULE PROCEDURE formal " - "argument names (%s/%s) at %C", - p->sym->name, q->sym->name); + { + if (q->sym) + gfc_error_now ("Mismatch in MODULE PROCEDURE formal " + "argument names (%qs/%qs) at %C", + p->sym->name, q->sym->name); + else + gfc_error_now ("Mismatch in MODULE PROCEDURE formal argument " + "name, %qs, and alternate return at %C", + p->sym->name); + } } if (arg_count_mismatch)