hanchenye-llvm-project/clang/test/SemaTemplate
Douglas Gregor 7861a80346 Introduce a new class, UnqualifiedId, that provides a parsed
representation of a C++ unqualified-id, along with a single parsing
function (Parser::ParseUnqualifiedId) that will parse all of the
various forms of unqualified-id in C++.

Replace the representation of the declarator name in Declarator with
the new UnqualifiedId class, simplifying declarator-id parsing
considerably and providing more source-location information to
Sema. In the future, I hope to migrate all of the other
unqualified-id-parsing code over to this single representation, then
begin to merge actions that are currently only different because we
didn't have a unqualified notion of the name in the parser.

llvm-svn: 85851
2009-11-03 01:35:08 +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 Robustify a bunch of C++-related declaration actions. 2009-06-22 23:20:33 +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 Only set the point of instantiation for an implicit or explicit 2009-10-27 06:26:26 +00:00
constructor-template.cpp Introduce a new class, UnqualifiedId, that provides a parsed 2009-11-03 01:35:08 +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 What luck! Clang obtains support for refering to members of the 2009-07-30 17:50:56 +00:00
default-arguments.cpp When mapping from an injected-class-name to its corresponding 2009-10-14 17:30:58 +00:00
default-expr-arguments.cpp Make sure to call CompleteConstructorCall for bases and members that are initialized implicitly in constructors so that default arguments etc are set correctly. Fixes PR5283. 2009-10-29 15:46:07 +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-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 Skip over bases/fields with dependent types. 2009-08-25 16:37:49 +00:00
enum-argument.cpp Fix the type of a enum non-type template argument within the instantiation. 2009-05-27 19:21:29 +00:00
example-dynarray.cpp Don't generate any code for an explicit call to a trivial destructor. 2009-09-04 19:04:08 +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-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-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 Implement explicit instantiations of member classes of class templates, e.g., 2009-05-14 00:28:11 +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 Follow-on test case for template instantiation of interesting DeclGroups 2009-05-29 14:26:40 +00:00
instantiate-deeply.cpp Test case. 2009-08-29 08:20:44 +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 Rename clang to clang-cc. 2009-03-24 02:24:46 +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 Make having no RUN line a failure. 2009-07-25 12:47:38 +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 Handle member pointer types with dependent class types (e.g., int 2009-06-09 22:17:39 +00:00
instantiate-member-template.cpp Test instantiation of static data members that live within nested 2009-08-28 21:41:19 +00:00
instantiate-method.cpp Within a template, qualified name lookup can refer to a non-dependent type 2009-11-01 17:08:18 +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-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 Implement template instantiation for template names, including both 2009-03-31 18:38:02 +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 Improve instantiation of UnresolvedUsingDecls. 2009-08-29 19:37:28 +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 Rename clang to clang-cc. 2009-03-24 02:24:46 +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 When a template-id expression refers to a member function template, turn it into an (implicit) member access expression. Fixes PR5220 2009-10-22 07:19:14 +00:00
member-function-template.cpp Rewrite of our handling of name lookup in C++ member access expressions, e.g., 2009-09-02 22:59:36 +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 Implement "incremental" template instantiation for non-type template 2009-10-31 17:21:17 +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 Disabling some MS extensions which cause these tests to fail 2009-10-27 14:31:53 +00:00
nested-template.cpp Implement template instantiation for non-type template 2009-10-23 23:25:44 +00:00
operator-template.cpp Keep track of more information within the template instantiation stack, e.g., 2009-07-01 22:01:06 +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 Use "()" instead of "(void)" when pretty-printing a parameter-less function type for C++. 2009-06-03 02:06:50 +00:00
temp_arg_template.cpp Improved semantic analysis and AST respresentation for function 2009-06-25 22:08:12 +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 Additional semantic checking for explicit template instantiations, 2009-10-14 23:41:34 +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 Yet more instantiation-location information. Fixes PR5336. 2009-10-29 17:56:10 +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 Fix checking for a null pointer constant when the expression itself is 2009-09-25 04:25:58 +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