forked from pool/glibc
35b77f97b8
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
38 lines
1.1 KiB
Diff
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;
|
|
}
|