+2020-04-22 Patrick Palka <ppalka@redhat.com>
+
+ PR c++/94719
+ PR c++/94549
+ * constraint.cc (satisfy_declaration_constraints): If the inherited
+ constructor points to an instantiation of a constructor template,
+ remember and use its attached template arguments.
+
+2020-04-22 Jonathan Wakely <jwakely@redhat.com>
+
+ PR translation/94698
+ * class.c (check_field_decls): Change "override" to "define" in
+ -Weffc++ diagnostics.
+
+2020-04-22 Iain Sandoe <iain@sandoe.co.uk>
+
+ PR c++/94682
+ * coroutines.cc (struct param_info): Add a field to note that
+ the param is 'this'.
+ (morph_fn_to_coro): Convert this to a reference before using it
+ in the promise parameter preview.
+
+2020-04-22 Jason Merrill <jason@redhat.com>
+
+ PR c++/94546
+ * pt.c (register_parameter_specializations): If the instantiation is
+ still a parameter pack, don't wrap it in a NONTYPE_ARGUMENT_PACK.
+ (tsubst_pack_expansion, tsubst_expr): Adjust.
+
+2020-04-22 Martin Sebor <msebor@redhat.com>
+ Jason Merrill <jason@redhat.com>
+
+ PR c++/94510
+ * decl.c (reshape_init_array_1): Avoid stripping redundant trailing
+ zero initializers...
+ * mangle.c (write_expression): ...and handle them here even for
+ pointers to members by calling zero_init_expr_p.
+ * cp-tree.h (zero_init_expr_p): Declare.
+ * tree.c (zero_init_expr_p): Define.
+ (type_initializer_zero_p): Remove.
+ * pt.c (tparm_obj_values): New hash_map.
+ (get_template_parm_object): Store to it.
+ (tparm_object_argument): New.
+
+2020-04-22 Patrick Palka <ppalka@redhat.com>
+
+ PR c++/67825
+ * constraint.cc (diagnose_valid_expression): Check convert_to_void here
+ as well as in tsubst_valid_expression_requirement.
+
+2020-04-21 Patrick Palka <ppalka@redhat.com>
+
+ PR c++/94549
+ * constraint.cc (satisfy_declaration_constraints): Don't strip the
+ inherited constructor if it already has template information.
+
+ PR c++/94597
+ * pt.c (any_template_parm_r) <case IDENTIFIER_NODE>: New case. If this
+ is a conversion operator, visit its TREE_TYPE.
+
+2020-04-21 Nathan Sidwell <nathan@acm.org>
+
+ * pt.c (tsubst_copy_and_build) [POINTER_PLUS_EXPR]: Check for
+ error_mark_node.
+
+2020-04-21 Iain Sandoe <iain@sandoe.co.uk>
+
+ PR c++/94661
+ * coroutines.cc (morph_fn_to_coro): Simplify return
+ value computation.
+
+2020-04-17 Marek Polacek <polacek@redhat.com>
+
+ PR c++/94592
+ * constexpr.c (cxx_eval_outermost_constant_expr): Return when T is
+ a BRACE_ENCLOSED_INITIALIZER_P.
+ (is_nondependent_constant_expression): Don't check
+ BRACE_ENCLOSED_INITIALIZER_P.
+ (is_nondependent_static_init_expression): Likewise.
+
+2020-04-20 Patrick Palka <ppalka@redhat.com>
+
+ PR c++/94628
+ * cp-tree.h (lss_policy::lss_nop): New enumerator.
+ * pt.c (local_specialization_stack::local_specialization_stack): Handle
+ an lss_nop policy.
+ (local_specialization_stack::~local_specialization_stack): Likewise.
+ (tsubst_pack_expansion): Use a local_specialization_stack instead of
+ manually saving and restoring local_specializations. Conditionally
+ replace local_specializations sooner, before the handling of the
+ unsubstituted_packs case.
+
+2020-04-20 Marek Polacek <polacek@redhat.com>
+
+ PR c++/94505 - bogus -Wparentheses warning with fold-expression.
+ * pt.c (fold_expression): Add warning_sentinel for -Wparentheses
+ before calling build_x_binary_op.
+
+2020-04-20 Marek Polacek <polacek@redhat.com>
+
+ * coroutines.cc (captures_temporary): Don't assign the result of
+ STRIP_NOPS to the same variable.
+
+2020-04-20 Nathan Sidwell <nathan@acm.org>
+
+ PR c++/94454 - tpl-tpl-parms are not canonicalizable types
+ * pt.c (canonical_type_parameter): Assert not a tpl-tpl-parm.
+ (process_template_parm): tpl-tpl-parms are structural.
+ (rewrite_template_parm): Propagate structuralness.
+
+ PR c++/94454 - Expr pack expansion equality
+ * tree.c (cp_tree_equal) [TEMPLATE_ID_EXPR, default]: Refactor.
+ [EXPR_PACK_EXPANSION]: Add.
+
+ PR c++/94454 Template Argument Hashing
+ * pt.c (iterative_hash_template_arg): Strip nodes as
+ template_args_equal does.
+ [ARGUMENT_PACK_SELECT, TREE_VEC, CONSTRUCTOR]: Refactor.
+ [node_class:TEMPLATE_TEMPLATE_PARM]: Hash by level & index.
+ [node_class:default]: Refactor.
+
+2020-04-18 Patrick Palka <ppalka@redhat.com>
+
+ PR c++/94632
+ * tree.c (cp_tree_equal) <case PARM_DECL>: Ignore
+ comparing_specializations if the parameters' contexts are identical.
+
+ PR c++/92187
+ * pt.c (splice_late_return_type): Propagate cv-qualifiers and
+ PLACEHOLDER_TYPE_CONSTRAINTS from the original auto node to the new one.
+
+2020-04-17 Patrick Palka <ppalka@redhat.com>
+
+ PR c++/94483
+ * lambda.c (lambda_capture_field_type): Avoid doing auto deduction if
+ the explicit initializer has parameter packs.
+
+ PR c++/88754
+ * parser.c (cp_parser_check_template_parameters): Before issuing a hard
+ error, first try simulating an error instead.
+
+2020-04-17 Jakub Jelinek <jakub@redhat.com>
+
+ PR other/94629
+ * call.c (build_conditional_expr_1): Remove redundant assignment to
+ arg2.
+
+2020-04-16 Patrick Palka <ppalka@redhat.com>
+
+ PR c++/94475
+ * cvt.c (ocp_convert): If the result of scalar_constant_value is
+ erroneous, ignore it and use the original expression.
+
+2020-04-16 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/94571
+ * parser.c (cp_parser_simple_declaration): Fix up a pasto in
+ diagnostics.
+
+2020-04-15 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/94593
+ * parser.c (cp_parser_pragma) <case PRAGMA_OMP_REQUIRES>: Reject
+ requires directive when not at file or namespace scope.
+
+2020-04-14 Iain Sandoe <iain@sandoe.co.uk>
+
+ PR c++/94359
+ * coroutines.cc (build_actor_fn): Check that the target can
+ support the resume tailcall before mandating it.
+
+2020-04-14 Patrick Palka <ppalka@redhat.com>
+
+ PR c++/85278
+ * cxx-pretty-print.c (cxx_pretty_printer:simple_type_specifier)
+ <case DECLTYPE_TYPE>: Handle DECLTYPE_TYPE here instead of ...
+ (pp_cxx_type_specifier_seq) <case DECLTYPE_TYPE>: ... here.
+ (cxx_pretty_printer::direct_abstract_declarator) <case DECLTYPE_TYPE>:
+ New no-op case.
+
+ PR c++/94034
+ * constexpr.c (replace_result_decl_data): New struct.
+ (replace_result_decl_data_r): New function.
+ (replace_result_decl): New function.
+ (cxx_eval_call_expression): Use it.
+ * tree.c (build_aggr_init_expr): Set the location of the AGGR_INIT_EXPR
+ to that of its initializer.
+
+2020-04-13 Marek Polacek <polacek@redhat.com>
+
+ PR c++/94588
+ * name-lookup.c (check_local_shadow): Add an inform call.
+
+2020-04-13 Patrick Palka <ppalka@redhat.com>
+
+ PR c++/94521
+ * error.c (dump_scope): Pass TFF_NO_FUNCTION_ARGUMENTS to
+ dump_function_decl when printing a function template instantiation as a
+ scope.
+
+ PR c++/94470
+ * constexpr.c (get_or_insert_ctor_field): Set default value of parameter
+ 'pos_hint' to -1.
+ (cxx_eval_bare_aggregate): Use get_or_insert_ctor_field instead of
+ assuming the the next index belongs at the end of the new CONSTRUCTOR.
+ (cxx_eval_store_expression): Revert PR c++/78572 fix.
+
2020-04-13 Nathan Sidwell <nathan@acm.org>
PR c++/94426 lambdas with internal linkage are different to no-linkage
LOOKUP_AGGREGATE_PAREN_INIT but don't build up a constructor yet.
2020-04-08 Iain Sandoe <iain@sandoe.co.uk>
- Jun Ma <JunMa@linux.alibaba.com>
+ Jun Ma <JunMa@linux.alibaba.com>
* coroutines.cc (maybe_promote_captured_temps): Add a cleanup
expression, if needed, to any call from which we promoted
* coroutines.cc (captures_temporary): Strip component_ref
to its base object.
-2020-03-03 Jun Ma <JunMa@linux.alibaba.com>
+2020-03-03 Jun Ma <JunMa@linux.alibaba.com>
* coroutines.cc (finish_co_await_expr): Build co_await_expr
with unknown_type_node.
* tree.c (cp_walk_subtrees): Walk CONSTRUCTOR types here.
* pt.c (find_parameter_packs_r): Not here.
-2020-02-12 Iain Sandoe <iain@sandoe.co.uk>
+2020-02-12 Iain Sandoe <iain@sandoe.co.uk>
* coroutines.cc (build_actor_fn): Implement deallocation function
selection per n4849, dcl.fct.def.coroutine bullet 12.
* coroutines.cc (maybe_promote_captured_temps): Increase the index
number for temporary variables' name.
-2020-02-05 Jun Ma <JunMa@linux.alibaba.com>
+2020-02-05 Jun Ma <JunMa@linux.alibaba.com>
* coroutines.cc (build_co_await): Call convert_from_reference
to wrap co_await_expr with indirect_ref which avoid
* cp-gimplify.c (predeclare_vla): New.
(cp_genericize_r) [NOP_EXPR]: Call it.
-2020-02-03 Jun Ma <JunMa@linux.alibaba.com>
+2020-02-03 Jun Ma <JunMa@linux.alibaba.com>
* coroutines.cc (transform_await_wrapper): Set actor funcion as
new context of label_decl.