musl - musl - an implementation of the standard library for Linux-based systems

index : musl
musl - an implementation of the standard library for Linux-based systems
summary refs log tree commit diff
path: root/src/math/nextafter.c
diff options
context:
space:
mode:
authorSzabolcs Nagy <nsz@port70.net>2012年11月13日 10:12:07 +0100
committerSzabolcs Nagy <nsz@port70.net>2012年11月13日 10:12:07 +0100
commit662ed2006568f953290f5e0b40cce38252db78f4 (patch)
tree723999263be1ccb50d7d312f1d050c24a7659e47 /src/math/nextafter.c
parentcfbaba79a2dd380e580a247b8fd36af60c878e8f (diff)
downloadmusl-662ed2006568f953290f5e0b40cce38252db78f4.tar.gz
math: fix nextafter and nexttoward on maxdbl and maxflt input
old code (return x+x;) returns correct value and raises correct flags only if the result is stored as double (or float)
Diffstat (limited to 'src/math/nextafter.c')
-rw-r--r--src/math/nextafter.c 2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/math/nextafter.c b/src/math/nextafter.c
index a3b42c99..9ee82518 100644
--- a/src/math/nextafter.c
+++ b/src/math/nextafter.c
@@ -27,7 +27,7 @@ double nextafter(double x, double y)
e = ux.bits >> 52 & 0x7ff;
/* raise overflow if ux.value is infinite and x is finite */
if (e == 0x7ff)
- return x + x;
+ FORCE_EVAL(x+x);
/* raise underflow if ux.value is subnormal or zero */
if (e == 0)
FORCE_EVAL(x*x + ux.value*ux.value);
generated by cgit v1.2.1 (git 2.18.0) at 2025年10月07日 16:42:14 +0000

AltStyle によって変換されたページ (->オリジナル) /