diff options
author | Ted Kremenek <kremenek@apple.com> | 2010-04-30 22:25:53 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2010-04-30 22:25:53 +0000 |
commit | bc1416dcad1010601ea7ae403ad811eee139890a (patch) | |
tree | 7493ef5a9ce91fc7a7ee32232aa513f15e6c4115 /clang/lib/Analysis/CFG.cpp | |
parent | de4b225093f7e2747c2e7127c039d83dbc879e63 (diff) | |
download | bcm5719-llvm-bc1416dcad1010601ea7ae403ad811eee139890a.tar.gz bcm5719-llvm-bc1416dcad1010601ea7ae403ad811eee139890a.zip |
Add null check in CFGBuilder::VisitStmt() to make CFG construction
more resilient to bad code.
llvm-svn: 102793
Diffstat (limited to 'clang/lib/Analysis/CFG.cpp')
-rw-r--r-- | clang/lib/Analysis/CFG.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/Analysis/CFG.cpp b/clang/lib/Analysis/CFG.cpp index 7c7504a1d82..7f71e0acf7a 100644 --- a/clang/lib/Analysis/CFG.cpp +++ b/clang/lib/Analysis/CFG.cpp @@ -338,6 +338,10 @@ bool CFGBuilder::FinishBlock(CFGBlock* B) { /// DeclStmts (which may contain nested control-flow). CFGBlock* CFGBuilder::Visit(Stmt * S, AddStmtChoice asc) { tryAgain: + if (!S) { + badCFG = true; + return 0; + } switch (S->getStmtClass()) { default: return VisitStmt(S, asc); |