clang  3.9.0
Classes | Namespaces | Typedefs | Enumerations | Functions
CheckObjCDealloc.cpp File Reference
#include "ClangSACheckers.h"
#include "clang/AST/Attr.h"
#include "clang/AST/DeclObjC.h"
#include "clang/AST/Expr.h"
#include "clang/AST/ExprObjC.h"
#include "clang/Basic/LangOptions.h"
#include "clang/StaticAnalyzer/Core/BugReporter/BugReporter.h"
#include "clang/StaticAnalyzer/Core/BugReporter/BugType.h"
#include "clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h"
#include "clang/StaticAnalyzer/Core/Checker.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h"
#include "clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h"
#include "llvm/Support/raw_ostream.h"
Include dependency graph for CheckObjCDealloc.cpp:

Go to the source code of this file.

Classes

struct  clang::ento::ProgramStateTrait< SymbolSet >
 

Namespaces

 clang
 Dataflow Directional Tag Classes.
 
 clang::ento
 

Typedefs

typedef llvm::ImmutableSet
< SymbolRef
SymbolSet
 

Enumerations

enum  ReleaseRequirement { ReleaseRequirement::MustRelease, ReleaseRequirement::MustNotReleaseDirectly, ReleaseRequirement::Unknown }
 Indicates whether an instance variable is required to be released in -dealloc. More...
 

Functions

static bool isSynthesizedRetainableProperty (const ObjCPropertyImplDecl *I, const ObjCIvarDecl **ID, const ObjCPropertyDecl **PD)
 Returns true if the property implementation is synthesized and the type of the property is retainable. More...
 

Typedef Documentation

Definition at line 179 of file CheckObjCDealloc.cpp.

Enumeration Type Documentation

enum ReleaseRequirement
strong

Indicates whether an instance variable is required to be released in -dealloc.

Enumerator
MustRelease 

The instance variable must be released, either by calling -release on it directly or by nilling it out with a property setter.

MustNotReleaseDirectly 

The instance variable must not be directly released with -release.

Unknown 

The requirement for the instance variable could not be determined.

Definition at line 54 of file CheckObjCDealloc.cpp.

Function Documentation

static bool isSynthesizedRetainableProperty ( const ObjCPropertyImplDecl I,
const ObjCIvarDecl **  ID,
const ObjCPropertyDecl **  PD 
)
static