From 36981b17ed939300f6f8fc2355a255f711fcef71 Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Thu, 20 Oct 2011 21:14:49 +0000 Subject: Vendor import of clang release_30 branch r142614: http://llvm.org/svn/llvm-project/cfe/branches/release_30@142614 --- include/clang/Sema/Template.h | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'include/clang/Sema/Template.h') diff --git a/include/clang/Sema/Template.h b/include/clang/Sema/Template.h index a257772ee102c..78f50fa9ffa4a 100644 --- a/include/clang/Sema/Template.h +++ b/include/clang/Sema/Template.h @@ -45,7 +45,7 @@ namespace clang { private: /// \brief The template argument lists, stored from the innermost template /// argument list (first) to the outermost template argument list (last). - llvm::SmallVector TemplateArgumentLists; + SmallVector TemplateArgumentLists; public: /// \brief Construct an empty set of template argument lists. @@ -178,7 +178,7 @@ namespace clang { class LocalInstantiationScope { public: /// \brief A set of declarations. - typedef llvm::SmallVector DeclArgumentPack; + typedef SmallVector DeclArgumentPack; private: /// \brief Reference to the semantic analysis that is performing @@ -210,7 +210,7 @@ namespace clang { LocalDeclsMap LocalDecls; /// \brief The set of argument packs we've allocated. - llvm::SmallVector ArgumentPacks; + SmallVector ArgumentPacks; /// \brief The outer scope, which contains local variable /// definitions from some other instantiation (that may not be @@ -318,7 +318,7 @@ namespace clang { /// \brief A list of out-of-line class template partial /// specializations that will need to be instantiated after the /// enclosing class's instantiation is complete. - llvm::SmallVector, 4> OutOfLinePartialSpecs; @@ -350,7 +350,8 @@ namespace clang { TemplateParameterList *TemplateParams = 0); Decl *VisitCXXRecordDecl(CXXRecordDecl *D); Decl *VisitCXXMethodDecl(CXXMethodDecl *D, - TemplateParameterList *TemplateParams = 0); + TemplateParameterList *TemplateParams = 0, + bool IsClassScopeSpecialization = false); Decl *VisitCXXConstructorDecl(CXXConstructorDecl *D); Decl *VisitCXXDestructorDecl(CXXDestructorDecl *D); Decl *VisitCXXConversionDecl(CXXConversionDecl *D); @@ -367,11 +368,13 @@ namespace clang { Decl *VisitUsingShadowDecl(UsingShadowDecl *D); Decl *VisitUnresolvedUsingValueDecl(UnresolvedUsingValueDecl *D); Decl *VisitUnresolvedUsingTypenameDecl(UnresolvedUsingTypenameDecl *D); + Decl *VisitClassScopeFunctionSpecializationDecl( + ClassScopeFunctionSpecializationDecl *D); // Base case. FIXME: Remove once we can instantiate everything. Decl *VisitDecl(Decl *D) { unsigned DiagID = SemaRef.getDiagnostics().getCustomDiagID( - Diagnostic::Error, + DiagnosticsEngine::Error, "cannot instantiate %0 yet"); SemaRef.Diag(D->getLocation(), DiagID) << D->getDeclKindName(); @@ -380,7 +383,7 @@ namespace clang { } typedef - llvm::SmallVectorImpl > ::iterator delayed_partial_spec_iterator; @@ -403,7 +406,7 @@ namespace clang { // Helper functions for instantiating methods. TypeSourceInfo *SubstFunctionType(FunctionDecl *D, - llvm::SmallVectorImpl &Params); + SmallVectorImpl &Params); bool InitFunctionInstantiation(FunctionDecl *New, FunctionDecl *Tmpl); bool InitMethodInstantiation(CXXMethodDecl *New, CXXMethodDecl *Tmpl); -- cgit v1.2.3