Lines Matching defs:ProgramState

1 //= ProgramState.cpp - Path-Sensitive "State" for tracking values --*- C++ -*--=
10 // This file implements ProgramState and ProgramStateManager.
14 #include "clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h"
28 void ProgramStateRetain(const ProgramState *state) {
29 ++const_cast<ProgramState*>(state)->refCount;
33 void ProgramStateRelease(const ProgramState *state) {
35 ProgramState *s = const_cast<ProgramState*>(state);
39 s->~ProgramState();
45 ProgramState::ProgramState(ProgramStateManager *mgr, const Environment& env,
55 ProgramState::ProgramState(const ProgramState &RHS)
65 ProgramState::~ProgramState() {
100 ProgramState NewState = *state;
114 ProgramStateRef ProgramState::bindLoc(Loc LV, SVal V, bool notifyChanges) const {
125 ProgramStateRef ProgramState::bindDefault(SVal loc, SVal V) const {
139 ProgramState::invalidateRegions(RegionList Regions,
156 ProgramState::invalidateRegions(ValueList Values,
169 ProgramState::invalidateRegionsImpl(ValueList Values,
215 ProgramStateRef ProgramState::killBinding(Loc LV) const {
229 ProgramState::enterStackFrame(const CallEvent &Call,
236 SVal ProgramState::getSValAsScalarOrLoc(const MemRegion *R) const {
252 SVal ProgramState::getSVal(Loc location, QualType T) const {
291 ProgramStateRef ProgramState::BindExpr(const Stmt *S,
300 ProgramState NewSt = *this;
305 ProgramStateRef ProgramState::assumeInBound(DefinedOrUnknownSVal Idx,
351 ConditionTruthVal ProgramState::isNull(SVal V) const {
366 ProgramState State(this,
377 ProgramState NewState(*FromState);
382 ProgramStateRef ProgramStateManager::getPersistentState(ProgramState &State) {
388 if (ProgramState *I = StateSet.FindNodeOrInsertPos(ID, InsertPos))
391 ProgramState *newState = 0;
397 newState = (ProgramState*) Alloc.Allocate<ProgramState>();
399 new (newState) ProgramState(State);
404 ProgramStateRef ProgramState::makeWithStore(const StoreRef &store) const {
405 ProgramState NewSt(*this);
410 void ProgramState::setStore(const StoreRef &newStore) {
423 void ProgramState::print(raw_ostream &Out,
439 void ProgramState::printDOT(raw_ostream &Out) const {
443 void ProgramState::dump() const {
447 void ProgramState::printTaint(raw_ostream &Out,
459 void ProgramState::dumpTaint() const {
467 void *const* ProgramState::FindGDM(void *K) const {
486 ProgramState::GenericDataMap M1 = St->getGDM();
487 ProgramState::GenericDataMap M2 = GDMFactory.add(M1, Key, Data);
492 ProgramState NewSt = *St;
498 ProgramState::GenericDataMap OldM = state->getGDM();
499 ProgramState::GenericDataMap NewM = GDMFactory.remove(OldM, Key);
504 ProgramState NewState = *state;
626 bool ProgramState::scanReachableSymbols(SVal val, SymbolVisitor& visitor) const {
631 bool ProgramState::scanReachableSymbols(const SVal *I, const SVal *E,
641 bool ProgramState::scanReachableSymbols(const MemRegion * const *I,
652 ProgramStateRef ProgramState::addTaint(const Stmt *S,
669 ProgramStateRef ProgramState::addTaint(const MemRegion *R,
676 ProgramStateRef ProgramState::addTaint(SymbolRef Sym,
688 bool ProgramState::isTainted(const Stmt *S, const LocationContext *LCtx,
697 bool ProgramState::isTainted(SVal V, TaintTagType Kind) const {
705 bool ProgramState::isTainted(const MemRegion *Reg, TaintTagType K) const {
723 bool ProgramState::isTainted(SymbolRef Sym, TaintTagType Kind) const {
762 DynamicTypeInfo ProgramState::getDynamicTypeInfo(const MemRegion *Reg) const {
782 ProgramStateRef ProgramState::setDynamicTypeInfo(const MemRegion *Reg,