clang 10.0.0git

Public Member Functions | Public Attributes | List of all members
clang::ento::retaincountchecker::RetainCountChecker Class Reference

`#include "/work/www-prereleases/10.0.0/rc1/docsbuild/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.h"`

Inheritance diagram for clang::ento::retaincountchecker::RetainCountChecker:
[legend]
Collaboration diagram for clang::ento::retaincountchecker::RetainCountChecker:
[legend]

## Public Member Functions
| RetainCountChecker ()
RetainSummaryManager & | getSummaryManager (ASTContext &Ctx) const
RetainSummaryManager & | getSummaryManager (CheckerContext &C) const
void | printState (raw_ostream &Out, ProgramStateRef State, const char *NL, const char *Sep) const override
| See CheckerManager::runCheckersForPrintState. More...
void | checkBind (SVal loc, SVal val, const Stmt *S, CheckerContext &C) const
void | checkPostStmt (const BlockExpr *BE, CheckerContext &C) const
void | checkPostStmt (const CastExpr *CE, CheckerContext &C) const
void | checkPostStmt (const ObjCArrayLiteral *AL, CheckerContext &C) const
void | checkPostStmt (const ObjCDictionaryLiteral *DL, CheckerContext &C) const
void | checkPostStmt (const ObjCBoxedExpr *BE, CheckerContext &C) const
void | checkPostStmt (const ObjCIvarRefExpr *IRE, CheckerContext &C) const
void | checkPostCall (const CallEvent &Call, CheckerContext &C) const
void | checkSummary (const RetainSummary &Summ, const CallEvent &Call, CheckerContext &C) const
void | processSummaryOfInlined (const RetainSummary &Summ, const CallEvent &Call, CheckerContext &C) const
bool | evalCall (const CallEvent &Call, CheckerContext &C) const
ProgramStateRef | evalAssume (ProgramStateRef state, SVal Cond, bool Assumption) const
ProgramStateRef | checkRegionChanges (ProgramStateRef state, const InvalidatedSymbols *invalidated, ArrayRef< const MemRegion *> ExplicitRegions, ArrayRef< const MemRegion *> Regions, const LocationContext *LCtx, const CallEvent *Call) const
ExplodedNode * | checkReturnWithRetEffect (const ReturnStmt *S, CheckerContext &C, ExplodedNode *Pred, RetEffect RE, RefVal X, SymbolRef Sym, ProgramStateRef state) const
void | checkDeadSymbols (SymbolReaper &SymReaper, CheckerContext &C) const
void | checkBeginFunction (CheckerContext &C) const
void | checkEndFunction (const ReturnStmt *RS, CheckerContext &C) const
ProgramStateRef | updateSymbol (ProgramStateRef state, SymbolRef sym, RefVal V, ArgEffect E, RefVal::Kind &hasErr, CheckerContext &C) const
const RefCountBug & | errorKindToBugKind (RefVal::Kind ErrorKind, SymbolRef Sym) const
void | processNonLeakError (ProgramStateRef St, SourceRange ErrorRange, RefVal::Kind ErrorKind, SymbolRef Sym, CheckerContext &C) const
void | processObjCLiterals (CheckerContext &C, const Expr *Ex) const
ProgramStateRef | handleSymbolDeath (ProgramStateRef state, SymbolRef sid, RefVal V, SmallVectorImpl< SymbolRef > &Leaked) const
ProgramStateRef | handleAutoreleaseCounts (ProgramStateRef state, ExplodedNode *Pred, const ProgramPointTag *Tag, CheckerContext &Ctx, SymbolRef Sym, RefVal V, const ReturnStmt *S=nullptr) const
ExplodedNode * | processLeaks (ProgramStateRef state, SmallVectorImpl< SymbolRef > &Leaked, CheckerContext &Ctx, ExplodedNode *Pred=nullptr) const
const CheckerProgramPointTag & | getDeallocSentTag () const
const CheckerProgramPointTag & | getCastFailTag () const
Public Member Functions inherited from clang::ento::CheckerBase
StringRef | getTagDescription () const override
CheckerNameRef | getCheckerName () const
Public Member Functions inherited from clang::ProgramPointTag
| ProgramPointTag (void *tagKind=nullptr)
virtual | ~ProgramPointTag ()
const void * | getTagKind () const
| Used to implement 'isKind' in subclasses. More...

