aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenFunction.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-11-11 16:39:34 +0000
committerDouglas Gregor <dgregor@apple.com>2009-11-11 16:39:34 +0000
commit120635bc9c3b86919f9269a1105285b783043c90 (patch)
treec28b273c6d104dbb65745a7c27eb753a56b48709 /clang/lib/CodeGen/CodeGenFunction.cpp
parentba61fed5d35f137f1c29d6b4ee96de7930f9d700 (diff)
downloadllvm-120635bc9c3b86919f9269a1105285b783043c90.zip
llvm-120635bc9c3b86919f9269a1105285b783043c90.tar.gz
llvm-120635bc9c3b86919f9269a1105285b783043c90.tar.bz2
Fix speculative parsing of dependent template names in
nested-name-specifiers so that they don't gobble the template name (or operator-function-id) unless there is also a template-argument-list. For example, given T::template apply we would previously consume both "template" and "apply" as part of parsing the nested-name-specifier, then error when we see that there is no "<" starting a template argument list. Now, we parse such constructs tentatively, and back off if the "<" is not present. This allows us to parse dependent template names as one would use them for, e.g., template template parameters: template<typename T, template<class> class X = T::template apply> struct MetaSomething; Also, test default arguments for template template parameters. llvm-svn: 86841
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.cpp')
0 files changed, 0 insertions, 0 deletions