Lines Matching refs:RefVal
22 REGISTER_MAP_WITH_PROGRAMSTATE(RefBindings, SymbolRef, RefVal)
28 const RefVal *getRefBinding(ProgramStateRef State, SymbolRef Sym) { in getRefBinding()
33 RefVal Val) { in setRefBinding()
109 void RefVal::print(raw_ostream &Out) const { in print()
167 case RefVal::ErrorOverAutorelease: in print()
171 case RefVal::ErrorReturnedNotOwned: in print()
269 const RefVal* T = getRefBinding(state, Sym); in checkPostStmt()
273 RefVal::Kind hasErr = (RefVal::Kind) 0; in checkPostStmt()
291 if (const RefVal* T = getRefBinding(state, sym)) { in processObjCLiterals()
292 RefVal::Kind hasErr = (RefVal::Kind) 0; in processObjCLiterals()
308 RefVal::makeNotOwned(ObjKind::ObjC, ResultTy)); in processObjCLiterals()
334 RefVal::makeNotOwned(ObjKind::ObjC, ResultTy)); in checkPostStmt()
368 if (const RefVal *RV = getRefBinding(State, Sym)) { in checkPostStmt()
371 if (RV->getIvarAccessHistory() != RefVal::IvarAccessHistory::None || in checkPostStmt()
381 RefVal PlusZero = RefVal::makeNotOwned(Kind, Ty); in checkPostStmt()
403 if (const RefVal *T = getRefBinding(C.getState(), Sym)) in checkPostCall()
459 static Optional<RefVal> refValFromRetEffect(RetEffect RE, in refValFromRetEffect()
462 return RefVal::makeOwned(RE.getObjKind(), ResultTy); in refValFromRetEffect()
464 return RefVal::makeNotOwned(RE.getObjKind(), ResultTy); in refValFromRetEffect()
481 const RefVal *TrackedValue) { in shouldEscapeOSArgumentOnCall()
503 if (const RefVal *T = getRefBinding(state, Sym)) in processSummaryOfInlined()
585 RefVal::makeNotOwned(AE.getObjKind(), PointeeTy)); in updateOutParameters()
589 RefVal::makeOwned(ObjKind::OS, PointeeTy)); in updateOutParameters()
626 RefVal::Kind hasErr = (RefVal::Kind) 0; in checkSummary()
640 if (const RefVal *T = getRefBinding(state, Sym)) { in checkSummary()
662 if (const RefVal *T = getRefBinding(state, Sym)) { in checkSummary()
676 if (const RefVal *T = getRefBinding(state, Sym)) { in checkSummary()
711 if (Optional<RefVal> updatedRefVal = refValFromRetEffect(RE, ResultTy)) in checkSummary()
728 SymbolRef sym, RefVal V, in updateSymbol()
730 RefVal::Kind &hasErr, in updateSymbol()
750 if (V.getKind() == RefVal::Released) { in updateSymbol()
751 V = V ^ RefVal::ErrorUseAfterRelease; in updateSymbol()
768 case RefVal::Owned: in updateSymbol()
770 V = V ^ RefVal::Released; in updateSymbol()
773 case RefVal::NotOwned: in updateSymbol()
774 V = V ^ RefVal::ErrorDeallocNotOwned; in updateSymbol()
781 if (V.getKind() == RefVal::Owned) { in updateSymbol()
782 V = V ^ RefVal::NotOwned; in updateSymbol()
804 case RefVal::Owned: in updateSymbol()
805 case RefVal::NotOwned: in updateSymbol()
819 case RefVal::Owned: in updateSymbol()
824 RefVal::IvarAccessHistory::AccessedDirectly) in updateSymbol()
825 V = V ^ RefVal::NotOwned; in updateSymbol()
827 V = V ^ RefVal::Released; in updateSymbol()
835 case RefVal::NotOwned: in updateSymbol()
841 RefVal::IvarAccessHistory::AccessedDirectly) { in updateSymbol()
846 V = V.releaseViaIvar() ^ RefVal::Released; in updateSymbol()
848 V = V ^ RefVal::ErrorReleaseNotOwned; in updateSymbol()
860 RefVal::Kind ErrorKind, in processNonLeakError()
869 if (const RefVal *RV = getRefBinding(St, Sym)) in processNonLeakError()
870 if (RV->getIvarAccessHistory() != RefVal::IvarAccessHistory::None) in processNonLeakError()
881 case RefVal::ErrorUseAfterRelease: in processNonLeakError()
886 case RefVal::ErrorReleaseNotOwned: in processNonLeakError()
891 case RefVal::ErrorDeallocNotOwned: in processNonLeakError()
997 const RefVal *T = getRefBinding(state, Sym); in processReturn()
1002 RefVal X = *T; in processReturn()
1005 case RefVal::Owned: { in processReturn()
1009 X = X ^ RefVal::ReturnedOwned; in processReturn()
1013 case RefVal::NotOwned: { in processReturn()
1017 X = X ^ RefVal::ReturnedOwned; in processReturn()
1019 X = X ^ RefVal::ReturnedNotOwned; in processReturn()
1075 RetEffect RE, RefVal X, in checkReturnWithRetEffect()
1084 if (X.getIvarAccessHistory() != RefVal::IvarAccessHistory::None) in checkReturnWithRetEffect()
1094 X = X ^ RefVal::ErrorLeakReturned; in checkReturnWithRetEffect()
1113 RefVal::IvarAccessHistory::AccessedDirectly) { in checkReturnWithRetEffect()
1117 X.releaseViaIvar() ^ RefVal::ReturnedOwned); in checkReturnWithRetEffect()
1121 state = setRefBinding(state, Sym, X ^ RefVal::ErrorReturnedNotOwned); in checkReturnWithRetEffect()
1249 RefVal V, in handleAutoreleaseCounts()
1261 if (V.getKind() == RefVal::ReturnedOwned) in handleAutoreleaseCounts()
1267 V.getIvarAccessHistory() == RefVal::IvarAccessHistory::AccessedDirectly) { in handleAutoreleaseCounts()
1275 if (V.getKind() == RefVal::ReturnedOwned) { in handleAutoreleaseCounts()
1276 V = V ^ RefVal::ReturnedNotOwned; in handleAutoreleaseCounts()
1278 V = V ^ RefVal::NotOwned; in handleAutoreleaseCounts()
1293 if (V.getIvarAccessHistory() != RefVal::IvarAccessHistory::None) in handleAutoreleaseCounts()
1298 V = V ^ RefVal::ErrorOverAutorelease; in handleAutoreleaseCounts()
1326 SymbolRef sid, RefVal V, in handleSymbolDeath()
1336 if (V.getIvarAccessHistory() != RefVal::IvarAccessHistory::None) in handleSymbolDeath()
1349 return setRefBinding(state, sid, V ^ RefVal::ErrorLeak); in handleSymbolDeath()
1404 state, Sym, RefVal::makeOwned(ObjKind::Generalized, Ty)); in checkBeginFunction()
1408 RefVal::makeNotOwned(ObjKind::Generalized, Ty)); in checkBeginFunction()
1470 const RefVal &V = I.second; in checkDeadSymbols()