aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Matz <matz@suse.de>2016-09-04 00:19:47 +0200
committerMichael Matz <matz@suse.de>2016-12-15 17:47:11 +0100
commitf2a071e808db2896823463089531e08d0b2d0ee8 (patch)
treef5da272a4460b73d98561e1788fbda60f8adb09f
parent9656560f144380bcebade03a6c10b8c186ad3874 (diff)
downloadtinycc-f2a071e808db2896823463089531e08d0b2d0ee8.tar.gz
tinycc-f2a071e808db2896823463089531e08d0b2d0ee8.tar.bz2
Fix aliases on 64 bit
Use correct width ELF structure.
-rw-r--r--tccgen.c4
-rw-r--r--tests/tcctest.c1
2 files changed, 3 insertions, 2 deletions
diff --git a/tccgen.c b/tccgen.c
index 410dcb7..1dc5864 100644
--- a/tccgen.c
+++ b/tccgen.c
@@ -6919,13 +6919,13 @@ static int decl0(int l, int is_for_loop_init)
if (ad.alias_target) {
Section tsec;
- Elf32_Sym *esym;
+ ElfW(Sym) *esym;
Sym *alias_target;
alias_target = sym_find(ad.alias_target);
if (!alias_target || !alias_target->c)
tcc_error("unsupported forward __alias__ attribute");
- esym = &((Elf32_Sym *)symtab_section->data)[alias_target->c];
+ esym = &((ElfW(Sym) *)symtab_section->data)[alias_target->c];
tsec.sh_num = esym->st_shndx;
put_extern_sym2(sym, &tsec, esym->st_value, esym->st_size, 0);
}
diff --git a/tests/tcctest.c b/tests/tcctest.c
index 4e51ea1..d1f6c9b 100644
--- a/tests/tcctest.c
+++ b/tests/tcctest.c
@@ -2962,6 +2962,7 @@ void __attribute__((weak)) weak_test(void)
printf("weak_asm_v1=%d\n",&weak_asm_v1 != NULL);
printf("weak_asm_v2=%d\n",&weak_asm_v2 != NULL);
printf("weak_asm_v3=%d\n",&weak_asm_v3 != NULL);
+ printf("some_lib_func=%d\n", &some_lib_func ? some_lib_func() : 0);
}
int __attribute__((weak)) weak_f2() { return 222; }