summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavide Italiano <davide@freebsd.org>2016-03-23 17:59:07 +0000
committerDavide Italiano <davide@freebsd.org>2016-03-23 17:59:07 +0000
commitf20a55fcfd033e7a171bcdefa7e92fc758975fe4 (patch)
treea1dd705c6a78a295a3ab4f2837e7f040489541f9
parent084c912499e1b4e14f2d3f0fda2a4cdffd5c7d32 (diff)
downloadbcm5719-llvm-f20a55fcfd033e7a171bcdefa7e92fc758975fe4.tar.gz
bcm5719-llvm-f20a55fcfd033e7a171bcdefa7e92fc758975fe4.zip
[LTO] Only change linkage if we keep the symbol.
llvm-svn: 264171
-rw-r--r--lld/ELF/LTO.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/lld/ELF/LTO.cpp b/lld/ELF/LTO.cpp
index 6d2be054813..ab97079bbd8 100644
--- a/lld/ELF/LTO.cpp
+++ b/lld/ELF/LTO.cpp
@@ -83,13 +83,12 @@ void BitcodeCompiler::add(BitcodeFile &F) {
continue;
}
if (!BitcodeFile::shouldSkip(Sym)) {
-
- if (GV->getLinkage() == llvm::GlobalValue::LinkOnceODRLinkage)
- GV->setLinkage(GlobalValue::WeakODRLinkage);
-
if (SymbolBody *B = Bodies[BodyIndex++])
- if (&B->repl() == B && isa<DefinedBitcode>(B))
+ if (&B->repl() == B && isa<DefinedBitcode>(B)) {
+ if (GV->getLinkage() == llvm::GlobalValue::LinkOnceODRLinkage)
+ GV->setLinkage(GlobalValue::WeakODRLinkage);
Keep.push_back(GV);
+ }
}
}
OpenPOWER on IntegriCloud