https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104349
anlauf at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2023-04-03 CC| |anlauf at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from anlauf at gcc dot gnu.org --- The following removal of two very old lines of code remove the ICE and fix an accepts-invalid: diff --git a/gcc/fortran/expr.cc b/gcc/fortran/expr.cc index 7fb33f81788..4b5529d7136 100644 --- a/gcc/fortran/expr.cc +++ b/gcc/fortran/expr.cc @@ -3504,8 +3509,8 @@ check_restricted (gfc_expr *e) || sym->attr.implied_index || sym->attr.flavor == FL_PARAMETER || is_parent_of_current_ns (sym->ns) - || (sym->ns->proc_name != NULL - && sym->ns->proc_name->attr.flavor == FL_MODULE) + // || (sym->ns->proc_name != NULL + // && sym->ns->proc_name->attr.flavor == FL_MODULE) || (gfc_is_formal_arg () && (sym->ns == gfc_current_ns))) { t = true; Before, we would have silently accepted module m character(n), parameter :: c = 'b' ! accepts invalid end This change needs adjustment of the diagnostics for testcase gfortran.dg/der_charlen_1.f90