diff options
| author | Peter Szecsi <szepet95@gmail.com> | 2017-07-25 21:54:58 +0000 |
|---|---|---|
| committer | Peter Szecsi <szepet95@gmail.com> | 2017-07-25 21:54:58 +0000 |
| commit | 4601ebaaf4a4f37ce735bb2b9164aa12687f58f7 (patch) | |
| tree | bb7168c1f28b8fda14d724f75012f24d1b29296b /clang/lib/StaticAnalyzer | |
| parent | b6d5faf2ea0a9a01514c5347afd86065c695c697 (diff) | |
| download | bcm5719-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.cpp | 4 |
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; |

