aboutsummaryrefslogtreecommitdiff
path: root/src/codegen/c.zig
diff options
context:
space:
mode:
authorJacob Young <jacobly0@users.noreply.github.com>2024-08-20 18:41:26 -0400
committerGitHub <noreply@github.com>2024-08-20 18:41:26 -0400
commit16d74809d44d6bb8db1a32923ef8db43d956e24d (patch)
tree78344089f8c4cc2bdc07ea74f0a47b8f500d2fcb /src/codegen/c.zig
parent0a70455095a19a4c18497e6786ca6139c1cc2892 (diff)
parent55864e98e08c9d44ee2ea6fc1f3a3c2a98042310 (diff)
downloadzig-16d74809d44d6bb8db1a32923ef8db43d956e24d.tar.gz
zig-16d74809d44d6bb8db1a32923ef8db43d956e24d.zip
Merge pull request #21140 from jacobly0/self-dwarf
Dwarf: inline calls progress
Diffstat (limited to 'src/codegen/c.zig')
-rw-r--r--src/codegen/c.zig7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/codegen/c.zig b/src/codegen/c.zig
index 7c35a178a0..397cb071b6 100644
--- a/src/codegen/c.zig
+++ b/src/codegen/c.zig
@@ -3293,7 +3293,7 @@ fn genBodyInner(f: *Function, body: []const Air.Inst.Index) error{ AnalysisFail,
.dbg_stmt => try airDbgStmt(f, inst),
.dbg_inline_block => try airDbgInlineBlock(f, inst),
- .dbg_var_ptr, .dbg_var_val => try airDbgVar(f, inst),
+ .dbg_var_ptr, .dbg_var_val, .dbg_arg_inline => try airDbgVar(f, inst),
.call => try airCall(f, inst, .auto),
.call_always_tail => .none,
@@ -4590,14 +4590,15 @@ fn airDbgInlineBlock(f: *Function, inst: Air.Inst.Index) !CValue {
fn airDbgVar(f: *Function, inst: Air.Inst.Index) !CValue {
const pt = f.object.dg.pt;
const zcu = pt.zcu;
+ const tag = f.air.instructions.items(.tag)[@intFromEnum(inst)];
const pl_op = f.air.instructions.items(.data)[@intFromEnum(inst)].pl_op;
- const name = f.air.nullTerminatedString(pl_op.payload);
+ const name: Air.NullTerminatedString = @enumFromInt(pl_op.payload);
const operand_is_undef = if (try f.air.value(pl_op.operand, pt)) |v| v.isUndefDeep(zcu) else false;
if (!operand_is_undef) _ = try f.resolveInst(pl_op.operand);
try reap(f, inst, &.{pl_op.operand});
const writer = f.object.writer();
- try writer.print("/* var:{s} */\n", .{name});
+ try writer.print("/* {s}:{s} */\n", .{ @tagName(tag), name.toSlice(f.air) });
return .none;
}