llvm/test/Linker
Duncan P. N. Exon Smith a5ae7c1c9f DI: Require subprogram definitions to be distinct
As a follow-up to r246098, require `DISubprogram` definitions
(`isDefinition: true`) to be 'distinct'.  Specifically, add an assembler
check, a verifier check, and bitcode upgrading logic to combat testcase
bitrot after the `DIBuilder` change.

While working on the testcases, I realized that
test/Linker/subprogram-linkonce-weak-odr.ll isn't relevant anymore.  Its
purpose was to check for a corner case in PR22792 where two subprogram
definitions match exactly and share the same metadata node.  The new
verifier check, requiring that subprogram definitions are 'distinct',
precludes that possibility.

I updated almost all the IR with the following script:

    git grep -l -E -e '= !DISubprogram\(.* isDefinition: true' |
    grep -v test/Bitcode |
    xargs sed -i '' -e 's/= \(!DISubprogram(.*, isDefinition: true\)/= distinct \1/'

Likely some variant of would work for out-of-tree testcases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@246327 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-28 20:26:49 +00:00
..
Inputs DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
2002-07-17-GlobalFail.ll
2002-07-17-LinkTest2.ll
2002-08-20-ConstantExpr.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
2003-01-30-LinkerRename.ll Make this test a bit stricter. 2014-10-23 18:44:07 +00:00
2003-01-30-LinkerTypeRename.ll Rewrite test/Linker tests to use FileCheck instead of grep. 2013-04-09 16:51:13 +00:00
2003-04-23-LinkOnceLost.ll Rewrite test/Linker tests to use FileCheck instead of grep. 2013-04-09 16:51:13 +00:00
2003-04-26-NullPtrLinkProblem.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2003-05-15-TypeProblem.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2003-05-31-LinkerRename.ll Make this test a bit stricter. 2014-10-23 18:52:46 +00:00
2003-06-02-TypeResolveProblem2.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2003-06-02-TypeResolveProblem.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2003-08-20-OpaqueTypeResolve.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2003-08-23-GlobalVarLinking.ll Rewrite test/Linker tests to use FileCheck instead of grep. 2013-04-09 16:51:13 +00:00
2003-08-23-RecursiveOpaqueTypeResolve.ll Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
2003-08-24-InheritPtrSize.ll Rewrite test/Linker tests to use FileCheck instead of grep. 2013-04-09 16:51:13 +00:00
2003-08-28-TypeResolvesGlobal2.ll
2003-08-28-TypeResolvesGlobal3.ll
2003-08-28-TypeResolvesGlobal.ll Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
2003-10-27-LinkOncePromote.ll
2003-11-18-TypeResolution.ll Use %% for literals in RUN lines. 2011-08-26 20:09:48 +00:00
2004-02-17-WeakStrongLinkage.ll
2004-05-07-TypeResolution1.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
2004-05-07-TypeResolution2.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2004-12-03-DisagreeingType.ll Rewrite test/Linker tests to use FileCheck instead of grep. 2013-04-09 16:51:13 +00:00
2005-02-12-ConstantGlobals-2.ll Rewrite test/Linker tests to use FileCheck instead of grep. 2013-04-09 16:51:13 +00:00
2005-02-12-ConstantGlobals.ll Rewrite test/Linker tests to use FileCheck instead of grep. 2013-04-09 16:51:13 +00:00
2005-12-06-AppendingZeroLengthArrays.ll Rewrite test/Linker tests to use FileCheck instead of grep. 2013-04-09 16:51:13 +00:00
2006-01-19-ConstantPacked.ll Remove the dependent libraries feature. 2012-11-27 09:55:56 +00:00
2008-03-05-AliasReference2.ll
2008-03-05-AliasReference.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2008-03-07-DroppedSection_a.ll Rewrite test/Linker tests to use FileCheck instead of grep. 2013-04-09 16:51:13 +00:00
2008-03-07-DroppedSection_b.ll Rewrite test/Linker tests to use FileCheck instead of grep. 2013-04-09 16:51:13 +00:00
2008-06-13-LinkOnceRedefinition.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2008-06-26-AddressSpace.ll Rewrite test/Linker tests to use FileCheck instead of grep. 2013-04-09 16:51:13 +00:00
2008-07-06-AliasFnDecl2.ll
2008-07-06-AliasFnDecl.ll
2008-07-06-AliasWeakDest2.ll
2008-07-06-AliasWeakDest.ll
2009-09-03-mdnode2.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
2009-09-03-mdnode.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
2011-08-04-DebugLoc2.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
2011-08-04-DebugLoc.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
2011-08-04-Metadata2.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
2011-08-04-Metadata.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
2011-08-18-unique-class-type2.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
2011-08-18-unique-class-type.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
2011-08-18-unique-debug-type2.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
2011-08-18-unique-debug-type.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
alias.ll Allow alias to point to an arbitrary ConstantExpr. 2014-06-03 02:41:57 +00:00
alignment.ll Add a few extra cases to the test. NFC. 2014-12-05 00:02:42 +00:00
AppendingLinkage2.ll Rewrite test/Linker tests to use FileCheck instead of grep. 2013-04-09 16:51:13 +00:00
AppendingLinkage.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
apple-version.ll [LinkModules] Change the way ModuleLinker merges triples. 2015-02-13 00:40:41 +00:00
available_externally_a.ll
available_externally_b.ll
basiclink.ll Switch a bunch of Linker tests from using elaborate echo productions to 2012-07-02 10:18:06 +00:00
broken.ll tools: Unify how verifyModule() is called 2015-03-31 03:07:23 +00:00
comdat2.ll Change the .ll syntax for comdats and add a syntactic sugar. 2015-01-06 22:55:16 +00:00
comdat4.ll Change the .ll syntax for comdats and add a syntactic sugar. 2015-01-06 22:55:16 +00:00
comdat5.ll Change the .ll syntax for comdats and add a syntactic sugar. 2015-01-06 22:55:16 +00:00
comdat6.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
comdat7.ll Change the .ll syntax for comdats and add a syntactic sugar. 2015-01-06 22:55:16 +00:00
comdat8.ll Change the .ll syntax for comdats and add a syntactic sugar. 2015-01-06 22:55:16 +00:00
comdat9.ll Change the .ll syntax for comdats and add a syntactic sugar. 2015-01-06 22:55:16 +00:00
comdat10.ll Linker: Do not expect comdat to exist in source module. 2015-06-22 21:46:51 +00:00
comdat.ll Change the .ll syntax for comdats and add a syntactic sugar. 2015-01-06 22:55:16 +00:00
ConstantGlobals.ll merge tests for constant linking. 2014-10-31 05:04:16 +00:00
constructor-comdat.ll Change the .ll syntax for comdats and add a syntactic sugar. 2015-01-06 22:55:16 +00:00
ctors.ll Fix pr20078. 2014-09-05 21:27:52 +00:00
datalayout.ll Make DataLayout Non-Optional in the Module 2015-03-04 18:43:29 +00:00
DbgDeclare2.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
DbgDeclare.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
debug-info-version-a.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
debug-info-version-b.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
distinct-cycles.ll Utils: Resolve cycles under distinct MDNodes 2015-02-04 19:44:34 +00:00
distinct.ll Utils: Keep distinct MDNodes distinct in MapMetadata() 2015-01-08 22:42:30 +00:00
dllstorage-a.ll Copy dll storage in copyAttributes. 2014-02-13 05:11:35 +00:00
dllstorage-b.ll Copy dll storage in copyAttributes. 2014-02-13 05:11:35 +00:00
drop-debug.ll Work around pr23045 and make it easier to reproduce. 2015-03-27 15:55:06 +00:00
func-attrs-a.ll Verify that attributes are not lost during linking. 2014-01-24 19:20:15 +00:00
func-attrs-b.ll Verify that attributes are not lost during linking. 2014-01-24 19:20:15 +00:00
global_ctors.ll Don't upgrade global constructors when reading bitcode 2014-08-12 16:46:37 +00:00
ident.ll [Linker] Add some test coverage for llvm.ident merging 2014-11-05 21:33:34 +00:00
inlineasm.ll fix rdar://9776316 - type remapping needed for inline asm blobs, 2011-07-15 23:18:40 +00:00
link-global-to-func.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
link-type-names.ll Add back removed code. It still causes LLVM to miscompile. But not having it breaks other things. 2012-02-27 23:48:30 +00:00
linkage2.ll Merge alignment of common GlobalValue. 2014-09-09 17:48:18 +00:00
linkage.ll Switch a bunch of Linker tests from using elaborate echo productions to 2012-07-02 10:18:06 +00:00
linkmdnode2.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
linkmdnode.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
linknamedmdnode2.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
linknamedmdnode.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
LinkOnce.ll
lto-attributes.ll Lazily link GlobalVariables and GlobalAliases. 2014-12-08 18:45:16 +00:00
mdlocation.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
metadata-a.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
metadata-b.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
metadata-function.ll Linker: Copy over function metadata attachments 2015-04-24 22:07:31 +00:00
module-flags-1-a.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
module-flags-1-b.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
module-flags-2-a.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
module-flags-2-b.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
module-flags-3-a.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
module-flags-3-b.ll llvm-link: Verify input modules 2015-03-25 23:22:10 +00:00
module-flags-4-a.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
module-flags-4-b.ll llvm-link: Verify input modules 2015-03-25 23:22:10 +00:00
module-flags-5-a.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
module-flags-5-b.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
module-flags-6-a.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
module-flags-6-b.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
module-flags-7-a.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
module-flags-7-b.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
module-flags-8-a.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
module-flags-8-b.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
module-flags-dont-change-others.ll Linker: Don't use MDNode::replaceOperandWith() 2015-01-07 21:32:27 +00:00
module-flags-pic-1-a.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
module-flags-pic-2-a.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
multiple-merged-structs.ll Switch a bunch of Linker tests from using elaborate echo productions to 2012-07-02 10:18:06 +00:00
opaque.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
override-different-linkage.ll Linker: Add flag to override linkage rules 2015-04-22 04:11:00 +00:00
override-with-internal-linkage-2.ll Changed renaming of local symbols by inserting a dot vefore the numeric suffix. 2015-05-12 16:47:30 +00:00
override-with-internal-linkage.ll Linker: Update -override testcase to check callers 2015-04-24 16:56:24 +00:00
override.ll Linker: Add flag to override linkage rules 2015-04-22 04:11:00 +00:00
partial-type-refinement-link.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
partial-type-refinement.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
pr21374.ll Ask the module for its the identified types. 2014-12-03 07:18:23 +00:00
pr21494.ll Lazily link GlobalVariables and GlobalAliases. 2014-12-08 18:45:16 +00:00
pr22807.ll Remember to move a type to the correct set when setting the body. 2015-03-06 00:50:21 +00:00
PR8300.ll Switch a bunch of Linker tests from using elaborate echo productions to 2012-07-02 10:18:06 +00:00
prologuedata.ll Fix linking of prologue data. 2014-12-08 13:44:38 +00:00
redefinition.ll Unify and update link-messages.ll and redefinition.ll. NFC. 2014-10-31 16:52:30 +00:00
replaced-function-matches-first-subprogram.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
subprogram-linkonce-weak.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
targettriple.ll lit: Add 'cd' support to the internal shell and port some tests 2015-03-02 21:33:18 +00:00
testlink.ll Changed renaming of local symbols by inserting a dot vefore the numeric suffix. 2015-05-12 16:47:30 +00:00
transitive-lazy-link.ll [tests] Use multiple statements instead of 'echo -e', which is not part of BSD echo. 2013-08-29 03:02:30 +00:00
type-unique-alias.ll Link the type of aliases. 2014-11-25 04:43:59 +00:00
type-unique-dst-types.ll Change how we keep track of which types are in the dest module. 2014-12-01 04:15:59 +00:00
type-unique-inheritance.ll Debug Info: In DIBuilder, the context fields of a TAG_inheritance and a 2013-09-09 23:07:58 +00:00
type-unique-name.ll Set the body of a new struct as soon as it is created. 2014-11-25 15:33:40 +00:00
type-unique-odr-a.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
type-unique-odr-b.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
type-unique-opaque.ll Add back r222727 with a fix. 2014-11-28 16:41:24 +00:00
type-unique-simple2-a.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
type-unique-simple2-b.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
type-unique-simple2.ll Update test suite to make "ninja check" succeed without native backend builtin 2015-08-04 06:32:54 +00:00
type-unique-simple-a.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
type-unique-simple-b.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
type-unique-src-type.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
type-unique-type-array-a.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
type-unique-type-array-b.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
type-unique-unrelated.ll Add an interesting test that we already get right. NFC. 2014-11-25 03:47:57 +00:00
unique-fwd-decl-a.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
unique-fwd-decl-order.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
uniqued-distinct-cycles.ll Linker: Fix references to uniqued nodes after r243883 2015-08-04 06:42:31 +00:00
unnamed-addr1-a.ll Allow aliases to be unnamed_addr. 2014-06-06 01:20:28 +00:00
unnamed-addr1-b.ll Make this input file pass the verifier. 2014-09-09 15:40:12 +00:00
unnamed-addr-err-a.ll Error on linking appending globals with different unnamed_addr. 2013-09-04 15:33:34 +00:00
unnamed-addr-err-b.ll Error on linking appending globals with different unnamed_addr. 2013-09-04 15:33:34 +00:00
visibility.ll Change the .ll syntax for comdats and add a syntactic sugar. 2015-01-06 22:55:16 +00:00
weakextern.ll Pass the .ll files to llvm-link directly. NFC. 2014-11-24 20:35:59 +00:00