Skip to content

Commit

Permalink
std: remove workaround for fixed bug
Browse files Browse the repository at this point in the history
The miscompilation in question has been fixed upstream in LLVM 13.

closes #8117
  • Loading branch information
andrewrk committed Sep 14, 2022
1 parent 0a89624 commit 68f2d6c
Showing 1 changed file with 3 additions and 15 deletions.
18 changes: 3 additions & 15 deletions lib/std/multi_array_list.zig
Original file line number Diff line number Diff line change
Expand Up @@ -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());
Expand Down Expand Up @@ -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());
Expand All @@ -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;
Expand Down

0 comments on commit 68f2d6c

Please sign in to comment.