From 1cfad29f10a557df986fc940dcce7620bbd5d4d9 Mon Sep 17 00:00:00 2001 From: Luuk de Gram Date: Wed, 14 Jun 2023 20:03:01 +0200 Subject: [PATCH] codegen: fix union padding This regressed during the internpool merges. This commit reinstates the padding logic for unions. --- src/codegen.zig | 4 ++++ test/behavior/bugs/1381.zig | 1 - 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/codegen.zig b/src/codegen.zig index b39c3c5ec0..cd1ed53307 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -598,6 +598,10 @@ pub fn generateSymbol( .fail => |em| return Result{ .fail = em }, } } + + if (layout.padding > 0) { + try code.writer().writeByteNTimes(0, layout.padding); + } }, .memoized_call => unreachable, } diff --git a/test/behavior/bugs/1381.zig b/test/behavior/bugs/1381.zig index f35c963df3..90941de341 100644 --- a/test/behavior/bugs/1381.zig +++ b/test/behavior/bugs/1381.zig @@ -17,7 +17,6 @@ test "union that needs padding bytes inside an array" { if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; var as = [_]A{ A{ .B = B{ .D = 1 } },