1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00
llvm-mirror/unittests/ADT
Chandler Carruth 8bbd7bacc1 [ADT] Add an abstraction for embedding an integer within a pointer-like
type.

This makes it easy and safe to use a set of flags as one elmenet of
a tagged union with pointers. There is quite a bit of code that has
historically done this by casting arbitrary integers to "pointers" and
assuming that this was safe and reliable. It is neither, and has started
to rear its head by triggering safety asserts in various abstractions
like PointerLikeTypeTraits when the integers chosen are invariably poor
choices for *some* platform and *some* situation. Not to mention the
(hopefully unlikely) prospect of one of these integers actually getting
allocated!

With this, it will be straightforward to build type safe abstractions
like this without being error prone. The abstraction itself is also
remarkably simple thanks to the implicit conversion.

This use case and pattern was also independently created by the folks
working on Swift, and they're going to incrementally add any missing
functionality they find.

Differential Revision: http://reviews.llvm.org/D15844

llvm-svn: 257284
2016-01-10 09:40:13 +00:00
..
APFloatTest.cpp Add isInteger() to APFloat. 2015-11-16 21:52:48 +00:00
APIntTest.cpp
APSIntTest.cpp
ArrayRefTest.cpp Add makeArrayRef() overload for ArrayRef input (no-op/identity) NFC 2015-09-10 00:05:04 +00:00
BitVectorTest.cpp Simplify SmallBitVector::applyMask by consolidating common code for 32- and 64-bit builds 2015-09-18 15:08:24 +00:00
CMakeLists.txt [ADT] Add an abstraction for embedding an integer within a pointer-like 2016-01-10 09:40:13 +00:00
DAGDeltaAlgorithmTest.cpp
DeltaAlgorithmTest.cpp
DenseMapTest.cpp Add a unittest for SmallDenseMap that tests assigning a SmallDenseMap when it is not small. 2015-10-31 05:23:53 +00:00
DenseSetTest.cpp
FoldingSet.cpp
FunctionRefTest.cpp
HashingTest.cpp
ilistTest.cpp ADT: Avoid relying on UB in ilist_node::getNextNode() 2015-11-11 02:26:42 +00:00
ImmutableMapTest.cpp
ImmutableSetTest.cpp
IntEqClassesTest.cpp
IntervalMapTest.cpp
IntrusiveRefCntPtrTest.cpp
Makefile
MakeUniqueTest.cpp
MapVectorTest.cpp
OptionalTest.cpp
PackedVectorTest.cpp
PointerEmbeddedIntTest.cpp [ADT] Add an abstraction for embedding an integer within a pointer-like 2016-01-10 09:40:13 +00:00
PointerIntPairTest.cpp [ADT] Use a nonce type with at least 4 byte alignment. 2015-12-29 00:03:24 +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
RangeAdapterTest.cpp
SCCIteratorTest.cpp
SmallPtrSetTest.cpp
SmallStringTest.cpp
SmallVectorTest.cpp
SparseBitVectorTest.cpp
SparseMultiSetTest.cpp
SparseSetTest.cpp
StringMapTest.cpp
StringRefTest.cpp [ADT] Fix a confusing interface spec and some annoying peculiarities 2015-09-10 07:51:37 +00:00
TinyPtrVectorTest.cpp
TripleTest.cpp Handle ARMv6-J as an alias, instead of fake architecture 2015-11-20 16:46:09 +00:00
TwineTest.cpp
VariadicFunctionTest.cpp