|
clang-tools 23.0.0git
|
This class overrides the PPCallbacks class for tracking preprocessor activity by means of its callback functions. More...
#include <PPCallbacksTracker.h>
Public Member Functions | |
| PPCallbacksTracker (const FilterType &Filters, std::vector< CallbackCall > &CallbackCalls, Preprocessor &PP) | |
| Note that all of the arguments are references, and owned by the caller. | |
| ~PPCallbacksTracker () override | |
| void | FileChanged (SourceLocation Loc, PPCallbacks::FileChangeReason Reason, SrcMgr::CharacteristicKind FileType, FileID PrevFID=FileID()) override |
| void | FileSkipped (const FileEntryRef &SkippedFile, const Token &FilenameTok, SrcMgr::CharacteristicKind FileType) override |
| void | InclusionDirective (SourceLocation HashLoc, const Token &IncludeTok, llvm::StringRef FileName, bool IsAngled, CharSourceRange FilenameRange, OptionalFileEntryRef File, llvm::StringRef SearchPath, llvm::StringRef RelativePath, const Module *SuggestedModule, bool ModuleImported, SrcMgr::CharacteristicKind FileType) override |
| void | moduleImport (SourceLocation ImportLoc, ModuleIdPath Path, const Module *Imported) override |
| void | EndOfMainFile () override |
| void | Ident (SourceLocation Loc, llvm::StringRef str) override |
| void | PragmaDirective (SourceLocation Loc, PragmaIntroducerKind Introducer) override |
| void | PragmaComment (SourceLocation Loc, const IdentifierInfo *Kind, llvm::StringRef Str) override |
| void | PragmaDetectMismatch (SourceLocation Loc, llvm::StringRef Name, llvm::StringRef Value) override |
| void | PragmaDebug (SourceLocation Loc, llvm::StringRef DebugType) override |
| void | PragmaMessage (SourceLocation Loc, llvm::StringRef Namespace, PPCallbacks::PragmaMessageKind Kind, llvm::StringRef Str) override |
| void | PragmaDiagnosticPush (SourceLocation Loc, llvm::StringRef Namespace) override |
| void | PragmaDiagnosticPop (SourceLocation Loc, llvm::StringRef Namespace) override |
| void | PragmaDiagnostic (SourceLocation Loc, llvm::StringRef Namespace, diag::Severity mapping, llvm::StringRef Str) override |
| void | PragmaOpenCLExtension (SourceLocation NameLoc, const IdentifierInfo *Name, SourceLocation StateLoc, unsigned State) override |
| void | PragmaWarning (SourceLocation Loc, PragmaWarningSpecifier WarningSpec, llvm::ArrayRef< int > Ids) override |
| void | PragmaWarningPush (SourceLocation Loc, int Level) override |
| void | PragmaWarningPop (SourceLocation Loc) override |
| void | PragmaExecCharsetPush (SourceLocation Loc, StringRef Str) override |
| void | PragmaExecCharsetPop (SourceLocation Loc) override |
| void | MacroExpands (const Token &MacroNameTok, const MacroDefinition &MD, SourceRange Range, const MacroArgs *Args) override |
| void | MacroDefined (const Token &MacroNameTok, const MacroDirective *MD) override |
| void | MacroUndefined (const Token &MacroNameTok, const MacroDefinition &MD, const MacroDirective *Undef) override |
| void | Defined (const Token &MacroNameTok, const MacroDefinition &MD, SourceRange Range) override |
| void | SourceRangeSkipped (SourceRange Range, SourceLocation EndifLoc) override |
| void | If (SourceLocation Loc, SourceRange ConditionRange, ConditionValueKind ConditionValue) override |
| void | Elif (SourceLocation Loc, SourceRange ConditionRange, ConditionValueKind ConditionValue, SourceLocation IfLoc) override |
| void | Ifdef (SourceLocation Loc, const Token &MacroNameTok, const MacroDefinition &MD) override |
| void | Ifndef (SourceLocation Loc, const Token &MacroNameTok, const MacroDefinition &MD) override |
| void | Else (SourceLocation Loc, SourceLocation IfLoc) override |
| void | Endif (SourceLocation Loc, SourceLocation IfLoc) override |
| void | beginCallback (const char *Name) |
| Start a new callback. | |
| void | append (const char *Str) |
| Append a string to the top trace item. | |
| void | appendArgument (const char *Name, bool Value) |
| Append a bool argument to the top trace item. | |
| void | appendArgument (const char *Name, int Value) |
| Append an int argument to the top trace item. | |
| void | appendArgument (const char *Name, const char *Value) |
| Append a string argument to the top trace item. | |
| void | appendArgument (const char *Name, llvm::StringRef Value) |
| Append a string reference object argument to the top trace item. | |
| void | appendArgument (const char *Name, const std::string &Value) |
| Append a string object argument to the top trace item. | |
| void | appendArgument (const char *Name, const Token &Value) |
| Append a token argument to the top trace item. | |
| void | appendArgument (const char *Name, int Value, const char *const Strings[]) |
| Append an enum argument to the top trace item. | |
| void | appendArgument (const char *Name, FileID Value) |
| Append a FileID argument to the top trace item. | |
| void | appendArgument (const char *Name, OptionalFileEntryRef Value) |
| Append a FileEntryRef argument to the top trace item. | |
| void | appendArgument (const char *Name, FileEntryRef Value) |
| void | appendArgument (const char *Name, SourceLocation Value) |
| Append a SourceLocation argument to the top trace item. | |
| void | appendArgument (const char *Name, SourceRange Value) |
| Append a SourceRange argument to the top trace item. | |
| void | appendArgument (const char *Name, CharSourceRange Value) |
| Append a CharSourceRange argument to the top trace item. | |
| void | appendArgument (const char *Name, ModuleIdPath Value) |
| Append a ModuleIdPath argument to the top trace item. | |
| void | appendArgument (const char *Name, const IdentifierInfo *Value) |
| Append an IdentifierInfo argument to the top trace item. | |
| void | appendArgument (const char *Name, const MacroDirective *Value) |
| Append a MacroDirective argument to the top trace item. | |
| void | appendArgument (const char *Name, const MacroDefinition &Value) |
| Append a MacroDefinition argument to the top trace item. | |
| void | appendArgument (const char *Name, const MacroArgs *Value) |
| Append a MacroArgs argument to the top trace item. | |
| void | appendArgument (const char *Name, const Module *Value) |
| Append a Module argument to the top trace item. | |
| void | appendQuotedArgument (const char *Name, const std::string &Value) |
| Append a double-quoted argument to the top trace item. | |
| void | appendFilePathArgument (const char *Name, llvm::StringRef Value) |
| Append a double-quoted file path argument to the top trace item. | |
| llvm::StringRef | getSourceString (CharSourceRange Range) |
| Get the raw source string of the range. | |
Public Attributes | |
| std::vector< CallbackCall > & | CallbackCalls |
| Callback trace information. | |
| const FilterType & | Filters |
| llvm::StringMap< bool > | CallbackIsEnabled |
| bool | DisableTrace |
| Inhibit trace while this is set. | |
| Preprocessor & | PP |
This class overrides the PPCallbacks class for tracking preprocessor activity by means of its callback functions.
This object is given a vector for storing the trace information, built up of CallbackCall and subordinate Argument objects for representing the callback calls and their arguments. It's a reference so the vector can exist beyond the lifetime of this object, because it's deleted by the preprocessor automatically in its destructor.
This class supports a mechanism for inhibiting trace output for specific callbacks by name, for the purpose of eliminating output for callbacks of no interest that might clutter the output.
Following the constructor and destructor function declarations, the overridden callback functions are defined. The remaining functions are helpers for recording the trace data, to reduce the coupling between it and the recorded data structure.
Definition at line 74 of file PPCallbacksTracker.h.
| clang::pp_trace::PPCallbacksTracker::PPCallbacksTracker | ( | const FilterType & | Filters, |
| std::vector< CallbackCall > & | CallbackCalls, | ||
| Preprocessor & | PP ) |
Note that all of the arguments are references, and owned by the caller.
| Filters | - List of (Glob,Enabled) pairs used to filter callbacks. |
| CallbackCalls | - Trace buffer. |
| PP | - The preprocessor. Needed for getting some argument strings. |
Definition at line 100 of file PPCallbacksTracker.cpp.
References CallbackCalls, Filters, and PP.
|
override |
Definition at line 105 of file PPCallbacksTracker.cpp.
| void clang::pp_trace::PPCallbacksTracker::append | ( | const char * | Str | ) |
Append a string to the top trace item.
| void clang::pp_trace::PPCallbacksTracker::appendArgument | ( | const char * | Name, |
| bool | Value ) |
Append a bool argument to the top trace item.
Definition at line 434 of file PPCallbacksTracker.cpp.
References appendArgument().
Referenced by appendArgument(), appendArgument(), appendArgument(), appendArgument(), appendArgument(), appendArgument(), appendArgument(), appendArgument(), appendArgument(), appendArgument(), appendArgument(), appendArgument(), appendArgument(), appendArgument(), appendArgument(), appendArgument(), appendArgument(), appendQuotedArgument(), Defined(), Elif(), Else(), Endif(), FileChanged(), FileSkipped(), Ident(), If(), Ifdef(), Ifndef(), InclusionDirective(), MacroDefined(), MacroExpands(), MacroUndefined(), moduleImport(), PragmaComment(), PragmaDebug(), PragmaDetectMismatch(), PragmaDiagnostic(), PragmaDiagnosticPop(), PragmaDiagnosticPush(), PragmaDirective(), PragmaExecCharsetPop(), PragmaExecCharsetPush(), PragmaMessage(), PragmaOpenCLExtension(), PragmaWarning(), PragmaWarningPop(), PragmaWarningPush(), and SourceRangeSkipped().
| void clang::pp_trace::PPCallbacksTracker::appendArgument | ( | const char * | Name, |
| CharSourceRange | Value ) |
Append a CharSourceRange argument to the top trace item.
Definition at line 531 of file PPCallbacksTracker.cpp.
References appendArgument(), and getSourceString().
| void clang::pp_trace::PPCallbacksTracker::appendArgument | ( | const char * | Name, |
| const char * | Value ) |
Append a string argument to the top trace item.
Definition at line 447 of file PPCallbacksTracker.cpp.
References CallbackCalls, and DisableTrace.
| void clang::pp_trace::PPCallbacksTracker::appendArgument | ( | const char * | Name, |
| const IdentifierInfo * | Value ) |
Append an IdentifierInfo argument to the top trace item.
Definition at line 559 of file PPCallbacksTracker.cpp.
References appendArgument().
| void clang::pp_trace::PPCallbacksTracker::appendArgument | ( | const char * | Name, |
| const MacroArgs * | Value ) |
Append a MacroArgs argument to the top trace item.
Definition at line 598 of file PPCallbacksTracker.cpp.
References appendArgument(), and PP.
| void clang::pp_trace::PPCallbacksTracker::appendArgument | ( | const char * | Name, |
| const MacroDefinition & | Value ) |
Append a MacroDefinition argument to the top trace item.
Definition at line 579 of file PPCallbacksTracker.cpp.
References appendArgument().
| void clang::pp_trace::PPCallbacksTracker::appendArgument | ( | const char * | Name, |
| const MacroDirective * | Value ) |
Append a MacroDirective argument to the top trace item.
Definition at line 569 of file PPCallbacksTracker.cpp.
References appendArgument(), and clang::pp_trace::MacroDirectiveKindStrings.
| void clang::pp_trace::PPCallbacksTracker::appendArgument | ( | const char * | Name, |
| const Module * | Value ) |
Append a Module argument to the top trace item.
Definition at line 635 of file PPCallbacksTracker.cpp.
References appendArgument().
| void clang::pp_trace::PPCallbacksTracker::appendArgument | ( | const char * | Name, |
| const std::string & | Value ) |
Append a string object argument to the top trace item.
Definition at line 460 of file PPCallbacksTracker.cpp.
References appendArgument().
| void clang::pp_trace::PPCallbacksTracker::appendArgument | ( | const char * | Name, |
| const Token & | Value ) |
Append a token argument to the top trace item.
Definition at line 466 of file PPCallbacksTracker.cpp.
References appendArgument(), and PP.
| void clang::pp_trace::PPCallbacksTracker::appendArgument | ( | const char * | Name, |
| FileEntryRef | Value ) |
Definition at line 501 of file PPCallbacksTracker.cpp.
References appendFilePathArgument().
| void clang::pp_trace::PPCallbacksTracker::appendArgument | ( | const char * | Name, |
| FileID | Value ) |
Append a FileID argument to the top trace item.
Definition at line 477 of file PPCallbacksTracker.cpp.
References appendArgument(), appendFilePathArgument(), and PP.
| void clang::pp_trace::PPCallbacksTracker::appendArgument | ( | const char * | Name, |
| int | Value ) |
Append an int argument to the top trace item.
Definition at line 439 of file PPCallbacksTracker.cpp.
References appendArgument().
| void clang::pp_trace::PPCallbacksTracker::appendArgument | ( | const char * | Name, |
| int | Value, | ||
| const char *const | Strings[] ) |
Append an enum argument to the top trace item.
Definition at line 471 of file PPCallbacksTracker.cpp.
References appendArgument().
| void clang::pp_trace::PPCallbacksTracker::appendArgument | ( | const char * | Name, |
| llvm::StringRef | Value ) |
Append a string reference object argument to the top trace item.
Definition at line 454 of file PPCallbacksTracker.cpp.
References appendArgument().
| void clang::pp_trace::PPCallbacksTracker::appendArgument | ( | const char * | Name, |
| ModuleIdPath | Value ) |
Append a ModuleIdPath argument to the top trace item.
Definition at line 541 of file PPCallbacksTracker.cpp.
References appendArgument(), DisableTrace, clang::pp_trace::getSourceLocationString(), and PP.
| void clang::pp_trace::PPCallbacksTracker::appendArgument | ( | const char * | Name, |
| OptionalFileEntryRef | Value ) |
Append a FileEntryRef argument to the top trace item.
Definition at line 492 of file PPCallbacksTracker.cpp.
References appendArgument().
| void clang::pp_trace::PPCallbacksTracker::appendArgument | ( | const char * | Name, |
| SourceLocation | Value ) |
Append a SourceLocation argument to the top trace item.
Definition at line 506 of file PPCallbacksTracker.cpp.
References appendArgument(), clang::pp_trace::getSourceLocationString(), and PP.
| void clang::pp_trace::PPCallbacksTracker::appendArgument | ( | const char * | Name, |
| SourceRange | Value ) |
Append a SourceRange argument to the top trace item.
Definition at line 516 of file PPCallbacksTracker.cpp.
References appendArgument(), DisableTrace, clang::pp_trace::getSourceLocationString(), and PP.
| void clang::pp_trace::PPCallbacksTracker::appendFilePathArgument | ( | const char * | Name, |
| llvm::StringRef | Value ) |
Append a double-quoted file path argument to the top trace item.
Definition at line 653 of file PPCallbacksTracker.cpp.
References appendQuotedArgument().
Referenced by appendArgument(), appendArgument(), and InclusionDirective().
| void clang::pp_trace::PPCallbacksTracker::appendQuotedArgument | ( | const char * | Name, |
| const std::string & | Value ) |
Append a double-quoted argument to the top trace item.
Definition at line 644 of file PPCallbacksTracker.cpp.
References appendArgument().
Referenced by appendFilePathArgument().
| void clang::pp_trace::PPCallbacksTracker::beginCallback | ( | const char * | Name | ) |
Start a new callback.
Definition at line 419 of file PPCallbacksTracker.cpp.
References CallbackCalls, CallbackIsEnabled, DisableTrace, and Filters.
Referenced by Defined(), Elif(), Else(), Endif(), EndOfMainFile(), FileChanged(), FileSkipped(), Ident(), If(), Ifdef(), Ifndef(), InclusionDirective(), MacroDefined(), MacroExpands(), MacroUndefined(), moduleImport(), PragmaComment(), PragmaDebug(), PragmaDetectMismatch(), PragmaDiagnostic(), PragmaDiagnosticPop(), PragmaDiagnosticPush(), PragmaDirective(), PragmaExecCharsetPop(), PragmaExecCharsetPush(), PragmaMessage(), PragmaOpenCLExtension(), PragmaWarning(), PragmaWarningPop(), PragmaWarningPush(), and SourceRangeSkipped().
|
override |
Definition at line 348 of file PPCallbacksTracker.cpp.
References appendArgument(), and beginCallback().
|
override |
Definition at line 374 of file PPCallbacksTracker.cpp.
References appendArgument(), beginCallback(), and clang::pp_trace::ConditionValueKindStrings.
|
override |
Definition at line 403 of file PPCallbacksTracker.cpp.
References appendArgument(), and beginCallback().
|
override |
Definition at line 410 of file PPCallbacksTracker.cpp.
References appendArgument(), and beginCallback().
|
override |
Definition at line 167 of file PPCallbacksTracker.cpp.
References beginCallback().
|
override |
Definition at line 110 of file PPCallbacksTracker.cpp.
References appendArgument(), beginCallback(), clang::pp_trace::CharacteristicKindStrings, and clang::pp_trace::FileChangeReasonStrings.
|
override |
Definition at line 123 of file PPCallbacksTracker.cpp.
References appendArgument(), beginCallback(), and clang::pp_trace::CharacteristicKindStrings.
| llvm::StringRef clang::pp_trace::PPCallbacksTracker::getSourceString | ( | CharSourceRange | Range | ) |
Get the raw source string of the range.
Definition at line 662 of file PPCallbacksTracker.cpp.
References PP.
Referenced by appendArgument().
|
override |
Definition at line 170 of file PPCallbacksTracker.cpp.
References appendArgument(), and beginCallback().
|
override |
Definition at line 365 of file PPCallbacksTracker.cpp.
References appendArgument(), beginCallback(), and clang::pp_trace::ConditionValueKindStrings.
|
override |
Definition at line 385 of file PPCallbacksTracker.cpp.
References appendArgument(), and beginCallback().
|
override |
Definition at line 394 of file PPCallbacksTracker.cpp.
References appendArgument(), and beginCallback().
|
override |
Definition at line 135 of file PPCallbacksTracker.cpp.
References appendArgument(), appendFilePathArgument(), and beginCallback().
|
override |
Definition at line 331 of file PPCallbacksTracker.cpp.
References appendArgument(), and beginCallback().
|
override |
Definition at line 319 of file PPCallbacksTracker.cpp.
References appendArgument(), and beginCallback().
|
override |
Definition at line 339 of file PPCallbacksTracker.cpp.
References appendArgument(), and beginCallback().
|
override |
Definition at line 156 of file PPCallbacksTracker.cpp.
References appendArgument(), and beginCallback().
|
override |
Definition at line 185 of file PPCallbacksTracker.cpp.
References appendArgument(), and beginCallback().
|
override |
Definition at line 206 of file PPCallbacksTracker.cpp.
References appendArgument(), and beginCallback().
|
override |
Definition at line 196 of file PPCallbacksTracker.cpp.
References appendArgument(), and beginCallback().
|
override |
Definition at line 244 of file PPCallbacksTracker.cpp.
References appendArgument(), beginCallback(), and clang::pp_trace::MappingStrings.
|
override |
Definition at line 236 of file PPCallbacksTracker.cpp.
References appendArgument(), and beginCallback().
|
override |
Definition at line 227 of file PPCallbacksTracker.cpp.
References appendArgument(), and beginCallback().
|
override |
Definition at line 177 of file PPCallbacksTracker.cpp.
References appendArgument(), beginCallback(), and clang::pp_trace::PragmaIntroducerKindStrings.
|
override |
Definition at line 312 of file PPCallbacksTracker.cpp.
References appendArgument(), and beginCallback().
|
override |
Definition at line 303 of file PPCallbacksTracker.cpp.
References appendArgument(), and beginCallback().
|
override |
Definition at line 214 of file PPCallbacksTracker.cpp.
References appendArgument(), beginCallback(), and clang::pp_trace::PragmaMessageKindStrings.
|
override |
Definition at line 257 of file PPCallbacksTracker.cpp.
References appendArgument(), and beginCallback().
|
override |
Definition at line 269 of file PPCallbacksTracker.cpp.
References appendArgument(), beginCallback(), and clang::pp_trace::PragmaWarningSpecifierStrings.
|
override |
Definition at line 296 of file PPCallbacksTracker.cpp.
References appendArgument(), and beginCallback().
|
override |
Definition at line 289 of file PPCallbacksTracker.cpp.
References appendArgument(), and beginCallback().
|
override |
Definition at line 358 of file PPCallbacksTracker.cpp.
References appendArgument(), and beginCallback().
| std::vector<CallbackCall>& clang::pp_trace::PPCallbacksTracker::CallbackCalls |
Callback trace information.
We use a reference so the trace will be preserved for the caller after this object is destructed.
Definition at line 224 of file PPCallbacksTracker.h.
Referenced by appendArgument(), beginCallback(), and PPCallbacksTracker().
| llvm::StringMap<bool> clang::pp_trace::PPCallbacksTracker::CallbackIsEnabled |
Definition at line 230 of file PPCallbacksTracker.h.
Referenced by beginCallback().
| bool clang::pp_trace::PPCallbacksTracker::DisableTrace |
Inhibit trace while this is set.
Definition at line 233 of file PPCallbacksTracker.h.
Referenced by appendArgument(), appendArgument(), appendArgument(), and beginCallback().
| const FilterType& clang::pp_trace::PPCallbacksTracker::Filters |
Definition at line 227 of file PPCallbacksTracker.h.
Referenced by beginCallback(), and PPCallbacksTracker().
| Preprocessor& clang::pp_trace::PPCallbacksTracker::PP |
Definition at line 235 of file PPCallbacksTracker.h.
Referenced by appendArgument(), appendArgument(), appendArgument(), appendArgument(), appendArgument(), appendArgument(), getSourceString(), and PPCallbacksTracker().