aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorPaul Thomas <pault@gcc.gnu.org>2009-06-11 20:11:59 +0000
committerPaul Thomas <pault@gcc.gnu.org>2009-06-11 20:11:59 +0000
commitabeab93869b150cb26b4267d14e3362dadb0a8be (patch)
tree84a4f811b1cf5dfc12a4245722cba5b630981ecf /gcc/fortran
parent5514b0f3df6c51607ad1bb941967aafe149c77b3 (diff)
downloadgcc-abeab93869b150cb26b4267d14e3362dadb0a8be.zip
gcc-abeab93869b150cb26b4267d14e3362dadb0a8be.tar.gz
gcc-abeab93869b150cb26b4267d14e3362dadb0a8be.tar.bz2
re PR fortran/40402 (Problem with data statement involving structure constructors containing non-initialisation expressions)
2009-06-11 Paul Thomas <pault@gcc.gnu.org> PR fortran/40402 * resolve.c (next_data_value): It is an error if the value is not constant. 2009-06-11 Paul Thomas <pault@gcc.gnu.org> PR fortran/40402 * gfortran.dg/data_value_1.f90: New test. From-SVN: r148396
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/resolve.c5
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 1a2f41b..2f0ff9d 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2009-06-11 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/40402
+ * resolve.c (next_data_value): It is an error if the value is
+ not constant.
+
2009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
PR fortran/38718
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 5bb38fe..04e03cc 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -9852,9 +9852,12 @@ values;
static gfc_try
next_data_value (void)
{
-
while (mpz_cmp_ui (values.left, 0) == 0)
{
+ if (!gfc_is_constant_expr (values.vnode->expr))
+ gfc_error ("non-constant DATA value at %L",
+ &values.vnode->expr->where);
+
if (values.vnode->next == NULL)
return FAILURE;