aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2024-09-04 15:55:38 +0200
committerJakub Konka <kubkon@jakubkonka.com>2024-09-04 15:55:38 +0200
commite1d5bb365b3b8d645fbdfc4ffb6a14ef3bb0e766 (patch)
tree87e84657c242c95177218185fe34bb5c6f69f035
parent516955dbdb6cb1a54a00e94dff516d5bfbe6dfc4 (diff)
downloadzig-e1d5bb365b3b8d645fbdfc4ffb6a14ef3bb0e766.tar.gz
zig-e1d5bb365b3b8d645fbdfc4ffb6a14ef3bb0e766.zip
elf: fix 32bit build
-rw-r--r--src/link/Elf/AtomList.zig10
-rw-r--r--src/link/Elf/eh_frame.zig2
2 files changed, 7 insertions, 5 deletions
diff --git a/src/link/Elf/AtomList.zig b/src/link/Elf/AtomList.zig
index 890f1872b5..51407ca6d9 100644
--- a/src/link/Elf/AtomList.zig
+++ b/src/link/Elf/AtomList.zig
@@ -85,8 +85,9 @@ pub fn write(list: AtomList, buffer: *std.ArrayList(u8), undefs: anytype, elf_fi
log.debug("writing atoms in section '{s}'", .{elf_file.getShString(osec.sh_name)});
- try buffer.ensureUnusedCapacity(list.size);
- buffer.appendNTimesAssumeCapacity(0, list.size);
+ const list_size = math.cast(usize, list.size) orelse return error.Overflow;
+ try buffer.ensureUnusedCapacity(list_size);
+ buffer.appendNTimesAssumeCapacity(0, list_size);
for (list.atoms.items) |ref| {
const atom_ptr = elf_file.atom(ref).?;
@@ -120,8 +121,9 @@ pub fn writeRelocatable(list: AtomList, buffer: *std.ArrayList(u8), elf_file: *E
log.debug("writing atoms in section '{s}'", .{elf_file.getShString(osec.sh_name)});
- try buffer.ensureUnusedCapacity(list.size);
- buffer.appendNTimesAssumeCapacity(0, list.size);
+ const list_size = math.cast(usize, list.size) orelse return error.Overflow;
+ try buffer.ensureUnusedCapacity(list_size);
+ buffer.appendNTimesAssumeCapacity(0, list_size);
for (list.atoms.items) |ref| {
const atom_ptr = elf_file.atom(ref).?;
diff --git a/src/link/Elf/eh_frame.zig b/src/link/Elf/eh_frame.zig
index a9e3e618cb..b520c94aaf 100644
--- a/src/link/Elf/eh_frame.zig
+++ b/src/link/Elf/eh_frame.zig
@@ -235,7 +235,7 @@ pub fn calcEhFrameSize(elf_file: *Elf) !usize {
var offset: usize = if (elf_file.zigObjectPtr()) |zo| blk: {
const sym = zo.symbol(zo.eh_frame_index orelse break :blk 0);
- break :blk sym.atom(elf_file).?.size;
+ break :blk math.cast(usize, sym.atom(elf_file).?.size) orelse return error.Overflow;
} else 0;
var cies = std.ArrayList(Cie).init(gpa);