Lines Matching refs:State

108   } State;  member
111 switch (State) { in getKindStr()
138 : LastOperation(L), State(S), ErrorState(ES), in StreamState()
142 assert((State == Opened || ErrorState.isNoError()) && in StreamState()
146 bool isOpened() const { return State == Opened; } in isOpened()
147 bool isClosed() const { return State == Closed; } in isClosed()
148 bool isOpenFailed() const { return State == OpenFailed; } in isOpenFailed()
153 return LastOperation == X.LastOperation && State == X.State && in operator ==()
175 ID.AddInteger(State); in Profile()
236 ProgramStateRef bindAndAssumeTrue(ProgramStateRef State, CheckerContext &C, in bindAndAssumeTrue() argument
239 State = State->BindExpr(CE, C.getLocationContext(), RetVal); in bindAndAssumeTrue()
240 State = State->assume(RetVal, true); in bindAndAssumeTrue()
241 assert(State && "Assumption on new value should not fail."); in bindAndAssumeTrue()
242 return State; in bindAndAssumeTrue()
245 ProgramStateRef bindInt(uint64_t Value, ProgramStateRef State, in bindInt() argument
247 State = State->BindExpr(CE, C.getLocationContext(), in bindInt()
249 return State; in bindInt()
274 ProgramStateRef checkPointerEscape(ProgramStateRef State,
538 ProgramStateRef State) const;
544 ProgramStateRef State) const;
554 ProgramStateRef State) const;
561 ProgramStateRef State) const;
568 ProgramStateRef State) const;
649 ProgramStateRef State) { in Init()
653 SS = State->get<StreamMap>(StreamSym); in Init()
672 ProgramStateRef setStreamState(ProgramStateRef State, in setStreamState()
675 return State->set<StreamMap>(StreamSym, NewSS); in setStreamState()
678 ProgramStateRef makeAndBindRetVal(ProgramStateRef State, CheckerContext &C) { in makeAndBindRetVal()
680 return State->BindExpr(CE, C.getLocationContext(), RetVal); in makeAndBindRetVal()
683 ProgramStateRef bindReturnValue(ProgramStateRef State, CheckerContext &C, in bindReturnValue()
685 return State->BindExpr(CE, C.getLocationContext(), in bindReturnValue()
689 ProgramStateRef bindReturnValue(ProgramStateRef State, CheckerContext &C, in bindReturnValue()
691 return State->BindExpr(CE, C.getLocationContext(), Val); in bindReturnValue()
694 ProgramStateRef bindNullReturnValue(ProgramStateRef State, in bindNullReturnValue()
696 return State->BindExpr(CE, C.getLocationContext(), in bindNullReturnValue()
700 ProgramStateRef assumeBinOpNN(ProgramStateRef State, in assumeBinOpNN()
703 auto Cond = SVB.evalBinOpNN(State, Op, LHS, RHS, SVB.getConditionType()) in assumeBinOpNN()
707 return State->assume(*Cond, true); in assumeBinOpNN()
711 makeRetValAndAssumeDual(ProgramStateRef State, CheckerContext &C) { in makeRetValAndAssumeDual()
713 State = State->BindExpr(CE, C.getLocationContext(), RetVal); in makeRetValAndAssumeDual()
714 return C.getConstraintManager().assumeDual(State, RetVal); in makeRetValAndAssumeDual()
791 ProgramStateRef State = N->getState(); in getAcquisitionSite() local
794 if (!State->get<StreamMap>(StreamSym)) in getAcquisitionSite()
799 State = N->getState(); in getAcquisitionSite()
800 if (!State->get<StreamMap>(StreamSym)) in getAcquisitionSite()
809 static std::optional<int64_t> getKnownValue(ProgramStateRef State, SVal V) { in getKnownValue() argument
810 SValBuilder &SVB = State->getStateManager().getSValBuilder(); in getKnownValue()
811 if (const llvm::APSInt *Int = SVB.getKnownValue(State, V)) in getKnownValue()
820 escapeByStartIndexAndCount(ProgramStateRef State, const CallEvent &Call, in escapeByStartIndexAndCount() argument
829 const ASTContext &Ctx = State->getStateManager().getContext(); in escapeByStartIndexAndCount()
830 SValBuilder &SVB = State->getStateManager().getSValBuilder(); in escapeByStartIndexAndCount()
844 return State->invalidateRegions( in escapeByStartIndexAndCount()
850 static ProgramStateRef escapeArgs(ProgramStateRef State, CheckerContext &C, in escapeArgs() argument
855 State = State->invalidateRegions(EscapingVals, Call.getOriginExpr(), in escapeArgs()
859 return State; in escapeArgs()
892 ProgramStateRef State = C.getState(); in evalFopen() local
901 State = State->BindExpr(CE, C.getLocationContext(), RetVal); in evalFopen()
907 C.getConstraintManager().assumeDual(State, RetVal); in evalFopen()
922 ProgramStateRef State = C.getState(); in preFreopen() local
923 State = ensureStreamNonNull(getStreamArg(Desc, Call), in preFreopen()
924 Call.getArgExpr(Desc->StreamArgNo), C, State); in preFreopen()
925 if (!State) in preFreopen()
928 C.addTransition(State); in preFreopen()
934 ProgramStateRef State = C.getState(); in evalFreopen() local
952 if (!State->get<StreamMap>(StreamSym)) in evalFreopen()
960 State->BindExpr(CE, C.getLocationContext(), *StreamVal); in evalFreopen()
964 State->BindExpr(CE, C.getLocationContext(), in evalFreopen()
979 ProgramStateRef State = C.getState(); in evalFclose() local
981 if (!E.Init(Desc, Call, C, State)) in evalFclose()
987 State = E.setStreamState(State, StreamState::getClosed(Desc)); in evalFclose()
990 C.addTransition(E.bindReturnValue(State, C, 0)); in evalFclose()
991 C.addTransition(E.bindReturnValue(State, C, *EofVal)); in evalFclose()
996 ProgramStateRef State = C.getState(); in preRead() local
998 State = ensureStreamNonNull(StreamVal, Call.getArgExpr(Desc->StreamArgNo), C, in preRead()
999 State); in preRead()
1000 if (!State) in preRead()
1002 State = ensureStreamOpened(StreamVal, C, State); in preRead()
1003 if (!State) in preRead()
1005 State = ensureNoFilePositionIndeterminate(StreamVal, C, State); in preRead()
1006 if (!State) in preRead()
1010 if (Sym && State->get<StreamMap>(Sym)) { in preRead()
1011 const StreamState *SS = State->get<StreamMap>(Sym); in preRead()
1013 reportFEofWarning(Sym, C, State); in preRead()
1015 C.addTransition(State); in preRead()
1021 ProgramStateRef State = C.getState(); in preWrite() local
1023 State = ensureStreamNonNull(StreamVal, Call.getArgExpr(Desc->StreamArgNo), C, in preWrite()
1024 State); in preWrite()
1025 if (!State) in preWrite()
1027 State = ensureStreamOpened(StreamVal, C, State); in preWrite()
1028 if (!State) in preWrite()
1030 State = ensureNoFilePositionIndeterminate(StreamVal, C, State); in preWrite()
1031 if (!State) in preWrite()
1034 C.addTransition(State); in preWrite()
1069 tryToInvalidateFReadBufferByElements(ProgramStateRef State, CheckerContext &C, in tryToInvalidateFReadBufferByElements() argument
1085 std::optional<int64_t> CountVal = getKnownValue(State, NMembVal); in tryToInvalidateFReadBufferByElements()
1086 std::optional<int64_t> Size = getKnownValue(State, SizeVal); in tryToInvalidateFReadBufferByElements()
1088 getKnownValue(State, StartElementIndex.value_or(UnknownVal())); in tryToInvalidateFReadBufferByElements()
1102 return escapeByStartIndexAndCount(State, Call, C.blockCount(), Buffer, in tryToInvalidateFReadBufferByElements()
1113 ProgramStateRef State = C.getState(); in evalFreadFwrite() local
1115 if (!E.Init(Desc, Call, C, State)) in evalFreadFwrite()
1130 if (State->isNull(*SizeVal).isConstrainedTrue() || in evalFreadFwrite()
1131 State->isNull(*NMembVal).isConstrainedTrue()) { in evalFreadFwrite()
1134 C.addTransition(E.bindReturnValue(State, C, 0)); in evalFreadFwrite()
1144 State, C, Call, *SizeVal, *NMembVal); in evalFreadFwrite()
1145 State = in evalFreadFwrite()
1146 InvalidatedState ? InvalidatedState : escapeArgs(State, C, Call, {0}); in evalFreadFwrite()
1153 State->BindExpr(E.CE, C.getLocationContext(), *NMembVal); in evalFreadFwrite()
1166 State->BindExpr(E.CE, C.getLocationContext(), RetVal); in evalFreadFwrite()
1188 ProgramStateRef State = C.getState(); in evalFgetx() local
1190 if (!E.Init(Desc, Call, C, State)) in evalFgetx()
1196 State = escapeArgs(State, C, Call, {0}); in evalFgetx()
1201 State->BindExpr(E.CE, C.getLocationContext(), RetVal); in evalFgetx()
1219 State->BindExpr(E.CE, C.getLocationContext(), *GetBuf); in evalFgetx()
1229 StateFailed = E.bindReturnValue(State, C, *EofVal); in evalFgetx()
1231 StateFailed = E.bindNullReturnValue(State, C); in evalFgetx()
1247 ProgramStateRef State = C.getState(); in evalFputx() local
1249 if (!E.Init(Desc, Call, C, State)) in evalFputx()
1258 State->BindExpr(E.CE, C.getLocationContext(), *PutVal); in evalFputx()
1266 State->BindExpr(E.CE, C.getLocationContext(), RetVal); in evalFputx()
1281 ProgramStateRef StateFailed = E.bindReturnValue(State, C, *EofVal); in evalFputx()
1293 ProgramStateRef State = C.getState(); in evalFprintf() local
1295 if (!E.Init(Desc, Call, C, State)) in evalFprintf()
1299 State = State->BindExpr(E.CE, C.getLocationContext(), RetVal); in evalFprintf()
1302 .evalBinOp(State, BO_GE, RetVal, E.SVB.makeZeroVal(E.ACtx.IntTy), in evalFprintf()
1308 std::tie(StateNotFailed, StateFailed) = State->assume(*Cond); in evalFprintf()
1329 ProgramStateRef State = C.getState(); in evalFscanf() local
1331 if (!E.Init(Desc, Call, C, State)) in evalFscanf()
1345 State->BindExpr(E.CE, C.getLocationContext(), RetVal); in evalFscanf()
1369 ProgramStateRef StateFailed = E.bindReturnValue(State, C, *EofVal); in evalFscanf()
1379 ProgramStateRef State = C.getState(); in evalUngetc() local
1381 if (!E.Init(Desc, Call, C, State)) in evalUngetc()
1388 ProgramStateRef StateNotFailed = E.bindReturnValue(State, C, *PutVal); in evalUngetc()
1399 ProgramStateRef StateFailed = E.bindReturnValue(State, C, *EofVal); in evalUngetc()
1407 ProgramStateRef State = C.getState(); in evalGetdelim() local
1409 if (!E.Init(Desc, Call, C, State)) in evalGetdelim()
1421 State = escapeArgs(State, C, Call, {0, 1}); in evalGetdelim()
1425 ProgramStateRef StateNotFailed = E.bindReturnValue(State, C, RetVal); in evalGetdelim()
1430 auto NewLinePtr = getPointeeVal(Call.getArgSVal(0), State); in evalGetdelim()
1438 auto NVal = getPointeeVal(SizePtrSval, State); in evalGetdelim()
1452 ProgramStateRef StateFailed = E.bindReturnValue(State, C, -1); in evalGetdelim()
1458 if (auto NewLinePtr = getPointeeVal(Call.getArgSVal(0), State)) in evalGetdelim()
1466 ProgramStateRef State = C.getState(); in preFseek() local
1468 State = ensureStreamNonNull(StreamVal, Call.getArgExpr(Desc->StreamArgNo), C, in preFseek()
1469 State); in preFseek()
1470 if (!State) in preFseek()
1472 State = ensureStreamOpened(StreamVal, C, State); in preFseek()
1473 if (!State) in preFseek()
1475 State = ensureFseekWhenceCorrect(Call.getArgSVal(2), C, State); in preFseek()
1476 if (!State) in preFseek()
1479 C.addTransition(State); in preFseek()
1484 ProgramStateRef State = C.getState(); in evalFseek() local
1486 if (!E.Init(Desc, Call, C, State)) in evalFseek()
1490 ProgramStateRef StateNotFailed = E.bindReturnValue(State, C, 0); in evalFseek()
1505 ProgramStateRef StateFailed = E.bindReturnValue(State, C, -1); in evalFseek()
1514 ProgramStateRef State = C.getState(); in evalFgetpos() local
1516 if (!E.Init(Desc, Call, C, State)) in evalFgetpos()
1520 std::tie(StateFailed, StateNotFailed) = E.makeRetValAndAssumeDual(State, C); in evalFgetpos()
1533 ProgramStateRef State = C.getState(); in evalFsetpos() local
1535 if (!E.Init(Desc, Call, C, State)) in evalFsetpos()
1539 std::tie(StateFailed, StateNotFailed) = E.makeRetValAndAssumeDual(State, C); in evalFsetpos()
1560 ProgramStateRef State = C.getState(); in evalFtell() local
1562 if (!E.Init(Desc, Call, C, State)) in evalFtell()
1567 State->BindExpr(E.CE, C.getLocationContext(), RetVal); in evalFtell()
1573 ProgramStateRef StateFailed = E.bindReturnValue(State, C, -1); in evalFtell()
1584 ProgramStateRef State = C.getState(); in evalRewind() local
1586 if (!E.Init(Desc, Call, C, State)) in evalRewind()
1589 State = in evalRewind()
1590 E.setStreamState(State, StreamState::getOpened(Desc, ErrorNone, false)); in evalRewind()
1591 C.addTransition(State); in evalRewind()
1596 ProgramStateRef State = C.getState(); in preFflush() local
1604 C.getConstraintManager().assumeDual(State, *Stream); in preFflush()
1611 ProgramStateRef State = C.getState(); in evalFflush() local
1620 C.getConstraintManager().assumeDual(State, *Stream); in evalFflush()
1624 State = StateNotNull; in evalFflush()
1626 State = StateNull; in evalFflush()
1633 ProgramStateRef StateFailed = bindInt(*EofVal, State, C, CE); in evalFflush()
1634 ProgramStateRef StateNotFailed = bindInt(0, State, C, CE); in evalFflush()
1650 const StreamState *SS = State->get<StreamMap>(StreamSym); in evalFflush()
1675 ProgramStateRef State = C.getState(); in evalClearerr() local
1677 if (!E.Init(Desc, Call, C, State)) in evalClearerr()
1681 State = E.setStreamState( in evalClearerr()
1682 State, in evalClearerr()
1684 C.addTransition(State); in evalClearerr()
1690 ProgramStateRef State = C.getState(); in evalFeofFerror() local
1692 if (!E.Init(Desc, Call, C, State)) in evalFeofFerror()
1699 ProgramStateRef TrueState = bindAndAssumeTrue(State, C, E.CE); in evalFeofFerror()
1709 ProgramStateRef FalseState = E.bindReturnValue(State, C, 0); in evalFeofFerror()
1728 ProgramStateRef State = C.getState(); in evalFileno() local
1730 if (!E.Init(Desc, Call, C, State)) in evalFileno()
1734 State = State->BindExpr(E.CE, C.getLocationContext(), RetVal); in evalFileno()
1735 State = E.assumeBinOpNN(State, BO_GE, RetVal, E.getZeroVal(Call)); in evalFileno()
1736 if (!State) in evalFileno()
1739 C.addTransition(State); in evalFileno()
1744 ProgramStateRef State = C.getState(); in preDefault() local
1746 State = ensureStreamNonNull(StreamVal, Call.getArgExpr(Desc->StreamArgNo), C, in preDefault()
1747 State); in preDefault()
1748 if (!State) in preDefault()
1750 State = ensureStreamOpened(StreamVal, C, State); in preDefault()
1751 if (!State) in preDefault()
1754 C.addTransition(State); in preDefault()
1761 ProgramStateRef State = C.getState(); in evalSetFeofFerror() local
1764 const StreamState *SS = State->get<StreamMap>(StreamSym); in evalSetFeofFerror()
1766 State = State->set<StreamMap>( in evalSetFeofFerror()
1769 C.addTransition(State); in evalSetFeofFerror()
1775 ProgramStateRef State) const { in ensureStreamNonNull()
1778 return State; in ensureStreamNonNull()
1783 std::tie(StateNotNull, StateNull) = CM.assumeDual(State, *Stream); in ensureStreamNonNull()
1801 ProgramStateRef State) const { in ensureStreamOpened()
1804 return State; in ensureStreamOpened()
1806 const StreamState *SS = State->get<StreamMap>(Sym); in ensureStreamOpened()
1808 return State; in ensureStreamOpened()
1821 return State; in ensureStreamOpened()
1841 return State; in ensureStreamOpened()
1845 SVal StreamVal, CheckerContext &C, ProgramStateRef State) const { in ensureNoFilePositionIndeterminate()
1853 return State; in ensureNoFilePositionIndeterminate()
1855 const StreamState *SS = State->get<StreamMap>(Sym); in ensureNoFilePositionIndeterminate()
1857 return State; in ensureNoFilePositionIndeterminate()
1866 ExplodedNode *N = C.generateNonFatalErrorNode(State); in ensureNoFilePositionIndeterminate()
1874 return State->set<StreamMap>( in ensureNoFilePositionIndeterminate()
1880 if (ExplodedNode *N = C.generateErrorNode(State)) { in ensureNoFilePositionIndeterminate()
1890 return State; in ensureNoFilePositionIndeterminate()
1895 ProgramStateRef State) const { in ensureFseekWhenceCorrect()
1899 return State; in ensureFseekWhenceCorrect()
1903 return State; in ensureFseekWhenceCorrect()
1905 if (ExplodedNode *N = C.generateNonFatalErrorNode(State)) { in ensureFseekWhenceCorrect()
1914 return State; in ensureFseekWhenceCorrect()
1918 ProgramStateRef State) const { in reportFEofWarning()
1919 if (ExplodedNode *N = C.generateNonFatalErrorNode(State)) { in reportFEofWarning()
1929 C.addTransition(State); in reportFEofWarning()
1976 ProgramStateRef State = C.getState(); in checkDeadSymbols() local
1980 const StreamMapTy &Map = State->get<StreamMap>(); in checkDeadSymbols()
1988 State = State->remove<StreamMap>(Sym); in checkDeadSymbols()
1995 C.addTransition(State, N); in checkDeadSymbols()
1999 ProgramStateRef State, const InvalidatedSymbols &Escaped, in checkPointerEscape() argument
2005 return State; in checkPointerEscape()
2015 State = State->remove<StreamMap>(Sym); in checkPointerEscape()
2017 return State; in checkPointerEscape()