r217766 - Edit: Do not extend a removal to include trailing whitespace if we're at the end

Benjamin Kramer benny.kra at googlemail.com
Mon Sep 15 04:47:10 PDT 2014


Author: d0k
Date: Mon Sep 15 06:47:10 2014
New Revision: 217766

URL: http://llvm.org/viewvc/llvm-project?rev=217766&view=rev
Log:
Edit: Do not extend a removal to include trailing whitespace if we're at the end
of the file.

This would run past the end of the buffer. Sadly I don't have a great way to
test it, the only way to trigger the bug is having a removal fix it at the end
of the file, which none of our current warnings can generate.

Modified:
    cfe/trunk/lib/Edit/EditedSource.cpp

Modified: cfe/trunk/lib/Edit/EditedSource.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Edit/EditedSource.cpp?rev=217766&r1=217765&r2=217766&view=diff
==============================================================================
--- cfe/trunk/lib/Edit/EditedSource.cpp (original)
+++ cfe/trunk/lib/Edit/EditedSource.cpp Mon Sep 15 06:47:10 2014
@@ -280,6 +280,12 @@ static void adjustRemoval(const SourceMa
   unsigned begin = offs.getOffset();
   unsigned end = begin + len;
 
+  // Do not try to extend the removal if we're at the end of the buffer already.
+  if (end == buffer.size())
+    return;
+
+  assert(begin < buffer.size() && end < buffer.size() && "Invalid range!");
+
   // FIXME: Remove newline.
 
   if (begin == 0) {





More information about the cfe-commits mailing list