diff options
Diffstat (limited to 'llvm/lib/Linker/LinkModules.cpp')
-rw-r--r-- | llvm/lib/Linker/LinkModules.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/llvm/lib/Linker/LinkModules.cpp b/llvm/lib/Linker/LinkModules.cpp index 8eeccb3..d3c3ea3 100644 --- a/llvm/lib/Linker/LinkModules.cpp +++ b/llvm/lib/Linker/LinkModules.cpp @@ -422,9 +422,8 @@ bool ModuleLinker::linkIfNeeded(GlobalValue &GV) { bool LinkFromSrc; Comdat::SelectionKind SK; std::tie(SK, LinkFromSrc) = ComdatsChosen[SC]; - if (LinkFromSrc) - ValuesToLink.insert(&GV); - return false; + if (!LinkFromSrc) + return false; } bool LinkFromSrc = true; @@ -565,7 +564,8 @@ bool ModuleLinker::run() { if (!SC) continue; for (GlobalValue *GV2 : ComdatMembers[SC]) - ValuesToLink.insert(GV2); + if (GV2->hasInternalLinkage()) + ValuesToLink.insert(GV2); } if (shouldInternalizeLinkedSymbols()) { |