aboutsummaryrefslogtreecommitdiff
path: root/src/Sema.zig
diff options
context:
space:
mode:
authorJacob Young <jacobly0@users.noreply.github.com>2024-03-29 20:18:09 -0400
committerJacob Young <jacobly0@users.noreply.github.com>2024-03-30 20:50:48 -0400
commitfb192df4f2d12dda5019e14bf6cab2693432cb36 (patch)
tree4965e60a86a7d46b38f9618884153e5e6b0b5a2e /src/Sema.zig
parent7580879e8bed9b0c670df110dbdaed76b2c3baf5 (diff)
downloadzig-fb192df4f2d12dda5019e14bf6cab2693432cb36.tar.gz
zig-fb192df4f2d12dda5019e14bf6cab2693432cb36.zip
cbe: fix uncovered bugs
Diffstat (limited to 'src/Sema.zig')
-rw-r--r--src/Sema.zig7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/Sema.zig b/src/Sema.zig
index 6061dbfea4..3c999e507e 100644
--- a/src/Sema.zig
+++ b/src/Sema.zig
@@ -36125,7 +36125,7 @@ fn resolveUnionLayout(sema: *Sema, ty: Type) CompileError!void {
// alignment is greater.
var size: u64 = 0;
var padding: u32 = 0;
- if (tag_align.compare(.gte, max_align)) {
+ if (tag_align.order(max_align).compare(.gte)) {
// {Tag, Payload}
size += tag_size;
size = max_align.forward(size);
@@ -36136,7 +36136,10 @@ fn resolveUnionLayout(sema: *Sema, ty: Type) CompileError!void {
} else {
// {Payload, Tag}
size += max_size;
- size = tag_align.forward(size);
+ size = switch (mod.getTarget().ofmt) {
+ .c => max_align,
+ else => tag_align,
+ }.forward(size);
size += tag_size;
const prev_size = size;
size = max_align.forward(size);