clang
3.7.0
|
Prints path notes when a message is sent to a nil receiver. More...
#include <BugReporterVisitor.h>
Public Member Functions | |
void | Profile (llvm::FoldingSetNodeID &ID) const override |
PathDiagnosticPiece * | VisitNode (const ExplodedNode *N, const ExplodedNode *PrevN, BugReporterContext &BRC, BugReport &BR) override |
Return a diagnostic piece which should be associated with the given node. More... | |
![]() | |
virtual | ~BugReporterVisitor () |
virtual std::unique_ptr < PathDiagnosticPiece > | getEndPath (BugReporterContext &BRC, const ExplodedNode *N, BugReport &BR) |
Provide custom definition for the final diagnostic piece on the path - the piece, which is displayed before the path is expanded. More... | |
Static Public Member Functions | |
static const Expr * | getNilReceiver (const Stmt *S, const ExplodedNode *N) |
![]() | |
static std::unique_ptr < PathDiagnosticPiece > | getDefaultEndPath (BugReporterContext &BRC, const ExplodedNode *N, BugReport &BR) |
Generates the default final diagnostic piece. More... | |
Prints path notes when a message is sent to a nil receiver.
Definition at line 164 of file BugReporterVisitor.h.
|
static |
If the statement is a message send expression with nil receiver, returns the receiver expression. Returns NULL otherwise.
Definition at line 1051 of file BugReporterVisitors.cpp.
References clang::ObjCMessageExpr::getInstanceReceiver(), clang::ento::ExplodedNode::getLocationContext(), clang::ento::ExplodedNode::getState(), and S.
Referenced by clang::ento::bugreporter::trackNullOrUndefValue(), and VisitNode().
|
inlineoverridevirtual |
Implements clang::ento::BugReporterVisitor.
Definition at line 168 of file BugReporterVisitor.h.
|
overridevirtual |
Return a diagnostic piece which should be associated with the given node.
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 1065 of file BugReporterVisitors.cpp.
References clang::ento::ExplodedNode::getLocationAs(), clang::ento::ExplodedNode::getLocationContext(), getNilReceiver(), clang::ento::BugReporterContext::getSourceManager(), P, and clang::ento::bugreporter::trackNullOrUndefValue().