clang 23.0.0git
clang::serialization::ModuleFile Class Reference

Information about a module that has been loaded by the ASTReader. More...

#include "clang/Serialization/ModuleFile.h"

Public Member Functions

 ModuleFile (ModuleKind Kind, FileEntryRef File, unsigned Generation)
 ~ModuleFile ()
bool isDirectlyImported () const
 Determine whether this module was directly imported at any point during translation.
bool isModule () const
 Is this a module file for a module (rather than a PCH or similar).
void dump ()
 Dump debugging output for this module.

Static Public Member Functions

static std::string getTimestampFilename (StringRef FileName)

Public Attributes

unsigned Index = 0
 The index of this module in the list of modules.
ModuleKind Kind
 The type of this module.
std::string FileName
 The file name of the module file.
std::string ModuleName
 The name of the module.
std::string BaseDirectory
 The base directory of the module.
std::string OriginalSourceFileName
 The original source file name that was used to build the primary AST file, which may have been modified for relocatable-pch support.
std::string ActualOriginalSourceFileName
 The actual original source file name that was used to build this AST file.
FileID OriginalSourceFileID
 The file ID for the original source file that was used to build this AST file.
std::string ModuleMapPath
bool RelocatablePCH = false
 Whether this precompiled header is a relocatable PCH file.
bool StandardCXXModule = false
 Whether this module file is a standard C++ module.
bool HasTimestamps = false
 Whether timestamps are included in this module file.
bool DidReadTopLevelSubmodule = false
 Whether the top-level module has been read from the AST file.
FileEntryRef File
 The file entry for the module file.
ASTFileSignature Signature
 The signature of the module file, which may be used instead of the size and modification time to identify this particular file.
ASTFileSignature ASTBlockHash
 The signature of the AST block of the module file, this can be used to unique module files based on AST contents.
llvm::BitVector SearchPathUsage
 The bit vector denoting usage of each header search entry (true = used).
llvm::BitVector VFSUsage
 The bit vector denoting usage of each VFS entry (true = used).
bool DirectlyImported = false
 Whether this module has been directly imported by the user.
unsigned Generation
 The generation of which this module file is a part.
llvm::MemoryBuffer * Buffer = nullptr
 The memory buffer that stores the data associated with this AST file, owned by the InMemoryModuleCache.
uint64_t SizeInBits = 0
 The size of this file, in bits.
uint64_t GlobalBitOffset = 0
 The global bit offset (or base) of this module.
uint64_t ASTBlockStartOffset = 0
 The bit offset of the AST block of this module.
StringRef Data
 The serialized bitstream data for this file.
llvm::BitstreamCursor Stream
 The main bitstream cursor for the main block.
SourceLocation DirectImportLoc
 The source location where the module was explicitly or implicitly imported in the local translation unit.
SourceLocation ImportLoc
 The source location where this module was first imported.
SourceLocation FirstLoc
 The first source location in this module.
std::vector< std::unique_ptr< ModuleFileExtensionReader > > ExtensionReaders
 The list of extension readers that are attached to this module file.
StringRef ModuleOffsetMap
 The module offset map data for this file.
llvm::BitstreamCursor InputFilesCursor
 The cursor to the start of the input-files block.
uint64_t InputFilesOffsetBase = 0
 Absolute offset of the start of the input-files block.
const llvm::support::unaligned_uint64_t * InputFileOffsets = nullptr
 Relative offsets for all of the input file entries in the AST file.
std::vector< InputFileInputFilesLoaded
 The input files that have been loaded from this AST file.
std::vector< InputFileInfoInputFileInfosLoaded
 The input file infos that have been loaded from this AST file.
unsigned NumUserInputFiles = 0
uint64_t InputFilesValidationTimestamp = 0
 If non-zero, specifies the time when we last validated input files.
InputFilesValidation InputFilesValidationStatus
 Captures the high-level result of validating input files.
llvm::BitstreamCursor SLocEntryCursor
 Cursor used to read source location entries.
uint64_t SourceManagerBlockStartOffset = 0
 The bit offset to the start of the SOURCE_MANAGER_BLOCK.
unsigned LocalNumSLocEntries = 0
 The number of source location entries in this AST file.
int SLocEntryBaseID = 0
 The base ID in the source manager's view of this module.
SourceLocation::UIntTy SLocEntryBaseOffset = 0
 The base offset in the source manager's view of this module.
uint64_t SLocEntryOffsetsBase = 0
 Base file offset for the offsets in SLocEntryOffsets.
const uint32_t * SLocEntryOffsets = nullptr
 Offsets for all of the source location entries in the AST file.
