mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-07 06:43:00 +03:00
stdlib: Fix macro expansion producing 'defined' has undefined behavior
The FPIOCONST_HAVE_EXTENDED_RANGE is defined as: #define FPIOCONST_HAVE_EXTENDED_RANGE \ ((!defined __NO_LONG_DOUBLE_MATH && __LDBL_MAX_EXP__ > 1024) \ || __HAVE_DISTINCT_FLOAT128) Which is undefined behavior accordingly to C Standard (Preprocessing directives, p4). Checked on x86_64-linux-gnu.
This commit is contained in:
@@ -52,9 +52,12 @@
|
|||||||
- LDBL_MIN_EXP + 2)). When _Float128 is enabled in libm and it is
|
- LDBL_MIN_EXP + 2)). When _Float128 is enabled in libm and it is
|
||||||
ABI-distinct from long double (e.g. on powerpc64le), we also need powers
|
ABI-distinct from long double (e.g. on powerpc64le), we also need powers
|
||||||
of 10 up to floor (log_2 (FLT128_MANT_DIG - FLT128_MIN_EXP + 2)). */
|
of 10 up to floor (log_2 (FLT128_MANT_DIG - FLT128_MIN_EXP + 2)). */
|
||||||
#define FPIOCONST_HAVE_EXTENDED_RANGE \
|
#if (!defined __NO_LONG_DOUBLE_MATH && __LDBL_MAX_EXP__ > 1024) \
|
||||||
((!defined __NO_LONG_DOUBLE_MATH && __LDBL_MAX_EXP__ > 1024) \
|
|| __HAVE_DISTINCT_FLOAT128
|
||||||
|| __HAVE_DISTINCT_FLOAT128)
|
# define FPIOCONST_HAVE_EXTENDED_RANGE 1
|
||||||
|
#else
|
||||||
|
# define FPIOCONST_HAVE_EXTENDED_RANGE 0
|
||||||
|
#endif
|
||||||
|
|
||||||
#if FPIOCONST_HAVE_EXTENDED_RANGE
|
#if FPIOCONST_HAVE_EXTENDED_RANGE
|
||||||
# define FPIOCONST_POW10_ARRAY_SIZE 15
|
# define FPIOCONST_POW10_ARRAY_SIZE 15
|
||||||
|
Reference in New Issue
Block a user