llvm-project/llvm/test/Linker
Peter Collingbourne 72391ab4f1 IR: Teach GlobalIndirectSymbol::getBaseObject() to handle more kinds of expressions.
For aliases, any expression that lowers at the MC level to global_object or
global_object+constant is valid at the object file level. getBaseObject()
should return a result if the aliasee ends up being of that form even if
the IR used to produce it is somewhat unconventional.

Note that this is different from what stripInBoundsOffsets() and that family
of functions is doing. Those functions are concerned about semantic properties
of IR, whereas here we only care about the lowering result.

Therefore reimplement getBaseObject() in a way that matches the lowering
result. This fixes a crash when producing a summary for aliases such as
that in the included test case.

Differential Revision: https://reviews.llvm.org/D65115

llvm-svn: 366952
2019-07-24 22:23:05 +00:00
..
Inputs Reapply: IR: add optional type to 'byval' function parameters 2019-05-30 18:48:23 +00:00
2002-07-17-GlobalFail.ll
2002-07-17-LinkTest2.ll
2002-08-20-ConstantExpr.ll
2003-01-30-LinkerRename.ll
2003-01-30-LinkerTypeRename.ll
2003-04-23-LinkOnceLost.ll
2003-04-26-NullPtrLinkProblem.ll
2003-05-15-TypeProblem.ll
2003-05-31-LinkerRename.ll
2003-06-02-TypeResolveProblem.ll
2003-06-02-TypeResolveProblem2.ll
2003-08-20-OpaqueTypeResolve.ll
2003-08-23-GlobalVarLinking.ll
2003-08-23-RecursiveOpaqueTypeResolve.ll
2003-08-24-InheritPtrSize.ll
2003-08-28-TypeResolvesGlobal.ll
2003-08-28-TypeResolvesGlobal2.ll
2003-08-28-TypeResolvesGlobal3.ll
2003-10-27-LinkOncePromote.ll
2003-11-18-TypeResolution.ll
2004-02-17-WeakStrongLinkage.ll
2004-05-07-TypeResolution1.ll
2004-05-07-TypeResolution2.ll
2004-12-03-DisagreeingType.ll
2005-02-12-ConstantGlobals-2.ll
2005-02-12-ConstantGlobals.ll
2005-12-06-AppendingZeroLengthArrays.ll
2006-01-19-ConstantPacked.ll
2008-03-05-AliasReference.ll
2008-03-05-AliasReference2.ll
2008-03-07-DroppedSection_a.ll
2008-03-07-DroppedSection_b.ll
2008-06-13-LinkOnceRedefinition.ll
2008-06-26-AddressSpace.ll
2008-07-06-AliasFnDecl.ll
2008-07-06-AliasFnDecl2.ll
2008-07-06-AliasWeakDest.ll
2008-07-06-AliasWeakDest2.ll
2009-09-03-mdnode.ll
2009-09-03-mdnode2.ll
2011-08-04-DebugLoc.ll
2011-08-04-DebugLoc2.ll
2011-08-04-Metadata.ll Canonicalize the representation of empty an expression in DIGlobalVariableExpression 2017-08-30 18:06:51 +00:00
2011-08-04-Metadata2.ll Canonicalize the representation of empty an expression in DIGlobalVariableExpression 2017-08-30 18:06:51 +00:00
2011-08-18-unique-class-type.ll Remove line and file from DINamespace. 2017-04-28 22:25:46 +00:00
2011-08-18-unique-class-type2.ll Remove line and file from DINamespace. 2017-04-28 22:25:46 +00:00
2011-08-18-unique-debug-type.ll
2011-08-18-unique-debug-type2.ll
AppendingLinkage.ll
AppendingLinkage2.ll
ConstantGlobals.ll
DbgDeclare.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
DbgDeclare2.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
LinkOnce.ll
PR8300.ll
alias-2.ll
alias-3.ll
alias.ll
alignment.ll
apple-version.ll [llvm-link] Use WithColor for printing errors 2018-04-18 14:41:47 +00:00
available_externally_a.ll Linker: Move special casing for available_externally in IRMover to clients. NFCI. 2017-02-02 05:12:15 +00:00
available_externally_b.ll
available_externally_over_decl.ll
basiclink.ll
broken.ll
byval-types.ll Reapply: IR: add optional type to 'byval' function parameters 2019-05-30 18:48:23 +00:00
comdat-rm-dst.ll
comdat.ll
comdat2.ll
comdat4.ll
comdat5.ll
comdat6.ll
comdat7.ll
comdat8.ll IR: Teach GlobalIndirectSymbol::getBaseObject() to handle more kinds of expressions. 2019-07-24 22:23:05 +00:00
comdat9.ll
comdat10.ll
comdat11.ll
comdat12.ll
comdat13.ll
comdat14.ll
comdat15.ll
comdat16.ll
comdat_group.ll
commandline.ll Implement -frecord-command-line (-frecord-gcc-switches) 2018-12-14 15:38:15 +00:00
constructor-comdat.ll
ctors.ll
ctors2.ll
ctors3.ll
ctors4.ll
datalayout.ll [llvm-link] Use WithColor for printing errors 2018-04-18 14:41:47 +00:00
debug-info-global-var.ll Canonicalize the representation of empty an expression in DIGlobalVariableExpression 2017-08-30 18:06:51 +00:00
debug-info-version-a.ll
debug-info-version-b.ll
dicompositetype-unique.ll
distinct-cycles.ll
distinct.ll
dllstorage-a.ll
dllstorage-b.ll
drop-debug.ll [llvm-link] Use WithColor for printing errors 2018-04-18 14:41:47 +00:00
func-attrs-a.ll
func-attrs-b.ll
funcimport.ll Make GlobalValues with non-default visibilility dso_local. 2018-01-18 02:08:23 +00:00
funcimport2.ll
funcimport_appending_global.ll
funcimport_comdat.ll
ident.ll
inlineasm.ll
internalize-lazy.ll
link-arm-and-thumb-module-inline-asm.ll [Linker] Add directives to support mixing ARM/Thumb module-level inline asm. 2017-07-12 11:52:28 +00:00
link-arm-and-thumb.ll [Linker] Remove llc usage from link-arm-and-thumb.ll test case. 2017-06-07 09:59:22 +00:00
link-flags.ll [Linker] Provide callback for internalization 2017-03-13 18:08:11 +00:00
link-global-to-func.ll
link-type-names.ll
linkage.ll
linkage2.ll
linkmdnode.ll
linkmdnode2.ll
linknamedmdnode.ll
linknamedmdnode2.ll
lto-attributes.ll
mdlocation.ll
metadata-a.ll
metadata-attach.ll Linker: Remove unnecessary call to copyMetadata in IRLinker::linkGlobalVariable. 2016-11-14 23:18:38 +00:00
metadata-b.ll
metadata-function.ll
metadata-global.ll Remap metadata attached to global variables. 2017-05-04 23:29:39 +00:00
metadata-mismatch.test llvm-link: Improve diagnostic for module-level metadata mismatch 2018-10-09 01:17:27 +00:00
metadata-source.ll [DebugInfo] Add remaining files to r325970 2018-02-23 23:13:18 +00:00
metadata-with-global-value-operand.ll
module-flags-1-a.ll
module-flags-1-b.ll
module-flags-2-a.ll
module-flags-2-b.ll
module-flags-3-a.ll
module-flags-3-b.ll
module-flags-4-a.ll
module-flags-4-b.ll
module-flags-5-a.ll [IRMover] Improve diagnostic messages for conflicting metadata 2019-05-16 05:23:13 +00:00
module-flags-5-b.ll
module-flags-6-a.ll [IRMover] Improve diagnostic messages for conflicting metadata 2019-05-16 05:23:13 +00:00
module-flags-6-b.ll
module-flags-7-a.ll [IRMover] Improve diagnostic messages for conflicting metadata 2019-05-16 05:23:13 +00:00
module-flags-7-b.ll
module-flags-8-a.ll
module-flags-8-b.ll
module-flags-dont-change-others.ll
module-flags-pic-1-a.ll [IR] AutoUpgrade ModuleFlagBehavior for PIC and PIE level 2017-08-21 21:49:13 +00:00
module-flags-pic-2-a.ll Support for taking the max of module flags when linking, use for PIE/PIC 2017-05-23 00:08:00 +00:00
multiple-merged-structs.ll
null_mapping_constant.ll
objectivec-class-property-flag-mismatch.ll
odr-lambda-1.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
odr.ll Canonicalize the representation of empty an expression in DIGlobalVariableExpression 2017-08-30 18:06:51 +00:00
only-needed-compiler-used.ll [Linker] PR33527 - Linker::LinkOnlyNeeded should import AppendingLinkage globals 2017-08-09 20:58:39 +00:00
only-needed-ctors1.ll [Linker] PR33527 - Linker::LinkOnlyNeeded should import AppendingLinkage globals 2017-08-09 20:58:39 +00:00
only-needed-ctors2.ll [Linker] PR33527 - Linker::LinkOnlyNeeded should import AppendingLinkage globals 2017-08-09 20:58:39 +00:00
only-needed-debug-metadata.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
only-needed-dtors1.ll [Linker] PR33527 - Linker::LinkOnlyNeeded should import AppendingLinkage globals 2017-08-09 20:58:39 +00:00
only-needed-dtors2.ll [Linker] PR33527 - Linker::LinkOnlyNeeded should import AppendingLinkage globals 2017-08-09 20:58:39 +00:00
only-needed-named-metadata.ll
only-needed-recurse.ll
only-needed-used.ll [Linker] PR33527 - Linker::LinkOnlyNeeded should import AppendingLinkage globals 2017-08-09 20:58:39 +00:00
opaque.ll
override-different-linkage.ll
override-with-internal-linkage-2.ll
override-with-internal-linkage.ll
override.ll
partial-type-refinement-link.ll
partial-type-refinement.ll
pr21374.ll
pr21494.ll
pr22807.ll
pr26037.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
pr27044.ll
prologuedata.ll
redefinition.ll [llvm-link] Use WithColor for printing errors 2018-04-18 14:41:47 +00:00
replaced-function-matches-first-subprogram.ll [DebugInfo] IR/Bitcode changes for DISubprogram flags. 2018-11-28 21:14:32 +00:00
subprogram-linkonce-weak.ll [DebugInfo] Support DWARF v5 source code embedding extension 2018-02-23 23:01:06 +00:00
syncscopes.ll Enhance synchscope representation 2017-07-11 22:23:00 +00:00
targettriple.ll [llvm-link] Use WithColor for printing errors 2018-04-18 14:41:47 +00:00
testlink.ll
thinlto_funcimport_debug.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
transitive-lazy-link.ll
type-unique-alias.ll
type-unique-dst-types.ll [IRMover] Add comment and fix test case 2018-01-25 08:35:52 +00:00
type-unique-inheritance.ll
type-unique-name.ll
type-unique-odr-a.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
type-unique-odr-b.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
type-unique-opaque.ll
type-unique-simple-a.ll Remove irrelevant references to legacy git repositories from 2019-01-15 16:18:52 +00:00
type-unique-simple-b.ll Remove irrelevant references to legacy git repositories from 2019-01-15 16:18:52 +00:00
type-unique-simple2-a.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
type-unique-simple2-b.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
type-unique-simple2.ll llvm-dwarfdump: Make -brief the default and add a -verbose option instead. 2017-09-11 23:05:20 +00:00
type-unique-src-type.ll
type-unique-type-array-a.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
type-unique-type-array-b.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
type-unique-unrelated.ll
unique-fwd-decl-a.ll
unique-fwd-decl-order.ll
uniqued-distinct-cycles.ll
unnamed-addr-err-a.ll
unnamed-addr-err-b.ll
unnamed-addr1-a.ll
unnamed-addr1-b.ll
visibility.ll
weakextern.ll
wrong-addrspace-gv-declaration.ll Fix asserts when linking wrong address space declarations 2018-09-24 04:42:14 +00:00