https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106050
kargl at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever confirmed|0 |1 Last reconfirmed| |2022-06-21 CC| |kargl at gcc dot gnu.org --- Comment #1 from kargl at gcc dot gnu.org --- With torched input, I might expect the symbol table to get sideways. Before asserting the reference count is zero, check if the count is negative and an error message has already been emitted. diff --git a/gcc/fortran/symbol.cc b/gcc/fortran/symbol.cc index 7a80dfd063b..3aa2b9bd962 100644 --- a/gcc/fortran/symbol.cc +++ b/gcc/fortran/symbol.cc @@ -3106,6 +3106,7 @@ gfc_free_symbol (gfc_symbol *&sym) void gfc_release_symbol (gfc_symbol *&sym) { + if (sym == NULL) return; @@ -3123,6 +3124,14 @@ gfc_release_symbol (gfc_symbol *&sym) if (sym->refs > 0) return; + if (sym->refs < 0) + { + int ecnt; + gfc_get_errors (NULL, &ecnt); + if (ecnt > 0) + return; + } + gcc_assert (sym->refs == 0); gfc_free_symbol (sym); }