[lld] r205593 - Do not use temporary variables to pass them to forEachUndefines.
Rui Ueyama
ruiu at google.com
Thu Apr 3 17:39:37 PDT 2014
Author: ruiu
Date: Thu Apr 3 19:39:37 2014
New Revision: 205593
URL: http://llvm.org/viewvc/llvm-project?rev=205593&view=rev
Log:
Do not use temporary variables to pass them to forEachUndefines.
So that it's obvious that we pass these callbacks only to forEachUndefines.
Modified:
lld/trunk/include/lld/Core/Resolver.h
lld/trunk/lib/Core/Resolver.cpp
Modified: lld/trunk/include/lld/Core/Resolver.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Core/Resolver.h?rev=205593&r1=205592&r2=205593&view=diff
==============================================================================
--- lld/trunk/include/lld/Core/Resolver.h (original)
+++ lld/trunk/include/lld/Core/Resolver.h Thu Apr 3 19:39:37 2014
@@ -65,7 +65,7 @@ private:
bool checkUndefines();
void removeCoalescedAwayAtoms();
void checkDylibSymbolCollisions();
- void forEachUndefines(UndefCallback callback, bool searchForOverrides);
+ void forEachUndefines(bool searchForOverrides, UndefCallback callback);
void markLive(const Atom &atom);
void addAtoms(const std::vector<const DefinedAtom *>&);
Modified: lld/trunk/lib/Core/Resolver.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Core/Resolver.cpp?rev=205593&r1=205592&r2=205593&view=diff
==============================================================================
--- lld/trunk/lib/Core/Resolver.cpp (original)
+++ lld/trunk/lib/Core/Resolver.cpp Thu Apr 3 19:39:37 2014
@@ -68,8 +68,8 @@ void Resolver::handleFile(const File &fi
_context.getInputGraph().notifyProgress();
}
-void Resolver::forEachUndefines(UndefCallback callback,
- bool searchForOverrides) {
+void Resolver::forEachUndefines(bool searchForOverrides,
+ UndefCallback callback) {
// Handle normal archives
int64_t undefineGenCount = 0;
do {
@@ -99,30 +99,29 @@ void Resolver::forEachUndefines(UndefCal
void Resolver::handleArchiveFile(const File &file) {
const ArchiveLibraryFile *archiveFile = cast<ArchiveLibraryFile>(&file);
- auto callback = [&](StringRef undefName, bool dataSymbolOnly) {
+ bool searchForOverrides =
+ _context.searchArchivesToOverrideTentativeDefinitions();
+ forEachUndefines(searchForOverrides,
+ [&](StringRef undefName, bool dataSymbolOnly) {
if (const File *member = archiveFile->find(undefName, dataSymbolOnly)) {
member->setOrdinal(_context.getNextOrdinalAndIncrement());
handleFile(*member);
}
- };
- bool searchForOverrides =
- _context.searchArchivesToOverrideTentativeDefinitions();
- forEachUndefines(callback, searchForOverrides);
+ });
}
void Resolver::handleSharedLibrary(const File &file) {
// Add all the atoms from the shared library
const SharedLibraryFile *sharedLibrary = cast<SharedLibraryFile>(&file);
handleFile(*sharedLibrary);
-
- auto callback = [&](StringRef undefName, bool dataSymbolOnly) {
- if (const SharedLibraryAtom *shAtom =
- sharedLibrary->exports(undefName, dataSymbolOnly))
- doSharedLibraryAtom(*shAtom);
- };
bool searchForOverrides =
_context.searchSharedLibrariesToOverrideTentativeDefinitions();
- forEachUndefines(callback, searchForOverrides);
+ forEachUndefines(searchForOverrides,
+ [&](StringRef undefName, bool dataSymbolOnly) {
+ if (const SharedLibraryAtom *atom =
+ sharedLibrary->exports(undefName, dataSymbolOnly))
+ doSharedLibraryAtom(*atom);
+ });
}
void Resolver::doUndefinedAtom(const UndefinedAtom &atom) {
More information about the llvm-commits
mailing list