re PR fortran/35779 (error pointer wrong in PARAMETER)
authorDaniel Franke <franke.daniel@gmail.com>
Sun, 16 May 2010 20:01:06 +0000 (16:01 -0400)
committerDaniel Franke <dfranke@gcc.gnu.org>
Sun, 16 May 2010 20:01:06 +0000 (16:01 -0400)
gcc/fortran/:
2010-05-16  Daniel Franke  <franke.daniel@gmail.com>

        PR fortran/35779
* array.c (match_array_list): Revert functional change of 2010-05-13.

gcc/fortran/:
2010-05-16  Daniel Franke  <franke.daniel@gmail.com>

        PR fortran/35779
* gfortran.dg/initialization_25.f90: Commented testcase.
* gfortran.dg/initialization_26.f90: New.

From-SVN: r159465

gcc/fortran/ChangeLog
gcc/fortran/array.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/initialization_25.f90
gcc/testsuite/gfortran.dg/initialization_26.f90 [new file with mode: 0644]

index af8ce0a4949c0d611b5c20c4b73f7a17c7213087..8c5d7b103e752020f52fa61f8fa7ccb65f06fd33 100644 (file)
@@ -1,3 +1,8 @@
+2010-05-16  Daniel Franke  <franke.daniel@gmail.com>
+
+        PR fortran/35779
+       * array.c (match_array_list): Revert change from 2010-05-13.
+
 2010-05-16  Richard Guenther  <rguenther@suse.de>
 
        * trans-decl.c (module_htab_decls_hash): Revert last change.
index 25c6e140306a10b51ac792ebcdc16a1c311ffd9a..3ffc39714da05b03c6fb5dd2e7a76bfbbbaf92ed 100644 (file)
@@ -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)
index 4ec703c03adf86e9989fabafef602efbf9ce8001..2abe3965f0af7fb4902aabac0a585d9cdc6d0eae 100644 (file)
@@ -1,3 +1,9 @@
+2010-05-16  Daniel Franke  <franke.daniel@gmail.com>
+
+        PR fortran/35779
+       * gfortran.dg/initialization_25.f90: Commented testcase.
+       * gfortran.dg/initialization_26.f90: New.
+
 2010-05-16  Richard Guenther  <rguenther@suse.de>
 
        * gcc.dg/pr43317.c: Do not pass -fipa-type-escape.
index d6fab972c182ec03139337a3db223052b6ce92d6..fc667f4485ada4c26b848856f14596be20ae1d94 100644 (file)
@@ -4,8 +4,9 @@
 ! Tescase contributed by
 ! Dick Hendrickson <dick DOT hendrickson AT gmail DOT com>
 !
+! 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 (file)
index 0000000..d5bc93b
--- /dev/null
@@ -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