summaryrefslogtreecommitdiffstats
path: root/clang/include/clang/Analysis
diff options
context:
space:
mode:
Diffstat (limited to 'clang/include/clang/Analysis')
-rw-r--r--clang/include/clang/Analysis/PathSensitive/Checker.h7
-rw-r--r--clang/include/clang/Analysis/PathSensitive/CheckerVisitor.def1
-rw-r--r--clang/include/clang/Analysis/PathSensitive/GRState.h12
3 files changed, 13 insertions, 7 deletions
diff --git a/clang/include/clang/Analysis/PathSensitive/Checker.h b/clang/include/clang/Analysis/PathSensitive/Checker.h
index a87d72b60e4..5e87e379932 100644
--- a/clang/include/clang/Analysis/PathSensitive/Checker.h
+++ b/clang/include/clang/Analysis/PathSensitive/Checker.h
@@ -148,13 +148,6 @@ public:
virtual void PreVisitBind(CheckerContext &C,
const Stmt *AssignE, const Stmt *StoreE,
SVal location, SVal val) {}
-
- virtual ExplodedNode *CheckType(QualType T, ExplodedNode *Pred,
- const GRState *state, Stmt *S,
- GRExprEngine &Eng) {
- return Pred;
- }
-
};
} // end clang namespace
diff --git a/clang/include/clang/Analysis/PathSensitive/CheckerVisitor.def b/clang/include/clang/Analysis/PathSensitive/CheckerVisitor.def
index 3f68a7a9d5c..d445f3afe84 100644
--- a/clang/include/clang/Analysis/PathSensitive/CheckerVisitor.def
+++ b/clang/include/clang/Analysis/PathSensitive/CheckerVisitor.def
@@ -13,6 +13,7 @@
PREVISIT(BinaryOperator)
PREVISIT(CallExpr)
+PREVISIT(DeclStmt)
PREVISIT(ObjCMessageExpr)
PREVISIT(ReturnStmt)
diff --git a/clang/include/clang/Analysis/PathSensitive/GRState.h b/clang/include/clang/Analysis/PathSensitive/GRState.h
index 8678ca9b5b9..4e834b535a8 100644
--- a/clang/include/clang/Analysis/PathSensitive/GRState.h
+++ b/clang/include/clang/Analysis/PathSensitive/GRState.h
@@ -195,6 +195,9 @@ public:
//
const GRState *Assume(DefinedOrUnknownSVal cond, bool assumption) const;
+
+ std::pair<const GRState*, const GRState*>
+ Assume(DefinedOrUnknownSVal cond) const;
const GRState *AssumeInBound(DefinedOrUnknownSVal idx,
DefinedOrUnknownSVal upperBound,
@@ -583,6 +586,15 @@ inline const GRState *GRState::Assume(DefinedOrUnknownSVal Cond,
return getStateManager().ConstraintMgr->Assume(this, cast<DefinedSVal>(Cond),
Assumption);
}
+
+inline std::pair<const GRState*, const GRState*>
+GRState::Assume(DefinedOrUnknownSVal Cond) const {
+ if (Cond.isUnknown())
+ return std::make_pair(this, this);
+
+ return getStateManager().ConstraintMgr->AssumeDual(this,
+ cast<DefinedSVal>(Cond));
+}
inline const GRState *GRState::AssumeInBound(DefinedOrUnknownSVal Idx,
DefinedOrUnknownSVal UpperBound,
OpenPOWER on IntegriCloud