clang 19.0.0git
Public Member Functions | Friends | List of all members
clang::ento::ProgramStateManager Class Reference

#include "clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h"

Public Member Functions

 ProgramStateManager (ASTContext &Ctx, StoreManagerCreator CreateStoreManager, ConstraintManagerCreator CreateConstraintManager, llvm::BumpPtrAllocator &alloc, ExprEngine *expreng)
 
 ~ProgramStateManager ()
 
ProgramStateRef getInitialState (const LocationContext *InitLoc)
 
ASTContextgetContext ()
 
const ASTContextgetContext () const
 
BasicValueFactorygetBasicVals ()
 
SValBuildergetSValBuilder ()
 
const SValBuildergetSValBuilder () const
 
SymbolManagergetSymbolManager ()
 
const SymbolManagergetSymbolManager () const
 
llvm::BumpPtrAllocator & getAllocator ()
 
MemRegionManagergetRegionManager ()
 
const MemRegionManagergetRegionManager () const
 
CallEventManagergetCallEventManager ()
 
StoreManagergetStoreManager ()
 
ConstraintManagergetConstraintManager ()
 
ExprEnginegetOwningEngine ()
 
ProgramStateRef removeDeadBindingsFromEnvironmentAndStore (ProgramStateRef St, const StackFrameContext *LCtx, SymbolReaper &SymReaper)
 
SVal ArrayToPointer (Loc Array, QualType ElementTy)
 
ProgramStateRef addGDM (ProgramStateRef St, void *Key, void *Data)
 
ProgramStateRef removeGDM (ProgramStateRef state, void *Key)
 
void iterBindings (ProgramStateRef state, StoreManager::BindingsHandler &F)
 
ProgramStateRef getPersistentState (ProgramState &Impl)
 
ProgramStateRef getPersistentStateWithGDM (ProgramStateRef FromState, ProgramStateRef GDMState)
 
bool haveEqualConstraints (ProgramStateRef S1, ProgramStateRef S2) const
 
bool haveEqualEnvironments (ProgramStateRef S1, ProgramStateRef S2) const
 
bool haveEqualStores (ProgramStateRef S1, ProgramStateRef S2) const
 
template<typename T >
ProgramStateRef set (ProgramStateRef st, typename ProgramStateTrait< T >::data_type D)
 
template<typename T >
ProgramStateRef set (ProgramStateRef st, typename ProgramStateTrait< T >::key_type K, typename ProgramStateTrait< T >::value_type V, typename ProgramStateTrait< T >::context_type C)
 
template<typename T >
ProgramStateRef add (ProgramStateRef st, typename ProgramStateTrait< T >::key_type K, typename ProgramStateTrait< T >::context_type C)
 
template<typename T >
ProgramStateRef remove (ProgramStateRef st, typename ProgramStateTrait< T >::key_type K, typename ProgramStateTrait< T >::context_type C)
 
template<typename T >
ProgramStateRef remove (ProgramStateRef st)
 
void * FindGDMContext (void *index, void *(*CreateContext)(llvm::BumpPtrAllocator &), void(*DeleteContext)(void *))
 
template<typename T >
ProgramStateTrait< T >::context_type get_context ()
 

Friends

class ProgramState
 
void ProgramStateRelease (const ProgramState *state)
 Decrement the number of times this state is referenced.
 

Detailed Description

Definition at line 505 of file ProgramState.h.

Constructor & Destructor Documentation

◆ ProgramStateManager()

ProgramStateManager::ProgramStateManager ( ASTContext Ctx,
StoreManagerCreator  CreateStoreManager,
ConstraintManagerCreator  CreateConstraintManager,
llvm::BumpPtrAllocator &  alloc,
ExprEngine expreng 
)

Definition at line 72 of file ProgramState.cpp.

◆ ~ProgramStateManager()

ProgramStateManager::~ProgramStateManager ( )

Definition at line 85 of file ProgramState.cpp.

Member Function Documentation

◆ add()

template<typename T >
ProgramStateRef clang::ento::ProgramStateManager::add ( ProgramStateRef  st,
typename ProgramStateTrait< T >::key_type  K,
typename ProgramStateTrait< T >::context_type  C 
)
inline

Definition at line 658 of file ProgramState.h.

References addGDM(), clang::C, and clang::T.

Referenced by clang::ento::ProgramState::add().

◆ addGDM()

ProgramStateRef ProgramStateManager::addGDM ( ProgramStateRef  St,
void *  Key,
void *  Data 
)

Definition at line 552 of file ProgramState.cpp.

References clang::Data, and getPersistentState().

Referenced by add(), remove(), and set().

◆ ArrayToPointer()

SVal clang::ento::ProgramStateManager::ArrayToPointer ( Loc  Array,
QualType  ElementTy 
)
inline

Definition at line 592 of file ProgramState.h.

◆ FindGDMContext()

void * ProgramStateManager::FindGDMContext ( void *  index,
void *(*)(llvm::BumpPtrAllocator &)  CreateContext,
void(*)(void *)  DeleteContext 
)

Definition at line 539 of file ProgramState.cpp.

Referenced by get_context().

◆ get_context()

template<typename T >
ProgramStateTrait< T >::context_type clang::ento::ProgramStateManager::get_context ( )
inline

Definition at line 684 of file ProgramState.h.

References FindGDMContext().

Referenced by clang::ento::ProgramState::get_context().

◆ getAllocator()

llvm::BumpPtrAllocator & clang::ento::ProgramStateManager::getAllocator ( )
inline

Definition at line 570 of file ProgramState.h.

◆ getBasicVals()

BasicValueFactory & clang::ento::ProgramStateManager::getBasicVals ( )
inline

◆ getCallEventManager()

CallEventManager & clang::ento::ProgramStateManager::getCallEventManager ( )
inline

◆ getConstraintManager()

ConstraintManager & clang::ento::ProgramStateManager::getConstraintManager ( )
inline

◆ getContext() [1/2]

ASTContext & clang::ento::ProgramStateManager::getContext ( )
inline

◆ getContext() [2/2]

const ASTContext & clang::ento::ProgramStateManager::getContext ( ) const
inline

Definition at line 549 of file ProgramState.h.

◆ getInitialState()

ProgramStateRef ProgramStateManager::getInitialState ( const LocationContext InitLoc)

◆ getOwningEngine()

ExprEngine & clang::ento::ProgramStateManager::getOwningEngine ( )
inline

◆ getPersistentState()

ProgramStateRef ProgramStateManager::getPersistentState ( ProgramState Impl)

◆ getPersistentStateWithGDM()

ProgramStateRef ProgramStateManager::getPersistentStateWithGDM ( ProgramStateRef  FromState,
ProgramStateRef  GDMState 
)

Definition at line 417 of file ProgramState.cpp.

References getPersistentState().

Referenced by clang::ento::ExprEngine::removeDead().

◆ getRegionManager() [1/2]

MemRegionManager & clang::ento::ProgramStateManager::getRegionManager ( )
inline

Definition at line 572 of file ProgramState.h.

Referenced by clang::ento::ProgramState::getRegion().

◆ getRegionManager() [2/2]

const MemRegionManager & clang::ento::ProgramStateManager::getRegionManager ( ) const
inline

Definition at line 575 of file ProgramState.h.

◆ getStoreManager()

StoreManager & clang::ento::ProgramStateManager::getStoreManager ( )
inline

◆ getSValBuilder() [1/2]

SValBuilder & clang::ento::ProgramStateManager::getSValBuilder ( )
inline

◆ getSValBuilder() [2/2]

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

Definition at line 559 of file ProgramState.h.

◆ getSymbolManager() [1/2]

SymbolManager & clang::ento::ProgramStateManager::getSymbolManager ( )
inline

Definition at line 563 of file ProgramState.h.

Referenced by clang::ento::ProgramState::getSymbolManager().

◆ getSymbolManager() [2/2]

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

Definition at line 566 of file ProgramState.h.

◆ haveEqualConstraints()

bool clang::ento::ProgramStateManager::haveEqualConstraints ( ProgramStateRef  S1,
ProgramStateRef  S2 
) const
inline

Definition at line 610 of file ProgramState.h.

Referenced by clang::ento::ConditionBRVisitor::VisitTrueTest().

◆ haveEqualEnvironments()

bool clang::ento::ProgramStateManager::haveEqualEnvironments ( ProgramStateRef  S1,
ProgramStateRef  S2 
) const
inline

Definition at line 614 of file ProgramState.h.

Referenced by clang::ento::ExprEngine::removeDead().

◆ haveEqualStores()

bool clang::ento::ProgramStateManager::haveEqualStores ( ProgramStateRef  S1,
ProgramStateRef  S2 
) const
inline

Definition at line 618 of file ProgramState.h.

Referenced by clang::ento::ExprEngine::removeDead().

◆ iterBindings()

void clang::ento::ProgramStateManager::iterBindings ( ProgramStateRef  state,
StoreManager::BindingsHandler F 
)
inline

Definition at line 602 of file ProgramState.h.

Referenced by GetAllocationSite(), and getAllVarBindingsForSymbol().

◆ remove() [1/2]

template<typename T >
ProgramStateRef clang::ento::ProgramStateManager::remove ( ProgramStateRef  st)
inline

Definition at line 675 of file ProgramState.h.

References removeGDM().

◆ remove() [2/2]

template<typename T >
ProgramStateRef clang::ento::ProgramStateManager::remove ( ProgramStateRef  st,
typename ProgramStateTrait< T >::key_type  K,
typename ProgramStateTrait< T >::context_type  C 
)
inline

Definition at line 666 of file ProgramState.h.

References addGDM(), clang::C, and clang::T.

Referenced by clang::ento::ProgramState::remove().

◆ removeDeadBindingsFromEnvironmentAndStore()

ProgramStateRef ProgramStateManager::removeDeadBindingsFromEnvironmentAndStore ( ProgramStateRef  St,
const StackFrameContext LCtx,
SymbolReaper SymReaper 
)

◆ removeGDM()

ProgramStateRef ProgramStateManager::removeGDM ( ProgramStateRef  state,
void *  Key 
)

Definition at line 564 of file ProgramState.cpp.

References getPersistentState().

Referenced by remove().

◆ set() [1/2]

template<typename T >
ProgramStateRef clang::ento::ProgramStateManager::set ( ProgramStateRef  st,
typename ProgramStateTrait< T >::data_type  D 
)
inline

Definition at line 642 of file ProgramState.h.

References addGDM().

Referenced by clang::ento::ProgramState::set().

◆ set() [2/2]

template<typename T >
ProgramStateRef clang::ento::ProgramStateManager::set ( ProgramStateRef  st,
typename ProgramStateTrait< T >::key_type  K,
typename ProgramStateTrait< T >::value_type  V,
typename ProgramStateTrait< T >::context_type  C 
)
inline

Definition at line 648 of file ProgramState.h.

References addGDM(), clang::C, clang::T, and V.

Friends And Related Function Documentation

◆ ProgramState

friend class ProgramState
friend

Definition at line 506 of file ProgramState.h.

Referenced by getPersistentState().

◆ ProgramStateRelease

void ProgramStateRelease ( const ProgramState state)
friend

Decrement the number of times this state is referenced.

Definition at line 35 of file ProgramState.cpp.


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