Lines Matching refs:State

228   ProgramStateRef checkPointerEscape(ProgramStateRef State,
232 ProgramStateRef checkConstPointerEscape(ProgramStateRef State,
237 void printState(raw_ostream &Out, ProgramStateRef State,
302 ProgramStateRef State,
308 ProgramStateRef State) const;
311 ProgramStateRef State,
315 ProgramStateRef State,
319 ProgramStateRef State, SVal Target);
325 const ProgramStateRef &State) const;
331 MallocUpdateRefState(CheckerContext &C, const Expr *E, ProgramStateRef State,
337 ProgramStateRef State) const;
345 ProgramStateRef State,
352 ProgramStateRef State,
357 ProgramStateRef State);
380 ProgramStateRef State,
384 ProgramStateRef checkPointerEscapeAux(ProgramStateRef State,
735 const CallExpr *CE, CheckerContext &C, const ProgramStateRef &State) const { in performKernelMalloc()
792 SVal MaskedFlagsUC = C.getSValBuilder().evalBinOpNN(State, BO_And, in performKernelMalloc()
801 std::tie(TrueState, FalseState) = State->assume(MaskedFlags); in performKernelMalloc()
817 ProgramStateRef State = C.getState(); in evalMulForBufferSize() local
818 SVal TotalSize = SB.evalBinOp(State, BO_Mul, BlocksVal, BlockBytesVal, in evalMulForBufferSize()
831 ProgramStateRef State = C.getState(); in checkPostStmt() local
842 State = MallocMemAux(C, CE, CE->getArg(0), UndefinedVal(), State); in checkPostStmt()
844 State = ProcessZeroAllocation(C, CE, 0, State); in checkPostStmt()
847 performKernelMalloc(CE, C, State); in checkPostStmt()
849 State = MaybeState.getValue(); in checkPostStmt()
851 State = MallocMemAux(C, CE, CE->getArg(0), UndefinedVal(), State); in checkPostStmt()
857 performKernelMalloc(CE, C, State); in checkPostStmt()
859 State = MaybeState.getValue(); in checkPostStmt()
861 State = MallocMemAux(C, CE, CE->getArg(0), UndefinedVal(), State); in checkPostStmt()
865 State = MallocMemAux(C, CE, CE->getArg(0), UndefinedVal(), State); in checkPostStmt()
866 State = ProcessZeroAllocation(C, CE, 0, State); in checkPostStmt()
869 State = ReallocMemAux(C, CE, false, State); in checkPostStmt()
870 State = ProcessZeroAllocation(C, CE, 1, State); in checkPostStmt()
872 State = ReallocMemAux(C, CE, true, State); in checkPostStmt()
873 State = ProcessZeroAllocation(C, CE, 1, State); in checkPostStmt()
875 State = CallocMem(C, CE, State); in checkPostStmt()
876 State = ProcessZeroAllocation(C, CE, 0, State); in checkPostStmt()
877 State = ProcessZeroAllocation(C, CE, 1, State); in checkPostStmt()
879 State = FreeMemAux(C, CE, State, 0, false, ReleasedAllocatedMemory); in checkPostStmt()
882 State = MallocUpdateRefState(C, CE, State); in checkPostStmt()
884 State = MallocUpdateRefState(C, CE, State); in checkPostStmt()
888 State = MallocMemAux(C, CE, CE->getArg(0), UndefinedVal(), State, in checkPostStmt()
890 State = ProcessZeroAllocation(C, CE, 0, State); in checkPostStmt()
898 State = MallocMemAux(C, CE, CE->getArg(0), UndefinedVal(), State, in checkPostStmt()
900 State = ProcessZeroAllocation(C, CE, 0, State); in checkPostStmt()
903 State = MallocMemAux(C, CE, CE->getArg(0), UndefinedVal(), State, in checkPostStmt()
905 State = ProcessZeroAllocation(C, CE, 0, State); in checkPostStmt()
908 State = FreeMemAux(C, CE, State, 0, false, ReleasedAllocatedMemory); in checkPostStmt()
914 State = MallocMemAux(C, CE, UnknownVal(), UnknownVal(), State, in checkPostStmt()
917 State = FreeMemAux(C, CE, State, 0, false, ReleasedAllocatedMemory); in checkPostStmt()
923 State = MallocMemAux(C, CE, CE->getArg(0), zeroVal, State); in checkPostStmt()
924 State = ProcessZeroAllocation(C, CE, 0, State); in checkPostStmt()
928 State = MallocMemAux(C, CE, CE->getArg(1), UndefinedVal(), State); in checkPostStmt()
929 State = ProcessZeroAllocation(C, CE, 1, State); in checkPostStmt()
940 State = MallocMemAux(C, CE, TotalSize, Init, State); in checkPostStmt()
941 State = ProcessZeroAllocation(C, CE, 0, State); in checkPostStmt()
942 State = ProcessZeroAllocation(C, CE, 1, State); in checkPostStmt()
946 State = ReallocMemAux(C, CE, false, State, true); in checkPostStmt()
947 State = ProcessZeroAllocation(C, CE, 1, State); in checkPostStmt()
948 State = ProcessZeroAllocation(C, CE, 2, State); in checkPostStmt()
959 State = MallocMemReturnsAttr(C, CE, I, State); in checkPostStmt()
963 State = FreeMemAttr(C, CE, I, State); in checkPostStmt()
968 C.addTransition(State); in checkPostStmt()
974 ProgramStateRef State, Optional<SVal> RetVal) const { in ProcessZeroAllocation() argument
975 if (!State) in ProcessZeroAllocation()
990 return State; in ProcessZeroAllocation()
1000 return State; in ProcessZeroAllocation()
1009 State->assume(SvalBuilder.evalEQ(State, *DefArgVal, Zero)); in ProcessZeroAllocation()
1014 return State; in ProcessZeroAllocation()
1016 const RefState *RS = State->get<RegionState>(Sym); in ProcessZeroAllocation()
1022 return State; in ProcessZeroAllocation()
1083 ProgramStateRef State = C.getState(); in processNewAllocation() local
1088 State = MallocUpdateRefState(C, NE, State, NE->isArray() ? AF_CXXNewArray in processNewAllocation()
1090 State = addExtentSize(C, NE, State, Target); in processNewAllocation()
1091 State = ProcessZeroAllocation(C, NE, 0, State, Target); in processNewAllocation()
1092 C.addTransition(State); in processNewAllocation()
1112 ProgramStateRef State, in addExtentSize() argument
1114 if (!State) in addExtentSize()
1143 State, BO_Mul, ElementCount.castAs<NonLoc>(), in addExtentSize()
1147 State, Extent, SizeInBytes.castAs<DefinedOrUnknownSVal>()); in addExtentSize()
1148 State = State->assume(extentMatchesSize, true); in addExtentSize()
1150 return State; in addExtentSize()
1163 ProgramStateRef State = C.getState(); in checkPreStmt() local
1165 State = FreeMemAux(C, DE->getArgument(), DE, State, in checkPreStmt()
1168 C.addTransition(State); in checkPreStmt()
1207 ProgramStateRef State = FreeMemAux(C, Call.getArgExpr(0), in checkPostObjCMessage() local
1212 C.addTransition(State); in checkPostObjCMessage()
1218 ProgramStateRef State) const { in MallocMemReturnsAttr()
1219 if (!State) in MallocMemReturnsAttr()
1228 State); in MallocMemReturnsAttr()
1230 return MallocMemAux(C, CE, UnknownVal(), UndefinedVal(), State); in MallocMemReturnsAttr()
1236 ProgramStateRef State, in MallocMemAux() argument
1238 if (!State) in MallocMemAux()
1241 return MallocMemAux(C, CE, C.getSVal(SizeEx), Init, State, Family); in MallocMemAux()
1247 ProgramStateRef State, in MallocMemAux() argument
1249 if (!State) in MallocMemAux()
1264 State = State->BindExpr(CE, C.getLocationContext(), RetVal); in MallocMemAux()
1267 State = State->bindDefaultInitial(RetVal, Init, LCtx); in MallocMemAux()
1279 svalBuilder.evalEQ(State, Extent, *DefinedSize); in MallocMemAux()
1281 State = State->assume(extentMatchesSize, true); in MallocMemAux()
1282 assert(State); in MallocMemAux()
1285 return MallocUpdateRefState(C, CE, State, Family); in MallocMemAux()
1290 ProgramStateRef State, in MallocUpdateRefState() argument
1293 if (!State) in MallocUpdateRefState()
1310 return State->set<RegionState>(Sym, RefState::getAllocated(Family, E)); in MallocUpdateRefState()
1316 ProgramStateRef State) const { in FreeMemAttr()
1317 if (!State) in FreeMemAttr()
1327 C, CE, State, Arg.getASTIndex(), in FreeMemAttr()
1330 State = StateI; in FreeMemAttr()
1332 return State; in FreeMemAttr()
1337 ProgramStateRef State, in FreeMemAux() argument
1342 if (!State) in FreeMemAux()
1348 return FreeMemAux(C, CE->getArg(Num), CE, State, Hold, in FreeMemAux()
1354 static bool didPreviousFreeFail(ProgramStateRef State, in didPreviousFreeFail() argument
1356 const SymbolRef *Ret = State->get<FreeReturnValue>(Sym); in didPreviousFreeFail()
1359 ConstraintManager &CMgr = State->getConstraintManager(); in didPreviousFreeFail()
1360 ConditionTruthVal FreeFailed = CMgr.isNull(State, *Ret); in didPreviousFreeFail()
1483 ProgramStateRef State, in FreeMemAux() argument
1488 if (!State) in FreeMemAux()
1502 std::tie(notNullState, nullState) = State->assume(location); in FreeMemAux()
1556 const RefState *RsBase = State->get<RegionState>(SymBase); in FreeMemAux()
1569 !didPreviousFreeFail(State, SymBase, PreviousRetStatusSymbol)) { in FreeMemAux()
1611 State = State->remove<FreeReturnValue>(SymBase); in FreeMemAux()
1620 State = State->set<FreeReturnValue>(SymBase, RetStatusSymbol); in FreeMemAux()
1628 return State->set<RegionState>(SymBase, in FreeMemAux()
1632 return State->set<RegionState>(SymBase, in FreeMemAux()
2122 ProgramStateRef State, in ReallocMemAux() argument
2124 if (!State) in ReallocMemAux()
2141 svalBuilder.evalEQ(State, arg0Val, svalBuilder.makeNull()); in ReallocMemAux()
2155 svalBuilder.evalEQ(State, TotalSize.castAs<DefinedOrUnknownSVal>(), in ReallocMemAux()
2159 std::tie(StatePtrIsNull, StatePtrNotNull) = State->assume(PtrEQ); in ReallocMemAux()
2161 std::tie(StateSizeIsZero, StateSizeNotZero) = State->assume(SizeZero); in ReallocMemAux()
2176 return State; in ReallocMemAux()
2201 FreeMemAux(C, CE, State, 0, false, ReleasedAllocated)) { in ReallocMemAux()
2226 ProgramStateRef State) { in CallocMem() argument
2227 if (!State) in CallocMem()
2237 return MallocMemAux(C, CE, TotalSize, zeroVal, State); in CallocMem()
2250 ProgramStateRef State = N->getState(); in getAllocationSite() local
2251 if (!State->get<RegionState>(Sym)) in getAllocationSite()
2258 SVal Val = State->getSVal(MR); in getAllocationSite()
2472 ProgramStateRef State = C.getState(); in checkEscapeOnReturn() local
2621 ProgramStateRef State, in mayFreeAnyEscapedMemoryOrIsModeledExplicitly() argument
2689 ASTContext &ASTC = State->getStateManager().getContext(); in mayFreeAnyEscapedMemoryOrIsModeledExplicitly()
2794 ProgramStateRef MallocChecker::checkPointerEscape(ProgramStateRef State, in checkPointerEscape() argument
2798 return checkPointerEscapeAux(State, Escaped, Call, Kind, &retTrue); in checkPointerEscape()
2801 ProgramStateRef MallocChecker::checkConstPointerEscape(ProgramStateRef State, in checkConstPointerEscape() argument
2805 return checkPointerEscapeAux(State, Escaped, Call, Kind, in checkConstPointerEscape()
2809 ProgramStateRef MallocChecker::checkPointerEscapeAux(ProgramStateRef State, in checkPointerEscapeAux() argument
2818 !mayFreeAnyEscapedMemoryOrIsModeledExplicitly(Call, State, in checkPointerEscapeAux()
2821 return State; in checkPointerEscapeAux()
2832 if (const RefState *RS = State->get<RegionState>(sym)) { in checkPointerEscapeAux()
2835 State = State->remove<RegionState>(sym); in checkPointerEscapeAux()
2836 State = State->set<RegionState>(sym, RefState::getEscaped(RS)); in checkPointerEscapeAux()
2840 return State; in checkPointerEscapeAux()
3052 void MallocChecker::printState(raw_ostream &Out, ProgramStateRef State, in printState() argument
3055 RegionStateTy RS = State->get<RegionState>(); in printState()
3060 const RefState *RefS = State->get<RegionState>(I.getKey()); in printState()
3081 markReleased(ProgramStateRef State, SymbolRef Sym, const Expr *Origin) { in markReleased() argument
3083 return State->set<RegionState>(Sym, RefState::getReleased(Family, Origin)); in markReleased()