diff --git a/include/boost/multiprecision/cpp_int/bitwise.hpp b/include/boost/multiprecision/cpp_int/bitwise.hpp index 7df93181..95efacd7 100644 --- a/include/boost/multiprecision/cpp_int/bitwise.hpp +++ b/include/boost/multiprecision/cpp_int/bitwise.hpp @@ -229,12 +229,6 @@ inline typename enable_if_c(s / cpp_int_backend::limb_bits); limb_type shift = static_cast(s % cpp_int_backend::limb_bits); - /* - static const unsigned max_bits = max_bits >::value; - static const unsigned max_limbs = max_bits / cpp_int_backend::limb_bits - + (max_bits % cpp_int_backend::limb_bits ? 1 : 0); - */ - unsigned ors = result.size(); if((ors == 1) && (!*result.limbs())) return; // shifting zero yields zero. @@ -244,8 +238,7 @@ inline typename enable_if_c::limb_pointer pr = result.limbs(); if(offset > rs) @@ -255,11 +248,10 @@ inline typename enable_if_c ors + offset) diff --git a/test/test_cpp_int.cpp b/test/test_cpp_int.cpp index 6e28001f..14f5bdac 100644 --- a/test/test_cpp_int.cpp +++ b/test/test_cpp_int.cpp @@ -173,6 +173,12 @@ struct tester { BOOST_CHECK_EQUAL(mpz_int(a << i).str(), test_type(a1 << i).str()); } + else if(!is_checked_cpp_int::value) + { + test_type t1(mpz_int(a << i).str()); + test_type t2 = a1 << i; + BOOST_CHECK_EQUAL(t1, t2); + } BOOST_CHECK_EQUAL(mpz_int(a >> i).str(), test_type(a1 >> i).str()); } // gcd/lcm