diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Analysis/CFG.cpp | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/lib/Analysis/CFG.cpp b/lib/Analysis/CFG.cpp index ea126a9689..1edb328d01 100644 --- a/lib/Analysis/CFG.cpp +++ b/lib/Analysis/CFG.cpp @@ -191,8 +191,8 @@ int LocalScope::const_iterator::distance(LocalScope::const_iterator L) { int D = 0; const_iterator F = *this; while (F.Scope != L.Scope) { - if (F == const_iterator()) - return D; + assert (F != const_iterator() + && "L iterator is not reachable from F iterator."); D += F.VarIter; F = F.Scope->Prev; } @@ -816,12 +816,10 @@ void CFGBuilder::addLocalScopeAndDtors(Stmt* S) { /// performed in place specified with iterator. void CFGBuilder::insertAutomaticObjDtors(CFGBlock* Blk, CFGBlock::iterator I, LocalScope::const_iterator B, LocalScope::const_iterator E, Stmt* S) { - if (int Cnt = B.distance(E)) { - BumpVectorContext& C = cfg->getBumpVectorContext(); - I = Blk->beginAutomaticObjDtorsInsert(I, Cnt, C); - while (B != E) - I = Blk->insertAutomaticObjDtor(I, *B++, S); - } + BumpVectorContext& C = cfg->getBumpVectorContext(); + I = Blk->beginAutomaticObjDtorsInsert(I, B.distance(E), C); + while (B != E) + I = Blk->insertAutomaticObjDtor(I, *B++, S); } /// appendAutomaticObjDtors - Append destructor CFGElements for variables with |