Prefer common over weak linkage when linking.
[oota-llvm.git] / lib / Linker / LinkModules.cpp
index d02d590ca1081fb8c52f93ec8dd64870895cb0dc..14c6a10c3398e70ad607254db556ee051a244d4c 100644 (file)
@@ -721,8 +721,9 @@ bool ModuleLinker::getLinkageResult(GlobalValue *Dest, const GlobalValue *Src,
   } else if (Src->isWeakForLinker()) {
     assert(!Dest->hasExternalWeakLinkage());
     assert(!Dest->hasAvailableExternallyLinkage());
-    if (Dest->hasLinkOnceLinkage() &&
-        (Src->hasWeakLinkage() || Src->hasCommonLinkage())) {
+    if ((Dest->hasLinkOnceLinkage() && Src->hasWeakLinkage()) ||
+        ((Dest->hasLinkOnceLinkage() || Dest->hasWeakLinkage()) &&
+         Src->hasCommonLinkage())) {
       LinkFromSrc = true;
       LT = Src->getLinkage();
     } else {