[PATCH] ldbl-96: Set -1 to "int sign_exponent:16"
H.J. Lu
hjl.tools@gmail.com
Mon Dec 16 21:50:47 GMT 2024
ieee_long_double_shape_type has
typedef union
{
long double value;
struct
{
...
int sign_exponent:16;
...
} parts;
} ieee_long_double_shape_type;
Clang issues an error:
../sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c:49:2: error: implicit truncation from 'int' to bit-field changes value from 65535 to -1 [-Werror,-Wbitfield-constant-conversion]
49 | SET_LDOUBLE_WORDS (ldnx, 0xffff,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
50 | tests[i] >> 32, tests[i] & 0xffffffffULL);
|
Use -1, instead of 0xffff, to silence Clang.
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
---
sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c b/sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c
index 5d64da8a91..aa88ba6369 100644
--- a/sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c
+++ b/sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c
@@ -46,9 +46,9 @@ do_test (void)
SET_LDOUBLE_WORDS (ldy, 0x7fff,
(tests[i] >> 32) | 0x80000000,
tests[i] & 0xffffffffULL);
- SET_LDOUBLE_WORDS (ldnx, 0xffff,
+ SET_LDOUBLE_WORDS (ldnx, -1,
tests[i] >> 32, tests[i] & 0xffffffffULL);
- SET_LDOUBLE_WORDS (ldny, 0xffff,
+ SET_LDOUBLE_WORDS (ldny, -1,
(tests[i] >> 32) | 0x80000000,
tests[i] & 0xffffffffULL);
bool to1 = totalorderl (&ldx, &ldy);
--
2.47.1
More information about the Libc-alpha
mailing list