aboutsummaryrefslogtreecommitdiff
path: root/src/Sema.zig
diff options
context:
space:
mode:
authormlugg <mlugg@mlugg.co.uk>2023-09-22 23:53:33 +0100
committerMatthew Lugg <mlugg@mlugg.co.uk>2023-09-23 14:45:59 +0100
commitce919ccf45951856a762ffdb8ef850301cd8c588 (patch)
tree93c3b3365da7ab16bd29fd3b7e650d8496f24aac /src/Sema.zig
parent05f78adeaf7685e6107da7c3533b233ce19a54b8 (diff)
downloadzig-ce919ccf45951856a762ffdb8ef850301cd8c588.tar.gz
zig-ce919ccf45951856a762ffdb8ef850301cd8c588.zip
Sema: do not emit dbg_var_val and dbg_var_ptr instructions for comptime-only types
Diffstat (limited to 'src/Sema.zig')
-rw-r--r--src/Sema.zig14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/Sema.zig b/src/Sema.zig
index 0421ee89da..a14ee6c63b 100644
--- a/src/Sema.zig
+++ b/src/Sema.zig
@@ -6526,15 +6526,13 @@ fn addDbgVar(
) CompileError!void {
const mod = sema.mod;
const operand_ty = sema.typeOf(operand);
- switch (air_tag) {
- .dbg_var_ptr => {
- if (!(try sema.typeHasRuntimeBits(operand_ty.childType(mod)))) return;
- },
- .dbg_var_val => {
- if (!(try sema.typeHasRuntimeBits(operand_ty))) return;
- },
+ const val_ty = switch (air_tag) {
+ .dbg_var_ptr => operand_ty.childType(mod),
+ .dbg_var_val => operand_ty,
else => unreachable,
- }
+ };
+ if (try sema.typeRequiresComptime(val_ty)) return;
+ if (!(try sema.typeHasRuntimeBits(val_ty))) return;
try sema.queueFullTypeResolution(operand_ty);