Skip to content

Commit de4c038

Browse files
committed
[sanitizer] adapt for 75f1f15
No functional changes intended.
1 parent e5f50bd commit de4c038

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_symbolize.cpp

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,16 @@ static llvm::symbolize::PrinterConfig getDefaultPrinterConfig() {
4141
return Config;
4242
}
4343

44+
static llvm::symbolize::ErrorHandler symbolize_error_handler(
45+
llvm::raw_string_ostream &OS) {
46+
return
47+
[&](const llvm::ErrorInfoBase &ErrorInfo, llvm::StringRef ErrorBanner) {
48+
OS << ErrorBanner;
49+
ErrorInfo.log(OS);
50+
OS << '\n';
51+
};
52+
}
53+
4454
namespace __sanitizer {
4555
int internal_snprintf(char *buffer, uintptr_t length, const char *format,
4656
...);
@@ -57,8 +67,8 @@ bool __sanitizer_symbolize_code(const char *ModuleName, uint64_t ModuleOffset,
5767
llvm::raw_string_ostream OS(Result);
5868
llvm::symbolize::PrinterConfig Config = getDefaultPrinterConfig();
5969
llvm::symbolize::Request Request{ModuleName, ModuleOffset};
60-
auto Printer =
61-
std::make_unique<llvm::symbolize::LLVMPrinter>(OS, OS, Config);
70+
auto Printer = std::make_unique<llvm::symbolize::LLVMPrinter>(
71+
OS, symbolize_error_handler(OS), Config);
6272

6373
// TODO: it is neccessary to set proper SectionIndex here.
6474
// object::SectionedAddress::UndefSection works for only absolute addresses.
@@ -86,8 +96,8 @@ bool __sanitizer_symbolize_data(const char *ModuleName, uint64_t ModuleOffset,
8696
llvm::symbolize::PrinterConfig Config = getDefaultPrinterConfig();
8797
llvm::raw_string_ostream OS(Result);
8898
llvm::symbolize::Request Request{ModuleName, ModuleOffset};
89-
auto Printer =
90-
std::make_unique<llvm::symbolize::LLVMPrinter>(OS, OS, Config);
99+
auto Printer = std::make_unique<llvm::symbolize::LLVMPrinter>(
100+
OS, symbolize_error_handler(OS), Config);
91101

92102
// TODO: it is neccessary to set proper SectionIndex here.
93103
// object::SectionedAddress::UndefSection works for only absolute addresses.

0 commit comments

Comments
 (0)