diff options
-rw-r--r-- | lldb/include/lldb/Symbol/Block.h | 2 | ||||
-rw-r--r-- | lldb/unittests/Utility/RangeMapTest.cpp | 23 |
2 files changed, 24 insertions, 1 deletions
diff --git a/lldb/include/lldb/Symbol/Block.h b/lldb/include/lldb/Symbol/Block.h index 7c7a66d..d0063f1 100644 --- a/lldb/include/lldb/Symbol/Block.h +++ b/lldb/include/lldb/Symbol/Block.h @@ -40,7 +40,7 @@ namespace lldb_private { /// blocks. class Block : public UserID, public SymbolContextScope { public: - typedef RangeVector<uint32_t, uint32_t, 1> RangeList; + typedef RangeVector<int32_t, uint32_t, 1> RangeList; typedef RangeList::Entry Range; // Creates a block representing the whole function. Only meant to be used from diff --git a/lldb/unittests/Utility/RangeMapTest.cpp b/lldb/unittests/Utility/RangeMapTest.cpp index 0b4c236..981fa2a 100644 --- a/lldb/unittests/Utility/RangeMapTest.cpp +++ b/lldb/unittests/Utility/RangeMapTest.cpp @@ -12,6 +12,29 @@ using namespace lldb_private; +TEST(RangeVector, SignedBaseType) { + using RangeVector = RangeVector<int32_t, uint32_t>; + using Entry = RangeVector::Entry; + + RangeVector V; + V.Append(10, 5); + V.Append(-3, 6); + V.Append(-10, 3); + V.Sort(); + EXPECT_THAT(V, + testing::ElementsAre(Entry(-10, 3), Entry(-3, 6), Entry(10, 5))); + Entry e = *V.begin(); + EXPECT_EQ(e.GetRangeBase(), -10); + EXPECT_EQ(e.GetByteSize(), 3u); + EXPECT_EQ(e.GetRangeEnd(), -7); + EXPECT_TRUE(e.Contains(-10)); + EXPECT_TRUE(e.Contains(-8)); + EXPECT_FALSE(e.Contains(-7)); + EXPECT_TRUE(e.Union(Entry(-8, 2))); + EXPECT_EQ(e, Entry(-10, 4)); + EXPECT_EQ(e.Intersect(Entry(-7, 3)), Entry(-7, 1)); +} + TEST(RangeVector, CombineConsecutiveRanges) { using RangeVector = RangeVector<uint32_t, uint32_t>; using Entry = RangeVector::Entry; |