From f1db120d0494ec55d9265cea7dab22e80dcae10c Mon Sep 17 00:00:00 2001 From: Nick Lewycky Date: Mon, 13 Jul 2009 03:27:41 +0000 Subject: Multiply was very wrong for wrapped ranges. This supplies a half-fix that will generally return Full on all wrapped inputs. "Fixes" PR4545. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75444 91177308-0d34-0410-b5e6-96231b3b80d8 --- unittests/Support/ConstantRangeTest.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'unittests/Support/ConstantRangeTest.cpp') diff --git a/unittests/Support/ConstantRangeTest.cpp b/unittests/Support/ConstantRangeTest.cpp index cd91a9e103..2b073d8203 100644 --- a/unittests/Support/ConstantRangeTest.cpp +++ b/unittests/Support/ConstantRangeTest.cpp @@ -275,6 +275,11 @@ TEST_F(ConstantRangeTest, Multiply) { EXPECT_TRUE(Some.multiply(Some).isFullSet()); EXPECT_EQ(Some.multiply(Wrap), Full); EXPECT_EQ(Wrap.multiply(Wrap), Full); + + // http://llvm.org/PR4545 + EXPECT_EQ(ConstantRange(APInt(4, 1), APInt(4, 6)).multiply( + ConstantRange(APInt(4, 6), APInt(4, 2))), + ConstantRange(4, /*isFullSet=*/true)); } TEST_F(ConstantRangeTest, UMax) { -- cgit v1.2.3-18-g5258