diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2010-11-28 07:21:48 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2010-11-28 07:21:48 +0000 |
commit | 9a08ca318e63912e4c19977abc1173f30866b704 (patch) | |
tree | cb79c780102d035f01268d14331491603e0a4643 | |
parent | 180e1247ca330b047eabafbc72926ce9bfd8bf8e (diff) | |
download | llvm-9a08ca318e63912e4c19977abc1173f30866b704.tar.gz llvm-9a08ca318e63912e4c19977abc1173f30866b704.tar.bz2 llvm-9a08ca318e63912e4c19977abc1173f30866b704.tar.xz |
Add default constructors for iterators.
These iterators don't point anywhere, and they can't be compared to anything.
They are only good for assigning to.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120239 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/ADT/IntervalMap.h | 6 | ||||
-rw-r--r-- | unittests/ADT/IntervalMapTest.cpp | 8 |
2 files changed, 14 insertions, 0 deletions
diff --git a/include/llvm/ADT/IntervalMap.h b/include/llvm/ADT/IntervalMap.h index bf8dee6f3a..2bd885cf8a 100644 --- a/include/llvm/ADT/IntervalMap.h +++ b/include/llvm/ADT/IntervalMap.h @@ -1397,6 +1397,9 @@ protected: void treeAdvanceTo(KeyT x); public: + /// const_iterator - Create an iterator that isn't pointing anywhere. + const_iterator() : map(0) {} + /// valid - Return true if the current position is valid, false for end(). bool valid() const { return path.valid(); } @@ -1583,6 +1586,9 @@ class IntervalMap<KeyT, ValT, N, Traits>::iterator : public const_iterator { void eraseNode(unsigned Level); void treeErase(bool UpdateRoot = true); public: + /// iterator - Create null iterator. + iterator() {} + /// insert - Insert mapping [a;b] -> y before the current position. void insert(KeyT a, KeyT b, ValT y); diff --git a/unittests/ADT/IntervalMapTest.cpp b/unittests/ADT/IntervalMapTest.cpp index f4b1ebc8d3..6b8e761ae7 100644 --- a/unittests/ADT/IntervalMapTest.cpp +++ b/unittests/ADT/IntervalMapTest.cpp @@ -41,6 +41,14 @@ TEST(IntervalMapTest, EmptyMap) { UUMap::iterator I = map.begin(); EXPECT_FALSE(I.valid()); EXPECT_TRUE(I == map.end()); + + // Default constructor and cross-constness compares. + UUMap::const_iterator CI; + CI = map.begin(); + EXPECT_TRUE(CI == I); + UUMap::iterator I2; + I2 = map.end(); + EXPECT_TRUE(I2 == CI); } // Single entry map tests |