diff options
Diffstat (limited to 'contrib/llvm/tools/clang/lib/Analysis/CFGReachabilityAnalysis.cpp')
-rw-r--r-- | contrib/llvm/tools/clang/lib/Analysis/CFGReachabilityAnalysis.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/contrib/llvm/tools/clang/lib/Analysis/CFGReachabilityAnalysis.cpp b/contrib/llvm/tools/clang/lib/Analysis/CFGReachabilityAnalysis.cpp index e77e72f..492e66f 100644 --- a/contrib/llvm/tools/clang/lib/Analysis/CFGReachabilityAnalysis.cpp +++ b/contrib/llvm/tools/clang/lib/Analysis/CFGReachabilityAnalysis.cpp @@ -50,11 +50,10 @@ void CFGReverseBlockReachabilityAnalysis::mapReachability(const CFGBlock *Dst) { // multiple queries relating to a destination node. worklist.push_back(Dst); bool firstRun = true; - - while (!worklist.empty()) { - const CFGBlock *block = worklist.back(); - worklist.pop_back(); - + + while (!worklist.empty()) { + const CFGBlock *block = worklist.pop_back_val(); + if (visited[block->getBlockID()]) continue; visited[block->getBlockID()] = true; |