commit 5626bb45d24cd4a57a4f6a1c0f41ec0feb276f7b (tree)
parent 58943fc6276c49b138c98bda5abac8be2806f94f
Author: Andrew Kelley <andrew@ziglang.org>
Date: Wed, 18 May 2022 14:46:04 -0700
Sema: fix comptime `@floatCast` downcast
Diffstat:
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/Sema.zig b/src/Sema.zig
@@ -7236,8 +7236,8 @@ fn zirFloatCast(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!A
),
}
- if (try sema.isComptimeKnown(block, operand_src, operand)) {
- return sema.coerce(block, dest_ty, operand, operand_src);
+ if (try sema.resolveMaybeUndefVal(block, operand_src, operand)) |operand_val| {
+ return sema.addConstant(dest_ty, try operand_val.floatCast(sema.arena, dest_ty, target));
}
if (dest_is_comptime_float) {
return sema.fail(block, src, "unable to cast runtime value to 'comptime_float'", .{});
diff --git a/test/behavior/cast.zig b/test/behavior/cast.zig
@@ -630,7 +630,9 @@ test "vector casts" {
}
test "@floatCast cast down" {
- if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
{
var double: f64 = 0.001534;