Lines Matching refs:State

126   ProgramStateRef State = C.getState();
127 if (State->isNull(C.getSVal(E)).isConstrainedTrue()) {
142 ProgramStateRef State = C.getState();
143 if (!State->isNull(msg.getArgSVal(Arg)).isConstrainedTrue())
811 ProgramStateRef checkPointerEscape(ProgramStateRef State,
844 ProgramStateRef State,
846 if (!State)
852 return State;
855 llvm::tie(StNonNil, StNil) = State->assume(*KnownCollection);
869 ProgramStateRef State,
871 if (!State)
876 return State;
886 ElementLoc = State->getLValue(ElemDecl, LCtx);
888 ElementLoc = State->getSVal(Element, LCtx).getAs<Loc>();
892 return State;
895 SVal Val = State->getSVal(*ElementLoc);
896 return State->assume(Val.castAs<DefinedOrUnknownSVal>(), true);
902 assumeCollectionNonEmpty(CheckerContext &C, ProgramStateRef State,
904 if (!State || !CollectionS)
905 return State;
907 const SymbolRef *CountS = State->get<ContainerCountMap>(CollectionS);
909 const bool *KnownNonEmpty = State->get<ContainerNonEmptyMap>(CollectionS);
911 return State->set<ContainerNonEmptyMap>(CollectionS, Assumption);
912 return (Assumption == *KnownNonEmpty) ? State : NULL;
917 SvalBuilder.evalBinOp(State, BO_GT,
926 return State;
929 return State->assume(*CountGreaterThanZero, Assumption);
933 assumeCollectionNonEmpty(CheckerContext &C, ProgramStateRef State,
936 if (!State)
940 State->getSVal(FCS->getCollection(), C.getLocationContext()).getAsSymbol();
941 return assumeCollectionNonEmpty(C, State, CollectionS, Assumption);
970 ProgramStateRef State = C.getState();
976 State = assumeCollectionNonEmpty(C, State, FCS, /*Assumption*/false);
980 State = checkCollectionNonNil(C, State, FCS);
981 State = checkElementNonNil(C, State, FCS);
982 State = assumeCollectionNonEmpty(C, State, FCS, /*Assumption*/true);
985 if (!State)
987 else if (State != C.getState())
988 C.addTransition(State);
1034 ProgramStateRef State = C.getState();
1037 State = State->set<ContainerCountMap>(ContainerS, CountS);
1039 if (const bool *NonEmpty = State->get<ContainerNonEmptyMap>(ContainerS)) {
1040 State = State->remove<ContainerNonEmptyMap>(ContainerS);
1041 State = assumeCollectionNonEmpty(C, State, ContainerS, *NonEmpty);
1044 C.addTransition(State);
1088 ObjCLoopChecker::checkPointerEscape(ProgramStateRef State,
1109 State = State->remove<ContainerCountMap>(Sym);
1110 State = State->remove<ContainerNonEmptyMap>(Sym);
1112 return State;
1117 ProgramStateRef State = C.getState();
1120 ContainerCountMapTy Tracked = State->get<ContainerCountMap>();
1125 State = State->remove<ContainerCountMap>(Sym);
1126 State = State->remove<ContainerNonEmptyMap>(Sym);
1130 C.addTransition(State);
1151 ProgramStateRef State,
1153 SVal Val = State->getSVal(NonNullExpr, C.getLocationContext());
1155 return State->assume(*DV, true);
1156 return State;
1162 ProgramStateRef State = C.getState();
1185 State = assumeExprIsNonNull(M.getOriginExpr(), State, C);
1197 State = assumeExprIsNonNull(M.getOriginExpr(), State, C);
1205 State = assumeExprIsNonNull(M.getOriginExpr(), State, C);
1209 C.addTransition(State);