llvm-6502/include/llvm
Duncan P. N. Exon Smith 88116fe71a Reapply "Verifier: Check for incompatible bit piece expressions"
This reverts commit r234717, reapplying r234698 (in spirit).

As described in r234717, the original `Verifier` check had a
use-after-free.  Instead of storing pointers to "interesting" debug info
intrinsics whose bit piece expressions should be verified once we have
typerefs, do a second traversal.  I've added a testcase to catch the
`llc` crasher.

Original commit message:

    Verifier: Check for incompatible bit piece expressions

    Convert an assertion into a `Verifier` check.  Bit piece expressions
    must fit inside the variable, and mustn't be the entire variable.
    Catching this in the verifier will help us find bugs sooner, and makes
    `DIVariable::getSizeInBits()` dead code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234776 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-13 18:53:11 +00:00
..
ADT Mark empty default constructors as =default if it makes the type POD 2015-04-11 18:57:14 +00:00
Analysis Remove empty non-virtual destructors or mark them =default when non-public 2015-04-11 15:32:26 +00:00
AsmParser Pass a MemoryBufferRef when we can avoid taking ownership. 2014-08-26 21:49:01 +00:00
Bitcode Remove empty non-virtual destructors or mark them =default when non-public 2015-04-11 15:32:26 +00:00
CodeGen Allow memory intrinsics to be tail calls 2015-04-13 17:16:45 +00:00
Config [ADT][CMake][AutoConf] Fail-fast iterators for DenseMap 2015-03-26 19:25:01 +00:00
DebugInfo Remove empty non-virtual destructors or mark them =default when non-public 2015-04-11 15:32:26 +00:00
ExecutionEngine [Orc] Remove duplicate "then" in comment. 2015-04-12 22:23:57 +00:00
IR Reapply "Verifier: Check for incompatible bit piece expressions" 2015-04-13 18:53:11 +00:00
IRReader Pass a MemoryBufferRef when we can avoid taking ownership. 2014-08-26 21:49:01 +00:00
LineEditor Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
Linker Remember to move a type to the correct set when setting the body. 2015-03-06 00:50:21 +00:00
LTO libLTO, llvm-lto, gold: Introduce flag for controlling optimization level. 2015-03-19 22:01:00 +00:00
MC [MC] Write padding into fragments when -mc-relax-all flag is used 2015-04-12 23:42:25 +00:00
Object Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
Option Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
Passes [PM] Create a separate library for high-level pass management code. 2015-03-07 09:02:36 +00:00
ProfileData InstrProf: Teach llvm-cov to handle universal binaries when given -arch 2015-03-11 02:30:51 +00:00
Support Mark empty default constructors as =default if it makes the type POD 2015-04-11 18:57:14 +00:00
TableGen Remove empty non-virtual destructors or mark them =default when non-public 2015-04-11 15:32:26 +00:00
Target Simplify use of formatted_raw_ostream. 2015-04-09 21:06:08 +00:00
Transforms Remove empty non-virtual destructors or mark them =default when non-public 2015-04-11 15:32:26 +00:00
CMakeLists.txt Remove llvm_headers_do_not_build for the benefit of XCode and Visual Studio users. 2014-08-14 00:51:47 +00:00
InitializePasses.h Divergence analysis for GPU programs 2015-04-10 05:03:50 +00:00
LinkAllIR.h
LinkAllPasses.h Divergence analysis for GPU programs 2015-04-10 05:03:50 +00:00
module.modulemap [modules] Mark Analysis/TargetLibraryInfo.def as a textual header. 2015-03-06 23:39:54 +00:00
module.modulemap.build
Pass.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
PassAnalysisSupport.h Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:54:22 +00:00
PassInfo.h Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for requiring the macro. NFC; LLVM edition. 2015-02-15 22:54:22 +00:00
PassRegistry.h Revert r231276 (including r231277): Add a lock() function in PassRegistry to speed up multi-thread synchronization. 2015-03-05 17:53:00 +00:00
PassSupport.h Defining a new API for debug options that doesn't rely on static global cl::opts. 2014-10-15 21:54:35 +00:00