class SimpleConstraintManager
Declaration
class SimpleConstraintManager : public ConstraintManager { /* full declaration omitted */ };
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SimpleConstraintManager.h:23
Inherits from: ConstraintManager
Member Variables
- private clang::ento::ExprEngine* EE
- private clang::ento::SValBuilder& SVB
Inherited from ConstraintManager:
Method Overview
- public SimpleConstraintManager(clang::ento::ExprEngine * exprengine, clang::ento::SValBuilder & SB)
- private clang::ento::ProgramStateRef assume(clang::ento::ProgramStateRef State, clang::ento::NonLoc Cond, bool Assumption)
- private clang::ento::ProgramStateRef assumeAux(clang::ento::ProgramStateRef State, clang::ento::NonLoc Cond, bool Assumption)
- protected clang::ento::ProgramStateRef assumeInclusiveRangeInternal(clang::ento::ProgramStateRef State, clang::ento::NonLoc Value, const llvm::APSInt & From, const llvm::APSInt & To, bool InRange)
- protected clang::ento::ProgramStateRef assumeInternal(clang::ento::ProgramStateRef State, clang::ento::DefinedSVal Cond, bool Assumption)
- protected virtual clang::ento::ProgramStateRef assumeSym(clang::ento::ProgramStateRef State, clang::ento::SymbolRef Sym, bool Assumption)
- protected virtual clang::ento::ProgramStateRef assumeSymInclusiveRange(clang::ento::ProgramStateRef State, clang::ento::SymbolRef Sym, const llvm::APSInt & From, const llvm::APSInt & To, bool InRange)
- protected virtual clang::ento::ProgramStateRef assumeSymUnsupported(clang::ento::ProgramStateRef State, clang::ento::SymbolRef Sym, bool Assumption)
- protected clang::ento::BasicValueFactory & getBasicVals() const
- protected clang::ento::SValBuilder & getSValBuilder() const
- protected clang::ento::SymbolManager & getSymbolManager() const
- public ~SimpleConstraintManager()
Inherited from ConstraintManager:
- public assume
- public assumeDual
- protected assumeDualImpl
- public assumeInclusiveRange
- public assumeInclusiveRangeDual
- protected assumeInclusiveRangeInternal
- protected assumeInternal
- protected canReasonAbout
- protected checkNull
- public getSymVal
- public haveEqualConstraints
- public isNull
- public printJson
- public printValue
- public removeDeadBindings
Methods
¶SimpleConstraintManager(
clang::ento::ExprEngine* exprengine,
clang::ento::SValBuilder& SB)
SimpleConstraintManager(
clang::ento::ExprEngine* exprengine,
clang::ento::SValBuilder& SB)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SimpleConstraintManager.h:28
Parameters
- clang::ento::ExprEngine* exprengine
- clang::ento::SValBuilder& SB
¶clang::ento::ProgramStateRef assume(
clang::ento::ProgramStateRef State,
clang::ento::NonLoc Cond,
bool Assumption)
clang::ento::ProgramStateRef assume(
clang::ento::ProgramStateRef State,
clang::ento::NonLoc Cond,
bool Assumption)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SimpleConstraintManager.h:83
Parameters
- clang::ento::ProgramStateRef State
- clang::ento::NonLoc Cond
- bool Assumption
¶clang::ento::ProgramStateRef assumeAux(
clang::ento::ProgramStateRef State,
clang::ento::NonLoc Cond,
bool Assumption)
clang::ento::ProgramStateRef assumeAux(
clang::ento::ProgramStateRef State,
clang::ento::NonLoc Cond,
bool Assumption)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SimpleConstraintManager.h:85
Parameters
- clang::ento::ProgramStateRef State
- clang::ento::NonLoc Cond
- bool Assumption
¶clang::ento::ProgramStateRef
assumeInclusiveRangeInternal(
clang::ento::ProgramStateRef State,
clang::ento::NonLoc Value,
const llvm::APSInt& From,
const llvm::APSInt& To,
bool InRange)
clang::ento::ProgramStateRef
assumeInclusiveRangeInternal(
clang::ento::ProgramStateRef State,
clang::ento::NonLoc Value,
const llvm::APSInt& From,
const llvm::APSInt& To,
bool InRange)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SimpleConstraintManager.h:72
Parameters
- clang::ento::ProgramStateRef State
- clang::ento::NonLoc Value
- const llvm::APSInt& From
- const llvm::APSInt& To
- bool InRange
¶clang::ento::ProgramStateRef assumeInternal(
clang::ento::ProgramStateRef State,
clang::ento::DefinedSVal Cond,
bool Assumption)
clang::ento::ProgramStateRef assumeInternal(
clang::ento::ProgramStateRef State,
clang::ento::DefinedSVal Cond,
bool Assumption)
Description
Ensures that the DefinedSVal conditional is expressed as a NonLoc by creating boolean casts to handle Loc's.
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SimpleConstraintManager.h:69
Parameters
- clang::ento::ProgramStateRef State
- clang::ento::DefinedSVal Cond
- bool Assumption
¶virtual clang::ento::ProgramStateRef assumeSym(
clang::ento::ProgramStateRef State,
clang::ento::SymbolRef Sym,
bool Assumption)
virtual clang::ento::ProgramStateRef assumeSym(
clang::ento::ProgramStateRef State,
clang::ento::SymbolRef Sym,
bool Assumption)
Description
Given a symbolic expression that can be reasoned about, assume that it is true/false and generate the new program state.
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SimpleConstraintManager.h:44
Parameters
- clang::ento::ProgramStateRef State
- clang::ento::SymbolRef Sym
- bool Assumption
¶virtual clang::ento::ProgramStateRef
assumeSymInclusiveRange(
clang::ento::ProgramStateRef State,
clang::ento::SymbolRef Sym,
const llvm::APSInt& From,
const llvm::APSInt& To,
bool InRange)
virtual clang::ento::ProgramStateRef
assumeSymInclusiveRange(
clang::ento::ProgramStateRef State,
clang::ento::SymbolRef Sym,
const llvm::APSInt& From,
const llvm::APSInt& To,
bool InRange)
Description
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.
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SimpleConstraintManager.h:51
Parameters
- clang::ento::ProgramStateRef State
- clang::ento::SymbolRef Sym
- const llvm::APSInt& From
- const llvm::APSInt& To
- bool InRange
¶virtual clang::ento::ProgramStateRef
assumeSymUnsupported(
clang::ento::ProgramStateRef State,
clang::ento::SymbolRef Sym,
bool Assumption)
virtual clang::ento::ProgramStateRef
assumeSymUnsupported(
clang::ento::ProgramStateRef State,
clang::ento::SymbolRef Sym,
bool Assumption)
Description
Given a symbolic expression that cannot be reasoned about, assume that it is zero/nonzero and add it directly to the solver state.
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SimpleConstraintManager.h:59
Parameters
- clang::ento::ProgramStateRef State
- clang::ento::SymbolRef Sym
- bool Assumption
¶clang::ento::BasicValueFactory& getBasicVals()
const
clang::ento::BasicValueFactory& getBasicVals()
const
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SimpleConstraintManager.h:79
¶clang::ento::SValBuilder& getSValBuilder() const
clang::ento::SValBuilder& getSValBuilder() const
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SimpleConstraintManager.h:78
¶clang::ento::SymbolManager& getSymbolManager()
const
clang::ento::SymbolManager& getSymbolManager()
const
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SimpleConstraintManager.h:80
¶~SimpleConstraintManager()
~SimpleConstraintManager()
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SimpleConstraintManager.h:31