aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgrischka <grischka>2008-05-11 00:11:52 +0200
committergrischka <grischka>2008-09-12 02:36:01 +0200
commit1300cec38cc48405715416f107a65a4d7d608767 (patch)
tree1d610cd62a50db42cce9830e444d03d0f7012f66
parentf9bf48d6433a0e9a317fe8beba9c8daf429ff6ed (diff)
downloadtinycc-1300cec38cc48405715416f107a65a4d7d608767.tar.gz
tinycc-1300cec38cc48405715416f107a65a4d7d608767.tar.bz2
free_section bugfix
-rw-r--r--tcc.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/tcc.c b/tcc.c
index b402a9b..7acb7bf 100644
--- a/tcc.c
+++ b/tcc.c
@@ -1284,9 +1284,9 @@ Section *new_section(TCCState *s1, const char *name, int sh_type, int sh_flags)
static void free_section(Section *s)
{
- if (s->link && 0 == s->link->sh_num)
+ if (s->link && (s->link->sh_flags & SHF_PRIVATE))
free_section(s->link);
- if (s->hash && 0 == s->hash->sh_num)
+ if (s->hash && (s->link->sh_flags & SHF_PRIVATE))
s->hash->link = NULL, free_section(s->hash);
tcc_free(s->data);
tcc_free(s);