Skip to content

Commit a335536

Browse files
committed
PECOFF: consume errors properly
We would not ensure that the error is consumed in the case that logging is disabled. Ensure that we properly drop the error on the floor or we would re-trigger the checked failure. Differential Revision: https://reviews.llvm.org/D147669 Reviewed By: sgraenitz (cherry picked from commit d87cd45)
1 parent 003820d commit a335536

File tree

1 file changed

+22
-12
lines changed

1 file changed

+22
-12
lines changed

lldb/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -866,10 +866,14 @@ ObjectFilePECOFF::AppendFromExportTable(SectionList *sect_list,
866866
for (const auto &entry : m_binary->export_directories()) {
867867
llvm::StringRef sym_name;
868868
if (auto err = entry.getSymbolName(sym_name)) {
869-
LLDB_LOG(log,
870-
"ObjectFilePECOFF::AppendFromExportTable - failed to get export "
871-
"table entry name: {0}",
872-
llvm::fmt_consume(std::move(err)));
869+
if (log)
870+
log->Format(
871+
__FILE__, __func__,
872+
"ObjectFilePECOFF::AppendFromExportTable - failed to get export "
873+
"table entry name: {0}",
874+
llvm::fmt_consume(std::move(err)));
875+
else
876+
llvm::consumeError(std::move(err));
873877
continue;
874878
}
875879
Symbol symbol;
@@ -887,10 +891,13 @@ ObjectFilePECOFF::AppendFromExportTable(SectionList *sect_list,
887891
// it in symtab and make a note using the symbol name.
888892
llvm::StringRef forwarder_name;
889893
if (auto err = entry.getForwardTo(forwarder_name)) {
890-
LLDB_LOG(log,
891-
"ObjectFilePECOFF::AppendFromExportTable - failed to get "
892-
"forwarder name of forwarder export '{0}': {1}",
893-
sym_name, llvm::fmt_consume(std::move(err)));
894+
if (log)
895+
log->Format(__FILE__, __func__,
896+
"ObjectFilePECOFF::AppendFromExportTable - failed to get "
897+
"forwarder name of forwarder export '{0}': {1}",
898+
sym_name, llvm::fmt_consume(std::move(err)));
899+
else
900+
llvm::consumeError(std::move(err));
894901
continue;
895902
}
896903
llvm::SmallString<256> new_name = {symbol.GetDisplayName().GetStringRef(),
@@ -902,10 +909,13 @@ ObjectFilePECOFF::AppendFromExportTable(SectionList *sect_list,
902909

903910
uint32_t function_rva;
904911
if (auto err = entry.getExportRVA(function_rva)) {
905-
LLDB_LOG(log,
906-
"ObjectFilePECOFF::AppendFromExportTable - failed to get "
907-
"address of export entry '{0}': {1}",
908-
sym_name, llvm::fmt_consume(std::move(err)));
912+
if (log)
913+
log->Format(__FILE__, __func__,
914+
"ObjectFilePECOFF::AppendFromExportTable - failed to get "
915+
"address of export entry '{0}': {1}",
916+
sym_name, llvm::fmt_consume(std::move(err)));
917+
else
918+
llvm::consumeError(std::move(err));
909919
continue;
910920
}
911921
// Skip the symbol if it doesn't look valid.

0 commit comments

Comments
 (0)