14 #ifndef LLVM_CLANG_LIB_STATICANALYZER_CORE_SIMPLECONSTRAINTMANAGER_H
15 #define LLVM_CLANG_LIB_STATICANALYZER_CORE_SIMPLECONSTRAINTMANAGER_H
29 : SU(subengine), SVB(SB) {}
37 bool Assumption)
override;
43 const llvm::APSInt &From,
44 const llvm::APSInt &To,
45 bool InRange)
override;
50 const llvm::APSInt& Int);
54 const llvm::APSInt &From,
55 const llvm::APSInt &To,
68 const llvm::APSInt& V,
69 const llvm::APSInt& Adjustment) = 0;
72 const llvm::APSInt& V,
73 const llvm::APSInt& Adjustment) = 0;
76 const llvm::APSInt& V,
77 const llvm::APSInt& Adjustment) = 0;
80 const llvm::APSInt& V,
81 const llvm::APSInt& Adjustment) = 0;
84 const llvm::APSInt& V,
85 const llvm::APSInt& Adjustment) = 0;
88 const llvm::APSInt& V,
89 const llvm::APSInt& Adjustment) = 0;
94 const llvm::APSInt &To,
const llvm::APSInt &Adjustment) = 0;
98 const llvm::APSInt &To,
const llvm::APSInt &Adjustment) = 0;
SymbolManager & getSymbolManager()
virtual ProgramStateRef assumeSymNE(ProgramStateRef state, SymbolRef sym, const llvm::APSInt &V, const llvm::APSInt &Adjustment)=0
virtual ProgramStateRef assumeSymbolOutOfInclusiveRange(ProgramStateRef state, SymbolRef Sym, const llvm::APSInt &From, const llvm::APSInt &To, const llvm::APSInt &Adjustment)=0
virtual ProgramStateRef assumeSymGT(ProgramStateRef state, SymbolRef sym, const llvm::APSInt &V, const llvm::APSInt &Adjustment)=0
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
~SimpleConstraintManager() override
ProgramStateRef assumeWithinInclusiveRange(ProgramStateRef State, NonLoc Value, const llvm::APSInt &From, const llvm::APSInt &To, bool InRange) override
SimpleConstraintManager(SubEngine *subengine, SValBuilder &SB)
virtual ProgramStateRef assumeSymGE(ProgramStateRef state, SymbolRef sym, const llvm::APSInt &V, const llvm::APSInt &Adjustment)=0
virtual ProgramStateRef assumeSymEQ(ProgramStateRef state, SymbolRef sym, const llvm::APSInt &V, const llvm::APSInt &Adjustment)=0
virtual ProgramStateRef assumeSymbolWithinInclusiveRange(ProgramStateRef State, SymbolRef Sym, const llvm::APSInt &From, const llvm::APSInt &To, const llvm::APSInt &Adjustment)=0
virtual ProgramStateRef assumeSymLE(ProgramStateRef state, SymbolRef sym, const llvm::APSInt &V, const llvm::APSInt &Adjustment)=0
SymbolManager & getSymbolManager() const
ProgramStateRef assumeSymRel(ProgramStateRef state, const SymExpr *LHS, BinaryOperator::Opcode op, const llvm::APSInt &Int)
ProgramStateRef assumeAux(ProgramStateRef state, NonLoc Cond, bool Assumption)
ProgramStateRef assumeSymWithinInclusiveRange(ProgramStateRef State, SymbolRef Sym, const llvm::APSInt &From, const llvm::APSInt &To, bool InRange)
SVal - This represents a symbolic expression, which can be either an L-value or an R-value...
ProgramStateRef assume(ProgramStateRef state, DefinedSVal Cond, bool Assumption) override
ProgramStateRef assumeAuxForSymbol(ProgramStateRef State, SymbolRef Sym, bool Assumption)
BasicValueFactory & getBasicValueFactory()
X
Add a minimal nested name specifier fixit hint to allow lookup of a tag name from an outer enclosing ...
bool canReasonAbout(SVal X) const override
canReasonAbout - Not all ConstraintManagers can accurately reason about all SVal values.
virtual ProgramStateRef assumeSymLT(ProgramStateRef state, SymbolRef sym, const llvm::APSInt &V, const llvm::APSInt &Adjustment)=0
BasicValueFactory & getBasicVals() const