folly/Bits.h (BitIterator): avoid -Wsign-compare error
authorJim Meyering <meyering@fb.com>
Wed, 7 Jan 2015 03:25:48 +0000 (19:25 -0800)
committerViswanath Sivakumar <viswanath@fb.com>
Tue, 13 Jan 2015 19:01:05 +0000 (11:01 -0800)
Summary:
* folly/Bits.h (BitIterator) [bitOffset_]: Change type of this
member from ssize_t to "unsigned int".
(bitsPerBlock): Change return type from size_t to "unsigned int".
These changes avoid some -Wsign-compare-highlighted issues, e.g.,
folly/Bits.h:456:18: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]

Test Plan:
Run this and note there are fewer errors than before:
fbconfig --platform-all=gcc-4.9-glibc-2.20 -r folly && fbmake dbgo

I've also run "fbmake runtests", and it failed precisely the way it does
without this patch.

Reviewed By: andrei.alexandrescu@fb.com

Subscribers: trunkagent, net-systems@, folly-diffs@

FB internal diff: D1770613

Tasks: 5941250

Signature: t1:1770613:1420757397:7ee7e5de500c8991af2597a6245d12d8f286b4b7

folly/Bits.h

index b22b8d57899801d9cfa76484220789d5930e00e6..6d8b06c2686ec6d5f50078da886caff822ddecf0 100644 (file)
@@ -436,7 +436,7 @@ class BitIterator
   /**
    * Return the number of bits in an element of the underlying iterator.
    */
-  static size_t bitsPerBlock() {
+  static unsigned int bitsPerBlock() {
     return std::numeric_limits<
       typename std::make_unsigned<
         typename std::iterator_traits<BaseIter>::value_type
@@ -525,7 +525,7 @@ class BitIterator
       (other.bitOffset_ - bitOffset_);
   }
 
-  ssize_t bitOffset_;
+  unsigned int bitOffset_;
 };
 
 /**