diff options
author | Steven G. Kargl <kargl@gcc.gnu.org> | 2019-06-19 18:18:40 +0000 |
---|---|---|
committer | Steven G. Kargl <kargl@gcc.gnu.org> | 2019-06-19 18:18:40 +0000 |
commit | ef3e6aa32043fd8a285342aa6c668b636f5f0d41 (patch) | |
tree | 5d7ba6731d31e1f5649376b330e136395a152139 /gcc/fortran/match.c | |
parent | c9935123aef8eac547cdd0e8b06811fc776a6b32 (diff) | |
download | gcc-ef3e6aa32043fd8a285342aa6c668b636f5f0d41.zip gcc-ef3e6aa32043fd8a285342aa6c668b636f5f0d41.tar.gz gcc-ef3e6aa32043fd8a285342aa6c668b636f5f0d41.tar.bz2 |
re PR fortran/69499 ([F03] ICE-on-invalid on combining select type with wrong statement)
2019-06-19 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/69499
* match.c (gfc_match_select_type): SELECT TYPE is an executable
statement, and cannot appear in MODULE or SUBMODULE scope.
2019-06-19 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/69499
* gfortran.dg/pr69499.f90: New test.
* gfortran.dg/module_error_1.f90: Update dg-error string.
From-SVN: r272482
Diffstat (limited to 'gcc/fortran/match.c')
-rw-r--r-- | gcc/fortran/match.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/fortran/match.c b/gcc/fortran/match.c index 69698e5..1c08da7 100644 --- a/gcc/fortran/match.c +++ b/gcc/fortran/match.c @@ -6219,6 +6219,13 @@ gfc_match_select_type (void) if (m != MATCH_YES) return m; + if (gfc_current_state() == COMP_MODULE + || gfc_current_state() == COMP_SUBMODULE) + { + gfc_error ("SELECT TYPE at %C cannot appear in this scope"); + return MATCH_ERROR; + } + gfc_current_ns = gfc_build_block_ns (ns); m = gfc_match (" %n => %e", name, &expr2); if (m == MATCH_YES) |