diff options
author | Zhongxing Xu <xuzhongxing@gmail.com> | 2010-11-01 09:09:44 +0000 |
---|---|---|
committer | Zhongxing Xu <xuzhongxing@gmail.com> | 2010-11-01 09:09:44 +0000 |
commit | 7ce351db56fbce162a3b650518ce05b5c61ebf36 (patch) | |
tree | b8e666185681f67251775ca0ef80be4790669b4d /lib/Checker/AggExprVisitor.cpp | |
parent | 81bc7d07b701042371a5723b6f394cd2482ed7be (diff) |
Now initializer of C++ record type is visited as block-level expr.
Let the destination of AggExprVisitor be an explicit MemRegion.
Reenable the test case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117908 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Checker/AggExprVisitor.cpp')
-rw-r--r-- | lib/Checker/AggExprVisitor.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/Checker/AggExprVisitor.cpp b/lib/Checker/AggExprVisitor.cpp index 6d472f46b4..f31bcec73a 100644 --- a/lib/Checker/AggExprVisitor.cpp +++ b/lib/Checker/AggExprVisitor.cpp @@ -26,15 +26,15 @@ namespace { /// cast and construct exprs (and others), and at the final point, dispatches /// back to the GRExprEngine to let the real evaluation logic happen. class AggExprVisitor : public StmtVisitor<AggExprVisitor> { - SVal DestPtr; + const MemRegion *Dest; ExplodedNode *Pred; ExplodedNodeSet &DstSet; GRExprEngine &Eng; public: - AggExprVisitor(SVal dest, ExplodedNode *N, ExplodedNodeSet &dst, + AggExprVisitor(const MemRegion *dest, ExplodedNode *N, ExplodedNodeSet &dst, GRExprEngine &eng) - : DestPtr(dest), Pred(N), DstSet(dst), Eng(eng) {} + : Dest(dest), Pred(N), DstSet(dst), Eng(eng) {} void VisitCastExpr(CastExpr *E); void VisitCXXConstructExpr(CXXConstructExpr *E); @@ -53,10 +53,10 @@ void AggExprVisitor::VisitCastExpr(CastExpr *E) { } void AggExprVisitor::VisitCXXConstructExpr(CXXConstructExpr *E) { - Eng.VisitCXXConstructExpr(E, DestPtr, Pred, DstSet); + Eng.VisitCXXConstructExpr(E, Dest, Pred, DstSet); } -void GRExprEngine::VisitAggExpr(const Expr *E, SVal Dest, ExplodedNode *Pred, - ExplodedNodeSet &Dst) { +void GRExprEngine::VisitAggExpr(const Expr *E, const MemRegion *Dest, + ExplodedNode *Pred, ExplodedNodeSet &Dst) { AggExprVisitor(Dest, Pred, Dst, *this).Visit(const_cast<Expr *>(E)); } |