diff options
author | Arne Döring <arne.doering@gmx.net> | 2018-11-08 20:17:37 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-08 20:17:37 +0100 |
commit | 6a57ec6d2ea85ebc279eaf0bea4efd81da8b6a06 (patch) | |
tree | d01b6b0c39bd6be4b32a69dc393ad08feaa28984 /compiler | |
parent | 3cf3c2d722775ee3fc265e1c53733645277171e5 (diff) | |
download | Nim-6a57ec6d2ea85ebc279eaf0bea4efd81da8b6a06.tar.gz |
NaN fixes for clang backend (#9652)
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/semfold.nim | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/compiler/semfold.nim b/compiler/semfold.nim index d9bec5e41..5ec702257 100644 --- a/compiler/semfold.nim +++ b/compiler/semfold.nim @@ -267,12 +267,7 @@ proc evalOp(m: TMagic, n, a, b, c: PNode; g: ModuleGraph): PNode = of mSubF64: result = newFloatNodeT(getFloat(a) - getFloat(b), n, g) of mMulF64: result = newFloatNodeT(getFloat(a) * getFloat(b), n, g) of mDivF64: - if getFloat(b) == 0.0: - if getFloat(a) == 0.0: result = newFloatNodeT(NaN, n, g) - elif getFloat(b).classify == fcNegZero: result = newFloatNodeT(-Inf, n, g) - else: result = newFloatNodeT(Inf, n, g) - else: - result = newFloatNodeT(getFloat(a) / getFloat(b), n, g) + result = newFloatNodeT(getFloat(a) / getFloat(b), n, g) of mMaxF64: if getFloat(a) > getFloat(b): result = newFloatNodeT(getFloat(a), n, g) else: result = newFloatNodeT(getFloat(b), n, g) |