aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorErik Edelmann <eedelman@gcc.gnu.org>2005-12-21 11:58:09 +0000
committerErik Edelmann <eedelman@gcc.gnu.org>2005-12-21 11:58:09 +0000
commit46833406d17c0f2d88dc370118ab0d1fcf6fb2b2 (patch)
treedd30dab684b27cc73776c8eb415c22f759e356df /gcc
parent29c8f8c27b170130bc8c621703b12aad646803bd (diff)
downloadgcc-46833406d17c0f2d88dc370118ab0d1fcf6fb2b2.zip
gcc-46833406d17c0f2d88dc370118ab0d1fcf6fb2b2.tar.gz
gcc-46833406d17c0f2d88dc370118ab0d1fcf6fb2b2.tar.bz2
re PR fortran/25423 (Error with nested where statements)
fortran/ 2005-12-21 Erik Edelmann <eedelman@gcc.gnu.org> PR fortran/25423 * parse.c (parse_where_block): break instead of "fall through" after parsing nested WHERE construct. testsuite/ 2005-12-21 Erik Edelmann <eedelman@gcc.gnu.org> PR fortran/25423 gfortran.dg/where_nested_1.f90: New. From-SVN: r108902
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/parse.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/where_nested_1.f9026
4 files changed, 38 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 8dbcc23..8fb7318 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2005-12-21 Erik Edelmann <eedelman@gcc.gnu.org>
+
+ PR fortran/25423
+ * parse.c (parse_where_block): break instead of "fall
+ through" after parsing nested WHERE construct.
+
2005-12-18 Paul Thomas <pault@gcc.gnu.org>
PR fortran/25018
diff --git a/gcc/fortran/parse.c b/gcc/fortran/parse.c
index f53a2e4..a0da448 100644
--- a/gcc/fortran/parse.c
+++ b/gcc/fortran/parse.c
@@ -1668,7 +1668,7 @@ parse_where_block (void)
case ST_WHERE_BLOCK:
parse_where_block ();
- /* Fall through */
+ break;
case ST_ASSIGNMENT:
case ST_WHERE:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 090eaf8..2899ab2 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2005-12-21 Erik Edelmann <eedelman@gcc.gnu.org>
+
+ PR fortran/25423
+ gfortran.dg/where_nested_1.f90: New.
+
2005-12-21 Kazu Hirata <kazu@codesourcery.com>
PR tree-optimization/25382.
diff --git a/gcc/testsuite/gfortran.dg/where_nested_1.f90 b/gcc/testsuite/gfortran.dg/where_nested_1.f90
new file mode 100644
index 0000000..c28cfcd
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/where_nested_1.f90
@@ -0,0 +1,26 @@
+! { dg-do compile }
+! PR 25423: Nested WHERE constructs.
+program nested_where
+
+ implicit none
+ integer :: a(4)
+ logical :: mask1(4) = (/.TRUE., .TRUE., .FALSE., .FALSE./), &
+ mask2(4) = (/.TRUE., .FALSE., .TRUE., .FALSE./)
+
+ where (mask1)
+ where (mask2)
+ a = 1
+ elsewhere
+ a = 2
+ end where
+ elsewhere
+ where (mask2)
+ a = 3
+ elsewhere
+ a = 4
+ end where
+ end where
+
+ print *, a
+
+end program nested_where