zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit e2fdaea0b351860da5f560cbe0ec8f056b8047fd (tree)
parent 558bea2a76179fcc00779fdd326e5a866956fc9b
Author: Andrew Kelley <andrew@ziglang.org>
Date:   Fri, 29 Aug 2025 14:32:32 -0700

Revert "std.Io.Reader: work around llvm backend bug"

This reverts commit 530cc2c1111699d9d02ad9ebef94efa6b99f5205.

The compiler bug has been fixed.

Diffstat:
Mlib/std/Io/Reader.zig | 12++----------
1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/lib/std/Io/Reader.zig b/lib/std/Io/Reader.zig @@ -1163,11 +1163,7 @@ pub inline fn takeStruct(r: *Reader, comptime T: type, endian: std.builtin.Endia .@"struct" => |info| switch (info.layout) { .auto => @compileError("ill-defined memory layout"), .@"extern" => { - // This code works around https://github.com/ziglang/zig/issues/25067 - // by avoiding a call to `peekStructPointer`. - const struct_bytes = try r.takeArray(@sizeOf(T)); - var res: T = undefined; - @memcpy(@as([]u8, @ptrCast(&res)), struct_bytes); + var res = (try r.takeStructPointer(T)).*; if (native_endian != endian) std.mem.byteSwapAllFields(T, &res); return res; }, @@ -1192,11 +1188,7 @@ pub inline fn peekStruct(r: *Reader, comptime T: type, endian: std.builtin.Endia .@"struct" => |info| switch (info.layout) { .auto => @compileError("ill-defined memory layout"), .@"extern" => { - // This code works around https://github.com/ziglang/zig/issues/25067 - // by avoiding a call to `peekStructPointer`. - const struct_bytes = try r.peekArray(@sizeOf(T)); - var res: T = undefined; - @memcpy(@as([]u8, @ptrCast(&res)), struct_bytes); + var res = (try r.peekStructPointer(T)).*; if (native_endian != endian) std.mem.byteSwapAllFields(T, &res); return res; },