authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2023-01-21 17:17:34+01:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2023-01-21 17:17:34+01:00
log6fd1d7b37265f86d5926ed684e0301a6319497d7
tree34a60bf901d042814c9f66175df4346878e31b61
parent983e37340913383647727a7118c2824baf23d2ea

zld: fix 32bit build


1 files changed, 6 insertions(+), 3 deletions(-)

src/link/MachO/UnwindInfo.zig+6-3
......@@ -568,7 +568,8 @@ pub fn write(info: *UnwindInfo, zld: *Zld) !void {
568568 // Finalize missing address values
569569 rec.rangeStart += text_sect.addr - seg.vmaddr;
570570 if (rec.personalityFunction > 0) {
571 rec.personalityFunction = personalities[rec.personalityFunction - 1];
571 const index = math.cast(usize, rec.personalityFunction - 1) orelse return error.Overflow;
572 rec.personalityFunction = personalities[index];
572573 }
573574
574575 if (rec.compactUnwindEncoding > 0 and !UnwindEncoding.isDwarf(rec.compactUnwindEncoding, cpu_arch)) {
......@@ -653,13 +654,15 @@ pub fn write(info: *UnwindInfo, zld: *Zld) !void {
653654 try page.write(info, writer);
654655 const nwritten = cwriter.bytes_written - start;
655656 if (nwritten < second_level_page_bytes) {
656 try writer.writeByteNTimes(0, second_level_page_bytes - nwritten);
657 const offset = math.cast(usize, second_level_page_bytes - nwritten) orelse return error.Overflow;
658 try writer.writeByteNTimes(0, offset);
657659 }
658660 }
659661
660662 const padding = buffer.items.len - cwriter.bytes_written;
661663 if (padding > 0) {
662 mem.set(u8, buffer.items[cwriter.bytes_written..], 0);
664 const offset = math.cast(usize, cwriter.bytes_written) orelse return error.Overflow;
665 mem.set(u8, buffer.items[offset..], 0);
663666 }
664667
665668 try zld.file.pwriteAll(buffer.items, sect.offset);