summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/Sema.h
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2008-12-05 18:15:24 +0000
committerDouglas Gregor <dgregor@apple.com>2008-12-05 18:15:24 +0000
commit5101c24f60997b3775624f5c9488ded8e9f3cdf2 (patch)
tree2807802cd135f700026aa90f8d842508b2630d5a /clang/lib/Sema/Sema.h
parent43c08918389ca2f928a94a4f2a5faa256a10e8e4 (diff)
downloadbcm5719-llvm-5101c24f60997b3775624f5c9488ded8e9f3cdf2.tar.gz
bcm5719-llvm-5101c24f60997b3775624f5c9488ded8e9f3cdf2.zip
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
Diffstat (limited to 'clang/lib/Sema/Sema.h')
-rw-r--r--clang/lib/Sema/Sema.h11
1 files changed, 11 insertions, 0 deletions
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,
OpenPOWER on IntegriCloud