clang API Documentation

Public Member Functions | Protected Member Functions
clang::ento::SimpleConstraintManager Class Reference

#include <SimpleConstraintManager.h>

Inheritance diagram for clang::ento::SimpleConstraintManager:
Inheritance graph
[legend]
Collaboration diagram for clang::ento::SimpleConstraintManager:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 SimpleConstraintManager (SubEngine *subengine, SValBuilder &SB)
virtual ~SimpleConstraintManager ()
ProgramStateRef assume (ProgramStateRef state, DefinedSVal Cond, bool Assumption) override
ProgramStateRef assume (ProgramStateRef state, NonLoc Cond, bool Assumption)
ProgramStateRef assumeSymRel (ProgramStateRef state, const SymExpr *LHS, BinaryOperator::Opcode op, const llvm::APSInt &Int)

Protected Member Functions

virtual ProgramStateRef assumeSymNE (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 assumeSymLT (ProgramStateRef state, SymbolRef sym, const llvm::APSInt &V, const llvm::APSInt &Adjustment)=0
virtual ProgramStateRef assumeSymGT (ProgramStateRef state, SymbolRef sym, const llvm::APSInt &V, const llvm::APSInt &Adjustment)=0
virtual ProgramStateRef assumeSymLE (ProgramStateRef state, SymbolRef sym, const llvm::APSInt &V, const llvm::APSInt &Adjustment)=0
virtual ProgramStateRef assumeSymGE (ProgramStateRef state, SymbolRef sym, const llvm::APSInt &V, const llvm::APSInt &Adjustment)=0
BasicValueFactorygetBasicVals () const
SymbolManagergetSymbolManager () const
bool canReasonAbout (SVal X) const override
ProgramStateRef assumeAux (ProgramStateRef state, NonLoc Cond, bool Assumption)
ProgramStateRef assumeAuxForSymbol (ProgramStateRef State, SymbolRef Sym, bool Assumption)

Detailed Description

Definition at line 24 of file SimpleConstraintManager.h.


Constructor & Destructor Documentation

Definition at line 28 of file SimpleConstraintManager.h.

Definition at line 24 of file SimpleConstraintManager.cpp.


Member Function Documentation

ProgramStateRef clang::ento::SimpleConstraintManager::assume ( ProgramStateRef  state,
DefinedSVal  Cond,
bool  Assumption 
) [override, virtual]
virtual ProgramStateRef clang::ento::SimpleConstraintManager::assumeSymEQ ( ProgramStateRef  state,
SymbolRef  sym,
const llvm::APSInt &  V,
const llvm::APSInt &  Adjustment 
) [protected, pure virtual]

Referenced by assumeAuxForSymbol(), and assumeSymRel().

virtual ProgramStateRef clang::ento::SimpleConstraintManager::assumeSymGE ( ProgramStateRef  state,
SymbolRef  sym,
const llvm::APSInt &  V,
const llvm::APSInt &  Adjustment 
) [protected, pure virtual]

Referenced by assumeSymRel().

virtual ProgramStateRef clang::ento::SimpleConstraintManager::assumeSymGT ( ProgramStateRef  state,
SymbolRef  sym,
const llvm::APSInt &  V,
const llvm::APSInt &  Adjustment 
) [protected, pure virtual]

Referenced by assumeSymRel().

virtual ProgramStateRef clang::ento::SimpleConstraintManager::assumeSymLE ( ProgramStateRef  state,
SymbolRef  sym,
const llvm::APSInt &  V,
const llvm::APSInt &  Adjustment 
) [protected, pure virtual]

Referenced by assumeSymRel().

virtual ProgramStateRef clang::ento::SimpleConstraintManager::assumeSymLT ( ProgramStateRef  state,
SymbolRef  sym,
const llvm::APSInt &  V,
const llvm::APSInt &  Adjustment 
) [protected, pure virtual]

Referenced by assumeSymRel().

virtual ProgramStateRef clang::ento::SimpleConstraintManager::assumeSymNE ( ProgramStateRef  state,
SymbolRef  sym,
const llvm::APSInt &  V,
const llvm::APSInt &  Adjustment 
) [protected, pure virtual]

Referenced by assumeAuxForSymbol(), and assumeSymRel().

bool clang::ento::SimpleConstraintManager::canReasonAbout ( SVal  X) const [override, protected, virtual]

canReasonAbout - Not all ConstraintManagers can accurately reason about all SVal values. This method returns true if the ConstraintManager can reasonably handle a given SVal value. This is typically queried by ExprEngine to determine if the value should be replaced with a conjured symbolic value in order to recover some precision.

Implements clang::ento::ConstraintManager.

Definition at line 26 of file SimpleConstraintManager.cpp.

References clang::BO_And, clang::BO_Div, clang::BO_Mul, clang::BO_Or, clang::BO_Rem, clang::BO_Shl, clang::BO_Shr, clang::BO_Xor, clang::ento::SVal::getAs(), clang::BinaryOperator::isComparisonOp(), and clang::ento::Loc::isLocType().

Referenced by assumeAux().

Definition at line 83 of file SimpleConstraintManager.h.

References clang::ento::SValBuilder::getSymbolManager().

Referenced by assumeAux().


The documentation for this class was generated from the following files: