clang-1/lib
Douglas Gregor cded4f649c Keep track of the number of expansions to be produced from a type pack
expansion, when it is known due to the substitution of an out
parameter pack. This allows us to properly handle substitution into
pack expansions that involve multiple parameter packs at different
template parameter levels, even when this substitution happens one
level at a time (as with partial specializations of member class
templates and the signatures of member function templates).

Note that the diagnostic we provide when there is an arity mismatch
between an outer parameter pack and an inner parameter pack in this
case isn't as clear as the normal diagnostic for an arity
mismatch. However, this doesn't matter because these cases are very,
very rare and (even then) only typically occur in a SFINAE context.

The other kinds of pack expansions (expression, template, etc.) still
need to support optional tracking of the number of expansions, and we
need the moral equivalent of SubstTemplateTypeParmPackType for
substituted argument packs of template template and non-type template
parameters.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123448 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-14 17:04:44 +00:00
..
AST Keep track of the number of expansions to be produced from a type pack 2011-01-14 17:04:44 +00:00
Analysis [analyzer] Add 'bool ignorePrefix' parameter to cocoa::deriveNamingConvention to control whether 2011-01-11 19:45:16 +00:00
Basic wint_t is defined as 'unsigned int' on Linux. Fixes PR8938. 2011-01-12 21:19:25 +00:00
CodeGen Support the zero-initialization of VLAs when that really means a zero 2011-01-14 10:37:58 +00:00
Driver optimize out a temporary sys::Path 2011-01-13 01:35:58 +00:00
Frontend Replace all uses of PathV1::exists with PathV2::fs::exists. 2011-01-10 02:34:13 +00:00
FrontendTool Chris Lattner has strong opinions about directory 2010-12-23 19:38:26 +00:00
Headers Optimized IR for vec_splat 2010-12-01 21:59:31 +00:00
Index Fix CMake clangIndex library dependencies, from Logan Chien 2010-09-20 18:32:29 +00:00
Lex Microsoft integer suffix changes: 2011-01-11 11:57:53 +00:00
Parse Make sure that we parse a '>>' that closes two template argument lists 2011-01-11 00:45:18 +00:00
Rewrite Clang should not warn on code in clang that is only there to remove warnings. 2011-01-06 01:37:28 +00:00
Sema Keep track of the number of expansions to be produced from a type pack 2011-01-14 17:04:44 +00:00
Serialization Keep track of the number of expansions to be produced from a type pack 2011-01-14 17:04:44 +00:00
StaticAnalyzer Rename 'CheckDeadStores.cpp' to 'DeadStoresChecker.cpp'. 2011-01-13 20:58:59 +00:00
CMakeLists.txt Chris Lattner has strong opinions about directory 2010-12-23 19:38:26 +00:00
Makefile Chris Lattner has strong opinions about directory 2010-12-23 19:38:26 +00:00