clang 22.0.0git
clang::ento::retaincountchecker::RefCountReportVisitor Class Reference
Inheritance diagram for clang::ento::retaincountchecker::RefCountReportVisitor:
[legend]

Public Member Functions

 RefCountReportVisitor (SymbolRef S, bool IRU)
void Profile (llvm::FoldingSetNodeID &ID) const override
PathDiagnosticPieceRef VisitNode (const ExplodedNode *N, BugReporterContext &BRC, PathSensitiveBugReport &BR) override
 Return a diagnostic piece which should be associated with the given node.
PathDiagnosticPieceRef getEndPath (BugReporterContext &BRC, const ExplodedNode *N, PathSensitiveBugReport &BR) override
 Provide custom definition for the final diagnostic piece on the path - the piece, which is displayed before the path is expanded.
Public Member Functions inherited from clang::ento::BugReporterVisitor
 BugReporterVisitor ()=default
 BugReporterVisitor (const BugReporterVisitor &)=default
 BugReporterVisitor (BugReporterVisitor &&)
BugReporterVisitoroperator= (const BugReporterVisitor &)=delete
BugReporterVisitoroperator= (BugReporterVisitor &&)=delete
virtual ~BugReporterVisitor ()
virtual void finalizeVisitor (BugReporterContext &BRC, const ExplodedNode *EndPathNode, PathSensitiveBugReport &BR)
 Last function called on the visitor, no further calls to VisitNode would follow.

Protected Attributes

SymbolRef Sym
bool IsReleaseUnowned

Additional Inherited Members

Static Public Member Functions inherited from clang::ento::BugReporterVisitor
static PathDiagnosticPieceRef getDefaultEndPath (const BugReporterContext &BRC, const ExplodedNode *N, const PathSensitiveBugReport &BR)
 Generates the default final diagnostic piece.

Detailed Description

Definition at line 261 of file RetainCountDiagnostics.cpp.

Constructor & Destructor Documentation

◆ RefCountReportVisitor()

clang::ento::retaincountchecker::RefCountReportVisitor::RefCountReportVisitor ( SymbolRef S,
bool IRU )
inline

Member Function Documentation

◆ getEndPath()

PathDiagnosticPieceRef RefCountReportVisitor::getEndPath ( BugReporterContext & BRC,
const ExplodedNode * N,
PathSensitiveBugReport & BR )
overridevirtual

Provide custom definition for the final diagnostic piece on the path - the piece, which is displayed before the path is expanded.

NOTE that this function can be implemented on at most one used visitor, and otherwise it crahes at runtime.

Reimplemented from clang::ento::BugReporterVisitor.

Reimplemented in clang::ento::retaincountchecker::RefLeakReportVisitor.

Definition at line 700 of file RetainCountDiagnostics.cpp.

References clang::ento::BugReporterVisitor::getDefaultEndPath(), clang::ento::PathSensitiveBugReport::markInteresting(), and Sym.

◆ Profile()

void clang::ento::retaincountchecker::RefCountReportVisitor::Profile ( llvm::FoldingSetNodeID & ID) const
inlineoverridevirtual

Implements clang::ento::BugReporterVisitor.

Definition at line 270 of file RetainCountDiagnostics.cpp.

References Sym.

◆ VisitNode()

PathDiagnosticPieceRef RefCountReportVisitor::VisitNode ( const ExplodedNode * Succ,
BugReporterContext & BRC,
PathSensitiveBugReport & BR )
overridevirtual

Return a diagnostic piece which should be associated with the given node.

Note that this function does not get run on the very last node of the report, as the PathDiagnosticPiece associated with the last node should be unique. Use getEndPath to customize the note associated with the report end instead.

The last parameter can be used to register a new visitor with the given BugReport while processing a node.

Implements clang::ento::BugReporterVisitor.

Definition at line 405 of file RetainCountDiagnostics.cpp.

References annotateConsumedSummaryMismatch(), annotateStartParameter(), clang::ProgramPoint::castAs(), clang::Stmt::children(), clang::ento::PathDiagnosticLocation::create(), generateDiagnosticsForCallLike(), clang::ProgramPoint::getAs(), clang::ento::ProgramStateManager::getCallEventManager(), clang::StackFrameContext::getCallSite(), clang::ento::retaincountchecker::RetainCountChecker::getCastFailTag(), clang::ento::retaincountchecker::RetainCountChecker::getDeallocSentTag(), clang::ento::ExplodedNode::getFirstPred(), clang::ento::ExplodedNode::getLocation(), clang::ento::ExplodedNode::getLocationAs(), clang::ento::ExplodedNode::getLocationContext(), clang::ento::retaincountchecker::getRefBinding(), clang::ento::BugReporterContext::getSourceManager(), clang::LocationContext::getStackFrame(), clang::ento::ExplodedNode::getState(), clang::ento::BugReporterContext::getStateManager(), clang::ProgramPoint::getTag(), clang::isa(), clang::ento::retaincountchecker::RefVal::isNotOwned(), isNumericLiteralExpression(), clang::ento::retaincountchecker::RefVal::isOwned(), IsReleaseUnowned, clang::ento::retaincountchecker::isSynthesizedAccessor(), clang::Method, shouldGenerateNote(), SM, and Sym.

Member Data Documentation

◆ IsReleaseUnowned

bool clang::ento::retaincountchecker::RefCountReportVisitor::IsReleaseUnowned
protected

Definition at line 264 of file RetainCountDiagnostics.cpp.

Referenced by RefCountReportVisitor(), and VisitNode().

◆ Sym


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