diff options
| author | Jacob Young <jacobly0@users.noreply.github.com> | 2024-08-20 18:41:26 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-08-20 18:41:26 -0400 |
| commit | 16d74809d44d6bb8db1a32923ef8db43d956e24d (patch) | |
| tree | 78344089f8c4cc2bdc07ea74f0a47b8f500d2fcb /src/codegen/c.zig | |
| parent | 0a70455095a19a4c18497e6786ca6139c1cc2892 (diff) | |
| parent | 55864e98e08c9d44ee2ea6fc1f3a3c2a98042310 (diff) | |
| download | zig-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.zig | 7 |
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; } |
