llvm-project/clang/test/SemaTemplate
Douglas Gregor 601f4f0b07 Improve type-checking of templates by distinguishing between members
of the current instantiation and members of an unknown specialization
when type-checking a qualified-if expression.

llvm-svn: 89653
2009-11-23 12:39:54 +00:00
..
ackermann.cpp Fix comment, and reduce computational expense of this test. 2009-07-11 22:44:48 +00:00
ambiguous-ovl-print.cpp When printing an overload candidate that is a function template specialization, 2009-09-15 20:11:42 +00:00
canonical-expr-type-0x.cpp Update for LLVM API change. 2009-07-31 20:28:54 +00:00
canonical-expr-type.cpp Make canonicalization of overloaded function declarations match the 2009-07-31 16:07:31 +00:00
class-template-ctor-initializer.cpp Patch to implement template types in ctor-initializer list. 2009-07-01 19:21:19 +00:00
class-template-decl.cpp Be a little more careful when trying to extract a TypeDecl from a enum/class/struct/union specifier; in invalid code, we may also see ClassTemplateDecls. 2009-11-05 20:54:04 +00:00
class-template-id-2.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
class-template-id.cpp Fix parsing of template classes prefixed by nested-name-specifiers 2009-03-25 15:40:00 +00:00
class-template-spec.cpp Require the object type of a member access expression ("." or "->") to 2009-11-17 05:17:33 +00:00
constructor-template.cpp Improve on diagnosing type mismatches because of 2009-11-18 18:26:29 +00:00
copy-ctor-assign.cpp When looking for a copy-assignment operator to determine the cv-qualifiers on its argument type, ignore assignment operator templates 2009-10-30 22:48:49 +00:00
current-instantiation.cpp Improve type-checking of templates by distinguishing between members 2009-11-23 12:39:54 +00:00
deduction.cpp Template argument deduction for template template parameters. This 2009-11-11 23:06:43 +00:00
default-arguments.cpp Remove an overly-eager assertion when replacing tokens with an 2009-11-12 00:03:40 +00:00
default-expr-arguments.cpp Make sure that we instantiate default function arguments for an 2009-11-09 19:27:57 +00:00
dependent-base-member-init.cpp When we know that we are parsing a class-name, implicitly construct a 2009-08-26 18:27:52 +00:00
dependent-names.cpp Fix PR4365. 2009-06-12 18:53:02 +00:00
dependent-sized_array.cpp Deduce a ConstantArrayType from a value-dependent initializer list 2009-11-19 23:25:22 +00:00
dependent-type-identity.cpp Improve support for out-of-line definitions of nested templates and 2009-08-25 22:51:20 +00:00
destructor-template.cpp When checking the base object of a member access expression (b.foo, 2009-11-20 19:58:21 +00:00
enum-argument.cpp Make sure that EnumConstantDecls always get a type, even when they have type-dependent initializers. 2009-11-06 00:03:12 +00:00
example-dynarray.cpp Use clang to run tests which include headers from the system. 2009-11-17 10:14:55 +00:00
example-typelist.cpp Example metaprogram for reversing and searching in a type list 2009-06-09 21:22:32 +00:00
explicit-instantiation.cpp Additional semantic checking for explicit template instantiations, 2009-10-14 23:41:34 +00:00
explicit-specialization-member.cpp When entering the scope of a declarator, make sure that the scope is 2009-09-24 23:39:01 +00:00
ext-vector-type.cpp Rebuild dependently-sized ext vectors if either the element type or the size 2009-10-23 17:55:45 +00:00
extern-templates.cpp Make the remaining explicit-instantiation semantic action use 2009-10-15 22:53:21 +00:00
fibonacci.cpp The injected-class-name of class templates and class template 2009-03-26 00:10:35 +00:00
friend-template.cpp When a friend is declared in a dependent context, don't even try to 2009-10-30 22:42:42 +00:00
friend.cpp Simplify the handling of non-dependent friend class template 2009-09-26 20:57:03 +00:00
fun-template-def.cpp When type-checking a C++ "new" expression, don't type-check the actual 2009-10-17 21:40:42 +00:00
function-template-specialization.cpp Use explicitly-specified template argument lists to help naming 2009-09-25 23:53:26 +00:00
implicit-instantiation-1.cpp Update for LLVM API change. 2009-07-27 21:00:51 +00:00
injected-class-name.cpp Use the new statement/expression profiling code to unique dependent 2009-07-29 16:09:57 +00:00
instantiate-anonymous-union.cpp Don't assume that a base is always a RecordType, it can also be a TemplateSpecializationType. Also, make sure to get the instantiated union member. 2009-09-01 06:22:14 +00:00
instantiate-array.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
instantiate-attr.cpp When instantiating a field decl, make sure to clone its attributes. With this change FileCheck no longer crashes when it's run without any arguments. 2009-11-07 06:07:58 +00:00
instantiate-c99.cpp Template instantiation for C99 compound literals 2009-05-21 23:48:18 +00:00
instantiate-call.cpp Template instantiation for call expressions. 2009-05-19 00:38:01 +00:00
instantiate-case.cpp The sub-statement of a case statement is not an unevaluated context! 2009-11-19 03:14:00 +00:00
instantiate-cast.cpp We may need to instantiate a class template specialization as part of a derived-to-base pointer case 2009-10-29 23:08:22 +00:00
instantiate-clang.cpp Template instantiation for ExtVectorElementExpr. 2009-05-22 23:07:44 +00:00
instantiate-complete.cpp Fixed two places where we needed to force completion of a type 2009-11-05 13:06:35 +00:00
instantiate-decl-init.cpp Don't reprocess non-dependent initializers of non-dependent VarDecls. Fixes PR5426. 2009-11-08 10:16:43 +00:00
instantiate-declref-ice.cpp When determining whether a reference to a static data member is an 2009-11-01 20:32:48 +00:00
instantiate-declref.cpp When performing template instantiation (transformation) of 2009-11-04 07:01:15 +00:00
instantiate-deeply.cpp Don't try to check the initialization of fields with dependent 2009-11-04 17:16:11 +00:00
instantiate-dependent-nested-name.cpp Fix for PR4382: allow instantiating dependent nested name specifiers. 2009-06-13 04:51:30 +00:00
instantiate-enum.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
instantiate-expr-1.cpp When instantiating a UnaryOperator, allow the resulting expression to 2009-11-05 00:51:44 +00:00
instantiate-expr-2.cpp When type-checking a C++ "new" expression, don't type-check the actual 2009-10-17 21:40:42 +00:00
instantiate-expr-3.cpp Template instantiation for ExtVectorElementExpr. 2009-05-22 23:07:44 +00:00
instantiate-expr-4.cpp Template instantiation for qualified declaration reference 2009-05-22 23:47:06 +00:00
instantiate-expr-5.cpp Slight code reorganization to allow instantiating post-inc/dec. 2009-07-22 22:25:00 +00:00
instantiate-expr-basic.cpp Test case for previous commit. Explicit instantiation does the trick. (Thanks, Anders.) 2009-05-16 18:59:35 +00:00
instantiate-field.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
instantiate-friend-class.cpp Fix for PR4794 (instantiating friend class decl); this version shouldn't 2009-08-27 19:11:42 +00:00
instantiate-function-1.cpp Fix type of 'this' and add a decltype test. 2009-07-10 21:35:09 +00:00
instantiate-function-1.mm Switch XFAIL format to match LLVM. 2009-11-03 07:25:45 +00:00
instantiate-function-2.cpp Make sure that we use the canonical type for the names of instantiated 2009-05-15 21:18:27 +00:00
instantiate-init.cpp Implement support for C++ direct initializers that involve dependent 2009-08-26 21:14:46 +00:00
instantiate-member-class.cpp Fix notes regarding the instantiation of member classes (and test 'em). 2009-03-25 21:23:52 +00:00
instantiate-member-initializers.cpp Make instantiating initializers for classes with a dependent base type 2009-08-29 22:22:07 +00:00
instantiate-member-pointers.cpp Template argument deduction of a non-type template parameter from a 2009-11-13 23:45:44 +00:00
instantiate-member-template.cpp Teach FixOverloadedFunctionReference to build new expression ASTs rather 2009-11-20 19:42:02 +00:00
instantiate-method.cpp When we have a non-dependent expression such as 2009-11-20 00:59:20 +00:00
instantiate-non-type-template-parameter.cpp Implement "incremental" template instantiation for non-type template 2009-10-31 17:21:17 +00:00
instantiate-objc-1.mm Instantiation support for more Obj-C expressions, string literals, @selector and @protocol expressions. 2009-06-07 19:51:47 +00:00
instantiate-overloaded-arrow.cpp Fix PR5488: special-case the overloaded arrow operator so that we don't try to 2009-11-16 19:13:03 +00:00
instantiate-static-var.cpp Update for LLVM API change. 2009-07-27 22:29:56 +00:00
instantiate-subscript.cpp Properly instantiate usage of overloaded operator []. Fixes PR5345. 2009-10-29 20:17:01 +00:00
instantiate-template-template-parm.cpp When comparing template parameter lists, distinguish between three cases: 2009-11-12 16:20:59 +00:00
instantiate-try-catch.cpp Deal with an icky corner case where we were complaining that a catch 2009-05-18 21:08:14 +00:00
instantiate-type.cpp Template instantiation for "typeof" for both types and expressions. 2009-05-26 22:09:24 +00:00
instantiate-typedef.cpp Improve diagnostics when the parser encounters a declarator with an 2009-10-13 23:27:22 +00:00
instantiate-using-decl.cpp Implement template instantiation for using directives, which is dead simple. 2009-11-17 06:07:40 +00:00
instantiation-backtrace.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
instantiation-default-1.cpp Initial infrastructure for class template partial specialization. Here 2009-05-31 09:31:02 +00:00
instantiation-default-2.cpp Before checking a template template argument against its corresponding 2009-11-11 19:13:48 +00:00
instantiation-default-3.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
instantiation-depth.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
member-access-expr.cpp Make sure to grab CVR qualifiers from the canonical type. ARGH! 2009-11-05 00:07:36 +00:00
member-function-template.cpp Require the object type of a member access expression ("." or "->") to 2009-11-17 05:17:33 +00:00
member-initializers.cpp Don't check member and base initializers if the constructor is dependent. 2009-08-27 05:57:30 +00:00
member-template-access-expr.cpp When starting a C++ member access expression, make sure to compute the 2009-11-04 22:49:18 +00:00
metafun-apply.cpp Implement transformation of template names within the generic tree 2009-08-06 06:41:21 +00:00
nested-linkage.cpp Make the check for the linkage of a template handle the case of nested 2009-07-31 01:43:05 +00:00
nested-name-spec-template.cpp Fix speculative parsing of dependent template names in 2009-11-11 16:39:34 +00:00
nested-template.cpp Before checking a template template argument against its corresponding 2009-11-11 19:13:48 +00:00
operator-function-id-template.cpp Implement support for parsing dependent template-ids that refer to 2009-11-04 00:56:37 +00:00
operator-template.cpp If we attempt to add a constructor template specialization that looks 2009-11-14 01:20:54 +00:00
overload-uneval.cpp Do not mark declarations as used when performing overload resolution. Fixes PR5541 2009-11-23 12:27:39 +00:00
partial-spec-instantiate.cpp Keep track of the template arguments deduced when matching a class 2009-08-02 23:24:31 +00:00
qualified-id.cpp Parse a C++ scope specifier followed by a "typename" annotation token as a type name within the declaration specifiers. Fixes PR5061. 2009-09-28 07:26:33 +00:00
qualified-names-diag.cpp When overload resolution fails for an overloaded operator, show the 2009-09-30 21:46:01 +00:00
recursive-template-instantiation.cpp When recursively instantiating function templates, keep track of the 2009-06-30 17:20:14 +00:00
temp.cpp Parser::ParseDeclarationOrFunctionDefinition no longer needs to accept 2009-05-12 21:43:46 +00:00
temp_arg.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
temp_arg_nontype.cpp Introduce a new representation for template template 2009-11-11 01:00:40 +00:00
temp_arg_template.cpp Introduce a new representation for template template 2009-11-11 01:00:40 +00:00
temp_arg_type.cpp Rename clang to clang-cc. 2009-03-24 02:24:46 +00:00
temp_class_order.cpp Implement partial ordering of class template partial specializations 2009-09-15 16:23:51 +00:00
temp_class_spec.cpp Implement partial ordering of class template partial specializations 2009-09-15 16:23:51 +00:00
temp_class_spec_blocks.cpp Deducation and instantiation of block types. 2009-06-12 16:23:10 +00:00
temp_class_spec_neg.cpp Refactor checking of the scope of explicit template specialization 2009-10-07 00:13:32 +00:00
temp_explicit.cpp Tolerate extraneous "template<>" headers better, downgrading the 2009-11-23 12:11:45 +00:00
temp_explicit_cxx0x.cpp Improve the semantic checking for explicit instantiations of 2009-05-13 18:28:20 +00:00
temp_func_order.cpp Implement partial ordering of function templates when calling a 2009-09-14 23:02:14 +00:00
template-decl-fail.cpp Start propagating template parameter lists to the right places to 2009-06-23 23:11:28 +00:00
template-id-expr.cpp When instantiating a MemberExpr, be sure to instantiate the 2009-11-04 23:20:05 +00:00
template-id-printing.cpp Migrate Sema::ActOnCallExpr to Sema::FixOverloadedFunctionReference, 2009-10-23 22:18:25 +00:00
typename-specifier-2.cpp Create a new PrintingPolicy class, which we pass down through the AST 2009-05-29 20:38:28 +00:00
typename-specifier-3.cpp Move test to be with the other typename tests. 2009-06-11 01:01:02 +00:00
typename-specifier-4.cpp Add a few more typename-specifier tests that involve simple-template-ids in the nested-name-specifier 2009-09-02 13:07:20 +00:00
typename-specifier.cpp Improve diagnostics when the parser encounters a declarator with an 2009-10-13 23:27:22 +00:00
value-dependent-null-pointer-constant.cpp Eliminate &&s in tests. 2009-11-08 01:45:36 +00:00
variadic-class-template-1.cpp A parameter pack must always come last in a class template. 2009-06-12 23:20:15 +00:00
variadic-class-template-2.cpp Make the remaining explicit-instantiation semantic action use 2009-10-15 22:53:21 +00:00
variadic-parse.cpp Parse support for C++0x type parameter packs. 2009-06-12 19:58:00 +00:00
variadic-unsupported.cpp Address more comments from Doug. 2009-06-12 23:09:56 +00:00