authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-08-27 08:32:36+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-08-28 06:24:05+02:00
loga2e691d589ac1d234ee624fdf8fa931d89a719b1
tree89fd5f6219eab4659f808036cfae0eb32b8b060f
parente585103306f5b69a62c71e8462dc78a8ef2da9f9
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

Revert "add a workaround for miscompilation regarding alignment"

This reverts commit 149aa9afb7b57340c5dd7be8032b843fe439b668.

1 files changed, 3 insertions(+), 14 deletions(-)

lib/std/zig/Server.zig+3-14
......@@ -124,9 +124,9 @@ pub fn receiveMessage(s: *Server) !InMessage.Header {
124124 const buf = fifo.readableSlice(0);
125125 assert(fifo.readableLength() == buf.len);
126126 if (buf.len >= @sizeOf(Header)) {
127 // workaround for https://github.com/ziglang/zig/issues/14904
128 const bytes_len = bswap_and_workaround_u32(buf[4..][0..4]);
129 const tag = bswap_and_workaround_tag(buf[0..][0..4]);
127 const header: *align(1) const Header = @ptrCast(buf[0..@sizeOf(Header)]);
128 const bytes_len = bswap(header.bytes_len);
129 const tag = bswap(header.tag);
130130
131131 if (buf.len - @sizeOf(Header) >= bytes_len) {
132132 fifo.discard(@sizeOf(Header));
......@@ -307,17 +307,6 @@ fn bswap_u32_array(slice: []u32) void {
307307 for (slice) |*elem| elem.* = @byteSwap(elem.*);
308308}
309309
310/// workaround for https://github.com/ziglang/zig/issues/14904
311fn bswap_and_workaround_u32(bytes_ptr: *const [4]u8) u32 {
312 return std.mem.readInt(u32, bytes_ptr, .little);
313}
314
315/// workaround for https://github.com/ziglang/zig/issues/14904
316fn bswap_and_workaround_tag(bytes_ptr: *const [4]u8) InMessage.Tag {
317 const int = std.mem.readInt(u32, bytes_ptr, .little);
318 return @as(InMessage.Tag, @enumFromInt(int));
319}
320
321310const OutMessage = std.zig.Server.Message;
322311const InMessage = std.zig.Client.Message;
323312