diff options
author | Michael Gottesman <mgottesman@apple.com> | 2016-11-02 00:59:58 +0000 |
---|---|---|
committer | Michael Gottesman <mgottesman@apple.com> | 2016-11-02 00:59:58 +0000 |
commit | b4a9bd83de7e7268bc64da5e1be54aa490e3610c (patch) | |
tree | 7273b1e138fd10012d696782f0fd65ea0ccd3c77 | |
parent | a0fe8a324e3794fa9e2a7c4a707dfe1cfdd4a39e (diff) | |
download | bcm5719-llvm-b4a9bd83de7e7268bc64da5e1be54aa490e3610c.tar.gz bcm5719-llvm-b4a9bd83de7e7268bc64da5e1be54aa490e3610c.zip |
[ilist_node] Add a getReverseIterator() method and a unittest for it.
This is the reverse_iterator analogue of getIterator().
llvm-svn: 285780
-rw-r--r-- | llvm/include/llvm/ADT/ilist_node.h | 6 | ||||
-rw-r--r-- | llvm/unittests/ADT/SimpleIListTest.cpp | 17 |
2 files changed, 23 insertions, 0 deletions
diff --git a/llvm/include/llvm/ADT/ilist_node.h b/llvm/include/llvm/ADT/ilist_node.h index 84208b0841b..7244d0f4058 100644 --- a/llvm/include/llvm/ADT/ilist_node.h +++ b/llvm/include/llvm/ADT/ilist_node.h @@ -80,6 +80,12 @@ private: public: self_iterator getIterator() { return self_iterator(*this); } const_self_iterator getIterator() const { return const_self_iterator(*this); } + reverse_self_iterator getReverseIterator() { + return reverse_self_iterator(*this); + } + const_reverse_self_iterator getReverseIterator() const { + return const_reverse_self_iterator(*this); + } // Under-approximation, but always available for assertions. using node_base_type::isKnownSentinel; diff --git a/llvm/unittests/ADT/SimpleIListTest.cpp b/llvm/unittests/ADT/SimpleIListTest.cpp index 5a3834822d6..a354f332006 100644 --- a/llvm/unittests/ADT/SimpleIListTest.cpp +++ b/llvm/unittests/ADT/SimpleIListTest.cpp @@ -178,6 +178,23 @@ TEST(SimpleIListTest, erase) { EXPECT_EQ(2u, L.size()); } +TEST(SimpleIListTest, reverse_iterator) { + simple_ilist<Node> L; + Node A, B, C; + L.push_back(A); + L.push_back(B); + L.push_back(C); + + auto ReverseIter = L.rbegin(); + EXPECT_EQ(C.getReverseIterator(), ReverseIter); + ++ReverseIter; + EXPECT_EQ(B.getReverseIterator(), ReverseIter); + ++ReverseIter; + EXPECT_EQ(A.getReverseIterator(), ReverseIter); + ++ReverseIter; + EXPECT_EQ(L.rend(), ReverseIter); +} + TEST(SimpleIListTest, eraseAndDispose) { simple_ilist<Node> L; Node A, C; |