unsigned LocalNumIdentifiers = 0
 The number of identifiers in this AST file.
const uint32_t * IdentifierOffsets = nullptr
 Offsets into the identifier table data.
serialization::IdentifierID BaseIdentifierID = 0
 Base identifier ID for identifiers local to this module.
const unsigned char * IdentifierTableData = nullptr
 Actual data for the on-disk hash table of identifiers.
void * IdentifierLookupTable = nullptr
 A pointer to an on-disk hash table of opaque type IdentifierHashTable.
std::vector< unsignedPreloadIdentifierOffsets
 Offsets of identifiers that we're going to preload within IdentifierTableData.
llvm::BitstreamCursor MacroCursor
 The cursor to the start of the preprocessor block, which stores all of the macro definitions.
unsigned LocalNumMacros = 0
 The number of macros in this AST file.
uint64_t MacroOffsetsBase = 0
 Base file offset for the offsets in MacroOffsets.
const uint32_t * MacroOffsets = nullptr
 Offsets of macros in the preprocessor block.
serialization::MacroID BaseMacroID = 0
 Base macro ID for macros local to this module.
uint64_t MacroStartOffset = 0
 The offset of the start of the set of defined macros.
llvm::BitstreamCursor PreprocessorDetailCursor
 The cursor to the start of the (optional) detailed preprocessing record block.
uint64_t PreprocessorDetailStartOffset = 0
 The offset of the start of the preprocessor detail cursor.
serialization::PreprocessedEntityID BasePreprocessedEntityID = 0
 Base preprocessed entity ID for preprocessed entities local to this module.
const PPEntityOffsetPreprocessedEntityOffsets = nullptr
unsigned NumPreprocessedEntities = 0
unsigned BasePreprocessedSkippedRangeID = 0
 Base ID for preprocessed skipped ranges local to this module.
const PPSkippedRangePreprocessedSkippedRangeOffsets = nullptr
unsigned NumPreprocessedSkippedRanges = 0
unsigned LocalNumHeaderFileInfos = 0
 The number of local HeaderFileInfo structures.
const char * HeaderFileInfoTableData = nullptr
 Actual data for the on-disk hash table of header file information.
void * HeaderFileInfoTable = nullptr
 The on-disk hash table that contains information about each of the header files.
unsigned LocalNumSubmodules = 0
 The number of submodules in this module.
serialization::SubmoduleID BaseSubmoduleID = 0
 Base submodule ID for submodules local to this module.
ContinuousRangeMap< uint32_t, int, 2 > SubmoduleRemap
 Remapping table for submodule IDs in this module.
unsigned LocalNumSelectors = 0
 The number of selectors new to this file.
const uint32_t * SelectorOffsets = nullptr
 Offsets into the selector lookup table's data array where each selector resides.
serialization::SelectorID BaseSelectorID = 0
 Base selector ID for selectors local to this module.
ContinuousRangeMap< uint32_t, int, 2 > SelectorRemap
 Remapping table for selector IDs in this module.
const unsigned char * SelectorLookupTableData = nullptr
 A pointer to the character data that comprises the selector table.
void * SelectorLookupTable = nullptr
 A pointer to an on-disk hash table of opaque type ASTSelectorLookupTable.
llvm::BitstreamCursor DeclsCursor
 DeclsCursor - This is a cursor to the start of the DECLTYPES_BLOCK block.
uint64_t DeclsBlockStartOffset = 0
 The offset to the start of the DECLTYPES_BLOCK block.
unsigned LocalNumDecls = 0
 The number of declarations in this AST file.
const DeclOffsetDeclOffsets = nullptr
 Offset of each declaration within the bitstream, indexed by the declaration ID (-1).
unsigned BaseDeclIndex = 0
 Base declaration index in ASTReader for declarations local to this module.
const serialization::unaligned_decl_id_tFileSortedDecls = nullptr
 Array of file-level DeclIDs sorted by file.
unsigned NumFileSortedDecls = 0
const serialization::ObjCCategoriesInfoObjCCategoriesMap = nullptr
 Array of category list location information within this module file, sorted by the definition ID.
unsigned LocalNumObjCCategoriesInMap = 0
 The number of redeclaration info entries in ObjCCategoriesMap.
SmallVector< uint64_t, 1 > ObjCCategories
 The Objective-C category lists for categories known to this module.
unsigned LocalNumTypes = 0
 The number of types in this AST file.
const UnalignedUInt64TypeOffsets = nullptr
 Offset of each type within the bitstream, indexed by the type ID, or the representation of a Type*.
