summaryrefslogtreecommitdiffstats
path: root/clang/lib/StaticAnalyzer
diff options
context:
space:
mode:
authorPeter Szecsi <szepet95@gmail.com>2017-07-25 21:54:58 +0000
committerPeter Szecsi <szepet95@gmail.com>2017-07-25 21:54:58 +0000
commit4601ebaaf4a4f37ce735bb2b9164aa12687f58f7 (patch)
treebb7168c1f28b8fda14d724f75012f24d1b29296b /clang/lib/StaticAnalyzer
parentb6d5faf2ea0a9a01514c5347afd86065c695c697 (diff)
downloadbcm5719-llvm-4601ebaaf4a4f37ce735bb2b9164aa12687f58f7.tar.gz
bcm5719-llvm-4601ebaaf4a4f37ce735bb2b9164aa12687f58f7.zip
[StaticAnalyzer] LoopUnrolling - Attempt to fix a crash in r309006.
llvm-svn: 309036
Diffstat (limited to 'clang/lib/StaticAnalyzer')
-rw-r--r--clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp b/clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp
index a88e0622f11..c44122e1872 100644
--- a/clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp
+++ b/clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp
@@ -183,8 +183,10 @@ bool isUnrolledLoopBlock(const CFGBlock *Block, ExplodedNode *Pred,
LBV.setBlocksOfLoop(E.first, M);
// In case of an inlined function call check if any of its callSiteBlock is
// marked.
- while (SearchedBlock && BlockSet.find(SearchedBlock) == BlockSet.end()) {
+ while (BlockSet.find(SearchedBlock) == BlockSet.end() && !StackFrame->inTopFrame()) {
SearchedBlock = StackFrame->getCallSiteBlock();
+ if(!SearchedBlock)
+ break;
StackFrame = StackFrame->getParent()->getCurrentStackFrame();
}
delete M;
OpenPOWER on IntegriCloud