Changes in directory llvm/include/llvm/ADT:
APInt.h updated: 1.47 -> 1.48 --- Log message: Correct the implementation of srem to be remainder, not modulus. The sign of the result must follow the sign of the divisor. --- Diffs of the changes: (+2 -2) APInt.h | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm/include/llvm/ADT/APInt.h diff -u llvm/include/llvm/ADT/APInt.h:1.47 llvm/include/llvm/ADT/APInt.h:1.48 --- llvm/include/llvm/ADT/APInt.h:1.47 Sat Mar 24 13:09:18 2007 +++ llvm/include/llvm/ADT/APInt.h Sat Mar 24 16:56:22 2007 @@ -564,9 +564,9 @@ inline APInt srem(const APInt& RHS) const { if (isNegative()) if (RHS.isNegative()) - return (-(*this)).urem(-RHS); + return -((-(*this)).urem(-RHS)); else - return -((-(*this)).urem(RHS)); + return (-(*this)).urem(RHS); else if (RHS.isNegative()) return -(this->urem(-RHS)); return this->urem(RHS); _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits