Lines Matching refs:State

55   checkRegionChanges(ProgramStateRef State,
60 void printState(raw_ostream &Out, ProgramStateRef State, const char *NL,
62 void checkLiveSymbols(ProgramStateRef State, SymbolReaper &SR) const;
78 bool handleSwap(ProgramStateRef State, SVal First, SVal Second,
81 retrieveOrConjureInnerPtrVal(ProgramStateRef State,
148 bool isNullSmartPtr(const ProgramStateRef State, const MemRegion *ThisRegion) { in isNullSmartPtr() argument
149 const auto *InnerPointVal = State->get<TrackedRegionMap>(ThisRegion); in isNullSmartPtr()
151 !State->assume(InnerPointVal->castAs<DefinedOrUnknownSVal>(), true); in isNullSmartPtr()
171 static ProgramStateRef updateSwappedRegion(ProgramStateRef State, in updateSwappedRegion() argument
175 State = State->set<TrackedRegionMap>(Region, *RegionInnerPointerVal); in updateSwappedRegion()
177 State = State->remove<TrackedRegionMap>(Region); in updateSwappedRegion()
179 return State; in updateSwappedRegion()
278 ProgramStateRef State = C.getState(); in evalCall() local
295 return handleSwap(State, Call.getArgSVal(0), Call.getArgSVal(1), C); in evalCall()
311 State = State->set<TrackedRegionMap>(ThisRegion, PtrVal); in evalCall()
312 State = State->assume(PtrVal, true); in evalCall()
330 auto &Engine = State->getStateManager().getOwningEngine(); in evalCall()
331 State = Engine.updateObjectsUnderConstruction( in evalCall()
332 *ThisRegionOpt, nullptr, State, C.getLocationContext(), in evalCall()
337 C.addTransition(State); in evalCall()
356 if (!move::isMovedFrom(State, ThisR)) { in evalCall()
363 C.addTransition(State->BindExpr( in evalCall()
389 State = State->set<TrackedRegionMap>(ThisRegion, NullVal); in evalCall()
392 State, C.getNoteTag([ThisRegion](PathSensitiveBugReport &BR, in evalCall()
406 State = State->set<TrackedRegionMap>(ThisRegion, ArgVal); in evalCall()
408 C.addTransition(State, C.getNoteTag([ThisRegion, TrackingExpr, in evalCall()
438 ProgramStateRef State, const MemRegion *ThisRegion, const Expr *E, in retrieveOrConjureInnerPtrVal() argument
440 const auto *Ptr = State->get<TrackedRegionMap>(ThisRegion); in retrieveOrConjureInnerPtrVal()
442 return {*Ptr, State}; in retrieveOrConjureInnerPtrVal()
445 State = State->set<TrackedRegionMap>(ThisRegion, Val); in retrieveOrConjureInnerPtrVal()
446 return {Val, State}; in retrieveOrConjureInnerPtrVal()
469 auto makeSValFor = [&C, this](ProgramStateRef State, const Expr *E, in handleComparisionOp()
472 return {S, State}; in handleComparisionOp()
478 return retrieveOrConjureInnerPtrVal(State, Reg, E, Type, C); in handleComparisionOp()
489 ProgramStateRef State = C.getState(); in handleComparisionOp() local
492 std::tie(FirstPtrVal, State) = makeSValFor(State, FirstExpr, First); in handleComparisionOp()
493 std::tie(SecondPtrVal, State) = makeSValFor(State, SecondExpr, Second); in handleComparisionOp()
496 auto RetVal = Bldr.evalBinOp(State, BOK, FirstPtrVal, SecondPtrVal, in handleComparisionOp()
502 State->assume(*RetVal.getAs<DefinedOrUnknownSVal>()); in handleComparisionOp()
510 C.addTransition(State->BindExpr(ResultExpr, LCtx, RetVal)); in handleComparisionOp()
525 ProgramStateRef State = C.getState(); in handleOstreamOperator() local
530 State = in handleOstreamOperator()
531 State->invalidateRegions({StreamThisRegion}, Call.getOriginExpr(), in handleOstreamOperator()
533 State = in handleOstreamOperator()
534 State->BindExpr(Call.getOriginExpr(), C.getLocationContext(), StreamVal); in handleOstreamOperator()
535 C.addTransition(State); in handleOstreamOperator()
541 ProgramStateRef State = C.getState(); in checkDeadSymbols() local
543 TrackedRegionMapTy TrackedRegions = State->get<TrackedRegionMap>(); in checkDeadSymbols()
549 State = State->remove<TrackedRegionMap>(Region); in checkDeadSymbols()
551 C.addTransition(State); in checkDeadSymbols()
554 void SmartPtrModeling::printState(raw_ostream &Out, ProgramStateRef State, in printState() argument
556 TrackedRegionMapTy RS = State->get<TrackedRegionMap>(); in printState()
562 if (smartptr::isNullSmartPtr(State, I.first)) in printState()
572 ProgramStateRef State, const InvalidatedSymbols *Invalidated, in checkRegionChanges() argument
576 TrackedRegionMapTy RegionMap = State->get<TrackedRegionMap>(); in checkRegionChanges()
578 State->get_context<TrackedRegionMap>(); in checkRegionChanges()
582 return State->set<TrackedRegionMap>(RegionMap); in checkRegionChanges()
585 void SmartPtrModeling::checkLiveSymbols(ProgramStateRef State, in checkLiveSymbols() argument
588 TrackedRegionMapTy TrackedRegions = State->get<TrackedRegionMap>(); in checkLiveSymbols()
599 ProgramStateRef State = C.getState(); in handleReset() local
610 State = State->set<TrackedRegionMap>(ThisRegion, Call.getArgSVal(0)); in handleReset()
613 State, C.getNoteTag([ThisRegion, TrackingExpr](PathSensitiveBugReport &BR, in handleReset()
629 ProgramStateRef State = C.getState(); in handleRelease() local
638 const auto *InnerPointVal = State->get<TrackedRegionMap>(ThisRegion); in handleRelease()
641 State = State->BindExpr(Call.getOriginExpr(), C.getLocationContext(), in handleRelease()
647 State = State->set<TrackedRegionMap>(ThisRegion, ValueToUpdate); in handleRelease()
649 C.addTransition(State, C.getNoteTag([ThisRegion](PathSensitiveBugReport &BR, in handleRelease()
670 auto State = C.getState(); in handleSwapMethod() local
671 handleSwap(State, IC->getCXXThisVal(), Call.getArgSVal(0), C); in handleSwapMethod()
674 bool SmartPtrModeling::handleSwap(ProgramStateRef State, SVal First, in handleSwap() argument
683 const auto *FirstInnerPtrVal = State->get<TrackedRegionMap>(FirstThisRegion); in handleSwap()
685 State->get<TrackedRegionMap>(SecondThisRegion); in handleSwap()
687 State = updateSwappedRegion(State, FirstThisRegion, SecondInnerPtrVal); in handleSwap()
688 State = updateSwappedRegion(State, SecondThisRegion, FirstInnerPtrVal); in handleSwap()
690 C.addTransition(State, C.getNoteTag([FirstThisRegion, SecondThisRegion]( in handleSwap()
713 ProgramStateRef State = C.getState(); in handleGet() local
723 std::tie(InnerPointerVal, State) = retrieveOrConjureInnerPtrVal( in handleGet()
724 State, ThisRegion, Call.getOriginExpr(), Call.getResultType(), C); in handleGet()
725 State = State->BindExpr(Call.getOriginExpr(), C.getLocationContext(), in handleGet()
728 C.addTransition(State); in handleGet()
733 ProgramStateRef State = C.getState(); in handleAssignOp() local
753 State = State->set<TrackedRegionMap>(ThisRegion, NullVal); in handleAssignOp()
754 C.addTransition(State, C.getNoteTag([ThisRegion](PathSensitiveBugReport &BR, in handleAssignOp()
781 ProgramStateRef State = C.getState(); in updateMovedSmartPointers() local
783 const auto *OtherInnerPtr = State->get<TrackedRegionMap>(OtherSmartPtrRegion); in updateMovedSmartPointers()
785 State = State->set<TrackedRegionMap>(ThisRegion, *OtherInnerPtr); in updateMovedSmartPointers()
788 State = State->set<TrackedRegionMap>(OtherSmartPtrRegion, NullVal); in updateMovedSmartPointers()
792 State, in updateMovedSmartPointers()
815 State = State->remove<TrackedRegionMap>(ThisRegion); in updateMovedSmartPointers()
816 State = State->set<TrackedRegionMap>(OtherSmartPtrRegion, NullVal); in updateMovedSmartPointers()
817 C.addTransition(State, C.getNoteTag([OtherSmartPtrRegion, in updateMovedSmartPointers()
836 ProgramStateRef State = C.getState(); in handleBoolConversion() local
844 if (const auto *InnerValPtr = State->get<TrackedRegionMap>(ThisRegion)) { in handleBoolConversion()
856 State = State->set<TrackedRegionMap>(ThisRegion, InnerPointerVal); in handleBoolConversion()
859 if (State->isNull(InnerPointerVal).isConstrainedTrue()) { in handleBoolConversion()
860 State = State->BindExpr(CallExpr, C.getLocationContext(), in handleBoolConversion()
863 C.addTransition(State); in handleBoolConversion()
865 } else if (State->isNonNull(InnerPointerVal).isConstrainedTrue()) { in handleBoolConversion()
866 State = State->BindExpr(CallExpr, C.getLocationContext(), in handleBoolConversion()
869 C.addTransition(State); in handleBoolConversion()
871 } else if (move::isMovedFrom(State, ThisRegion)) { in handleBoolConversion()
873 State->BindExpr(CallExpr, C.getLocationContext(), in handleBoolConversion()
879 State->assume(InnerPointerVal.castAs<DefinedOrUnknownSVal>()); in handleBoolConversion()