summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/CFG.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2010-04-30 22:25:53 +0000
committerTed Kremenek <kremenek@apple.com>2010-04-30 22:25:53 +0000
commitbc1416dcad1010601ea7ae403ad811eee139890a (patch)
tree7493ef5a9ce91fc7a7ee32232aa513f15e6c4115 /clang/lib/Analysis/CFG.cpp
parentde4b225093f7e2747c2e7127c039d83dbc879e63 (diff)
downloadbcm5719-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.cpp4
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);
OpenPOWER on IntegriCloud