summaryrefslogtreecommitdiffstats
path: root/include/clang/Lex/HeaderMap.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/clang/Lex/HeaderMap.h')
-rw-r--r--include/clang/Lex/HeaderMap.h76
1 files changed, 0 insertions, 76 deletions
diff --git a/include/clang/Lex/HeaderMap.h b/include/clang/Lex/HeaderMap.h
deleted file mode 100644
index 183361e..0000000
--- a/include/clang/Lex/HeaderMap.h
+++ /dev/null
@@ -1,76 +0,0 @@
-//===--- HeaderMap.h - A file that acts like dir of symlinks ----*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the HeaderMap interface.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_CLANG_LEX_HEADERMAP_H
-#define LLVM_CLANG_LEX_HEADERMAP_H
-
-#include "clang/Basic/LLVM.h"
-#include "llvm/Support/Compiler.h"
-#include <memory>
-
-namespace llvm {
- class MemoryBuffer;
-}
-namespace clang {
- class FileEntry;
- class FileManager;
- struct HMapBucket;
- struct HMapHeader;
-
-/// This class represents an Apple concept known as a 'header map'. To the
-/// \#include file resolution process, it basically acts like a directory of
-/// symlinks to files. Its advantages are that it is dense and more efficient
-/// to create and process than a directory of symlinks.
-class HeaderMap {
- HeaderMap(const HeaderMap &) = delete;
- void operator=(const HeaderMap &) = delete;
-
- std::unique_ptr<const llvm::MemoryBuffer> FileBuffer;
- bool NeedsBSwap;
-
- HeaderMap(std::unique_ptr<const llvm::MemoryBuffer> File, bool BSwap)
- : FileBuffer(std::move(File)), NeedsBSwap(BSwap) {}
-public:
- /// HeaderMap::Create - This attempts to load the specified file as a header
- /// map. If it doesn't look like a HeaderMap, it gives up and returns null.
- static const HeaderMap *Create(const FileEntry *FE, FileManager &FM);
-
- /// LookupFile - Check to see if the specified relative filename is located in
- /// this HeaderMap. If so, open it and return its FileEntry.
- /// If RawPath is not NULL and the file is found, RawPath will be set to the
- /// raw path at which the file was found in the file system. For example,
- /// for a search path ".." and a filename "../file.h" this would be
- /// "../../file.h".
- const FileEntry *LookupFile(StringRef Filename, FileManager &FM) const;
-
- /// If the specified relative filename is located in this HeaderMap return
- /// the filename it is mapped to, otherwise return an empty StringRef.
- StringRef lookupFilename(StringRef Filename,
- SmallVectorImpl<char> &DestPath) const;
-
- /// getFileName - Return the filename of the headermap.
- const char *getFileName() const;
-
- /// dump - Print the contents of this headermap to stderr.
- void dump() const;
-
-private:
- unsigned getEndianAdjustedWord(unsigned X) const;
- const HMapHeader &getHeader() const;
- HMapBucket getBucket(unsigned BucketNo) const;
- const char *getString(unsigned StrTabIdx) const;
-};
-
-} // end namespace clang.
-
-#endif
OpenPOWER on IntegriCloud