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

anlauf at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2022-01-24
           Priority|P3                          |P4
                 CC|                            |anlauf at gcc dot gnu.org
     Ever confirmed|0                           |1

--- Comment #1 from anlauf at gcc dot gnu.org ---
Confirmed.

We hit an assert which can be replaced by an error message, such as:

diff --git a/gcc/fortran/expr.cc b/gcc/fortran/expr.cc
index ed82a94022f..78f21c24f43 100644
--- a/gcc/fortran/expr.cc
+++ b/gcc/fortran/expr.cc
@@ -1718,7 +1718,12 @@ find_array_section (gfc_expr *expr, gfc_ref *ref)
        }

       cons = gfc_constructor_lookup (base, limit);
-      gcc_assert (cons);
+      if (cons == NULL)
+       {
+         gfc_error ("Bad array constructor at %L", &ref->u.ar.where);
+         t = false;
+         goto cleanup;
+       }
       gfc_constructor_append_expr (&expr->value.constructor,
                                   gfc_copy_expr (cons->expr), NULL);
     }

Reply via email to