From ac16ec28908325919c5182c1c9f1f42a4ce07030 Mon Sep 17 00:00:00 2001 From: Sergey Poznyakoff Date: Wed, 6 Sep 2006 16:02:26 +0000 Subject: (delete_symbol): Do not free referenced symbols. --- src/symbol.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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); -- cgit v1.2.1