[clang] a806b3f - [clang][Diagnostics][NFC] Remove unnecessary StringRef

Timm Bäder via cfe-commits cfe-commits at lists.llvm.org
Wed May 31 01:37:00 PDT 2023


Author: Timm Bäder
Date: 2023-05-31T10:21:24+02:00
New Revision: a806b3f49667f3aa0800572b84f91b77654e29fd

URL: https://github.com/llvm/llvm-project/commit/a806b3f49667f3aa0800572b84f91b77654e29fd
DIFF: https://github.com/llvm/llvm-project/commit/a806b3f49667f3aa0800572b84f91b77654e29fd.diff

LOG: [clang][Diagnostics][NFC] Remove unnecessary StringRef

Seems unnecessary to create a StringRef here just so we can drop the
trailing null bytes. We can do that with the std::string we
create anyway.

Differential Revision: https://reviews.llvm.org/D151300

Added: 
    

Modified: 
    clang/lib/Frontend/TextDiagnostic.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/Frontend/TextDiagnostic.cpp b/clang/lib/Frontend/TextDiagnostic.cpp
index d2cbb55dea87..f817ab7d3613 100644
--- a/clang/lib/Frontend/TextDiagnostic.cpp
+++ b/clang/lib/Frontend/TextDiagnostic.cpp
@@ -1187,14 +1187,12 @@ void TextDiagnostic::emitSnippetAndCaret(
     if (size_t(LineEnd - LineStart) > MaxLineLengthToPrint)
       return;
 
-    // Trim trailing null-bytes.
-    StringRef Line(LineStart, LineEnd - LineStart);
-    while (!Line.empty() && Line.back() == '\0' &&
-           (LineNo != CaretLineNo || Line.size() > CaretColNo))
-      Line = Line.drop_back();
-
     // Copy the line of code into an std::string for ease of manipulation.
-    std::string SourceLine(Line.begin(), Line.end());
+    std::string SourceLine(LineStart, LineEnd);
+    // Remove trailing null bytes.
+    while (!SourceLine.empty() && SourceLine.back() == '\0' &&
+           (LineNo != CaretLineNo || SourceLine.size() > CaretColNo))
+      SourceLine.pop_back();
 
     // Build the byte to column map.
     const SourceColumnMap sourceColMap(SourceLine, DiagOpts->TabStop);


        


More information about the cfe-commits mailing list