Skip to content

Commit c55e5d4

Browse files
authored
[sanitizer] Don't ignore Symbolizer errors (#67466)
I am not sure why it's done this way, but it's the same from the first commit, with no explanation.
1 parent 210e898 commit c55e5d4

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

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

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,13 +76,16 @@ bool __sanitizer_symbolize_code(const char *ModuleName, uint64_t ModuleOffset,
7676
auto ResOrErr = getDefaultSymbolizer()->symbolizeInlinedCode(
7777
ModuleName,
7878
{ModuleOffset, llvm::object::SectionedAddress::UndefSection});
79-
Printer->print(Request,
80-
ResOrErr ? ResOrErr.get() : llvm::DIInliningInfo());
79+
if (!ResOrErr)
80+
return false;
81+
Printer->print(Request, ResOrErr.get());
8182
} else {
8283
auto ResOrErr = getDefaultSymbolizer()->symbolizeCode(
8384
ModuleName,
8485
{ModuleOffset, llvm::object::SectionedAddress::UndefSection});
85-
Printer->print(Request, ResOrErr ? ResOrErr.get() : llvm::DILineInfo());
86+
if (!ResOrErr)
87+
return false;
88+
Printer->print(Request, ResOrErr.get());
8689
}
8790
}
8891
return __sanitizer::internal_snprintf(Buffer, MaxLength, "%s",
@@ -104,7 +107,9 @@ bool __sanitizer_symbolize_data(const char *ModuleName, uint64_t ModuleOffset,
104107
auto ResOrErr = getDefaultSymbolizer()->symbolizeData(
105108
ModuleName,
106109
{ModuleOffset, llvm::object::SectionedAddress::UndefSection});
107-
Printer->print(Request, ResOrErr ? ResOrErr.get() : llvm::DIGlobal());
110+
if (!ResOrErr)
111+
return false;
112+
Printer->print(Request, ResOrErr.get());
108113
}
109114
return __sanitizer::internal_snprintf(Buffer, MaxLength, "%s",
110115
Result.c_str()) < MaxLength;

0 commit comments

Comments
 (0)