zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit da07251000c5247432017535e5cbcae05be6e00a (tree)
parent 496903c6a807389b3c4940370601ea338b9047f7
Author: Jakub Konka <kubkon@jakubkonka.com>
Date:   Sun, 11 Jul 2021 23:42:18 +0200

zld: make addend i64 in Signed reloc

Diffstat:
Msrc/link/MachO/reloc.zig | 6+++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/link/MachO/reloc.zig b/src/link/MachO/reloc.zig @@ -333,7 +333,7 @@ pub const Relocation = struct { }; pub const Signed = struct { - addend: i32, + addend: i64, correction: i4, pub fn resolve(self: Signed, base: Relocation, source_addr: u64, target_addr: u64) !void { @@ -874,13 +874,13 @@ pub const Parser = struct { .X86_64_RELOC_SIGNED_4 => 4, else => unreachable, }; - var addend = mem.readIntLittle(i32, self.block.code[parsed.offset..][0..4]) + correction; + var addend: i64 = mem.readIntLittle(i32, self.block.code[parsed.offset..][0..4]) + correction; if (rel.r_extern == 0) { const source_sym = self.zld.locals.items[self.block.local_sym_index].payload.regular; const source_addr = source_sym.address + parsed.offset + @intCast(u32, addend) + 4; const target_sym = parsed.target.payload.regular; - addend = try math.cast(i32, @intCast(i64, source_addr) - @intCast(i64, target_sym.address)); + addend = @intCast(i64, source_addr) - @intCast(i64, target_sym.address); } parsed.payload = .{