From aa892fdd036014742dca7a42e49f14c49feb657c Mon Sep 17 00:00:00 2001 From: Rui Ueyama Date: Wed, 30 Aug 2017 22:11:03 +0000 Subject: [PATCH] Simplify writeArchive return type. writeArchive returned a pair, but the first element of the pair is always its first argument on failure, so it doesn't make sense to return it from the function. This patch change the return type so that it does't return it. Differential Revision: https://reviews.llvm.org/D37313 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@312177 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Object/ArchiveWriter.h | 2 +- lib/Object/ArchiveWriter.cpp | 11 +++++------ lib/Object/COFFImportFile.cpp | 8 +++----- lib/ToolDrivers/llvm-lib/LibDriver.cpp | 11 +++++------ tools/llvm-ar/llvm-ar.cpp | 4 ++-- 5 files changed, 16 insertions(+), 20 deletions(-) diff --git a/include/llvm/Object/ArchiveWriter.h b/include/llvm/Object/ArchiveWriter.h index 1ed758d40df..71b45293b2b 100644 --- a/include/llvm/Object/ArchiveWriter.h +++ b/include/llvm/Object/ArchiveWriter.h @@ -37,7 +37,7 @@ struct NewArchiveMember { bool Deterministic); }; -std::pair +std::error_code writeArchive(StringRef ArcName, std::vector &NewMembers, bool WriteSymtab, object::Archive::Kind Kind, bool Deterministic, bool Thin, std::unique_ptr OldArchiveBuf = nullptr); diff --git a/lib/Object/ArchiveWriter.cpp b/lib/Object/ArchiveWriter.cpp index b052c76d1fe..91aa3739229 100644 --- a/lib/Object/ArchiveWriter.cpp +++ b/lib/Object/ArchiveWriter.cpp @@ -376,9 +376,8 @@ writeSymbolTable(raw_fd_ostream &Out, object::Archive::Kind Kind, return BodyStartOffset + 4; } -std::pair -llvm::writeArchive(StringRef ArcName, - std::vector &NewMembers, +std::error_code +llvm::writeArchive(StringRef ArcName, std::vector &NewMembers, bool WriteSymtab, object::Archive::Kind Kind, bool Deterministic, bool Thin, std::unique_ptr OldArchiveBuf) { @@ -387,7 +386,7 @@ llvm::writeArchive(StringRef ArcName, int TmpArchiveFD; if (auto EC = sys::fs::createUniqueFile(ArcName + ".temp-archive-%%%%%%%.a", TmpArchiveFD, TmpArchive)) - return std::make_pair(ArcName, EC); + return EC; tool_output_file Output(TmpArchive, TmpArchiveFD); raw_fd_ostream &Out = Output.os(); @@ -403,7 +402,7 @@ llvm::writeArchive(StringRef ArcName, ErrorOr MemberReferenceOffsetOrErr = writeSymbolTable( Out, Kind, NewMembers, MemberOffsetRefs, Deterministic); if (auto EC = MemberReferenceOffsetOrErr.getError()) - return std::make_pair(ArcName, EC); + return EC; MemberReferenceOffset = MemberReferenceOffsetOrErr.get(); } @@ -465,5 +464,5 @@ llvm::writeArchive(StringRef ArcName, OldArchiveBuf.reset(); sys::fs::rename(TmpArchive, ArcName); - return std::make_pair("", std::error_code()); + return std::error_code(); } diff --git a/lib/Object/COFFImportFile.cpp b/lib/Object/COFFImportFile.cpp index 8383edf45af..5f4b8908837 100644 --- a/lib/Object/COFFImportFile.cpp +++ b/lib/Object/COFFImportFile.cpp @@ -604,11 +604,9 @@ std::error_code writeImportLibrary(StringRef ImportName, StringRef Path, OF.createShortImport(*Name, E.Ordinal, ImportType, NameType)); } - std::pair Result = - writeArchive(Path, Members, /*WriteSymtab*/ true, object::Archive::K_GNU, - /*Deterministic*/ true, /*Thin*/ false); - - return Result.second; + return writeArchive(Path, Members, /*WriteSymtab*/ true, + object::Archive::K_GNU, + /*Deterministic*/ true, /*Thin*/ false); } } // namespace object diff --git a/lib/ToolDrivers/llvm-lib/LibDriver.cpp b/lib/ToolDrivers/llvm-lib/LibDriver.cpp index afda6a1388c..912a09316d6 100644 --- a/lib/ToolDrivers/llvm-lib/LibDriver.cpp +++ b/lib/ToolDrivers/llvm-lib/LibDriver.cpp @@ -153,15 +153,14 @@ int llvm::libDriverMain(llvm::ArrayRef ArgsArr) { Members.emplace_back(std::move(*MOrErr)); } - std::pair Result = - llvm::writeArchive(getOutputPath(&Args, Members[0]), Members, + std::string OutputPath = getOutputPath(&Args, Members[0]); + std::error_code EC = + llvm::writeArchive(OutputPath, Members, /*WriteSymtab=*/true, object::Archive::K_GNU, /*Deterministic*/ true, Args.hasArg(OPT_llvmlibthin)); - if (Result.second) { - if (Result.first.empty()) - Result.first = ArgsArr[0]; - llvm::errs() << Result.first << ": " << Result.second.message() << "\n"; + if (EC) { + llvm::errs() << OutputPath << ": " << EC.message() << "\n"; return 1; } diff --git a/tools/llvm-ar/llvm-ar.cpp b/tools/llvm-ar/llvm-ar.cpp index af4d3efa52f..4fe12efb7ec 100644 --- a/tools/llvm-ar/llvm-ar.cpp +++ b/tools/llvm-ar/llvm-ar.cpp @@ -688,10 +688,10 @@ performWriteOperation(ArchiveOperation Operation, break; } - std::pair Result = + std::error_code EC = writeArchive(ArchiveName, NewMembersP ? *NewMembersP : NewMembers, Symtab, Kind, Deterministic, Thin, std::move(OldArchiveBuf)); - failIfError(Result.second, Result.first); + failIfError(EC, ArchiveName); } static void createSymbolTable(object::Archive *OldArchive) {