diff --git a/tccelf.c b/tccelf.c index 48c9fbe6..de06af21 100644 --- a/tccelf.c +++ b/tccelf.c @@ -2723,7 +2723,7 @@ static void alloc_sec_names(TCCState *s1, int is_obj) s = s1->sections[i]; if (is_obj) s->sh_size = s->data_offset; - if (s->sh_size || (s->sh_flags & SHF_ALLOC)) + if (s == strsec || s->sh_size || (s->sh_flags & SHF_ALLOC)) s->sh_name = put_elf_str(strsec, s->name); } strsec->sh_size = strsec->data_offset;