aboutsummaryrefslogtreecommitdiff
path: root/src/codegen.zig
diff options
context:
space:
mode:
authorLuuk de Gram <luuk@degram.dev>2022-05-23 22:06:27 +0200
committerAndrew Kelley <andrew@ziglang.org>2022-05-24 15:34:52 -0700
commit3a059ebe4c84a1e541bb3b2ccee2e7cc25686a4d (patch)
tree5b1db05ab7e4b261ffa9372b536ca39cbf577f39 /src/codegen.zig
parentc90a97f9be9ffef858b0e450de5006f61a12fafd (diff)
downloadzig-3a059ebe4c84a1e541bb3b2ccee2e7cc25686a4d.tar.gz
zig-3a059ebe4c84a1e541bb3b2ccee2e7cc25686a4d.zip
wasm: Fixes for error union semantics
Diffstat (limited to 'src/codegen.zig')
-rw-r--r--src/codegen.zig6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/codegen.zig b/src/codegen.zig
index 81b303ab82..0f411dc481 100644
--- a/src/codegen.zig
+++ b/src/codegen.zig
@@ -714,7 +714,7 @@ pub fn generateSymbol(
const is_payload = typed_value.val.errorUnionIsPayload();
if (!payload_ty.hasRuntimeBitsIgnoreComptime()) {
- const err_val = if (!is_payload) typed_value.val else Value.initTag(.zero);
+ const err_val = if (is_payload) Value.initTag(.zero) else typed_value.val;
return generateSymbol(bin_file, src_loc, .{
.ty = error_ty,
.val = err_val,
@@ -763,7 +763,7 @@ pub fn generateSymbol(
}
// Payload size is larger than error set, so emit our error set last
- if (error_align < payload_align) {
+ if (error_align <= payload_align) {
const begin = code.items.len;
switch (try generateSymbol(bin_file, src_loc, .{
.ty = error_ty,
@@ -794,7 +794,7 @@ pub fn generateSymbol(
try code.writer().writeInt(u32, kv.value, endian);
},
else => {
- try code.writer().writeByteNTimes(0, @intCast(usize, typed_value.ty.abiSize(target)));
+ try code.writer().writeByteNTimes(0, @intCast(usize, Type.anyerror.abiSize(target)));
},
}
return Result{ .appended = {} };