clang
3.9.0
|
Describes a module or submodule. More...
#include <Module.h>
Classes | |
struct | Conflict |
A conflict between two modules. More... | |
struct | DirectoryName |
Information about a directory name as found in the module map file. More... | |
struct | Header |
Information about a header directive as found in the module map file. More... | |
struct | LinkLibrary |
A library or framework to link against when an entity from this module is used. More... | |
struct | UnresolvedConflict |
An unresolved conflict with another module. More... | |
struct | UnresolvedExportDecl |
Describes an exported module that has not yet been resolved (perhaps because the module it refers to has not yet been loaded). More... | |
struct | UnresolvedHeaderDirective |
Stored information about a header directive that was found in the module map file but has not been resolved to a file. More... | |
Public Types | |
enum | HeaderKind { HK_Normal, HK_Textual, HK_Private, HK_PrivateTextual, HK_Excluded } |
enum | NameVisibilityKind { Hidden, AllVisible } |
Describes the visibility of the various names within a particular module. More... | |
typedef std::pair< std::string, bool > | Requirement |
An individual requirement: a feature name and a flag indicating the required state of that feature. More... | |
typedef llvm::PointerIntPair < Module *, 1, bool > | ExportDecl |
Describes an exported module. More... | |
typedef std::vector< Module * > ::iterator | submodule_iterator |
typedef std::vector< Module * > ::const_iterator | submodule_const_iterator |
Public Member Functions | |
Module (StringRef Name, SourceLocation DefinitionLoc, Module *Parent, bool IsFramework, bool IsExplicit, unsigned VisibilityID) | |
Construct a new module or submodule. More... | |
~Module () | |
bool | isAvailable () const |
Determine whether this module is available for use within the current translation unit. More... | |
bool | isAvailable (const LangOptions &LangOpts, const TargetInfo &Target, Requirement &Req, UnresolvedHeaderDirective &MissingHeader) const |
Determine whether this module is available for use within the current translation unit. More... | |
bool | isSubModule () const |
Determine whether this module is a submodule. More... | |
bool | isSubModuleOf (const Module *Other) const |
Determine whether this module is a submodule of the given other module. More... | |
bool | isPartOfFramework () const |
Determine whether this module is a part of a framework, either because it is a framework module or because it is a submodule of a framework module. More... | |
bool | isSubFramework () const |
Determine whether this module is a subframework of another framework. More... | |
std::string | getFullModuleName () const |
Retrieve the full name of this module, including the path from its top-level module. More... | |
bool | fullModuleNameIs (ArrayRef< StringRef > nameParts) const |
Whether the full name of this module is equal to joining nameParts with "."s. More... | |
Module * | getTopLevelModule () |
Retrieve the top-level module for this (sub)module, which may be this module. More... | |
const Module * | getTopLevelModule () const |
Retrieve the top-level module for this (sub)module, which may be this module. More... | |
StringRef | getTopLevelModuleName () const |
Retrieve the name of the top-level module. More... | |
const FileEntry * | getASTFile () const |
The serialized AST file for this module, if one was created. More... | |
void | setASTFile (const FileEntry *File) |
Set the serialized AST file for the top-level module of this module. More... | |
DirectoryName | getUmbrellaDir () const |
Retrieve the directory for which this module serves as the umbrella. More... | |
Header | getUmbrellaHeader () const |
Retrieve the header that serves as the umbrella header for this module. More... | |
bool | hasUmbrellaDir () const |
Determine whether this module has an umbrella directory that is not based on an umbrella header. More... | |
void | addTopHeader (const FileEntry *File) |
Add a top-level header associated with this module. More... | |
void | addTopHeaderFilename (StringRef Filename) |
Add a top-level header filename associated with this module. More... | |
ArrayRef< const FileEntry * > | getTopHeaders (FileManager &FileMgr) |
The top-level headers associated with this module. More... | |
bool | directlyUses (const Module *Requested) const |
Determine whether this module has declared its intention to directly use another module. More... | |
void | addRequirement (StringRef Feature, bool RequiredState, const LangOptions &LangOpts, const TargetInfo &Target) |
Add the given feature requirement to the list of features required by this module. More... | |
void | markUnavailable (bool MissingRequirement=false) |
Mark this module and all of its submodules as unavailable. More... | |
Module * | findSubmodule (StringRef Name) const |
Find the submodule with the given name. More... | |
bool | isModuleVisible (const Module *M) const |
Determine whether the specified module would be visible to a lookup at the end of this module. More... | |
unsigned | getVisibilityID () const |
submodule_iterator | submodule_begin () |
submodule_const_iterator | submodule_begin () const |
submodule_iterator | submodule_end () |
submodule_const_iterator | submodule_end () const |
llvm::iterator_range < submodule_iterator > | submodules () |
llvm::iterator_range < submodule_const_iterator > | submodules () const |
void | getExportedModules (SmallVectorImpl< Module * > &Exported) const |
Appends this module's list of exported modules to Exported . More... | |
void | print (raw_ostream &OS, unsigned Indent=0) const |
Print the module map for this module to the given stream. More... | |
void | dump () const |
Dump the contents of this module to the given output stream. More... | |
Static Public Member Functions | |
static StringRef | getModuleInputBufferName () |
Public Attributes | |
std::string | Name |
The name of this module. More... | |
SourceLocation | DefinitionLoc |
The location of the module definition. More... | |
Module * | Parent |
The parent of this module. More... | |
const DirectoryEntry * | Directory |
The build directory of this module. More... | |
llvm::PointerUnion< const DirectoryEntry *, const FileEntry * > | Umbrella |
The umbrella header or directory. More... | |
uint64_t | Signature |
The module signature. More... | |
std::string | UmbrellaAsWritten |
The name of the umbrella entry, as written in the module map. More... | |
SmallVector< Header, 2 > | Headers [5] |
The headers that are part of this module. More... | |
SmallVector < UnresolvedHeaderDirective, 1 > | MissingHeaders |
Headers that are mentioned in the module map file but could not be found on the file system. More... | |
SmallVector< Requirement, 2 > | Requirements |
The set of language features required to use this module. More... | |
unsigned | IsMissingRequirement: 1 |
Whether this module is missing a feature from Requirements . More... | |
unsigned | HasIncompatibleModuleFile: 1 |
Whether we tried and failed to load a module file for this module. More... | |
unsigned | IsAvailable: 1 |
Whether this module is available in the current translation unit. More... | |
unsigned | IsFromModuleFile: 1 |
Whether this module was loaded from a module file. More... | |
unsigned | IsFramework: 1 |
Whether this is a framework module. More... | |
unsigned | IsExplicit: 1 |
Whether this is an explicit submodule. More... | |
unsigned | IsSystem: 1 |
Whether this is a "system" module (which assumes that all headers in it are system headers). More... | |
unsigned | IsExternC: 1 |
Whether this is an 'extern "C"' module (which implicitly puts all headers in it within an 'extern "C"' block, and allows the module to be imported within such a block). More... | |
unsigned | IsInferred: 1 |
Whether this is an inferred submodule (module * { ... }). More... | |
unsigned | InferSubmodules: 1 |
Whether we should infer submodules for this module based on the headers. More... | |
unsigned | InferExplicitSubmodules: 1 |
Whether, when inferring submodules, the inferred submodules should be explicit. More... | |
unsigned | InferExportWildcard: 1 |
Whether, when inferring submodules, the inferr submodules should export all modules they import (e.g., the equivalent of "export *"). More... | |
unsigned | ConfigMacrosExhaustive: 1 |
Whether the set of configuration macros is exhaustive. More... | |
NameVisibilityKind | NameVisibility |
The visibility of names within this particular module. More... | |
SourceLocation | InferredSubmoduleLoc |
The location of the inferred submodule. More... | |
llvm::SmallSetVector< Module *, 2 > | Imports |
The set of modules imported by this module, and on which this module depends. More... | |
SmallVector< ExportDecl, 2 > | Exports |
The set of export declarations. More... | |
SmallVector < UnresolvedExportDecl, 2 > | UnresolvedExports |
The set of export declarations that have yet to be resolved. More... | |
SmallVector< Module *, 2 > | DirectUses |
The directly used modules. More... | |
SmallVector< ModuleId, 2 > | UnresolvedDirectUses |
The set of use declarations that have yet to be resolved. More... | |
llvm::SmallVector< LinkLibrary, 2 > | LinkLibraries |
The set of libraries or frameworks to link against when an entity from this module is used. More... | |
std::vector< std::string > | ConfigMacros |
The set of "configuration macros", which are macros that (intentionally) change how this module is built. More... | |
std::vector< UnresolvedConflict > | UnresolvedConflicts |
The list of conflicts for which the module-id has not yet been resolved. More... | |
std::vector< Conflict > | Conflicts |
The list of conflicts. More... | |
Static Public Attributes | |
static const int | NumHeaderKinds = HK_Excluded + 1 |
Describes a module or submodule.
Definition at line 47 of file Basic/Module.h.
typedef llvm::PointerIntPair<Module *, 1, bool> clang::Module::ExportDecl |
Describes an exported module.
The pointer is the module being re-exported, while the bit will be true to indicate that this is a wildcard export.
Definition at line 227 of file Basic/Module.h.
typedef std::pair<std::string, bool> clang::Module::Requirement |
An individual requirement: a feature name and a flag indicating the required state of that feature.
Definition at line 142 of file Basic/Module.h.
typedef std::vector<Module *>::const_iterator clang::Module::submodule_const_iterator |
Definition at line 472 of file Basic/Module.h.
typedef std::vector<Module *>::iterator clang::Module::submodule_iterator |
Definition at line 471 of file Basic/Module.h.
Enumerator | |
---|---|
HK_Normal | |
HK_Textual | |
HK_Private | |
HK_PrivateTextual | |
HK_Excluded |
Definition at line 98 of file Basic/Module.h.
Describes the visibility of the various names within a particular module.
Enumerator | |
---|---|
Hidden |
All of the names in this module are hidden. |
AllVisible |
All of the names in this module are visible. |
Definition at line 206 of file Basic/Module.h.
Module::Module | ( | StringRef | Name, |
SourceLocation | DefinitionLoc, | ||
Module * | Parent, | ||
bool | IsFramework, | ||
bool | IsExplicit, | ||
unsigned | VisibilityID | ||
) |
Construct a new module or submodule.
Definition at line 27 of file Basic/Module.cpp.
References IsAvailable, isAvailable(), IsExternC, IsMissingRequirement, IsSystem, and Name.
Module::~Module | ( | ) |
Definition at line 51 of file Basic/Module.cpp.
References I, submodule_begin(), and submodule_end().
void Module::addRequirement | ( | StringRef | Feature, |
bool | RequiredState, | ||
const LangOptions & | LangOpts, | ||
const TargetInfo & | Target | ||
) |
Add the given feature requirement to the list of features required by this module.
Feature | The feature that is required by this module (and its submodules). |
RequiredState | The required state of this feature: true if it must be present, false if it must be absent. |
LangOpts | The set of language options that will be used to evaluate the availability of this feature. |
Target | The target options that will be used to evaluate the availability of this feature. |
Definition at line 185 of file Basic/Module.cpp.
References hasFeature(), markUnavailable(), and Requirements.
|
inline |
Add a top-level header associated with this module.
Definition at line 414 of file Basic/Module.h.
Referenced by collectModuleHeaderIncludes().
|
inline |
Add a top-level header filename associated with this module.
Definition at line 420 of file Basic/Module.h.
Determine whether this module has declared its intention to directly use another module.
Definition at line 172 of file Basic/Module.cpp.
References getTopLevelModule(), and isSubModuleOf().
Referenced by clang::ModuleMap::diagnoseHeaderInclusion().
LLVM_DUMP_METHOD void Module::dump | ( | ) | const |
Dump the contents of this module to the given output stream.
Definition at line 485 of file Basic/Module.cpp.
References print().
Module * Module::findSubmodule | ( | StringRef | Name | ) | const |
Find the submodule with the given name.
Definition at line 225 of file Basic/Module.cpp.
Referenced by clang::CompilerInstance::loadModule(), and clang::ModuleMap::lookupModuleQualified().
Whether the full name of this module is equal to joining nameParts
with "."s.
This is more efficient than getFullModuleName().
Definition at line 143 of file Basic/Module.cpp.
References Parent.
Referenced by shouldAddRequirement().
|
inline |
The serialized AST file for this module, if one was created.
Definition at line 384 of file Basic/Module.h.
References getTopLevelModule().
Referenced by clang::ExternalASTSource::ASTSourceDescriptor::ASTSourceDescriptor(), clang::CompilerInstance::loadGlobalModuleIndex(), and setASTFile().
void Module::getExportedModules | ( | SmallVectorImpl< Module * > & | Exported | ) | const |
Appends this module's list of exported modules to Exported
.
This provides a subset of immediately imported modules (the ones that are directly exported), not the complete set of exported modules.
Definition at line 241 of file Basic/Module.cpp.
References E, Exports, I, Imports, IsExplicit, and isSubModuleOf().
Referenced by clang::ASTReader::makeModuleVisible().
std::string Module::getFullModuleName | ( | ) | const |
Retrieve the full name of this module, including the path from its top-level module.
Definition at line 123 of file Basic/Module.cpp.
References I, clang::ast_matchers::internal::Names(), Parent, and clang::Result.
Referenced by clang::Sema::ActOnModuleImport(), clang::GenerateModuleAction::BeginSourceFileAction(), checkConfigMacro(), checkModuleImportContext(), clang::Sema::diagnoseEquivalentInternalLinkageDeclarations(), clang::ModuleMap::diagnoseHeaderInclusion(), and clang::CompilerInstance::loadModule().
|
inlinestatic |
Definition at line 492 of file Basic/Module.h.
Referenced by clang::GenerateModuleAction::BeginSourceFileAction().
ArrayRef< const FileEntry * > Module::getTopHeaders | ( | FileManager & | FileMgr | ) |
The top-level headers associated with this module.
Definition at line 159 of file Basic/Module.cpp.
References E, clang::FileManager::getFile(), and I.
|
inline |
Retrieve the top-level module for this (sub)module, which may be this module.
Definition at line 368 of file Basic/Module.h.
Referenced by clang::ModuleMap::addHeader(), clang::ModuleMap::diagnoseHeaderInclusion(), directlyUses(), clang::ModuleMap::findModuleForHeader(), getASTFile(), clang::ASTWriter::getLocalOrImportedSubmoduleID(), clang::Preprocessor::getModuleHeaderToIncludeForDiagnostics(), getTopLevelModuleName(), getTopLevelOrNull(), clang::ModuleMap::KnownHeader::isAccessibleFrom(), clang::CompilerInstance::loadModule(), and setASTFile().
const Module * Module::getTopLevelModule | ( | ) | const |
Retrieve the top-level module for this (sub)module, which may be this module.
Definition at line 115 of file Basic/Module.cpp.
References Parent, and clang::Result.
|
inline |
Retrieve the name of the top-level module.
Definition at line 379 of file Basic/Module.h.
References getTopLevelModule(), and Name.
Referenced by clang::Sema::ActOnModuleImport(), clang::Sema::ActOnModuleInclude(), and compileModuleImpl().
Module::DirectoryName Module::getUmbrellaDir | ( | ) | const |
Retrieve the directory for which this module serves as the umbrella.
Definition at line 152 of file Basic/Module.cpp.
References clang::Module::DirectoryName::Entry, getUmbrellaHeader(), Umbrella, and UmbrellaAsWritten.
Referenced by collectModuleHeaderIncludes(), clang::ModuleMap::isHeaderUnavailableInModule(), and print().
|
inline |
Retrieve the header that serves as the umbrella header for this module.
Definition at line 401 of file Basic/Module.h.
References E, Umbrella, and UmbrellaAsWritten.
Referenced by clang::GenerateModuleAction::BeginSourceFileAction(), collectModuleHeaderIncludes(), getUmbrellaDir(), and print().
|
inline |
Definition at line 469 of file Basic/Module.h.
Referenced by clang::VisibleModuleSet::getImportLoc().
|
inline |
Determine whether this module has an umbrella directory that is not based on an umbrella header.
Definition at line 409 of file Basic/Module.h.
References Umbrella.
|
inline |
Determine whether this module is available for use within the current translation unit.
Definition at line 314 of file Basic/Module.h.
References IsAvailable.
Referenced by clang::GenerateModuleAction::BeginSourceFileAction(), collectModuleHeaderIncludes(), clang::ModuleMap::KnownHeader::isAvailable(), isBetterKnownHeader(), clang::CompilerInstance::loadModule(), clang::ASTReader::makeModuleVisible(), and Module().
bool Module::isAvailable | ( | const LangOptions & | LangOpts, |
const TargetInfo & | Target, | ||
Requirement & | Req, | ||
UnresolvedHeaderDirective & | MissingHeader | ||
) | const |
Determine whether this module is available for use within the current translation unit.
LangOpts | The language options used for the current translation unit. |
Target | The target options used for the current translation unit. |
Req | If this module is unavailable, this parameter will be set to one of the requirements that is not met for use of this module. |
Definition at line 80 of file Basic/Module.cpp.
References Current, hasFeature(), I, and IsAvailable.
Determine whether the specified module would be visible to a lookup at the end of this module.
FIXME: This may return incorrect results for (submodules of) the module currently being built, if it's queried before we see all of its imports.
Definition at line 463 of file Basic/Module.h.
|
inline |
Determine whether this module is a part of a framework, either because it is a framework module or because it is a submodule of a framework module.
Definition at line 342 of file Basic/Module.h.
References Parent.
Referenced by isSubFramework().
|
inline |
Determine whether this module is a subframework of another framework.
Definition at line 352 of file Basic/Module.h.
References IsFramework, isPartOfFramework(), and Parent.
Referenced by inferFrameworkLink().
|
inline |
Determine whether this module is a submodule.
Definition at line 333 of file Basic/Module.h.
References Parent.
Determine whether this module is a submodule of the given other module.
Definition at line 103 of file Basic/Module.cpp.
References Parent.
Referenced by directlyUses(), getExportedModules(), clang::ASTWriter::inferSubmoduleIDFromLocation(), and clang::ModuleMap::isHeaderUnavailableInModule().
Mark this module and all of its submodules as unavailable.
Definition at line 197 of file Basic/Module.cpp.
References Current, IsAvailable, IsMissingRequirement, Stack, submodule_begin(), and submodule_end().
Referenced by addRequirement().
void Module::print | ( | raw_ostream & | OS, |
unsigned | Indent = 0 |
||
) | const |
Print the module map for this module to the given stream.
Definition at line 321 of file Basic/Module.cpp.
References ConfigMacros, ConfigMacrosExhaustive, Conflicts, DirectUses, Exports, getUmbrellaDir(), getUmbrellaHeader(), Headers, HK_Excluded, HK_Normal, HK_Private, HK_PrivateTextual, HK_Textual, I, InferExplicitSubmodules, InferExportWildcard, InferSubmodules, IsExplicit, IsExternC, IsFramework, IsSystem, LinkLibraries, Name, printModuleId(), Requirements, submodule_begin(), submodule_end(), UnresolvedConflicts, UnresolvedDirectUses, and UnresolvedExports.
Referenced by compileModuleImpl(), and dump().
|
inline |
Set the serialized AST file for the top-level module of this module.
Definition at line 389 of file Basic/Module.h.
References getASTFile(), and getTopLevelModule().
|
inline |
Definition at line 474 of file Basic/Module.h.
Referenced by clang::Sema::ActOnEndOfTranslationUnit(), clang::Sema::CodeCompleteModuleImport(), collectModuleHeaderIncludes(), getNumberOfModules(), clang::CompilerInstance::loadModule(), markUnavailable(), print(), submodules(), and ~Module().
|
inline |
Definition at line 475 of file Basic/Module.h.
|
inline |
Definition at line 476 of file Basic/Module.h.
Referenced by clang::Sema::ActOnEndOfTranslationUnit(), clang::Sema::CodeCompleteModuleImport(), collectModuleHeaderIncludes(), getNumberOfModules(), clang::CompilerInstance::loadModule(), markUnavailable(), print(), submodules(), and ~Module().
|
inline |
Definition at line 477 of file Basic/Module.h.
|
inline |
Definition at line 479 of file Basic/Module.h.
References submodule_begin(), and submodule_end().
|
inline |
Definition at line 482 of file Basic/Module.h.
References submodule_begin(), and submodule_end().
std::vector<std::string> clang::Module::ConfigMacros |
The set of "configuration macros", which are macros that (intentionally) change how this module is built.
Definition at line 279 of file Basic/Module.h.
Referenced by clang::CompilerInstance::loadModule(), and print().
unsigned clang::Module::ConfigMacrosExhaustive |
Whether the set of configuration macros is exhaustive.
When the set of configuration macros is exhaustive, meaning that no identifier not in this list should affect how the module is built.
Definition at line 202 of file Basic/Module.h.
Referenced by print().
std::vector<Conflict> clang::Module::Conflicts |
The list of conflicts.
Definition at line 304 of file Basic/Module.h.
Referenced by print(), and clang::ModuleMap::resolveConflicts().
SourceLocation clang::Module::DefinitionLoc |
The location of the module definition.
Definition at line 53 of file Basic/Module.h.
Referenced by clang::ModuleMap::getContainingModuleMapFile(), and clang::CompilerInstance::loadGlobalModuleIndex().
const DirectoryEntry* clang::Module::Directory |
The build directory of this module.
This is the directory in which the module is notionally built, and relative to which its headers are found.
Definition at line 62 of file Basic/Module.h.
Referenced by clang::ExternalASTSource::ASTSourceDescriptor::ASTSourceDescriptor(), clang::GenerateModuleAction::BeginSourceFileAction(), and compileModuleImpl().
SmallVector<Module *, 2> clang::Module::DirectUses |
The directly used modules.
Definition at line 251 of file Basic/Module.h.
Referenced by print(), and clang::ModuleMap::resolveUses().
SmallVector<ExportDecl, 2> clang::Module::Exports |
The set of export declarations.
Definition at line 230 of file Basic/Module.h.
Referenced by getExportedModules(), print(), clang::ModuleMap::resolveExports(), and clang::VisibleModuleSet::setVisible().
unsigned clang::Module::HasIncompatibleModuleFile |
Whether we tried and failed to load a module file for this module.
Definition at line 154 of file Basic/Module.h.
Referenced by clang::CompilerInstance::loadModule(), and clang::CompilerInstance::loadModuleFile().
SmallVector<Header, 2> clang::Module::Headers[5] |
The headers that are part of this module.
Definition at line 126 of file Basic/Module.h.
Referenced by clang::ModuleMap::addHeader(), collectModuleHeaderIncludes(), clang::ModuleMap::excludeHeader(), print(), and violatesPrivateInclude().
llvm::SmallSetVector<Module *, 2> clang::Module::Imports |
The set of modules imported by this module, and on which this module depends.
Definition at line 221 of file Basic/Module.h.
Referenced by addLinkOptionsPostorder(), and getExportedModules().
unsigned clang::Module::InferExplicitSubmodules |
Whether, when inferring submodules, the inferred submodules should be explicit.
Definition at line 191 of file Basic/Module.h.
Referenced by print().
unsigned clang::Module::InferExportWildcard |
Whether, when inferring submodules, the inferr submodules should export all modules they import (e.g., the equivalent of "export *").
Definition at line 195 of file Basic/Module.h.
Referenced by print().
SourceLocation clang::Module::InferredSubmoduleLoc |
The location of the inferred submodule.
Definition at line 217 of file Basic/Module.h.
unsigned clang::Module::InferSubmodules |
Whether we should infer submodules for this module based on the headers.
Submodules can only be inferred for modules with an umbrella header.
Definition at line 187 of file Basic/Module.h.
Referenced by clang::ModuleMap::isHeaderUnavailableInModule(), and print().
unsigned clang::Module::IsAvailable |
Whether this module is available in the current translation unit.
If the module is missing headers or does not meet all requirements then this bit will be 0.
Definition at line 160 of file Basic/Module.h.
Referenced by isAvailable(), markUnavailable(), and Module().
unsigned clang::Module::IsExplicit |
Whether this is an explicit submodule.
Definition at line 169 of file Basic/Module.h.
Referenced by getExportedModules(), and print().
unsigned clang::Module::IsExternC |
Whether this is an 'extern "C"' module (which implicitly puts all headers in it within an 'extern "C"' block, and allows the module to be imported within such a block).
Definition at line 178 of file Basic/Module.h.
Referenced by clang::GenerateModuleAction::BeginSourceFileAction(), checkModuleImportContext(), collectModuleHeaderIncludes(), Module(), and print().
unsigned clang::Module::IsFramework |
Whether this is a framework module.
Definition at line 166 of file Basic/Module.h.
Referenced by appendSubframeworkPaths(), clang::ModuleMap::diagnoseHeaderInclusion(), inferFrameworkLink(), isSubFramework(), and print().
unsigned clang::Module::IsFromModuleFile |
Whether this module was loaded from a module file.
Definition at line 163 of file Basic/Module.h.
Referenced by clang::CompilerInstance::loadModule().
unsigned clang::Module::IsInferred |
Whether this is an inferred submodule (module * { ... }).
Definition at line 181 of file Basic/Module.h.
Referenced by clang::GenerateModuleAction::BeginSourceFileAction(), clang::ModuleMap::getModuleMapFileForUniquing(), and clang::ModuleMap::setInferredModuleAllowedBy().
unsigned clang::Module::IsMissingRequirement |
Whether this module is missing a feature from Requirements
.
Definition at line 151 of file Basic/Module.h.
Referenced by markUnavailable(), and Module().
unsigned clang::Module::IsSystem |
Whether this is a "system" module (which assumes that all headers in it are system headers).
Definition at line 173 of file Basic/Module.h.
Referenced by clang::GenerateModuleAction::BeginSourceFileAction(), compileModuleImpl(), clang::ModuleMap::inferFrameworkModule(), clang::Preprocessor::LookupFile(), Module(), and print().
llvm::SmallVector<LinkLibrary, 2> clang::Module::LinkLibraries |
The set of libraries or frameworks to link against when an entity from this module is used.
Definition at line 275 of file Basic/Module.h.
Referenced by addLinkOptionsPostorder(), inferFrameworkLink(), and print().
SmallVector<UnresolvedHeaderDirective, 1> clang::Module::MissingHeaders |
Headers that are mentioned in the module map file but could not be found on the file system.
Definition at line 138 of file Basic/Module.h.
std::string clang::Module::Name |
The name of this module.
Definition at line 50 of file Basic/Module.h.
Referenced by appendSubframeworkPaths(), compileAndLoadModule(), compileModuleImpl(), clang::HeaderSearch::getModuleFileName(), getTopLevelModuleName(), inferFrameworkLink(), clang::CompilerInstance::loadGlobalModuleIndex(), Module(), and print().
NameVisibilityKind clang::Module::NameVisibility |
The visibility of names within this particular module.
Definition at line 214 of file Basic/Module.h.
Referenced by clang::ASTReader::makeModuleVisible(), clang::ASTReader::makeNamesVisible(), and clang::ASTDeclReader::UpdateDecl().
|
static |
Definition at line 105 of file Basic/Module.h.
Module* clang::Module::Parent |
The parent of this module.
This will be NULL for the top-level module.
Definition at line 57 of file Basic/Module.h.
Referenced by clang::Sema::ActOnModuleImport(), addLinkOptionsPostorder(), appendSubframeworkPaths(), collectModuleHeaderIncludes(), fullModuleNameIs(), getFullModuleName(), getNumModuleIdentifiers(), getTopLevelModule(), clang::ModuleMap::isHeaderUnavailableInModule(), isPartOfFramework(), isSubFramework(), isSubModule(), isSubModuleOf(), and clang::ModuleMap::lookupModuleUnqualified().
SmallVector<Requirement, 2> clang::Module::Requirements |
The set of language features required to use this module.
If any of these requirements are not available, the IsAvailable
bit will be false to indicate that this (sub)module is not available.
Definition at line 148 of file Basic/Module.h.
Referenced by addRequirement(), and print().
uint64_t clang::Module::Signature |
The module signature.
Definition at line 68 of file Basic/Module.h.
llvm::PointerUnion<const DirectoryEntry *, const FileEntry *> clang::Module::Umbrella |
The umbrella header or directory.
Definition at line 65 of file Basic/Module.h.
Referenced by getUmbrellaDir(), getUmbrellaHeader(), hasUmbrellaDir(), clang::ModuleMap::setUmbrellaDir(), and clang::ModuleMap::setUmbrellaHeader().
std::string clang::Module::UmbrellaAsWritten |
The name of the umbrella entry, as written in the module map.
Definition at line 71 of file Basic/Module.h.
Referenced by getUmbrellaDir(), getUmbrellaHeader(), clang::ModuleMap::setUmbrellaDir(), and clang::ModuleMap::setUmbrellaHeader().
std::vector<UnresolvedConflict> clang::Module::UnresolvedConflicts |
The list of conflicts for which the module-id has not yet been resolved.
Definition at line 292 of file Basic/Module.h.
Referenced by print(), and clang::ModuleMap::resolveConflicts().
SmallVector<ModuleId, 2> clang::Module::UnresolvedDirectUses |
The set of use declarations that have yet to be resolved.
Definition at line 254 of file Basic/Module.h.
Referenced by print(), and clang::ModuleMap::resolveUses().
SmallVector<UnresolvedExportDecl, 2> clang::Module::UnresolvedExports |
The set of export declarations that have yet to be resolved.
Definition at line 248 of file Basic/Module.h.
Referenced by print(), and clang::ModuleMap::resolveExports().