diff --git a/include/boost/multiprecision/cpp_int/bitwise.hpp b/include/boost/multiprecision/cpp_int/bitwise.hpp index cfcdbf60..550b62aa 100644 --- a/include/boost/multiprecision/cpp_int/bitwise.hpp +++ b/include/boost/multiprecision/cpp_int/bitwise.hpp @@ -398,6 +398,8 @@ inline BOOST_MP_CXX14_CONSTEXPR void left_shift_generic(Int& result, double_limb { const limb_type offset = static_cast(s / Int::limb_bits); const limb_type shift = static_cast(s % Int::limb_bits); + + typename Int::limb_pointer pr = result.limbs(); BOOST_ASSERT(shift < sizeof(pr[0]) * CHAR_BIT); std::size_t ors = result.size(); @@ -410,8 +412,6 @@ inline BOOST_MP_CXX14_CONSTEXPR void left_shift_generic(Int& result, double_limb result.resize(rs, rs); bool truncated = result.size() != rs; - typename Int::limb_pointer pr = result.limbs(); - if (offset > rs) { // The result is shifted past the end of the result: