diff options
| author | bellard <bellard> | 2002-08-31 12:42:16 +0000 |
|---|---|---|
| committer | bellard <bellard> | 2002-08-31 12:42:16 +0000 |
| commit | 431d64809666aedbfa41fc98a47355494aa873e2 (patch) | |
| tree | e180d17a50bd4e7148d0a19cb6c10f2406ff3f15 /i386-gen.c | |
| parent | 6dd6a026c35b5c0904fdff4488511cecfb71bb27 (diff) | |
| download | tinycc-431d64809666aedbfa41fc98a47355494aa873e2.tar.gz tinycc-431d64809666aedbfa41fc98a47355494aa873e2.tar.bz2 | |
fixed PC32 relocation if constant address
Diffstat (limited to 'i386-gen.c')
| -rw-r--r-- | i386-gen.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -360,10 +360,12 @@ void gfunc_call(GFuncContext *c) /* relocation case */ greloc(cur_text_section, vtop->sym, ind + 1, R_386_PC32); - oad(0xe8, vtop->c.ul - 4); } else { - oad(0xe8, vtop->c.ul - ind - 5); + /* put an empty PC32 relocation */ + put_elf_reloc(symtab_section, cur_text_section, + ind + 1, R_386_PC32, 0); } + oad(0xe8, vtop->c.ul - 4); } else { /* otherwise, indirect call */ r = gv(RC_INT); |
