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:

protected AssumeStack

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:

Methods

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)

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)

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)

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)

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)

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)

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)

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

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SimpleConstraintManager.h:79

clang::ento::SValBuilder& getSValBuilder() const

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SimpleConstraintManager.h:78

clang::ento::SymbolManager& getSymbolManager()
    const

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SimpleConstraintManager.h:80

~SimpleConstraintManager()

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/SimpleConstraintManager.h:31