Commit eac2bbfec9

Andrew Kelley <andrew@ziglang.org>
2025-09-09 03:18:27
std.Io.Writer.writeSliceEndian: add compile error
check when an auto-layout struct is attempted to be memory reinterpreted and written out. it would be writing undefined memory
1 parent 1872c85
Changed files (1)
lib
std
lib/std/Io/Writer.zig
@@ -865,6 +865,11 @@ pub inline fn writeSliceEndian(
     slice: []const Elem,
     endian: std.builtin.Endian,
 ) Error!void {
+    switch (@typeInfo(Elem)) {
+        .@"struct" => |info| comptime assert(info.layout != .auto),
+        .int, .@"enum" => {},
+        else => @compileError("ill-defined memory layout"),
+    }
     if (native_endian == endian) {
         return writeAll(w, @ptrCast(slice));
     } else {