diff options
author | Davide Italiano <davide@freebsd.org> | 2016-03-23 17:59:07 +0000 |
---|---|---|
committer | Davide Italiano <davide@freebsd.org> | 2016-03-23 17:59:07 +0000 |
commit | f20a55fcfd033e7a171bcdefa7e92fc758975fe4 (patch) | |
tree | a1dd705c6a78a295a3ab4f2837e7f040489541f9 | |
parent | 084c912499e1b4e14f2d3f0fda2a4cdffd5c7d32 (diff) | |
download | bcm5719-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.cpp | 9 |
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); + } } } |