aboutsummaryrefslogtreecommitdiff
path: root/newlib/libm
diff options
context:
space:
mode:
authorKito Cheng <kito.cheng@sifive.com>2020-10-28 23:41:26 +0800
committerCorinna Vinschen <corinna@vinschen.de>2020-10-29 09:39:35 +0100
commit0020d2dd7c0eedcc19d20edeb7d66006927e202a (patch)
tree69cd1b158b9118eb596321fb8d58ce3705805bec /newlib/libm
parent7fa743ca9468d7725953ebdfb0d0b53ad126c14c (diff)
downloadnewlib-0020d2dd7c0eedcc19d20edeb7d66006927e202a.zip
newlib-0020d2dd7c0eedcc19d20edeb7d66006927e202a.tar.gz
newlib-0020d2dd7c0eedcc19d20edeb7d66006927e202a.tar.bz2
RISC-V: NaN should return 0 for finite[f]
Diffstat (limited to 'newlib/libm')
-rw-r--r--newlib/libm/machine/riscv/s_finite.c2
-rw-r--r--newlib/libm/machine/riscv/sf_finite.c2
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 f5336e5..1f1f224 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 f1cf5c6..a17b0fa 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"