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()
215 const RefVal* T = getRefBinding(state, Sym); in checkPostStmt()
219 RefVal::Kind hasErr = (RefVal::Kind) 0; in checkPostStmt()
237 if (const RefVal* T = getRefBinding(state, sym)) { in processObjCLiterals()
238 RefVal::Kind hasErr = (RefVal::Kind) 0; in processObjCLiterals()
254 RefVal::makeNotOwned(ObjKind::ObjC, ResultTy)); in processObjCLiterals()
280 RefVal::makeNotOwned(ObjKind::ObjC, ResultTy)); in checkPostStmt()
314 if (const RefVal *RV = getRefBinding(State, Sym)) { in checkPostStmt()
317 if (RV->getIvarAccessHistory() != RefVal::IvarAccessHistory::None || in checkPostStmt()
327 RefVal PlusZero = RefVal::makeNotOwned(Kind, Ty); in checkPostStmt()
374 if (const RefVal *T = getRefBinding(C.getState(), Sym)) in checkPostCall()
416 static std::optional<RefVal> refValFromRetEffect(RetEffect RE, in refValFromRetEffect()
419 return RefVal::makeOwned(RE.getObjKind(), ResultTy); in refValFromRetEffect()
421 return RefVal::makeNotOwned(RE.getObjKind(), ResultTy); in refValFromRetEffect()
438 const RefVal *TrackedValue) { in shouldEscapeOSArgumentOnCall()
460 if (const RefVal *T = getRefBinding(state, Sym)) in processSummaryOfInlined()
571 RefVal::makeNotOwned(AE.getObjKind(), PointeeTy)); in updateOutParameters()
575 RefVal::makeOwned(ObjKind::OS, PointeeTy)); in updateOutParameters()
612 RefVal::Kind hasErr = (RefVal::Kind) 0; in checkSummary()
625 if (const RefVal *T = getRefBinding(state, Sym)) { in checkSummary()
647 if (const RefVal *T = getRefBinding(state, Sym)) { in checkSummary()
661 if (const RefVal *T = getRefBinding(state, Sym)) { in checkSummary()
696 if (std::optional<RefVal> updatedRefVal = refValFromRetEffect(RE, ResultTy)) in checkSummary()
713 SymbolRef sym, RefVal V, in updateSymbol()
715 RefVal::Kind &hasErr, in updateSymbol()
735 if (V.getKind() == RefVal::Released) { in updateSymbol()
736 V = V ^ RefVal::ErrorUseAfterRelease; in updateSymbol()
753 case RefVal::Owned: in updateSymbol()
755 V = V ^ RefVal::Released; in updateSymbol()
758 case RefVal::NotOwned: in updateSymbol()
759 V = V ^ RefVal::ErrorDeallocNotOwned; in updateSymbol()
766 if (V.getKind() == RefVal::Owned) { in updateSymbol()
767 V = V ^ RefVal::NotOwned; in updateSymbol()
789 case RefVal::Owned: in updateSymbol()
790 case RefVal::NotOwned: in updateSymbol()
804 case RefVal::Owned: in updateSymbol()
809 RefVal::IvarAccessHistory::AccessedDirectly) in updateSymbol()
810 V = V ^ RefVal::NotOwned; in updateSymbol()
812 V = V ^ RefVal::Released; in updateSymbol()
820 case RefVal::NotOwned: in updateSymbol()
826 RefVal::IvarAccessHistory::AccessedDirectly) { in updateSymbol()
831 V = V.releaseViaIvar() ^ RefVal::Released; in updateSymbol()
833 V = V ^ RefVal::ErrorReleaseNotOwned; in updateSymbol()
844 RetainCountChecker::errorKindToBugKind(RefVal::Kind ErrorKind, in errorKindToBugKind()
847 case RefVal::ErrorUseAfterRelease: in errorKindToBugKind()
849 case RefVal::ErrorReleaseNotOwned: in errorKindToBugKind()
851 case RefVal::ErrorDeallocNotOwned: in errorKindToBugKind()
862 RefVal::Kind ErrorKind, in processNonLeakError()
871 if (const RefVal *RV = getRefBinding(St, Sym)) in processNonLeakError()
872 if (RV->getIvarAccessHistory() != RefVal::IvarAccessHistory::None) in processNonLeakError()
993 const RefVal *T = getRefBinding(state, Sym); in processReturn()
998 RefVal X = *T; in processReturn()
1001 case RefVal::Owned: { in processReturn()
1005 X = X ^ RefVal::ReturnedOwned; in processReturn()
1009 case RefVal::NotOwned: { in processReturn()
1013 X = X ^ RefVal::ReturnedOwned; in processReturn()
1015 X = X ^ RefVal::ReturnedNotOwned; in processReturn()
1071 RetEffect RE, RefVal X, in checkReturnWithRetEffect()
1080 if (X.getIvarAccessHistory() != RefVal::IvarAccessHistory::None) in checkReturnWithRetEffect()
1090 X = X ^ RefVal::ErrorLeakReturned; in checkReturnWithRetEffect()
1109 RefVal::IvarAccessHistory::AccessedDirectly) { in checkReturnWithRetEffect()
1113 X.releaseViaIvar() ^ RefVal::ReturnedOwned); in checkReturnWithRetEffect()
1117 state = setRefBinding(state, Sym, X ^ RefVal::ErrorReturnedNotOwned); in checkReturnWithRetEffect()
1214 RefVal V, in handleAutoreleaseCounts()
1226 if (V.getKind() == RefVal::ReturnedOwned) in handleAutoreleaseCounts()
1232 V.getIvarAccessHistory() == RefVal::IvarAccessHistory::AccessedDirectly) { in handleAutoreleaseCounts()
1240 if (V.getKind() == RefVal::ReturnedOwned) { in handleAutoreleaseCounts()
1241 V = V ^ RefVal::ReturnedNotOwned; in handleAutoreleaseCounts()
1243 V = V ^ RefVal::NotOwned; in handleAutoreleaseCounts()
1258 if (V.getIvarAccessHistory() != RefVal::IvarAccessHistory::None) in handleAutoreleaseCounts()
1263 V = V ^ RefVal::ErrorOverAutorelease; in handleAutoreleaseCounts()
1288 SymbolRef sid, RefVal V, in handleSymbolDeath()
1298 if (V.getIvarAccessHistory() != RefVal::IvarAccessHistory::None) in handleSymbolDeath()
1311 return setRefBinding(state, sid, V ^ RefVal::ErrorLeak); in handleSymbolDeath()
1359 RefVal NewVal = AE->getKind() == DecRef ? RefVal::makeOwned(K, Ty) in checkBeginFunction()
1360 : RefVal::makeNotOwned(K, Ty); in checkBeginFunction()
1423 const RefVal &V = I.second; in checkDeadSymbols()