]> granicus.if.org Git - clang/commit
When we see a 'template' disambiguator that marks the next identifier
authorDouglas Gregor <dgregor@apple.com>
Wed, 16 Jun 2010 23:00:59 +0000 (23:00 +0000)
committerDouglas Gregor <dgregor@apple.com>
Wed, 16 Jun 2010 23:00:59 +0000 (23:00 +0000)
commitd6ab232bb3ec9847de5af06249afb63078b5f2ee
tree1c68b10a04ef4a18ef458c426c4eafef231ae07f
parent1a15dae8be2b28e02b6639aa92b832465c5be420
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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106167 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Parse/Action.h
lib/Parse/ParseExprCXX.cpp
lib/Parse/ParseTemplate.cpp
lib/Sema/Sema.h
lib/Sema/SemaTemplate.cpp
lib/Sema/TreeTransform.h
test/SemaTemplate/nested-name-spec-template.cpp