xdiff: avoid more compiler warnings with XDL_FAST_HASH on 32-bit machines
[gitweb.git] / xdiff / xutils.c
index 277ccdff024436b78e74f357103a0621836422ee..2021117799ac9c6ede0407ae3d943ec30bd05b73 100644 (file)
@@ -301,7 +301,13 @@ static inline long count_masked_bytes(unsigned long mask)
                 * that works for the bytemasks without having to
                 * mask them first.
                 */
-               return mask * 0x0001020304050608 >> 56;
+               /*
+                * return mask * 0x0001020304050608 >> 56;
+                *
+                * Doing it like this avoids warnings on 32-bit machines.
+                */
+               long a = (REPEAT_BYTE(0x01) / 0xff + 1);
+               return mask * a >> (sizeof(long) * 7);
        } else {
                /*
                 * Modified Carl Chatfield G+ version for 32-bit *