Fix -Wparentheses warning with GCC 5 in SaturatedArithmetic.h
authormcatanzaro@igalia.com <mcatanzaro@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 13 Apr 2015 01:29:59 +0000 (01:29 +0000)
committermcatanzaro@igalia.com <mcatanzaro@igalia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 13 Apr 2015 01:29:59 +0000 (01:29 +0000)
https://bugs.webkit.org/show_bug.cgi?id=143457

Reviewed by Benjamin Poulain.

Tested by WTF.SaturatedArithmeticAddition and WTF.SaturatedArithmeticSubtraction.

* wtf/SaturatedArithmetic.h:
(signedAddOverflows): Use && instead of & to avoid triggering -Wparentheses in newer
versions of GCC and Clang, and to improve the clarity of the function.
(signedSubtractOverflows): Changed correspondingly, although there was no warning here.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@182676 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WTF/ChangeLog
Source/WTF/wtf/SaturatedArithmetic.h

index 672c35e..0efcbe6 100644 (file)
@@ -1,3 +1,17 @@
+2015-04-12  Michael Catanzaro  <mcatanzaro@igalia.com>
+
+        Fix -Wparentheses warning with GCC 5 in SaturatedArithmetic.h
+        https://bugs.webkit.org/show_bug.cgi?id=143457
+
+        Reviewed by Benjamin Poulain.
+
+        Tested by WTF.SaturatedArithmeticAddition and WTF.SaturatedArithmeticSubtraction.
+
+        * wtf/SaturatedArithmetic.h:
+        (signedAddOverflows): Use && instead of & to avoid triggering -Wparentheses in newer
+        versions of GCC and Clang, and to improve the clarity of the function.
+        (signedSubtractOverflows): Changed correspondingly, although there was no warning here.
+
 2015-04-08  Sam Weinig  <sam@webkit.org>
 
         Allow LaunchServices to handle URLs on link navigations
index 2c7928b..87a54c9 100644 (file)
@@ -46,7 +46,7 @@ inline bool signedAddOverflows(int32_t a, int32_t b, int32_t& result)
 
     // Can only overflow if the signed bit of the two values match. If the signed
     // bit of the result and one of the values differ it did overflow.
-    return !((ua ^ ub) >> 31) & (uresult ^ ua) >> 31;
+    return !((ua ^ ub) >> 31) && (uresult ^ ua) >> 31;
 }
 
 inline int32_t saturatedAddition(int32_t a, int32_t b)
@@ -74,7 +74,7 @@ inline bool signedSubtractOverflows(int32_t a, int32_t b, int32_t& result)
 
     // Can only overflow if the signed bit of the two values do not match. If the
     // signed bit of the result and the first value differ it did overflow.
-    return (ua ^ ub) >> 31 & (uresult ^ ua) >> 31;
+    return (ua ^ ub) >> 31 && (uresult ^ ua) >> 31;
 }
 
 inline int32_t saturatedSubtraction(int32_t a, int32_t b)