Suppress new GCC 5 warning -Wbool-compare
authorMark Santaniello <marksan@fb.com>
Fri, 13 May 2016 15:41:37 +0000 (08:41 -0700)
committerFacebook Github Bot 9 <facebook-github-bot-9-bot@fb.com>
Fri, 13 May 2016 15:53:23 +0000 (08:53 -0700)
Summary: This -Wbool-compare is apparently new in GCC 5.  We should ignore it, similar to the existing suppression of -Wsign-compare.

Reviewed By: pixelb, yfeldblum

Differential Revision: D3293675

fbshipit-source-id: 5f90b0dbf049a06c0f6c3df2cdfcc8055358e367

folly/Traits.h

index 45f005cb4443bb17ca8f968e907b6d342eca5720..39136a72d8cb3ea862fab04b39f9e0dfecacf946 100644 (file)
@@ -337,10 +337,13 @@ struct is_negative_impl<T, false> {
 
 // folly::to integral specializations can end up generating code
 // inside what are really static ifs (not executed because of the templated
-// types) that violate -Wsign-compare so suppress them in order to not prevent
-// all calling code from using it.
+// types) that violate -Wsign-compare and/or -Wbool-compare so suppress them
+// in order to not prevent all calling code from using it.
 #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wsign-compare"
+#if __GNUC_PREREQ(5, 0)
+#pragma GCC diagnostic ignored "-Wbool-compare"
+#endif
 
 template <typename RHS, RHS rhs, typename LHS>
 bool less_than_impl(LHS const lhs) {
@@ -350,8 +353,6 @@ bool less_than_impl(LHS const lhs) {
     lhs < rhs;
 }
 
-#pragma GCC diagnostic pop
-
 template <typename RHS, RHS rhs, typename LHS>
 bool greater_than_impl(LHS const lhs) {
   return
@@ -360,6 +361,8 @@ bool greater_than_impl(LHS const lhs) {
     lhs > rhs;
 }
 
+#pragma GCC diagnostic pop
+
 } // namespace detail {
 
 // same as `x < 0`