Hi!

cppcheck apparently warns on the | !!sticky part of the expression and
using | (!!sticky) quiets it up (it is correct as is).
The following patch adds the ()s, and also adds them around mant >> 1 just
in case it makes it clearer to all readers that the expression is parsed
that way already.

Ok for trunk?

2024-04-15  Jakub Jelinek  <ja...@redhat.com>

        PR libgcc/114689
        * config/m68k/fpgnulib.c (__truncdfsf2): Add parentheses around
        !!sticky bitwise or operand to quiet up cppcheck.  Add parentheses
        around mant >> 1 bitwise or operand.

--- libgcc/config/m68k/fpgnulib.c.jj    2023-11-11 08:52:20.927838065 +0100
+++ libgcc/config/m68k/fpgnulib.c       2024-04-15 16:29:57.810026425 +0200
@@ -302,7 +302,7 @@ __truncdfsf2 (double a1)
   if (exp == EXPDMASK - EXCESSD + EXCESS)
     {
       exp = EXPMASK;
-      mant = mant >> 1 | (mant & 1) | !!sticky;
+      mant = (mant >> 1) | (mant & 1) | (!!sticky);
     }
   else
     {

        Jakub

Reply via email to