zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 939ec878a00803502f2e07347c09fa6736c5f44a (tree)
parent 60242e96dfd509eeb7a5746128410f471eb06dac
Author: LemonBoy <thatlemon@gmail.com>
Date:   Mon,  6 May 2019 21:41:08 +0200

Fix edge case in addXf3

The operands may be zero, use the wrapping operators and avoid a
spurious integer-overflow error.

Diffstat:
Mstd/special/compiler_rt/addXf3.zig | 4++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/std/special/compiler_rt/addXf3.zig b/std/special/compiler_rt/addXf3.zig @@ -78,8 +78,8 @@ fn addXf3(comptime T: type, a: T, b: T) T { const infRep = @bitCast(Z, std.math.inf(T)); // Detect if a or b is zero, infinity, or NaN. - if (aAbs - Z(1) >= infRep - Z(1) or - bAbs - Z(1) >= infRep - Z(1)) + if (aAbs -% Z(1) >= infRep - Z(1) or + bAbs -% Z(1) >= infRep - Z(1)) { // NaN + anything = qNaN if (aAbs > infRep) return @bitCast(T, @bitCast(Z, a) | quietBit);