summaryrefslogtreecommitdiff
path: root/boost/multiprecision/cpp_int/divide.hpp
diff options
context:
space:
mode:
authorDongHun Kwak <dh0128.kwak@samsung.com>2016-10-06 10:41:18 +0900
committerDongHun Kwak <dh0128.kwak@samsung.com>2016-10-06 10:43:11 +0900
commitf763a99a501650eff2c60288aa6f10ef916d769e (patch)
tree02af7e13f9a38c888ebf340fe764cbe7dae99da9 /boost/multiprecision/cpp_int/divide.hpp
parent5cde13f21d36c7224b0e13d11c4b49379ae5210d (diff)
downloadboost-f763a99a501650eff2c60288aa6f10ef916d769e.tar.gz
boost-f763a99a501650eff2c60288aa6f10ef916d769e.tar.bz2
boost-f763a99a501650eff2c60288aa6f10ef916d769e.zip
Imported Upstream version 1.62.0upstream/1.62.0
Change-Id: I9d4c1ddb7b7d8f0069217ecc582700f9fda6dd4c Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
Diffstat (limited to 'boost/multiprecision/cpp_int/divide.hpp')
-rw-r--r--boost/multiprecision/cpp_int/divide.hpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/boost/multiprecision/cpp_int/divide.hpp b/boost/multiprecision/cpp_int/divide.hpp
index 5fe6ce6ad8..2f83d1ba71 100644
--- a/boost/multiprecision/cpp_int/divide.hpp
+++ b/boost/multiprecision/cpp_int/divide.hpp
@@ -227,12 +227,20 @@ void divide_unsigned_helper(
for(unsigned i = 0; i < y.size(); ++i)
{
carry += static_cast<double_limb_type>(py[i]) * static_cast<double_limb_type>(guess);
+#ifdef __MSVC_RUNTIME_CHECKS
+ pt[i + shift] = static_cast<limb_type>(carry & ~static_cast<limb_type>(0));
+#else
pt[i + shift] = static_cast<limb_type>(carry);
+#endif
carry >>= CppInt1::limb_bits;
}
if(carry && !truncated_t)
{
+#ifdef __MSVC_RUNTIME_CHECKS
+ pt[t.size() - 1] = static_cast<limb_type>(carry & ~static_cast<limb_type>(0));
+#else
pt[t.size() - 1] = static_cast<limb_type>(carry);
+#endif
}
else if(!truncated_t)
{