serialization::TypeID BaseTypeIndex = 0
 Base type ID for types local to this module as represented in the global type ID space.
SmallVector< uint64_t, 8 > PragmaDiagMappings
 Diagnostic IDs and their mappings that the user changed.
llvm::SetVector< ModuleFile * > ImportedBy
 List of modules which depend on this module.
llvm::SetVector< ModuleFile * > Imports
 List of modules which this module directly imported.
llvm::SmallVector< ModuleFile *, 16 > TransitiveImports
 List of modules which this modules dependent on.

Detailed Description

Information about a module that has been loaded by the ASTReader.

Each instance of the Module class corresponds to a single AST file, which may be a precompiled header, precompiled preamble, a module, or an AST file of some sort loaded as the main file, all of which are specific formulations of the general notion of a "module". A module may depend on any number of other modules.

Definition at line 145 of file ModuleFile.h.

Constructor & Destructor Documentation

◆ ModuleFile()

clang::serialization::ModuleFile::ModuleFile ( ModuleKind Kind,
FileEntryRef File,
unsigned Generation )
inline

Definition at line 147 of file ModuleFile.h.

References File, Generation, and Kind.

◆ ~ModuleFile()

ModuleFile::~ModuleFile ( )

Definition at line 25 of file ModuleFile.cpp.

References HeaderFileInfoTable, IdentifierLookupTable, and SelectorLookupTable.

Member Function Documentation

◆ dump()

◆ getTimestampFilename()

std::string clang::serialization::ModuleFile::getTimestampFilename ( StringRef FileName)
inlinestatic

Definition at line 168 of file ModuleFile.h.

References FileName.

◆ isDirectlyImported()

bool clang::serialization::ModuleFile::isDirectlyImported ( ) const
inline

Determine whether this module was directly imported at any point during translation.

Definition at line 529 of file ModuleFile.h.

References DirectlyImported.

◆ isModule()

Member Data Documentation

◆ ActualOriginalSourceFileName

std::string clang::serialization::ModuleFile::ActualOriginalSourceFileName

The actual original source file name that was used to build this AST file.

Definition at line 179 of file ModuleFile.h.

◆ ASTBlockHash

ASTFileSignature clang::serialization::ModuleFile::ASTBlockHash

The signature of the AST block of the module file, this can be used to unique module files based on AST contents.

Definition at line 208 of file ModuleFile.h.

◆ ASTBlockStartOffset

uint64_t clang::serialization::ModuleFile::ASTBlockStartOffset = 0

The bit offset of the AST block of this module.

Definition at line 234 of file ModuleFile.h.

◆ BaseDeclIndex

unsigned clang::serialization::ModuleFile::BaseDeclIndex = 0

Base declaration index in ASTReader for declarations local to this module.

Definition at line 478 of file ModuleFile.h.

Referenced by dump().

◆ BaseDirectory

std::string clang::serialization::ModuleFile::BaseDirectory

The base directory of the module.

Definition at line 166 of file ModuleFile.h.

Referenced by clang::ASTReader::ReadPath(), clang::ASTReader::ResolveImportedPath(), and clang::ASTReader::ResolveImportedPathAndAllocate().

◆ BaseIdentifierID

serialization::IdentifierID clang::serialization::ModuleFile::BaseIdentifierID = 0

Base identifier ID for identifiers local to this module.

Definition at line 340 of file ModuleFile.h.

Referenced by clang::ASTReader::DecodeIdentifierInfo(), and dump().

◆ BaseMacroID

serialization::MacroID clang::serialization::ModuleFile::BaseMacroID = 0

Base macro ID for macros local to this module.

Definition at line 377 of file ModuleFile.h.

Referenced by dump(), and clang::ASTReader::getMacro().

◆ BasePreprocessedEntityID

serialization::PreprocessedEntityID clang::serialization::ModuleFile::BasePreprocessedEntityID = 0

Base preprocessed entity ID for preprocessed entities local to this module.

Definition at line 393 of file ModuleFile.h.

Referenced by dump().

◆ BasePreprocessedSkippedRangeID

unsigned clang::serialization::ModuleFile::BasePreprocessedSkippedRangeID = 0

Base ID for preprocessed skipped ranges local to this module.

Definition at line 399 of file ModuleFile.h.

Referenced by clang::ASTReader::ReadSkippedRange().

◆ BaseSelectorID

serialization::SelectorID clang::serialization::ModuleFile::BaseSelectorID = 0

Base selector ID for selectors local to this module.

Definition at line 443 of file ModuleFile.h.

Referenced by clang::ASTReader::DecodeSelector(), and dump().

◆ BaseSubmoduleID

