aboutsummaryrefslogtreecommitdiff
path: root/src/codegen/c.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2021-12-21 14:32:02 -0700
committerAndrew Kelley <andrew@ziglang.org>2021-12-21 14:32:02 -0700
commit8b6ea9ffe78480f9c73e9dee24edc5975c7f064e (patch)
treefbd338ce3434338ab29336fae2022037db1514b7 /src/codegen/c.zig
parent4cb2f11693b1bf13770b8ad6a8b8a1e37101a516 (diff)
downloadzig-8b6ea9ffe78480f9c73e9dee24edc5975c7f064e.tar.gz
zig-8b6ea9ffe78480f9c73e9dee24edc5975c7f064e.zip
C backend: implement `ret_addr`
Diffstat (limited to 'src/codegen/c.zig')
-rw-r--r--src/codegen/c.zig4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/codegen/c.zig b/src/codegen/c.zig
index 12ce813a0f..86ec58457f 100644
--- a/src/codegen/c.zig
+++ b/src/codegen/c.zig
@@ -2214,7 +2214,9 @@ fn airBreakpoint(f: *Function) !CValue {
}
fn airRetAddr(f: *Function) !CValue {
- return f.fail("TODO implement codegen for airRetAddr", .{});
+ const local = try f.allocLocal(Type.usize, .Const);
+ try f.object.writer().writeAll(" = zig_return_address();\n");
+ return local;
}
fn airFence(f: *Function, inst: Air.Inst.Index) !CValue {