class RangedConstraintManager
Declaration
class RangedConstraintManager : public SimpleConstraintManager { /* full declaration omitted */ };
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h:407
Inherits from: SimpleConstraintManager
Member Variables
Inherited from ConstraintManager:
Method Overview
- public RangedConstraintManager(clang::ento::ExprEngine * EE, clang::ento::SValBuilder & SB)
- public clang::ento::ProgramStateRef assumeSym(clang::ento::ProgramStateRef State, clang::ento::SymbolRef Sym, bool Assumption)
- protected virtual clang::ento::ProgramStateRef assumeSymEQ(clang::ento::ProgramStateRef State, clang::ento::SymbolRef Sym, const llvm::APSInt & V, const llvm::APSInt & Adjustment)
- protected virtual clang::ento::ProgramStateRef assumeSymGE(clang::ento::ProgramStateRef State, clang::ento::SymbolRef Sym, const llvm::APSInt & V, const llvm::APSInt & Adjustment)
- protected virtual clang::ento::ProgramStateRef assumeSymGT(clang::ento::ProgramStateRef State, clang::ento::SymbolRef Sym, const llvm::APSInt & V, const llvm::APSInt & Adjustment)
- public 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 assumeSymLE(clang::ento::ProgramStateRef State, clang::ento::SymbolRef Sym, const llvm::APSInt & V, const llvm::APSInt & Adjustment)
- protected virtual clang::ento::ProgramStateRef assumeSymLT(clang::ento::ProgramStateRef State, clang::ento::SymbolRef Sym, const llvm::APSInt & V, const llvm::APSInt & Adjustment)
- protected virtual clang::ento::ProgramStateRef assumeSymNE(clang::ento::ProgramStateRef State, clang::ento::SymbolRef Sym, const llvm::APSInt & V, const llvm::APSInt & Adjustment)
- protected virtual clang::ento::ProgramStateRef assumeSymOutsideInclusiveRange(clang::ento::ProgramStateRef State, clang::ento::SymbolRef Sym, const llvm::APSInt & From, const llvm::APSInt & To, const llvm::APSInt & Adjustment)
- protected virtual clang::ento::ProgramStateRef assumeSymRel(clang::ento::ProgramStateRef State, clang::ento::SymbolRef Sym, BinaryOperator::Opcode op, const llvm::APSInt & Int)
- public clang::ento::ProgramStateRef assumeSymUnsupported(clang::ento::ProgramStateRef State, clang::ento::SymbolRef Sym, bool Assumption)
- protected virtual clang::ento::ProgramStateRef assumeSymWithinInclusiveRange(clang::ento::ProgramStateRef State, clang::ento::SymbolRef Sym, const llvm::APSInt & From, const llvm::APSInt & To, const llvm::APSInt & Adjustment)
- private static void computeAdjustment(clang::ento::SymbolRef & Sym, llvm::APSInt & Adjustment)
- public ~RangedConstraintManager()
Inherited from SimpleConstraintManager:
- protected assumeInclusiveRangeInternal
- protected assumeInternal
- protected assumeSym
- protected assumeSymInclusiveRange
- protected assumeSymUnsupported
- protected getBasicVals
- protected getSValBuilder
- protected getSymbolManager
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
¶RangedConstraintManager(
clang::ento::ExprEngine* EE,
clang::ento::SValBuilder& SB)
RangedConstraintManager(
clang::ento::ExprEngine* EE,
clang::ento::SValBuilder& SB)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h:409
Parameters
¶clang::ento::ProgramStateRef assumeSym(
clang::ento::ProgramStateRef State,
clang::ento::SymbolRef Sym,
bool Assumption)
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/RangedConstraintManager.h:418
Parameters
- clang::ento::ProgramStateRef State
- clang::ento::SymbolRef Sym
- bool Assumption
¶virtual clang::ento::ProgramStateRef assumeSymEQ(
clang::ento::ProgramStateRef State,
clang::ento::SymbolRef Sym,
const llvm::APSInt& V,
const llvm::APSInt& Adjustment)
virtual clang::ento::ProgramStateRef assumeSymEQ(
clang::ento::ProgramStateRef State,
clang::ento::SymbolRef Sym,
const llvm::APSInt& V,
const llvm::APSInt& Adjustment)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h:446
Parameters
- clang::ento::ProgramStateRef State
- clang::ento::SymbolRef Sym
- const llvm::APSInt& V
- const llvm::APSInt& Adjustment
¶virtual clang::ento::ProgramStateRef assumeSymGE(
clang::ento::ProgramStateRef State,
clang::ento::SymbolRef Sym,
const llvm::APSInt& V,
const llvm::APSInt& Adjustment)
virtual clang::ento::ProgramStateRef assumeSymGE(
clang::ento::ProgramStateRef State,
clang::ento::SymbolRef Sym,
const llvm::APSInt& V,
const llvm::APSInt& Adjustment)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h:462
Parameters
- clang::ento::ProgramStateRef State
- clang::ento::SymbolRef Sym
- const llvm::APSInt& V
- const llvm::APSInt& Adjustment
¶virtual clang::ento::ProgramStateRef assumeSymGT(
clang::ento::ProgramStateRef State,
clang::ento::SymbolRef Sym,
const llvm::APSInt& V,
const llvm::APSInt& Adjustment)
virtual clang::ento::ProgramStateRef assumeSymGT(
clang::ento::ProgramStateRef State,
clang::ento::SymbolRef Sym,
const llvm::APSInt& V,
const llvm::APSInt& Adjustment)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h:454
Parameters
- clang::ento::ProgramStateRef State
- clang::ento::SymbolRef Sym
- const llvm::APSInt& V
- const llvm::APSInt& Adjustment
¶clang::ento::ProgramStateRef
assumeSymInclusiveRange(
clang::ento::ProgramStateRef State,
clang::ento::SymbolRef Sym,
const llvm::APSInt& From,
const llvm::APSInt& To,
bool InRange)
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/RangedConstraintManager.h:421
Parameters
- clang::ento::ProgramStateRef State
- clang::ento::SymbolRef Sym
- const llvm::APSInt& From
- const llvm::APSInt& To
- bool InRange
¶virtual clang::ento::ProgramStateRef assumeSymLE(
clang::ento::ProgramStateRef State,
clang::ento::SymbolRef Sym,
const llvm::APSInt& V,
const llvm::APSInt& Adjustment)
virtual clang::ento::ProgramStateRef assumeSymLE(
clang::ento::ProgramStateRef State,
clang::ento::SymbolRef Sym,
const llvm::APSInt& V,
const llvm::APSInt& Adjustment)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h:458
Parameters
- clang::ento::ProgramStateRef State
- clang::ento::SymbolRef Sym
- const llvm::APSInt& V
- const llvm::APSInt& Adjustment
¶virtual clang::ento::ProgramStateRef assumeSymLT(
clang::ento::ProgramStateRef State,
clang::ento::SymbolRef Sym,
const llvm::APSInt& V,
const llvm::APSInt& Adjustment)
virtual clang::ento::ProgramStateRef assumeSymLT(
clang::ento::ProgramStateRef State,
clang::ento::SymbolRef Sym,
const llvm::APSInt& V,
const llvm::APSInt& Adjustment)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h:450
Parameters
- clang::ento::ProgramStateRef State
- clang::ento::SymbolRef Sym
- const llvm::APSInt& V
- const llvm::APSInt& Adjustment
¶virtual clang::ento::ProgramStateRef assumeSymNE(
clang::ento::ProgramStateRef State,
clang::ento::SymbolRef Sym,
const llvm::APSInt& V,
const llvm::APSInt& Adjustment)
virtual clang::ento::ProgramStateRef assumeSymNE(
clang::ento::ProgramStateRef State,
clang::ento::SymbolRef Sym,
const llvm::APSInt& V,
const llvm::APSInt& Adjustment)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h:442
Parameters
- clang::ento::ProgramStateRef State
- clang::ento::SymbolRef Sym
- const llvm::APSInt& V
- const llvm::APSInt& Adjustment
¶virtual clang::ento::ProgramStateRef
assumeSymOutsideInclusiveRange(
clang::ento::ProgramStateRef State,
clang::ento::SymbolRef Sym,
const llvm::APSInt& From,
const llvm::APSInt& To,
const llvm::APSInt& Adjustment)
virtual clang::ento::ProgramStateRef
assumeSymOutsideInclusiveRange(
clang::ento::ProgramStateRef State,
clang::ento::SymbolRef Sym,
const llvm::APSInt& From,
const llvm::APSInt& To,
const llvm::APSInt& Adjustment)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h:470
Parameters
- clang::ento::ProgramStateRef State
- clang::ento::SymbolRef Sym
- const llvm::APSInt& From
- const llvm::APSInt& To
- const llvm::APSInt& Adjustment
¶virtual clang::ento::ProgramStateRef assumeSymRel(
clang::ento::ProgramStateRef State,
clang::ento::SymbolRef Sym,
BinaryOperator::Opcode op,
const llvm::APSInt& Int)
virtual clang::ento::ProgramStateRef assumeSymRel(
clang::ento::ProgramStateRef State,
clang::ento::SymbolRef Sym,
BinaryOperator::Opcode op,
const llvm::APSInt& Int)
Description
Assume a constraint between a symbolic expression and a concrete integer.
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h:431
Parameters
- clang::ento::ProgramStateRef State
- clang::ento::SymbolRef Sym
- BinaryOperator::Opcode op
- const llvm::APSInt& Int
¶clang::ento::ProgramStateRef assumeSymUnsupported(
clang::ento::ProgramStateRef State,
clang::ento::SymbolRef Sym,
bool Assumption)
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/RangedConstraintManager.h:426
Parameters
- clang::ento::ProgramStateRef State
- clang::ento::SymbolRef Sym
- bool Assumption
¶virtual clang::ento::ProgramStateRef
assumeSymWithinInclusiveRange(
clang::ento::ProgramStateRef State,
clang::ento::SymbolRef Sym,
const llvm::APSInt& From,
const llvm::APSInt& To,
const llvm::APSInt& Adjustment)
virtual clang::ento::ProgramStateRef
assumeSymWithinInclusiveRange(
clang::ento::ProgramStateRef State,
clang::ento::SymbolRef Sym,
const llvm::APSInt& From,
const llvm::APSInt& To,
const llvm::APSInt& Adjustment)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h:466
Parameters
- clang::ento::ProgramStateRef State
- clang::ento::SymbolRef Sym
- const llvm::APSInt& From
- const llvm::APSInt& To
- const llvm::APSInt& Adjustment
¶static void computeAdjustment(
clang::ento::SymbolRef& Sym,
llvm::APSInt& Adjustment)
static void computeAdjustment(
clang::ento::SymbolRef& Sym,
llvm::APSInt& Adjustment)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h:478
Parameters
- clang::ento::SymbolRef& Sym
- llvm::APSInt& Adjustment
¶~RangedConstraintManager()
~RangedConstraintManager()
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h:412