mirror of
https://review.haiku-os.org/buildtools
synced 2024-11-23 07:18:49 +01:00
gcc2: fix LDBL_MIN, LDBL_MAX, and LDBL_EPSILON
While the union trick used there gave the correct results, it made the defines non-constants so they couldn't be used properly in some cases. In particular, this makes the testsuite for gettext and some other GNU packages fail as they explicitly test for these being constants.
This commit is contained in:
parent
c700a4fe64
commit
4319c0ca13
@ -74,20 +74,13 @@
|
||||
#define LDBL_DIG 18
|
||||
/* Difference between 1.0 and the minimum long double greater than 1.0 */
|
||||
#undef LDBL_EPSILON
|
||||
#ifndef __LDBL_UNION__
|
||||
#define __LDBL_UNION__
|
||||
union __convert_long_double {
|
||||
unsigned __convert_long_double_i[4];
|
||||
long double __convert_long_double_d;
|
||||
};
|
||||
#endif
|
||||
#define LDBL_EPSILON (__extension__ ((union __convert_long_double) {__convert_long_double_i: {0x0, 0x80000000, 0x3fc0, 0x0}}).__convert_long_double_d)
|
||||
#define LDBL_EPSILON 0x1p-63l
|
||||
/* Minimum int x such that FLT_RADIX**(x-1) is a normalised long double */
|
||||
#undef LDBL_MIN_EXP
|
||||
#define LDBL_MIN_EXP (-16381)
|
||||
/* Minimum normalised long double */
|
||||
#undef LDBL_MIN
|
||||
#define LDBL_MIN (__extension__ ((union __convert_long_double) {__convert_long_double_i: {0x0, 0x80000000, 0x1, 0x0}}).__convert_long_double_d)
|
||||
#define LDBL_MIN 0x1p-16382l
|
||||
/* Minimum int x such that 10**x is a normalised long double */
|
||||
#undef LDBL_MIN_10_EXP
|
||||
#define LDBL_MIN_10_EXP (-4931)
|
||||
@ -96,7 +89,7 @@ union __convert_long_double {
|
||||
#define LDBL_MAX_EXP 16384
|
||||
/* Maximum long double */
|
||||
#undef LDBL_MAX
|
||||
#define LDBL_MAX (__extension__ ((union __convert_long_double) {__convert_long_double_i: {0xffffffff, 0xffffffff, 0x107ffe, 0x0}}).__convert_long_double_d)
|
||||
#define LDBL_MAX 0xfffffffffffffffp16320l
|
||||
/* Maximum int x such that 10**x is a representable long double */
|
||||
#undef LDBL_MAX_10_EXP
|
||||
#define LDBL_MAX_10_EXP 4932
|
||||
|
Loading…
Reference in New Issue
Block a user