aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2022-03-14 00:09:20 -0700
committerAndrew Kelley <andrew@ziglang.org>2022-03-14 00:11:46 -0700
commiteee989d2a00f99d95900515b48f981f2ea6bbe78 (patch)
tree2f532bec516305d93805a83bde691f7dc6e9d5d9
parent2a50a4629b19af1e72f55a41f45398be61bb7db1 (diff)
downloadzig-eee989d2a00f99d95900515b48f981f2ea6bbe78.tar.gz
zig-eee989d2a00f99d95900515b48f981f2ea6bbe78.zip
Sema: Type.abiSize asserts instead of using max with alignment
ABI size is guaranteed to always be >= alignment.
-rw-r--r--src/type.zig9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/type.zig b/src/type.zig
index 30c8838109..10f0b0325d 100644
--- a/src/type.zig
+++ b/src/type.zig
@@ -2573,15 +2573,14 @@ pub const Type = extern union {
.array_u8_sentinel_0 => self.castTag(.array_u8_sentinel_0).?.data + 1,
.array, .vector => {
const payload = self.cast(Payload.Array).?.data;
- const elem_size = @maximum(payload.elem_type.abiAlignment(target), payload.elem_type.abiSize(target));
+ const elem_size = payload.elem_type.abiSize(target);
+ assert(elem_size >= payload.elem_type.abiAlignment(target));
return payload.len * elem_size;
},
.array_sentinel => {
const payload = self.castTag(.array_sentinel).?.data;
- const elem_size = std.math.max(
- payload.elem_type.abiAlignment(target),
- payload.elem_type.abiSize(target),
- );
+ const elem_size = payload.elem_type.abiSize(target);
+ assert(elem_size >= payload.elem_type.abiAlignment(target));
return (payload.len + 1) * elem_size;
},
.i16, .u16 => return 2,