summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/Sema.h
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-06-16 23:00:59 +0000
committerDouglas Gregor <dgregor@apple.com>2010-06-16 23:00:59 +0000
commitbb1196534c9bd929afeb17643b3b86401d636b39 (patch)
tree0160482e2a8339aa7a42274335dfcac29febf89c /clang/lib/Sema/Sema.h
parente94f1ded24ae8f25bdbb318264a15afa8abd23eb (diff)
downloadbcm5719-llvm-bb1196534c9bd929afeb17643b3b86401d636b39.tar.gz
bcm5719-llvm-bb1196534c9bd929afeb17643b3b86401d636b39.zip
When we see a 'template' disambiguator that marks the next identifier
(or operator-function-id) as a template, but the context is actually non-dependent or the current instantiation, allow us to use knowledge of what kind of template it is, e.g., type template vs. function template, for further syntactic disambiguation. This allows us to parse properly in the presence of stray "template" keywords, which is necessary in C++0x and it's good recovery in C++98/03. llvm-svn: 106167
Diffstat (limited to 'clang/lib/Sema/Sema.h')
-rw-r--r--clang/lib/Sema/Sema.h13
1 files changed, 7 insertions, 6 deletions
diff --git a/clang/lib/Sema/Sema.h b/clang/lib/Sema/Sema.h
index c81c12bb86c..e719cd74537 100644
--- a/clang/lib/Sema/Sema.h
+++ b/clang/lib/Sema/Sema.h
@@ -2937,12 +2937,13 @@ public:
SourceLocation NameLoc,
const TemplateArgumentListInfo &TemplateArgs);
- virtual TemplateTy ActOnDependentTemplateName(Scope *S,
- SourceLocation TemplateKWLoc,
- CXXScopeSpec &SS,
- UnqualifiedId &Name,
- TypeTy *ObjectType,
- bool EnteringContext);
+ virtual TemplateNameKind ActOnDependentTemplateName(Scope *S,
+ SourceLocation TemplateKWLoc,
+ CXXScopeSpec &SS,
+ UnqualifiedId &Name,
+ TypeTy *ObjectType,
+ bool EnteringContext,
+ TemplateTy &Template);
bool CheckClassTemplatePartialSpecializationArgs(
TemplateParameterList *TemplateParams,
OpenPOWER on IntegriCloud