mirror of
https://github.com/git/git
synced 2024-08-25 10:45:59 +00:00
xdiff: avoid more compiler warnings with XDL_FAST_HASH on 32-bit machines
Hide literals that can cause compiler warnings for 32-bit architectures in expressions that evaluate to small numbers there. Some compilers warn that 0x0001020304050608 won't fit into a 32-bit long, others that shifting right by 56 bits clears a 32-bit value completely. The correct values are calculated in the 64-bit case, which is all that matters in this if-branch. Reported-by: Øyvind A. Holm <sunny@sunbase.org> Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Acked-by: Thomas Rast <trast@student.ethz.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
9322ce21ee
commit
7e356a9794
|
@ -301,7 +301,13 @@ static inline long count_masked_bytes(unsigned long mask)
|
||||||
* that works for the bytemasks without having to
|
* that works for the bytemasks without having to
|
||||||
* mask them first.
|
* 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 {
|
} else {
|
||||||
/*
|
/*
|
||||||
* Modified Carl Chatfield G+ version for 32-bit *
|
* Modified Carl Chatfield G+ version for 32-bit *
|
||||||
|
|
Loading…
Reference in a new issue