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.
This commit is contained in:
mlugg 2025-10-11 11:10:33 +01:00
parent 2e31077fe0
commit 923ddd94a1
No known key found for this signature in database
GPG Key ID: 3F5B7DCCBF4AF02E

View File

@ -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,
}
}