Call PreVisitDeclStmt for C++ aggregate initializers. Patch by Jim Goodnow II.
llvm-svn: 116473
This commit is contained in:
parent
7f570718d3
commit
23e082d32c
|
@ -2682,7 +2682,14 @@ void GRExprEngine::VisitDeclStmt(const DeclStmt *DS, ExplodedNode *Pred,
|
||||||
if (getContext().getLangOptions().CPlusPlus && InitTy->isRecordType()) {
|
if (getContext().getLangOptions().CPlusPlus && InitTy->isRecordType()) {
|
||||||
// Delegate expressions of C++ record type evaluation to AggExprVisitor.
|
// Delegate expressions of C++ record type evaluation to AggExprVisitor.
|
||||||
VisitAggExpr(InitEx, GetState(Pred)->getLValue(VD,
|
VisitAggExpr(InitEx, GetState(Pred)->getLValue(VD,
|
||||||
Pred->getLocationContext()), Pred, Dst);
|
Pred->getLocationContext()), Pred, Tmp);
|
||||||
|
|
||||||
|
// FIXME: remove later when all paths through VisitAggExpr work properly
|
||||||
|
if (Tmp.empty())
|
||||||
|
Tmp.Add(Pred);
|
||||||
|
// Call checkers for initialized aggregates
|
||||||
|
CheckerVisit(DS, Dst, Tmp, PreVisitStmtCallback);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
} else if (VD->getType()->isReferenceType())
|
} else if (VD->getType()->isReferenceType())
|
||||||
VisitLValue(InitEx, Pred, Tmp);
|
VisitLValue(InitEx, Pred, Tmp);
|
||||||
|
|
Loading…
Reference in New Issue