Lines Matching refs:RefVal
22 REGISTER_MAP_WITH_PROGRAMSTATE(RefBindings, SymbolRef, RefVal)
28 const RefVal *getRefBinding(ProgramStateRef State, SymbolRef Sym) { in getRefBinding()
37 RefVal Val) { in setRefBinding()
46 void RefVal::print(raw_ostream &Out) const { in print()
104 case RefVal::ErrorOverAutorelease: in print()
108 case RefVal::ErrorReturnedNotOwned: in print()
214 const RefVal* T = getRefBinding(state, Sym); in checkPostStmt()
218 RefVal::Kind hasErr = (RefVal::Kind) 0; in checkPostStmt()
236 if (const RefVal* T = getRefBinding(state, sym)) { in processObjCLiterals()
237 RefVal::Kind hasErr = (RefVal::Kind) 0; in processObjCLiterals()
253 RefVal::makeNotOwned(ObjKind::ObjC, ResultTy)); in processObjCLiterals()
279 RefVal::makeNotOwned(ObjKind::ObjC, ResultTy)); in checkPostStmt()
313 if (const RefVal *RV = getRefBinding(State, Sym)) { in checkPostStmt()
316 if (RV->getIvarAccessHistory() != RefVal::IvarAccessHistory::None || in checkPostStmt()
326 RefVal PlusZero = RefVal::makeNotOwned(Kind, Ty); in checkPostStmt()
373 if (const RefVal *T = getRefBinding(C.getState(), Sym)) in checkPostCall()
415 static Optional<RefVal> refValFromRetEffect(RetEffect RE, in refValFromRetEffect()
418 return RefVal::makeOwned(RE.getObjKind(), ResultTy); in refValFromRetEffect()
420 return RefVal::makeNotOwned(RE.getObjKind(), ResultTy); in refValFromRetEffect()
437 const RefVal *TrackedValue) { in shouldEscapeOSArgumentOnCall()
459 if (const RefVal *T = getRefBinding(state, Sym)) in processSummaryOfInlined()
570 RefVal::makeNotOwned(AE.getObjKind(), PointeeTy)); in updateOutParameters()
574 RefVal::makeOwned(ObjKind::OS, PointeeTy)); in updateOutParameters()
611 RefVal::Kind hasErr = (RefVal::Kind) 0; in checkSummary()
624 if (const RefVal *T = getRefBinding(state, Sym)) { in checkSummary()
646 if (const RefVal *T = getRefBinding(state, Sym)) { in checkSummary()
660 if (const RefVal *T = getRefBinding(state, Sym)) { in checkSummary()
695 if (Optional<RefVal> updatedRefVal = refValFromRetEffect(RE, ResultTy)) in checkSummary()
712 SymbolRef sym, RefVal V, in updateSymbol()
714 RefVal::Kind &hasErr, in updateSymbol()
734 if (V.getKind() == RefVal::Released) { in updateSymbol()
735 V = V ^ RefVal::ErrorUseAfterRelease; in updateSymbol()
752 case RefVal::Owned: in updateSymbol()
754 V = V ^ RefVal::Released; in updateSymbol()
757 case RefVal::NotOwned: in updateSymbol()
758 V = V ^ RefVal::ErrorDeallocNotOwned; in updateSymbol()
765 if (V.getKind() == RefVal::Owned) { in updateSymbol()
766 V = V ^ RefVal::NotOwned; in updateSymbol()
788 case RefVal::Owned: in updateSymbol()
789 case RefVal::NotOwned: in updateSymbol()
803 case RefVal::Owned: in updateSymbol()
808 RefVal::IvarAccessHistory::AccessedDirectly) in updateSymbol()
809 V = V ^ RefVal::NotOwned; in updateSymbol()
811 V = V ^ RefVal::Released; in updateSymbol()
819 case RefVal::NotOwned: in updateSymbol()
825 RefVal::IvarAccessHistory::AccessedDirectly) { in updateSymbol()
830 V = V.releaseViaIvar() ^ RefVal::Released; in updateSymbol()
832 V = V ^ RefVal::ErrorReleaseNotOwned; in updateSymbol()
843 RetainCountChecker::errorKindToBugKind(RefVal::Kind ErrorKind, in errorKindToBugKind()
846 case RefVal::ErrorUseAfterRelease: in errorKindToBugKind()
848 case RefVal::ErrorReleaseNotOwned: in errorKindToBugKind()
850 case RefVal::ErrorDeallocNotOwned: in errorKindToBugKind()
861 RefVal::Kind ErrorKind, in processNonLeakError()
870 if (const RefVal *RV = getRefBinding(St, Sym)) in processNonLeakError()
871 if (RV->getIvarAccessHistory() != RefVal::IvarAccessHistory::None) in processNonLeakError()
992 const RefVal *T = getRefBinding(state, Sym); in processReturn()
997 RefVal X = *T; in processReturn()
1000 case RefVal::Owned: { in processReturn()
1004 X = X ^ RefVal::ReturnedOwned; in processReturn()
1008 case RefVal::NotOwned: { in processReturn()
1012 X = X ^ RefVal::ReturnedOwned; in processReturn()
1014 X = X ^ RefVal::ReturnedNotOwned; in processReturn()
1070 RetEffect RE, RefVal X, in checkReturnWithRetEffect()
1079 if (X.getIvarAccessHistory() != RefVal::IvarAccessHistory::None) in checkReturnWithRetEffect()
1089 X = X ^ RefVal::ErrorLeakReturned; in checkReturnWithRetEffect()
1108 RefVal::IvarAccessHistory::AccessedDirectly) { in checkReturnWithRetEffect()
1112 X.releaseViaIvar() ^ RefVal::ReturnedOwned); in checkReturnWithRetEffect()
1116 state = setRefBinding(state, Sym, X ^ RefVal::ErrorReturnedNotOwned); in checkReturnWithRetEffect()
1213 RefVal V, in handleAutoreleaseCounts()
1225 if (V.getKind() == RefVal::ReturnedOwned) in handleAutoreleaseCounts()
1231 V.getIvarAccessHistory() == RefVal::IvarAccessHistory::AccessedDirectly) { in handleAutoreleaseCounts()
1239 if (V.getKind() == RefVal::ReturnedOwned) { in handleAutoreleaseCounts()
1240 V = V ^ RefVal::ReturnedNotOwned; in handleAutoreleaseCounts()
1242 V = V ^ RefVal::NotOwned; in handleAutoreleaseCounts()
1257 if (V.getIvarAccessHistory() != RefVal::IvarAccessHistory::None) in handleAutoreleaseCounts()
1262 V = V ^ RefVal::ErrorOverAutorelease; in handleAutoreleaseCounts()
1287 SymbolRef sid, RefVal V, in handleSymbolDeath()
1297 if (V.getIvarAccessHistory() != RefVal::IvarAccessHistory::None) in handleSymbolDeath()
1310 return setRefBinding(state, sid, V ^ RefVal::ErrorLeak); in handleSymbolDeath()
1358 RefVal NewVal = AE->getKind() == DecRef ? RefVal::makeOwned(K, Ty) in checkBeginFunction()
1359 : RefVal::makeNotOwned(K, Ty); in checkBeginFunction()
1422 const RefVal &V = I.second; in checkDeadSymbols()