[PATCH 1/3] xdiff: avoid compiler warnings with XDL_FAST_HASH on 32-bit machines
- From
René Scharfe <rene.scharfe@lsrfire.ath.cx>
- Date
- May 22, 2012, 20:36 UTC
- Message-ID
- <4FBBF8C9.7050906@lsrfire.ath.cx>
- In-Reply-To
- <CAA787rmJixvyKhubHXZCDVYc=DdVk8_vHsHF6bOsLQ_j=39bGw@mail.gmail.com>
Import macro REPEAT_BYTE from Linux (arch/x86/include/asm/word-at-a-time.h) to avoid 64-bit integer literals, which cause some 32-bit compilers to print warnings.
Reported-by: Øyvind A. Holm <sunny@sunbase.org> Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> --- xdiff/xutils.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/xdiff/xutils.c b/xdiff/xutils.c index ae6ce0d..8580da7 100644 --- a/xdiff/xutils.c +++ b/xdiff/xutils.c @@ -251,9 +251,11 @@ static unsigned long xdl_hash_record_with_whitespace(char const **data, #ifdef XDL_FAST_HASH -#define ONEBYTES 0x0101010101010101ul -#define NEWLINEBYTES 0x0a0a0a0a0a0a0a0aul -#define HIGHBITS 0x8080808080808080ul +#define REPEAT_BYTE(x) ((~0ul / 0xff) * (x)) + +#define ONEBYTES REPEAT_BYTE(0x01) +#define NEWLINEBYTES REPEAT_BYTE(0x0a) +#define HIGHBITS REPEAT_BYTE(0x80) /* Return the high bit set in the first byte that is a zero */ static inline unsigned long has_zero(unsigned long a)
-- 1.7.10.2