From bcd889730d4b516dfbd6e206d06280c91cfa076c Mon Sep 17 00:00:00 2001 From: Jordan Rose Date: Tue, 29 Apr 2014 01:56:12 +0000 Subject: [analyzer] Don't crash when a construction is followed by an uninitialized variable. This could happen due to unfortunate CFG coincidences. PR19579 llvm-svn: 207486 --- clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'clang/lib/StaticAnalyzer') diff --git a/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp b/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp index e1eb7281479..4251cdc7293 100644 --- a/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp +++ b/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp @@ -128,7 +128,7 @@ static const MemRegion *getRegionForConstructedObject( if (Optional StmtElem = Next.getAs()) { if (const DeclStmt *DS = dyn_cast(StmtElem->getStmt())) { if (const VarDecl *Var = dyn_cast(DS->getSingleDecl())) { - if (Var->getInit()->IgnoreImplicit() == CE) { + if (Var->getInit() && Var->getInit()->IgnoreImplicit() == CE) { SVal LValue = State->getLValue(Var, LCtx); QualType Ty = Var->getType(); LValue = makeZeroElementRegion(State, LValue, Ty); -- cgit v1.2.3