[llvm-objcopy][NFC] Propagate errors in removeSymbols/removeSectionReferences
Reviewers: jhenderson, alexshap, jakehehrlich, espindola
Reviewed By: jhenderson
Subscribers: emaste, arichardson, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D57543
llvm-svn: 352877
diff --git a/llvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp b/llvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp
index 2dd2fe9..fc34387 100644
--- a/llvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp
+++ b/llvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp
@@ -185,8 +185,11 @@
static Error splitDWOToFile(const CopyConfig &Config, const Reader &Reader,
StringRef File, ElfType OutputElfType) {
auto DWOFile = Reader.create();
- DWOFile->removeSections(
- [&](const SectionBase &Sec) { return onlyKeepDWOPred(*DWOFile, Sec); });
+ auto OnlyKeepDWOPred = [&DWOFile](const SectionBase &Sec) {
+ return onlyKeepDWOPred(*DWOFile, Sec);
+ };
+ if (Error E = DWOFile->removeSections(OnlyKeepDWOPred))
+ return E;
if (Config.OutputArch)
DWOFile->Machine = Config.OutputArch.getValue().EMachine;
FileBuffer FB(File);
@@ -338,7 +341,7 @@
Section.markSymbols();
}
- Obj.removeSymbols([&](const Symbol &Sym) {
+ auto RemoveSymbolsPred = [&](const Symbol &Sym) {
if (is_contained(Config.SymbolsToKeep, Sym.Name) ||
(Config.KeepFileSymbols && Sym.Type == STT_FILE))
return false;
@@ -362,7 +365,9 @@
return true;
return false;
- });
+ };
+ if (Error E = Obj.removeSymbols(RemoveSymbolsPred))
+ return E;
}
SectionPred RemovePred = [](const SectionBase &) { return false; };
@@ -496,7 +501,8 @@
return &Obj.addSection<DecompressedSection>(*CS);
});
- Obj.removeSections(RemovePred);
+ if (Error E = Obj.removeSections(RemovePred))
+ return E;
if (!Config.SectionsToRename.empty()) {
for (auto &Sec : Obj.sections()) {