clang  7.0.0svn
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, SubEngine *subeng)
 
 ~ProgramStateManager ()
 
ProgramStateRef getInitialState (const LocationContext *InitLoc)
 
ASTContextgetContext ()
 
const ASTContextgetContext () const
 
BasicValueFactorygetBasicVals ()
 
SValBuildergetSValBuilder ()
 
SymbolManagergetSymbolManager ()
 
const SymbolManagergetSymbolManager () const
 
llvm::BumpPtrAllocator & getAllocator ()
 
MemRegionManagergetRegionManager ()
 
const MemRegionManagergetRegionManager () const
 
CallEventManagergetCallEventManager ()
 
StoreManagergetStoreManager ()
 
ConstraintManagergetConstraintManager ()
 
SubEnginegetOwningEngine ()
 
ProgramStateRef removeDeadBindings (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 haveEqualEnvironments (ProgramStateRef S1, ProgramStateRef S2)
 
bool haveEqualStores (ProgramStateRef S1, ProgramStateRef S2)
 
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 ()
 
void EndPath (ProgramStateRef St)
 

Friends

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

Detailed Description

Definition at line 479 of file ProgramState.h.

Constructor & Destructor Documentation

◆ ProgramStateManager()

ProgramStateManager::ProgramStateManager ( ASTContext Ctx,
StoreManagerCreator  CreateStoreManager,
ConstraintManagerCreator  CreateConstraintManager,
llvm::BumpPtrAllocator &  alloc,
SubEngine subeng 
)

Definition at line 71 of file ProgramState.cpp.

◆ ~ProgramStateManager()

ProgramStateManager::~ProgramStateManager ( )

Definition at line 84 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 624 of file ProgramState.h.

References clang::T.

◆ addGDM()

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

Definition at line 520 of file ProgramState.cpp.

References getPersistentState().

◆ ArrayToPointer()

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

Definition at line 562 of file ProgramState.h.

References clang::CodeGen::state.

Referenced by clang::ento::SValBuilder::evalCast().

◆ EndPath()

void clang::ento::ProgramStateManager::EndPath ( ProgramStateRef  St)
inline

Definition at line 658 of file ProgramState.h.

◆ FindGDMContext()

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

Definition at line 507 of file ProgramState.cpp.

◆ get_context()

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

Definition at line 650 of file ProgramState.h.

◆ getAllocator()

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

Definition at line 541 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

Definition at line 523 of file ProgramState.h.

Referenced by clang::ento::StoreManager::castRegion().

◆ getContext() [2/2]

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

Definition at line 524 of file ProgramState.h.

◆ getInitialState()

ProgramStateRef ProgramStateManager::getInitialState ( const LocationContext InitLoc)

◆ getOwningEngine()

SubEngine* clang::ento::ProgramStateManager::getOwningEngine ( )
inline

◆ getPersistentState()

ProgramStateRef ProgramStateManager::getPersistentState ( ProgramState Impl)

◆ getPersistentStateWithGDM()

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

Definition at line 403 of file ProgramState.cpp.

References getPersistentState().

◆ getRegionManager() [1/2]

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

Definition at line 543 of file ProgramState.h.

◆ getRegionManager() [2/2]

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

Definition at line 546 of file ProgramState.h.

◆ getStoreManager()

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

◆ getSValBuilder()

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

◆ getSymbolManager() [1/2]

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

Definition at line 534 of file ProgramState.h.

◆ getSymbolManager() [2/2]

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

Definition at line 537 of file ProgramState.h.

◆ haveEqualEnvironments()

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

Definition at line 580 of file ProgramState.h.

◆ haveEqualStores()

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

Definition at line 584 of file ProgramState.h.

◆ iterBindings()

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

Definition at line 572 of file ProgramState.h.

Referenced by GetAllocationSite().

◆ remove() [1/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 632 of file ProgramState.h.

References AttributeLangSupport::C, and clang::T.

◆ remove() [2/2]

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

Definition at line 641 of file ProgramState.h.

◆ removeDeadBindings()

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

◆ removeGDM()

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

Definition at line 532 of file ProgramState.cpp.

References getPersistentState(), and clang::CodeGen::state.

◆ set() [1/2]

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

Definition at line 608 of file ProgramState.h.

◆ 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 614 of file ProgramState.h.

References AttributeLangSupport::C, and clang::T.

Friends And Related Function Documentation

◆ ProgramState

friend class ProgramState
friend

Definition at line 480 of file ProgramState.h.

◆ ProgramStateRelease

void ProgramStateRelease ( const ProgramState state)
friend

Decrement the number of times this state is referenced.

Definition at line 34 of file ProgramState.cpp.


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