From e87831373f9b03f0917b932c26d4112b9bf1a093 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Thu, 10 Sep 2026 22:00:36 +0000 Subject: [PATCH] NOLINT and document use of StringLiteral::data() which subclasses StringRef (#7757) StringRef::data() is problematic to call, but StringLiteral is always NUL-terminated, so data() gives a valid C string. --- toolchain/diagnostics/emitter.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/toolchain/diagnostics/emitter.h b/toolchain/diagnostics/emitter.h index d8b478b76fe5..43fc12dc8c35 100644 --- a/toolchain/diagnostics/emitter.h +++ b/toolchain/diagnostics/emitter.h @@ -487,6 +487,9 @@ auto Emitter::Builder::FormatFn(const Message& message, "Argument count mismatch on {0}: {1} != {2}", message.kind, message.format_args.size(), sizeof...(Args)); return llvm::formatv( + // `format` is a StringLiteral which is always NUL terminated, so data() + // is okay here. Too bad there's no c_str() method available. + // NOLINTNEXTLINE(bugprone-suspicious-stringview-data-usage) message.format.data(), llvm::any_cast< typename Internal::DiagnosticTypeForArg::StorageType>(