aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSteven G. Kargl <kargl@gcc.gnu.org>2019-08-31 00:32:48 +0000
committerSteven G. Kargl <kargl@gcc.gnu.org>2019-08-31 00:32:48 +0000
commit460b985ea3d74a371db90b1e54fd3f02752cf658 (patch)
tree878e350f1ecd1d37bf7a74e7b6a52c3389fdec4f /gcc
parenta74e175a434645fcf920d2c01fb88f2cbd86adb2 (diff)
downloadgcc-460b985ea3d74a371db90b1e54fd3f02752cf658.zip
gcc-460b985ea3d74a371db90b1e54fd3f02752cf658.tar.gz
gcc-460b985ea3d74a371db90b1e54fd3f02752cf658.tar.bz2
re PR fortran/91587 (ICE in gfc_resolve_filepos, at fortran/io.c:2913)
2019-08-30 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/91587 * io.c (match_filepos): MATCH_ERROR should branch to a syntax error. 2019-08-30 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/91587 * gfortran.dg/pr91587.f90: New test. From-SVN: r275236
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/io.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/pr91587.f9012
4 files changed, 23 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 0f2efb2..a34b871 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-30 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/91587
+ * io.c (match_filepos): MATCH_ERROR should branch to a syntax error.
+
2019-08-28 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/91551
diff --git a/gcc/fortran/io.c b/gcc/fortran/io.c
index cd21c6b..632e168 100644
--- a/gcc/fortran/io.c
+++ b/gcc/fortran/io.c
@@ -2845,7 +2845,7 @@ match_filepos (gfc_statement st, gfc_exec_op op)
m = match_file_element (fp);
if (m == MATCH_ERROR)
- goto done;
+ goto syntax;
if (m == MATCH_NO)
{
m = gfc_match_expr (&fp->unit);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 83d17a3..c590b46 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-08-30 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/91587
+ * gfortran.dg/pr91587.f90: New test.
+
2019-08-30 Martin Sebor <msebor@redhat.com>
PR middle-end/91599
diff --git a/gcc/testsuite/gfortran.dg/pr91587.f90 b/gcc/testsuite/gfortran.dg/pr91587.f90
new file mode 100644
index 0000000..c07735d
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr91587.f90
@@ -0,0 +1,12 @@
+! { dg-do compile }
+! PR fortran/91587
+! Code contributed by Gerhard Steinmetz
+program p
+ backspace(err=!) ! { dg-error "Syntax error in" }
+ flush(err=!) ! { dg-error "Syntax error in" }
+ rewind(err=!) ! { dg-error "Syntax error in" }
+end
+
+subroutine bar ! An other matcher runs, and gives a different error.
+ endfile(err=!) ! { dg-error "Expecting END" }
+end