Commit 29405f94 by Tobias Schlüter Committed by Tobias Schlüter

match.c (match_forall_iterator): Don't immediately give error if '=' is not…

match.c (match_forall_iterator): Don't immediately give error if '=' is not followed by an expression.

fortran/
	* match.c (match_forall_iterator): Don't immediately give error if '='
	is not followed by an expression.
testsuite/
	* gfortran.dg/forall_1.f90: New test.

Co-Authored-By: Erik Edelmann <erik.edelmann@iki.fi>

From-SVN: r100580
parent ab21e272
2005-06-03 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
2005-06-04 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
* match.c (match_forall_iterator): Don't immediately give error if '='
is not followed by an expression.
2005-06-04 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
Erik Edelmann <erik.edelmann@iki.fi>
* array.c (gfc_match_array_constructor): Disallow empty array
......
......@@ -3084,9 +3084,7 @@ match_forall_iterator (gfc_forall_iterator ** result)
}
m = gfc_match_expr (&iter->start);
if (m == MATCH_NO)
goto syntax;
if (m == MATCH_ERROR)
if (m != MATCH_YES)
goto cleanup;
if (gfc_match_char (':') != MATCH_YES)
......
2005-06-04 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
* gfortran.dg/forall_1.f90: New test.
2005-06-04 Erik Edelmann <erik.edelmann@iki.fi>
* gfortran.dg/array_constructor_3.f90: New test.
......
! { dg-do run }
! tests FORALL statements with a mask
dimension i2(15,10), i1(15)
type a
sequence
integer k
end type a
type(a) :: a1(10), a2(5,5)
forall (i=1:15, i1(i) /= 0)
i1(i) = 0
end forall
if (any(i1 /= 0)) call abort
a1(:)%k = i1(1:10)
forall (i=1:10, a1(i)%k == 0)
a1(i)%k = i
end forall
if (any (a1(:)%k /= (/ (i, i=1,10) /))) call abort
forall (i=1:15, j=1:10, a1(j)%k <= j)
i2(i,j) = j + i*11
end forall
do i=1,15
if (any (i2(i,:) /= (/ (i*11 + j, j=1,10) /))) call abort
end do
end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment