From 88ad97f17790b753e2e113b149d7f164e42fa2ba Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Tue, 18 Mar 2008 21:00:57 +0000 Subject: [PATCH] Bug fix in RewriteBuffer::getMappedOffset: potentially multiple deltas need to be skipped over when AfterInserts == true, as multiple deltas may share the same FileLoc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48503 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Rewrite/Rewriter.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/Rewrite/Rewriter.cpp b/lib/Rewrite/Rewriter.cpp index 440d1d39fd..e3cc977bea 100644 --- a/lib/Rewrite/Rewriter.cpp +++ b/lib/Rewrite/Rewriter.cpp @@ -32,10 +32,12 @@ unsigned RewriteBuffer::getMappedOffset(unsigned OrigOffset, for (; DeltaIdx != Deltas.size() && Deltas[DeltaIdx].FileLoc < OrigOffset; ++DeltaIdx) ResultOffset += Deltas[DeltaIdx].Delta; - - if (AfterInserts && DeltaIdx != Deltas.size() && - OrigOffset == Deltas[DeltaIdx].FileLoc) - ResultOffset += Deltas[DeltaIdx].Delta; + + if (AfterInserts) + for (; DeltaIdx != Deltas.size() && + OrigOffset == Deltas[DeltaIdx].FileLoc; ++DeltaIdx) + ResultOffset += Deltas[DeltaIdx].Delta; + return ResultOffset; } -- 2.40.0