this silences the warning of
The result of the '<<' expression is undefined
quote from n3337, ยง5.8 expr.shift:
If E1 has an unsigned type, the value ... (is deterministic)...
Otherwise, if E1 has a signed type and non-negative value, and E1 x 2^E2
is representable in the result type, then that is the resulting value;
otherwise, the behavior is undefined.
Signed-off-by: Kefu Chai <kchai@redhat.com>
bool split = false;
if (true) {
- int old_bits = cbits(old_pg_num);
- int old_mask = (1 << old_bits) - 1;
- for (int n = 1; ; n++) {
- int next_bit = (n << (old_bits-1));
+ unsigned old_bits = cbits(old_pg_num);
+ unsigned old_mask = (1 << old_bits) - 1;
+ for (unsigned n = 1; ; n++) {
+ unsigned next_bit = (n << (old_bits-1));
unsigned s = next_bit | m_seed;
if (s < old_pg_num || s == m_seed)