summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2011-09-19 16:59:10 -0400
committerRich Felker <dalias@aerifal.cx>2011-09-19 16:59:10 -0400
commit089aeb08a083d798b59fc84cbff9383f304b1b8f (patch)
treebd2f1aabbf3bfed36b74a5a4fd46eeda1b74b4f7 /src
parent53431b091b22a663a428c67f8c617740f5882706 (diff)
downloadmusl-089aeb08a083d798b59fc84cbff9383f304b1b8f.tar.gz
musl-089aeb08a083d798b59fc84cbff9383f304b1b8f.tar.bz2
musl-089aeb08a083d798b59fc84cbff9383f304b1b8f.tar.xz
musl-089aeb08a083d798b59fc84cbff9383f304b1b8f.zip
fix incorrect long double parameters on arm (and other future ports)
this was the cause of crashes in printf when attempting to print floating point values.
Diffstat (limited to 'src')
-rw-r--r--src/stdlib/frexpl.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/stdlib/frexpl.c b/src/stdlib/frexpl.c
index ecfff007..3472bf70 100644
--- a/src/stdlib/frexpl.c
+++ b/src/stdlib/frexpl.c
@@ -1,5 +1,8 @@
#include <math.h>
#include <inttypes.h>
+#include <float.h>
+
+#if LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
/* This version is for 80-bit little endian long double */
@@ -23,3 +26,12 @@ long double frexpl(long double x, int *e)
y.hw[4] |= 0x3ffe;
return y.ld;
}
+
+#else
+
+long double frexpl(long double x, int *e)
+{
+ return frexp(x, e);
+}
+
+#endif