[llvm] r285780 - [ilist_node] Add a getReverseIterator() method and a unittest for it.
Michael Gottesman via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 1 17:59:58 PDT 2016
Author: mgottesman
Date: Tue Nov 1 19:59:58 2016
New Revision: 285780
URL: http://llvm.org/viewvc/llvm-project?rev=285780&view=rev
Log:
[ilist_node] Add a getReverseIterator() method and a unittest for it.
This is the reverse_iterator analogue of getIterator().
Modified:
llvm/trunk/include/llvm/ADT/ilist_node.h
llvm/trunk/unittests/ADT/SimpleIListTest.cpp
Modified: llvm/trunk/include/llvm/ADT/ilist_node.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/ilist_node.h?rev=285780&r1=285779&r2=285780&view=diff
==============================================================================
--- llvm/trunk/include/llvm/ADT/ilist_node.h (original)
+++ llvm/trunk/include/llvm/ADT/ilist_node.h Tue Nov 1 19:59:58 2016
@@ -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;
Modified: llvm/trunk/unittests/ADT/SimpleIListTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ADT/SimpleIListTest.cpp?rev=285780&r1=285779&r2=285780&view=diff
==============================================================================
--- llvm/trunk/unittests/ADT/SimpleIListTest.cpp (original)
+++ llvm/trunk/unittests/ADT/SimpleIListTest.cpp Tue Nov 1 19:59:58 2016
@@ -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;
More information about the llvm-commits
mailing list