===================================================================
@@ -395,6 +395,7 @@ match_data_constant (gfc_expr **result)
{
gfc_error ("Symbol %qs must be a PARAMETER in DATA statement at %C",
name);
+ *result = NULL;
return MATCH_ERROR;
}
else if (dt_sym && gfc_fl_struct (dt_sym->attr.flavor))
===================================================================
@@ -0,0 +1,5 @@
+program p
+ integer :: i = 0
+ integer :: z(2)
+ data z /2*i/ ! { dg-error "must be a PARAMETER in DATA" }
+end
===================================================================
@@ -0,0 +1,7 @@
+! { dg-do compile }
+program p
+ integer :: a(2), b(2), c(2)
+ data a /2*b1'/ ! { dg-error "must be a PARAMETER in DATA" }
+ data b /2*o1' ! { dg-error "must be a PARAMETER in DATA" }
+ data c /2*z1 ! { dg-error "must be a PARAMETER in DATA" }
+end