================
@@ -6480,20 +6480,23 @@
SanitizerOrdinalToCheckLabel(SanitizerKind::SanitizerOrdinal Ordinal) {
llvm::DILocation *CodeGenFunction::SanitizerAnnotateDebugInfo(
ArrayRef<SanitizerKind::SanitizerOrdinal> Ordinals,
SanitizerHandler Handler) {
+ llvm::DILocation *CheckDI = Builder.getCurrentDebugLocation();
+ auto *DI = getDebugInfo();
+ if (!DI)
+ return CheckDI;
+
std::string Label;
if (Ordinals.size() == 1)
Label = SanitizerOrdinalToCheckLabel(Ordinals[0]);
else
Label = SanitizerHandlerToCheckLabel(Handler);
- llvm::DILocation *CheckDI = Builder.getCurrentDebugLocation();
-
for (auto Ord : Ordinals) {
// TODO: deprecate ClArrayBoundsPseudoFn
if (((ClArrayBoundsPseudoFn && Ord == SanitizerKind::SO_ArrayBounds) ||
CGM.getCodeGenOpts().SanitizeAnnotateDebugInfo.has(Ord)) &&
CheckDI) {
----------------
thurstond wrote:
Q: does the DI check above provide any guarantees that CheckDI is non-null?
(i.e., can `&& CheckDI` be safely elided or does it require further working
group approval?)
https://github.com/llvm/llvm-project/pull/149237
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits