A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://clang.llvm.org/doxygen/ObjCUnusedIVarsChecker_8cpp_source.html below:

clang: lib/StaticAnalyzer/Checkers/ObjCUnusedIVarsChecker.cpp Source File

25#include "llvm/ADT/STLExtras.h" 27using namespace clang

;

31typedef

llvm::DenseMap<const ObjCIvarDecl*,IVarState>

IvarUsageMap

;

39

IvarUsageMap::iterator I = M.find(

D

);

46 if

(

const BlockExpr

*BE = dyn_cast<BlockExpr>(S)) {

47 Scan

(M, BE->getBody());

52 for

(

const Expr

*sub : POE->semantics()) {

54

sub = OVE->getSourceExpr();

58 for

(

const Stmt

*SubStmt : S->children())

71

IvarUsageMap::iterator I = M.find(ID);

78 for

(

const auto

*I :

D

->instance_methods())

79 Scan

(M, I->getBody());

84 for

(

const auto

*I : ID->property_impls())

88 for

(

const auto

*Cat : ID->getClassInterface()->visible_categories()) {

97 for

(

const auto

*I :

C

->decls())

98 if

(

const auto

*FD = dyn_cast<FunctionDecl>(I)) {

100 if

(

SM

.getFileID(L) == FID)

101 Scan

(M, FD->getBody());

113 for

(

const auto

*Ivar : ID->ivars()) {

120

Ivar->hasAttr<UnusedAttr>() || Ivar->hasAttr<IBOutletAttr>() ||

121

Ivar->hasAttr<IBOutletCollectionAttr>() || Ivar->isUnnamedBitField())

134 bool

hasUnused =

false

;

135 for

(

IVarState

State : llvm::make_second_range(M))

153 for

(

auto

[Ivar, State] : M)

156

llvm::raw_string_ostream os(sbuf);

157

os <<

"Instance variable '"

<< *Ivar <<

"' in class '"

<< *ID

158

<<

"' is never used by the methods in its @implementation " 159 "(although it may be used by category methods)."

;

164 "Optimization"

, os.str(), L);

173class

ObjCUnusedIvarsChecker :

public Checker

<

174

check::ASTDecl<ObjCImplementationDecl> > {

187bool

ento::shouldRegisterObjCUnusedIvarsChecker(

const CheckerManager

&mgr) {

Defines the clang::LangOptions interface.

static void checkObjCUnusedIvar(const ObjCImplementationDecl *D, BugReporter &BR, const CheckerBase *Checker)

llvm::DenseMap< const ObjCIvarDecl *, IVarState > IvarUsageMap

static void Scan(IvarUsageMap &M, const Stmt *S)

Defines the SourceManager interface.

BlockExpr - Adaptor class for mixing a BlockDecl with expressions.

DeclContext - This is used only as base class of specific decl types that can act as declaration cont...

SourceLocation getLocation() const

DeclContext * getDeclContext()

This represents one expression.

An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...

ObjCCategoryImplDecl - An object of this class encapsulates a category @implementation declaration.

ObjCContainerDecl - Represents a container for method declarations.

ObjCImplementationDecl - Represents a class definition - this is where method definitions are specifi...

Represents an ObjC class declaration.

ObjCIvarDecl - Represents an ObjC instance variable.

ObjCIvarRefExpr - A reference to an ObjC instance variable.

ObjCPropertyImplDecl - Represents implementation declaration of a property in a class or category imp...

OpaqueValueExpr - An expression referring to an opaque object of a fixed type and value class.

PseudoObjectExpr - An expression which accesses a pseudo-object l-value.

Encodes a location in the source.

This class handles loading and caching of source files into memory.

Stmt - This represents one statement.

BugReporter is a utility class for generating PathDiagnostics for analysis.

const SourceManager & getSourceManager()

void EmitBasicReport(const Decl *DeclWithIssue, const CheckerBase *Checker, StringRef BugName, StringRef BugCategory, StringRef BugStr, PathDiagnosticLocation Loc, ArrayRef< SourceRange > Ranges={}, ArrayRef< FixItHint > Fixits={})

CHECKER * registerChecker(AT &&... Args)

Used to register checkers.

static PathDiagnosticLocation create(const Decl *D, const SourceManager &SM)

Create a location corresponding to the given declaration.

The JSON file list parser is used to communicate input to InstallAPI.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4