From 68f2d6cb245599e922c5758c8de9036286371f2c Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Tue, 13 Sep 2022 18:19:36 -0700 Subject: [PATCH] std: remove workaround for fixed bug The miscompilation in question has been fixed upstream in LLVM 13. closes #8117 --- lib/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 index 11aec707ab..e6f7ea4fc3 100644 --- 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;