diff options
| author | Veikka Tuominen <git@vexu.eu> | 2022-03-16 20:40:16 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-03-16 20:40:16 +0200 |
| commit | 49c0bb1f33044658909cae4351d931af497ee4e5 (patch) | |
| tree | abf9ecce7f08db5b5f92ed30e3fc3f40b926acc3 /src/codegen/c.zig | |
| parent | d4a7a9ac4cf64ef6bf0b1aed16282c3d8b47b431 (diff) | |
| parent | d83a26f068f42c6f9cafd25b7038b70553a496d8 (diff) | |
| download | zig-49c0bb1f33044658909cae4351d931af497ee4e5.tar.gz zig-49c0bb1f33044658909cae4351d931af497ee4e5.zip | |
Merge pull request #11177 from Vexu/dbg_func
Add debug info for inlined calls
Diffstat (limited to 'src/codegen/c.zig')
| -rw-r--r-- | src/codegen/c.zig | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/codegen/c.zig b/src/codegen/c.zig index 05ceb30379..358e7354dd 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -1726,6 +1726,10 @@ fn genBody(f: *Function, body: []const Air.Inst.Index) error{ AnalysisFail, OutO .dbg_var_val, => try airDbgVar(f, inst), + .dbg_inline_begin, + .dbg_inline_end, + => try airDbgInline(f, inst), + .call => try airCall(f, inst, .auto), .call_always_tail => try airCall(f, inst, .always_tail), .call_never_tail => try airCall(f, inst, .never_tail), @@ -2660,6 +2664,14 @@ fn airDbgStmt(f: *Function, inst: Air.Inst.Index) !CValue { return CValue.none; } +fn airDbgInline(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); |
