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
This commit is contained in:
Erik Edelmann 2005-12-21 11:58:09 +00:00
parent 29c8f8c27b
commit 46833406d1
4 changed files with 38 additions and 1 deletions

View File

@ -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

View File

@ -1668,7 +1668,7 @@ parse_where_block (void)
case ST_WHERE_BLOCK:
parse_where_block ();
/* Fall through */
break;
case ST_ASSIGNMENT:
case ST_WHERE:

View File

@ -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.

View File

@ -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