aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSteven G. Kargl <kargl@gcc.gnu.org>2015-05-18 21:16:05 +0000
committerSteven G. Kargl <kargl@gcc.gnu.org>2015-05-18 21:16:05 +0000
commit46b6b3542d8c47e285e4e606f889411e4739a886 (patch)
tree9969334b4ef6757fb7abbcd430db19b32f475a7a /gcc
parent589ff4d209359aefc52f4986848540a4f97e085a (diff)
downloadgcc-46b6b3542d8c47e285e4e606f889411e4739a886.zip
gcc-46b6b3542d8c47e285e4e606f889411e4739a886.tar.gz
gcc-46b6b3542d8c47e285e4e606f889411e4739a886.tar.bz2
re PR fortran/66040 (ICE on misplaced sequence in function)
2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/66040 * parse.c(verify_st_order): Replace a gfc_internal_error with your generic gfc_error. 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/66040 * gfortran.dg/misplaced_statement.f90: New test. From-SVN: r223318
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/parse.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/misplaced_statement.f9020
4 files changed, 32 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index a5d4d22..1c66684 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,5 +1,11 @@
2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
+ PR fortran/66040
+ * parse.c(verify_st_order): Replace a gfc_internal_error with your
+ generic gfc_error.
+
+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
diff --git a/gcc/fortran/parse.c b/gcc/fortran/parse.c
index 30e4eab..3135d9a 100644
--- a/gcc/fortran/parse.c
+++ b/gcc/fortran/parse.c
@@ -2425,8 +2425,7 @@ verify_st_order (st_state *p, gfc_statement st, bool silent)
break;
default:
- gfc_internal_error ("Unexpected %s statement in verify_st_order() at %C",
- gfc_ascii_statement (st));
+ return false;
}
/* All is well, record the statement in case we need it next time. */
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 3dd2d94..38f7ac1 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
+ PR fortran/66040
+ * gfortran.dg/misplaced_statement.f90: New test.
+
+2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
+
PR fortran/66039
* gfortran.dg/filepos1.f90: New test
diff --git a/gcc/testsuite/gfortran.dg/misplaced_statement.f90 b/gcc/testsuite/gfortran.dg/misplaced_statement.f90
new file mode 100644
index 0000000..63f3342
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/misplaced_statement.f90
@@ -0,0 +1,20 @@
+!{ dg-do compile }
+! PR fortran/66040
+!
+! Original code from Gerhard Steinmetz
+! <gerhard dot steinmetz dot fortran at t-online dot de>
+real function f1(x)
+ sequence ! { dg-error "Unexpected SEQUENCE statement" }
+end function f1
+
+real function f2()
+ else ! { dg-error "Unexpected ELSE statement" }
+end function f2
+
+real function f3()
+ block data ! { dg-error "Unexpected BLOCK DATA statement" }
+end function f3
+
+real function f4()
+ program p ! { dg-error "Unexpected PROGRAM statement" }
+end function f4