llvm/unittests/ADT
Duncan P. N. Exon Smith cb8ffd254b ADT: Fix SmallPtrSet iterators in reverse mode
Fix SmallPtrSet::iterator behaviour and creation ReverseIterate is true.

  - Any function that creates an iterator now uses
    SmallPtrSet::makeIterator, which creates an iterator that
    dereferences to the given pointer.

  - In reverse-iterate mode, initialze iterator::End with "CurArray"
    instead of EndPointer.

  - In reverse-iterate mode, the current node is iterator::Buffer[-1].
    iterator::operator* and SmallPtrSet::makeIterator are the only ones
    that need to know.

  - Fix the assertions for reverse-iterate mode.

This fixes the tests Danny B added in r297182, and adds a couple of
others to confirm that dereferencing does the right thing, regardless of
how the iterator was found, and that iteration works correctly from each
return from find.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297234 91177308-0d34-0410-b5e6-96231b3b80d8
2017-03-07 21:56:32 +00:00
..
APFloatTest.cpp DAGCombiner: Allow negating ConstantFP after legalize 2017-01-25 04:54:34 +00:00
APIntTest.cpp Strip trailing whitespace. 2017-03-07 21:16:38 +00:00
APSIntTest.cpp
ArrayRefTest.cpp Add some searching functions for ArrayRef<T>. 2016-11-22 23:22:19 +00:00
BitmaskEnumTest.cpp [ADT] Add LLVM_MARK_AS_BITMASK_ENUM, used to enable bitwise operations on enums without static_cast. 2016-07-13 18:23:16 +00:00
BitVectorTest.cpp Add unittests for empty bitvectors. 2017-01-23 19:06:54 +00:00
BumpPtrListTest.cpp ADT: Add AllocatorList, and use it for yaml::Token 2016-09-11 22:40:40 +00:00
CMakeLists.txt [llvm] Iterate SmallPtrSet in reverse order to uncover non-determinism in codegen 2016-12-14 00:15:57 +00:00
DAGDeltaAlgorithmTest.cpp
DeltaAlgorithmTest.cpp
DenseMapTest.cpp [ADT] Remove CachedHash<T>. 2016-10-18 17:50:39 +00:00
DenseSetTest.cpp Add test for default construction coverage of DenseSet iterators. 2017-01-24 05:29:40 +00:00
DepthFirstIteratorTest.cpp Modify df_iterator to support post-order actions 2016-10-05 21:36:16 +00:00
FoldingSet.cpp PR30711: Fix incorrect profiling of 'long long' in FoldingSet, then use it to 2016-10-16 17:49:09 +00:00
FunctionRefTest.cpp
HashingTest.cpp
IListBaseTest.cpp ADT: Add sentinel tracking and custom tags to ilists 2016-09-11 16:20:53 +00:00
IListIteratorTest.cpp Fix some missing negations in the traits checking from r294349 2017-02-07 21:31:03 +00:00
IListNodeBaseTest.cpp ADT: Add sentinel tracking and custom tags to ilists 2016-09-11 16:20:53 +00:00
IListNodeTest.cpp ADT: Add sentinel tracking and custom tags to ilists 2016-09-11 16:20:53 +00:00
IListSentinelTest.cpp Turn LLVM_ENABLE_ABI_BREAKING_CHECKS into a 0/1 definition like 2016-09-30 19:52:27 +00:00
IListTest.cpp ADT: Never allocate nodes in iplist<> and ilist<> 2016-09-11 23:43:43 +00:00
ImmutableMapTest.cpp
ImmutableSetTest.cpp Fix warnings in ImmutableSetTest and SequenceTest. 2016-07-17 18:10:30 +00:00
IntEqClassesTest.cpp
IntervalMapTest.cpp [ADT] IntervalMap: fix setStart and setStop 2016-11-03 19:14:46 +00:00
IntrusiveRefCntPtrTest.cpp [ADT] Attempt to fix GCC warning in IntrusiveRefCntPtrTest. 2017-01-04 22:49:55 +00:00
IteratorTest.cpp [ADT] Fix zip iterator interface. 2017-02-23 23:00:46 +00:00
MakeUniqueTest.cpp
MapVectorTest.cpp [ADT] Let MapVector handle non-copyable values. 2016-10-10 16:25:59 +00:00
OptionalTest.cpp [ADT] Add relation operators for Optional 2016-08-11 20:10:15 +00:00
PackedVectorTest.cpp
PointerEmbeddedIntTest.cpp [ADT] Fix PointerEmbeddedInt when the underlying type is uintptr_t. 2016-02-18 21:00:08 +00:00
PointerIntPairTest.cpp Fix PointerIntPair so that it can use an enum class as its integer template argument. 2016-01-13 05:59:13 +00:00
PointerSumTypeTest.cpp [ADT] Add a sum type abstraction for pointer-like types. 2016-01-10 08:48:23 +00:00
PointerUnionTest.cpp
PostOrderIteratorTest.cpp [ADT] Change PostOrderIterator to use NodeRef. NFC. 2016-08-15 21:52:54 +00:00
PriorityWorklistTest.cpp [ADT] Speculative attempt to fix build bot issues with r290952. 2017-01-04 11:40:18 +00:00
RangeAdapterTest.cpp Reapply "ADT: Remove references in has_rbegin for reverse()" 2016-08-18 17:15:25 +00:00
ReverseIterationTest.cpp [ADT] Fix for compilation error when operator++(int) (post-increment function) of SmallPtrSetIterator is used. 2016-12-30 12:34:36 +00:00
SCCIteratorTest.cpp [ADT] Actually mutate the iterator VisitStack.back().second, not its copy. 2016-08-22 21:59:26 +00:00
ScopeExitTest.cpp [ADT] Add make_scope_exit(). 2016-08-10 17:52:09 +00:00
SequenceTest.cpp Fix warnings in ImmutableSetTest and SequenceTest. 2016-07-17 18:10:30 +00:00
SetVectorTest.cpp [SetVector] Add erase() method 2016-03-25 19:28:08 +00:00
SimpleIListTest.cpp [ilist_node] Add a getReverseIterator() method and a unittest for it. 2016-11-02 00:59:58 +00:00
SmallPtrSetTest.cpp ADT: Fix SmallPtrSet iterators in reverse mode 2017-03-07 21:56:32 +00:00
SmallStringTest.cpp Revert "Fix Clang-tidy modernize-deprecated-headers warnings in remaining files; other minor fixes." 2016-04-05 20:45:04 +00:00
SmallVectorTest.cpp Revert "Fix Clang-tidy modernize-deprecated-headers warnings in remaining files; other minor fixes." 2016-04-05 20:45:04 +00:00
SparseBitVectorTest.cpp [ADT] Add SparseBitVector::find_last(). 2017-01-17 23:09:21 +00:00
SparseMultiSetTest.cpp
SparseSetTest.cpp [ADT] Add a pop_back_val method to the SparseSet container. 2016-03-14 18:10:41 +00:00
STLExtrasTest.cpp [ADT] Add an llvm::erase_if utility to make the standard erase+remove_if 2016-12-26 23:30:44 +00:00
StringExtrasTest.cpp Add llvm::join_items to StringExtras. 2016-09-27 16:37:30 +00:00
StringMapTest.cpp Rename StringMap::emplace_second to try_emplace. 2016-07-21 13:37:48 +00:00
StringRefTest.cpp [Support] Add StringRef::getAsDouble. 2017-02-14 19:06:37 +00:00
StringSwitchTest.cpp [Support] Add case-insensitive versions of StringSwitch members. 2016-10-04 19:33:13 +00:00
TestGraph.h s/static inline/static/ for headers I have changed in r279475. NFC. 2016-08-31 16:48:13 +00:00
TinyPtrVectorTest.cpp Remove uses of deprecated std::random_shuffle in the LLVM code base. Reviewed as https://reviews.llvm.org/D29780. 2017-02-16 14:37:03 +00:00
TripleTest.cpp Set default CPU for OpenBSD/arm to Cortex-A8 2017-02-28 17:28:35 +00:00
TwineTest.cpp Fix compilation. 2016-12-17 01:31:46 +00:00
VariadicFunctionTest.cpp