From 0454256be74225962cb2a7fe7c63256adc6cf297 Mon Sep 17 00:00:00 2001 From: Benjamin Kramer Date: Mon, 15 Sep 2014 11:47:10 +0000 Subject: [PATCH] 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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217766 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Edit/EditedSource.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/Edit/EditedSource.cpp b/lib/Edit/EditedSource.cpp index 6cf6335da1..1c66cb8277 100644 --- a/lib/Edit/EditedSource.cpp +++ b/lib/Edit/EditedSource.cpp @@ -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) { -- 2.40.0