llvm-project/llvm/test/Verifier
Duncan P. N. Exon Smith f17f34e42b Verifier: Check that @llvm.dbg.* intrinsics have a !dbg attachment
Before we start to rely on valid `!dbg` attachments, add a check to the
verifier that `@llvm.dbg.*` intrinsics always have one.  Also check that
the `scope:` fields point at the same `MDSubprogram`.

This is in the context of PR22778.  The check that the `inlinedAt:`
fields agree has baked for a while (since r234021), so I'll kill [1] the
`MDLocalVariable::getInlinedAt()` field soon.

[1]: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20150330/269387.html

Unfortunately, that means it's impossible to keep the current `Verifier`
checks, which rely on comparing `inlinedAt:` fields.  We'll be able to
keep the checks I'm adding here.

If this breaks your out-of-tree testcases, the upgrade script
(add-dbg-to-intrinsics.sh) attached to PR22778 that I used for r235040
might fix them for you.

llvm-svn: 235048
2015-04-15 22:15:46 +00:00
..
2002-04-13-RetTypes.ll
2002-11-05-GetelementptrPointers.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
2004-05-21-SwitchConstantMismatch.ll
2006-07-11-StoreStruct.ll
2006-10-15-AddrLabel.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2006-12-12-IntrinsicDefine.ll
2007-12-21-InvokeParamAttrs.ll
2008-01-11-VarargAttrs.ll
2008-03-01-AllocaSized.ll AsmParser: Reject alloca with function type 2015-02-16 08:38:03 +00:00
2008-08-22-MemCpyAlignment.ll
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 [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
AmbiguousPhi.ll
PhiGrouping.ll
README.txt
SelfReferential.ll
alias.ll Use "weak alias" instead of "alias weak" 2014-07-30 22:51:54 +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 [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
bitcast-address-space-through-constant-inttoptr.ll
bitcast-address-space-through-gep-2.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
bitcast-address-space-through-gep.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
bitcast-address-space-through-inttoptr.ll
bitcast-address-spaces.ll
bitcast-alias-address-space.ll
bitcast-vector-pointer-as.ll
byval-1.ll
byval-4.ll
comdat.ll Change the .ll syntax for comdats and add a syntactic sugar. 2015-01-06 22:55:16 +00:00
comdat2.ll Change the .ll syntax for comdats and add a syntactic sugar. 2015-01-06 22:55:16 +00:00
comdat3.ll Verifier: Unused comdats might not have a corresponding GV 2015-02-20 19:58:48 +00:00
cttz-undef-arg.ll
dbg-typerefs.ll Verifier: Add a testcase for verifying type refs 2015-03-31 20:57:56 +00:00
dbg.ll Verifier: Start recursing into !dbg attachments 2015-03-24 17:32:19 +00:00
dominates.ll
fpmath.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
frameescape.ll Replace llvm.frameallocate with llvm.frameescape 2015-03-05 18:26:34 +00:00
gcread-ptrptr.ll
gcroot-alloca.ll
gcroot-meta.ll
gcroot-ptrptr.ll
gcwrite-ptrptr.ll
global-ctors.ll
ident-meta1.ll IR: Stop printing 'metadata' in Metadata::print() 2014-12-16 07:40:31 +00:00
ident-meta2.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
ident-meta3.ll IR: Stop printing 'metadata' in Metadata::print() 2014-12-16 07:40:31 +00:00
ident-meta4.ll Verifier: Make sure !llvm.ident's operand isn't null 2015-02-11 08:23:20 +00:00
inalloca-vararg.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
inalloca1.ll
inalloca2.ll
inalloca3.ll
invalid-statepoint.ll Fix an issue in the verifier where we could try to read information out of a malformed statepoint intrinsic. 2015-03-10 05:58:21 +00:00
invalid-statepoint2.ll Fix another verifier crash where a GC intrinsic would look at the internals of another intrinsic in order to verify itself. 2015-03-11 06:57:30 +00:00
invoke.ll [Stackmaps] Enable invoking the patchpoint intrinsic. 2014-10-17 17:39:00 +00:00
jumptable.ll Don't manually (and forcibly) run the verifier on the entire module from 2014-07-30 05:44:04 +00:00
llvm.compiler_used-invalid-type.ll
llvm.dbg.declare-address.ll DebugInfo: Add missing !dbg attachments to intrinsics 2015-04-15 21:04:10 +00:00
llvm.dbg.declare-expression.ll Verifier: Check fields of MDVariable subclasses 2015-03-27 17:29:58 +00:00
llvm.dbg.declare-variable.ll Verifier: Check that @llvm.dbg.* intrinsics have a !dbg attachment 2015-04-15 22:15:46 +00:00
llvm.dbg.intrinsic-dbg-attachment.ll Verifier: Check that @llvm.dbg.* intrinsics have a !dbg attachment 2015-04-15 22:15:46 +00:00
llvm.dbg.value-expression.ll Verifier: Check that @llvm.dbg.* intrinsics have a !dbg attachment 2015-04-15 22:15:46 +00:00
llvm.dbg.value-value.ll DebugInfo: Add missing !dbg attachments to intrinsics 2015-04-15 21:04:10 +00:00
llvm.dbg.value-variable.ll Verifier: Check that @llvm.dbg.* intrinsics have a !dbg attachment 2015-04-15 22:15:46 +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 Verifier: Check composite type template params 2015-04-06 17:04:58 +00:00
mdcompositetype-templateparams.ll Verifier: Check composite type template params 2015-04-06 17:04:58 +00:00
memcpy.ll Teach the verifier to enforce that the alignment argument of memory intrinsics must be a power of 2. 2015-03-02 09:35:06 +00:00
module-flags-1.ll IR: Stop printing 'metadata' in Metadata::print() 2014-12-16 07:40:31 +00:00
module-flags-2.ll Verifier: Check for null operands in !llvm.module.flags 2015-02-11 09:13:06 +00:00
module-flags-3.ll Verifier: Diagnose module flags which have null ID operands 2015-02-16 08:14:22 +00:00
musttail-invalid.ll
musttail-valid.ll Verifier: Don't reject varargs callee cleanup functions 2014-08-29 21:25:28 +00:00
range-1.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
range-2.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
recursive-struct-param.ll Fix an infinite recursion in the verifier caused by calling isSized on a recursive type. 2015-03-13 06:41:26 +00:00
recursive-type-1.ll
recursive-type-2.ll
recursive-type-3.ll
sret.ll
statepoint.ll Implement invoke statepoint verification. 2015-02-19 11:28:47 +00:00
varargs-intrinsic.ll

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.