aboutsummaryrefslogtreecommitdiff
path: root/src/arch/wasm/CodeGen.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2022-05-22 21:51:44 -0700
committerAndrew Kelley <andrew@ziglang.org>2022-05-24 15:34:52 -0700
commit3264abe3d8f658e1b7275d2be80e43eddfc098dc (patch)
treec4cb6d837e163fb19da5591e4cea90684b52e316 /src/arch/wasm/CodeGen.zig
parent60f0acd9b9c2bced47ba1c214460f34b73738f95 (diff)
downloadzig-3264abe3d8f658e1b7275d2be80e43eddfc098dc.tar.gz
zig-3264abe3d8f658e1b7275d2be80e43eddfc098dc.zip
stage2: fixes for error union semantics
* Sema: avoid unnecessary safety checks when an error set is empty. * Sema: make zirErrorToInt handle comptime errors that are represented as integers. * Sema: make empty error sets properly integrate with typeHasOnePossibleValue. * Type: correct the ABI alignment and size of error unions which have both zero-bit error set and zero-bit payload. The previous code did not account for the fact that we still need to store a bit for whether there is an error. * LLVM: lower error unions possibly with the payload first or with the error code first, depending on alignment. Previously it always put the error code first and used a padding array. * LLVM: lower functions which have an empty error set as the return type the same as anyerror, so that they can be used where fn()anyerror function pointers are expected. In such functions, Zig will lower ret to returning zero instead of void. As a result, one more behavior test is passing.
Diffstat (limited to 'src/arch/wasm/CodeGen.zig')
0 files changed, 0 insertions, 0 deletions