## Public Attributes
bool | TrackObjCAndCFObjects = false
| Track Objective-C and CoreFoundation objects. More...
bool | TrackOSObjects = false
| Track sublcasses of OSObject. More...
bool | TrackNSCFStartParam = false
| Track initial parameters (for the entry point) for NS/CF objects. More...

## Additional Inherited Members
Static Public Member Functions inherited from clang::ento::Checker< check::Bind, check::DeadSymbols, check::BeginFunction, check::EndFunction, check::PostStmt< BlockExpr >, check::PostStmt< CastExpr >, check::PostStmt< ObjCArrayLiteral >, check::PostStmt< ObjCDictionaryLiteral >, check::PostStmt< ObjCBoxedExpr >, check::PostStmt< ObjCIvarRefExpr >, check::PostCall, check::RegionChanges, eval::Assume, eval::Call >
static void | _register (CHECKER *checker, CheckerManager &mgr)
Static Public Member Functions inherited from clang::ento::check::Bind
template<typename CHECKER >
static void | _register (CHECKER *checker, CheckerManager &mgr)

## Detailed Description

Definition at line 238 of file RetainCountChecker.h.

## Constructor & Destructor Documentation

## ◆ RetainCountChecker()

clang::ento::retaincountchecker::RetainCountChecker::RetainCountChecker | ( |  | ) |
| inline

Definition at line 278 of file RetainCountChecker.h.

## Member Function Documentation

## ◆ checkBeginFunction()

void RetainCountChecker::checkBeginFunction | ( | CheckerContext & | C | ) | const

Definition at line 1331 of file RetainCountChecker.cpp.

References clang::ento::CheckerContext::addTransition(), clang::ento::CF, clang::ento::DecRef, clang::ento::Generalized, clang::LocationContext::getDecl(), clang::ento::ArgEffect::getKind(), clang::ento::CheckerContext::getLocationContext(), clang::ento::ArgEffect::getObjKind(), clang::ento::CheckerContext::getState(), clang::ValueDecl::getType(), clang::ento::CheckerContext::inTopFrame(), clang::ento::retaincountchecker::RefVal::makeNotOwned(), clang::ento::retaincountchecker::RefVal::makeOwned(), clang::ento::ObjC, clang::ento::OS, setRefBinding(), and clang::CodeGen::state.

## ◆ checkBind()

void RetainCountChecker::checkBind | ( | SVal | loc,
|  | SVal | val,
|  | const Stmt * | S,
|  | CheckerContext & | C
| ) |  | const

Definition at line 1137 of file RetainCountChecker.cpp.

References clang::ento::CheckerContext::addTransition(), clang::ento::SVal::getAsRegion(), clang::ento::CheckerContext::getState(), shouldEscapeRegion(), and clang::CodeGen::state.

## ◆ checkDeadSymbols()

void RetainCountChecker::checkDeadSymbols | ( | SymbolReaper & | SymReaper,
|  | CheckerContext & | C
| ) |  | const

Definition at line 1409 of file RetainCountChecker.cpp.

References clang::ento::CheckerContext::addTransition(), clang::ento::CheckerContext::getPredecessor(), clang::ento::retaincountchecker::getRefBinding(), clang::ento::CheckerContext::getState(), clang::ento::SymbolReaper::isDead(), clang::CodeGen::state, and V.

## ◆ checkEndFunction()

void RetainCountChecker::checkEndFunction | ( | const ReturnStmt * | RS,
|  | CheckerContext & | C
| ) |  | const

Definition at line 1367 of file RetainCountChecker.cpp.

References clang::ento::ExplodedNode::getLocationContext(), clang::ento::ExplodedNode::getState(), and clang::CodeGen::state.

## ◆ checkPostCall()