serialization::SubmoduleID clang::serialization::ModuleFile::BaseSubmoduleID = 0

Base submodule ID for submodules local to this module.

Definition at line 426 of file ModuleFile.h.

Referenced by dump(), and clang::ASTReader::getModuleFileID().

◆ BaseTypeIndex

serialization::TypeID clang::serialization::ModuleFile::BaseTypeIndex = 0

Base type ID for types local to this module as represented in the global type ID space.

Definition at line 506 of file ModuleFile.h.

Referenced by dump().

◆ Buffer

llvm::MemoryBuffer* clang::serialization::ModuleFile::Buffer = nullptr

The memory buffer that stores the data associated with this AST file, owned by the InMemoryModuleCache.

Definition at line 225 of file ModuleFile.h.

◆ Data

StringRef clang::serialization::ModuleFile::Data

The serialized bitstream data for this file.

Definition at line 237 of file ModuleFile.h.

◆ DeclOffsets

const DeclOffset* clang::serialization::ModuleFile::DeclOffsets = nullptr

Offset of each declaration within the bitstream, indexed by the declaration ID (-1).

Definition at line 475 of file ModuleFile.h.

◆ DeclsBlockStartOffset

uint64_t clang::serialization::ModuleFile::DeclsBlockStartOffset = 0

The offset to the start of the DECLTYPES_BLOCK block.

Definition at line 468 of file ModuleFile.h.

◆ DeclsCursor

llvm::BitstreamCursor clang::serialization::ModuleFile::DeclsCursor

DeclsCursor - This is a cursor to the start of the DECLTYPES_BLOCK block.

It has read all the abbreviations at the start of the block and is ready to jump around with these in context.

Definition at line 465 of file ModuleFile.h.

Referenced by clang::ASTReader::GetExternalCXXBaseSpecifiers(), clang::ASTReader::GetExternalCXXCtorInitializers(), and clang::ASTReader::GetExternalDeclStmt().

◆ DidReadTopLevelSubmodule

bool clang::serialization::ModuleFile::DidReadTopLevelSubmodule = false

Whether the top-level module has been read from the AST file.

Definition at line 197 of file ModuleFile.h.

Referenced by clang::ASTReader::ReadAST().

◆ DirectImportLoc

SourceLocation clang::serialization::ModuleFile::DirectImportLoc

The source location where the module was explicitly or implicitly imported in the local translation unit.

