]> granicus.if.org Git - clang/commitdiff
Edit: Do not extend a removal to include trailing whitespace if we're at the end
authorBenjamin Kramer <benny.kra@googlemail.com>
Mon, 15 Sep 2014 11:47:10 +0000 (11:47 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Mon, 15 Sep 2014 11:47:10 +0000 (11:47 +0000)
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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217766 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Edit/EditedSource.cpp

index 6cf6335da181b665afd534921fc129832e14e86e..1c66cb8277062988c31706c5dcc3d419f37ded5b 100644 (file)
@@ -280,6 +280,12 @@ static void adjustRemoval(const SourceManager &SM, const LangOptions &LangOpts,
   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) {