$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r79804 - sandbox/big_number/boost/multiprecision
From: john_at_[hidden]
Date: 2012-07-30 13:51:48
Author: johnmaddock
Date: 2012-07-30 13:51:47 EDT (Mon, 30 Jul 2012)
New Revision: 79804
URL: http://svn.boost.org/trac/boost/changeset/79804
Log:
Fix misc bugs introduced in last commit.
Text files modified: 
   sandbox/big_number/boost/multiprecision/cpp_int.hpp |     7 ++++++-                                 
   1 files changed, 6 insertions(+), 1 deletions(-)
Modified: sandbox/big_number/boost/multiprecision/cpp_int.hpp
==============================================================================
--- sandbox/big_number/boost/multiprecision/cpp_int.hpp	(original)
+++ sandbox/big_number/boost/multiprecision/cpp_int.hpp	2012-07-30 13:51:47 EDT (Mon, 30 Jul 2012)
@@ -1326,6 +1326,7 @@
          result.limbs()[x] = static_cast<limb_type>(carry);
    }
    result.normalize();
+   result.sign(a.sign());
 }
 template <unsigned MinBits, bool Signed, class Allocator>
 inline void eval_add(cpp_int_backend<MinBits, Signed, Allocator, false>& result, const limb_type& o) BOOST_NOEXCEPT_IF(boost::is_void<Allocator>::value)
@@ -1400,7 +1401,9 @@
 inline void eval_subtract(cpp_int_backend<MinBits, Signed, Allocator, false>& result, const limb_type& o) BOOST_NOEXCEPT_IF(boost::is_void<Allocator>::value)
 {
    if(result.sign())
+   {
       add_unsigned(result, result, o);
+   }
    else
       subtract_unsigned(result, o);
 }
@@ -1408,7 +1411,9 @@
 inline void eval_subtract(cpp_int_backend<MinBits, Signed, Allocator, false>& result, const cpp_int_backend<MinBits, Signed, Allocator, false>& a, const limb_type& o) BOOST_NOEXCEPT_IF(boost::is_void<Allocator>::value)
 {
    if(a.sign())
+   {
       add_unsigned(result, a, o);
+   }
    else
    {
       result = a;
@@ -2068,8 +2073,8 @@
          *result = *pr / y;
          result->sign(x.sign());
       }
-      r.sign(x.sign());
       *pr %= y;
+      r.sign(x.sign());
       return;
    }
    else if(r_order == 1)