]> granicus.if.org Git - clang/commit
Introduce a new type, PackExpansionType, to capture types that are
authorDouglas Gregor <dgregor@apple.com>
Mon, 20 Dec 2010 02:24:11 +0000 (02:24 +0000)
committerDouglas Gregor <dgregor@apple.com>
Mon, 20 Dec 2010 02:24:11 +0000 (02:24 +0000)
commit7536dd5e6c99584481b7dab68b7e7d8df9c54054
treeb404f8a27369f14746fb159940fda899f9355cae
parentd3d3be9bc717b37366324e9711f1ea22dea42caa
Introduce a new type, PackExpansionType, to capture types that are
pack expansions, e.g. given

  template<typename... Types> struct tuple;

  template<typename... Types>
  struct tuple_of_refs {
    typedef tuple<Types&...> types;
  };

the type of the "types" typedef is a PackExpansionType whose pattern
is Types&.

This commit introduces support for creating pack expansions for
template type arguments, as above, but not for any other kind of pack
expansion, nor for any form of instantiation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122223 91177308-0d34-0410-b5e6-96231b3b80d8
23 files changed:
include/clang/AST/ASTContext.h
include/clang/AST/RecursiveASTVisitor.h
include/clang/AST/Type.h
include/clang/AST/TypeLoc.h
include/clang/AST/TypeNodes.def
include/clang/Basic/DiagnosticSemaKinds.td
include/clang/Sema/ParsedTemplate.h
include/clang/Sema/Sema.h
include/clang/Serialization/ASTBitCodes.h
lib/AST/ASTContext.cpp
lib/AST/ASTImporter.cpp
lib/AST/TypePrinter.cpp
lib/CodeGen/Mangle.cpp
lib/CodeGen/MicrosoftCXXABI.cpp
lib/Parse/ParseTemplate.cpp
lib/Sema/SemaTemplate.cpp
lib/Sema/SemaTemplateDeduction.cpp
lib/Sema/SemaTemplateVariadic.cpp
lib/Sema/TreeTransform.h
lib/Serialization/ASTReader.cpp
lib/Serialization/ASTWriter.cpp
test/CXX/temp/temp.decls/temp.variadic/p5.cpp
tools/libclang/CIndex.cpp