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

Reply via email to