[PATCH 1/2] RISC-V: NaN should return 0 for finite[f]

Kito Cheng kito.cheng@sifive.com
Wed Oct 28 15:41:26 GMT 2020


---
 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"
-- 
2.28.0



More information about the Newlib mailing list