void RetainCountChecker::checkPostCall | ( | const CallEvent & | Call,
|  | CheckerContext & | C
| ) |  | const

Definition at line 363 of file RetainCountChecker.cpp.

References clang::ento::SVal::getAsLocSymbol(), clang::ento::retaincountchecker::getRefBinding(), clang::ento::CheckerContext::getState(), getSummary(), and clang::ento::CheckerContext::wasInlined.

## ◆ checkPostStmt() [1/6]

void RetainCountChecker::checkPostStmt | ( | const BlockExpr * | BE,
|  | CheckerContext & | C
| ) |  | const

Definition at line 146 of file RetainCountChecker.cpp.

References clang::ento::CheckerContext::addTransition(), clang::ento::SVal::getAsRegion(), clang::BlockExpr::getBlockDecl(), clang::ento::VarRegion::getDecl(), clang::ento::CheckerContext::getLocationContext(), clang::ento::SValBuilder::getRegionManager(), clang::ento::CheckerContext::getState(), clang::ento::SubRegion::getSuperRegion(), clang::ento::CheckerContext::getSVal(), clang::ento::CheckerContext::getSValBuilder(), clang::ento::MemRegionManager::getVarRegion(), clang::BlockDecl::hasCaptures(), and clang::CodeGen::state.

Referenced by checkPostStmt().

## ◆ checkPostStmt() [2/6]

void RetainCountChecker::checkPostStmt | ( | const CastExpr * | CE,
|  | CheckerContext & | C
| ) |  | const

Definition at line 182 of file RetainCountChecker.cpp.

References clang::ento::CheckerContext::addTransition(), clang::ento::CF, clang::ento::DecRefBridgedTransferred, clang::ento::SVal::getAsLocSymbol(), clang::ObjCBridgedCastExpr::getBridgeKind(), clang::ento::retaincountchecker::getRefBinding(), clang::ento::CheckerContext::getState(), clang::ento::CheckerContext::getSVal(), clang::Expr::getType(), clang::ento::IncRef, clang::Type::isObjCObjectPointerType(), clang::OBC_Bridge, clang::OBC_BridgeRetained, clang::OBC_BridgeTransfer, clang::ento::ObjC, clang::CodeGen::state, and clang::ento::ArgEffect::withKind().

## ◆ checkPostStmt() [3/6]

void RetainCountChecker::checkPostStmt | ( | const ObjCArrayLiteral * | AL,
|  | CheckerContext & | C
| ) |  | const

Definition at line 259 of file RetainCountChecker.cpp.

## ◆ checkPostStmt() [4/6]

void RetainCountChecker::checkPostStmt | ( | const ObjCDictionaryLiteral * | DL,
|  | CheckerContext & | C
| ) |  | const

Definition at line 265 of file RetainCountChecker.cpp.

References clang::ento::CheckerContext::addTransition(), checkPostStmt(), clang::ento::SVal::getAsSymbol(), clang::ento::CheckerContext::getPredecessor(), clang::ento::ExplodedNode::getState(), clang::ento::ExplodedNode::getSVal(), clang::Expr::getType(), clang::ento::retaincountchecker::RefVal::makeNotOwned(), clang::ento::ObjC, setRefBinding(), and State.

## ◆ checkPostStmt() [5/6]

void clang::ento::retaincountchecker::RetainCountChecker::checkPostStmt | ( | const ObjCBoxedExpr * | BE,
|  | CheckerContext & | C
| ) |  | const

## ◆ checkPostStmt() [6/6]

void RetainCountChecker::checkPostStmt | ( | const ObjCIvarRefExpr * | IRE,
|  | CheckerContext & | C
| ) |  | const

Definition at line 285 of file RetainCountChecker.cpp.

