hanchenye-llvm-project/clang/test/SemaTemplate
Douglas Gregor a477e2afe7 When template substitution into a template parameter reduces the level
of that parameter, reduce the level by the number of active template
argument lists rather than by 1. The number of active template
argument lists is only > 1 when we have a class template partial
specialization of a member template of a class template that itself is
a member template of another class template. 

... and Boost.MSM does this. Fixes PR7669.

llvm-svn: 112551
2010-08-30 23:23:59 +00:00
..
ackermann.cpp
ambiguous-ovl-print.cpp Improve the reporting of non-viable overload candidates by noting the reason 2010-01-13 00:25:19 +00:00
anonymous-union.cpp Add test case for PR5868, and improve location information slightly for implicit "this" expressions 2009-12-24 20:23:34 +00:00
array-to-pointer-decay.cpp Apply array-to-pointer decay when instantiating a MemberExpr. Fixes 2010-06-22 02:41:05 +00:00
attributes.cpp Implement dependent alignment attribute support. This is a bit gross given the 2010-06-25 03:22:07 +00:00
canonical-expr-type-0x.cpp
canonical-expr-type.cpp
class-template-ctor-initializer.cpp If a non-dependent base class initializer fails to match any direct or 2010-06-16 16:03:14 +00:00
class-template-decl.cpp Fix a crash-on-invalid involving name lookup of tag names, where we 2010-04-12 16:00:01 +00:00
class-template-id-2.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
class-template-id.cpp Improve error recovery when presented with an ill-formed template-id 2010-07-30 06:26:29 +00:00
class-template-spec.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
constructor-template.cpp Improve our handling of user-defined conversions as part of overload 2010-04-17 22:01:05 +00:00
copy-ctor-assign.cpp
crash-8204126.cpp Don't set out-of-line template specialization/definition information 2010-07-28 23:59:57 +00:00
current-instantiation.cpp Enable expression transformations in the current-instantiation 2010-07-28 15:14:14 +00:00
deduction-crash.cpp Improve error recovery when presented with an ill-formed template-id 2010-07-30 06:26:29 +00:00
deduction.cpp When perform exact-qualifier-match template argument deduction, 2010-08-28 22:14:41 +00:00
default-arguments-cxx0x.cpp
default-arguments.cpp
default-expr-arguments-2.cpp Be sure to instantiate the parameters of a function, even when the 2010-04-12 07:48:19 +00:00
default-expr-arguments.cpp Ensure that we have completed a type before attempting initialization 2010-04-26 14:36:57 +00:00
dependent-base-classes.cpp Improve recovery when we see a dependent template name that is missing 2010-05-21 23:43:39 +00:00
dependent-base-member-init.cpp PR7698: Make sure we correctly handle the initialization of an array with 2010-07-24 21:19:15 +00:00
dependent-class-member-operator.cpp PR7837: For qualified id's, make sure the decl context is complete if not 2010-08-06 23:41:47 +00:00
dependent-expr.cpp PR7724: Don't try to evaluate value-dependent expressions. 2010-07-27 19:14:53 +00:00
dependent-names.cpp Turn access control on by default in -cc1. 2010-04-09 19:03:51 +00:00
dependent-sized_array.cpp
dependent-template-recover.cpp Improve recovery when we see a dependent template name that is missing 2010-05-21 23:43:39 +00:00
dependent-type-identity.cpp When computing the canonical profile of a DeclRefExpr or MemberExpr, 2010-07-13 08:37:11 +00:00
destructor-template.cpp When we've parsed a nested-name-specifier in a member access 2010-05-27 15:25:59 +00:00
elaborated-type-specifier.cpp Tweak test case slightly 2010-04-24 16:40:35 +00:00
enum-argument.cpp A type- or value-dependent expression cannot use bitfield 2010-05-24 20:13:53 +00:00
example-dynarray.cpp tests: Use %clangxx when using driver for C++, in case C++ support is disabled. 2010-06-29 16:52:24 +00:00
example-typelist.cpp
explicit-instantiation.cpp Provide a special diagnostic for attempts to explicitly specialize 2010-07-13 00:10:04 +00:00
explicit-specialization-member.cpp Fix some redundant errors by changing CXXScopeSpec::isSet calls into 2010-04-07 23:29:58 +00:00
ext-vector-type.cpp Clean up the diagnostic complaining about the element type of a vector 2010-06-30 17:30:41 +00:00
extern-templates.cpp
fibonacci.cpp
friend-template.cpp When computing the template arguments for the instantiation of a 2010-05-03 23:29:10 +00:00
friend.cpp Fix a crash-on-invalid involving name lookup of tag names, where we 2010-04-12 16:00:01 +00:00
fun-template-def.cpp Improve diagnostics when we fail to convert from a source type to a 2010-04-09 00:35:39 +00:00
function-template-specialization.cpp When performing name lookup into a scope, check that its entity is 2010-01-11 22:40:45 +00:00
implicit-instantiation-1.cpp
inject-templated-friend-post.cpp add two more use-cases (explicit instantiation) that should pass now 2010-08-30 21:45:06 +00:00
inject-templated-friend.cpp check whether sema issues a redefinition error 2010-08-28 02:00:22 +00:00
injected-class-name.cpp When we start the definition of a class template, set the 2010-04-30 04:39:27 +00:00
instantiate-anonymous-union.cpp When instantiating anonymous structs/unions within a function, make 2010-05-21 00:31:19 +00:00
instantiate-array.cpp
instantiate-attr.cpp Instantiate attributes from the pattern record when instantiating 2010-08-01 02:01:53 +00:00
instantiate-c99.cpp
instantiate-call.cpp
instantiate-case.cpp
instantiate-cast.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
instantiate-clang.cpp Continue to instantiate sub-statements in a CompoundStmt as long as 2010-08-27 19:56:05 +00:00
instantiate-complete.cpp Require a complete type when performing the qualified lookup during 2010-05-27 06:40:31 +00:00
instantiate-decl-dtor.cpp Make sure we instantiate the destructor for variables initialized by 2009-12-20 22:29:11 +00:00
instantiate-decl-init.cpp A dependent initializer with zero arguments should return a NULL 2010-02-05 07:56:11 +00:00
instantiate-declref-ice.cpp Implement support for variable length arrays in C++. VLAs are limited 2010-05-22 16:17:30 +00:00
instantiate-declref.cpp Implicit decl ref expressions might not have name locations; don't silently 2010-08-17 21:27:17 +00:00
instantiate-deeply.cpp
instantiate-default-assignment-operator.cpp Complete reimplementation of the synthesis for implicitly-defined copy 2010-05-01 20:49:11 +00:00
instantiate-dependent-nested-name.cpp
instantiate-elab-type-specifier.cpp Change the representation of dependent elaborated-type-specifiers 2010-03-31 22:19:08 +00:00
instantiate-enum-2.cpp
instantiate-enum.cpp When instantiating a function-scoped enum, make sure that it and its 2010-03-01 19:00:07 +00:00
instantiate-exception-spec.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
instantiate-expr-1.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
instantiate-expr-2.cpp When transforming a C++ "new" expression's constructor arguments, drop 2010-05-26 07:10:06 +00:00
instantiate-expr-3.cpp Continue to instantiate sub-statements in a CompoundStmt as long as 2010-08-27 19:56:05 +00:00
instantiate-expr-4.cpp Continue to instantiate sub-statements in a CompoundStmt as long as 2010-08-27 19:56:05 +00:00
instantiate-expr-5.cpp Fix template instantiation for __builtin_offfsetof expressions that refer to members of anonymous structs/unions 2010-04-28 22:43:14 +00:00
instantiate-expr-basic.cpp
instantiate-field.cpp Don't poke at an undefined class type of a field. Fixes PR7355. 2010-06-16 16:54:04 +00:00
instantiate-friend-class.cpp
instantiate-function-1.cpp Continue to instantiate sub-statements in a CompoundStmt as long as 2010-08-27 19:56:05 +00:00
instantiate-function-1.mm
instantiate-function-2.cpp Given Decl::isUsed() a flag indicating when to consider the "used" 2010-06-17 23:14:26 +00:00
instantiate-function-params.cpp When instantiating a function that was declared via a typedef, e.g., 2010-05-04 18:18:31 +00:00
instantiate-init.cpp When pulling apart an initializer that involves a CXXConstructExpr, do 2010-03-24 21:22:47 +00:00
instantiate-invalid.cpp Robustify instantiation of templates when there are errors in the 2010-03-01 18:27:54 +00:00
instantiate-local-class.cpp Turn access control on by default in -cc1. 2010-04-09 19:03:51 +00:00
instantiate-member-class.cpp Turn access control on by default in -cc1. 2010-04-09 19:03:51 +00:00
instantiate-member-expr.cpp Improve the diagnostic you get when making a qualified member access 2010-04-27 01:43:38 +00:00
instantiate-member-initializers.cpp Diagnose misordered initializers in constructor templates immediately instead of 2010-04-10 07:37:23 +00:00
instantiate-member-pointers.cpp A DeclRefExpr that refers to a member function or a static data member 2010-05-11 08:41:30 +00:00
instantiate-member-template.cpp When template substitution into a template parameter reduces the level 2010-08-30 23:23:59 +00:00
instantiate-method.cpp When instantiating a member function declared via a typedef, don't try 2010-05-03 15:32:18 +00:00
instantiate-non-dependent-types.cpp When we encounter a non-dependent type during template instantiation, 2010-05-07 23:12:07 +00:00
instantiate-non-type-template-parameter.cpp After substituting a template argument for a non-type template 2010-04-30 21:46:38 +00:00
instantiate-objc-1.mm Provide an Objective C mangling for wchar_t. Patch by Nico Weber! 2010-06-11 10:11:05 +00:00
instantiate-overload-candidates.cpp Add a test for a subtle instantiation pattern that showed up within a Boost 2010-05-11 08:02:08 +00:00
instantiate-overloaded-arrow.cpp
instantiate-static-var.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
instantiate-subscript.cpp Improve the lead diagnostic for C++ object subscript expressions with 2010-01-07 02:04:15 +00:00
instantiate-template-template-parm.cpp In Sema::CheckInitializerTypes, replace a use of CheckReferenceInit with an InitializationSequence 2009-12-16 16:54:16 +00:00
instantiate-try-catch.cpp
instantiate-type.cpp
instantiate-typedef.cpp Make CXXScopeSpec invalid when incomplete, and propagate that into any 2010-04-08 16:38:48 +00:00
instantiate-using-decl.cpp Turn access control on by default in -cc1. 2010-04-09 19:03:51 +00:00
instantiation-backtrace.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
instantiation-default-1.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
instantiation-default-2.cpp Overhaul checking of non-type template arguments that should refer to 2010-04-01 18:32:35 +00:00
instantiation-default-3.cpp
instantiation-depth.cpp Reword the note we emit when suppressing template instantiation contexts, per John's advice 2010-04-21 05:40:43 +00:00
member-access-expr.cpp Fix an corner-case assertion introduced by the refactoring in r112258; 2010-08-30 16:00:47 +00:00
member-function-template.cpp Canonicalize template template parameters when canonicalizing a 2010-06-16 21:09:37 +00:00
member-initializers.cpp
member-template-access-expr.cpp When performing template name lookup for a dependent member access 2010-07-16 16:54:17 +00:00
metafun-apply.cpp When pretty-printing tag types, only print the tag if we're in C (and 2010-03-10 11:27:22 +00:00
nested-linkage.cpp
nested-name-spec-template.cpp When a nested-name-specifier refers into a current instantiation that has 2010-07-28 14:49:07 +00:00
nested-template.cpp
operator-function-id-template.cpp
operator-template.cpp
overload-candidates.cpp Record template argument deduction failures for member function 2010-05-08 20:18:54 +00:00
overload-uneval.cpp
partial-spec-instantiate.cpp Partial and full specializations of a class template may have a 2010-05-06 00:28:52 +00:00
qualified-id.cpp Turn access control on by default in -cc1. 2010-04-09 19:03:51 +00:00
qualified-names-diag.cpp
recovery-crash.cpp Add a workaround for PR7947, a crash trying to recover from invalid C++ code. 2010-08-20 20:54:15 +00:00
recursive-template-instantiation.cpp Note that an overload candidate was non-viable because template argument 2010-02-01 18:53:26 +00:00
self-comparison.cpp Lay the ground work for resoving PR7047. This doesn't actually fix it because 2010-07-10 12:30:03 +00:00
temp.cpp If filtering a lookup result leaves it ambiguous, keep the ambiguity 2010-08-28 20:17:00 +00:00
temp_arg.cpp Explain that a template needs arguments to make it into a type, for 2010-04-08 21:04:54 +00:00
temp_arg_nontype.cpp Correctly instantiate templates with non-type template arguments that 2010-08-19 23:06:02 +00:00
temp_arg_template.cpp Remove some incorrect assertions when deduction template arguments in 2010-08-06 14:15:26 +00:00
temp_arg_type.cpp When instantiating a typedef of an anonymous tag type, note in the tag 2010-04-23 16:25:07 +00:00
temp_class_order.cpp
temp_class_spec.cpp Implement a specific diagnostic when a class template partial 2010-02-09 00:37:32 +00:00
temp_class_spec_blocks.cpp
temp_class_spec_neg.cpp
temp_explicit.cpp The C++98/03 standard is disturbingly silent about out-of-scope 2010-05-11 17:39:34 +00:00
temp_explicit_cxx0x.cpp
temp_func_order.cpp
template-class-traits.cpp
template-decl-fail.cpp It's okay to reference an enum in a template definition, even though 2010-05-03 17:48:54 +00:00
template-id-expr.cpp Fix the recently-added warning about 'typename' and 'template' 2010-06-16 22:31:08 +00:00
template-id-printing.cpp
typename-specifier-2.cpp Switch file-scope assignment initialization over to InitializationSequence. 2009-12-22 02:10:53 +00:00
typename-specifier-3.cpp
typename-specifier-4.cpp Fix the recently-added warning about 'typename' and 'template' 2010-06-16 22:31:08 +00:00
typename-specifier.cpp Fix the recently-added warning about 'typename' and 'template' 2010-06-16 22:31:08 +00:00
typo-dependent-name.cpp When determining whether a given name is a template in a dependent 2010-01-12 17:06:20 +00:00
unused-variables.cpp Improve our handling of the -Wunused-variable warning in templates. In 2010-05-08 23:05:03 +00:00
value-dependent-null-pointer-constant.cpp
variadic-class-template-1.cpp
variadic-class-template-2.cpp
variadic-parse.cpp
variadic-unsupported.cpp
virtual-member-functions.cpp Rework when and how vtables are emitted, by tracking where vtables are 2010-05-13 16:44:06 +00:00