From cdc6637d7c78ec66bff42ef5a38c1f5a4cd2074d Mon Sep 17 00:00:00 2001 From: Daniel Franke Date: Sun, 16 May 2010 16:01:06 -0400 Subject: [PATCH] re PR fortran/35779 (error pointer wrong in PARAMETER) gcc/fortran/: 2010-05-16 Daniel Franke PR fortran/35779 * array.c (match_array_list): Revert functional change of 2010-05-13. gcc/fortran/: 2010-05-16 Daniel Franke PR fortran/35779 * gfortran.dg/initialization_25.f90: Commented testcase. * gfortran.dg/initialization_26.f90: New. From-SVN: r159465 --- gcc/fortran/ChangeLog | 5 +++++ gcc/fortran/array.c | 2 +- gcc/testsuite/ChangeLog | 6 ++++++ gcc/testsuite/gfortran.dg/initialization_25.f90 | 7 ++++--- gcc/testsuite/gfortran.dg/initialization_26.f90 | 9 +++++++++ 5 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 gcc/testsuite/gfortran.dg/initialization_26.f90 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index af8ce0a4949..8c5d7b103e7 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2010-05-16 Daniel Franke + + PR fortran/35779 + * array.c (match_array_list): Revert change from 2010-05-13. + 2010-05-16 Richard Guenther * trans-decl.c (module_htab_decls_hash): Revert last change. diff --git a/gcc/fortran/array.c b/gcc/fortran/array.c index 25c6e140306..3ffc39714da 100644 --- a/gcc/fortran/array.c +++ b/gcc/fortran/array.c @@ -879,7 +879,7 @@ match_array_list (gfc_constructor_base *result) for (n = 1;; n++) { - m = gfc_match_iterator (&iter, gfc_init_expr_flag); + m = gfc_match_iterator (&iter, 0); if (m == MATCH_YES) break; if (m == MATCH_ERROR) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4ec703c03ad..2abe3965f0a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2010-05-16 Daniel Franke + + PR fortran/35779 + * gfortran.dg/initialization_25.f90: Commented testcase. + * gfortran.dg/initialization_26.f90: New. + 2010-05-16 Richard Guenther * gcc.dg/pr43317.c: Do not pass -fipa-type-escape. diff --git a/gcc/testsuite/gfortran.dg/initialization_25.f90 b/gcc/testsuite/gfortran.dg/initialization_25.f90 index d6fab972c18..fc667f4485a 100644 --- a/gcc/testsuite/gfortran.dg/initialization_25.f90 +++ b/gcc/testsuite/gfortran.dg/initialization_25.f90 @@ -4,8 +4,9 @@ ! Tescase contributed by ! Dick Hendrickson ! +! Initial patch was reverted as it broke nested loops (see initialization_26.f90). +! - INTEGER :: J1 - INTEGER,PARAMETER :: I3(10) = (/(J1,J1=10,1,-1)/) - INTEGER,PARAMETER :: I2(10) = (/(J1,J1=its_bad,1,-1)/) ! { dg-error "does not reduce" } +! INTEGER :: J1 +! INTEGER,PARAMETER :: I2(10) = (/(J1,J1=its_bad,1,-1)/) ! { dg - error "does not reduce" } END diff --git a/gcc/testsuite/gfortran.dg/initialization_26.f90 b/gcc/testsuite/gfortran.dg/initialization_26.f90 new file mode 100644 index 00000000000..d5bc93b4686 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/initialization_26.f90 @@ -0,0 +1,9 @@ +! { dg-do "compile" } +! +! Verify that the outer do-loop counter 'j' is accepted as +! as end-expression of the inner loop. +! + + integer i, j + integer, parameter :: n = size( [( [(i*j,i=1,j)], j=1,2)] ) +end -- 2.30.2