Commit 20898e80 by Steven G. Kargl

re PR fortran/66039 (ICE on incomplete parentheses at rewind, flush, endfile, backspace)

2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/66039
	* io.c (match_filepos): Check for incomplete/mangled REWIND, FLUSH,
	BACKSPACE, and ENDFILE statements

2015-05-18  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/66039
	* gfortran.dg/filepos1.f90: New test

From-SVN: r223315
parent 703245d7
2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org> 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66039
* io.c (match_filepos): Check for incomplete/mangled REWIND, FLUSH,
BACKSPACE, and ENDFILE statements
2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/64925 PR fortran/64925
* symbol.c(check_conflict): Check for a conflict between a dummy * symbol.c(check_conflict): Check for a conflict between a dummy
argument and an internal procedure name. argument and an internal procedure name.
......
...@@ -2382,9 +2382,7 @@ match_filepos (gfc_statement st, gfc_exec_op op) ...@@ -2382,9 +2382,7 @@ match_filepos (gfc_statement st, gfc_exec_op op)
if (m == MATCH_NO) if (m == MATCH_NO)
{ {
m = gfc_match_expr (&fp->unit); m = gfc_match_expr (&fp->unit);
if (m == MATCH_ERROR) if (m == MATCH_ERROR || m == MATCH_NO)
goto done;
if (m == MATCH_NO)
goto syntax; goto syntax;
} }
......
2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org> 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66039
* gfortran.dg/filepos1.f90: New test
2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/64925 PR fortran/64925
* gfortran.dg/pr64925.f90: New test. * gfortran.dg/pr64925.f90: New test.
......
! { dg-do compile }
! PR fortran/66039
!
! Original code from Gerhard Steinmetz
! <gerhard dot steinmetz dot fortran at t-online dot de>
subroutine p1
rewind (( ! { dg-error "Syntax error in REWIND" }
rewind (- ! { dg-error "Syntax error in REWIND" }
end subroutine p1
subroutine p2
flush (( ! { dg-error "Syntax error in FLUSH" }
flush (- ! { dg-error "Syntax error in FLUSH" }
end subroutine p2
subroutine p4
backspace (( ! { dg-error "Syntax error in BACKSPACE" }
backspace (- ! { dg-error "Syntax error in BACKSPACE" }
end subroutine p4
subroutine p3
endfile (( ! { dg-error "Expecting END SUBROUTINE" }
endfile (- ! { dg-error "Expecting END SUBROUTINE" }
end subroutine p3
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