clang 20.0.0git
|
Prints path notes when a message is sent to a nil receiver. More...
#include "clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h"
Public Member Functions | |
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. | |
Public Member Functions inherited from clang::ento::BugReporterVisitor | |
BugReporterVisitor ()=default | |
BugReporterVisitor (const BugReporterVisitor &)=default | |
BugReporterVisitor (BugReporterVisitor &&) | |
BugReporterVisitor & | operator= (const BugReporterVisitor &)=delete |
BugReporterVisitor & | operator= (BugReporterVisitor &&)=delete |
virtual | ~BugReporterVisitor () |
virtual PathDiagnosticPieceRef | VisitNode (const ExplodedNode *Succ, BugReporterContext &BRC, PathSensitiveBugReport &BR)=0 |
Return a diagnostic piece which should be associated with the given node. | |
virtual void | finalizeVisitor (BugReporterContext &BRC, const ExplodedNode *EndPathNode, PathSensitiveBugReport &BR) |
Last function called on the visitor, no further calls to VisitNode would follow. | |
virtual PathDiagnosticPieceRef | getEndPath (BugReporterContext &BRC, const ExplodedNode *N, PathSensitiveBugReport &BR) |
Provide custom definition for the final diagnostic piece on the path - the piece, which is displayed before the path is expanded. | |
virtual void | Profile (llvm::FoldingSetNodeID &ID) const =0 |
Static Public Member Functions | |
static const Expr * | getNilReceiver (const Stmt *S, const ExplodedNode *N) |
If the statement is a message send expression with nil receiver, returns the receiver expression. | |
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. | |
Prints path notes when a message is sent to a nil receiver.
Definition at line 430 of file BugReporterVisitors.h.
|
static |
If the statement is a message send expression with nil receiver, returns the receiver expression.
Returns NULL otherwise.
Definition at line 2621 of file BugReporterVisitors.cpp.
References clang::ento::ExplodedNode::getState(), clang::ento::ExplodedNode::getSVal(), and V.
|
inlineoverridevirtual |
Implements clang::ento::BugReporterVisitor.
Definition at line 432 of file BugReporterVisitors.h.
References ID.
|
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 2636 of file BugReporterVisitors.cpp.
References clang::ento::ExplodedNode::getLocationAs(), clang::ento::ExplodedNode::getLocationContext(), clang::ento::BugReporterContext::getSourceManager(), clang::ento::OS, P, clang::ento::bugreporter::Thorough, and clang::ento::bugreporter::trackExpressionValue().