class RefLeakReport

Declaration

class RefLeakReport : public RefCountReport { /* full declaration omitted */ };

Description

This class provides an interface through which checkers can create individual bug reports.

Declared at: clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.h:70

Inherits from: RefCountReport

Member Variables

private const clang::ento::MemRegion* AllocFirstBinding = nullptr
private const clang::ento::MemRegion* AllocBindingToReport = nullptr
private const clang::Stmt* AllocStmt = nullptr
private clang::ento::PathDiagnosticLocation Location

Inherited from RefCountReport:

protected Sym
protected isLeak = false

Inherited from PathSensitiveBugReport:

protected ErrorNode = nullptr
protected ErrorNodeRange
protected InterestingSymbols
protected InterestingRegions
protected InterestingLocationContexts
protected Callbacks
protected CallbacksSet
protected DoNotPrunePath = false
protected Invalidations
protected TrackedConditions
protected UniqueingLocation
protected UniqueingDecl
protected StackHints

Inherited from BugReport:

protected K
protected BT
protected ShortDescription
protected Description
protected Ranges
protected Notes
protected Fixits

Method Overview

  • public RefLeakReport(const clang::ento::retaincountchecker::RefCountBug & D, const clang::LangOptions & LOpts, clang::ento::ExplodedNode * n, clang::ento::SymbolRef sym, clang::ento::CheckerContext & Ctx)
  • private void createDescription(clang::ento::CheckerContext & Ctx)
  • private void deriveAllocLocation(clang::ento::CheckerContext & Ctx)
  • private void deriveParamLocation(clang::ento::CheckerContext & Ctx)
  • private void findBindingToReport(clang::ento::CheckerContext & Ctx, clang::ento::ExplodedNode * Node)
  • public clang::ento::PathDiagnosticLocation getEndOfPath() const
  • public clang::ento::PathDiagnosticLocation getLocation() const

Inherited from RefCountReport:

Inherited from PathSensitiveBugReport:

Inherited from BugReport:

Methods

RefLeakReport(
    const clang::ento::retaincountchecker::
        RefCountBug& D,
    const clang::LangOptions& LOpts,
    clang::ento::ExplodedNode* n,
    clang::ento::SymbolRef sym,
    clang::ento::CheckerContext& Ctx)

Declared at: clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.h:87

Parameters

const clang::ento::retaincountchecker:: RefCountBug& D
const clang::LangOptions& LOpts
clang::ento::ExplodedNode* n
clang::ento::SymbolRef sym
clang::ento::CheckerContext& Ctx

void createDescription(
    clang::ento::CheckerContext& Ctx)

Declared at: clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.h:82

Parameters

clang::ento::CheckerContext& Ctx

void deriveAllocLocation(
    clang::ento::CheckerContext& Ctx)

Declared at: clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.h:80

Parameters

clang::ento::CheckerContext& Ctx

void deriveParamLocation(
    clang::ento::CheckerContext& Ctx)

Declared at: clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.h:78

Parameters

clang::ento::CheckerContext& Ctx

void findBindingToReport(
    clang::ento::CheckerContext& Ctx,
    clang::ento::ExplodedNode* Node)

Declared at: clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.h:84

Parameters

clang::ento::CheckerContext& Ctx
clang::ento::ExplodedNode* Node

clang::ento::PathDiagnosticLocation getEndOfPath()
    const

Declared at: clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.h:94

clang::ento::PathDiagnosticLocation getLocation()
    const

Description

The primary location of the bug report that points at the undesirable behavior in the code. UIs should attach the warning description to this location. The warning description should describe the bad behavior at this location.

Declared at: clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.h:89