16 #include "llvm/Support/MemoryBuffer.h"
17 #include "llvm/Support/raw_ostream.h"
19 using namespace clang;
20 using namespace serialization;
21 using namespace reader;
24 : Kind(Kind), File(nullptr), Signature(0), DirectlyImported(
false),
25 Generation(Generation), SizeInBits(0),
26 LocalNumSLocEntries(0), SLocEntryBaseID(0),
27 SLocEntryBaseOffset(0), SLocEntryOffsets(nullptr),
28 LocalNumIdentifiers(0),
29 IdentifierOffsets(nullptr), BaseIdentifierID(0),
30 IdentifierTableData(nullptr), IdentifierLookupTable(nullptr),
31 LocalNumMacros(0), MacroOffsets(nullptr),
32 BasePreprocessedEntityID(0),
33 PreprocessedEntityOffsets(nullptr), NumPreprocessedEntities(0),
34 LocalNumHeaderFileInfos(0),
35 HeaderFileInfoTableData(nullptr), HeaderFileInfoTable(nullptr),
36 LocalNumSubmodules(0), BaseSubmoduleID(0),
37 LocalNumSelectors(0), SelectorOffsets(nullptr), BaseSelectorID(0),
38 SelectorLookupTableData(nullptr), SelectorLookupTable(nullptr),
39 LocalNumDecls(0), DeclOffsets(nullptr), BaseDeclID(0),
40 FileSortedDecls(nullptr), NumFileSortedDecls(0),
41 ObjCCategoriesMap(nullptr), LocalNumObjCCategoriesInMap(0),
42 LocalNumTypes(0), TypeOffsets(nullptr), BaseTypeIndex(0)
51 template<
typename Key,
typename Offset,
unsigned InitialCapacity>
59 llvm::errs() <<
" " << Name <<
":\n";
60 for (
typename MapType::const_iterator
I = Map.
begin(), IEnd = Map.
end();
62 llvm::errs() <<
" " <<
I->first <<
" -> " <<
I->second <<
"\n";
67 llvm::errs() <<
"\nModule: " <<
FileName <<
"\n";
69 llvm::errs() <<
" Imports: ";
70 for (
unsigned I = 0, N =
Imports.size();
I != N; ++
I) {
73 llvm::errs() <<
Imports[
I]->FileName;
87 llvm::errs() <<
" Base macro ID: " <<
BaseMacroID <<
'\n'
101 <<
" Number of preprocessed entities: "
106 llvm::errs() <<
" Base type index: " <<
BaseTypeIndex <<
'\n'
110 llvm::errs() <<
" Base decl ID: " <<
BaseDeclID <<
'\n'
void * IdentifierLookupTable
A pointer to an on-disk hash table of opaque type IdentifierHashTable.
ModuleFile(ModuleKind Kind, unsigned Generation)
serialization::SelectorID BaseSelectorID
Base selector ID for selectors local to this module.
unsigned NumPreprocessedEntities
serialization::SubmoduleID BaseSubmoduleID
Base submodule ID for submodules local to this module.
ContinuousRangeMap< uint32_t, int, 2 > DeclRemap
Remapping table for declaration IDs in this module.
class LLVM_ALIGNAS(8) DependentTemplateSpecializationType const IdentifierInfo * Name
Represents a template specialization type whose template cannot be resolved, e.g. ...
ContinuousRangeMap< uint32_t, int, 2 > PreprocessedEntityRemap
Remapping table for preprocessed entity IDs in this module.
serialization::MacroID BaseMacroID
Base macro ID for macros local to this module.
serialization::DeclID BaseDeclID
Base declaration ID for declarations local to this module.
detail::InMemoryDirectory::const_iterator I
ModuleKind
Specifies the kind of module that has been loaded.
unsigned LocalNumIdentifiers
The number of identifiers in this AST file.
ContinuousRangeMap< uint32_t, int, 2 > IdentifierRemap
Remapping table for identifier IDs in this module.
unsigned LocalNumMacros
The number of macros in this AST file.
std::string FileName
The file name of the module file.
unsigned SLocEntryBaseOffset
The base offset in the source manager's view of this module.
serialization::TypeID BaseTypeIndex
Base type ID for types local to this module as represented in the global type ID space.
ContinuousRangeMap< uint32_t, int, 2 > SelectorRemap
Remapping table for selector IDs in this module.
serialization::IdentID BaseIdentifierID
Base identifier ID for identifiers local to this module.
ContinuousRangeMap< uint32_t, int, 2 > SubmoduleRemap
Remapping table for submodule IDs in this module.
void * SelectorLookupTable
A pointer to an on-disk hash table of opaque type ASTSelectorLookupTable.
unsigned LocalNumDecls
The number of declarations in this AST file.
void dump()
Dump debugging output for this module.
unsigned LocalNumSubmodules
The number of submodules in this module.
unsigned LocalNumSelectors
The number of selectors new to this file.
static void dumpLocalRemap(StringRef Name, const ContinuousRangeMap< Key, Offset, InitialCapacity > &Map)
A map from continuous integer ranges to some value, with a very specialized interface.
ContinuousRangeMap< uint32_t, int, 2 > MacroRemap
Remapping table for macro IDs in this module.
unsigned Map[Count]
The type of a lookup table which maps from language-specific address spaces to target-specific ones...
void * HeaderFileInfoTable
The on-disk hash table that contains information about each of the header files.
ContinuousRangeMap< uint32_t, int, 2 > TypeRemap
Remapping table for type IDs in this module.
serialization::PreprocessedEntityID BasePreprocessedEntityID
Base preprocessed entity ID for preprocessed entities local to this module.
unsigned LocalNumTypes
The number of types in this AST file.
llvm::SetVector< ModuleFile * > Imports
List of modules which this module depends on.