diff options
| author | Michael Matz <matz@suse.de> | 2016-09-04 00:19:47 +0200 |
|---|---|---|
| committer | Michael Matz <matz@suse.de> | 2016-12-15 17:47:11 +0100 |
| commit | f2a071e808db2896823463089531e08d0b2d0ee8 (patch) | |
| tree | f5da272a4460b73d98561e1788fbda60f8adb09f | |
| parent | 9656560f144380bcebade03a6c10b8c186ad3874 (diff) | |
| download | tinycc-f2a071e808db2896823463089531e08d0b2d0ee8.tar.gz tinycc-f2a071e808db2896823463089531e08d0b2d0ee8.tar.bz2 | |
Fix aliases on 64 bit
Use correct width ELF structure.
| -rw-r--r-- | tccgen.c | 4 | ||||
| -rw-r--r-- | tests/tcctest.c | 1 |
2 files changed, 3 insertions, 2 deletions
@@ -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; } |
