https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107707
kargl at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 CC| |kargl at gcc dot gnu.org Last reconfirmed| |2022-11-15 Priority|P3 |P4 Status|UNCONFIRMED |NEW --- Comment #1 from kargl at gcc dot gnu.org --- Another example of why -fmax-errors=1 should be the default. A run-on warning triggers tried to get a gmp value from a BT_REAL entity. Fixed by diff --git a/gcc/fortran/interface.cc b/gcc/fortran/interface.cc index d3e199535b3..ce68d863fdf 100644 --- a/gcc/fortran/interface.cc +++ b/gcc/fortran/interface.cc @@ -3271,10 +3271,14 @@ gfc_compare_actual_formal (gfc_actual_arglist **ap, gfc_formal_arglist *formal, and assumed-shape dummies, the string length needs to match exactly. */ if (a->expr->ts.type == BT_CHARACTER - && a->expr->ts.u.cl && a->expr->ts.u.cl->length + && a->expr->ts.u.cl + && a->expr->ts.u.cl->length + && a->expr->ts.u.cl->length->ts.type == BT_INTEGER && a->expr->ts.u.cl->length->expr_type == EXPR_CONSTANT - && f->sym->ts.type == BT_CHARACTER && f->sym->ts.u.cl + && f->sym->ts.type == BT_CHARACTER + && f->sym->ts.u.cl && f->sym->ts.u.cl->length + && f->sym->ts.u.cl->length->ts.type == BT_INTEGER && f->sym->ts.u.cl->length->expr_type == EXPR_CONSTANT && (f->sym->attr.pointer || f->sym->attr.allocatable || (f->sym->as && f->sym->as->type == AS_ASSUMED_SHAPE))