aboutsummaryrefslogtreecommitdiff
path: root/src/Sema.zig
diff options
context:
space:
mode:
authormlugg <mlugg@mlugg.co.uk>2023-03-17 02:40:47 +0000
committerAndrew Kelley <andrew@ziglang.org>2023-03-17 15:55:02 -0400
commit71e873703ffc49138d95cb66636856062341c420 (patch)
tree420e5df26dce2a83d65fb6a26d6268264c47fde4 /src/Sema.zig
parent9f2aa3fbeec451021837ca6bca2baa47302f0468 (diff)
downloadzig-71e873703ffc49138d95cb66636856062341c420.tar.gz
zig-71e873703ffc49138d95cb66636856062341c420.zip
Sema: make @returnAddress return 0 at comptime
See also #14938. Resolves: #14931
Diffstat (limited to 'src/Sema.zig')
-rw-r--r--src/Sema.zig10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/Sema.zig b/src/Sema.zig
index cdbd8f8b41..0afce47e76 100644
--- a/src/Sema.zig
+++ b/src/Sema.zig
@@ -15454,9 +15454,13 @@ fn zirRetAddr(
block: *Block,
extended: Zir.Inst.Extended.InstData,
) CompileError!Air.Inst.Ref {
- const src = LazySrcLoc.nodeOffset(@bitCast(i32, extended.operand));
- try sema.requireRuntimeBlock(block, src, null);
- return try block.addNoOp(.ret_addr);
+ _ = extended;
+ if (block.is_comptime) {
+ // TODO: we could give a meaningful lazy value here. #14938
+ return sema.addIntUnsigned(Type.usize, 0);
+ } else {
+ return block.addNoOp(.ret_addr);
+ }
}
fn zirFrameAddress(