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; }