From 9eb6b4d91b83448ec818089754c74bbdcf7dfd7a Mon Sep 17 00:00:00 2001 From: Eli Friedman Date: Fri, 7 Oct 2011 23:40:49 +0000 Subject: Fix APInt::operator*= so that it computes the correct result for large integers where there is unsigned overflow. Fix APFloat::toString so that it doesn't depend on the incorrect behavior in common cases (and computes the correct result in some rare cases). Fixes PR11086. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141441 91177308-0d34-0410-b5e6-96231b3b80d8 --- unittests/ADT/APIntTest.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'unittests/ADT/APIntTest.cpp') diff --git a/unittests/ADT/APIntTest.cpp b/unittests/ADT/APIntTest.cpp index 11bb5e1545..490811deb8 100644 --- a/unittests/ADT/APIntTest.cpp +++ b/unittests/ADT/APIntTest.cpp @@ -441,4 +441,13 @@ TEST(APIntTest, StringDeath) { #endif #endif +TEST(APIntTest, mul_clear) { + APInt ValA(65, -1ULL); + APInt ValB(65, 4); + APInt ValC(65, 0); + ValC = ValA * ValB; + ValA *= ValB; + EXPECT_EQ(ValA.toString(10, false), ValC.toString(10, false)); +} + } -- cgit v1.2.3