From b802a67562cc912213ebfc6ef8a380c775c999fe Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Thu, 24 Mar 2022 19:55:12 -0700 Subject: [PATCH] std.MultiArrayList: check size of element, not pointer Ever since a semi-recent language specification update, pointers to zero-sized types still have runtime bits. --- lib/std/multi_array_list.zig | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/std/multi_array_list.zig b/lib/std/multi_array_list.zig index 2af723d3a5..ae81b6c5e5 100644 --- a/lib/std/multi_array_list.zig +++ b/lib/std/multi_array_list.zig @@ -42,7 +42,10 @@ pub fn MultiArrayList(comptime S: type) type { return &[_]F{}; } const byte_ptr = self.ptrs[@enumToInt(field)]; - const casted_ptr: [*]F = if (@sizeOf([*]F) == 0) undefined else @ptrCast([*]F, @alignCast(@alignOf(F), byte_ptr)); + const casted_ptr: [*]F = if (@sizeOf(F) == 0) + undefined + else + @ptrCast([*]F, @alignCast(@alignOf(F), byte_ptr)); return casted_ptr[0..self.len]; }