clang 10.0.0git

Public Member Functions | List of all members
clang::tooling::dependencies::ModuleDepCollectorPP Class Referencefinal

`#include "clang/Tooling/DependencyScanning/ModuleDepCollector.h"`

Inheritance diagram for clang::tooling::dependencies::ModuleDepCollectorPP:
[legend]
Collaboration diagram for clang::tooling::dependencies::ModuleDepCollectorPP:
[legend]

## Public Member Functions
| ModuleDepCollectorPP (CompilerInstance &I, ModuleDepCollector &MDC)
void | FileChanged (SourceLocation Loc, FileChangeReason Reason, SrcMgr::CharacteristicKind FileType, FileID PrevFID) override
| Callback invoked whenever a source file is entered or exited. More...
void | InclusionDirective (SourceLocation HashLoc, const Token &IncludeTok, StringRef FileName, bool IsAngled, CharSourceRange FilenameRange, const FileEntry *File, StringRef SearchPath, StringRef RelativePath, const Module *Imported, SrcMgr::CharacteristicKind FileType) override
| Callback invoked whenever an inclusion directive of any kind (`#include`, `#import`, etc.) has been processed, regardless of whether the inclusion will actually result in an inclusion. More...
void | EndOfMainFile () override
| Callback invoked when the end of the main file is reached. More...
Public Member Functions inherited from clang::PPCallbacks
virtual | ~PPCallbacks ()
virtual void | FileSkipped (const FileEntryRef &SkippedFile, const Token &FilenameTok, SrcMgr::CharacteristicKind FileType)
| Callback invoked whenever a source file is skipped as the result of header guard optimization. More...
virtual bool | FileNotFound (StringRef FileName, SmallVectorImpl< char > &RecoveryPath)
| Callback invoked whenever an inclusion directive results in a file-not-found error. More...
virtual void | EnteredSubmodule (Module *M, SourceLocation ImportLoc, bool ForPragma)
| Callback invoked whenever a submodule was entered. More...
virtual void | LeftSubmodule (Module *M, SourceLocation ImportLoc, bool ForPragma)
| Callback invoked whenever a submodule was left. More...
virtual void | moduleImport (SourceLocation ImportLoc, ModuleIdPath Path, const Module *Imported)
| Callback invoked whenever there was an explicit module-import syntax. More...
virtual void | Ident (SourceLocation Loc, StringRef str)
| Callback invoked when a #ident or #sccs directive is read. More...
virtual void | PragmaDirective (SourceLocation Loc, PragmaIntroducerKind Introducer)
| Callback invoked when start reading any pragma directive. More...
virtual void | PragmaComment (SourceLocation Loc, const IdentifierInfo *Kind, StringRef Str)
| Callback invoked when a #pragma comment directive is read. More...
virtual void | PragmaDetectMismatch (SourceLocation Loc, StringRef Name, StringRef Value)
| Callback invoked when a #pragma detect_mismatch directive is read. More...
virtual void | PragmaDebug (SourceLocation Loc, StringRef DebugType)
| Callback invoked when a #pragma clang __debug directive is read. More...
virtual void | PragmaMessage (SourceLocation Loc, StringRef Namespace, PragmaMessageKind Kind, StringRef Str)
| Callback invoked when a #pragma message directive is read. More...
virtual void | PragmaDiagnosticPush (SourceLocation Loc, StringRef Namespace)
| Callback invoked when a #pragma gcc diagnostic push directive is read. More...
virtual void | PragmaDiagnosticPop (SourceLocation Loc, StringRef Namespace)
| Callback invoked when a #pragma gcc diagnostic pop directive is read. More...
virtual void | PragmaDiagnostic (SourceLocation Loc, StringRef Namespace, diag::Severity mapping, StringRef Str)
| Callback invoked when a #pragma gcc diagnostic directive is read. More...
virtual void | PragmaOpenCLExtension (SourceLocation NameLoc, const IdentifierInfo *Name, SourceLocation StateLoc, unsigned State)
| Called when an OpenCL extension is either disabled or enabled with a pragma. More...
virtual void | PragmaWarning (SourceLocation Loc, StringRef WarningSpec, ArrayRef< int > Ids)
| Callback invoked when a #pragma warning directive is read. More...
virtual void | PragmaWarningPush (SourceLocation Loc, int Level)
| Callback invoked when a #pragma warning(push) directive is read. More...
virtual void | PragmaWarningPop (SourceLocation Loc)
| Callback invoked when a #pragma warning(pop) directive is read. More...
virtual void | PragmaExecCharsetPush (SourceLocation Loc, StringRef Str)
| Callback invoked when a #pragma execution_character_set(push) directive is read. More...
virtual void | PragmaExecCharsetPop (SourceLocation Loc)
| Callback invoked when a #pragma execution_character_set(pop) directive is read. More...
virtual void | PragmaAssumeNonNullBegin (SourceLocation Loc)
| Callback invoked when a #pragma clang assume_nonnull begin directive is read. More...
virtual void | PragmaAssumeNonNullEnd (SourceLocation Loc)
| Callback invoked when a #pragma clang assume_nonnull end directive is read. More...
virtual void | MacroExpands (const Token &MacroNameTok, const MacroDefinition &MD, SourceRange Range, const MacroArgs *Args)
| Called by Preprocessor::HandleMacroExpandedIdentifier when a macro invocation is found. More...
virtual void | MacroDefined (const Token &MacroNameTok, const MacroDirective *MD)
| Hook called whenever a macro definition is seen. More...
virtual void | MacroUndefined (const Token &MacroNameTok, const MacroDefinition &MD, const MacroDirective *Undef)
| Hook called whenever a macro #undef is seen. More...
virtual void | Defined (const Token &MacroNameTok, const MacroDefinition &MD, SourceRange Range)
| Hook called whenever the 'defined' operator is seen. More...
virtual void | HasInclude (SourceLocation Loc, StringRef FileName, bool IsAngled, Optional< FileEntryRef > File, SrcMgr::CharacteristicKind FileType)
| Hook called when a '__has_include' or '__has_include_next' directive is read. More...
virtual void | SourceRangeSkipped (SourceRange Range, SourceLocation EndifLoc)
| Hook called when a source range is skipped. More...
virtual void | If (SourceLocation Loc, SourceRange ConditionRange, ConditionValueKind ConditionValue)
| Hook called whenever an #if is seen. More...
virtual void | Elif (SourceLocation Loc, SourceRange ConditionRange, ConditionValueKind ConditionValue, SourceLocation IfLoc)
| Hook called whenever an #elif is seen. More...
virtual void | Ifdef (SourceLocation Loc, const Token &MacroNameTok, const MacroDefinition &MD)
| Hook called whenever an #ifdef is seen. More...
virtual void | Ifndef (SourceLocation Loc, const Token &MacroNameTok, const MacroDefinition &MD)
| Hook called whenever an #ifndef is seen. More...
virtual void | Else (SourceLocation Loc, SourceLocation IfLoc)
| Hook called whenever an #else is seen. More...
virtual void | Endif (SourceLocation Loc, SourceLocation IfLoc)
| Hook called whenever an #endif is seen. More...

