[Bug fortran/77667] ICE in expand_call, at calls.c:2588

anlauf at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Jan 4 21:49:56 GMT 2022


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

anlauf at gcc dot gnu.org changed:

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

--- Comment #3 from anlauf at gcc dot gnu.org ---
The following patch seems to work:

diff --git a/gcc/fortran/data.c b/gcc/fortran/data.c
index 839e04277ef..dee38e5de50 100644
--- a/gcc/fortran/data.c
+++ b/gcc/fortran/data.c
@@ -589,6 +589,15 @@ gfc_assign_data_value (gfc_expr *lvalue, gfc_expr *rvalue,
mpz_t index,
        return false;
     }

+  if (rvalue->symtree && rvalue->symtree->n.sym
+      && !rvalue->symtree->n.sym->attr.target
+      && !gfc_is_constant_expr (rvalue))
+    {
+      gfc_error ("non-constant initialization expression in DATA statement "
+                "at %L", &rvalue->where);
+      return false;
+    }
+
   if (ref || (last_ts->type == BT_CHARACTER
              && rvalue->expr_type == EXPR_CONSTANT))
     {


More information about the Gcc-bugs mailing list