aboutsummaryrefslogtreecommitdiff
path: root/lib/std/debug.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2022-05-20 21:14:53 -0700
committerAndrew Kelley <andrew@ziglang.org>2022-05-20 21:50:23 -0700
commit1697a6f0443ca8896081f98bd8648bc7bdb2cc58 (patch)
treef0704b505b18292c2603271e256189a5075422dd /lib/std/debug.zig
parent1a92264b3d3f3e14f9a3b724fccefb5f5a38346f (diff)
downloadzig-1697a6f0443ca8896081f98bd8648bc7bdb2cc58.tar.gz
zig-1697a6f0443ca8896081f98bd8648bc7bdb2cc58.zip
LLVM: rework calling convention lowering
The previous implementation of calling conventions was hacky and broken. This commit reworks lowerFnParamTy into iterateParamTypes which returns enum tags indicating how to handle each parameter. This is then used in the three places that matter: * lowering a function type to llvm type * converting function parameters to the canonical type representation (with respect to isByRef). * converting canonical type representation to function arguments at callsites (again with respect to isByRef). As a result, we are one step closer to the C ABI tests passing. Before this commit, attempting to build them crashed the compiler. I isolated the broken function and verified that it now is lowered correctly. I will keep working on this one piece at a time until all the C ABI tests pass, and then I will enable all of them in the CI.
Diffstat (limited to 'lib/std/debug.zig')
0 files changed, 0 insertions, 0 deletions