summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2010-11-28 07:21:48 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2010-11-28 07:21:48 +0000
commit9a08ca318e63912e4c19977abc1173f30866b704 (patch)
treecb79c780102d035f01268d14331491603e0a4643
parent180e1247ca330b047eabafbc72926ce9bfd8bf8e (diff)
downloadllvm-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.h6
-rw-r--r--unittests/ADT/IntervalMapTest.cpp8
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