References clang::ento::CheckerContext::addTransition(), clang::ento::CF, clang::ento::SVal::getAs(), clang::ento::SymExpr::getOriginRegion(), clang::ento::retaincountchecker::getRefBinding(), clang::ento::CheckerContext::getStackFrame(), clang::ento::CheckerContext::getState(), clang::ento::CheckerContext::getSVal(), clang::ento::SymExpr::getType(), clang::ento::coreFoundation::isCFObjectRef(), clang::ento::ConditionTruthVal::isConstrainedTrue(), clang::ento::ConstraintManager::isNull(), clang::Type::isObjCRetainableType(), clang::ento::retaincountchecker::isSynthesizedAccessor(), clang::ento::retaincountchecker::RefVal::makeNotOwned(), clang::ento::retaincountchecker::RefVal::None, clang::ento::ObjC, setRefBinding(), State, and clang::ento::retaincountchecker::RefVal::withIvarAccess().

## ◆ checkRegionChanges()

ProgramStateRef RetainCountChecker::checkRegionChanges | ( | ProgramStateRef | state,
|  | const InvalidatedSymbols * | invalidated,
|  | ArrayRef< const MemRegion *> | ExplicitRegions,
|  | ArrayRef< const MemRegion *> | Regions,
|  | const LocationContext * | LCtx,
|  | const CallEvent * | Call
| ) |  | const

Definition at line 1183 of file RetainCountChecker.cpp.

References clang::ento::MemRegion::getAs(), removeRefBinding(), clang::CodeGen::state, and clang::ento::MemRegion::StripCasts().

## ◆ checkReturnWithRetEffect()

ExplodedNode * RetainCountChecker::checkReturnWithRetEffect | ( | const ReturnStmt * | S,
|  | CheckerContext & | C,
|  | ExplodedNode * | Pred,
|  | RetEffect | RE,
|  | RefVal | X,
|  | SymbolRef | Sym,
|  | ProgramStateRef | state
| ) |  | const

Definition at line 1066 of file RetainCountChecker.cpp.

References clang::ento::retaincountchecker::RefVal::AccessedDirectly, clang::ento::CheckerContext::addTransition(), clang::ento::CheckerContext::emitReport(), clang::ento::retaincountchecker::RefVal::ErrorLeakReturned, clang::ento::retaincountchecker::RefVal::ErrorReturnedNotOwned, clang::ento::CheckerContext::getASTContext(), clang::ento::retaincountchecker::RefVal::getCount(), clang::ento::retaincountchecker::RefVal::getIvarAccessHistory(), clang::ento::RetEffect::getKind(), clang::ASTContext::getLangOpts(), clang::ento::RetEffect::isOwned(), clang::ento::retaincountchecker::RefVal::isReturnedNotOwned(), clang::ento::retaincountchecker::RefVal::isReturnedOwned(), clang::ento::retaincountchecker::RefVal::None, clang::ento::RetEffect::NoRet, clang::ento::retaincountchecker::RefVal::releaseViaIvar(), clang::ento::retaincountchecker::RefVal::ReturnedOwned, and setRefBinding().

## ◆ checkSummary()

void RetainCountChecker::checkSummary | ( | const RetainSummary & | Summ,
|  | const CallEvent & | Call,
|  | CheckerContext & | C
| ) |  | const

Definition at line 605 of file RetainCountChecker.cpp.

References clang::ento::CheckerContext::addTransition(), clang::ento::Dealloc, clang::ento::CallEvent::getArgSourceRange(), clang::ento::CallEvent::getArgSVal(), clang::ento::SVal::getAsLocSymbol(), clang::ento::SVal::getAsSymbol(), clang::ento::CheckerContext::getASTContext(), clang::ento::ArgEffect::getKind(), clang::ento::RetEffect::getKind(), clang::ento::CallEvent::getNumArgs(), clang::ento::CallEvent::getOriginExpr(), clang::ento::CheckerContext::getPredecessor(), clang::ento::retaincountchecker::getRefBinding(), clang::ento::CallEvent::getResultType(), GetReturnType(), clang::ento::CallEvent::getReturnValue(), clang::ento::CheckerContext::getState(), clang::ento::RetEffect::MakeNoRet(), clang::ento::RetEffect::notOwned(), clang::ento::OS, clang::ento::RetEffect::OwnedWhenTrackedReceiver, refValFromRetEffect(), setRefBinding(), shouldEscapeOSArgumentOnCall(), clang::CodeGen::state, clang::ento::StopTrackingHard, updateOutParameters(), and V.

