https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103507

kargl at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kargl at gcc dot gnu.org

--- Comment #2 from kargl at gcc dot gnu.org ---
This patch prevents the ICE, but is not as elegant as I would like.

diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index f074a0ab3a1..08f657407da 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -17553,6 +17553,14 @@ gfc_resolve (gfc_namespace *ns)
   code_stack *old_cs_base;
   struct gfc_omp_saved_state old_omp_state;

+  if (!ns)
+    {
+      int ecnt;
+      gfc_get_errors (NULL, &ecnt);
+      if (ecnt > 0)
+       gfc_fatal_error ("Namespace corruption due to previous errors");
+    }
+
   if (ns->resolved)
     return;

The problem seems to be with one of more namespaces being
incomplete and/or overlapping.

Reply via email to