diff --git a/src/arch/wasm/CodeGen.zig b/src/arch/wasm/CodeGen.zig index 2072ff1506..d4be9bf139 100644 --- a/src/arch/wasm/CodeGen.zig +++ b/src/arch/wasm/CodeGen.zig @@ -1726,8 +1726,8 @@ fn isByRef(ty: Type, target: std.Target) bool { .Array, .Frame, - .Union, - => { + => return ty.hasRuntimeBitsIgnoreComptime(), + .Union => { if (ty.castTag(.@"union")) |union_ty| { if (union_ty.data.layout == .Packed) { return ty.abiSize(target) > 8; diff --git a/src/codegen.zig b/src/codegen.zig index 692c55e380..adce183833 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -611,6 +611,10 @@ pub fn generateSymbol( } } + if (layout.padding > 0) { + try code.writer().writeByteNTimes(0, layout.padding); + } + return Result.ok; }, .Optional => {