Lines Matching refs:RefVal

23 REGISTER_MAP_WITH_PROGRAMSTATE(RefBindings, SymbolRef, RefVal)
29 const RefVal *getRefBinding(ProgramStateRef State, SymbolRef Sym) { in getRefBinding()
38 RefVal Val) { in setRefBinding()
47 void RefVal::print(raw_ostream &Out) const { in print()
105 case RefVal::ErrorOverAutorelease: in print()
109 case RefVal::ErrorReturnedNotOwned: in print()
213 const RefVal* T = getRefBinding(state, Sym); in checkPostStmt()
217 RefVal::Kind hasErr = (RefVal::Kind) 0; in checkPostStmt()
235 if (const RefVal* T = getRefBinding(state, sym)) { in processObjCLiterals()
236 RefVal::Kind hasErr = (RefVal::Kind) 0; in processObjCLiterals()
252 RefVal::makeNotOwned(ObjKind::ObjC, ResultTy)); in processObjCLiterals()
278 RefVal::makeNotOwned(ObjKind::ObjC, ResultTy)); in checkPostStmt()
312 if (const RefVal *RV = getRefBinding(State, Sym)) { in checkPostStmt()
315 if (RV->getIvarAccessHistory() != RefVal::IvarAccessHistory::None || in checkPostStmt()
325 RefVal PlusZero = RefVal::makeNotOwned(Kind, Ty); in checkPostStmt()
372 if (const RefVal *T = getRefBinding(C.getState(), Sym)) in checkPostCall()
414 static std::optional<RefVal> refValFromRetEffect(RetEffect RE, in refValFromRetEffect()
417 return RefVal::makeOwned(RE.getObjKind(), ResultTy); in refValFromRetEffect()
419 return RefVal::makeNotOwned(RE.getObjKind(), ResultTy); in refValFromRetEffect()
436 const RefVal *TrackedValue) { in shouldEscapeOSArgumentOnCall()
458 if (const RefVal *T = getRefBinding(state, Sym)) in processSummaryOfInlined()
569 RefVal::makeNotOwned(AE.getObjKind(), PointeeTy)); in updateOutParameters()
573 RefVal::makeOwned(ObjKind::OS, PointeeTy)); in updateOutParameters()
610 RefVal::Kind hasErr = (RefVal::Kind) 0; in checkSummary()
623 if (const RefVal *T = getRefBinding(state, Sym)) { in checkSummary()
645 if (const RefVal *T = getRefBinding(state, Sym)) { in checkSummary()
659 if (const RefVal *T = getRefBinding(state, Sym)) { in checkSummary()
694 if (std::optional<RefVal> updatedRefVal = refValFromRetEffect(RE, ResultTy)) in checkSummary()
711 SymbolRef sym, RefVal V, in updateSymbol()
713 RefVal::Kind &hasErr, in updateSymbol()
733 if (V.getKind() == RefVal::Released) { in updateSymbol()
734 V = V ^ RefVal::ErrorUseAfterRelease; in updateSymbol()
751 case RefVal::Owned: in updateSymbol()
753 V = V ^ RefVal::Released; in updateSymbol()
756 case RefVal::NotOwned: in updateSymbol()
757 V = V ^ RefVal::ErrorDeallocNotOwned; in updateSymbol()
764 if (V.getKind() == RefVal::Owned) { in updateSymbol()
765 V = V ^ RefVal::NotOwned; in updateSymbol()
787 case RefVal::Owned: in updateSymbol()
788 case RefVal::NotOwned: in updateSymbol()
802 case RefVal::Owned: in updateSymbol()
807 RefVal::IvarAccessHistory::AccessedDirectly) in updateSymbol()
808 V = V ^ RefVal::NotOwned; in updateSymbol()
810 V = V ^ RefVal::Released; in updateSymbol()
818 case RefVal::NotOwned: in updateSymbol()
824 RefVal::IvarAccessHistory::AccessedDirectly) { in updateSymbol()
829 V = V.releaseViaIvar() ^ RefVal::Released; in updateSymbol()
831 V = V ^ RefVal::ErrorReleaseNotOwned; in updateSymbol()
842 RetainCountChecker::errorKindToBugKind(RefVal::Kind ErrorKind, in errorKindToBugKind()
845 case RefVal::ErrorUseAfterRelease: in errorKindToBugKind()
847 case RefVal::ErrorReleaseNotOwned: in errorKindToBugKind()
849 case RefVal::ErrorDeallocNotOwned: in errorKindToBugKind()
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()
991 const RefVal *T = getRefBinding(state, Sym); in processReturn()
996 RefVal X = *T; in processReturn()
999 case RefVal::Owned: { in processReturn()
1003 X = X ^ RefVal::ReturnedOwned; in processReturn()
1007 case RefVal::NotOwned: { in processReturn()
1011 X = X ^ RefVal::ReturnedOwned; in processReturn()
1013 X = X ^ RefVal::ReturnedNotOwned; in processReturn()
1069 RetEffect RE, RefVal X, in checkReturnWithRetEffect()
1078 if (X.getIvarAccessHistory() != RefVal::IvarAccessHistory::None) in checkReturnWithRetEffect()
1088 X = X ^ RefVal::ErrorLeakReturned; in checkReturnWithRetEffect()
1107 RefVal::IvarAccessHistory::AccessedDirectly) { in checkReturnWithRetEffect()
1111 X.releaseViaIvar() ^ RefVal::ReturnedOwned); in checkReturnWithRetEffect()
1115 state = setRefBinding(state, Sym, X ^ RefVal::ErrorReturnedNotOwned); in checkReturnWithRetEffect()
1212 RefVal V, in handleAutoreleaseCounts()
1224 if (V.getKind() == RefVal::ReturnedOwned) in handleAutoreleaseCounts()
1230 V.getIvarAccessHistory() == RefVal::IvarAccessHistory::AccessedDirectly) { in handleAutoreleaseCounts()
1238 if (V.getKind() == RefVal::ReturnedOwned) { in handleAutoreleaseCounts()
1239 V = V ^ RefVal::ReturnedNotOwned; in handleAutoreleaseCounts()
1241 V = V ^ RefVal::NotOwned; in handleAutoreleaseCounts()
1256 if (V.getIvarAccessHistory() != RefVal::IvarAccessHistory::None) in handleAutoreleaseCounts()
1261 V = V ^ RefVal::ErrorOverAutorelease; in handleAutoreleaseCounts()
1286 SymbolRef sid, RefVal V, in handleSymbolDeath()
1296 if (V.getIvarAccessHistory() != RefVal::IvarAccessHistory::None) in handleSymbolDeath()
1309 return setRefBinding(state, sid, V ^ RefVal::ErrorLeak); in handleSymbolDeath()
1357 RefVal NewVal = AE->getKind() == DecRef ? RefVal::makeOwned(K, Ty) in checkBeginFunction()
1358 : RefVal::makeNotOwned(K, Ty); in checkBeginFunction()
1421 const RefVal &V = I.second; in checkDeadSymbols()