clang 22.0.0git
ModuleDepCollector.h File Reference
#include "clang/Basic/LLVM.h"
#include "clang/Basic/Module.h"
#include "clang/Basic/SourceManager.h"
#include "clang/Frontend/CompilerInvocation.h"
#include "clang/Frontend/Utils.h"
#include "clang/Lex/HeaderSearch.h"
#include "clang/Lex/PPCallbacks.h"
#include "clang/Serialization/ASTReader.h"
#include "clang/Tooling/DependencyScanning/DependencyScanningService.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/Hashing.h"
#include "llvm/ADT/StringSet.h"
#include "llvm/Support/raw_ostream.h"
#include <optional>
#include <string>
#include <unordered_map>
#include <variant>

Go to the source code of this file.

Classes

struct  clang::tooling::dependencies::PrebuiltModuleDep
 Modular dependency that has already been built prior to the dependency scan. More...
class  clang::tooling::dependencies::PrebuiltModuleASTAttrs
struct  clang::tooling::dependencies::ModuleID
 This is used to identify a specific module. More...
struct  clang::tooling::dependencies::P1689ModuleInfo
 P1689ModuleInfo - Represents the needed information of standard C++20 modules for P1689 format. More...
struct  clang::tooling::dependencies::ModuleDeps
class  clang::tooling::dependencies::ModuleDepCollectorPP
 Callback that records textual includes and direct modular includes/imports during preprocessing. More...
class  clang::tooling::dependencies::ModuleDepCollector
 Collects modular and non-modular dependencies of the main file by attaching ModuleDepCollectorPP to the preprocessor. More...
struct  llvm::DenseMapInfo< clang::tooling::dependencies::ModuleID >

Namespaces

namespace  clang
 The JSON file list parser is used to communicate input to InstallAPI.
namespace  clang::tooling
namespace  clang::tooling::dependencies
namespace  llvm
 Diagnostic wrappers for TextAPI types for error reporting.

Typedefs

using clang::tooling::dependencies::PrebuiltModulesAttrsMap = llvm::StringMap<PrebuiltModuleASTAttrs>
 Attributes loaded from AST files of prebuilt modules collected prior to ModuleDepCollector creation.

Enumerations

enum class  clang::tooling::dependencies::ModuleOutputKind { clang::tooling::dependencies::ModuleFile , clang::tooling::dependencies::DependencyFile , clang::tooling::dependencies::DependencyTargets , clang::tooling::dependencies::DiagnosticSerializationFile }
 An output from a module compilation, such as the path of the module file. More...

Functions

void clang::tooling::dependencies::resetBenignCodeGenOptions (frontend::ActionKind ProgramAction, const LangOptions &LangOpts, CodeGenOptions &CGOpts)
 Resets codegen options that don't affect modules/PCH.
bool clang::tooling::dependencies::isPathInStableDir (const ArrayRef< StringRef > Directories, const StringRef Input)
 Determine if Input can be resolved within a stable directory.
bool clang::tooling::dependencies::areOptionsInStableDir (const ArrayRef< StringRef > Directories, const HeaderSearchOptions &HSOpts)
 Determine if options collected from a module's compilation can safely be considered as stable.
hash_code llvm::hash_value (const clang::tooling::dependencies::ModuleID &ID)