From: Jim Meyering Date: Wed, 7 Jan 2015 19:11:07 +0000 (-0800) Subject: folly/stats/Histogram-defs.h: avoid -Wsign-compare error X-Git-Tag: v0.22.0~15 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=2ab6db1e179a0d5c80dd457c6c495ed9bcc4d5a5;p=folly.git folly/stats/Histogram-defs.h: avoid -Wsign-compare error Summary: * folly/stats/Histogram-defs.h (HistogramBuckets): Take the unusual approach of converting "numBuckets" to signed, because we cannot cast "max-min" (a known positive value) to an unsigned type -- we don't have an unsigned variant of ValueType. This avoids the following error from gcc-4.9: folly/stats/Histogram-defs.h:41:31: 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 Reviewed By: ldbrandy@fb.com Subscribers: trunkagent, net-systems@, folly-diffs@ FB internal diff: D1770129 Tasks: 5941250 Signature: t1:1770129:1420745311:c447e59f1730abafdf0b962e70f0886ae1d48db1 --- diff --git a/folly/stats/Histogram-defs.h b/folly/stats/Histogram-defs.h index dbdea660..e8740d67 100644 --- a/folly/stats/Histogram-defs.h +++ b/folly/stats/Histogram-defs.h @@ -36,7 +36,9 @@ HistogramBuckets::HistogramBuckets(ValueType bucketSize, CHECK_GT(bucketSize_, ValueType(0)); CHECK_LT(min_, max_); - unsigned int numBuckets = (max - min) / bucketSize; + // Deliberately make this a signed type, because we're about + // to compare it against max-min, which is nominally signed, too. + int numBuckets = (max - min) / bucketSize; // Round up if the bucket size does not fit evenly if (numBuckets * bucketSize < max - min) { ++numBuckets;