From 923ddd94a1419abfa9ab95718a7b7d2a8da7a5ec Mon Sep 17 00:00:00 2001 From: mlugg Date: Sat, 11 Oct 2025 11:10:33 +0100 Subject: [PATCH] std.posix: panic on unexpected error in `munmap` This is to help diagnose #25498. We can't use `unexpectedErrno` here, because `std.posix.munmap` is infallible. So, when the flag is set to report unexpected errnos, we just call `std.debug.panic` to provide details instead of doing `unreachable`. Pushing straight to master after running checks locally; there's no point waiting for CI on the PR just for this. --- lib/std/posix.zig | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/std/posix.zig b/lib/std/posix.zig index d6a5c27c7c..c05015c304 100644 --- a/lib/std/posix.zig +++ b/lib/std/posix.zig @@ -4991,7 +4991,9 @@ pub fn munmap(memory: []align(page_size_min) const u8) void { .SUCCESS => return, .INVAL => unreachable, // Invalid parameters. .NOMEM => unreachable, // Attempted to unmap a region in the middle of an existing mapping. - else => unreachable, + else => |e| if (unexpected_error_tracing) { + std.debug.panic("unexpected errno: {d} ({t})", .{ @intFromEnum(e), e }); + } else unreachable, } }