================ @@ -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 cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits