diff options
author | Ted Kremenek <kremenek@apple.com> | 2008-03-18 21:00:57 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2008-03-18 21:00:57 +0000 |
commit | af5b820af36b3c73ef974396df4f578b405dd15c (patch) | |
tree | 283a00c021d062dc411a9be03cb5c4fe04292968 /clang | |
parent | fa7ceba5285625e61442ccef0407effb97bb6c9f (diff) | |
download | bcm5719-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.cpp | 10 |
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; } |