motiejus/zig

fork of https://codeberg.org/ziglang/zig
git clone https://git.jakstys.lt/motiejus/zig.git
Log | Tree | Refs | README | LICENSE

commit 68f2d6cb245599e922c5758c8de9036286371f2c (tree)
parent 0a89624d599cfcb884946dfb938945f399df085a
Author: Andrew Kelley <andrew@ziglang.org>
Date:   Tue, 13 Sep 2022 18:19:36 -0700

std: remove workaround for fixed bug

The miscompilation in question has been fixed upstream in LLVM 13.

closes #8117

Diffstat:
Mlib/std/multi_array_list.zig | 18+++---------------
1 file changed, 3 insertions(+), 15 deletions(-)

diff --git a/lib/std/multi_array_list.zig b/lib/std/multi_array_list.zig @@ -320,11 +320,7 @@ pub fn MultiArrayList(comptime S: type) type { inline for (fields) |field_info, i| { if (@sizeOf(field_info.field_type) != 0) { const field = @intToEnum(Field, i); - // TODO we should be able to use std.mem.copy here but it causes a - // test failure on aarch64 with -OReleaseFast - const src_slice = mem.sliceAsBytes(self_slice.items(field)); - const dst_slice = mem.sliceAsBytes(other_slice.items(field)); - @memcpy(dst_slice.ptr, src_slice.ptr, src_slice.len); + mem.copy(field_info.field_type, other_slice.items(field), self_slice.items(field)); } } gpa.free(self.allocatedBytes()); @@ -388,11 +384,7 @@ pub fn MultiArrayList(comptime S: type) type { inline for (fields) |field_info, i| { if (@sizeOf(field_info.field_type) != 0) { const field = @intToEnum(Field, i); - // TODO we should be able to use std.mem.copy here but it causes a - // test failure on aarch64 with -OReleaseFast - const src_slice = mem.sliceAsBytes(self_slice.items(field)); - const dst_slice = mem.sliceAsBytes(other_slice.items(field)); - @memcpy(dst_slice.ptr, src_slice.ptr, src_slice.len); + mem.copy(field_info.field_type, other_slice.items(field), self_slice.items(field)); } } gpa.free(self.allocatedBytes()); @@ -411,11 +403,7 @@ pub fn MultiArrayList(comptime S: type) type { inline for (fields) |field_info, i| { if (@sizeOf(field_info.field_type) != 0) { const field = @intToEnum(Field, i); - // TODO we should be able to use std.mem.copy here but it causes a - // test failure on aarch64 with -OReleaseFast - const src_slice = mem.sliceAsBytes(self_slice.items(field)); - const dst_slice = mem.sliceAsBytes(result_slice.items(field)); - @memcpy(dst_slice.ptr, src_slice.ptr, src_slice.len); + mem.copy(field_info.field_type, result_slice.items(field), self_slice.items(field)); } } return result;