## Additional Inherited Members
Public Types inherited from clang::PPCallbacks
enum | FileChangeReason { EnterFile, ExitFile, SystemHeaderPragma, RenameFile }
enum | PragmaMessageKind { PMK_Message, PMK_Warning, PMK_Error }
| Determines the kind of #pragma invoking a call to PragmaMessage. More...
enum | ConditionValueKind { CVK_NotEvaluated, CVK_False, CVK_True }

## Detailed Description

Definition at line 43 of file ModuleDepCollector.h.

## Constructor & Destructor Documentation

## ◆ ModuleDepCollectorPP()

clang::tooling::dependencies::ModuleDepCollectorPP::ModuleDepCollectorPP | ( | CompilerInstance & | I,
|  | ModuleDepCollector & | MDC
| ) |  |
| inline

Definition at line 45 of file ModuleDepCollector.h.

## Member Function Documentation

## ◆ EndOfMainFile()

void ModuleDepCollectorPP::EndOfMainFile | ( |  | ) |
| override virtual

Callback invoked when the end of the main file is reached.

No subsequent callbacks will be made.

Reimplemented from clang::PPCallbacks.

Definition at line 62 of file ModuleDepCollector.cpp.

References clang::tooling::dependencies::ModuleDeps::ClangModuleDeps, clang::tooling::dependencies::ModuleDeps::ClangModuleMapFile, clang::tooling::dependencies::ModuleDeps::ContextHash, clang::tooling::dependencies::ModuleDeps::FileDeps, clang::Module::getASTFile(), clang::CompilerInstance::getASTReader(), clang::ModuleMap::getContainingModuleMapFile(), clang::serialization::InputFile::getFile(), clang::SourceManager::getFileEntryForID(), clang::Module::getFullModuleName(), clang::Preprocessor::getHeaderSearchInfo(), clang::SourceManager::getMainFileID(), clang::HeaderSearch::getModuleMap(), clang::FileEntry::getName(), clang::CompilerInstance::getPreprocessor(), clang::CompilerInstance::getSourceManager(), clang::Module::getTopLevelModule(), clang::Module::getTopLevelModuleName(), clang::tooling::dependencies::DependencyConsumer::handleFileDependency(), clang::tooling::dependencies::DependencyConsumer::handleModuleDependency(), clang::Module::Imports, clang::SrcMgr::isSystem(), clang::tooling::dependencies::ModuleDeps::ModuleName, clang::tooling::dependencies::ModuleDeps::ModulePCMPath, and clang::Module::submodules().

