mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-07 07:37:02 +02: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;
|
t = 0;
|
||||||
s = LONGBITS;
|
s = LONGBITS;
|
||||||
if (s > 32) {
|
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));
|
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;
|
t = 0;
|
||||||
s = LONGBITS;
|
s = LONGBITS;
|
||||||
if (s > 32) {
|
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));
|
s -= ((t - r) & 256) >> 3; r -= (t & ((t - r) >> 8));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user