summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2008-03-18 21:00:57 +0000
committerTed Kremenek <kremenek@apple.com>2008-03-18 21:00:57 +0000
commitaf5b820af36b3c73ef974396df4f578b405dd15c (patch)
tree283a00c021d062dc411a9be03cb5c4fe04292968 /clang
parentfa7ceba5285625e61442ccef0407effb97bb6c9f (diff)
downloadbcm5719-llvm-af5b820af36b3c73ef974396df4f578b405dd15c.tar.gz
bcm5719-llvm-af5b820af36b3c73ef974396df4f578b405dd15c.zip
Bug fix in RewriteBuffer::getMappedOffset: potentially multiple deltas
need to be skipped over when AfterInserts == true, as multiple deltas may share the same FileLoc. llvm-svn: 48503
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Rewrite/Rewriter.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/clang/lib/Rewrite/Rewriter.cpp b/clang/lib/Rewrite/Rewriter.cpp
index 440d1d39fd5..e3cc977bea3 100644
--- a/clang/lib/Rewrite/Rewriter.cpp
+++ b/clang/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;
}
OpenPOWER on IntegriCloud