@@ -85046,13 +85046,15 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
85046
85046
.data = .{ .ip_index = old_inline_func },
85047
85047
});
85048
85048
},
85049
- .dbg_var_ptr,
85050
- .dbg_var_val,
85051
- .dbg_arg_inline,
85052
- => |air_tag| if (use_old) try cg.airDbgVar(inst) else if (!cg.mod.strip) {
85049
+ .dbg_var_ptr, .dbg_var_val, .dbg_arg_inline => |air_tag| if (use_old) try cg.airDbgVar(inst) else if (!cg.mod.strip) {
85053
85050
const pl_op = air_datas[@intFromEnum(inst)].pl_op;
85054
85051
const air_name: Air.NullTerminatedString = @enumFromInt(pl_op.payload);
85055
- const ty = cg.typeOf(pl_op.operand);
85052
+ const op_ty = cg.typeOf(pl_op.operand);
85053
+ const local_ty = switch (air_tag) {
85054
+ else => unreachable,
85055
+ .dbg_var_ptr => op_ty.childType(zcu),
85056
+ .dbg_var_val, .dbg_arg_inline => op_ty,
85057
+ };
85056
85058
var ops = try cg.tempsFromOperands(inst, .{pl_op.operand});
85057
85059
var mcv = ops[0].tracking(cg).short;
85058
85060
switch (mcv) {
@@ -85076,10 +85078,10 @@ fn genBody(cg: *CodeGen, body: []const Air.Inst.Index) InnerError!void {
85076
85078
},
85077
85079
else => try cg.addString(air_name.toSlice(cg.air)),
85078
85080
},
85079
- .type = ty .toIntern(),
85081
+ .type = local_ty .toIntern(),
85080
85082
});
85081
85083
85082
- try cg.genLocalDebugInfo(air_tag, ty , ops[0].tracking(cg).short);
85084
+ try cg.genLocalDebugInfo(air_tag, local_ty , ops[0].tracking(cg).short);
85083
85085
try ops[0].die(cg);
85084
85086
},
85085
85087
.is_null => if (use_old) try cg.airIsNull(inst) else {
@@ -174364,7 +174366,12 @@ fn airDbgVar(cg: *CodeGen, inst: Air.Inst.Index) !void {
174364
174366
const air_tag = cg.air.instructions.items(.tag)[@intFromEnum(inst)];
174365
174367
const pl_op = cg.air.instructions.items(.data)[@intFromEnum(inst)].pl_op;
174366
174368
const air_name: Air.NullTerminatedString = @enumFromInt(pl_op.payload);
174367
- const ty = cg.typeOf(pl_op.operand);
174369
+ const op_ty = cg.typeOf(pl_op.operand);
174370
+ const local_ty = switch (air_tag) {
174371
+ else => unreachable,
174372
+ .dbg_var_ptr => op_ty.childType(cg.pt.zcu),
174373
+ .dbg_var_val, .dbg_arg_inline => op_ty,
174374
+ };
174368
174375
174369
174376
try cg.mir_locals.append(cg.gpa, .{
174370
174377
.name = switch (air_name) {
@@ -174374,10 +174381,10 @@ fn airDbgVar(cg: *CodeGen, inst: Air.Inst.Index) !void {
174374
174381
},
174375
174382
else => try cg.addString(air_name.toSlice(cg.air)),
174376
174383
},
174377
- .type = ty .toIntern(),
174384
+ .type = local_ty .toIntern(),
174378
174385
});
174379
174386
174380
- try cg.genLocalDebugInfo(air_tag, ty , try cg.resolveInst(pl_op.operand));
174387
+ try cg.genLocalDebugInfo(air_tag, local_ty , try cg.resolveInst(pl_op.operand));
174381
174388
return cg.finishAir(inst, .unreach, .{ pl_op.operand, .none, .none });
174382
174389
}
174383
174390
0 commit comments