aboutsummaryrefslogtreecommitdiff
path: root/src/codegen/c.zig
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2022-03-15 16:42:26 +0200
committerVeikka Tuominen <git@vexu.eu>2022-03-16 09:34:26 +0200
commit03438118369605df178f4bfdb5b1a8ad6a349be7 (patch)
tree27ea1fa1f07ebc7f704f7d00331e08896a0354d9 /src/codegen/c.zig
parent0f112b9f6d390ad4c95b7bf214a8243ad9e3b9a7 (diff)
downloadzig-03438118369605df178f4bfdb5b1a8ad6a349be7.tar.gz
zig-03438118369605df178f4bfdb5b1a8ad6a349be7.zip
Sema: emit dbg_func around inline calls
Diffstat (limited to 'src/codegen/c.zig')
-rw-r--r--src/codegen/c.zig9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/codegen/c.zig b/src/codegen/c.zig
index 05ceb30379..c726f659a1 100644
--- a/src/codegen/c.zig
+++ b/src/codegen/c.zig
@@ -1687,6 +1687,7 @@ fn genBody(f: *Function, body: []const Air.Inst.Index) error{ AnalysisFail, OutO
.block => try airBlock(f, inst),
.bitcast => try airBitcast(f, inst),
.dbg_stmt => try airDbgStmt(f, inst),
+ .dbg_func => try airDbgFunc(f, inst),
.intcast => try airIntCast(f, inst),
.trunc => try airTrunc(f, inst),
.bool_to_int => try airBoolToInt(f, inst),
@@ -2660,6 +2661,14 @@ fn airDbgStmt(f: *Function, inst: Air.Inst.Index) !CValue {
return CValue.none;
}
+fn airDbgFunc(f: *Function, inst: Air.Inst.Index) !CValue {
+ const ty_pl = f.air.instructions.items(.data)[inst].ty_pl;
+ const writer = f.object.writer();
+ const function = f.air.values[ty_pl.payload].castTag(.function).?.data;
+ try writer.print("/* dbg func:{s} */\n", .{function.owner_decl.name});
+ return CValue.none;
+}
+
fn airDbgVar(f: *Function, inst: Air.Inst.Index) !CValue {
const pl_op = f.air.instructions.items(.data)[inst].pl_op;
const name = f.air.nullTerminatedString(pl_op.payload);