## ◆ errorKindToBugKind()

const RefCountBug & RetainCountChecker::errorKindToBugKind | ( | RefVal::Kind | ErrorKind,
|  | SymbolRef | Sym
| ) |  | const

Definition at line 843 of file RetainCountChecker.cpp.

References clang::ento::retaincountchecker::RefVal::ErrorDeallocNotOwned, clang::ento::retaincountchecker::RefVal::ErrorReleaseNotOwned, clang::ento::retaincountchecker::RefVal::ErrorUseAfterRelease, clang::Type::getPointeeCXXRecordDecl(), and clang::ento::SymExpr::getType().

## ◆ evalAssume()

ProgramStateRef RetainCountChecker::evalAssume | ( | ProgramStateRef | state,
|  | SVal | Cond,
|  | bool | Assumption
| ) |  | const

Definition at line 1150 of file RetainCountChecker.cpp.

References clang::ento::ConditionTruthVal::isConstrainedTrue(), and clang::CodeGen::state.

## ◆ evalCall()

bool RetainCountChecker::evalCall | ( | const CallEvent & | Call,
|  | CheckerContext & | C
| ) |  | const

Definition at line 889 of file RetainCountChecker.cpp.

References clang::ento::CheckerContext::addTransition(), clang::ento::CheckerContext::blockCount(), clang::ento::SValBuilder::conjureSymbolVal(), clang::ento::SVal::getAs(), clang::ento::CallEvent::getDecl(), clang::ento::CheckerContext::getLocationContext(), clang::ento::CallEvent::getOriginExpr(), clang::ento::CallEvent::getResultType(), clang::ento::CheckerContext::getState(), clang::ento::CheckerContext::getSValBuilder(), clang::QualType::isNull(), clang::ento::SVal::isUnknown(), clang::ento::SValBuilder::makeNull(), and clang::CodeGen::state.

## ◆ getCastFailTag()

const CheckerProgramPointTag& clang::ento::retaincountchecker::RetainCountChecker::getCastFailTag | ( |  | ) | const
| inline

Definition at line 367 of file RetainCountChecker.h.

References clang::ento::retaincountchecker::getRefBinding(), and State.

## ◆ getDeallocSentTag()

const CheckerProgramPointTag& clang::ento::retaincountchecker::RetainCountChecker::getDeallocSentTag | ( |  | ) | const
| inline

Definition at line 363 of file RetainCountChecker.h.

## ◆ getSummaryManager() [1/2]

RetainSummaryManager& clang::ento::retaincountchecker::RetainCountChecker::getSummaryManager | ( | ASTContext & | Ctx | ) | const
| inline

Definition at line 280 of file RetainCountChecker.h.

## ◆ getSummaryManager() [2/2]

RetainSummaryManager& clang::ento::retaincountchecker::RetainCountChecker::getSummaryManager | ( | CheckerContext & | C | ) | const
| inline

Definition at line 287 of file RetainCountChecker.h.

References clang::ento::CheckerContext::getASTContext(), and State.

## ◆ handleAutoreleaseCounts()

ProgramStateRef RetainCountChecker::handleAutoreleaseCounts | ( | ProgramStateRef | state,
|  | ExplodedNode * | Pred,
|  | const ProgramPointTag * | Tag,
|  | CheckerContext & | Ctx,
|  | SymbolRef | Sym,
|  | RefVal | V,
|  | const ReturnStmt * | S = `nullptr`
| ) |  | const

Definition at line 1207 of file RetainCountChecker.cpp.

