Fix thinko: alias always defines new symbol. Even is aliasee itself is undefined.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48203 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Archive/Archive.cpp b/lib/Archive/Archive.cpp
index 7df5e48..6c95dbe 100644
--- a/lib/Archive/Archive.cpp
+++ b/lib/Archive/Archive.cpp
@@ -207,10 +207,8 @@
// Loop over aliases
for (Module::alias_iterator AI = M->alias_begin(), AE = M->alias_end();
AI != AE; ++AI) {
- const GlobalValue *Aliased = AI->getAliasedGlobal();
- if (!Aliased->isDeclaration())
- if (AI->hasName())
- symbols.push_back(AI->getName());
+ if (AI->hasName())
+ symbols.push_back(AI->getName());
}
}
diff --git a/lib/Linker/LinkArchives.cpp b/lib/Linker/LinkArchives.cpp
index 308a775..6cab77c 100644
--- a/lib/Linker/LinkArchives.cpp
+++ b/lib/Linker/LinkArchives.cpp
@@ -71,13 +71,8 @@
for (Module::alias_iterator I = M->alias_begin(), E = M->alias_end();
I != E; ++I)
- if (I->hasName()) {
- const GlobalValue *Aliased = I->getAliasedGlobal();
- if (Aliased->isDeclaration())
- UndefinedSymbols.insert(I->getName());
- else
- DefinedSymbols.insert(I->getName());
- }
+ if (I->hasName())
+ DefinedSymbols.insert(I->getName());
// Prune out any defined symbols from the undefined symbols set...
for (std::set<std::string>::iterator I = UndefinedSymbols.begin();