diff options
-rw-r--r-- | include/clang/Serialization/ChainedIncludesSource.h | 18 | ||||
-rw-r--r-- | lib/Sema/SemaExprCXX.cpp | 2 | ||||
-rw-r--r-- | lib/Serialization/ChainedIncludesSource.cpp | 15 |
3 files changed, 30 insertions, 5 deletions
diff --git a/include/clang/Serialization/ChainedIncludesSource.h b/include/clang/Serialization/ChainedIncludesSource.h index 90e74d913c..ceef4f2e34 100644 --- a/include/clang/Serialization/ChainedIncludesSource.h +++ b/include/clang/Serialization/ChainedIncludesSource.h @@ -14,23 +14,23 @@ #ifndef LLVM_CLANG_SERIALIZATION_CHAINEDINCLUDESSOURCE_H #define LLVM_CLANG_SERIALIZATION_CHAINEDINCLUDESSOURCE_H -#include "clang/AST/ExternalASTSource.h" +#include "clang/Sema/ExternalSemaSource.h" #include <vector> namespace clang { class CompilerInstance; -class ChainedIncludesSource : public ExternalASTSource { +class ChainedIncludesSource : public ExternalSemaSource { public: virtual ~ChainedIncludesSource(); static ChainedIncludesSource *create(CompilerInstance &CI); private: - ExternalASTSource &getFinalReader() const { return *FinalReader; } + ExternalSemaSource &getFinalReader() const { return *FinalReader; } std::vector<CompilerInstance *> CIs; - llvm::OwningPtr<ExternalASTSource> FinalReader; + llvm::OwningPtr<ExternalSemaSource> FinalReader; protected: @@ -56,6 +56,16 @@ protected: virtual void FinishedDeserializing(); virtual void StartTranslationUnit(ASTConsumer *Consumer); virtual void PrintStats(); + +//===----------------------------------------------------------------------===// +// ExternalSemaSource interface. +//===----------------------------------------------------------------------===// + + virtual void InitializeSema(Sema &S); + virtual void ForgetSema(); + virtual std::pair<ObjCMethodList,ObjCMethodList> ReadMethodPool(Selector Sel); + virtual bool LookupUnqualified(LookupResult &R, Scope *S); + }; } diff --git a/lib/Sema/SemaExprCXX.cpp b/lib/Sema/SemaExprCXX.cpp index 36079c2ce7..8c81acc9d1 100644 --- a/lib/Sema/SemaExprCXX.cpp +++ b/lib/Sema/SemaExprCXX.cpp @@ -343,7 +343,7 @@ ExprResult Sema::ActOnCXXTypeid(SourceLocation OpLoc, SourceLocation LParenLoc, bool isType, void *TyOrExpr, SourceLocation RParenLoc) { // Find the std::type_info type. - if (!StdNamespace) + if (!getStdNamespace()) return ExprError(Diag(OpLoc, diag::err_need_header_before_typeid)); if (!CXXTypeInfoDecl) { diff --git a/lib/Serialization/ChainedIncludesSource.cpp b/lib/Serialization/ChainedIncludesSource.cpp index aba1eae3d3..4b954191fc 100644 --- a/lib/Serialization/ChainedIncludesSource.cpp +++ b/lib/Serialization/ChainedIncludesSource.cpp @@ -208,3 +208,18 @@ void ChainedIncludesSource::StartTranslationUnit(ASTConsumer *Consumer) { void ChainedIncludesSource::PrintStats() { return getFinalReader().PrintStats(); } + +void ChainedIncludesSource::InitializeSema(Sema &S) { + return getFinalReader().InitializeSema(S); +} +void ChainedIncludesSource::ForgetSema() { + return getFinalReader().ForgetSema(); +} +std::pair<ObjCMethodList,ObjCMethodList> +ChainedIncludesSource::ReadMethodPool(Selector Sel) { + return getFinalReader().ReadMethodPool(Sel); +} +bool ChainedIncludesSource::LookupUnqualified(LookupResult &R, Scope *S) { + return getFinalReader().LookupUnqualified(R, S); +} + |