13 #ifndef LLVM_CLANG_LEX_DIRECTORYLOOKUP_H 14 #define LLVM_CLANG_LEX_DIRECTORYLOOKUP_H 54 unsigned DirCharacteristic : 2;
58 unsigned LookupType : 2;
61 unsigned IsIndexHeaderMap : 1;
65 unsigned SearchedAllModuleMaps : 1;
71 : u(Dir), DirCharacteristic(DT),
73 IsIndexHeaderMap(
false), SearchedAllModuleMaps(
false) {}
78 : u(Map), DirCharacteristic(DT), LookupType(
LT_HeaderMap),
79 IsIndexHeaderMap(isIndexHeaderMap), SearchedAllModuleMaps(
false) {}
92 return isNormalDir() ? &u.Dir.getDirEntry() :
nullptr;
98 return isFramework() ? &u.Dir.getDirEntry() :
nullptr;
128 SearchedAllModuleMaps = SAMM;
185 bool &InUserSpecifiedSystemFramework,
bool &IsFrameworkFound,
193 bool &InUserSpecifiedSystemFramework,
bool &IsFrameworkFound)
const;
bool isIndexHeaderMap() const
Whether this header map is building a framework or not.
Defines the SourceManager interface.
StringRef getName() const
getName - Return the directory or filename corresponding to this lookup object.
CharacteristicKind
Indicates whether a file or directory holds normal user code, system code, or system code which is im...
bool isHeaderMap() const
isHeaderMap - Return true if this is a header map, not a normal directory.
Describes a module or submodule.
DirectoryLookup(const HeaderMap *Map, SrcMgr::CharacteristicKind DT, bool isIndexHeaderMap)
This ctor does not take ownership of 'Map'.
Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified...
DirectoryLookup(DirectoryEntryRef Dir, SrcMgr::CharacteristicKind DT, bool isFramework)
This ctor does not take ownership of 'Dir'.
Optional< DirectoryEntryRef > getFrameworkDirRef() const
bool isNormalDir() const
isNormalDir - Return true if this is a normal directory, not a header map.
bool isFramework() const
isFramework - True if this is a framework directory.
DirectoryLookup - This class represents one entry in the search list that specifies the search order ...
Encodes a location in the source.
bool isSystemHeaderDirectory() const
Whether this describes a system header directory.
LookupType_t getLookupType() const
getLookupType - Return the kind of directory lookup that this is: either a normal directory...
SrcMgr::CharacteristicKind getDirCharacteristic() const
DirCharacteristic - The type of directory this is, one of the DirType enum values.
bool haveSearchedAllModuleMaps() const
Determine whether we have already searched this entire directory for module maps. ...
const HeaderMap * getHeaderMap() const
getHeaderMap - Return the directory that this entry refers to.
Dataflow Directional Tag Classes.
A reference to a DirectoryEntry that includes the name of the directory as it was accessed by the Fil...
const DirectoryEntry * getDir() const
getDir - Return the directory that this entry refers to.
Cached information about one directory (either on disk or in the virtual file system).
Optional< FileEntryRef > LookupFile(StringRef &Filename, HeaderSearch &HS, SourceLocation IncludeLoc, SmallVectorImpl< char > *SearchPath, SmallVectorImpl< char > *RelativePath, Module *RequestingModule, ModuleMap::KnownHeader *SuggestedModule, bool &InUserSpecifiedSystemFramework, bool &IsFrameworkFound, bool &IsInHeaderMap, SmallVectorImpl< char > &MappedName) const
LookupFile - Lookup the specified file in this search path, returning it if it exists or returning nu...
void setSearchedAllModuleMaps(bool SAMM)
Specify whether we have already searched all of the subdirectories for module maps.
const DirectoryEntry * getFrameworkDir() const
getFrameworkDir - Return the directory that this framework refers to.