aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-objcopy/llvm-objcopy.cpp
diff options
context:
space:
mode:
authorJames Henderson <jh7370@my.bristol.ac.uk>2019-05-08 13:28:58 +0000
committerJames Henderson <jh7370@my.bristol.ac.uk>2019-05-08 13:28:58 +0000
commit5a2b5ca7d2f675bf25f5d231dc144aa731c6b1d9 (patch)
treeaa4c80c22905d9eb52c774936f06406c15966502 /llvm/tools/llvm-objcopy/llvm-objcopy.cpp
parent6de5576af7f4a6e5e42915b2ac8bb1ec1cb88baa (diff)
downloadllvm-5a2b5ca7d2f675bf25f5d231dc144aa731c6b1d9.zip
llvm-5a2b5ca7d2f675bf25f5d231dc144aa731c6b1d9.tar.gz
llvm-5a2b5ca7d2f675bf25f5d231dc144aa731c6b1d9.tar.bz2
[llvm-objcopy] Improve error message for unrecognised archive member
Prior to this patch, llvm-objcopy's error messages for archives with unsupported members only mentioned the archive name, not the member name, making them unhelpful. This change improves it by approximately following GNU objcopy's error message syntax of "<archive name>(<member name>): <problem>". Reviewed by: grimar Differential Revision: https://reviews.llvm.org/D61674 llvm-svn: 360251
Diffstat (limited to 'llvm/tools/llvm-objcopy/llvm-objcopy.cpp')
-rw-r--r--llvm/tools/llvm-objcopy/llvm-objcopy.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/llvm/tools/llvm-objcopy/llvm-objcopy.cpp b/llvm/tools/llvm-objcopy/llvm-objcopy.cpp
index 28d7ee2..db29128 100644
--- a/llvm/tools/llvm-objcopy/llvm-objcopy.cpp
+++ b/llvm/tools/llvm-objcopy/llvm-objcopy.cpp
@@ -154,17 +154,17 @@ static Error executeObjcopyOnArchive(const CopyConfig &Config,
std::vector<NewArchiveMember> NewArchiveMembers;
Error Err = Error::success();
for (const Archive::Child &Child : Ar.children(Err)) {
- Expected<std::unique_ptr<Binary>> ChildOrErr = Child.getAsBinary();
- if (!ChildOrErr)
- return createFileError(Ar.getFileName(), ChildOrErr.takeError());
- Binary *Bin = ChildOrErr->get();
-
Expected<StringRef> ChildNameOrErr = Child.getName();
if (!ChildNameOrErr)
return createFileError(Ar.getFileName(), ChildNameOrErr.takeError());
+ Expected<std::unique_ptr<Binary>> ChildOrErr = Child.getAsBinary();
+ if (!ChildOrErr)
+ return createFileError(Ar.getFileName() + "(" + *ChildNameOrErr + ")",
+ ChildOrErr.takeError());
+
MemBuffer MB(ChildNameOrErr.get());
- if (Error E = executeObjcopyOnBinary(Config, *Bin, MB))
+ if (Error E = executeObjcopyOnBinary(Config, *ChildOrErr->get(), MB))
return E;
Expected<NewArchiveMember> Member =