diff options
| author | Jacob Young <jacobly0@users.noreply.github.com> | 2023-05-29 21:47:34 -0400 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2023-06-10 20:47:57 -0700 |
| commit | a803e9cf48e9566638e6ec1e23fe0b885e2651ee (patch) | |
| tree | 931d88834f2a1292dffb4a44207b2295d626212b /src/Sema.zig | |
| parent | 66ae42bb72a9ad4b1cd44b32fa5be322b07a5ffb (diff) | |
| download | zig-a803e9cf48e9566638e6ec1e23fe0b885e2651ee.tar.gz zig-a803e9cf48e9566638e6ec1e23fe0b885e2651ee.zip | |
Sema: fix vector comparison and interning of -0
Diffstat (limited to 'src/Sema.zig')
| -rw-r--r-- | src/Sema.zig | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/Sema.zig b/src/Sema.zig index 452efc8583..d25b022254 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -34538,10 +34538,13 @@ fn compareScalar( rhs: Value, ty: Type, ) CompileError!bool { + const mod = sema.mod; + const coerced_lhs = try mod.getCoerced(lhs, ty); + const coerced_rhs = try mod.getCoerced(rhs, ty); switch (op) { - .eq => return sema.valuesEqual(lhs, rhs, ty), - .neq => return !(try sema.valuesEqual(lhs, rhs, ty)), - else => return Value.compareHeteroAdvanced(lhs, op, rhs, sema.mod, sema), + .eq => return sema.valuesEqual(coerced_lhs, coerced_rhs, ty), + .neq => return !(try sema.valuesEqual(coerced_lhs, coerced_rhs, ty)), + else => return Value.compareHeteroAdvanced(coerced_lhs, op, coerced_rhs, mod, sema), } } |
