From: Adhemerval Zanella Date: Mon, 5 May 2025 12:36:51 +0000 (-0300) Subject: math: Fix UB in ldbl-128 llrintl X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c1540fcdde6972b913b58831afd4e2358639573a;p=thirdparty%2Fglibc.git math: Fix UB in ldbl-128 llrintl testing _Float128 (without inline functions) UBSAN: Undefined behaviour in ../sysdeps/ieee754/float128/../ldbl-128/s_llrintl.c:83:31 left shift of 281474976710656 by 15 cannot be represented in type 'long long int' --- diff --git a/sysdeps/ieee754/ldbl-128/s_llrintl.c b/sysdeps/ieee754/ldbl-128/s_llrintl.c index 07f5aca347..959f06be59 100644 --- a/sysdeps/ieee754/ldbl-128/s_llrintl.c +++ b/sysdeps/ieee754/ldbl-128/s_llrintl.c @@ -80,7 +80,7 @@ __llrintl (_Float128 x) else if (j0 <= 48) result = i0 >> (48 - j0); else - result = ((long long int) i0 << (j0 - 48)) | (i1 >> (112 - j0)); + result = (i0 << (j0 - 48)) | (i1 >> (112 - j0)); } else {