References clang::ento::retaincountchecker::RefVal::AccessedDirectly, clang::ento::retaincountchecker::RefVal::clearCounts(), clang::ento::CheckerContext::emitReport(), clang::ento::retaincountchecker::RefVal::ErrorOverAutorelease, clang::ento::CheckerContext::generateSink(), clang::ento::CheckerContext::getASTContext(), clang::ento::retaincountchecker::RefVal::getAutoreleaseCount(), clang::ento::retaincountchecker::RefVal::getCount(), clang::ento::retaincountchecker::RefVal::getIvarAccessHistory(), clang::ento::retaincountchecker::RefVal::getKind(), clang::ASTContext::getLangOpts(), clang::ento::retaincountchecker::RefVal::None, clang::ento::retaincountchecker::RefVal::NotOwned, clang::ento::retaincountchecker::RefVal::releaseViaIvar(), clang::ento::retaincountchecker::RefVal::ReturnedNotOwned, clang::ento::retaincountchecker::RefVal::ReturnedOwned, clang::ento::retaincountchecker::RefVal::setAutoreleaseCount(), clang::ento::retaincountchecker::RefVal::setCount(), setRefBinding(), and clang::CodeGen::state.

## ◆ handleSymbolDeath()

ProgramStateRef RetainCountChecker::handleSymbolDeath | ( | ProgramStateRef | state,
|  | SymbolRef | sid,
|  | RefVal | V,
|  | SmallVectorImpl< SymbolRef > & | Leaked
| ) |  | const

Definition at line 1285 of file RetainCountChecker.cpp.

References clang::ento::retaincountchecker::RefVal::ErrorLeak, clang::ento::retaincountchecker::RefVal::getCount(), clang::ento::retaincountchecker::RefVal::getIvarAccessHistory(), clang::ento::retaincountchecker::RefVal::isNotOwned(), clang::ento::retaincountchecker::RefVal::isOwned(), clang::ento::retaincountchecker::RefVal::isReturnedOwned(), clang::ento::retaincountchecker::RefVal::None, removeRefBinding(), and setRefBinding().

## ◆ printState()

void RetainCountChecker::printState | ( | raw_ostream & | Out,
|  | ProgramStateRef | State,
|  | const char * | NL,
|  | const char * | Sep
| ) |  | const
| override virtual

See CheckerManager::runCheckersForPrintState.

Reimplemented from clang::ento::CheckerBase.

Definition at line 1455 of file RetainCountChecker.cpp.

References clang::ento::CheckerManager::registerChecker().

## ◆ processLeaks()

ExplodedNode * RetainCountChecker::processLeaks | ( | ProgramStateRef | state,
|  | SmallVectorImpl< SymbolRef > & | Leaked,
|  | CheckerContext & | Ctx,
|  | ExplodedNode * | Pred = `nullptr`
| ) |  | const

Definition at line 1313 of file RetainCountChecker.cpp.

References clang::ento::CheckerContext::addTransition(), clang::ento::CheckerContext::emitReport(), clang::ento::CheckerContext::getASTContext(), and clang::ASTContext::getLangOpts().

## ◆ processNonLeakError()

void RetainCountChecker::processNonLeakError | ( | ProgramStateRef | St,
|  | SourceRange | ErrorRange,
|  | RefVal::Kind | ErrorKind,
|  | SymbolRef | Sym,
|  | CheckerContext & | C
| ) |  | const

Definition at line 859 of file RetainCountChecker.cpp.

References clang::ento::CheckerContext::emitReport(), clang::ento::CheckerContext::generateErrorNode(), clang::ento::CheckerContext::getASTContext(), clang::ASTContext::getLangOpts(), clang::ento::retaincountchecker::getRefBinding(), and clang::ento::retaincountchecker::RefVal::None.

## ◆ processObjCLiterals()

void RetainCountChecker::processObjCLiterals | ( | CheckerContext & | C,
|  | const Expr * | Ex
| ) |  | const

Definition at line 229 of file RetainCountChecker.cpp.

References clang::ento::CheckerContext::addTransition(), clang::Stmt::children(), clang::ento::SVal::getAsSymbol(), clang::ento::ExplodedNode::getLocationContext(), clang::ento::CheckerContext::getPredecessor(), clang::ento::retaincountchecker::getRefBinding(), clang::ento::CheckerContext::getState(), clang::ento::ExplodedNode::getSVal(), clang::Expr::getType(), clang::ento::retaincountchecker::RefVal::makeNotOwned(), clang::ento::MayEscape, clang::ento::ObjC, setRefBinding(), clang::CodeGen::state, and V.

