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:
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;