Ultimately resolve aliases during linking, if possible
authorAnton Korobeynikov <asl@math.spbu.ru>
Tue, 11 Mar 2008 22:51:09 +0000 (22:51 +0000)
committerAnton Korobeynikov <asl@math.spbu.ru>
Tue, 11 Mar 2008 22:51:09 +0000 (22:51 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48259 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Linker/LinkModules.cpp

index 3d6e52602b176b7474ceef81923e273be9500a62..32c49903da94d57bc3bb63d2baa338f5f5a55633 100644 (file)
@@ -1087,11 +1087,10 @@ static bool LinkAppendingVars(Module *M,
 
 static bool ResolveAliases(Module *Dest) {
   for (Module::alias_iterator I = Dest->alias_begin(), E = Dest->alias_end();
-       I != E; ++I) {
-    GlobalValue* GV = const_cast<GlobalValue*>(I->getAliasedGlobal());
-    if (!GV->isDeclaration())
-      I->replaceAllUsesWith(GV);
-  }
+       I != E; ++I)
+    if (const GlobalValue *GV = I->resolveAliasedGlobal())
+      if (!GV->isDeclaration())
+        I->replaceAllUsesWith(const_cast<GlobalValue*>(GV));
 
   return false;
 }