Remove dead flags.
searchArchivesToOverrideTentativeDefinitions and
searchSharedLibrariesToOverrideTentativeDefinitions are always false.
For the dead flags, we have a fairly large amount of code which is
never be executed.
http://reviews.llvm.org/D17791
llvm-svn: 264653
diff --git a/lld/lib/Core/Resolver.cpp b/lld/lib/Core/Resolver.cpp
index d94699a..7d2aada 100644
--- a/lld/lib/Core/Resolver.cpp
+++ b/lld/lib/Core/Resolver.cpp
@@ -46,8 +46,7 @@
return undefAdded;
}
-ErrorOr<bool> Resolver::forEachUndefines(File &file, bool searchForOverrides,
- UndefCallback callback) {
+ErrorOr<bool> Resolver::forEachUndefines(File &file, UndefCallback callback) {
size_t i = _undefineIndex[&file];
bool undefAdded = false;
do {
@@ -61,27 +60,11 @@
_undefines[i] = "";
continue;
}
- auto undefAddedOrError = callback(undefName, false);
+ auto undefAddedOrError = callback(undefName);
if (undefAddedOrError.getError())
return undefAddedOrError;
undefAdded |= undefAddedOrError.get();
}
- if (!searchForOverrides)
- continue;
- for (StringRef tentDefName : _symbolTable.tentativeDefinitions()) {
- // Load for previous tentative may also have loaded
- // something that overrode this tentative, so always check.
- const Atom *curAtom = _symbolTable.findByName(tentDefName);
- assert(curAtom != nullptr);
- if (const DefinedAtom *curDefAtom = dyn_cast<DefinedAtom>(curAtom)) {
- if (curDefAtom->merge() == DefinedAtom::mergeAsTentative) {
- auto undefAddedOrError = callback(tentDefName, true);
- if (undefAddedOrError.getError())
- return undefAddedOrError;
- undefAdded |= undefAddedOrError.get();
- }
- }
- }
} while (i < _undefines.size());
_undefineIndex[&file] = i;
return undefAdded;
@@ -89,12 +72,8 @@
ErrorOr<bool> Resolver::handleArchiveFile(File &file) {
ArchiveLibraryFile *archiveFile = cast<ArchiveLibraryFile>(&file);
- bool searchForOverrides =
- _ctx.searchArchivesToOverrideTentativeDefinitions();
- return forEachUndefines(file, searchForOverrides,
- [&](StringRef undefName,
- bool dataSymbolOnly)->ErrorOr<bool> {
- if (File *member = archiveFile->find(undefName, dataSymbolOnly)) {
+ return forEachUndefines(file, [&](StringRef undefName) -> ErrorOr<bool> {
+ if (File *member = archiveFile->find(undefName)) {
member->setOrdinal(_ctx.getNextOrdinalAndIncrement());
return handleFile(*member);
}
@@ -108,16 +87,13 @@
auto undefAddedOrError = handleFile(*sharedLibrary);
if (undefAddedOrError.getError())
return undefAddedOrError.getError();
- bool searchForOverrides =
- _ctx.searchSharedLibrariesToOverrideTentativeDefinitions();
- undefAddedOrError = forEachUndefines(file, searchForOverrides,
- [&](StringRef undefName,
- bool dataSymbolOnly)->ErrorOr<bool> {
- auto atom = sharedLibrary->exports(undefName, dataSymbolOnly);
- if (atom.get())
- doSharedLibraryAtom(std::move(atom));
- return false;
- });
+ undefAddedOrError =
+ forEachUndefines(file, [&](StringRef undefName) -> ErrorOr<bool> {
+ auto atom = sharedLibrary->exports(undefName);
+ if (atom.get())
+ doSharedLibraryAtom(std::move(atom));
+ return false;
+ });
if (undefAddedOrError.getError())
return undefAddedOrError.getError();