diff options
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); |