aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/parse.cc
diff options
context:
space:
mode:
authorJerry DeLisle <jvdelisle@gcc.gnu.org>2023-01-28 20:00:34 -0800
committerJerry DeLisle <jvdelisle@gcc.gnu.org>2023-01-29 11:10:06 -0800
commit8011fbba7baa46947341ca8069b5a327163a68d5 (patch)
tree4ce180e3310e4e2fd283dea79dc5c637aa76bcf9 /gcc/fortran/parse.cc
parentda3aca031be736fe4fa8daa57c7efa69dc767160 (diff)
downloadgcc-8011fbba7baa46947341ca8069b5a327163a68d5.zip
gcc-8011fbba7baa46947341ca8069b5a327163a68d5.tar.gz
gcc-8011fbba7baa46947341ca8069b5a327163a68d5.tar.bz2
ICE in gfc_free_namespace. ice-on-invalid.
PR fortran/103506 gcc/fortran/ChangeLog: * parse.cc (parse_module): Remove use of a bool error value that prevented proper setting of the namespace pointer. gcc/testsuite/ChangeLog: * gfortran.dg/pr103506_1.f90: New test.
Diffstat (limited to 'gcc/fortran/parse.cc')
-rw-r--r--gcc/fortran/parse.cc9
1 files changed, 1 insertions, 8 deletions
diff --git a/gcc/fortran/parse.cc b/gcc/fortran/parse.cc
index 0fb19cc..039e7e7 100644
--- a/gcc/fortran/parse.cc
+++ b/gcc/fortran/parse.cc
@@ -6502,7 +6502,6 @@ parse_module (void)
{
gfc_statement st;
gfc_gsymbol *s;
- bool error;
s = gfc_get_gsymbol (gfc_new_block->name, false);
if (s->defined || (s->type != GSYM_UNKNOWN && s->type != GSYM_MODULE))
@@ -6525,7 +6524,6 @@ parse_module (void)
st = parse_spec (ST_NONE);
- error = false;
loop:
switch (st)
{
@@ -6544,16 +6542,11 @@ loop:
default:
gfc_error ("Unexpected %s statement in MODULE at %C",
gfc_ascii_statement (st));
-
- error = true;
reject_statement ();
st = next_statement ();
goto loop;
}
-
- /* Make sure not to free the namespace twice on error. */
- if (!error)
- s->ns = gfc_current_ns;
+ s->ns = gfc_current_ns;
}