From: Peter Szecsi Date: Tue, 25 Jul 2017 23:49:16 +0000 (+0000) Subject: [StaticAnalyzer] LoopUnrolling - Attempt #2 to fix a crash in r309006. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e49d5153e8960628ea65106e7182ce52770f92bb;p=clang [StaticAnalyzer] LoopUnrolling - Attempt #2 to fix a crash in r309006. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@309061 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/StaticAnalyzer/Core/LoopUnrolling.cpp b/lib/StaticAnalyzer/Core/LoopUnrolling.cpp index c44122e187..dd37cbd218 100644 --- a/lib/StaticAnalyzer/Core/LoopUnrolling.cpp +++ b/lib/StaticAnalyzer/Core/LoopUnrolling.cpp @@ -183,9 +183,9 @@ 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 (BlockSet.find(SearchedBlock) == BlockSet.end() && !StackFrame->inTopFrame()) { + while (BlockSet.find(SearchedBlock) == BlockSet.end() && StackFrame) { SearchedBlock = StackFrame->getCallSiteBlock(); - if(!SearchedBlock) + if(!SearchedBlock || StackFrame->inTopFrame()) break; StackFrame = StackFrame->getParent()->getCurrentStackFrame(); }