Call relocate_sym() before we return the offset, so user doesn't need to check the return value twice.

This commit is contained in:
Shinichiro Hamaji 2009-04-18 17:02:46 +09:00 committed by grischka
parent dd5630ff95
commit d36fea34e3

10
tcc.c
View File

@ -10353,6 +10353,11 @@ int tcc_relocate(TCCState *s1, void *ptr)
offset = (offset + length + 15) & ~15;
}
/* relocate symbols */
relocate_syms(s1, 1);
if (s1->nb_errors)
return -1;
#ifdef TCC_TARGET_X86_64
s1->runtime_plt_and_got_offset = 0;
s1->runtime_plt_and_got = (char *)(mem + offset);
@ -10364,11 +10369,6 @@ int tcc_relocate(TCCState *s1, void *ptr)
if (0 == mem)
return offset + 15;
/* relocate symbols */
relocate_syms(s1, 1);
if (s1->nb_errors)
return -1;
/* relocate each section */
for(i = 1; i < s1->nb_sections; i++) {
s = s1->sections[i];