diff options
| author | Lang Hames <lhames@gmail.com> | 2016-07-14 00:37:04 +0000 |
|---|---|---|
| committer | Lang Hames <lhames@gmail.com> | 2016-07-14 00:37:04 +0000 |
| commit | ae610ab528a382a393aae26d2d67cee05cabe634 (patch) | |
| tree | bb4178e75d234c71dac75810b4662a0f979227f0 /llvm/tools/llvm-objdump | |
| parent | 7f781aba9755633c53210db02d51f6f56d11ea48 (diff) | |
| download | bcm5719-llvm-ae610ab528a382a393aae26d2d67cee05cabe634.tar.gz bcm5719-llvm-ae610ab528a382a393aae26d2d67cee05cabe634.zip | |
[Object] Revert r275316, Archive::child_iterator changes, while I update lld.
Should fix the bots broken by r275316.
llvm-svn: 275353
Diffstat (limited to 'llvm/tools/llvm-objdump')
| -rw-r--r-- | llvm/tools/llvm-objdump/MachODump.cpp | 48 | ||||
| -rw-r--r-- | llvm/tools/llvm-objdump/llvm-objdump.cpp | 8 |
2 files changed, 32 insertions, 24 deletions
diff --git a/llvm/tools/llvm-objdump/MachODump.cpp b/llvm/tools/llvm-objdump/MachODump.cpp index 08bc1f48240..82e7f8a258b 100644 --- a/llvm/tools/llvm-objdump/MachODump.cpp +++ b/llvm/tools/llvm-objdump/MachODump.cpp @@ -1535,11 +1535,13 @@ static void printArchiveChild(const Archive::Child &C, bool verbose, } static void printArchiveHeaders(Archive *A, bool verbose, bool print_offset) { - Error Err; - for (const auto &C : A->children(Err, false)) + for (Archive::child_iterator I = A->child_begin(false), E = A->child_end(); + I != E; ++I) { + if (std::error_code EC = I->getError()) + report_fatal_error(EC.message()); + const Archive::Child &C = **I; printArchiveChild(C, verbose, print_offset); - if (Err) - report_fatal_error(std::move(Err)); + } } // ParseInputMachO() parses the named Mach-O file in Filename and handles the @@ -1570,8 +1572,11 @@ void llvm::ParseInputMachO(StringRef Filename) { outs() << "Archive : " << Filename << "\n"; if (ArchiveHeaders) printArchiveHeaders(A, !NonVerbose, ArchiveMemberOffsets); - Error Err; - for (auto &C : A->children(Err)) { + for (Archive::child_iterator I = A->child_begin(), E = A->child_end(); + I != E; ++I) { + if (std::error_code EC = I->getError()) + report_error(Filename, EC); + auto &C = I->get(); Expected<std::unique_ptr<Binary>> ChildOrErr = C.getAsBinary(); if (!ChildOrErr) { if (auto E = isNotObjectErrorInvalidFileType(ChildOrErr.takeError())) @@ -1584,8 +1589,6 @@ void llvm::ParseInputMachO(StringRef Filename) { ProcessMachO(Filename, O, O->getFileName()); } } - if (Err) - report_error(Filename, std::move(Err)); return; } if (UniversalHeaders) { @@ -1627,8 +1630,12 @@ void llvm::ParseInputMachO(StringRef Filename) { outs() << "\n"; if (ArchiveHeaders) printArchiveHeaders(A.get(), !NonVerbose, ArchiveMemberOffsets); - Error Err; - for (auto &C : A->children(Err)) { + for (Archive::child_iterator AI = A->child_begin(), + AE = A->child_end(); + AI != AE; ++AI) { + if (std::error_code EC = AI->getError()) + report_error(Filename, EC); + auto &C = AI->get(); Expected<std::unique_ptr<Binary>> ChildOrErr = C.getAsBinary(); if (!ChildOrErr) { if (auto E = isNotObjectErrorInvalidFileType(ChildOrErr.takeError())) @@ -1639,8 +1646,6 @@ void llvm::ParseInputMachO(StringRef Filename) { dyn_cast<MachOObjectFile>(&*ChildOrErr.get())) ProcessMachO(Filename, O, O->getFileName(), ArchitectureName); } - if (Err) - report_error(Filename, std::move(Err)); } else { consumeError(AOrErr.takeError()); error("Mach-O universal file: " + Filename + " for " + @@ -1682,8 +1687,12 @@ void llvm::ParseInputMachO(StringRef Filename) { outs() << "Archive : " << Filename << "\n"; if (ArchiveHeaders) printArchiveHeaders(A.get(), !NonVerbose, ArchiveMemberOffsets); - Error Err; - for (auto &C : A->children(Err)) { + for (Archive::child_iterator AI = A->child_begin(), + AE = A->child_end(); + AI != AE; ++AI) { + if (std::error_code EC = AI->getError()) + report_error(Filename, EC); + auto &C = AI->get(); Expected<std::unique_ptr<Binary>> ChildOrErr = C.getAsBinary(); if (!ChildOrErr) { if (auto E = isNotObjectErrorInvalidFileType(ChildOrErr.takeError())) @@ -1694,8 +1703,6 @@ void llvm::ParseInputMachO(StringRef Filename) { dyn_cast<MachOObjectFile>(&*ChildOrErr.get())) ProcessMachO(Filename, O, O->getFileName()); } - if (Err) - report_error(Filename, std::move(Err)); } else { consumeError(AOrErr.takeError()); error("Mach-O universal file: " + Filename + " for architecture " + @@ -1733,8 +1740,11 @@ void llvm::ParseInputMachO(StringRef Filename) { outs() << "\n"; if (ArchiveHeaders) printArchiveHeaders(A.get(), !NonVerbose, ArchiveMemberOffsets); - Error Err; - for (auto &C : A->children(Err)) { + for (Archive::child_iterator AI = A->child_begin(), AE = A->child_end(); + AI != AE; ++AI) { + if (std::error_code EC = AI->getError()) + report_error(Filename, EC); + auto &C = AI->get(); Expected<std::unique_ptr<Binary>> ChildOrErr = C.getAsBinary(); if (!ChildOrErr) { if (auto E = isNotObjectErrorInvalidFileType(ChildOrErr.takeError())) @@ -1748,8 +1758,6 @@ void llvm::ParseInputMachO(StringRef Filename) { ArchitectureName); } } - if (Err) - report_error(Filename, std::move(Err)); } else { consumeError(AOrErr.takeError()); error("Mach-O universal file: " + Filename + " for architecture " + diff --git a/llvm/tools/llvm-objdump/llvm-objdump.cpp b/llvm/tools/llvm-objdump/llvm-objdump.cpp index 8414239cb50..bb171ec3fc3 100644 --- a/llvm/tools/llvm-objdump/llvm-objdump.cpp +++ b/llvm/tools/llvm-objdump/llvm-objdump.cpp @@ -1702,8 +1702,10 @@ static void DumpObject(const ObjectFile *o, const Archive *a = nullptr) { /// @brief Dump each object file in \a a; static void DumpArchive(const Archive *a) { - Error Err; - for (auto &C : a->children(Err)) { + for (auto &ErrorOrChild : a->children()) { + if (std::error_code EC = ErrorOrChild.getError()) + report_error(a->getFileName(), EC); + const Archive::Child &C = *ErrorOrChild; Expected<std::unique_ptr<Binary>> ChildOrErr = C.getAsBinary(); if (!ChildOrErr) { if (auto E = isNotObjectErrorInvalidFileType(ChildOrErr.takeError())) @@ -1715,8 +1717,6 @@ static void DumpArchive(const Archive *a) { else report_error(a->getFileName(), object_error::invalid_file_type); } - if (Err) - report_error(a->getFileName(), std::move(Err)); } /// @brief Open file and figure out how to dump it. |

