llvm-6502/unittests/ADT
David Blaikie d9078385de Ensure function_refs are copyable even from non-const references
A subtle bug was found where attempting to copy a non-const function_ref
lvalue would actually invoke the generic forwarding constructor (as it
was a closer match - being T& rather than the const T& of the implicit
copy constructor). In the particular case this lead to a dangling
function_ref member (since it had referenced the function_ref passed by
value to its ctor, rather than the outer function_ref that was still
alive)

SFINAE the converting constructor to not be considered if the copy
constructor is available and demonstrate that this causes the copy to
refer to the original functor, not to the function_ref it was copied
from. (without the code change, the test would fail as Y would be
referencing X and Y() would see the result of the mutation to X, ie: 2)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@221753 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-12 02:06:08 +00:00
..
APFloatTest.cpp [ADT] Add an (ADL-friendly) abs free function for APFloat that returns 2014-10-10 08:27:22 +00:00
APIntTest.cpp Simplify creation of a bunch of ArrayRefs by using None, makeArrayRef or just letting them be implicitly created. 2014-08-27 05:25:25 +00:00
APSIntTest.cpp
ArrayRefTest.cpp Add some negative (and positive) static_assert checks for ArrayRef-of-pointer conversions introduced in r216709 2014-08-31 01:33:41 +00:00
BitVectorTest.cpp
CMakeLists.txt Ensure function_refs are copyable even from non-const references 2014-11-12 02:06:08 +00:00
DAGDeltaAlgorithmTest.cpp
DeltaAlgorithmTest.cpp
DenseMapTest.cpp Fix SmallDenseMap assignment operator. 2014-08-04 22:18:25 +00:00
DenseSetTest.cpp [ADT] Add a 'find_as' operation to DenseSet. 2014-10-19 19:36:33 +00:00
FoldingSet.cpp
FunctionRefTest.cpp Ensure function_refs are copyable even from non-const references 2014-11-12 02:06:08 +00:00
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
Makefile
MakeUniqueTest.cpp
MapVectorTest.cpp Add MapVector::rbegin(), MapVector::rend() to completment MapVector::begin(), MapVector::end(). 2014-10-27 17:20:53 +00:00
OptionalTest.cpp Update test name to match changes made in r218783 2014-10-01 21:19:39 +00:00
PackedVectorTest.cpp
PointerIntPairTest.cpp
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
SmallStringTest.cpp
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
SparseSetTest.cpp
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
TinyPtrVectorTest.cpp
TripleTest.cpp Add hsail and amdil64 to Triple 2014-09-19 19:52:11 +00:00
TwineTest.cpp
VariadicFunctionTest.cpp