diff options
author | rdivacky <rdivacky@FreeBSD.org> | 2009-11-18 14:59:57 +0000 |
---|---|---|
committer | rdivacky <rdivacky@FreeBSD.org> | 2009-11-18 14:59:57 +0000 |
commit | 741c13ecc20fb35b836ad690aeecd402f002d654 (patch) | |
tree | 60a1694bec5a44d15456acc880cb2f91619f66aa /include/clang/Frontend/PCHReader.h | |
parent | b3a51061b1b9c4add078237850649f7c9efb13ab (diff) | |
download | FreeBSD-src-741c13ecc20fb35b836ad690aeecd402f002d654.zip FreeBSD-src-741c13ecc20fb35b836ad690aeecd402f002d654.tar.gz |
Update clang to r89205.
Diffstat (limited to 'include/clang/Frontend/PCHReader.h')
-rw-r--r-- | include/clang/Frontend/PCHReader.h | 44 |
1 files changed, 24 insertions, 20 deletions
diff --git a/include/clang/Frontend/PCHReader.h b/include/clang/Frontend/PCHReader.h index cc8b3a0..85861fa 100644 --- a/include/clang/Frontend/PCHReader.h +++ b/include/clang/Frontend/PCHReader.h @@ -29,6 +29,7 @@ #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/OwningPtr.h" #include "llvm/ADT/SmallVector.h" +#include "llvm/ADT/StringRef.h" #include "llvm/Bitcode/BitstreamReader.h" #include "llvm/System/DataTypes.h" #include <deque> @@ -78,7 +79,7 @@ public: /// \brief Receives the target triple. /// /// \returns true to indicate the target triple is invalid or false otherwise. - virtual bool ReadTargetTriple(const std::string &Triple) { + virtual bool ReadTargetTriple(llvm::StringRef Triple) { return false; } @@ -87,18 +88,18 @@ public: /// \param PCHPredef The start of the predefines buffer in the PCH /// file. /// - /// \param PCHPredefLen The length of the predefines buffer in the PCH - /// file. - /// /// \param PCHBufferID The FileID for the PCH predefines buffer. /// + /// \param OriginalFileName The original file name for the PCH, which will + /// appear as an entry in the predefines buffer. + /// /// \param SuggestedPredefines If necessary, additional definitions are added /// here. /// /// \returns true to indicate the predefines are invalid or false otherwise. - virtual bool ReadPredefinesBuffer(const char *PCHPredef, - unsigned PCHPredefLen, + virtual bool ReadPredefinesBuffer(llvm::StringRef PCHPredef, FileID PCHBufferID, + llvm::StringRef OriginalFileName, std::string &SuggestedPredefines) { return false; } @@ -123,10 +124,10 @@ public: : PP(PP), Reader(Reader), NumHeaderInfos(0) {} virtual bool ReadLanguageOptions(const LangOptions &LangOpts); - virtual bool ReadTargetTriple(const std::string &Triple); - virtual bool ReadPredefinesBuffer(const char *PCHPredef, - unsigned PCHPredefLen, + virtual bool ReadTargetTriple(llvm::StringRef Triple); + virtual bool ReadPredefinesBuffer(llvm::StringRef PCHPredef, FileID PCHBufferID, + llvm::StringRef OriginalFileName, std::string &SuggestedPredefines); virtual void ReadHeaderFileInfo(const HeaderFileInfo &HFI); virtual void ReadCounter(unsigned Value); @@ -312,10 +313,13 @@ private: /// the PCH file. llvm::SmallVector<uint64_t, 4> ObjCCategoryImpls; - /// \brief The original file name that was used to build the PCH - /// file. + /// \brief The original file name that was used to build the PCH file, which + /// may have been modified for relocatable-pch support. std::string OriginalFileName; + /// \brief The actual original file name that was used to build the PCH file. + std::string ActualOriginalFileName; + /// \brief Whether this precompiled header is a relocatable PCH file. bool RelocatablePCH; @@ -444,9 +448,7 @@ private: void MaybeAddSystemRootToFilename(std::string &Filename); PCHReadResult ReadPCHBlock(); - bool CheckPredefinesBuffer(const char *PCHPredef, - unsigned PCHPredefLen, - FileID PCHBufferID); + bool CheckPredefinesBuffer(llvm::StringRef PCHPredef, FileID PCHBufferID); bool ParseLineTable(llvm::SmallVectorImpl<uint64_t> &Record); PCHReadResult ReadSourceManagerBlock(); PCHReadResult ReadSLocEntryRecord(unsigned ID); @@ -625,13 +627,15 @@ public: /// \brief Retrieve the IdentifierInfo for the named identifier. /// - /// 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. + /// 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. virtual IdentifierInfo* get(const char *NameStart, const char *NameEnd); + IdentifierInfo* get(llvm::StringRef Name) { + return get(Name.begin(), Name.end()); + } /// \brief Load the contents of the global method pool for a given /// selector. |