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

--- Comment #4 from Jerry DeLisle <jvdelisle2 at gmail dot com> ---
The new fix:

diff --git a/gcc/fortran/resolve.cc b/gcc/fortran/resolve.cc
index 57561e8686f..526755fef42 100644
--- a/gcc/fortran/resolve.cc
+++ b/gcc/fortran/resolve.cc
@@ -19787,10 +19787,15 @@ resolve_data_variables (gfc_data_variable *d)
 static void
 resolve_data (gfc_data *d)
 {
+  gfc_data_value *v;

   if (!resolve_data_variables (d->var))
     return;

+  for (v = d->value; v; v = v->next)
+    if (v->expr && !gfc_resolve_expr (v->expr))
+      return;
+
   values.vnode = d->value;
   if (d->value == NULL)
     mpz_set_ui (values.left, 0);

Reply via email to