clang 17.0.0git
Public Member Functions | List of all members
clang::ento::taint::TaintBugVisitor Class Referencefinal

The bug visitor prints a diagnostic message at the location where a given variable was tainted. More...

#include "clang/StaticAnalyzer/Checkers/Taint.h"

Inheritance diagram for clang::ento::taint::TaintBugVisitor:
Inheritance graph
[legend]
Collaboration diagram for clang::ento::taint::TaintBugVisitor:
Collaboration graph
[legend]

Public Member Functions

 TaintBugVisitor (const SVal V)
 
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 &&)
 
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
 

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

The bug visitor prints a diagnostic message at the location where a given variable was tainted.

Definition at line 89 of file Taint.h.

Constructor & Destructor Documentation

◆ TaintBugVisitor()

clang::ento::taint::TaintBugVisitor::TaintBugVisitor ( const SVal  V)
inline

Definition at line 94 of file Taint.h.

References V.

Member Function Documentation

◆ Profile()

void clang::ento::taint::TaintBugVisitor::Profile ( llvm::FoldingSetNodeID &  ID) const
inlineoverridevirtual

Implements clang::ento::BugReporterVisitor.

Definition at line 95 of file Taint.h.

References V.

◆ VisitNode()

PathDiagnosticPieceRef TaintBugVisitor::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 235 of file Taint.cpp.

References clang::ento::PathDiagnosticLocation::asLocation(), clang::ento::PathDiagnosticLocation::createBegin(), clang::ento::ExplodedNode::getFirstPred(), clang::ento::ExplodedNode::getLocationContext(), clang::ento::BugReporterContext::getSourceManager(), clang::ento::ExplodedNode::getState(), clang::ento::ExplodedNode::getStmtForDiagnostics(), clang::ento::taint::isTainted(), clang::ento::PathDiagnosticLocation::isValid(), and clang::SourceLocation::isValid().


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