]> granicus.if.org Git - clang/commit
PR9023: A template template parameter whose template parameter list contains an
authorRichard Smith <richard-llvm@metafoo.co.uk>
Fri, 7 Sep 2012 02:06:42 +0000 (02:06 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Fri, 7 Sep 2012 02:06:42 +0000 (02:06 +0000)
commit6964b3f80ce1ba489e7e25e7cd58062699af9b0c
tree23881676ffb0efdee3b8aa5ab6c88b89e7a181e4
parent8f0d0fef5f90b16600cdb802d5d7344417c34aad
PR9023: A template template parameter whose template parameter list contains an
unexpanded parameter pack is a pack expansion. Thus, as with a non-type template
parameter which is a pack expansion, it needs to be expanded early into a fixed
list of template parameters.

Since the expanded list of template parameters is not itself a parameter pack,
it is permitted to appear before the end of the template parameter list, so also
remove that restriction (for both template template parameter pack expansions and
non-type template parameter pack expansions).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163369 91177308-0d34-0410-b5e6-96231b3b80d8
12 files changed:
include/clang/AST/DeclTemplate.h
include/clang/Sema/Sema.h
include/clang/Serialization/ASTBitCodes.h
lib/AST/DeclTemplate.cpp
lib/Sema/SemaTemplate.cpp
lib/Sema/SemaTemplateDeduction.cpp
lib/Sema/SemaTemplateInstantiateDecl.cpp
lib/Serialization/ASTReaderDecl.cpp
lib/Serialization/ASTWriterDecl.cpp
test/CXX/temp/temp.param/p15-cxx0x.cpp
test/PCH/cxx-variadic-templates.cpp
test/PCH/cxx-variadic-templates.h