aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/symbol.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/symbol.c b/src/symbol.c
index c31a323..e37be06 100644
--- a/src/symbol.c
+++ b/src/symbol.c
@@ -107,7 +107,11 @@ unlink_symbol(struct table_entry *tp)
static void
delete_symbol(struct table_entry *tp)
{
- free(unlink_symbol(tp));
+ Symbol *s = unlink_symbol(tp);
+ /* The symbol could have been referenced even if it is static
+ in -i^s mode. See tests/static.at for details. */
+ if (s->ref_line == NULL)
+ free(s);
}
static void cleanup_symbol_refs(Symbol *sym);

Return to:

Send suggestions and report system problems to the System administrator.