|
clang
5.0.0
|
#include "clang/StaticAnalyzer/Core/PathSensitive/SimpleConstraintManager.h"
Public Member Functions | |
| SimpleConstraintManager (SubEngine *subengine, SValBuilder &SB) | |
| ~SimpleConstraintManager () override | |
| ProgramStateRef | assume (ProgramStateRef State, DefinedSVal Cond, bool Assumption) override |
| Ensures that the DefinedSVal conditional is expressed as a NonLoc by creating boolean casts to handle Loc's. More... | |
| ProgramStateRef | assumeInclusiveRange (ProgramStateRef State, NonLoc Value, const llvm::APSInt &From, const llvm::APSInt &To, bool InRange) override |
Public Member Functions inherited from clang::ento::ConstraintManager | |
| ConstraintManager () | |
| virtual | ~ConstraintManager () |
| ProgramStatePair | assumeDual (ProgramStateRef State, DefinedSVal Cond) |
| Returns a pair of states (StTrue, StFalse) where the given condition is assumed to be true or false, respectively. More... | |
| virtual ProgramStatePair | assumeInclusiveRangeDual (ProgramStateRef State, NonLoc Value, const llvm::APSInt &From, const llvm::APSInt &To) |
| virtual const llvm::APSInt * | getSymVal (ProgramStateRef state, SymbolRef sym) const |
| If a symbol is perfectly constrained to a constant, attempt to return the concrete value. More... | |
| virtual ProgramStateRef | removeDeadBindings (ProgramStateRef state, SymbolReaper &SymReaper)=0 |
| Scan all symbols referenced by the constraints. More... | |
| virtual void | print (ProgramStateRef state, raw_ostream &Out, const char *nl, const char *sep)=0 |
| virtual void | EndPath (ProgramStateRef state) |
| ConditionTruthVal | isNull (ProgramStateRef State, SymbolRef Sym) |
| Convenience method to query the state to see if a symbol is null or not null, or if neither assumption can be made. More... | |
Protected Member Functions | |
| virtual ProgramStateRef | assumeSym (ProgramStateRef State, SymbolRef Sym, bool Assumption)=0 |
| Given a symbolic expression that can be reasoned about, assume that it is true/false and generate the new program state. More... | |
| virtual ProgramStateRef | assumeSymInclusiveRange (ProgramStateRef State, SymbolRef Sym, const llvm::APSInt &From, const llvm::APSInt &To, bool InRange)=0 |
| Given a symbolic expression within the range [From, To], assume that it is true/false and generate the new program state. More... | |
| virtual ProgramStateRef | assumeSymUnsupported (ProgramStateRef State, SymbolRef Sym, bool Assumption)=0 |
| Given a symbolic expression that cannot be reasoned about, assume that it is zero/nonzero and add it directly to the solver state. More... | |
| BasicValueFactory & | getBasicVals () const |
| SymbolManager & | getSymbolManager () const |
Protected Member Functions inherited from clang::ento::ConstraintManager | |
| virtual bool | canReasonAbout (SVal X) const =0 |
| canReasonAbout - Not all ConstraintManagers can accurately reason about all SVal values. More... | |
| virtual ConditionTruthVal | checkNull (ProgramStateRef State, SymbolRef Sym) |
| Returns whether or not a symbol is known to be null ("true"), known to be non-null ("false"), or may be either ("underconstrained"). More... | |
Additional Inherited Members | |
Public Types inherited from clang::ento::ConstraintManager | |
| typedef std::pair < ProgramStateRef, ProgramStateRef > | ProgramStatePair |
Protected Attributes inherited from clang::ento::ConstraintManager | |
| bool | NotifyAssumeClients |
| A flag to indicate that clients should be notified of assumptions. More... | |
Definition at line 24 of file SimpleConstraintManager.h.
|
inline |
Definition at line 29 of file SimpleConstraintManager.h.
|
override |
Definition at line 24 of file SimpleConstraintManager.cpp.
|
overridevirtual |
Ensures that the DefinedSVal conditional is expressed as a NonLoc by creating boolean casts to handle Loc's.
Implements clang::ento::ConstraintManager.
Definition at line 26 of file SimpleConstraintManager.cpp.
References clang::ASTContext::BoolTy, clang::ento::SVal::castAs(), clang::ento::SValBuilder::evalCast(), clang::ento::SVal::getAs(), clang::ento::SValBuilder::getContext(), and clang::ASTContext::VoidPtrTy.
|
overridevirtual |
Implements clang::ento::ConstraintManager.
Definition at line 95 of file SimpleConstraintManager.cpp.
References assumeSymInclusiveRange(), clang::ento::ConstraintManager::canReasonAbout(), clang::ento::SVal::castAs(), clang::ento::SVal::getAsSymbol(), clang::ento::SVal::getAsSymExpr(), clang::ento::SVal::getSubKind(), getValue(), and State.
|
protectedpure virtual |
Given a symbolic expression that can be reasoned about, assume that it is true/false and generate the new program state.
Implemented in clang::ento::RangedConstraintManager.
|
protectedpure virtual |
Given a symbolic expression within the range [From, To], assume that it is true/false and generate the new program state.
This function is used to handle case ranges produced by a language extension for switch case statements.
Implemented in clang::ento::RangedConstraintManager.
Referenced by assumeInclusiveRange().
|
protectedpure virtual |
Given a symbolic expression that cannot be reasoned about, assume that it is zero/nonzero and add it directly to the solver state.
Implemented in clang::ento::RangedConstraintManager.
|
inlineprotected |
Definition at line 78 of file SimpleConstraintManager.h.
References clang::ento::SValBuilder::getBasicValueFactory().
Referenced by clang::ento::RangedConstraintManager::assumeSym(), clang::ento::RangedConstraintManager::assumeSymInclusiveRange(), clang::ento::RangedConstraintManager::assumeSymRel(), and clang::ento::RangedConstraintManager::assumeSymUnsupported().
|
inlineprotected |
Definition at line 79 of file SimpleConstraintManager.h.
References clang::ento::SValBuilder::getSymbolManager().
Referenced by clang::ento::RangedConstraintManager::assumeSym().
1.8.6