llvm-project/llvm/test/Verifier
Adrian Prantl bceaaa9643 [IR] Remove the DIExpression field from DIGlobalVariable.
This patch implements PR31013 by introducing a
DIGlobalVariableExpression that holds a pair of DIGlobalVariable and
DIExpression.

Currently, DIGlobalVariables holds a DIExpression. This is not the
best way to model this:

(1) The DIGlobalVariable should describe the source level variable,
    not how to get to its location.

(2) It makes it unsafe/hard to update the expressions when we call
    replaceExpression on the DIGLobalVariable.

(3) It makes it impossible to represent a global variable that is in
    more than one location (e.g., a variable with multiple
    DW_OP_LLVM_fragment-s).  We also moved away from attaching the
    DIExpression to DILocalVariable for the same reasons.

This reapplies r289902 with additional testcase upgrades and a change
to the Bitcode record for DIGlobalVariable, that makes upgrading the
old format unambiguous also for variables without DIExpressions.

<rdar://problem/29250149>
https://llvm.org/bugs/show_bug.cgi?id=31013
Differential Revision: https://reviews.llvm.org/D26769

llvm-svn: 290153
2016-12-20 02:09:43 +00:00
..
2002-04-13-RetTypes.ll
2002-11-05-GetelementptrPointers.ll
2004-05-21-SwitchConstantMismatch.ll
2006-07-11-StoreStruct.ll
2006-10-15-AddrLabel.ll
2006-12-12-IntrinsicDefine.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
2007-12-21-InvokeParamAttrs.ll
2008-01-11-VarargAttrs.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
2008-03-01-AllocaSized.ll
2008-08-22-MemCpyAlignment.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
2008-11-15-RetVoid.ll
2009-05-29-InvokeResult1.ll
2009-05-29-InvokeResult2.ll
2009-05-29-InvokeResult3.ll
2010-08-07-PointerIntrinsic.ll Upgrade old memset/memcpy signatures (without isVolatile argument) in tests 2016-06-22 15:16:06 +00:00
AmbiguousPhi.ll
PhiGrouping.ll
README.txt
SelfReferential.ll
alias.ll Don't IPO over functions that can be de-refined 2016-04-08 00:48:30 +00:00
align-md.ll Add verification for align, dereferenceable, dereferenceable_or_null load metadata 2015-10-09 17:41:29 +00:00
alloc-size-failedparse.ll Add the allocsize attribute to LLVM. 2016-04-12 01:05:35 +00:00
allocsize.ll Add the allocsize attribute to LLVM. 2016-04-12 01:05:35 +00:00
atomics.ll Polish atomic pointers 2015-12-17 22:09:19 +00:00
bitcast-address-space-nested-global-cycle.ll
bitcast-address-space-nested-global.ll
bitcast-address-space-through-constant-inttoptr-inside-gep-instruction.ll
bitcast-address-space-through-constant-inttoptr.ll
bitcast-address-space-through-gep-2.ll
bitcast-address-space-through-gep.ll
bitcast-address-space-through-inttoptr.ll
bitcast-address-spaces.ll
bitcast-alias-address-space.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
bitcast-vector-pointer-as.ll
byval-1.ll
byval-4.ll
callsite-dbgloc.ll Verifier: Verify that each inlinable callsite of a debug-info-bearing function 2016-04-24 22:23:13 +00:00
comdat-decl1.ll Verifier: Forbid comdats on linker declarations. 2015-07-05 20:52:40 +00:00
comdat-decl2.ll Verifier: Forbid comdats on linker declarations. 2015-07-05 20:52:40 +00:00
comdat.ll
comdat2.ll
comdat3.ll
cttz-undef-arg.ll
dbg-difile-crash.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
dbg-invalid-compileunit.ll [IRVerifier] Avoid crashing on an invalid compile unit. 2016-04-06 03:07:58 +00:00
dbg-invalid-named-metadata.ll Verifier: Reject any unknown named MD nodes in the llvm.dbg namespace. 2016-10-05 22:15:37 +00:00
dbg-invalid-retaintypes.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
dbg-null-retained-type.ll Verifier: Don't crash on null entries in debug info retained types list 2015-08-22 22:36:40 +00:00
dbg-orphaned-compileunit.ll Add an IR Verifier check for orphaned DICompileUnits. 2016-03-28 21:06:26 +00:00
dbg-typerefs.ll DebugInfo: Remove MDString-based type references 2016-04-23 21:08:00 +00:00
dbg.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
deoptimize-intrinsic.ll All llvm.deoptimize declarations must use the same calling convention 2016-05-12 01:17:38 +00:00
dereferenceable-md.ll Add verification for align, dereferenceable, dereferenceable_or_null load metadata 2015-10-09 17:41:29 +00:00
diglobalvariable.ll [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +00:00
dominates.ll [Verifier] Reject PHIs using defs from own block. 2016-03-26 23:32:57 +00:00
fpmath.ll Verifier: Reject non-float !fpmath 2016-06-27 19:43:15 +00:00
frameescape.ll Rename llvm.frameescape and llvm.framerecover to localescape and localrecover 2015-07-07 22:25:32 +00:00
func-dbg.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
function-metadata-bad.ll Add function entry count metadata. 2015-05-13 15:13:45 +00:00
function-metadata-good.ll Add function entry count metadata. 2015-05-13 15:13:45 +00:00
gc_relocate_addrspace.ll [gc.statepoint] Change gc.statepoint intrinsic's return type to token type instead of i32 type 2015-12-26 07:54:32 +00:00
gc_relocate_operand.ll [gc.statepoint] Change gc.statepoint intrinsic's return type to token type instead of i32 type 2015-12-26 07:54:32 +00:00
gc_relocate_return.ll [Statepoints] Initial support for relocating vectors of pointers 2016-01-07 03:32:11 +00:00
gcread-ptrptr.ll
gcroot-alloca.ll
gcroot-meta.ll
gcroot-ptrptr.ll
gcwrite-ptrptr.ll
global-ctors.ll
guard-intrinsic.ll Introduce a @llvm.experimental.guard intrinsic 2016-03-31 00:18:46 +00:00
ident-meta1.ll
ident-meta2.ll
ident-meta3.ll
ident-meta4.ll
inalloca-vararg.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
inalloca1.ll
inalloca2.ll
inalloca3.ll
invalid-eh.ll [Verifier] Don't abort on invalid cleanuprets 2016-03-01 18:59:50 +00:00
invalid-statepoint.ll [gc.statepoint] Change gc.statepoint intrinsic's return type to token type instead of i32 type 2015-12-26 07:54:32 +00:00
invalid-statepoint2.ll [gc.statepoint] Change gc.statepoint intrinsic's return type to token type instead of i32 type 2015-12-26 07:54:32 +00:00
invoke.ll [coroutines] Part 4[ab]: Coroutine Devirtualization: Lower coro.resume and coro.destroy. 2016-08-04 20:30:07 +00:00
jumptable.ll
llvm.compiler_used-invalid-type.ll
llvm.dbg.declare-address.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
llvm.dbg.declare-expression.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
llvm.dbg.declare-variable.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
llvm.dbg.intrinsic-dbg-attachment.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
llvm.dbg.value-expression.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
llvm.dbg.value-value.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
llvm.dbg.value-variable.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
llvm.used-invalid-init.ll
llvm.used-invalid-init2.ll
llvm.used-invalid-type.ll
llvm.used-invalid-type2.ll
llvm.used-ptr-type.ll
mdcompositetype-templateparams-tuple.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
mdcompositetype-templateparams.ll IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
memcpy.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
metadata-function-dbg.ll IR: Allow metadata attachments on declarations, and fix lazy loaded metadata issue with globals. 2016-06-21 23:42:48 +00:00
metadata-function-prof.ll IR: Allow metadata attachments on declarations, and fix lazy loaded metadata issue with globals. 2016-06-21 23:42:48 +00:00
module-flags-1.ll
module-flags-2.ll
module-flags-3.ll
musttail-invalid.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
musttail-valid.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
non-integral-pointers.ll [Verifier] Add more tests related to non-integral pointers 2016-08-02 23:32:53 +00:00
operand-bundles.ll Add a "gc-transition" operand bundle 2016-01-20 19:50:25 +00:00
range-1.ll
range-2.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
recursive-struct-param.ll
recursive-type-1.ll
recursive-type-2.ll
recursive-type-3.ll
resume.ll Included test for r277360. 2016-08-01 18:07:19 +00:00
sret.ll
statepoint.ll [gc.statepoint] Change gc.statepoint intrinsic's return type to token type instead of i32 type 2015-12-26 07:54:32 +00:00
swifterror.ll Swift Calling Convention: add swifterror attribute. 2016-04-01 21:41:15 +00:00
swifterror2.ll Swift Calling Convention: add swifterror attribute. 2016-04-01 21:41:15 +00:00
swifterror3.ll Swift Calling Convention: add swifterror attribute. 2016-04-01 21:41:15 +00:00
swiftself.ll Swift Calling Convention: add swiftself attribute. 2016-03-29 17:37:21 +00:00
tbaa-allowed.ll [Verifier] Allow TBAA metadata on atomicrmw and atomiccmpxchg 2016-12-15 21:23:44 +00:00
tbaa.ll Strip invalid TBAA when reading bitcode 2016-12-16 19:16:29 +00:00
token1.ll [IR] Add token types 2015-08-14 05:09:07 +00:00
token2.ll [IR] Add token types 2015-08-14 05:09:07 +00:00
token3.ll [IR] Add token types 2015-08-14 05:09:07 +00:00
token4.ll [IR] Add token types 2015-08-14 05:09:07 +00:00
token5.ll [IR] Add token types 2015-08-14 05:09:07 +00:00
token6.ll [IR] Add token types 2015-08-14 05:09:07 +00:00
token7.ll [IR] Add token types 2015-08-14 05:09:07 +00:00
unsized-types.ll [IR] Disallow loading and storing unsized types 2016-06-01 16:13:10 +00:00
varargs-intrinsic.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
writeonly.ll Add writeonly IR attribute 2016-07-04 08:01:29 +00:00

README.txt

This directory contains testcases that the verifier is supposed to detect as
malformed LLVM code.  Testcases for situations that the verifier incorrectly
identifies as malformed should go in the test/Assembler directory.