llvm-6502/include/llvm
David Blaikie 0711d46a72 Limit cast machinery to preserve const and not accept temporaries
After cleaning up the following type hierarchies:
  * TypeLoc: r175462
  * SVal: r175594
  * CFGElement: r175462
  * ProgramPoint: r175812
that all invoked undefined behavior by causing a derived copy construction of a
base object through an invalid cast (thus supporting code that relied on
casting temporaries that were direct base objects) Clang/LLVM is now clean of
casts of temporaries. So here's some fun SFINAE machinery (courtesy of Eli
Friedman, with some porting back from C++11 to LLVM's traits by me) to cause
compile-time failures if llvm::cast & friends are ever passed an rvalue.

This should avoid a repeat of anything even remotely like PR14321/r168124.

Thanks to Jordan Rose for the help with the various Static Analyzer related
hierarchies that needed cleaning up, Eli for the SFINAE, Richard Smith, John
McCall, Ted Kremenek, and Anna Zaks for their input/reviews/patience along the
way.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175819 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-21 22:48:34 +00:00
..
ADT Clear the whole table including the tombstones, since the tombstone count will 2013-02-21 21:32:00 +00:00
Analysis Use LLVM_DELETED_FUNCTION rather than '// do not implement' comments. 2013-02-18 23:11:17 +00:00
Assembly Enable *BasicBlockPass::createPrinterPass() 2013-02-08 23:37:41 +00:00
Bitcode use memcpy instead of dubious union to type pun two values, 2013-02-13 04:53:40 +00:00
CodeGen Make RAFast::UsedInInstr indexed by register units. 2013-02-21 19:35:21 +00:00
Config Fix MSan annotations inclusion guard. 2013-02-13 10:40:01 +00:00
DebugInfo Add support for the pubnames section to llvm-dwarfdump. 2013-02-12 16:20:28 +00:00
ExecutionEngine Add support for applying in-memory relocations to the .debug_line section and, in the case of ELF files, using symbol addresses when available for relocations to the .debug_info section. Also extending the llvm-rtdyld tool to add the ability to dump line number information for testing purposes. 2013-01-25 22:50:58 +00:00
IR Fix a bug in mayHaveSideEffects. Functions that do not return are now considered as instructions with side effects. 2013-02-19 20:02:09 +00:00
MC MCParser: Update method names per coding guidelines. 2013-02-20 22:21:35 +00:00
Object [llvm-readobj] Add ELF .dynamic table dumping. 2013-02-20 02:37:12 +00:00
Option Use LLVM_DELETED_FUNCTION rather than '// do not implement' comments. 2013-02-18 23:11:17 +00:00
Support Limit cast machinery to preserve const and not accept temporaries 2013-02-21 22:48:34 +00:00
TableGen Fix comment formatting 2013-02-05 16:40:22 +00:00
Target Move the eliminateCallFramePseudoInstr method from TargetRegisterInfo 2013-02-21 20:05:00 +00:00
Transforms BBVectorize: Cap the number of candidate pairs in each instruction group 2013-02-15 04:28:42 +00:00
AutoUpgrade.h remove autoupgrade support for really old-style debug info intrinsics. 2011-11-27 06:18:33 +00:00
CMakeLists.txt Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
DebugInfo.h Add unsigned DISubprogram::getFlags() const for DragonEgg. 2013-02-18 08:04:16 +00:00
DIBuilder.h Narrow the return types of a few DIBuilder utility functions. 2013-02-18 06:41:57 +00:00
GVMaterializer.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
InitializePasses.h Enable *BasicBlockPass::createPrinterPass() 2013-02-08 23:37:41 +00:00
InstVisitor.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
LinkAllIR.h Rename LinkAllVMCore.h to LinkAllIR.h since VMCore directory was renamed to IR. 2013-01-10 21:55:02 +00:00
LinkAllPasses.h Enable *BasicBlockPass::createPrinterPass() 2013-02-08 23:37:41 +00:00
Linker.h [Linker] Zap a dead typedef. 2013-01-18 20:08:09 +00:00
Pass.h moves doInitialization and doFinalization to the Pass class and removes some unreachable code in MachineModuleInfo 2012-12-03 21:56:57 +00:00
PassAnalysisSupport.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
PassManager.h One more step towards making doInitialization and doFinalization useful for 2012-11-29 17:47:05 +00:00
PassManagers.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
PassRegistry.h
PassSupport.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00