Fix the isLocalCall() by checking for linker weakness as well.
authorRoman Divacky <rdivacky@freebsd.org>
Tue, 18 Sep 2012 18:27:49 +0000 (18:27 +0000)
committerRoman Divacky <rdivacky@freebsd.org>
Tue, 18 Sep 2012 18:27:49 +0000 (18:27 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164155 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PPCISelLowering.cpp

index 6b93d945f8de7be7511004cb3446dfca40694350..3b22ac4acce452c4c1b2484c78791e1058d7904c 100644 (file)
@@ -2812,7 +2812,8 @@ static
 bool isLocalCall(const SDValue &Callee)
 {
   if (GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>(Callee))
-    return !G->getGlobal()->isDeclaration();
+    return !G->getGlobal()->isDeclaration() &&
+           !G->getGlobal()->isWeakForLinker();
   return false;
 }