diff options
author | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2023-01-28 20:00:34 -0800 |
---|---|---|
committer | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2023-01-29 11:10:06 -0800 |
commit | 8011fbba7baa46947341ca8069b5a327163a68d5 (patch) | |
tree | 4ce180e3310e4e2fd283dea79dc5c637aa76bcf9 /gcc/fortran/parse.cc | |
parent | da3aca031be736fe4fa8daa57c7efa69dc767160 (diff) | |
download | gcc-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.cc | 9 |
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; } |