diff options
Diffstat (limited to 'llvm/tools/llvm-nm/llvm-nm.cpp')
| -rw-r--r-- | llvm/tools/llvm-nm/llvm-nm.cpp | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/llvm/tools/llvm-nm/llvm-nm.cpp b/llvm/tools/llvm-nm/llvm-nm.cpp index 9661f8e2020..2cd0ede4a53 100644 --- a/llvm/tools/llvm-nm/llvm-nm.cpp +++ b/llvm/tools/llvm-nm/llvm-nm.cpp @@ -1171,7 +1171,7 @@ static void dumpSymbolNamesFromFile(std::string &Filename) { error(std::move(E), Filename, ArchFlags.size() > 1 ? StringRef(I->getArchTypeName()) : StringRef()); continue; - } else if (ErrorOr<std::unique_ptr<Archive>> AOrErr = + } else if (Expected<std::unique_ptr<Archive>> AOrErr = I->getAsArchive()) { std::unique_ptr<Archive> &A = *AOrErr; for (Archive::child_iterator AI = A->child_begin(), @@ -1209,6 +1209,12 @@ static void dumpSymbolNamesFromFile(std::string &Filename) { ArchitectureName); } } + } else { + consumeError(AOrErr.takeError()); + error(Filename + " for architecture " + + StringRef(I->getArchTypeName()) + + " is not a Mach-O file or an archive file", + "Mach-O universal file"); } } } @@ -1238,7 +1244,7 @@ static void dumpSymbolNamesFromFile(std::string &Filename) { ObjOrErr.takeError())) { error(std::move(E), Filename); return; - } else if (ErrorOr<std::unique_ptr<Archive>> AOrErr = + } else if (Expected<std::unique_ptr<Archive>> AOrErr = I->getAsArchive()) { std::unique_ptr<Archive> &A = *AOrErr; for (Archive::child_iterator AI = A->child_begin(), @@ -1266,6 +1272,12 @@ static void dumpSymbolNamesFromFile(std::string &Filename) { dumpSymbolNamesFromObject(*O, false, ArchiveName); } } + } else { + consumeError(AOrErr.takeError()); + error(Filename + " for architecture " + + StringRef(I->getArchTypeName()) + + " is not a Mach-O file or an archive file", + "Mach-O universal file"); } return; } @@ -1301,7 +1313,8 @@ static void dumpSymbolNamesFromFile(std::string &Filename) { error(std::move(E), Filename, moreThanOneArch ? StringRef(I->getArchTypeName()) : StringRef()); continue; - } else if (ErrorOr<std::unique_ptr<Archive>> AOrErr = I->getAsArchive()) { + } else if (Expected<std::unique_ptr<Archive>> AOrErr = + I->getAsArchive()) { std::unique_ptr<Archive> &A = *AOrErr; for (Archive::child_iterator AI = A->child_begin(), AE = A->child_end(); AI != AE; ++AI) { @@ -1336,6 +1349,12 @@ static void dumpSymbolNamesFromFile(std::string &Filename) { dumpSymbolNamesFromObject(*O, false, ArchiveName, ArchitectureName); } } + } else { + consumeError(AOrErr.takeError()); + error(Filename + " for architecture " + + StringRef(I->getArchTypeName()) + + " is not a Mach-O file or an archive file", + "Mach-O universal file"); } } return; |

