15 #ifndef LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_SMTCONSTRAINTMANAGER_H 16 #define LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_SMTCONSTRAINTMANAGER_H 38 bool Assumption)
override;
41 const llvm::APSInt &From,
42 const llvm::APSInt &To,
43 bool InRange)
override;
46 bool Assumption)
override;
58 LLVM_DUMP_METHOD
void dump()
const { Solver->dump(); }
ProgramStateRef assumeSymUnsupported(ProgramStateRef State, SymbolRef Sym, bool Assumption) override
Given a symbolic expression that cannot be reasoned about, assume that it is zero/nonzero and add it ...
ConditionTruthVal checkModel(ProgramStateRef State, const SMTExprRef &Exp) const
i32 captured_struct **param SharedsTy A type which contains references the shared variables *param Shareds Context with the list of shared variables from the p *TaskFunction *param Data Additional data for task generation like final * state
ProgramStateRef assumeSymInclusiveRange(ProgramStateRef State, SymbolRef Sym, const llvm::APSInt &From, const llvm::APSInt &To, bool InRange) override
Given a symbolic expression within the range [From, To], assume that it is true/false and generate th...
virtual ~SMTConstraintManager()=default
virtual void addStateConstraints(ProgramStateRef State) const =0
Given a program state, construct the logical conjunction and add it to the solver.
const llvm::APSInt * getSymVal(ProgramStateRef State, SymbolRef Sym) const override
If a symbol is perfectly constrained to a constant, attempt to return the concrete value...
Dataflow Directional Tag Classes.
LLVM_DUMP_METHOD void dump() const
Dumps SMT formula.
std::shared_ptr< SMTSolver > SMTSolverRef
Shared pointer for SMTSolvers.
SMTConstraintManager(clang::ento::SubEngine *SE, clang::ento::SValBuilder &SB, SMTSolverRef &S)
ConditionTruthVal checkNull(ProgramStateRef State, SymbolRef Sym) override
Returns whether or not a symbol is known to be null ("true"), known to be non-null ("false")...
std::shared_ptr< SMTExpr > SMTExprRef
Shared pointer for SMTExprs, used by SMTSolver API.
ProgramStateRef assumeSym(ProgramStateRef state, SymbolRef Sym, bool Assumption) override
Given a symbolic expression that can be reasoned about, assume that it is true/false and generate the...
virtual ProgramStateRef assumeExpr(ProgramStateRef State, SymbolRef Sym, const SMTExprRef &Exp)=0