## ◆ FileChanged()

void ModuleDepCollectorPP::FileChanged | ( | SourceLocation | Loc,
|  | FileChangeReason | Reason,
|  | SrcMgr::CharacteristicKind | FileType,
|  | FileID | PrevFID
| ) |  |
| override virtual

Callback invoked whenever a source file is entered or exited.

Parameters

  Loc | Indicates the new location.
  PrevFID | the file that was exited if `Reason` is ExitFile.

Reimplemented from clang::PPCallbacks.

Definition at line 20 of file ModuleDepCollector.cpp.

References clang::PPCallbacks::EnterFile, clang::SourceManager::getExpansionLoc(), clang::SourceManager::getFileEntryRefForID(), clang::SourceManager::getFileID(), clang::CompilerInstance::getSourceManager(), and SM.

## ◆ InclusionDirective()

void ModuleDepCollectorPP::InclusionDirective | ( | SourceLocation | HashLoc,
|  | const Token & | IncludeTok,
|  | StringRef | FileName,
|  | bool | IsAngled,
|  | CharSourceRange | FilenameRange,
|  | const FileEntry * | File,
|  | StringRef | SearchPath,
|  | StringRef | RelativePath,
|  | const Module * | Imported,
|  | SrcMgr::CharacteristicKind | FileType
| ) |  |
| override virtual

Callback invoked whenever an inclusion directive of any kind (`#include`, `#import`, etc.) has been processed, regardless of whether the inclusion will actually result in an inclusion.

Parameters

  HashLoc | The location of the '#' that starts the inclusion directive.
  IncludeTok | The token that indicates the kind of inclusion directive, e.g., 'include' or 'import'.
  FileName | The name of the file being included, as written in the source code.
  IsAngled | Whether the file name was enclosed in angle brackets; otherwise, it was enclosed in quotes.
  FilenameRange | The character range of the quotes or angle brackets for the written file name.
  File | The actual file that may be included by this inclusion directive.
  SearchPath | Contains the search path which was used to find the file in the file system. If the file was found via an absolute include path, SearchPath will be empty. For framework includes, the SearchPath and RelativePath will be split up. For example, if an include of "Some/Some.h" is found via the framework path "path/to/Frameworks/Some.framework/Headers/Some.h", SearchPath will be "path/to/Frameworks/Some.framework/Headers" and RelativePath will be "Some.h".
  RelativePath | The path relative to SearchPath, at which the include file was found. This is equal to FileName except for framework includes.
  Imported | The module, whenever an inclusion directive was automatically turned into a module import or null otherwise.
  FileType | The characteristic kind, indicates whether a file or directory holds normal user code, system code, or system code which is implicitly 'extern "C"' in C++ mode.

Reimplemented from clang::PPCallbacks.

Definition at line 43 of file ModuleDepCollector.cpp.

References clang::Module::getFullModuleName(), and clang::Module::getTopLevelModule().

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

- include/clang/Tooling/DependencyScanning/ModuleDepCollector.h
- lib/Tooling/DependencyScanning/ModuleDepCollector.cpp