diff options
author | James Henderson <jh7370@my.bristol.ac.uk> | 2019-05-08 13:28:58 +0000 |
---|---|---|
committer | James Henderson <jh7370@my.bristol.ac.uk> | 2019-05-08 13:28:58 +0000 |
commit | 5a2b5ca7d2f675bf25f5d231dc144aa731c6b1d9 (patch) | |
tree | aa4c80c22905d9eb52c774936f06406c15966502 /llvm/tools/llvm-objcopy/llvm-objcopy.cpp | |
parent | 6de5576af7f4a6e5e42915b2ac8bb1ec1cb88baa (diff) | |
download | llvm-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.cpp | 12 |
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 = |