## ◆ processSummaryOfInlined()

void RetainCountChecker::processSummaryOfInlined | ( | const RetainSummary & | Summ,
|  | const CallEvent & | Call,
|  | CheckerContext & | C
| ) |  | const

Definition at line 448 of file RetainCountChecker.cpp.

References clang::ento::CheckerContext::addTransition(), clang::ento::CallEvent::getArgSVal(), clang::ento::SVal::getAsLocSymbol(), clang::ento::SVal::getAsSymbol(), clang::ento::RetEffect::getKind(), clang::ento::CallEvent::getNumArgs(), clang::ento::retaincountchecker::getRefBinding(), clang::ento::CallEvent::getReturnValue(), clang::ento::CheckerContext::getState(), clang::ento::RetEffect::NoRetHard, removeRefBinding(), shouldEscapeOSArgumentOnCall(), clang::CodeGen::state, clang::ento::StopTrackingHard, and V.

## ◆ updateSymbol()

ProgramStateRef RetainCountChecker::updateSymbol | ( | ProgramStateRef | state,
|  | SymbolRef | sym,
|  | RefVal | V,
|  | ArgEffect | E,
|  | RefVal::Kind & | hasErr,
|  | CheckerContext & | C
| ) |  | const

Definition at line 711 of file RetainCountChecker.cpp.

References clang::ento::retaincountchecker::RefVal::AccessedDirectly, clang::ento::Autorelease, clang::ento::retaincountchecker::RefVal::autorelease(), bool, clang::ento::retaincountchecker::RefVal::clearCounts(), clang::ento::Dealloc, clang::ento::DecRef, clang::ento::DecRefAndStopTrackingHard, clang::ento::DecRefBridgedTransferred, clang::ento::DoNothing, clang::ento::retaincountchecker::RefVal::ErrorDeallocNotOwned, clang::ento::retaincountchecker::RefVal::ErrorReleaseNotOwned, clang::ento::retaincountchecker::RefVal::ErrorUseAfterRelease, clang::ento::CheckerContext::getASTContext(), clang::ento::retaincountchecker::RefVal::getCount(), clang::ento::retaincountchecker::RefVal::getIvarAccessHistory(), clang::ento::retaincountchecker::RefVal::getKind(), clang::ento::ArgEffect::getKind(), clang::ASTContext::getLangOpts(), clang::ento::ArgEffect::getObjKind(), clang::ento::IncRef, clang::ento::MayEscape, clang::ento::retaincountchecker::RefVal::NotOwned, clang::ento::ObjC, clang::ento::retaincountchecker::RefVal::Owned, clang::ento::retaincountchecker::RefVal::Released, clang::ento::retaincountchecker::RefVal::releaseViaIvar(), removeRefBinding(), clang::ento::RetainedOutParameter, clang::ento::RetainedOutParameterOnNonZero, clang::ento::RetainedOutParameterOnZero, setRefBinding(), clang::CodeGen::state, clang::ento::StopTracking, clang::ento::StopTrackingHard, clang::ento::UnretainedOutParameter, and clang::ento::ArgEffect::withKind().

## Member Data Documentation

## ◆ TrackNSCFStartParam

bool clang::ento::retaincountchecker::RetainCountChecker::TrackNSCFStartParam = false

Track initial parameters (for the entry point) for NS/CF objects.

Definition at line 276 of file RetainCountChecker.h.

## ◆ TrackObjCAndCFObjects

bool clang::ento::retaincountchecker::RetainCountChecker::TrackObjCAndCFObjects = false

Track Objective-C and CoreFoundation objects.

Definition at line 270 of file RetainCountChecker.h.

## ◆ TrackOSObjects

bool clang::ento::retaincountchecker::RetainCountChecker::TrackOSObjects = false

Track sublcasses of OSObject.

Definition at line 273 of file RetainCountChecker.h.

The documentation for this class was generated from the following files:

- lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.h
- lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cpp