aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMitchell Hashimoto <mitchell.hashimoto@gmail.com>2022-01-31 21:24:37 -0800
committerAndrew Kelley <andrew@ziglang.org>2022-02-01 11:21:23 -0700
commit970f954039ae91ffae51b71f408f1f787aadc98a (patch)
tree9ba8fc7d7a11ed8c294485b7f7b802679cca9cca /src
parent3e99495ed8d2a384501338edb4885e709d51bf74 (diff)
downloadzig-970f954039ae91ffae51b71f408f1f787aadc98a.tar.gz
zig-970f954039ae91ffae51b71f408f1f787aadc98a.zip
stage2: cmp_eq between untyped undefines values results in undef bool
Diffstat (limited to 'src')
-rw-r--r--src/Sema.zig6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/Sema.zig b/src/Sema.zig
index b35408a7a6..b25bdf0db4 100644
--- a/src/Sema.zig
+++ b/src/Sema.zig
@@ -9244,9 +9244,9 @@ fn cmpSelf(
const resolved_type = sema.typeOf(casted_lhs);
const runtime_src: LazySrcLoc = src: {
if (try sema.resolveMaybeUndefVal(block, lhs_src, casted_lhs)) |lhs_val| {
- if (lhs_val.isUndef()) return sema.addConstUndef(resolved_type);
+ if (lhs_val.isUndef()) return sema.addConstUndef(Type.initTag(.bool));
if (try sema.resolveMaybeUndefVal(block, rhs_src, casted_rhs)) |rhs_val| {
- if (rhs_val.isUndef()) return sema.addConstUndef(resolved_type);
+ if (rhs_val.isUndef()) return sema.addConstUndef(Type.initTag(.bool));
if (lhs_val.compare(op, rhs_val, resolved_type)) {
return Air.Inst.Ref.bool_true;
@@ -9265,7 +9265,7 @@ fn cmpSelf(
// bool eq/neq more efficiently.
if (resolved_type.zigTypeTag() == .Bool) {
if (try sema.resolveMaybeUndefVal(block, rhs_src, casted_rhs)) |rhs_val| {
- if (rhs_val.isUndef()) return sema.addConstUndef(resolved_type);
+ if (rhs_val.isUndef()) return sema.addConstUndef(Type.initTag(.bool));
return sema.runtimeBoolCmp(block, op, casted_lhs, rhs_val.toBool(), lhs_src);
}
}