authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-07-18 10:42:04-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-07-18 17:38:56-07:00
log3a3fd47a8ad5a026c318dfd68b511cfa8eed7564
tree16bfc2a882dfe60295fbb439b2b8dd4e173780bb
parent16ae68ec9bf8db37f445d6e07ae6269bcacb445e

std.debug: add assertAligned


1 files changed, 7 insertions(+), 0 deletions(-)

lib/std/debug.zig+7
...@@ -566,6 +566,13 @@ pub fn assertReadable(slice: []const volatile u8) void {...@@ -566,6 +566,13 @@ pub fn assertReadable(slice: []const volatile u8) void {
566 for (slice) |*byte| _ = byte.*;566 for (slice) |*byte| _ = byte.*;
567}567}
568568
569/// Invokes detectable illegal behavior when the provided array is not aligned
570/// to the provided amount.
571pub fn assertAligned(ptr: anytype, comptime alignment: std.mem.Alignment) void {
572 const aligned_ptr: *align(alignment.toByteUnits()) anyopaque = @alignCast(@ptrCast(ptr));
573 _ = aligned_ptr;
574}
575
569/// Equivalent to `@panic` but with a formatted message.576/// Equivalent to `@panic` but with a formatted message.
570pub fn panic(comptime format: []const u8, args: anytype) noreturn {577pub fn panic(comptime format: []const u8, args: anytype) noreturn {
571 @branchHint(.cold);578 @branchHint(.cold);