Unified · Split
| @@ -360,10 +360,12 @@ void gfunc_call(GFuncContext *c) · 359 unmodified lines | ||
| 360 | 360 | /* relocation case */ |
| 361 | 361 | greloc(cur_text_section, vtop->sym, |
| 362 | 362 | ind + 1, R_386_PC32); |
| 363 | − oad(0xe8, vtop->c.ul - 4); | |
| 364 | 363 | } else { |
| 365 | − oad(0xe8, vtop->c.ul - ind - 5); | |
| 364 | + /* put an empty PC32 relocation */ | |
| 365 | + put_elf_reloc(symtab_section, cur_text_section, | |
| 366 | + ind + 1, R_386_PC32, 0); | |
| 366 | 367 | } |
| 368 | + oad(0xe8, vtop->c.ul - 4); | |
| 367 | 369 | } else { |
| 368 | 370 | /* otherwise, indirect call */ |
| 369 | 371 | r = gv(RC_INT); |