Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / base / numerics / safe_math_impl.h
index 3b5e64d..663f393 100644 (file)
@@ -11,7 +11,6 @@
 #include <cstdlib>
 #include <limits>
 
-#include "base/macros.h"
 #include "base/numerics/safe_conversions.h"
 #include "base/template_util.h"
 
@@ -277,7 +276,7 @@ typename enable_if<
 CheckedAbs(T value, RangeConstraint* validity) {
   *validity =
       value != std::numeric_limits<T>::min() ? RANGE_VALID : RANGE_OVERFLOW;
-  return std::abs(value);
+  return static_cast<T>(std::abs(value));
 }
 
 template <typename T>
@@ -359,11 +358,11 @@ class CheckedNumericState<T, NUMERIC_INTEGER> {
 
   template <typename Src>
   CheckedNumericState(Src value, RangeConstraint validity)
-      : value_(value),
+      : value_(static_cast<T>(value)),
         validity_(GetRangeConstraint(validity |
                                      DstRangeRelationToSrcRange<T>(value))) {
-    COMPILE_ASSERT(std::numeric_limits<Src>::is_specialized,
-                   argument_must_be_numeric);
+    static_assert(std::numeric_limits<Src>::is_specialized,
+                  "Argument must be numeric.");
   }
 
   // Copy constructor.