diff options
Diffstat (limited to 'lld/COFF/SymbolTable.cpp')
-rw-r--r-- | lld/COFF/SymbolTable.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/lld/COFF/SymbolTable.cpp b/lld/COFF/SymbolTable.cpp index 627c9a22f55e..ca4c6fa835bf 100644 --- a/lld/COFF/SymbolTable.cpp +++ b/lld/COFF/SymbolTable.cpp @@ -44,13 +44,20 @@ void SymbolTable::addFile(std::unique_ptr<InputFile> FileP) { } } +std::error_code SymbolTable::step() { + if (queueEmpty()) + return std::error_code(); + if (auto EC = readObjects()) + return EC; + if (auto EC = readArchives()) + return EC; + return std::error_code(); +} + std::error_code SymbolTable::run() { - while (!queueEmpty()) { - if (auto EC = readArchives()) + while (!queueEmpty()) + if (auto EC = step()) return EC; - if (auto EC = readObjects()) - return EC; - } return std::error_code(); } |