diff options
Diffstat (limited to 'newlib/libm/common/sf_fdim.c')
-rw-r--r-- | newlib/libm/common/sf_fdim.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/newlib/libm/common/sf_fdim.c b/newlib/libm/common/sf_fdim.c index 80221ac..fe34909 100644 --- a/newlib/libm/common/sf_fdim.c +++ b/newlib/libm/common/sf_fdim.c @@ -15,8 +15,10 @@ #endif { int c = __fpclassifyf(x); - if (c == FP_NAN || c == FP_INFINITE) - return HUGE_VAL; + if (c == FP_NAN) return(x); + if (__fpclassifyf(y) == FP_NAN) return(y); + if (c == FP_INFINITE) + return HUGE_VALF; return x > y ? x - y : 0.0; } |