diff options
author | Zhongxing Xu <xuzhongxing@gmail.com> | 2008-08-29 14:52:36 +0000 |
---|---|---|
committer | Zhongxing Xu <xuzhongxing@gmail.com> | 2008-08-29 14:52:36 +0000 |
commit | 39cfed397baf1ffca0ab85cfa3d03087fe80e2cc (patch) | |
tree | 61ea23083c1597ea7d9a01005aa405de9fc79055 /include/clang/Analysis/PathSensitive/ConstraintManager.h | |
parent | 85c59edda02df48fae8dc85049743319bc6e7e89 (diff) |
Migrate the rest symbolic analysis stuff to BasicConstraintManager.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55536 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Analysis/PathSensitive/ConstraintManager.h')
-rw-r--r-- | include/clang/Analysis/PathSensitive/ConstraintManager.h | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/include/clang/Analysis/PathSensitive/ConstraintManager.h b/include/clang/Analysis/PathSensitive/ConstraintManager.h index 39e5918c19..6014e66015 100644 --- a/include/clang/Analysis/PathSensitive/ConstraintManager.h +++ b/include/clang/Analysis/PathSensitive/ConstraintManager.h @@ -1,17 +1,39 @@ -#ifndef CONSTRAINT_MANAGER_H -#define CONSTRAINT_MANAGER_H +#ifndef LLVM_CLANG_ANALYSIS_CONSTRAINT_MANAGER_H +#define LLVM_CLANG_ANALYSIS_CONSTRAINT_MANAGER_H + +// FIXME: Typedef LiveSymbolsTy/DeadSymbolsTy at a more appropriate place. +#include "clang/Analysis/PathSensitive/Store.h" + +namespace llvm { +class APSInt; +} namespace clang { class GRState; class GRStateManager; class RVal; +class SymbolID; class ConstraintManager { public: virtual ~ConstraintManager(); virtual const GRState* Assume(const GRState* St, RVal Cond, bool Assumption, bool& isFeasible) = 0; + + virtual const GRState* AddNE(const GRState* St, SymbolID sym, + const llvm::APSInt& V) = 0; + virtual const llvm::APSInt* getSymVal(const GRState* St, SymbolID sym) = 0; + + virtual bool isEqual(const GRState* St, SymbolID sym, + const llvm::APSInt& V) const = 0; + + virtual const GRState* RemoveDeadBindings(const GRState* St, + StoreManager::LiveSymbolsTy& LSymbols, + StoreManager::DeadSymbolsTy& DSymbols) = 0; + + virtual void print(const GRState* St, std::ostream& Out, + const char* nl, const char *sep) = 0; }; ConstraintManager* CreateBasicConstraintManager(GRStateManager& statemgr); |