https://github.com/owenca updated 
https://github.com/llvm/llvm-project/pull/143236

>From 1ece3adee540295efbe04fc74876efd39549e577 Mon Sep 17 00:00:00 2001
From: Owen Pan <owenpi...@gmail.com>
Date: Fri, 6 Jun 2025 23:10:18 -0700
Subject: [PATCH 1/2] [clang-format][NFC] Clean up fillRanges() in
 ClangFormat.cpp

---
 clang/tools/clang-format/ClangFormat.cpp | 43 ++++++++++++------------
 1 file changed, 22 insertions(+), 21 deletions(-)

diff --git a/clang/tools/clang-format/ClangFormat.cpp 
b/clang/tools/clang-format/ClangFormat.cpp
index b22d3aaf3183b..441ed442a30a9 100644
--- a/clang/tools/clang-format/ClangFormat.cpp
+++ b/clang/tools/clang-format/ClangFormat.cpp
@@ -244,17 +244,17 @@ static bool fillRanges(MemoryBuffer *Code,
   DiagnosticsEngine Diagnostics(
       IntrusiveRefCntPtr<DiagnosticIDs>(new DiagnosticIDs), DiagOpts);
   SourceManager Sources(Diagnostics, Files);
-  FileID ID = createInMemoryFile("<irrelevant>", *Code, Sources, Files,
-                                 InMemoryFileSystem.get());
+  const auto ID = createInMemoryFile("<irrelevant>", *Code, Sources, Files,
+                                     InMemoryFileSystem.get());
   if (!LineRanges.empty()) {
     if (!Offsets.empty() || !Lengths.empty()) {
       errs() << "error: cannot use -lines with -offset/-length\n";
       return true;
     }
 
-    for (unsigned i = 0, e = LineRanges.size(); i < e; ++i) {
+    for (const auto &LineRange : LineRanges) {
       unsigned FromLine, ToLine;
-      if (parseLineRange(LineRanges[i], FromLine, ToLine)) {
+      if (parseLineRange(LineRange, FromLine, ToLine)) {
         errs() << "error: invalid <start line>:<end line> pair\n";
         return true;
       }
@@ -266,12 +266,12 @@ static bool fillRanges(MemoryBuffer *Code,
         errs() << "error: start line should not exceed end line\n";
         return true;
       }
-      SourceLocation Start = Sources.translateLineCol(ID, FromLine, 1);
-      SourceLocation End = Sources.translateLineCol(ID, ToLine, UINT_MAX);
+      const auto Start = Sources.translateLineCol(ID, FromLine, 1);
+      const auto End = Sources.translateLineCol(ID, ToLine, UINT_MAX);
       if (Start.isInvalid() || End.isInvalid())
         return true;
-      unsigned Offset = Sources.getFileOffset(Start);
-      unsigned Length = Sources.getFileOffset(End) - Offset;
+      const auto Offset = Sources.getFileOffset(Start);
+      const auto Length = Sources.getFileOffset(End) - Offset;
       Ranges.push_back(tooling::Range(Offset, Length));
     }
     return false;
@@ -284,27 +284,28 @@ static bool fillRanges(MemoryBuffer *Code,
     errs() << "error: number of -offset and -length arguments must match.\n";
     return true;
   }
-  for (unsigned i = 0, e = Offsets.size(); i != e; ++i) {
-    if (Offsets[i] >= Code->getBufferSize()) {
-      errs() << "error: offset " << Offsets[i] << " is outside the file\n";
+  for (unsigned I = 0, E = Offsets.size(), Size = Lengths.size(); I < E; ++I) {
+    auto Offset = Offsets[I];
+    if (Offset >= Code->getBufferSize()) {
+      errs() << "error: offset " << Offset << " is outside the file\n";
       return true;
     }
-    SourceLocation Start =
-        Sources.getLocForStartOfFile(ID).getLocWithOffset(Offsets[i]);
+    const auto Start =
+        Sources.getLocForStartOfFile(ID).getLocWithOffset(Offset);
     SourceLocation End;
-    if (i < Lengths.size()) {
-      if (Offsets[i] + Lengths[i] > Code->getBufferSize()) {
-        errs() << "error: invalid length " << Lengths[i]
-               << ", offset + length (" << Offsets[i] + Lengths[i]
-               << ") is outside the file.\n";
+    if (I < Size) {
+      const auto L = Lengths[I];
+      if (Offset + L > Code->getBufferSize()) {
+        errs() << "error: invalid length " << L << ", offset + length ("
+               << Offset + L << ") is outside the file.\n";
         return true;
       }
-      End = Start.getLocWithOffset(Lengths[i]);
+      End = Start.getLocWithOffset(L);
     } else {
       End = Sources.getLocForEndOfFile(ID);
     }
-    unsigned Offset = Sources.getFileOffset(Start);
-    unsigned Length = Sources.getFileOffset(End) - Offset;
+    Offset = Sources.getFileOffset(Start);
+    const auto Length = Sources.getFileOffset(End) - Offset;
     Ranges.push_back(tooling::Range(Offset, Length));
   }
   return false;

>From e9a71f2972824a90ab6da6279599ca4d79376f55 Mon Sep 17 00:00:00 2001
From: Owen Pan <owenpi...@gmail.com>
Date: Sat, 7 Jun 2025 00:31:21 -0700
Subject: [PATCH 2/2] More cleanup: - Don't recalculate Offset for -offset. -
 Calculate Length only if -length is unspecified.

---
 clang/tools/clang-format/ClangFormat.cpp | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

diff --git a/clang/tools/clang-format/ClangFormat.cpp 
b/clang/tools/clang-format/ClangFormat.cpp
index 441ed442a30a9..03a3cbbe2a9f7 100644
--- a/clang/tools/clang-format/ClangFormat.cpp
+++ b/clang/tools/clang-format/ClangFormat.cpp
@@ -285,27 +285,22 @@ static bool fillRanges(MemoryBuffer *Code,
     return true;
   }
   for (unsigned I = 0, E = Offsets.size(), Size = Lengths.size(); I < E; ++I) {
-    auto Offset = Offsets[I];
+    const auto Offset = Offsets[I];
     if (Offset >= Code->getBufferSize()) {
       errs() << "error: offset " << Offset << " is outside the file\n";
       return true;
     }
-    const auto Start =
-        Sources.getLocForStartOfFile(ID).getLocWithOffset(Offset);
-    SourceLocation End;
+    unsigned Length;
     if (I < Size) {
-      const auto L = Lengths[I];
-      if (Offset + L > Code->getBufferSize()) {
-        errs() << "error: invalid length " << L << ", offset + length ("
-               << Offset + L << ") is outside the file.\n";
+      Length = Lengths[I];
+      if (Offset + Length > Code->getBufferSize()) {
+        errs() << "error: invalid length " << Length << ", offset + length ("
+               << Offset + Length << ") is outside the file.\n";
         return true;
       }
-      End = Start.getLocWithOffset(L);
     } else {
-      End = Sources.getLocForEndOfFile(ID);
+      Length = Sources.getFileOffset(Sources.getLocForEndOfFile(ID)) - Offset;
     }
-    Offset = Sources.getFileOffset(Start);
-    const auto Length = Sources.getFileOffset(End) - Offset;
     Ranges.push_back(tooling::Range(Offset, Length));
   }
   return false;

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to