================
@@ -284,27 +284,23 @@ 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) {
+    const 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]);
-    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";
+    unsigned Length;
+    if (I < Size) {
+      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(Lengths[i]);
     } else {
-      End = Sources.getLocForEndOfFile(ID);
+      Length = Sources.getFileOffset(Sources.getLocForEndOfFile(ID)) - Offset;
     }
-    unsigned Offset = Sources.getFileOffset(Start);
----------------
HazardyKnusperkeks wrote:

Did I get that right? If yes, LGTM, otherwise I'd like an explanation.

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

Reply via email to