Change log update for 202610-202612.
authorAdam Butcher <abutcher@gcc.gnu.org>
Mon, 16 Sep 2013 08:04:45 +0000 (09:04 +0100)
committerAdam Butcher <abutcher@gcc.gnu.org>
Mon, 16 Sep 2013 08:04:45 +0000 (09:04 +0100)
From-SVN: r202615

gcc/cp/ChangeLog
gcc/testsuite/ChangeLog

index c3c2edeb414dddc79085f06dd407e538ab172b91..5fbc78c1c2afeb81f3e7c5f1548c580f7211d58b 100644 (file)
@@ -1,3 +1,57 @@
+2013-09-16  Adam Butcher  <adam@jessamine.co.uk>
+
+       * cp-tree.h (type_uses_auto_or_concept): Declare.
+       (is_auto_or_concept): Declare.
+       * decl.c (grokdeclarator): Allow 'auto' parameters in lambdas with
+       -std=gnu++1y or -std=c++1y or, as a GNU extension, in plain functions.
+       * type-utils.h: New header defining ...
+       (find_type_usage): ... this new function based on pt.c (type_uses_auto)
+       for searching a type tree given a predicate.
+       * pt.c (type_uses_auto): Reimplement via type-utils.h (find_type_usage).
+       (is_auto_or_concept): New function.
+       (type_uses_auto_or_concept): New function.
+       * parser.h (struct cp_parser): Add fully_implicit_function_template_p.
+       * parser.c (cp_parser_new): Initialize fully_implicit_function_template_p.
+       (cp_parser_new): Initialize fully_implicit_function_template_p.
+       (cp_parser_lambda_expression): Copy and restore value of
+       fully_implicit_function_template_p as per other parser fields.
+       (cp_parser_parameter_declaration_list): Count generic
+       parameters and call ...
+       (add_implicit_template_parms): ... this new function to synthesize them
+       with help from type-utils.h (find_type_usage), ...
+       (tree_type_is_auto_or_concept): ... this new static function and ...
+       (make_generic_type_name): ... this new static function.
+       (cp_parser_direct_declarator): Account for implicit template parameters.
+       (cp_parser_lambda_declarator_opt): Finish fully implicit template if
+       necessary by calling ...
+       (finish_fully_implicit_template): ... this new function.
+       (cp_parser_init_declarator): Likewise.
+       (cp_parser_function_definition_after_declarator): Likewise.
+       (cp_parser_member_declaration): Likewise.
+       * Make-lang.in (cp/pt.o): Add dependency on type-utils.h.
+       (cp/parser.o): Likewise.
+
+2013-09-16  Adam Butcher  <adam@jessamine.co.uk>
+
+       * parser.c (cp_parser_lambda_declarator_opt): Accept template parameter
+       list with std=c++1y or std=gnu++1y.
+       (cp_parser_lambda_body): Don't call 'expand_or_defer_fn' for lambda call
+       operator template to avoid adding template result to symbol table.
+       * lambda.c (lambda_function): Return template result if call operator is
+       a template.
+       (maybe_add_lambda_conv_op): Move declarations to point of use.  Refactor
+       operator call building in order to support conversion of a non-capturing
+       lambda template to a function pointer with help from ...
+       (prepare_op_call): ... this new function.
+       * decl2.c (check_member_template): Don't reject lambda call operator
+       template in local [lambda] class.
+       * pt.c (instantiate_class_template_1): Don't instantiate lambda call
+       operator template when instantiating lambda class.
+
+2013-09-16  Adam Butcher  <adam@jessamine.co.uk>
+
+       * pt.c (make_auto_1): Use input_location rather than BUILTINS_LOCATION.
+
 2013-09-15  Jason Merrill  <jason@redhat.com>
 
        Core DR 904
index 3240989a00c610211d45d219de012ef8d823d90c..99d0c36beff665260318e427edfdc3523d94c342 100644 (file)
@@ -1,3 +1,8 @@
+2013-09-16  Adam Butcher  <adam@jessamine.co.uk>
+
+       * g++.dg/cpp0x/auto9.C: Downgrade two previously expected errors (now
+       interpreted as implicit templates) to be expected pedwarns instead.
+
 2013-09-16  Tobias Burnus  <burnus@net-b.de>
 
        PR fortran/57697