diff --git a/llvm/lib/Linker/LinkModules.cpp b/llvm/lib/Linker/LinkModules.cpp index 3d6e52602b17..32c49903da94 100644 --- a/llvm/lib/Linker/LinkModules.cpp +++ b/llvm/lib/Linker/LinkModules.cpp @@ -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(I->getAliasedGlobal()); - if (!GV->isDeclaration()) - I->replaceAllUsesWith(GV); - } + I != E; ++I) + if (const GlobalValue *GV = I->resolveAliasedGlobal()) + if (!GV->isDeclaration()) + I->replaceAllUsesWith(const_cast(GV)); return false; }