================
@@ -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());
-
+    if (SourceText.empty())
+      SourceText = "std::endl";
     auto Diag = diag(Expression->getBeginLoc(),
                      "do not use '%0' with streams; use '\\n' instead")
                 << SourceText;
-
-    Diag << FixItHint::CreateReplacement(TokenRange, "'\\n'");
+    if (TokenRange.isValid())
+      Diag << FixItHint::CreateReplacement(TokenRange, "'\\n'");
----------------
5chmidti wrote:

The same issue should also apply to the other diagnostic as well, no?
E.g., both `SourceText` and `ArgSourceText` would probably need checking as 
well, and the `FixItHint` should also be conditional.

https://github.com/llvm/llvm-project/pull/107867
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to