diff options
author | Steven G. Kargl <kargl@gcc.gnu.org> | 2015-05-18 21:16:05 +0000 |
---|---|---|
committer | Steven G. Kargl <kargl@gcc.gnu.org> | 2015-05-18 21:16:05 +0000 |
commit | 46b6b3542d8c47e285e4e606f889411e4739a886 (patch) | |
tree | 9969334b4ef6757fb7abbcd430db19b32f475a7a /gcc | |
parent | 589ff4d209359aefc52f4986848540a4f97e085a (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/parse.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/misplaced_statement.f90 | 20 |
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 |