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
This commit is contained in:
Tobias Schlüter 2005-06-04 12:35:00 +02:00 committed by Tobias Schlüter
parent ab21e2722d
commit 29405f9481
4 changed files with 38 additions and 4 deletions

View File

@ -1,4 +1,9 @@
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

View File

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

View File

@ -1,3 +1,7 @@
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.

View File

@ -0,0 +1,27 @@
! { 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