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.
This commit is contained in:
Rich Felker 2011-09-19 16:59:10 -04:00
parent 53431b091b
commit 089aeb08a0
2 changed files with 22 additions and 10 deletions

View File

@ -1,14 +1,14 @@
#define FLT_ROUNDS 1
#define FLT_EVAL_METHOD 2
#define FLT_EVAL_METHOD 0
#define LDBL_MIN 3.3621031431120935063e-4932L
#define LDBL_MAX 1.1897314953572317650e+4932L
#define LDBL_EPSILON 1.0842021724855044340e-19L
#define LDBL_MIN 2.2250738585072014e-308
#define LDBL_MAX 1.7976931348623157e+308
#define LDBL_EPSILON 2.2204460492503131e-16
#define LDBL_MANT_DIG 64
#define LDBL_MIN_EXP (-16381)
#define LDBL_MAX_EXP 16384
#define LDBL_MANT_DIG 53
#define LDBL_MIN_EXP (-1021)
#define LDBL_MAX_EXP 1024
#define LDBL_DIG 18
#define LDBL_MIN_10_EXP (-4931)
#define LDBL_MAX_10_EXP 4932
#define LDBL_DIG 15
#define LDBL_MIN_10_EXP (-307)
#define LDBL_MAX_10_EXP 308

View File

@ -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