Lines Matching defs:ProgramState

1 //= ProgramState.cpp - Path-Sensitive "State" for tracking values --*- C++ -*--=
9 // This file implements ProgramState and ProgramStateManager.
13 #include "clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h"
30 void ProgramStateRetain(const ProgramState *state) {
31 ++const_cast<ProgramState*>(state)->refCount;
35 void ProgramStateRelease(const ProgramState *state) {
37 ProgramState *s = const_cast<ProgramState*>(state);
41 s->~ProgramState();
47 ProgramState::ProgramState(ProgramStateManager *mgr, const Environment& env,
57 ProgramState::ProgramState(const ProgramState &RHS)
63 ProgramState::~ProgramState() {
68 int64_t ProgramState::getID() const {
69 return getStateManager().Alloc.identifyKnownAlignedObject<ProgramState>(this);
101 ProgramState NewState = *state;
114 ProgramStateRef ProgramState::bindLoc(Loc LV,
129 ProgramState::bindDefaultInitial(SVal loc, SVal V,
139 ProgramState::bindDefaultZero(SVal loc, const LocationContext *LCtx) const {
150 ProgramStateRef ProgramState::invalidateRegions(
163 ProgramStateRef ProgramState::invalidateRegions(
197 ProgramStateRef ProgramState::killBinding(Loc LV) const {
211 SVal ProgramState::desugarReference(SVal Val) const {
222 SVal ProgramState::wrapSymbolicRegion(SVal Val) const {
233 ProgramState::enterStackFrame(const CallEvent &Call,
240 SVal ProgramState::getSelfSVal(const LocationContext *LCtx) const {
247 SVal ProgramState::getSValAsScalarOrLoc(const MemRegion *R) const {
263 SVal ProgramState::getSVal(Loc location, QualType T) const {
302 ProgramStateRef ProgramState::BindExpr(const Stmt *S,
311 ProgramState NewSt = *this;
317 ProgramState::assumeInBoundDual(DefinedOrUnknownSVal Idx,
361 ProgramStateRef ProgramState::assumeInBound(DefinedOrUnknownSVal Idx,
370 ConditionTruthVal ProgramState::isNonNull(SVal V) const {
377 ConditionTruthVal ProgramState::areEqual(SVal Lhs, SVal Rhs) const {
381 ConditionTruthVal ProgramState::isNull(SVal V) const {
396 ProgramState State(this,
407 ProgramState NewState(*FromState);
412 ProgramStateRef ProgramStateManager::getPersistentState(ProgramState &State) {
418 if (ProgramState *I = StateSet.FindNodeOrInsertPos(ID, InsertPos))
421 ProgramState *newState = nullptr;
427 newState = Alloc.Allocate<ProgramState>();
429 new (newState) ProgramState(State);
434 ProgramStateRef ProgramState::makeWithStore(const StoreRef &store) const {
435 ProgramState NewSt(*this);
440 ProgramStateRef ProgramState::cloneAsPosteriorlyOverconstrained() const {
441 ProgramState NewSt(*this);
446 void ProgramState::setStore(const StoreRef &newStore) {
455 SVal ProgramState::getLValue(const FieldDecl *D, SVal Base) const {
461 SVal ProgramState::getLValue(const IndirectFieldDecl *D, SVal Base) const {
479 void ProgramState::printJson(raw_ostream &Out, const LocationContext *LCtx,
506 void ProgramState::printDOT(raw_ostream &Out, const LocationContext *LCtx,
511 LLVM_DUMP_METHOD void ProgramState::dump() const {
515 AnalysisManager& ProgramState::getAnalysisManager() const {
523 void *const* ProgramState::FindGDM(void *K) const {
542 ProgramState::GenericDataMap M1 = St->getGDM();
543 ProgramState::GenericDataMap M2 = GDMFactory.add(M1, Key, Data);
548 ProgramState NewSt = *St;
554 ProgramState::GenericDataMap OldM = state->getGDM();
555 ProgramState::GenericDataMap NewM = GDMFactory.remove(OldM, Key);
560 ProgramState NewState = *state;
660 bool ProgramState::scanReachableSymbols(SVal val, SymbolVisitor& visitor) const {
665 bool ProgramState::scanReachableSymbols(