summaryrefslogtreecommitdiffstats
path: root/lib/libm/src
diff options
context:
space:
mode:
authornaddy <naddy@openbsd.org>2015-08-12 19:19:12 +0000
committernaddy <naddy@openbsd.org>2015-08-12 19:19:12 +0000
commitb0c4c1129e02d987c83ed4ea3855981b08755c0c (patch)
tree9f6d71850580678bce1d982b95f893411aa92476 /lib/libm/src
parentStart the rework of the /etc/rc shell script. (diff)
downloadwireguard-openbsd-b0c4c1129e02d987c83ed4ea3855981b08755c0c.tar.xz
wireguard-openbsd-b0c4c1129e02d987c83ed4ea3855981b08755c0c.zip
fix a case where ceill() returns 1.0L: in the x86 extended precision format
the fraction part has no implicit bit ok deraadt@
Diffstat (limited to 'lib/libm/src')
-rw-r--r--lib/libm/src/ld80/s_ceill.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/libm/src/ld80/s_ceill.c b/lib/libm/src/ld80/s_ceill.c
index bff5277806f..0d420693d18 100644
--- a/lib/libm/src/ld80/s_ceill.c
+++ b/lib/libm/src/ld80/s_ceill.c
@@ -37,7 +37,7 @@ ceill(long double x)
if(jj0<0) { /* raise inexact if x != 0 */
if(huge+x>0.0) {/* return 0*sign(x) if |x|<1 */
if(sx) {se=0x8000;i0=0;i1=0;}
- else if((i0|i1)!=0) { se=0x3fff;i0=0;i1=0;}
+ else if((i0|i1)!=0) { se=0x3fff;i0=0x80000000;i1=0;}
}
} else {
i = (0x7fffffff)>>jj0;