aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/ArchiveWriter.cpp
diff options
context:
space:
mode:
authorYi Kong <yikong@google.com>2022-09-10 03:42:15 +0800
committerYi Kong <yikong@google.com>2022-09-10 21:06:52 +0800
commitbc0725a43763ff241f807e1de45d1a548aec89b8 (patch)
treeee8c73714b47a0020d074265fe87066bbc597bf5 /llvm/lib/Object/ArchiveWriter.cpp
parent860753934ca3865a1f680531924c43bafbf1917a (diff)
downloadllvm-bc0725a43763ff241f807e1de45d1a548aec89b8.zip
llvm-bc0725a43763ff241f807e1de45d1a548aec89b8.tar.gz
llvm-bc0725a43763ff241f807e1de45d1a548aec89b8.tar.bz2
[Object] Improve ArchiveWriter diagnostics
Print out the archive member that failed, to make debugging easier. Before: error: failed to build archive: Not an int attribute (Producer: 'LLVM15.0.1git' Reader: 'LLVM 14.0.5-rust-dev') After: error: failed to build archive: 'fake_bt_keystore.o': Not an int attribute (Producer: 'LLVM15.0.1git' Reader: 'LLVM 14.0.5-rust-dev') Differential Revision: https://reviews.llvm.org/D133607
Diffstat (limited to 'llvm/lib/Object/ArchiveWriter.cpp')
-rw-r--r--llvm/lib/Object/ArchiveWriter.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Object/ArchiveWriter.cpp b/llvm/lib/Object/ArchiveWriter.cpp
index dbf5052..0d3aad6 100644
--- a/llvm/lib/Object/ArchiveWriter.cpp
+++ b/llvm/lib/Object/ArchiveWriter.cpp
@@ -598,8 +598,8 @@ computeMemberData(raw_ostream &StringTable, raw_ostream &SymNames,
if (NeedSymbols) {
Expected<std::vector<unsigned>> SymbolsOrErr =
getSymbols(Buf, SymNames, HasObject);
- if (auto E = SymbolsOrErr.takeError())
- return std::move(E);
+ if (!SymbolsOrErr)
+ return createFileError(M.MemberName, SymbolsOrErr.takeError());
Symbols = std::move(*SymbolsOrErr);
}