From 002ee8e6d38024b9a7db90347c3fb9189edd1bc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Wed, 17 Jun 2026 07:16:33 +0200 Subject: [PATCH] std.os.linux: make errno() accept u64 instead of usize lseek() on x32/n32 returns u64 despite usize == u32. --- lib/std/os/linux.zig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/std/os/linux.zig b/lib/std/os/linux.zig index 4f45396e1adac4ed14e752a1359365420e8e8114..fd0f94a8201b59d667ad45e01b5f6112bc3cf5b5 100644 --- a/lib/std/os/linux.zig +++ b/lib/std/os/linux.zig @@ -752,8 +752,8 @@ fn splitValue64(val: i64) [2]u32 { } /// Get the errno from a syscall return value. SUCCESS means no error. -pub fn errno(r: usize) E { - const signed_r: isize = @bitCast(r); +pub fn errno(r: u64) E { + const signed_r: i32 = @bitCast(@as(u32, @truncate(r))); const int = if (signed_r > -4096 and signed_r < 0) -signed_r else 0; return @enumFromInt(int); } -- 2.54.0