llvm/unittests/ADT
Reid Kleckner 151f8cef74 APInt: Make self-move-assignment a no-op to fix stage3 clang-cl
It's not clear what the semantics of a self-move should be.  The
consensus appears to be that a self-move should leave the object in a
moved-from state, which is what our existing move assignment operator
does.

However, the MSVC 2013 STL will perform self-moves in some cases.  In
particular, when doing a std::stable_sort of an already sorted APSInt
vector of an appropriate size, one of the merge steps will self-move
half of the elements.

We don't notice this when building with MSVC, because MSVC will not
synthesize the move assignment operator for APSInt.  Presumably MSVC
does this because APInt, the base class, has user-declared special
members that implicitly delete move special members.  Instead, MSVC
selects the copy-assign operator, which defends against self-assignment.
Clang, on the other hand, selects the move-assign operator, and we get
garbage APInts.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@215478 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-12 22:01:39 +00:00
..
APFloatTest.cpp [C++11] Use 'nullptr'. 2014-06-08 22:29:17 +00:00
APIntTest.cpp APInt: Make self-move-assignment a no-op to fix stage3 clang-cl 2014-08-12 22:01:39 +00:00
APSIntTest.cpp Give APInt move semantics. 2014-03-02 20:56:28 +00:00
ArrayRefTest.cpp [ADT] Add a remarkbly useful little helper routine to ArrayRef for 2014-07-27 01:11:19 +00:00
BitVectorTest.cpp Fix a buffer overrun detected by AddressSanitizer. 2013-12-19 02:35:26 +00:00
CMakeLists.txt Remove OwningPtr.h and associated tests 2014-06-19 07:25:18 +00:00
DAGDeltaAlgorithmTest.cpp
DeltaAlgorithmTest.cpp
DenseMapTest.cpp Fix SmallDenseMap assignment operator. 2014-08-04 22:18:25 +00:00
DenseSetTest.cpp Fix some -Wsign-compare fallout from changing container count member functions to return unsigned instead of bool. 2014-06-20 19:54:13 +00:00
FoldingSet.cpp
HashingTest.cpp [C++11] Use 'nullptr'. 2014-06-08 22:29:17 +00:00
ilistTest.cpp [C++11] Use 'nullptr'. 2014-06-08 22:29:17 +00:00
ImmutableMapTest.cpp [C++11] Use 'nullptr'. 2014-06-08 22:29:17 +00:00
ImmutableSetTest.cpp
IntEqClassesTest.cpp
IntervalMapTest.cpp
IntrusiveRefCntPtrTest.cpp [weak vtables] Place class definitions into anonymous namespaces to prevent weak vtables. 2013-11-19 03:08:35 +00:00
Makefile
MakeUniqueTest.cpp [C++11] Add llvm::make_unique, according to N3656. 2014-03-09 11:20:17 +00:00
MapVectorTest.cpp ADT: Add MapVector::remove_if 2014-07-15 20:24:56 +00:00
OptionalTest.cpp [C++11] Remove uses of LLVM_HAS_RVALUE_REFERENCES from the unittests. 2014-03-01 09:36:06 +00:00
PackedVectorTest.cpp Revert "[PowerPC] Improve consistency in use of __ppc__, __powerpc__, etc." 2013-07-26 22:13:57 +00:00
PointerIntPairTest.cpp ADT/PointerIntPairTest.cpp: Appease msc17. 2014-03-10 02:33:17 +00:00
PointerUnionTest.cpp [C++11] Use 'nullptr'. 2014-06-08 22:29:17 +00:00
SCCIteratorTest.cpp [C++11] Use 'nullptr'. 2014-06-08 22:29:17 +00:00
SmallPtrSetTest.cpp [C++11] Switch all uses of the llvm_move macro to use std::move 2014-03-02 04:08:41 +00:00
SmallStringTest.cpp Revert "Clean up SmallString a bit" 2014-03-09 06:22:58 +00:00
SmallVectorTest.cpp SmallVectorTest: Make the deleted member functions private to help MSVC users. 2014-06-11 17:50:14 +00:00
SparseBitVectorTest.cpp
SparseMultiSetTest.cpp ADT/SparseMultiSetTest.cpp: Try to appease cygwin-clang on stage2, take two. [-Wsign-compare] 2013-01-22 10:39:31 +00:00
SparseSetTest.cpp SparseSet: Add support for key-derived indexes and arbitrary key types. 2012-04-20 20:05:28 +00:00
StringMapTest.cpp Recommit 211309 (StringMap::insert), reverted in 211328 due to issues with private, but non-deleted, move members. 2014-06-23 18:28:53 +00:00
StringRefTest.cpp Retire llvm::array_endof in favor of non-member std::end. 2014-04-12 16:15:53 +00:00
TinyPtrVectorTest.cpp [C++11] Replace LLVM-style type traits with C++11 standard ones. 2014-03-07 14:42:25 +00:00
TripleTest.cpp ADT: remove MinGW32 and Cygwin OSType enum 2014-08-09 23:12:20 +00:00
TwineTest.cpp Sort the #include lines for unittest/... 2012-12-04 10:23:08 +00:00
VariadicFunctionTest.cpp As Doug pointed out (and I really should know), it is perfectly easy to 2011-12-17 10:20:15 +00:00