diff options
| author | Jacob Young <jacobly0@users.noreply.github.com> | 2024-03-29 20:18:09 -0400 |
|---|---|---|
| committer | Jacob Young <jacobly0@users.noreply.github.com> | 2024-03-30 20:50:48 -0400 |
| commit | fb192df4f2d12dda5019e14bf6cab2693432cb36 (patch) | |
| tree | 4965e60a86a7d46b38f9618884153e5e6b0b5a2e /src/Sema.zig | |
| parent | 7580879e8bed9b0c670df110dbdaed76b2c3baf5 (diff) | |
| download | zig-fb192df4f2d12dda5019e14bf6cab2693432cb36.tar.gz zig-fb192df4f2d12dda5019e14bf6cab2693432cb36.zip | |
cbe: fix uncovered bugs
Diffstat (limited to 'src/Sema.zig')
| -rw-r--r-- | src/Sema.zig | 7 |
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); |
