From 906849c4f9d5b45f2cb4943785f9273c9a526b7e Mon Sep 17 00:00:00 2001 From: Kito Cheng Date: Wed, 28 Oct 2020 23:41:26 +0800 Subject: [PATCH] RISC-V: NaN should return 0 for finite[f] --- newlib/libm/machine/riscv/s_finite.c | 2 +- newlib/libm/machine/riscv/sf_finite.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/newlib/libm/machine/riscv/s_finite.c b/newlib/libm/machine/riscv/s_finite.c index f5336e5dc..1f1f2244d 100644 --- a/newlib/libm/machine/riscv/s_finite.c +++ b/newlib/libm/machine/riscv/s_finite.c @@ -44,7 +44,7 @@ int finite(double x) { long fclass = _fclass_d (x); - return (fclass & FCLASS_INF) == 0; + return (fclass & (FCLASS_INF | FCLASS_NAN)) == 0; } #else #include "../../common/s_finite.c" diff --git a/newlib/libm/machine/riscv/sf_finite.c b/newlib/libm/machine/riscv/sf_finite.c index f1cf5c6ce..a17b0fa36 100644 --- a/newlib/libm/machine/riscv/sf_finite.c +++ b/newlib/libm/machine/riscv/sf_finite.c @@ -41,7 +41,7 @@ int finitef(float x) { long fclass = _fclass_f (x); - return (fclass & FCLASS_INF) == 0; + return (fclass & (FCLASS_INF | FCLASS_NAN)) == 0; } #else #include "../../common/sf_finite.c"