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);