[clang-tools-extra] [clang-tidy] add default error message for performance-avoid-endl (PR #107867)

Danny Mösch via cfe-commits cfe-commits at lists.llvm.org
Thu Sep 12 00:55:23 PDT 2024


================
@@ -46,14 +46,15 @@ void AvoidEndlCheck::check(const MatchFinder::MatchResult &Result) {
     // Handle the more common streaming '... << std::endl' case
     const CharSourceRange TokenRange =
         CharSourceRange::getTokenRange(Expression->getSourceRange());
-    const StringRef SourceText = Lexer::getSourceText(
+    StringRef SourceText = Lexer::getSourceText(
         TokenRange, *Result.SourceManager, Result.Context->getLangOpts());
-
-    auto Diag = diag(Expression->getBeginLoc(),
-                     "do not use '%0' with streams; use '\\n' instead")
-                << SourceText;
-
-    Diag << FixItHint::CreateReplacement(TokenRange, "'\\n'");
+    if (SourceText.empty())
+      SourceText = "std::endl";
+    auto Builder = diag(Expression->getBeginLoc(),
+                        "do not use '%0' with streams; use '\\n' instead");
+    if (TokenRange.isValid())
+      Builder << SourceText
----------------
SimplyDanny wrote:

The `<< SourceText` part should always be added, shouldn't it? The tests seem to be fine though. 🤔 

https://github.com/llvm/llvm-project/pull/107867


More information about the cfe-commits mailing list