If module A depends on and imports module B, both modules will have the same DirectImportLoc, but different ImportLoc (B's ImportLoc will be a source location inside module A).

WARNING: This is largely useless. It doesn't tell you when a module was made visible, just when the first submodule of that module was imported.

Definition at line 251 of file ModuleFile.h.

Referenced by clang::ASTReader::ReadAST().

◆ DirectlyImported

bool clang::serialization::ModuleFile::DirectlyImported = false

Whether this module has been directly imported by the user.

Definition at line 218 of file ModuleFile.h.

Referenced by isDirectlyImported(), and updateModuleImports().

◆ ExtensionReaders

std::vector<std::unique_ptr<ModuleFileExtensionReader> > clang::serialization::ModuleFile::ExtensionReaders

The list of extension readers that are attached to this module file.

Definition at line 261 of file ModuleFile.h.

◆ File

FileEntryRef clang::serialization::ModuleFile::File

The file entry for the module file.

Definition at line 200 of file ModuleFile.h.

Referenced by clang::ASTUnit::getPCHFile(), indexPreprocessorModuleMacros(), and ModuleFile().

◆ FileName

std::string clang::serialization::ModuleFile::FileName

◆ FileSortedDecls

const serialization::unaligned_decl_id_t* clang::serialization::ModuleFile::FileSortedDecls = nullptr

Array of file-level DeclIDs sorted by file.

Definition at line 481 of file ModuleFile.h.

Referenced by clang::ASTReader::getModuleFileLevelDecls(), and clang::ASTReader::ReadSLocEntry().

◆ FirstLoc

SourceLocation clang::serialization::ModuleFile::FirstLoc

The first source location in this module.

Definition at line 257 of file ModuleFile.h.

◆ Generation

unsigned clang::serialization::ModuleFile::Generation

The generation of which this module file is a part.

Definition at line 221 of file ModuleFile.h.

Referenced by ModuleFile(), and clang::serialization::ReadMethodPoolVisitor::operator()().

◆ GlobalBitOffset

uint64_t clang::serialization::ModuleFile::GlobalBitOffset = 0

The global bit offset (or base) of this module.

Definition at line 231 of file ModuleFile.h.

Referenced by clang::ASTReader::ReadAST().

◆ HasTimestamps

bool clang::serialization::ModuleFile::HasTimestamps = false

Whether timestamps are included in this module file.

Definition at line 194 of file ModuleFile.h.

◆ HeaderFileInfoTable

void* clang::serialization::ModuleFile::HeaderFileInfoTable = nullptr

The on-disk hash table that contains information about each of the header files.

Definition at line 418 of file ModuleFile.h.

Referenced by ~ModuleFile().

◆ HeaderFileInfoTableData

const char* clang::serialization::ModuleFile::HeaderFileInfoTableData = nullptr

Actual data for the on-disk hash table of header file information.

This pointer points into a memory buffer, where the on-disk hash table for header file information actually lives.

Definition at line 414 of file ModuleFile.h.

◆ IdentifierLookupTable

void* clang::serialization::ModuleFile::IdentifierLookupTable = nullptr

A pointer to an on-disk hash table of opaque type IdentifierHashTable.

Definition at line 350 of file ModuleFile.h.

Referenced by clang::ASTIdentifierIterator::Next(), and ~ModuleFile().

◆ IdentifierOffsets

const uint32_t* clang::serialization::ModuleFile::IdentifierOffsets = nullptr

Offsets into the identifier table data.

This array is indexed by the identifier ID (-1), and provides the offset into IdentifierTableData where the string data is stored.

Definition at line 337 of file ModuleFile.h.

Referenced by clang::ASTReader::DecodeIdentifierInfo().

◆ IdentifierTableData

const unsigned char* clang::serialization::ModuleFile::IdentifierTableData = nullptr

Actual data for the on-disk hash table of identifiers.

This pointer points into a memory buffer, where the on-disk hash table for identifiers actually lives.

Definition at line 346 of file ModuleFile.h.

Referenced by clang::ASTReader::DecodeIdentifierInfo(), and clang::ASTReader::ReadAST().

◆ ImportedBy

llvm::SetVector<ModuleFile *> clang::serialization::ModuleFile::ImportedBy

List of modules which depend on this module.

Definition at line 514 of file ModuleFile.h.

Referenced by getTopImportImplicitModule(), updateModuleImports(), and clang::serialization::ModuleManager::visit().

◆ ImportLoc

SourceLocation clang::serialization::ModuleFile::ImportLoc

◆ Imports

llvm::SetVector<ModuleFile *> clang::serialization::ModuleFile::Imports

◆ Index

◆ InputFileInfosLoaded

std::vector<InputFileInfo> clang::serialization::ModuleFile::InputFileInfosLoaded

The input file infos that have been loaded from this AST file.

Definition at line 282 of file ModuleFile.h.

◆ InputFileOffsets

const llvm::support::unaligned_uint64_t* clang::serialization::ModuleFile::InputFileOffsets = nullptr

Relative offsets for all of the input file entries in the AST file.

Definition at line 276 of file ModuleFile.h.

◆ InputFilesCursor

llvm::BitstreamCursor clang::serialization::ModuleFile::InputFilesCursor

The cursor to the start of the input-files block.

Definition at line 270 of file ModuleFile.h.

◆ InputFilesLoaded

std::vector<InputFile> clang::serialization::ModuleFile::InputFilesLoaded

The input files that have been loaded from this AST file.

Definition at line 279 of file ModuleFile.h.

Referenced by clang::ASTReader::visitInputFileInfos(), clang::ASTReader::visitInputFiles(), and clang::ASTReader::visitTopLevelModuleMaps().

◆ InputFilesOffsetBase

uint64_t clang::serialization::ModuleFile::InputFilesOffsetBase = 0

Absolute offset of the start of the input-files block.

Definition at line 273 of file ModuleFile.h.

◆ InputFilesValidationStatus

InputFilesValidation clang::serialization::ModuleFile::InputFilesValidationStatus
Initial value:
=
@ NotStarted
Initial value, before the validation has been performed.
Definition ModuleFile.h:126

Captures the high-level result of validating input files.

Useful when encountering a changed input file. This way, we can check what kind of validation has been done already and can try to figure out why a changed file hasn't been discovered earlier.

Definition at line 299 of file ModuleFile.h.

◆ InputFilesValidationTimestamp

uint64_t clang::serialization::ModuleFile::InputFilesValidationTimestamp = 0

If non-zero, specifies the time when we last validated input files.

Zero means we never validated them.

The time is specified in seconds since the start of the Epoch.

Definition at line 292 of file ModuleFile.h.

Referenced by clang::ASTReader::ReadAST().

◆ Kind

◆ LocalNumDecls

unsigned clang::serialization::ModuleFile::LocalNumDecls = 0

The number of declarations in this AST file.

Definition at line 471 of file ModuleFile.h.

Referenced by dump(), and clang::LocalDeclID::get().

◆ LocalNumHeaderFileInfos

unsigned clang::serialization::ModuleFile::LocalNumHeaderFileInfos = 0

The number of local HeaderFileInfo structures.

Definition at line 407 of file ModuleFile.h.

◆ LocalNumIdentifiers

unsigned clang::serialization::ModuleFile::LocalNumIdentifiers = 0

The number of identifiers in this AST file.

Definition at line 330 of file ModuleFile.h.

Referenced by dump().

◆ LocalNumMacros

unsigned clang::serialization::ModuleFile::LocalNumMacros = 0

The number of macros in this AST file.

Definition at line 363 of file ModuleFile.h.

Referenced by dump().

◆ LocalNumObjCCategoriesInMap

unsigned clang::serialization::ModuleFile::LocalNumObjCCategoriesInMap = 0

The number of redeclaration info entries in ObjCCategoriesMap.

Definition at line 489 of file ModuleFile.h.

◆ LocalNumSelectors

unsigned clang::serialization::ModuleFile::LocalNumSelectors = 0

The number of selectors new to this file.

This is the number of entries in SelectorOffsets.

Definition at line 436 of file ModuleFile.h.

Referenced by dump().

◆ LocalNumSLocEntries

unsigned clang::serialization::ModuleFile::LocalNumSLocEntries = 0

The number of source location entries in this AST file.

Definition at line 311 of file ModuleFile.h.

Referenced by clang::ASTReader::getSLocEntryID().

◆ LocalNumSubmodules

unsigned clang::serialization::ModuleFile::LocalNumSubmodules = 0

The number of submodules in this module.

Definition at line 423 of file ModuleFile.h.

Referenced by dump().

◆ LocalNumTypes

unsigned clang::serialization::ModuleFile::LocalNumTypes = 0

The number of types in this AST file.

Definition at line 498 of file ModuleFile.h.

Referenced by dump().

◆ MacroCursor

llvm::BitstreamCursor clang::serialization::ModuleFile::MacroCursor

The cursor to the start of the preprocessor block, which stores all of the macro definitions.

Definition at line 360 of file ModuleFile.h.

Referenced by clang::ASTReader::ReadMacroRecord(), and clang::ASTReader::resolvePendingMacro().

◆ MacroOffsets

const uint32_t* clang::serialization::ModuleFile::MacroOffsets = nullptr

Offsets of macros in the preprocessor block.

This array is indexed by the macro ID (-1), and provides the offset into the preprocessor block where macro definitions are stored.

Definition at line 374 of file ModuleFile.h.

Referenced by clang::ASTReader::getMacro().

◆ MacroOffsetsBase

uint64_t clang::serialization::ModuleFile::MacroOffsetsBase = 0

Base file offset for the offsets in MacroOffsets.

Real file offset for the entry is MacroOffsetsBase + MacroOffsets[i].

Definition at line 367 of file ModuleFile.h.

Referenced by clang::ASTReader::getMacro(), clang::ASTReader::ReadPreprocessedEntity(), and clang::ASTReader::resolvePendingMacro().

◆ MacroStartOffset

uint64_t clang::serialization::ModuleFile::MacroStartOffset = 0

The offset of the start of the set of defined macros.

Definition at line 380 of file ModuleFile.h.

◆ ModuleMapPath

std::string clang::serialization::ModuleFile::ModuleMapPath

Definition at line 185 of file ModuleFile.h.

◆ ModuleName

◆ ModuleOffsetMap

◆ NumFileSortedDecls

unsigned clang::serialization::ModuleFile::NumFileSortedDecls = 0

Definition at line 482 of file ModuleFile.h.

Referenced by clang::ASTReader::getModuleFileLevelDecls().

◆ NumPreprocessedEntities

unsigned clang::serialization::ModuleFile::NumPreprocessedEntities = 0

Definition at line 396 of file ModuleFile.h.

Referenced by dump().

◆ NumPreprocessedSkippedRanges

unsigned clang::serialization::ModuleFile::NumPreprocessedSkippedRanges = 0

Definition at line 402 of file ModuleFile.h.

◆ NumUserInputFiles

unsigned clang::serialization::ModuleFile::NumUserInputFiles = 0

◆ ObjCCategories

SmallVector<uint64_t, 1> clang::serialization::ModuleFile::ObjCCategories

The Objective-C category lists for categories known to this module.

Definition at line 493 of file ModuleFile.h.

◆ ObjCCategoriesMap

const serialization::ObjCCategoriesInfo* clang::serialization::ModuleFile::ObjCCategoriesMap = nullptr

Array of category list location information within this module file, sorted by the definition ID.

Definition at line 486 of file ModuleFile.h.

◆ OriginalSourceFileID

FileID clang::serialization::ModuleFile::OriginalSourceFileID

The file ID for the original source file that was used to build this AST file.

Definition at line 183 of file ModuleFile.h.

Referenced by clang::ASTReader::ReadAST(), and clang::ASTReader::ReadPragmaDiagnosticMappings().

◆ OriginalSourceFileName

std::string clang::serialization::ModuleFile::OriginalSourceFileName

The original source file name that was used to build the primary AST file, which may have been modified for relocatable-pch support.

Definition at line 175 of file ModuleFile.h.

Referenced by clang::ASTReader::getSourceDescriptor().

◆ PragmaDiagMappings

SmallVector<uint64_t, 8> clang::serialization::ModuleFile::PragmaDiagMappings

Diagnostic IDs and their mappings that the user changed.

Definition at line 511 of file ModuleFile.h.

Referenced by clang::ASTReader::ReadPragmaDiagnosticMappings().

◆ PreloadIdentifierOffsets

std::vector<unsigned> clang::serialization::ModuleFile::PreloadIdentifierOffsets

Offsets of identifiers that we're going to preload within IdentifierTableData.

Definition at line 354 of file ModuleFile.h.

Referenced by clang::ASTReader::ReadAST().

◆ PreprocessedEntityOffsets

const PPEntityOffset* clang::serialization::ModuleFile::PreprocessedEntityOffsets = nullptr

◆ PreprocessedSkippedRangeOffsets

const PPSkippedRange* clang::serialization::ModuleFile::PreprocessedSkippedRangeOffsets = nullptr

Definition at line 401 of file ModuleFile.h.

Referenced by clang::ASTReader::ReadSkippedRange().

◆ PreprocessorDetailCursor

llvm::BitstreamCursor clang::serialization::ModuleFile::PreprocessorDetailCursor

The cursor to the start of the (optional) detailed preprocessing record block.

Definition at line 386 of file ModuleFile.h.

Referenced by clang::ASTReader::ReadPreprocessedEntity().

◆ PreprocessorDetailStartOffset

uint64_t clang::serialization::ModuleFile::PreprocessorDetailStartOffset = 0

The offset of the start of the preprocessor detail cursor.

Definition at line 389 of file ModuleFile.h.

◆ RelocatablePCH

bool clang::serialization::ModuleFile::RelocatablePCH = false

Whether this precompiled header is a relocatable PCH file.

Definition at line 188 of file ModuleFile.h.

◆ SearchPathUsage

llvm::BitVector clang::serialization::ModuleFile::SearchPathUsage

The bit vector denoting usage of each header search entry (true = used).

Definition at line 211 of file ModuleFile.h.

Referenced by optimizeHeaderSearchOpts().

◆ SelectorLookupTable

void* clang::serialization::ModuleFile::SelectorLookupTable = nullptr

A pointer to an on-disk hash table of opaque type ASTSelectorLookupTable.

This hash table provides the IDs of all selectors, and the associated instance and factory methods.

Definition at line 458 of file ModuleFile.h.

Referenced by clang::serialization::ReadMethodPoolVisitor::operator()(), and ~ModuleFile().

◆ SelectorLookupTableData

const unsigned char* clang::serialization::ModuleFile::SelectorLookupTableData = nullptr

A pointer to the character data that comprises the selector table.

The SelectorOffsets table refers into this memory.

Definition at line 451 of file ModuleFile.h.

Referenced by clang::ASTReader::DecodeSelector().

◆ SelectorOffsets

const uint32_t* clang::serialization::ModuleFile::SelectorOffsets = nullptr

Offsets into the selector lookup table's data array where each selector resides.

Definition at line 440 of file ModuleFile.h.

Referenced by clang::ASTReader::DecodeSelector().

◆ SelectorRemap

ContinuousRangeMap<uint32_t, int, 2> clang::serialization::ModuleFile::SelectorRemap

Remapping table for selector IDs in this module.

Definition at line 446 of file ModuleFile.h.

Referenced by dump(), and clang::ASTReader::getGlobalSelectorID().

◆ Signature

ASTFileSignature clang::serialization::ModuleFile::Signature

The signature of the module file, which may be used instead of the size and modification time to identify this particular file.

Definition at line 204 of file ModuleFile.h.

Referenced by clang::ASTReader::getSourceDescriptor().

◆ SizeInBits

uint64_t clang::serialization::ModuleFile::SizeInBits = 0

The size of this file, in bits.

Definition at line 228 of file ModuleFile.h.

Referenced by clang::ASTReader::ReadAST().

◆ SLocEntryBaseID

int clang::serialization::ModuleFile::SLocEntryBaseID = 0

The base ID in the source manager's view of this module.

Definition at line 314 of file ModuleFile.h.

Referenced by clang::ASTReader::ReadSLocEntry(), and clang::ASTReader::TranslateFileID().

◆ SLocEntryBaseOffset

SourceLocation::UIntTy clang::serialization::ModuleFile::SLocEntryBaseOffset = 0

The base offset in the source manager's view of this module.

Definition at line 317 of file ModuleFile.h.

Referenced by dump(), clang::ASTWriter::getRawSourceLocationEncoding(), clang::ASTReader::ReadSLocEntry(), and clang::ASTReader::readSLocOffset().

◆ SLocEntryCursor

llvm::BitstreamCursor clang::serialization::ModuleFile::SLocEntryCursor

Cursor used to read source location entries.

Definition at line 305 of file ModuleFile.h.

Referenced by clang::ASTReader::ReadSLocEntry(), and clang::ASTReader::readSLocOffset().

◆ SLocEntryOffsets

const uint32_t* clang::serialization::ModuleFile::SLocEntryOffsets = nullptr

Offsets for all of the source location entries in the AST file.

Definition at line 325 of file ModuleFile.h.

Referenced by clang::ASTReader::ReadSLocEntry(), and clang::ASTReader::readSLocOffset().

◆ SLocEntryOffsetsBase

uint64_t clang::serialization::ModuleFile::SLocEntryOffsetsBase = 0

Base file offset for the offsets in SLocEntryOffsets.

Real file offset for the entry is SLocEntryOffsetsBase + SLocEntryOffsets[i].

Definition at line 321 of file ModuleFile.h.

Referenced by clang::ASTReader::ReadSLocEntry(), and clang::ASTReader::readSLocOffset().

◆ SourceManagerBlockStartOffset

uint64_t clang::serialization::ModuleFile::SourceManagerBlockStartOffset = 0

The bit offset to the start of the SOURCE_MANAGER_BLOCK.

Definition at line 308 of file ModuleFile.h.

◆ StandardCXXModule

bool clang::serialization::ModuleFile::StandardCXXModule = false

Whether this module file is a standard C++ module.

Definition at line 191 of file ModuleFile.h.

Referenced by clang::FrontendAction::BeginSourceFile().

◆ Stream

llvm::BitstreamCursor clang::serialization::ModuleFile::Stream

The main bitstream cursor for the main block.

Definition at line 240 of file ModuleFile.h.

Referenced by clang::ASTReader::ReadAST(), and clang::ASTReader::ReadASTCore().

◆ SubmoduleRemap

ContinuousRangeMap<uint32_t, int, 2> clang::serialization::ModuleFile::SubmoduleRemap

Remapping table for submodule IDs in this module.

Definition at line 429 of file ModuleFile.h.

Referenced by dump(), and clang::ASTReader::getGlobalSubmoduleID().

◆ TransitiveImports

llvm::SmallVector<ModuleFile *, 16> clang::serialization::ModuleFile::TransitiveImports

List of modules which this modules dependent on.

Different from Imports, this includes indirectly imported modules too. The order of TransitiveImports is significant. It should keep the same order with that module file manager when we write the current module file. The value of the member will be initialized in ASTReader::ReadModuleOffsetMap.

Definition at line 525 of file ModuleFile.h.

Referenced by clang::LocalDeclID::get(), clang::ASTReader::getGlobalDeclID(), clang::ASTReader::getGlobalIdentifierID(), clang::ASTReader::getGlobalMacroID(), clang::ASTReader::getGlobalPreprocessedEntityID(), clang::ASTReader::getGlobalTypeID(), clang::ASTReader::mapGlobalIDToModuleFileGlobalID(), and clang::ASTReader::ReadSourceLocation().

◆ TypeOffsets

const UnalignedUInt64* clang::serialization::ModuleFile::TypeOffsets = nullptr

Offset of each type within the bitstream, indexed by the type ID, or the representation of a Type*.

Definition at line 502 of file ModuleFile.h.

◆ VFSUsage

llvm::BitVector clang::serialization::ModuleFile::VFSUsage

The bit vector denoting usage of each VFS entry (true = used).

Definition at line 214 of file ModuleFile.h.

Referenced by optimizeHeaderSearchOpts().


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