math: Fix UB in ldbl-128ibm setpayload

This commit is contained in:
Adhemerval Zanella 2025-05-08 12:21:55 +00:00
parent d044eb659e
commit 2097879f6e
1 changed files with 2 additions and 1 deletions

View File

@ -42,7 +42,8 @@ FUNC (long double *x, long double payload)
if ((lx & 0x7fffffffffffffffULL) != 0 if ((lx & 0x7fffffffffffffffULL) != 0
|| exponent >= BIAS + PAYLOAD_DIG || exponent >= BIAS + PAYLOAD_DIG
|| (exponent < BIAS && !(SET_HIGH_BIT && hx == 0)) || (exponent < BIAS && !(SET_HIGH_BIT && hx == 0))
|| (hx & ((1ULL << (BIAS + EXPLICIT_MANT_DIG - exponent)) - 1)) != 0) || ((BIAS + EXPLICIT_MANT_DIG - exponent <= 64)
&& ((hx & ((1ULL << (BIAS + EXPLICIT_MANT_DIG - exponent)) - 1)) != 0)))
{ {
*x = 0.0L; *x = 0.0L;
return 1; return 1;