Lines Matching refs:FCS
820 void checkPostStmt(const ObjCForCollectionStmt *FCS, CheckerContext &C) const;
857 const ObjCForCollectionStmt *FCS) { in checkCollectionNonNil() argument
861 SVal CollectionVal = C.getSVal(FCS->getCollection()); in checkCollectionNonNil()
882 const ObjCForCollectionStmt *FCS) { in checkElementNonNil() argument
887 if (!isKnownNonNilCollectionType(FCS->getCollection()->getType())) in checkElementNonNil()
891 const Stmt *Element = FCS->getElement(); in checkElementNonNil()
946 const ObjCForCollectionStmt *FCS, in assumeCollectionNonEmpty() argument
951 SymbolRef CollectionS = C.getSVal(FCS->getCollection()).getAsSymbol(); in assumeCollectionNonEmpty()
957 const ObjCForCollectionStmt *FCS) { in alreadyExecutedAtLeastOneLoopIteration() argument
963 return BE->getSrc()->getLoopTarget() == FCS; in alreadyExecutedAtLeastOneLoopIteration()
969 if (alreadyExecutedAtLeastOneLoopIteration(*I, FCS)) in alreadyExecutedAtLeastOneLoopIteration()
976 void ObjCLoopChecker::checkPostStmt(const ObjCForCollectionStmt *FCS, in checkPostStmt() argument
981 if (!ExprEngine::hasMoreIteration(State, FCS, C.getLocationContext())) { in checkPostStmt()
982 if (!alreadyExecutedAtLeastOneLoopIteration(C.getPredecessor(), FCS)) in checkPostStmt()
983 State = assumeCollectionNonEmpty(C, State, FCS, /*Assumption*/false); in checkPostStmt()
987 State = checkCollectionNonNil(C, State, FCS); in checkPostStmt()
988 State = checkElementNonNil(C, State, FCS); in checkPostStmt()
989 State = assumeCollectionNonEmpty(C, State, FCS, /*Assumption*/true); in checkPostStmt()