History

Fix aliases on 64 bit

Use correct width ELF structure.

Michael Matz committed 10 years ago

Commit f2a071e1 parent 96565602 files · +3 −2Browse files

Unified · Split

2 files
  1. tccgen.c +2 −2
  2. tests/tcctest.c +1 −0
tccgen.c+2−2
@@ -6919,13 +6919,13 @@ static int decl0(int l, int is_for_loop_init) · 6918 unmodified lines
69196919
69206920 if (ad.alias_target) {
69216921 Section tsec;
6922− Elf32_Sym *esym;
6922+ ElfW(Sym) *esym;
69236923 Sym *alias_target;
69246924
69256925 alias_target = sym_find(ad.alias_target);
69266926 if (!alias_target || !alias_target->c)
69276927 tcc_error("unsupported forward __alias__ attribute");
6928− esym = &((Elf32_Sym *)symtab_section->data)[alias_target->c];
6928+ esym = &((ElfW(Sym) *)symtab_section->data)[alias_target->c];
69296929 tsec.sh_num = esym->st_shndx;
69306930 put_extern_sym2(sym, &tsec, esym->st_value, esym->st_size, 0);
69316931 }
tests/tcctest.c+1−0
@@ -2962,6 +2962,7 @@ void __attribute__((weak)) weak_test(void) · 2961 unmodified lines
29622962 printf("weak_asm_v1=%d\n",&weak_asm_v1 != NULL);
29632963 printf("weak_asm_v2=%d\n",&weak_asm_v2 != NULL);
29642964 printf("weak_asm_v3=%d\n",&weak_asm_v3 != NULL);
2965+ printf("some_lib_func=%d\n", &some_lib_func ? some_lib_func() : 0);
29652966 }
29662967
29672968 int __attribute__((weak)) weak_f2() { return 222; }

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t