From 97eb2ad72df825817c2eeb4c12ab846c01751c98 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Wed, 23 Nov 2016 13:58:08 +0800 Subject: [PATCH] osd_types: pg_t::is_split(): use unsigned for bits operations MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- src/osd/osd_types.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/osd/osd_types.cc b/src/osd/osd_types.cc index b6fdc7fbe62..93586843e53 100644 --- a/src/osd/osd_types.cc +++ b/src/osd/osd_types.cc @@ -476,10 +476,10 @@ bool pg_t::is_split(unsigned old_pg_num, unsigned new_pg_num, set *childre 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) -- 2.39.5