clang  15.0.0git
Public Member Functions | List of all members
clang::Diagnostic Class Reference

A little helper class (which is basically a smart pointer that forwards info from DiagnosticsEngine) that allows clients to enquire about the currently in-flight diagnostic. More...

#include "clang/Basic/Diagnostic.h"

Public Member Functions

 Diagnostic (const DiagnosticsEngine *DO)
 
 Diagnostic (const DiagnosticsEngine *DO, StringRef storedDiagMessage)
 
const DiagnosticsEnginegetDiags () const
 
unsigned getID () const
 
const SourceLocationgetLocation () const
 
bool hasSourceManager () const
 
SourceManagergetSourceManager () const
 
unsigned getNumArgs () const
 
DiagnosticsEngine::ArgumentKind getArgKind (unsigned Idx) const
 Return the kind of the specified index. More...
 
const std::stringgetArgStdStr (unsigned Idx) const
 Return the provided argument string specified by Idx. More...
 
const char * getArgCStr (unsigned Idx) const
 Return the specified C string argument. More...
 
int64_t getArgSInt (unsigned Idx) const
 Return the specified signed integer argument. More...
 
uint64_t getArgUInt (unsigned Idx) const
 Return the specified unsigned integer argument. More...
 
const IdentifierInfogetArgIdentifier (unsigned Idx) const
 Return the specified IdentifierInfo argument. More...
 
uint64_t getRawArg (unsigned Idx) const
 Return the specified non-string argument in an opaque form. More...
 
unsigned getNumRanges () const
 Return the number of source ranges associated with this diagnostic. More...
 
const CharSourceRangegetRange (unsigned Idx) const
 
ArrayRef< CharSourceRangegetRanges () const
 Return an array reference for this diagnostic's ranges. More...
 
unsigned getNumFixItHints () const
 
const FixItHintgetFixItHint (unsigned Idx) const
 
ArrayRef< FixItHintgetFixItHints () const
 
void FormatDiagnostic (SmallVectorImpl< char > &OutStr) const
 Format this diagnostic into a string, substituting the formal arguments into the %0 slots. More...
 
void FormatDiagnostic (const char *DiagStr, const char *DiagEnd, SmallVectorImpl< char > &OutStr) const
 Format the given format-string into the output buffer using the arguments stored in this diagnostic. More...
 

Detailed Description

A little helper class (which is basically a smart pointer that forwards info from DiagnosticsEngine) that allows clients to enquire about the currently in-flight diagnostic.

Definition at line 1561 of file Diagnostic.h.

Constructor & Destructor Documentation

◆ Diagnostic() [1/2]

clang::Diagnostic::Diagnostic ( const DiagnosticsEngine DO)
inlineexplicit

Definition at line 1566 of file Diagnostic.h.

◆ Diagnostic() [2/2]

clang::Diagnostic::Diagnostic ( const DiagnosticsEngine DO,
StringRef  storedDiagMessage 
)
inline

Definition at line 1567 of file Diagnostic.h.

Member Function Documentation

◆ FormatDiagnostic() [1/2]

void Diagnostic::FormatDiagnostic ( const char *  DiagStr,
const char *  DiagEnd,
SmallVectorImpl< char > &  OutStr 
) const

Format the given format-string into the output buffer using the arguments stored in this diagnostic.

FormattedArgs - Keep track of all of the arguments formatted by ConvertArgToString and pass them into subsequent calls to ConvertArgToString, allowing the implementation to avoid redundancies in obvious cases.

QualTypeVals - Pass a vector of arrays so that QualType names can be compared to see if more information is needed to be printed.

Definition at line 852 of file Diagnostic.cpp.

References clang::DiagnosticsEngine::ak_std_string, clang::threadSafety::sx::equals(), getArgKind(), and string().

◆ FormatDiagnostic() [2/2]

void Diagnostic::FormatDiagnostic ( SmallVectorImpl< char > &  OutStr) const

Format this diagnostic into a string, substituting the formal arguments into the %0 slots.

FormatDiagnostic - Format this diagnostic into a string, substituting the formal arguments into the %0 slots.

The result is appended onto the OutStr array.

The result is appended onto the Str array.

Definition at line 795 of file Diagnostic.cpp.

References Diag(), clang::DiagnosticsEngine::getDiagnosticIDs(), getDiags(), and getID().

Referenced by clang::PartialDiagnostic::EmitToString(), clang::format::FatalDiagnosticConsumer::HandleDiagnostic(), clang::TextDiagnosticPrinter::HandleDiagnostic(), clang::TextDiagnosticBuffer::HandleDiagnostic(), clang::LogDiagnosticPrinter::HandleDiagnostic(), HandlePluralModifier(), HandleSelectModifier(), and clang::StoredDiagnostic::StoredDiagnostic().

◆ getArgCStr()

const char* clang::Diagnostic::getArgCStr ( unsigned  Idx) const
inline

Return the specified C string argument.

Precondition
getArgKind(Idx) == DiagnosticsEngine::ak_c_string

Definition at line 1600 of file Diagnostic.h.

References clang::DiagnosticsEngine::ak_c_string, clang::DiagnosticStorage::DiagArgumentsVal, and getArgKind().

