glibc/glibc-2.3.3-amd64-s_ceil.diff
OBS User autobuild ff113156e3 Accepting request 24314 from Base:System
Copy from Base:System/glibc based on submit request 24314 from user pbaudis

OBS-URL: https://build.opensuse.org/request/show/24314
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glibc?expand=0&rev=13
2009-11-16 08:54:19 +00:00

38 lines
1.1 KiB
Diff

This fixes ceil (x) for -1.0 < x < 0.
Index: sysdeps/x86_64/fpu/s_ceil.c
===================================================================
--- sysdeps/x86_64/fpu/s_ceil.c.orig
+++ sysdeps/x86_64/fpu/s_ceil.c
@@ -34,7 +34,11 @@ double __ceil(double x)
/* x is +zero or -zero; return the same zero */
return x;
else if (xneg) /* x < 0.0 */
- return 0.0;
+ {
+ /* Return zero with the sign of x */
+ PUT_BITS_DP64(SIGNBIT_DP64, x);
+ return x;
+ }
else
return 1.0;
}
Index: sysdeps/x86_64/fpu/s_ceilf.c
===================================================================
--- sysdeps/x86_64/fpu/s_ceilf.c.orig
+++ sysdeps/x86_64/fpu/s_ceilf.c
@@ -34,7 +34,11 @@ float __ceilf(float x)
/* x is +zero or -zero; return the same zero */
return x;
else if (xneg) /* x < 0.0 */
- return 0.0F;
+ {
+ /* Return zero with the sign of x */
+ PUT_BITS_SP32(SIGNBIT_SP32, x);
+ return x;
+ }
else
return 1.0F;
}