aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuuk de Gram <luuk@degram.dev>2023-06-14 20:03:01 +0200
committerLuuk de Gram <luuk@degram.dev>2023-06-16 17:16:56 +0200
commit1cfad29f10a557df986fc940dcce7620bbd5d4d9 (patch)
tree27b4a68634bbb3f4fc0b1185ca420357fe4dc165
parent098b0b50ab3980a257ad0840034f21ef5349ac8b (diff)
downloadzig-1cfad29f10a557df986fc940dcce7620bbd5d4d9.tar.gz
zig-1cfad29f10a557df986fc940dcce7620bbd5d4d9.zip
codegen: fix union padding
This regressed during the internpool merges. This commit reinstates the padding logic for unions.
-rw-r--r--src/codegen.zig4
-rw-r--r--test/behavior/bugs/1381.zig1
2 files changed, 4 insertions, 1 deletions
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 } },