aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorTobias Burnus <tobias@codesourcery.com>2020-04-02 11:16:17 +0200
committerTobias Burnus <tobias@codesourcery.com>2020-04-02 11:16:17 +0200
commit224efaf7e1e9240b64602ea81a255cb43e4dcb0c (patch)
tree5c5197cae8944e67d0320e7acd7155f3bd4a408e /gcc/fortran
parentb7a98f48e06974ffca184335ff598cf3475e478f (diff)
downloadgcc-224efaf7e1e9240b64602ea81a255cb43e4dcb0c.zip
gcc-224efaf7e1e9240b64602ea81a255cb43e4dcb0c.tar.gz
gcc-224efaf7e1e9240b64602ea81a255cb43e4dcb0c.tar.bz2
[Fortran] Fix error cleanup of select rank (PR93522)
PR fortran/93522 * match.c (gfc_match_select_rank): Fix error cleanup. PR fortran/93522 * gfortran.dg/select_rank_4.f90: New.
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/match.c1
2 files changed, 6 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 89de9d0..c4ca48f 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,8 @@
+2020-04-02 Tobias Burnus <tobias@codesourcery.com>
+
+ PR fortran/93522
+ * match.c (gfc_match_select_rank): Fix error cleanup.
+
2020-04-02 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/93498
diff --git a/gcc/fortran/match.c b/gcc/fortran/match.c
index 8443d20..8ae34a9 100644
--- a/gcc/fortran/match.c
+++ b/gcc/fortran/match.c
@@ -6678,6 +6678,7 @@ gfc_match_select_rank (void)
if (m != MATCH_YES)
{
+ gfc_undo_symbols ();
std::swap (ns, gfc_current_ns);
gfc_free_namespace (ns);
return m;