mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-03-06 03:18:43 +00:00
BUILD: tools: fix a build warning on some 32-bit archs
Some recent versions of gcc apparently can detect that x >> 32 will not work on a 32-bit architecture, but are failing to see that the code will not be built since it's enclosed in "if (sizeof(LONG) > 4)" or equivalent. Just shift right twice by 16 bits in this case, the compiler correctly replaces it by a single 32-bit shift. No backport is needed.
This commit is contained in:
parent
93e02d8b73
commit
9b6be3bbeb
@ -2672,7 +2672,8 @@ unsigned int mask_find_rank_bit(unsigned int r, unsigned long m)
|
||||
t = 0;
|
||||
s = LONGBITS;
|
||||
if (s > 32) {
|
||||
t = (d >> 32) + (d >> 48);
|
||||
unsigned long d2 = (d >> 16) >> 16;
|
||||
t = d2 + (d2 >> 16);
|
||||
s -= ((t - r) & 256) >> 3; r -= (t & ((t - r) >> 8));
|
||||
}
|
||||
|
||||
@ -2706,7 +2707,8 @@ unsigned int mask_find_rank_bit_fast(unsigned int r, unsigned long m,
|
||||
t = 0;
|
||||
s = LONGBITS;
|
||||
if (s > 32) {
|
||||
t = (d >> 32) + (d >> 48);
|
||||
unsigned long d2 = (d >> 16) >> 16;
|
||||
t = d2 + (d2 >> 16);
|
||||
s -= ((t - r) & 256) >> 3; r -= (t & ((t - r) >> 8));
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user