Index: llvm/trunk/unittests/Support/ReverseIterationTest.cpp =================================================================== --- llvm/trunk/unittests/Support/ReverseIterationTest.cpp +++ llvm/trunk/unittests/Support/ReverseIterationTest.cpp @@ -12,7 +12,6 @@ //===---------------------------------------------------------------------===// #include "llvm/ADT/DenseMap.h" -#include "llvm/ADT/SmallPtrSet.h" #include "llvm/Support/ReverseIteration.h" #include "gtest/gtest.h" @@ -23,41 +22,14 @@ "int * is pointer-like"); static_assert(detail::IsPointerLike::value, "uintptr_t is pointer-like"); + static_assert(!detail::IsPointerLike::value, + "int is not pointer-like"); + static_assert(detail::IsPointerLike::value, + "void * is pointer-like"); struct IncompleteType; static_assert(detail::IsPointerLike::value, "incomplete * is pointer-like"); - // Test reverse iteration for a DenseMap with pointer-like keys. - // DenseMap should reverse iterate if its keys are pointer-like. - DenseMap Map; - int a = 1, b = 2, c = 3, d = 4; - int *Keys[] = { &a, &b, &c, &d }; - - // Insert keys into the DenseMap. - for (auto *Key: Keys) - Map[Key] = 0; - - // Note: This is the observed order of keys in the DenseMap. - // If there is any change in the behavior of the DenseMap, this order would - // need to be adjusted accordingly. - int *IterKeys[] = { &a, &b, &c, &d }; - if (shouldReverseIterate()) - std::reverse(&IterKeys[0], &IterKeys[4]); - - // Check that the DenseMap is iterated in the expected order. - for (const auto &Tuple : zip(Map, IterKeys)) - ASSERT_EQ(*(std::get<0>(Tuple).first), *(std::get<1>(Tuple))); - - // Check operator++ (post-increment). - int i = 0; - for (auto iter = Map.begin(), end = Map.end(); iter != end; iter++, ++i) - ASSERT_EQ(iter->first, IterKeys[i]); -} - -TEST(ReverseIterationTest, DenseMapTest2) { - static_assert(!detail::IsPointerLike::value, - "int is not pointer-like"); - // For a DenseMap with non-pointer-like keys, forward iteration equals // reverse iteration. DenseMap Map; @@ -81,31 +53,3 @@ for (auto iter = Map.begin(), end = Map.end(); iter != end; iter++, ++i) ASSERT_EQ(iter->first, IterKeys[i]); } - -TEST(ReverseIterationTest, SmallPtrSetTest) { - static_assert(detail::IsPointerLike::value, - "void * is pointer-like"); - - SmallPtrSet Set; - int a = 1, b = 2, c = 3, d = 4; - int *Ptrs[] = { &a, &b, &c, &d }; - - for (auto *Ptr: Ptrs) - Set.insert(Ptr); - - // Note: This is the observed order of keys in the SmallPtrSet. - // If there is any change in the behavior of the SmallPtrSet, this order - // would need to be adjusted accordingly. - int *IterPtrs[] = { &a, &b, &c, &d }; - if (shouldReverseIterate()) - std::reverse(&IterPtrs[0], &IterPtrs[4]); - - // Check that the SmallPtrSet is iterated in the expected order. - for (const auto &Tuple : zip(Set, IterPtrs)) - ASSERT_EQ(std::get<0>(Tuple), std::get<1>(Tuple)); - - // Check operator++ (post-increment). - int i = 0; - for (auto iter = Set.begin(), end = Set.end(); iter != end; iter++, ++i) - ASSERT_EQ(*iter, IterPtrs[i]); -}