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); }