From 5101c24f60997b3775624f5c9488ded8e9f3cdf2 Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Fri, 5 Dec 2008 18:15:24 +0000 Subject: Representation of template type parameters and non-type template parameters, with some semantic analysis: - Template parameters are introduced into template parameter scope - Complain about template parameter shadowing (except in Microsoft mode) Note that we leak template parameter declarations like crazy, a problem we'll remedy once we actually create proper declarations for templates. Next up: dependent types and value-dependent/type-dependent expressions. llvm-svn: 60597 --- clang/lib/Sema/Sema.h | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'clang/lib/Sema/Sema.h') diff --git a/clang/lib/Sema/Sema.h b/clang/lib/Sema/Sema.h index ef150646381..f1d0ee2da01 100644 --- a/clang/lib/Sema/Sema.h +++ b/clang/lib/Sema/Sema.h @@ -988,6 +988,17 @@ public: bool CheckOverloadedOperatorDeclaration(FunctionDecl *FnDecl); + //===--------------------------------------------------------------------===// + // C++ Templates [C++ 14] + // + bool isTemplateParameterDecl(Decl *D); + bool DiagnoseTemplateParameterShadow(SourceLocation Loc, Decl *PrevDecl); + virtual DeclTy *ActOnTypeParameter(Scope *S, bool Typename, + SourceLocation KeyLoc, + IdentifierInfo *ParamName, + SourceLocation ParamNameLoc); + virtual DeclTy *ActOnNonTypeTemplateParameter(Scope *S, Declarator &D); + // Objective-C declarations. virtual DeclTy *ActOnStartClassInterface(SourceLocation AtInterfaceLoc, IdentifierInfo *ClassName, -- cgit v1.2.3