]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
math: Fix UB in ldbl-128 llrintl
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Mon, 5 May 2025 12:36:51 +0000 (09:36 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Thu, 8 May 2025 12:25:49 +0000 (09:25 -0300)
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'

sysdeps/ieee754/ldbl-128/s_llrintl.c

index 07f5aca347e5696139a320d61092aaf8ef7241dd..959f06be59b568ce672902f164913b0cbde8ef21 100644 (file)
@@ -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
     {