clang API Documentation

Functions
HeaderSearch.cpp File Reference
#include "clang/Lex/HeaderSearch.h"
#include "clang/Basic/FileManager.h"
#include "clang/Basic/IdentifierTable.h"
#include "clang/Lex/HeaderMap.h"
#include "clang/Lex/HeaderSearchOptions.h"
#include "clang/Lex/LexDiagnostic.h"
#include "clang/Lex/Lexer.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/Hashing.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/Support/Capacity.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/raw_ostream.h"
#include <cstdio>
Include dependency graph for HeaderSearch.cpp:

Go to the source code of this file.

Functions

static const FileEntrygetFileAndSuggestModule (HeaderSearch &HS, StringRef FileName, const DirectoryEntry *Dir, bool IsSystemHeaderDir, ModuleMap::KnownHeader *SuggestedModule)
static const DirectoryEntrygetTopFrameworkDir (FileManager &FileMgr, StringRef DirName, SmallVectorImpl< std::string > &SubmodulePath)
 Given a framework directory, find the top-most framework directory.
static bool checkMSVCHeaderSearch (DiagnosticsEngine &Diags, const FileEntry *MSFE, const FileEntry *FE, SourceLocation IncludeLoc)
 Return true with a diagnostic if the file that MSVC would have found fails to match the one that Clang would have found with MSVC header search disabled.
static const char * copyString (StringRef Str, llvm::BumpPtrAllocator &Alloc)
static void mergeHeaderFileInfo (HeaderFileInfo &HFI, const HeaderFileInfo &OtherHFI)
 Merge the header file info provided by OtherHFI into the current header file info (HFI)
static const FileEntrygetPrivateModuleMap (StringRef ModuleMapPath, const DirectoryEntry *Directory, FileManager &FileMgr)

Function Documentation

static bool checkMSVCHeaderSearch ( DiagnosticsEngine Diags,
const FileEntry MSFE,
const FileEntry FE,
SourceLocation  IncludeLoc 
) [static]

Return true with a diagnostic if the file that MSVC would have found fails to match the one that Clang would have found with MSVC header search disabled.

Definition at line 543 of file HeaderSearch.cpp.

References clang::FileEntry::getName(), and clang::DiagnosticsEngine::Report().

Referenced by clang::HeaderSearch::LookupFile().

static const char* copyString ( StringRef  Str,
llvm::BumpPtrAllocator &  Alloc 
) [static]

Definition at line 553 of file HeaderSearch.cpp.

Referenced by clang::HeaderSearch::LookupFile().

static const FileEntry* getFileAndSuggestModule ( HeaderSearch HS,
StringRef  FileName,
const DirectoryEntry Dir,
bool  IsSystemHeaderDir,
ModuleMap::KnownHeader SuggestedModule 
) [static]
static const FileEntry* getPrivateModuleMap ( StringRef  ModuleMapPath,
const DirectoryEntry Directory,
FileManager FileMgr 
) [static]
static const DirectoryEntry* getTopFrameworkDir ( FileManager FileMgr,
StringRef  DirName,
SmallVectorImpl< std::string > &  SubmodulePath 
) [static]

Given a framework directory, find the top-most framework directory.

Parameters:
FileMgrThe file manager to use for directory lookups.
DirNameThe name of the framework directory.
SubmodulePathWill be populated with the submodule path from the returned top-level module to the originally named framework.

Definition at line 345 of file HeaderSearch.cpp.

References clang::FileManager::getCanonicalName(), and clang::FileManager::getDirectory().

Referenced by clang::HeaderSearch::LookupSubframeworkHeader().

static void mergeHeaderFileInfo ( HeaderFileInfo HFI,
const HeaderFileInfo OtherHFI 
) [static]