authorgravatar for luuk@degram.devLuuk de Gram <luuk@degram.dev> 2023-06-14 20:03:01+02:00
committergravatar for luuk@degram.devLuuk de Gram <luuk@degram.dev> 2023-06-16 17:16:56+02:00
log1cfad29f10a557df986fc940dcce7620bbd5d4d9
tree27b4a68634bbb3f4fc0b1185ca420357fe4dc165
parent098b0b50ab3980a257ad0840034f21ef5349ac8b
signaturelock-open Commit is signed but in an unrecognized format.

codegen: fix union padding

This regressed during the internpool merges. This commit reinstates the padding logic for unions.

2 files changed, 4 insertions(+), 1 deletions(-)

src/codegen.zig+4
......@@ -598,6 +598,10 @@ pub fn generateSymbol(
598598 .fail => |em| return Result{ .fail = em },
599599 }
600600 }
601
602 if (layout.padding > 0) {
603 try code.writer().writeByteNTimes(0, layout.padding);
604 }
601605 },
602606 .memoized_call => unreachable,
603607 }
test/behavior/bugs/1381.zig-1
......@@ -17,7 +17,6 @@ test "union that needs padding bytes inside an array" {
1717 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
1818 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1919 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
20 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
2120
2221 var as = [_]A{
2322 A{ .B = B{ .D = 1 } },