diff options
Diffstat (limited to 'include/clang/Frontend/PCHReader.h')
-rw-r--r-- | include/clang/Frontend/PCHReader.h | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/include/clang/Frontend/PCHReader.h b/include/clang/Frontend/PCHReader.h index 7e2c656..9665ce1 100644 --- a/include/clang/Frontend/PCHReader.h +++ b/include/clang/Frontend/PCHReader.h @@ -20,6 +20,7 @@ #include "clang/AST/DeclObjC.h" #include "clang/AST/Type.h" #include "clang/AST/TemplateBase.h" +#include "clang/Lex/ExternalPreprocessorSource.h" #include "clang/Basic/Diagnostic.h" #include "clang/Basic/IdentifierTable.h" #include "clang/Basic/SourceManager.h" @@ -146,7 +147,8 @@ public: /// required when traversing the AST. Only those AST nodes that are /// actually required will be de-serialized. class PCHReader - : public ExternalSemaSource, + : public ExternalPreprocessorSource, + public ExternalSemaSource, public IdentifierInfoLookup, public ExternalIdentifierLookup, public ExternalSLocEntrySource { @@ -183,6 +185,10 @@ private: llvm::BitstreamReader StreamFile; llvm::BitstreamCursor Stream; + /// \brief The cursor to the start of the preprocessor block, which stores + /// all of the macro definitions. + llvm::BitstreamCursor MacroCursor; + /// DeclsCursor - This is a cursor to the start of the DECLS_BLOCK block. It /// has read all the abbreviations at the start of the block and is ready to /// jump around with these in context. @@ -634,8 +640,7 @@ public: /// This routine builds a new IdentifierInfo for the given identifier. If any /// declarations with this name are visible from translation unit scope, their /// declarations will be deserialized and introduced into the declaration - /// chain of the identifier. FIXME: if this identifier names a macro, - /// deserialize the macro. + /// chain of the identifier. virtual IdentifierInfo* get(const char *NameStart, const char *NameEnd); IdentifierInfo* get(llvm::StringRef Name) { return get(Name.begin(), Name.end()); @@ -712,6 +717,9 @@ public: /// \brief Reads the macro record located at the given offset. void ReadMacroRecord(uint64_t Offset); + /// \brief Read the set of macros defined by this external macro source. + virtual void ReadDefinedMacros(); + /// \brief Retrieve the AST context that this PCH reader /// supplements. ASTContext *getContext() { return Context; } |