hanchenye-llvm-project/clang/test/SemaTemplate
Richard Smith ae1bab56d9 Fix crash due to missing array-to-pointer decay when instantiating an unresolved
member expression. Refactoring to follow.

llvm-svn: 143017
2011-10-26 06:49:26 +00:00
..
ackermann.cpp
address-spaces.cpp When comparing parameters of reference-to-qualified type during 2011-04-30 17:07:52 +00:00
alias-church-numerals.cpp Update all tests other than Driver/std.cpp to use -std=c++11 rather than 2011-10-13 22:29:44 +00:00
alias-nested-nontag.cpp Update all tests other than Driver/std.cpp to use -std=c++11 rather than 2011-10-13 22:29:44 +00:00
alias-template-template-param.cpp Update all tests other than Driver/std.cpp to use -std=c++11 rather than 2011-10-13 22:29:44 +00:00
alias-templates.cpp Update all tests other than Driver/std.cpp to use -std=c++11 rather than 2011-10-13 22:29:44 +00:00
ambiguous-ovl-print.cpp
anonymous-union.cpp When searching for an instantiated declaration requires instantiation 2010-11-05 23:22:45 +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
atomics.cpp When type-checking a call to an overloaded, builtin atomic operation, 2011-09-09 16:51:10 +00:00
attributes.cpp For the various CF and NS attributes, don't complain if the parameter 2011-10-09 22:26:49 +00:00
canonical-expr-type-0x.cpp Update all tests other than Driver/std.cpp to use -std=c++11 rather than 2011-10-13 22:29:44 +00:00
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 When performing name lookup for the previous declaration of a field, 2011-10-21 15:47:52 +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 "const std::vector<int>*" not "std::vector<int> const*" 2010-09-05 00:27:00 +00:00
class-template-spec.cpp Diagnose class template (partial) specializations that occur in the 2011-10-20 16:41:18 +00:00
constructor-template.cpp Improve our handling of C++ [class.copy]p3, which specifies that a 2010-11-08 17:16:59 +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 When declaring an out-of-line template, attempt to rebuild any types 2011-10-14 15:31:12 +00:00
deduction-crash.cpp It's considered poor form to create references to the overloaded 2011-05-21 22:16:50 +00:00
deduction.cpp Restore the C-style cast hack for enum template arguments, 2011-07-15 07:47:58 +00:00
default-arguments-cxx0x.cpp Update all tests other than Driver/std.cpp to use -std=c++11 rather than 2011-10-13 22:29:44 +00:00
default-arguments.cpp When performing substitution of default template template parameters 2011-06-15 14:20:42 +00:00
default-expr-arguments-2.cpp Tweak GetPreamblePCHPath() to more closely match the behavior of the 2010-09-11 17:51:16 +00:00
default-expr-arguments.cpp Enhance the diagnostic for negative array sizes to include the 2011-01-04 04:44:35 +00:00
delegating-constructors.cpp Update all tests other than Driver/std.cpp to use -std=c++11 rather than 2011-10-13 22:29:44 +00:00
dependent-base-classes.cpp When we run into an error parsing or type-checking the left-hand side 2010-09-17 22:25:06 +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 Don't try to compute the value of a value-dependent expression when 2010-12-21 07:22:56 +00:00
dependent-names-no-std.cpp Hyphenate "argument-dependent". 2011-06-14 12:59:25 +00:00
dependent-names.cpp Update all tests other than Driver/std.cpp to use -std=c++11 rather than 2011-10-13 22:29:44 +00:00
dependent-sized_array.cpp
dependent-template-recover.cpp When constructing source-location information for a 2011-03-04 18:53:13 +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 Diagnose destructor templates. Fixes PR7904. 2011-03-04 22:45:55 +00:00
elaborated-type-specifier.cpp Tag references shouldn't ever get template parameter lists. 2010-10-19 18:40:57 +00:00
enum-argument.cpp Clarify the logic for when to build an overloaded binop. In particular, 2010-12-06 05:26:58 +00:00
enum-forward.cpp Implement C++0x scoped enumerations, from Daniel Wallin! (and tweaked a 2010-10-08 23:50:27 +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 Make the invalid declarator recovery when parsing members work the same as when parsing global decls. It's still rather broken (skipping much too far when the declarator belongs to a function definition), but at least not so broken as to mismatch braces. Tested by the removal of the fixme in the template test case. 2011-04-24 16:27:48 +00:00
explicit-specialization-member.cpp Instantiate class member template partial specialization declarations 2010-11-10 19:44:59 +00:00
ext-vector-type.cpp Eliminate a 'default' case in template argument deduction, where we 2011-06-15 16:02:29 +00:00
extern-templates.cpp
fibonacci.cpp
friend-template.cpp When we parse something that looks like a templated friend tag but 2011-10-20 15:58:54 +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 'const std::type_info*' instead of 'std::type_info const*' 2010-09-05 00:17:29 +00:00
function-template-specialization.cpp Disallow function template partial specializations, from Hans 2011-01-24 18:54:39 +00:00
implicit-instantiation-1.cpp
inject-templated-friend-post.cpp Switch to using %clang_cc1 properly rather than manually passing the -cc1 flag. 2010-11-13 10:19:35 +00:00
inject-templated-friend.cpp Switch to using %clang_cc1 properly rather than manually passing the -cc1 flag. 2010-11-13 10:19:35 +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 building a qualified reference to a member of an anonymous struct 2011-02-18 02:44:58 +00:00
instantiate-array.cpp Update all tests other than Driver/std.cpp to use -std=c++11 rather than 2011-10-13 22:29:44 +00:00
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 Hyphenate "argument-dependent". 2011-06-14 12:59:25 +00:00
instantiate-case.cpp
instantiate-cast.cpp Implement appropriate semantics for C++ casting and conversion when 2011-04-15 17:59:54 +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 When we're type-checking the result of calling a conversion function 2010-11-13 19:36:57 +00:00
instantiate-decl-dtor.cpp
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 Enhance the diagnostic for negative array sizes to include the 2011-01-04 04:44:35 +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 transforming the arguments for a C++ "new" expression, make sure 2011-10-18 02:43:19 +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 Properly diagnose using abstract and incomplete types in va_arg 2011-06-14 05:17:32 +00:00
instantiate-expr-4.cpp Fix crash due to missing array-to-pointer decay when instantiating an unresolved 2011-10-26 06:49:26 +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 Update all tests other than Driver/std.cpp to use -std=c++11 rather than 2011-10-13 22:29:44 +00:00
instantiate-field.cpp Before checking bitfield initialization, make sure that neither the 2011-02-04 13:09:01 +00:00
instantiate-friend-class.cpp
instantiate-function-1.cpp When determining whether we need to instantiate a function type, 2011-05-09 20:45:16 +00:00
instantiate-function-1.mm
instantiate-function-2.cpp Switch diagnostic text from "C++0x" over to "C++11". 2011-10-12 19:26:40 +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 Improve the instantiation of static data members in 2011-06-03 14:28:43 +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 For member pointer conversions potentially involving derived-to-base 2010-12-21 21:40:41 +00:00
instantiate-member-class.cpp Switch diagnostic text from "C++0x" over to "C++11". 2011-10-12 19:26:40 +00:00
instantiate-member-expr.cpp Enhance the diagnostic for negative array sizes to include the 2011-01-04 04:44:35 +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 Enhance the diagnostic for negative array sizes to include the 2011-01-04 04:44:35 +00:00
instantiate-member-template.cpp When transforming a dependent template specialization type, make sure 2011-03-07 02:33:33 +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 When we're creating an expression for an integral template argument of 2011-02-18 02:12:44 +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 Mark the ExtWarn for in-class initialization of static const float members as a GNU extension. Don't extend the scope of this extension to all literal types in C++0x mode. 2011-09-29 23:18:34 +00:00
instantiate-subscript.cpp
instantiate-template-template-parm.cpp Add test for PR8629 2011-01-25 18:11:52 +00:00
instantiate-try-catch.cpp Update all tests other than Driver/std.cpp to use -std=c++11 rather than 2011-10-13 22:29:44 +00:00
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 Fix handling of dependent nested namespace specifiers in UsingDecls 2010-09-29 17:58:28 +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 make clang print types as "const int *" instead of "int const*", 2010-09-05 00:04:01 +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
issue150.cpp When substituting in for a template name, do not produce a qualified 2011-03-05 20:06:51 +00:00
lookup-dependent-bases.cpp In Microsoft mode, if we are within a templated function and we can't resolve Identifier during BuildCXXNestedNameSpecifier, then extend the SS with Identifier. This will have the effect of resolving Identifier during template instantiation. The goal is to be able to resolve a function call whose nested-name-specifier is located inside a dependent base class. 2011-07-27 01:05:24 +00:00
member-access-ambig.cpp When performing name lookup for the previous declaration of a field, 2011-10-21 15:47:52 +00:00
member-access-expr.cpp Clarify the logic for when to build an overloaded binop. In particular, 2010-12-06 05:26:58 +00:00
member-function-template.cpp Canonicalize template template parameters when canonicalizing a 2010-06-16 21:09:37 +00:00
member-inclass-init-value-dependent.cpp Replace r134583's fix for PR10290 with one which also works for non-value-dependent cases. 2011-07-20 00:12:52 +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
missing-class-keyword-crash.cpp Fix a crash-on-invalid. 2011-08-25 23:22:24 +00:00
ms-function-specialization-class-scope.cpp fix typo in test. 2011-08-14 22:30:29 +00:00
ms-if-exists.cpp Check for unexpanded parameter packs in the name that guards a 2011-10-25 03:44:56 +00:00
ms-lookup-template-base-classes.cpp In Microsoft mode, if we are inside a template class member function and we can't resolve a function call then create a type-dependent CallExpr even if the function has no type dependent arguments. The goal is to postpone name lookup to instantiation time to be able to search into type dependent base classes. 2011-09-07 00:14:57 +00:00
nested-linkage.cpp
nested-name-spec-template.cpp Don't ask if a depenendent CXXRecordDecl has any dependent bases 2011-03-11 23:27:41 +00:00
nested-template.cpp Diagnose attempts to write a templated data member, from Stepan 2011-09-21 14:40:46 +00:00
operator-function-id-template.cpp
operator-template.cpp When we determine that a function template specialization produced as 2011-10-12 20:35:48 +00:00
overload-candidates.cpp Record template argument deduction failures for member function 2010-05-08 20:18:54 +00:00
overload-uneval.cpp Whitelist operator== and operator!= as valid for unused value warnings, 2011-08-17 09:49:44 +00:00
partial-spec-instantiate.cpp When converting an integral template argument value to a non-type 2011-05-04 21:55:00 +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
rdar9173693.cpp Fix a double free when parsing malformed code. Fixes rdar://9173693. 2011-05-03 18:45:38 +00:00
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
resolve-single-template-id.cpp Update all tests other than Driver/std.cpp to use -std=c++11 rather than 2011-10-13 22:29:44 +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 When we determine that a function template specialization produced as 2011-10-12 20:35:48 +00:00
temp_arg_template.cpp Detect when the string "<::" is found in code after a cast or template name and is interpreted as "[:" because of the digraph "<:". When found, give an error with a fix-it to add whitespace between the "<" and "::". 2011-04-14 21:45:45 +00:00
temp_arg_type.cpp Allow anonymous and local types. The support was already in place for these, 2010-09-03 21:12:34 +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 When diagnosing C++ [temp.expl.spec]p3 in C++98/03 mode, downgrade the 2010-09-12 05:24:55 +00:00
temp_explicit.cpp Switch to the C++11 warning flags in tests. 2011-10-18 05:54:07 +00:00
temp_explicit_cxx0x.cpp Refactor the checking for explicit template instantiations being performed in 2011-10-18 02:28:33 +00:00
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
typename-specifier-3.cpp
typename-specifier-4.cpp When building a type for a typename specifier, check specifically for 2011-03-01 16:44:30 +00:00
typename-specifier.cpp Diagnose attempts to use 'using typename' with a non-identifier name, 2011-09-26 14:30:28 +00:00
typo-dependent-name.cpp
unresolved-construct.cpp Update all tests other than Driver/std.cpp to use -std=c++11 rather than 2011-10-13 22:29:44 +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
virtual-member-functions.cpp Rework when and how vtables are emitted, by tracking where vtables are 2010-05-13 16:44:06 +00:00