clang  6.0.0svn
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/Basic/TargetInfo.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< SymbolRefSymbolSet
 

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

◆ SymbolSet

Definition at line 181 of file CheckObjCDealloc.cpp.

Enumeration Type Documentation

◆ ReleaseRequirement

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 55 of file CheckObjCDealloc.cpp.

Function Documentation

◆ isSynthesizedRetainableProperty()

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

Returns true if the property implementation is synthesized and the type of the property is retainable.

Definition at line 69 of file CheckObjCDealloc.cpp.