◆ getArgIdentifier()

const IdentifierInfo* clang::Diagnostic::getArgIdentifier ( unsigned  Idx) const
inline

Return the specified IdentifierInfo argument.

Precondition
getArgKind(Idx) == DiagnosticsEngine::ak_identifierinfo

Definition at line 1625 of file Diagnostic.h.

References clang::DiagnosticsEngine::ak_identifierinfo, clang::DiagnosticStorage::DiagArgumentsVal, and getArgKind().

◆ getArgKind()

DiagnosticsEngine::ArgumentKind clang::Diagnostic::getArgKind ( unsigned  Idx) const
inline

Return the kind of the specified index.

Based on the kind of argument, the accessors below can be used to get the value.

Precondition
Idx < getNumArgs()

Definition at line 1584 of file Diagnostic.h.

References clang::DiagnosticStorage::DiagArgumentsKind, and getNumArgs().

Referenced by FormatDiagnostic(), getArgCStr(), getArgIdentifier(), getArgSInt(), getArgStdStr(), getArgUInt(), getRawArg(), and clang::PartialDiagnostic::PartialDiagnostic().

◆ getArgSInt()

int64_t clang::Diagnostic::getArgSInt ( unsigned  Idx) const
inline

Return the specified signed integer argument.

Precondition
getArgKind(Idx) == DiagnosticsEngine::ak_sint

Definition at line 1609 of file Diagnostic.h.

References clang::DiagnosticsEngine::ak_sint, clang::DiagnosticStorage::DiagArgumentsVal, and getArgKind().

◆ getArgStdStr()

const std::string& clang::Diagnostic::getArgStdStr ( unsigned  Idx) const
inline

Return the provided argument string specified by Idx.

Precondition
getArgKind(Idx) == DiagnosticsEngine::ak_std_string

Definition at line 1592 of file Diagnostic.h.

References clang::DiagnosticsEngine::ak_std_string, clang::DiagnosticStorage::DiagArgumentsStr, and getArgKind().

Referenced by clang::PartialDiagnostic::PartialDiagnostic().

◆ getArgUInt()

uint64_t clang::Diagnostic::getArgUInt ( unsigned  Idx) const
inline

Return the specified unsigned integer argument.

Precondition
getArgKind(Idx) == DiagnosticsEngine::ak_uint

Definition at line 1617 of file Diagnostic.h.

References clang::DiagnosticsEngine::ak_uint, clang::DiagnosticStorage::DiagArgumentsVal, and getArgKind().

◆ getDiags()

const DiagnosticsEngine* clang::Diagnostic::getDiags ( ) const
inline

Definition at line 1570 of file Diagnostic.h.

Referenced by FormatDiagnostic(), and printDiagnosticOptions().

◆ getFixItHint()

const FixItHint& clang::Diagnostic::getFixItHint ( unsigned  Idx) const
inline

◆ getFixItHints()

ArrayRef<FixItHint> clang::Diagnostic::getFixItHints ( ) const
inline

◆ getID()

unsigned clang::Diagnostic::getID ( ) const
inline

◆ getLocation()

const SourceLocation& clang::Diagnostic::getLocation ( ) const
inline

◆ getNumArgs()

unsigned clang::Diagnostic::getNumArgs ( ) const
inline

◆ getNumFixItHints()

unsigned clang::Diagnostic::getNumFixItHints ( ) const
inline

◆ getNumRanges()

unsigned clang::Diagnostic::getNumRanges ( ) const
inline

Return the number of source ranges associated with this diagnostic.

Definition at line 1641 of file Diagnostic.h.

References clang::DiagnosticStorage::DiagRanges.

Referenced by getRange(), and clang::PartialDiagnostic::PartialDiagnostic().

◆ getRange()

const CharSourceRange& clang::Diagnostic::getRange ( unsigned  Idx) const
inline
Precondition
Idx < getNumRanges()

Definition at line 1646 of file Diagnostic.h.

References clang::DiagnosticStorage::DiagRanges, and getNumRanges().

Referenced by clang::PartialDiagnostic::PartialDiagnostic().

◆ getRanges()

ArrayRef<CharSourceRange> clang::Diagnostic::getRanges ( ) const
inline

Return an array reference for this diagnostic's ranges.

Definition at line 1652 of file Diagnostic.h.

References clang::DiagnosticStorage::DiagRanges.

Referenced by clang::TextDiagnosticPrinter::HandleDiagnostic(), and clang::StoredDiagnostic::StoredDiagnostic().

◆ getRawArg()

uint64_t clang::Diagnostic::getRawArg ( unsigned  Idx) const
inline

Return the specified non-string argument in an opaque form.

Precondition
getArgKind(Idx) != DiagnosticsEngine::ak_std_string

Definition at line 1634 of file Diagnostic.h.

References clang::DiagnosticsEngine::ak_std_string, clang::DiagnosticStorage::DiagArgumentsVal, and getArgKind().

Referenced by clang::PartialDiagnostic::PartialDiagnostic().

◆ getSourceManager()

SourceManager& clang::Diagnostic::getSourceManager ( ) const
inline

◆ hasSourceManager()

bool clang::Diagnostic::hasSourceManager ( ) const
inline

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