llvm-project/llvm/unittests
Chandler Carruth 6145f7dadc [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
..
ADT [ADT] Add an abstraction for embedding an integer within a pointer-like 2016-01-10 09:40:13 +00:00
Analysis [AA] Enhance the new AliasAnalysis infrastructure with an optional 2015-10-21 12:15:19 +00:00
AsmParser Fix PR 24633 - Handle undef values when parsing standalone constants. 2015-09-09 13:44:33 +00:00
Bitcode Drop support for dematerializing. 2015-12-18 19:57:26 +00:00
CodeGen AsmPrinter: Use an intrusively linked list for DIE::Children 2015-06-25 23:52:10 +00:00
DebugInfo Fix compilation of PDBApiTest. 2015-05-01 20:51:49 +00:00
ExecutionEngine [Orc][RuntimeDyld] Prevent duplicate calls to finalizeMemory on shared memory 2016-01-09 19:50:40 +00:00
IR Fix crash when printing instructions that have a metadata attached but no parent. 2016-01-07 20:14:30 +00:00
LineEditor Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
Linker Reorganize the C API headers to improve build times. 2015-12-18 01:46:52 +00:00
MC Add a RAW mode to StringTableBuilder. 2015-10-23 21:48:05 +00:00
Option [Option] Use an ArrayRef to store the Option Infos in OptTable. NFC 2015-10-21 16:30:42 +00:00
ProfileData InstrProfTest.cpp: Fix a warning. [-Wsign-compare] 2016-01-08 07:58:20 +00:00
Support Add != to YAMLParser's basic_collection_iterator. 2016-01-06 05:17:12 +00:00
Transforms Return a std::unique_ptr from CloneModule. NFC. 2015-12-08 23:57:17 +00:00
CMakeLists.txt AsmParser: Require a terminating null character when creating memory buffer. 2015-05-20 20:41:27 +00:00
Makefile AsmParser: Require a terminating null character when creating memory buffer. 2015-05-20 20:41:27 +00:00
Makefile.unittest With rpaths being set correctly, SHLIBPATH_VAR is not needed anymore. 2014-02-28 16:16:51 +00:00