diff --git a/clang/Lex/HeaderSearch.cpp b/clang/Lex/HeaderSearch.cpp index 3489de560512..1d79effc8458 100644 --- a/clang/Lex/HeaderSearch.cpp +++ b/clang/Lex/HeaderSearch.cpp @@ -100,7 +100,8 @@ const FileEntry *DirectoryLookup::LookupFile(const char *FilenameStart, if (isFramework()) return DoFrameworkLookup(FilenameStart, FilenameEnd, HS); - assert(0 && "headermap unimp"); + assert(isHeaderMap() && "Unknown directory lookup"); + return getHeaderMap()->LookupFile(FilenameStart, FilenameEnd,HS.getFileMgr()); } diff --git a/clang/include/clang/Lex/HeaderMap.h b/clang/include/clang/Lex/HeaderMap.h index 7c79fe0447d2..ffc665094e4d 100644 --- a/clang/include/clang/Lex/HeaderMap.h +++ b/clang/include/clang/Lex/HeaderMap.h @@ -14,7 +14,11 @@ #ifndef LLVM_CLANG_LEX_HEADERMAP_H #define LLVM_CLANG_LEX_HEADERMAP_H +#include + namespace clang { + class FileEntry; + class FileManager; /// This class represents an Apple concept known as a 'header map'. To the /// #include file resolution process, it basically acts like a directory of @@ -30,6 +34,15 @@ public: // FIXME: woot! return 0; } + + /// LookupFile - Check to see if the specified relative filename is located in + /// this HeaderMap. If so, open it and return its FileEntry. + const FileEntry *LookupFile(const char *FilenameStart,const char *FilenameEnd, + FileManager &FM) const { + // FIXME: this needs work. + return 0; + } + }; } // end namespace clang.