14 #ifndef LLVM_CLANG_LEX_PTHMANAGER_H 15 #define LLVM_CLANG_LEX_PTHMANAGER_H 19 #include "llvm/ADT/STLExtras.h" 20 #include "llvm/ADT/StringRef.h" 21 #include "llvm/Support/Allocator.h" 22 #include "llvm/Support/OnDiskHashTable.h" 33 class DiagnosticsEngine;
34 class FileSystemStatCache;
45 using PTHStringIdLookup = llvm::OnDiskChainedHashTable<PTHStringLookupTrait>;
46 using PTHFileLookup = llvm::OnDiskChainedHashTable<PTHFileLookupTrait>;
49 std::unique_ptr<const llvm::MemoryBuffer> Buf;
52 llvm::BumpPtrAllocator Alloc;
56 std::unique_ptr<IdentifierInfo *[], llvm::FreeDeleter> PerIDCache;
60 std::unique_ptr<PTHFileLookup> FileLookup;
65 const unsigned char*
const IdDataTable;
69 std::unique_ptr<PTHStringIdLookup> StringIdLookup;
72 const unsigned NumIds;
80 const unsigned char*
const SpellingBase;
84 const char* OriginalSourceFile;
88 PTHManager(std::unique_ptr<const llvm::MemoryBuffer> buf,
89 std::unique_ptr<PTHFileLookup> fileLookup,
90 const unsigned char *idDataTable,
92 std::unique_ptr<PTHStringIdLookup> stringIdLookup,
unsigned numIds,
93 const unsigned char *spellingBase,
const char *originalSourceFile);
97 unsigned getSpellingAtPTHOffset(
unsigned PTHOffset,
const char*& Buffer);
105 return LazilyCreateIdentifierInfo(PersistentID);
107 IdentifierInfo* LazilyCreateIdentifierInfo(
unsigned PersistentID);
111 enum { Version = 10 };
120 return OriginalSourceFile;
144 std::unique_ptr<FileSystemStatCache> createStatCache();
149 #endif // LLVM_CLANG_LEX_PTHMANAGER_H DominatorTree GraphTraits specialization so the DominatorTree can be iterable by generic graph iterat...
One of these records is kept for each identifier that is lexed.
Concrete class used by the front-end to report problems and issues.
Provides lookups to, and iteration over, IdentiferInfo objects.
Defines the clang::IdentifierInfo, clang::IdentifierTable, and clang::Selector interfaces.
void setPreprocessor(Preprocessor *pp)
const char * getOriginalSourceFile() const
getOriginalSourceFile - Return the full path to the original header file name that was used to genera...
An opaque identifier used by SourceManager which refers to a source file (MemoryBuffer) along with it...
Dataflow Directional Tag Classes.
Defines the clang::SourceLocation class and associated facilities.
Engages in a tight little dance with the lexer to efficiently preprocess tokens.
static OMPLinearClause * Create(const ASTContext &C, SourceLocation StartLoc, SourceLocation LParenLoc, OpenMPLinearClauseKind Modifier, SourceLocation ModifierLoc, SourceLocation ColonLoc, SourceLocation EndLoc, ArrayRef< Expr *> VL, ArrayRef< Expr *> PL, ArrayRef< Expr *> IL, Expr *Step, Expr *CalcStep, Stmt *PreInit, Expr *PostUpdate)
Creates clause with a list of variables VL and a linear step Step.