clang 22.0.0git
clang::ento::PathDiagnosticConsumer Class Referenceabstract

#include "clang/Analysis/PathDiagnostic.h"

Classes

class  FilesMade
class  PDFileEntry

Public Types

enum  PathGenerationScheme { None , Minimal , Extensive , Everything }

Public Member Functions

 PathDiagnosticConsumer ()=default
virtual ~PathDiagnosticConsumer ()
void FlushDiagnostics (FilesMade *FilesMade)
virtual void FlushDiagnosticsImpl (std::vector< const PathDiagnostic * > &Diags, FilesMade *filesMade)=0
virtual StringRef getName () const =0
void HandlePathDiagnostic (std::unique_ptr< PathDiagnostic > D)
virtual PathGenerationScheme getGenerationScheme () const
bool shouldGenerateDiagnostics () const
bool shouldAddPathEdges () const
bool shouldAddControlNotes () const
virtual bool supportsLogicalOpControlFlow () const
virtual bool supportsCrossFileDiagnostics () const
 Return true if the PathDiagnosticConsumer supports individual PathDiagnostics that span multiple files.

Protected Attributes

bool flushed = false
llvm::FoldingSet< PathDiagnosticDiags

Detailed Description

Definition at line 92 of file PathDiagnostic.h.

Member Enumeration Documentation

◆ PathGenerationScheme

Enumerator
None 

Only runs visitors, no output generated.

Minimal 

Used for SARIF and text output.

Extensive 

Used for plist output, used for "arrows" generation.

Everything 

Used for HTML, shows both "arrows" and control notes.

Definition at line 142 of file PathDiagnostic.h.

Constructor & Destructor Documentation

◆ PathDiagnosticConsumer()

clang::ento::PathDiagnosticConsumer::PathDiagnosticConsumer ( )
default

◆ ~PathDiagnosticConsumer()

PathDiagnosticConsumer::~PathDiagnosticConsumer ( )
virtual

Definition at line 127 of file PathDiagnostic.cpp.

References Diag(), and Diags.

Member Function Documentation

◆ FlushDiagnostics()

void PathDiagnosticConsumer::FlushDiagnostics ( PathDiagnosticConsumer::FilesMade * Files)

Definition at line 396 of file PathDiagnostic.cpp.

References compare(), Diags, FlushDiagnosticsImpl(), flushed, int, and X.

◆ FlushDiagnosticsImpl()

virtual void clang::ento::PathDiagnosticConsumer::FlushDiagnosticsImpl ( std::vector< const PathDiagnostic * > & Diags,
FilesMade * filesMade )
pure virtual

References Diags.

Referenced by FlushDiagnostics().

◆ getGenerationScheme()

virtual PathGenerationScheme clang::ento::PathDiagnosticConsumer::getGenerationScheme ( ) const
inlinevirtual

Definition at line 156 of file PathDiagnostic.h.

References Minimal.

Referenced by shouldAddControlNotes(), shouldAddPathEdges(), and shouldGenerateDiagnostics().

◆ getName()

virtual StringRef clang::ento::PathDiagnosticConsumer::getName ( ) const
pure virtual

◆ HandlePathDiagnostic()

◆ shouldAddControlNotes()

bool clang::ento::PathDiagnosticConsumer::shouldAddControlNotes ( ) const
inline

Definition at line 163 of file PathDiagnostic.h.

References Everything, getGenerationScheme(), and Minimal.

◆ shouldAddPathEdges()

bool clang::ento::PathDiagnosticConsumer::shouldAddPathEdges ( ) const
inline

Definition at line 162 of file PathDiagnostic.h.

References Extensive, and getGenerationScheme().

◆ shouldGenerateDiagnostics()

bool clang::ento::PathDiagnosticConsumer::shouldGenerateDiagnostics ( ) const
inline

Definition at line 158 of file PathDiagnostic.h.

References getGenerationScheme(), and None.

◆ supportsCrossFileDiagnostics()

virtual bool clang::ento::PathDiagnosticConsumer::supportsCrossFileDiagnostics ( ) const
inlinevirtual

Return true if the PathDiagnosticConsumer supports individual PathDiagnostics that span multiple files.

Definition at line 172 of file PathDiagnostic.h.

Referenced by HandlePathDiagnostic().

◆ supportsLogicalOpControlFlow()

virtual bool clang::ento::PathDiagnosticConsumer::supportsLogicalOpControlFlow ( ) const
inlinevirtual

Definition at line 168 of file PathDiagnostic.h.

Member Data Documentation

◆ Diags

llvm::FoldingSet<PathDiagnostic> clang::ento::PathDiagnosticConsumer::Diags
protected

◆ flushed

bool clang::ento::PathDiagnosticConsumer::flushed = false
protected

Definition at line 175 of file PathDiagnostic.h.

Referenced by FlushDiagnostics().


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