2021-07-28  Release Manager

	* GCC 11.2.0 released.

2021-07-21  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-07-21  Jakub Jelinek  <jakub@redhat.com>

	PR c++/101516
	* semantics.c (finish_omp_reduction_clause): Also call
	complete_type_or_else and return true if it fails.

2021-07-20  Iain Sandoe  <iain@sandoe.co.uk>

	Backported from master:
	2021-07-19  Iain Sandoe  <iain@sandoe.co.uk>

	PR c++/95520
	* coroutines.cc (struct coroutine_info): Add fields for
	actor and destroy function decls.
	(to_ramp): New.
	(coro_get_ramp_function): New.
	(coro_get_actor_function): New.
	(coro_get_destroy_function): New.
	(act_des_fn): Set up mapping between ramp, actor and
	destroy functions.
	(morph_fn_to_coro): Adjust interface to the builder for
	helper function decls.
	* cp-tree.h (DECL_ACTOR_FN, DECL_DESTROY_FN, DECL_RAMP_FN,
	JOIN_STR): New.
	* mangle.c (write_encoding): Handle coroutine helpers.
	(write_unqualified_name): Handle lambda coroutine helpers.

2021-07-20  Iain Sandoe  <iain@sandoe.co.uk>

	Backported from master:
	2021-07-09  Iain Sandoe  <iain@sandoe.co.uk>

	* coroutines.cc (build_actor_fn): Move common code to
	act_des_fn.
	(build_destroy_fn): Likewise.
	(act_des_fn): Build the void return here.  Ensure that the
	source location matches the original function.

2021-07-20  Iain Sandoe  <iain@sandoe.co.uk>

	Backported from master:
	2021-07-09  Iain Sandoe  <iain@sandoe.co.uk>

	* coroutines.cc
	(coro_rewrite_function_body): Connect the replacement
	function block to the block nest correctly.

2021-07-18  Tobias Burnus  <tobias@codesourcery.com>

	Backported from master:
	2021-05-04  Tobias Burnus  <tobias@codesourcery.com>

	* semantics.c (finish_omp_reduction_clause): Accept float + complex
	for || and && reductions.

2021-07-18  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-07-15  Jakub Jelinek  <jakub@redhat.com>

	PR c++/101443
	* cp-gimplify.c (cp_fold): For comparisons with NULLPTR_TYPE
	operands, fold them right away to true or false.

2021-07-16  Patrick Palka  <ppalka@redhat.com>

	Backported from master:
	2021-07-16  Patrick Palka  <ppalka@redhat.com>

	PR c++/101233
	* pt.c (alias_ctad_tweaks): Clear cp_unevaluated_operand for
	substituting DECL_ARGUMENTS.

2021-07-16  Patrick Palka  <ppalka@redhat.com>

	Backported from master:
	2021-05-11  Patrick Palka  <ppalka@redhat.com>

	PR c++/100138
	* constraint.cc (tsubst_constraint): Set up cp_unevaluated.
	(satisfy_atom): Set up iloc_sentinel before calling
	cxx_constant_value.
	* pt.c (tsubst_pack_expansion): When returning a rebuilt pack
	expansion, carry over PACK_EXPANSION_LOCAL_P and
	PACK_EXPANSION_SIZEOF_P from the original pack expansion.

2021-07-13  Patrick Palka  <ppalka@redhat.com>

	Backported from master:
	2021-07-09  Patrick Palka  <ppalka@redhat.com>

	PR c++/101181
	* constraint.cc (tsubst_requires_expr): Pass complain/in_decl to
	add_extra_args.
	* cp-tree.h (add_extra_args): Add complain/in_decl parameters.
	* pt.c (build_extra_args): Make a copy of args.
	(add_extra_args): Add complain/in_decl parameters.  Enable the
	code for handling the case where the extra arguments are
	dependent.
	(tsubst_pack_expansion): Pass complain/in_decl to
	add_extra_args.
	(tsubst_template_args): Handle missing template arguments.
	(tsubst_expr) <case IF_STMT>: Pass complain/in_decl to
	add_extra_args.

2021-07-13  Patrick Palka  <ppalka@redhat.com>

	Backported from master:
	2021-07-09  Patrick Palka  <ppalka@redhat.com>

	PR c++/101247
	* pt.c (any_template_parm_r) <case TEMPLATE_DECL>: Just walk the
	DECL_CONTEXT.

2021-07-13  Patrick Palka  <ppalka@redhat.com>

	Backported from master:
	2021-07-02  Patrick Palka  <ppalka@redhat.com>

	PR c++/101247
	* pt.c (any_template_parm_r) <case TEMPLATE_DECL>: Rewrite to
	use common_enclosing_class and to not depend on the TREE_TYPE
	of outer levels pointing to the corresponding primary template.

2021-07-13  Patrick Palka  <ppalka@redhat.com>

	Backported from master:
	2021-07-01  Patrick Palka  <ppalka@redhat.com>

	PR c++/101194
	* constexpr.c (cxx_eval_array_reference): When the element type
	is an empty type and the corresponding element is omitted, just
	return an empty CONSTRUCTOR instead of attempting value
	initialization.

2021-07-13  Patrick Palka  <ppalka@redhat.com>

	Backported from master:
	2021-06-24  Patrick Palka  <ppalka@redhat.com>

	PR c++/98832
	* pt.c (maybe_aggr_guide): Handle alias templates appropriately.

2021-07-13  Patrick Palka  <ppalka@redhat.com>

	Backported from master:
	2021-06-24  Patrick Palka  <ppalka@redhat.com>

	PR c++/101182
	* constraint.cc (evaluate_requires_expr): Adjust function comment.
	* cp-gimplify.c (cp_genericize_r) <case REQUIRES_EXPR>: Move to ...
	(cp_fold) <case REQUIRES_EXPR>: ... here.

2021-07-13  Patrick Palka  <ppalka@redhat.com>

	Backported from master:
	2021-06-07  Patrick Palka  <ppalka@redhat.com>

	PR c++/100918
	* parser.c (cp_parser_lookup_name): Check access of the lookup
	result before we potentially adjust an injected-class-name to
	its TEMPLATE_DECL.

2021-07-13  Patrick Palka  <ppalka@redhat.com>

	Backported from master:
	2021-05-26  Patrick Palka  <ppalka@redhat.com>

	PR c++/97420
	* cvt.c (noexcept_conv_p): Remove redundant checks and simplify.
	(fnptr_conv_p): Don't call non_reference.  Use INDIRECT_TYPE_P
	instead of TYPE_PTR_P.
	* pt.c (convert_nontype_argument_function): Look through
	implicit INDIRECT_REFs before calling strip_fnptr_conv.

2021-07-09  Jason Merrill  <jason@redhat.com>

	PR c++/101098
	* decl.c (function_requirements_equivalent_p): Only compare
	trailing requirements on a specialization.

2021-07-09  Jason Merrill  <jason@redhat.com>

	PR c++/100838
	* call.c (convert_like_internal): Clear tf_no_cleanup when
	recursing.
	(build_user_type_conversion_1): Only add ck_rvalue if
	LOOKUP_ONLYCONVERTING.

2021-07-09  Jason Merrill  <jason@redhat.com>

	PR c++/86355
	* pt.c (use_pack_expansion_extra_args_p): Don't compare
	args from the same argument pack.

2021-07-08  Marek Polacek  <polacek@redhat.com>

	Backported from master:
	2021-07-08  Marek Polacek  <polacek@redhat.com>

	PR c++/101087
	* cp-tree.h (unevaluated_p): New.
	* except.c (check_noexcept_r): Use it.  Don't walk into
	unevaluated operands.

2021-07-07  Jason Merrill  <jason@redhat.com>

	Revert:
	2020-12-02  Jason Merrill  <jason@redhat.com>

	* decl.c (check_initializer): Also look through STMT_EXPR
	and BIND_EXPR.

2021-07-07  Jason Merrill  <jason@redhat.com>

	PR c++/101040
	PR c++/97566
	* class.c (is_empty_field): Handle null argument.
	* constexpr.c (cxx_eval_bare_aggregate): Discard initializer
	for empty field.

2021-06-29  Marek Polacek  <polacek@redhat.com>

	Backported from master:
	2021-06-26  Marek Polacek  <polacek@redhat.com>

	PR c++/100752
	* parser.c (cp_parser_declarator): Pass flags down to
	cp_parser_declarator.  Also pass static_p/member_p.

2021-06-23  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-06-21  Jakub Jelinek  <jakub@redhat.com>

	PR inline-asm/100785
	* typeck.c (cxx_mark_addressable): Diagnose trying to make
	bit-fields addressable.

2021-06-21  Jason Merrill  <jason@redhat.com>

	PR c++/101106
	* decl.c (duplicate_decls): Condition note on return value of pedwarn.

2021-06-17  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-06-06  Jakub Jelinek  <jakub@redhat.com>

	PR c/100902
	* parser.c (cp_parser_omp_target): Call c_omp_adjust_map_clauses
	even when target is combined with other constructs.

2021-06-17  Jason Merrill  <jason@redhat.com>

	* init.c (build_vec_init): Preserve the type of base.

2021-06-16  Jason Merrill  <jason@redhat.com>

	PR c++/101078
	* pt.c (tsubst_baselink): Update binfos in non-dependent case.

2021-06-16  Jason Merrill  <jason@redhat.com>

	PR c++/101029
	* init.c (build_vec_init): Shortcut [0] case.

2021-06-10  Patrick Palka  <ppalka@redhat.com>

	Backported from master:
	2021-06-10  Patrick Palka  <ppalka@redhat.com>

	PR c++/100946
	* constraint.cc (normalize_placeholder_type_constraints): When
	normalizing a non-templated return-type-requirement, add a dummy
	level to initial_parms.

2021-06-09  Marek Polacek  <polacek@redhat.com>

	Backported from master:
	2021-06-08  Marek Polacek  <polacek@redhat.com>

	PR c++/100065
	* decl.c (grokdeclarator): Store a value-dependent
	explicit-specifier even for deduction guides.

2021-06-08  Jason Merrill  <jason@redhat.com>

	PR c++/100963
	* call.c (perfect_conversion_p): Check check_narrowing.

2021-06-08  Jason Merrill  <jason@redhat.com>

	PR c++/91706
	* semantics.c (baselink_for_fns): Fix BASELINK_BINFO.

2021-06-08  Jason Merrill  <jason@redhat.com>

	* module.cc (duplicate_hash::hash): Comment out.
	(trees_in::tree_value): Adjust loop counter.

2021-06-07  Patrick Palka  <ppalka@redhat.com>

	Backported from master:
	2021-06-03  Patrick Palka  <ppalka@redhat.com>

	PR c++/100862
	* pt.c (set_current_access_from_decl): Move to ...
	* class.c (set_current_access_from_decl): ... here.
	(handle_using_decl): Use it to propagate the access of the
	using-enum decl to the copy of the imported enumerator.
	* cp-tree.h (set_current_access_from_decl): Declare.
	* decl.c (build_enumerator): Simplify using make_temp_override
	and set_current_access_from_decl.

2021-06-07  Patrick Palka  <ppalka@redhat.com>

	Backported from master:
	2021-06-04  Patrick Palka  <ppalka@redhat.com>

	PR c++/100102
	* pt.c (tsubst_function_decl): Remove old code for reducing
	args when it has excess levels.

2021-06-01  Jason Merrill  <jason@redhat.com>

	PR c++/91859
	* call.c (build_op_delete_call): Don't set CALL_FROM_NEW_OR_DELETE_P
	for destroying delete.
	* init.c (build_delete): Don't clobber before destroying delete.

2021-06-01  Jason Merrill  <jason@redhat.com>

	PR c++/100797
	PR c++/95719
	* call.c (build_over_call): Adjust base_binfo in
	resolves_to_fixed_type_p case.

2021-05-31  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-05-25  Jakub Jelinek  <jakub@redhat.com>

	PR c++/100666
	* call.c (convert_arg_to_ellipsis): For expressions with NULLPTR_TYPE
	and side-effects, temporarily disable -Wunused-result warning when
	building COMPOUND_EXPR.

2021-05-28  Patrick Palka  <ppalka@redhat.com>

	Backported from master:
	2021-05-26  Patrick Palka  <ppalka@redhat.com>

	PR c++/100502
	* typeck.c (finish_class_member_access_expr): Disable ahead
	of time access checking during the member lookup.

2021-05-20  Jason Merrill  <jason@redhat.com>

	PR c++/100489
	* decl.c (reshape_init_class): Handle designator for
	member of anonymous aggregate here.
	* typeck2.c (process_init_constructor_record): Not here.

2021-05-20  Andreas Krebbel  <krebbel@linux.ibm.com>

	Backported from master:
	2021-05-18  Andreas Krebbel  <krebbel@linux.ibm.com>

	PR c++/100281
	* cvt.c (cp_convert_to_pointer): Use the size of the target
	pointer type.
	* tree.c (cp_build_reference_type): Call
	cp_build_reference_type_for_mode with VOIDmode.
	(cp_build_reference_type_for_mode): Rename from
	cp_build_reference_type.  Add MODE argument and invoke
	build_reference_type_for_mode.
	(strip_typedefs): Use build_pointer_type_for_mode and
	cp_build_reference_type_for_mode for pointers and references.

2021-05-20  Jason Merrill  <jason@redhat.com>

	PR c++/100634
	* pt.c (invalid_nontype_parm_type_p): Return true for COMPLEX_TYPE.

2021-05-20  Jason Merrill  <jason@redhat.com>

	PR c++/100659
	* cp-tree.h (CONST_DECL_USING_P): Check for null TREE_TYPE.

2021-05-19  Jason Merrill  <jason@redhat.com>

	PR c++/100367
	PR c++/96299
	* method.c (genericize_spaceship): Use fold_build2 for scalar
	operands.

2021-05-19  Jason Merrill  <jason@redhat.com>

	PR c++/100261
	* rtti.c (get_tinfo_decl_direct): Check TYPE_TRANSPARENT_AGGR.

2021-05-19  Jason Merrill  <jason@redhat.com>

	PR c++/100372
	* tree.c (strip_typedefs): Only look at the pattern of a
	TYPE_PACK_EXPANSION if it's a type.

2021-05-18  Jason Merrill  <jason@redhat.com>

	PR c++/100644
	* call.c (perfect_candidate_p): An implicitly deleted move
	is not perfect.

2021-05-18  Jason Merrill  <jason@redhat.com>

	PR c++/100205
	PR c++/93314
	* cp-tree.h (cp_evaluated): Add reset parm to constructor.
	* parser.c (cp_parser_constant_expression): Change
	allow_non_constant_p to int.  Use cp_evaluated.
	(cp_parser_initializer_clause): Pass 2 to allow_non_constant_p.
	* semantics.c (finish_id_expression_1): Don't mess with
	cp_unevaluated_operand here.

2021-05-03  Patrick Palka  <ppalka@redhat.com>

	Backported from master:
	2021-05-03  Patrick Palka  <ppalka@redhat.com>

	PR c++/100362
	* parser.c (cp_parser_class_head): Reinstate calls to pushclass
	and popclass when parsing the base-clause that were removed in
	r11-6815.

2021-04-29  Jakub Jelinek  <jakub@redhat.com>

	Backported from master:
	2021-04-29  Jakub Jelinek  <jakub@redhat.com>

	PR c++/100319
	* semantics.c (finish_omp_clauses): Fix up check that variable
	mentioned in detach clause doesn't appear in data-sharing clauses.

2021-04-27  Patrick Palka  <ppalka@redhat.com>

	Backported from master:
	2021-04-24  Patrick Palka  <ppalka@redhat.com>

	PR c++/89565
	PR c++/93383
	PR c++/95291
	PR c++/99200
	PR c++/99683
	* pt.c (do_class_deduction): Punt if the initializer is
	type-dependent.

2021-04-27  Marek Polacek  <polacek@redhat.com>

	Backported from master:
	2021-04-22  Marek Polacek  <polacek@redhat.com>

	PR c++/100161
	* pt.c (tsubst_copy_and_build) <case PLUS_EXPR>: Test op0 and
	op1 separately for value- or type-dependence.

2021-04-27  Marek Polacek  <polacek@redhat.com>

	Backported from master:
	2021-04-21  Marek Polacek  <polacek@redhat.com>

	PR c++/96380
	* parser.c (cp_parser_enum_specifier): Don't allow defining
	types in enum-base.

2021-04-27  Jakub Jelinek  <jakub@redhat.com>

	* module.cc: Remove #error that triggers if DEV-PHASE is empty.

2021-04-27  Release Manager

	* GCC 11.1.0 released.

2021-04-19  Marek Polacek  <polacek@redhat.com>

	PR c++/97536
	* decl.c (grokvardecl): Given an error when a concept is not defined
	at namespace scope.

2021-04-16  Jakub Jelinek  <jakub@redhat.com>

	PR c++/100111
	* constexpr.c (cxx_eval_store_expression): Don't add CONSTRUCTORs
	for empty classes into *valp when types don't match even when *valp
	is NULL.

2021-04-16  Marek Polacek  <polacek@redhat.com>

	PR c++/99803
	* decl.c (make_typename_type): Give an error and return when
	name is is_overloaded_fn.
	* parser.c (cp_parser_class_name): Don't check is_overloaded_fn
	before calling make_typename_type.

2021-04-16  Patrick Palka  <ppalka@redhat.com>

	PR c++/99700
	* constexpr.c (reduced_constant_expression_p): For array
	CONSTRUCTORs, use a dedicated loop that additionally verifies
	the CONSTRUCTOR spans the entire array.

2021-04-16  Jakub Jelinek  <jakub@redhat.com>

	PR c++/99850
	* parser.c (cp_parser_constraint_requires_parens) <case CPP_DEREF>:
	If lambda_p, return pce_ok instead of pce_maybe_postfix.

2021-04-16  Jakub Jelinek  <jakub@redhat.com>

	PR c++/99833
	* pt.c (extract_locals_r): When handling DECL_EXPR of a structured
	binding, add to data.internal also all corresponding structured
	binding decls.

2021-04-16  Jason Merrill  <jason@redhat.com>

	PR c++/100079
	* cp-tree.h (first_field): Declare.
	* mangle.c (range_expr_nelts): New.
	(write_expression): Improve class NTTP mangling.
	* pt.c (get_template_parm_object): Clear TREE_HAS_CONSTRUCTOR.
	* tree.c (zero_init_expr_p): Improve class NTTP handling.
	* decl.c: Adjust comment.

2021-04-15  Jason Merrill  <jason@redhat.com>

	PR c++/80456
	* call.c (build_new_method_call_1): Check again for side-effects
	with a volatile object.

2021-04-15  Jason Merrill  <jason@redhat.com>

	PR c++/100101
	PR c++/99583
	* pt.c (find_parameter_packs_r) [FUNCTION_TYPE]: Walk into
	TYPE_RAISES_EXCEPTIONS here.
	* tree.c (cp_walk_subtrees): Not here.

2021-04-15  Jason Merrill  <jason@redhat.com>

	PR c++/100091
	PR c++/99478
	* parser.c (cp_parser_default_type_template_argument): Set
	parser->local_variables_forbidden_p.

2021-04-15  Richard Sandiford  <richard.sandiford@arm.com>

	PR c++/98852
	* typeck.c (merge_type_attributes_from): New function.
	(cp_common_type): Use it for vector types.

2021-04-14  Jason Merrill  <jason@redhat.com>

	PR c++/100078
	PR c++/93085
	* pt.c (uses_outer_template_parms): Also look at default
	template argument.

2021-04-14  Jason Merrill  <jason@redhat.com>

	PR c++/93314
	* semantics.c (finish_id_expression_1): Clear cp_unevaluated_operand
	for a non-static data member in a constant-expression.

2021-04-14  Patrick Palka  <ppalka@redhat.com>

	PR c++/83476
	PR c++/99885
	* pt.c (deducible_expression): Look through implicit
	INDIRECT_REFs as well.

2021-04-14  Jason Merrill  <jason@redhat.com>

	PR c++/99478
	* parser.c (cp_parser_lambda_expression): Reject lambda
	in template parameter type.

2021-04-14  Jason Merrill  <jason@redhat.com>

	PR c++/90674
	* decl.c (duplicate_decls): Don't propagate
	DECL_INITIALIZED_IN_CLASS_P to a specialization.

2021-04-14  Jason Merrill  <jason@redhat.com>

	PR c++/88742
	PR c++/49951
	PR c++/58123
	* semantics.c (set_cleanup_locs): New.
	(do_poplevel): Call it.
	* parser.c (cp_parser_compound_statement): Consume the }
	before finish_compound_stmt.

2021-04-13  Jason Merrill  <jason@redhat.com>

	PR c++/100032
	* pt.c (get_underlying_template): Compare TYPE_QUALS.

2021-04-13  Jason Merrill  <jason@redhat.com>

	PR c++/100054
	PR c++/90479
	* init.c (get_nsdmi): Do more context adjustment for local classes.

2021-04-13  Patrick Palka  <ppalka@redhat.com>

	PR c++/99008
	* pt.c (do_class_deduction): Reject alias CTAD in C++17 mode
	rather than issuing a pedwarn.
	* typeck2.c (build_functional_cast_1): Handle CTAD uniformly
	for consistent diagnostics.

2021-04-13  Jason Merrill  <jason@redhat.com>

	PR c++/91933
	* class.c (build_base_path): Shortcut simple non-pointer case.

2021-04-13  Eric Botcazou  <ebotcazou@adacore.com>

	* module.cc (ordinary_loc_of): Test LINEMAPS_MACRO_LOWEST_LOCATION
	of the linemap.
	(module_state::write_location): Likewise.

2021-04-13  Patrick Palka  <ppalka@redhat.com>

	PR c++/97134
	* pt.c (do_class_deduction): Look through EXPR_PACK_EXPANSION
	when checking if the initializer is an equivalent class
	placeholder template parameter.

2021-04-13  Patrick Palka  <ppalka@redhat.com>

	PR c++/99961
	PR c++/99994
	* constraint.cc (satisfy_normalized_constraints): Set
	cp_unevaluated.
	* parser.c (cp_parser_concept_definition): Likewise.
	(cp_parser_requires_clause_opt): Likewise.

2021-04-12  Jason Merrill  <jason@redhat.com>

	PR c++/93085
	* pt.c (uses_outer_template_parms): Handle non-type and template
	template parameters specifically.

2021-04-11  Jason Merrill  <jason@redhat.com>

	PR c++/97974
	* decl.c (fixup_anonymous_aggr): Prune all functions from
	CLASSTYPE_MEMBER_VEC.

2021-04-10  Jason Merrill  <jason@redhat.com>

	PR c++/98800
	PR c++/97399
	* parser.c (cp_parser_direct_declarator): Don't
	inject_this_parameter if static_p.
	(cp_parser_omp_var_list_no_open): Parse 'this' even if
	current_class_ptr isn't set for a better diagnostic.

2021-04-10  Jason Merrill  <jason@redhat.com>

	PR c++/99180
	PR c++/93295
	PR c++/93867
	PR c++/99118
	PR c++/96873
	* pt.c (alias_ctad_tweaks): Handle failure better.

2021-04-10  Jason Merrill  <jason@redhat.com>

	PR c++/100006
	* pt.c (find_parameter_packs_r) [TAG_DEFN]: Look into bases.

2021-04-09  Patrick Palka  <ppalka@redhat.com>

	* cp-tree.h (LAMBDA_EXPR_REGENERATED_FROM)
	(LAMBDA_EXPR_REGENERATING_TARGS): Replace these with ...
	(LAMBDA_EXPR_REGEN_INFO): ... this.
	(tree_lambda_expr::regenerated_from)
	(tree_lambda_expr::regenerating_targs): Replace these with ...
	(tree_lambda_expr::regen_info): ... this.
	* constraint.cc (satisfy_declaration_constraints): Adjust
	accordingly.
	* lambda.c (build_lambda_expr): Likewise.
	* pt.c (regenerated_lambda_fn_p): Likewise.
	(most_general_lambda): Likewise.
	(tsubst_lambda_expr): Likewise.

2021-04-09  Marek Polacek  <polacek@redhat.com>

	PR c++/99806
	* parser.c (cp_parser_member_declaration): Call
	cp_parser_save_default_args even for function templates.  Use
	STRIP_TEMPLATE on the declaration we're passing.

2021-04-08  Patrick Palka  <ppalka@redhat.com>

	PR c++/99874
	* constraint.cc (get_normalized_constraints_from_decl): Handle
	regenerated lambdas.
	(satisfy_declaration_constraints): Likewise.  Check for
	dependent args later.
	* cp-tree.h (LAMBDA_EXPR_INSTANTIATED): Replace with ...
	(LAMBDA_EXPR_REGENERATED_FROM): ... this.
	(LAMBDA_EXPR_REGENERATING_TARGS): New.
	(tree_lambda_expr::regenerated_from): New data member.
	(tree_lambda_expr::regenerating_targs): New data member.
	(add_to_template_args): Declare.
	(regenerated_lambda_fn_p): Likewise.
	(most_general_lambda): Likewise.
	* lambda.c (build_lambda_expr): Set LAMBDA_EXPR_REGENERATED_FROM
	and LAMBDA_EXPR_REGENERATING_TARGS.
	* pt.c (add_to_template_args): No longer static.
	(tsubst_function_decl): Unconditionally propagate constraints on
	the substituted function decl.
	(instantiated_lambda_fn_p): Rename to ...
	(regenerated_lambda_fn_p): ... this.  Check
	LAMBDA_EXPR_REGENERATED_FROM instead of
	LAMBDA_EXPR_INSTANTIATED.
	(most_general_lambda): Define.
	(enclosing_instantiation_of): Adjust after renaming
	instantiated_lambda_fn_p.
	(tsubst_lambda_expr): Don't set LAMBDA_EXPR_INSTANTIATED.  Set
	LAMBDA_EXPR_REGENERATED_FROM and LAMBDA_EXPR_REGENERATING_TARGS.
	Don't substitute or set constraints on the regenerated lambda.

2021-04-08  Patrick Palka  <ppalka@redhat.com>

	PR c++/97679
	* pt.c (build_deduction_guide): Document OUTER_ARGS.  Substitute
	them into the propagated constraints.

2021-04-08  Jason Merrill  <jason@redhat.com>

	PR c++/91849
	* call.c (convert_like_internal): Improve reference diagnostic.

2021-04-08  Jakub Jelinek  <jakub@redhat.com>

	PR c++/99859
	* constexpr.c (addr_of_non_const_var): New function.
	(cxx_bind_parameters_in_call): Set *non_constant_args to true
	even if cp_walk_tree on arg with addr_of_non_const_var callback
	returns true.

2021-04-08  Jason Merrill  <jason@redhat.com>

	PR c++/94529
	* pt.c (determine_specialization): Improve diagnostic.

2021-04-08  Marek Polacek  <polacek@redhat.com>

	PR c++/99844
	* decl.c (build_explicit_specifier): Call
	check_for_bare_parameter_packs.
	* except.c (build_noexcept_spec): Likewise.

2021-04-07  Jason Merrill  <jason@redhat.com>

	PR c++/41723
	* parser.c (cp_parser_class_name): Check dependent_scope_p.

2021-04-07  Jason Merrill  <jason@redhat.com>

	PR c++/52625
	* pt.c (maybe_process_partial_specialization): Check
	DECL_SELF_REFERENCE_P.

2021-04-07  Jason Merrill  <jason@redhat.com>

	PR c++/92918
	* name-lookup.c (push_class_level_binding_1): Do overload a new
	function with a previous using-declaration.

2021-04-06  Jason Merrill  <jason@redhat.com>

	PR c++/96673
	* init.c (get_nsdmi): Don't defer access checking.

2021-04-06  Jason Merrill  <jason@redhat.com>

	PR c++/99901
	* decl.c (cp_finish_decl): mark_needed an implicitly inline
	static data member with an out-of-class redeclaration.

2021-04-06  Jason Merrill  <jason@redhat.com>

	PR c++/91241
	* mangle.c (write_compact_number): Add sanity check.
	(write_local_name): Use list_length for parm number.

2021-04-06  Patrick Palka  <ppalka@redhat.com>

	PR c++/99899
	* pt.c (do_auto_deduction): Don't exit early when deducing the
	array type of a structured binding.  Also handle adc_decomp_type
	during constraint checking.

2021-04-05  Jason Merrill  <jason@redhat.com>

	PR c++/96311
	* typeck.c (check_return_expr): Call mark_exp_read in dependent
	case.

2021-04-05  Jason Merrill  <jason@redhat.com>

	PR c++/98440
	* typeck.c (build_reinterpret_cast_1): Don't perform
	temporary materialization.

2021-04-05  Jason Merrill  <jason@redhat.com>

	PR c++/95317
	* pt.c (lookup_template_class_1): Do tsubst_enum when
	tsubsting a generic lambda.

2021-04-05  Jason Merrill  <jason@redhat.com>

	PR c++/95870
	* pt.c (enclosing_instantiation_of): Compare DECL_SOURCE_LOCATION if
	there is no enclosing non-lambda function.

2021-04-05  Nathan Sidwell  <nathan@acm.org>

	PR c++/99380
	* module.cc (name_pending_imports): Drop 'atend' parm.  Don't
	query export when not needed.
	(preprocess_module, preprocessed_module): Adjust.

2021-04-05  Jason Merrill  <jason@redhat.com>

	PR c++/99066
	* pt.c (mark_decl_instantiated): Set DECL_EXTERNAL.

2021-04-05  Jason Merrill  <jason@redhat.com>

	PR c++/99201
	* pt.c (class el_data): Add visited field.
	(extract_local_specs): Pass it to cp_walk_tree.
	(extract_locals_r): Walk into the body of a lambda.

2021-04-05  Jason Merrill  <jason@redhat.com>

	* ptree.c (cxx_print_decl): Check DECL_MODULE_IMPORT_P on
	template result.

2021-04-04  Jason Merrill  <jason@redhat.com>

	PR c++/99643
	* typeck2.c (massage_init_elt): Don't strip TARGET_EXPR.

2021-04-03  Marek Polacek  <polacek@redhat.com>

	PR c++/91416
	* parser.c: Create a GC root for attributes in a decl specifier.
	(cp_parser_type_specifier): Push/pop ->attributes onto/from it.

2021-04-03  Jason Merrill  <jason@redhat.com>

	PR c++/91217
	* pt.c (tsubst_lambda_expr): Skip the body block from
	DECL_SAVED_TREE.

2021-04-03  Jason Merrill  <jason@redhat.com>

	PR c++/90664
	* cvt.c (can_convert_qual): Check fnptr_conv_p.

2021-04-03  Jason Merrill  <jason@redhat.com>

	PR c++/97900
	* pt.c (regenerate_decl_from_template): tsubst_decl
	the parms.

2021-04-02  Patrick Palka  <ppalka@redhat.com>

	PR c++/99869
	* parser.c (do_range_for_auto_deduction): Pass adc_variable_type
	to do_auto_deduction.

2021-04-02  Patrick Palka  <ppalka@redhat.com>

	PR c++/99586
	* semantics.c (finish_compound_literal): Check
	template_placeholder_p instead of type_uses_auto.

2021-04-02  Jason Merrill  <jason@redhat.com>

	PR c++/97938
	* cp-tree.h (PACK_EXPANSION_AUTO_P): New.
	* lambda.c (add_capture): Set it.
	* pt.c (tsubst_pack_expansion): Handle it.

2021-04-02  Nathan Sidwell  <nathan@acm.org>

	* cp-tree.h (lang_decl_base): Correct module flag comment.
	* module.cc (trees_in::assert_definition): Break out
	not_tmpl var.
	(trees_out::lang_decl_bools): Do not write purview for header units.

2021-04-01  Marek Polacek  <polacek@redhat.com>

	PR c++/99831
	* method.c (defaulted_late_check): ++ and -- function_depth around
	the call to synthesize_method.
	* pt.c: Remove the saved_trees global.

2021-04-01  Jason Merrill  <jason@redhat.com>

	PR c++/99583
	PR c++/99584
	* tree.c (cp_walk_subtrees) [FUNCTION_TYPE]: Walk into
	TYPE_RAISES_EXCEPTIONS.

2021-04-01  Iain Sandoe  <iain@sandoe.co.uk>

	* mapper-client.cc (INCLUDE_MAP): New; require map to be
	included from system.h.
	* mapper-resolver.cc (INCLUDE_MAP): Likewise.

2021-04-01  Jason Merrill  <jason@redhat.com>

	PR c++/98481
	* mangle.c (write_expression): Adjust.
	* class.c (find_abi_tags_r): Disable PR98481 fix for ABI v14.
	(mark_abi_tags_r): Likewise.

2021-04-01  Nathan Sidwell  <nathan@acm.org>

	PR c++/99283
	* module.cc (trees_out::decl_node): Adjust importedness reference
	assert.
	(module_state::intercluster_seed): New.  Seed both imports and
	inter-cluster references.  Broken out of ...
	(module_state::write_cluster): ... here.  Call it.

2021-03-31  Jason Merrill  <jason@redhat.com>

	PR c++/99445
	* tree.c (strip_typedefs): Handle TYPE_PACK_EXPANSION.

2021-03-31  Patrick Palka  <ppalka@redhat.com>

	PR c++/88115
	* mangle.c (write_expression): Adjust the mangling of
	__alignof__.

2021-03-31  Patrick Palka  <ppalka@redhat.com>

	PR c++/99815
	* pt.c (placeholder_type_constraint_dependent_p): Expand
	argument packs to separate the first non-pack argument
	from the rest.

2021-03-30  Nathan Sidwell  <nathan@acm.org>

	PR c++/99283
	* module.cc (dumper::operator): Make less brittle.
	(trees_out::core_bools): VAR_DECLs always have a context.
	(trees_out::key_mergeable): Use same_type_p for asserting.
	(trees_in::read_var_def): Propagate
	DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.

2021-03-30  Jakub Jelinek  <jakub@redhat.com>

	PR c++/99790
	* cp-gimplify.c (cp_gimplify_expr): Handle PTRMEM_CST.

2021-03-26  Marek Polacek  <polacek@redhat.com>

	PR c++/98352
	* method.c (implicitly_declare_fn): Pass &raises to
	synthesized_method_walk.

2021-03-26  Nathan Sidwell  <nathan@acm.org>

	PR c++/99283
	* cp-tree.h (DECL_MODULE_CHECK): Ban TEMPLATE_DECL.
	(SET_TYPE_TEMPLATE_INFO): Restore Alias template setting.
	* decl.c (duplicate_decls): Remove template_decl module flag
	propagation.
	* module.cc (merge_kind_name): Add alias tmpl spec as a thing.
	(dumper::impl::nested_name): Adjust for template-decl module flag
	change.
	(trees_in::assert_definition): Likewise.
	(trees_in::install_entity): Likewise.
	(trees_out::decl_value): Likewise.  Remove alias template
	separation of template and type_decl.
	(trees_in::decl_value): Likewise.
	(trees_out::key_mergeable): Likewise,
	(trees_in::key_mergeable): Likewise.
	(trees_out::decl_node): Adjust for template-decl module flag
	change.
	(depset::hash::make_dependency): Likewise.
	(get_originating_module, module_may_redeclare): Likewise.
	(set_instantiating_module, set_defining_module): Likewise.
	* name-lookup.c (name_lookup::search_adl): Likewise.
	(do_pushdecl): Likewise.
	* pt.c (build_template_decl): Likewise.
	(lookup_template_class_1): Remove special alias_template handling
	of DECL_TI_TEMPLATE.
	(tsubst_template_decl): Likewise.

2021-03-26  Jakub Jelinek  <jakub@redhat.com>

	PR c++/99705
	* tree.c (bot_manip): Remap artificial automatic temporaries mentioned
	in DECL_EXPR or in BIND_EXPR_VARS.

2021-03-25  Jakub Jelinek  <jakub@redhat.com>

	PR c++/99672
	* parser.c (cp_parser_postfix_expression): For calls, create
	combined_loc and temporarily set input_location to it before
	calling finish_call_expr.

2021-03-25  Marek Polacek  <polacek@redhat.com>

	PR c++/94751
	* call.c (build_over_call): Maybe call mark_used in case
	deduce_inheriting_ctor fails and return error_mark_node.
	* cp-tree.h (deduce_inheriting_ctor): Adjust declaration.
	* method.c (deduce_inheriting_ctor): Return bool if the deduction
	fails.
	(implicitly_declare_fn): If raises is error_mark_node, call
	synthesized_method_walk with diag being true.

2021-03-25  Jakub Jelinek  <jakub@redhat.com>

	PR c++/99745
	* decl2.c (grokbitfield): Diagnose bitfields containing bare parameter
	packs and don't set DECL_BIT_FIELD_REPRESENTATIVE in that case.

2021-03-25  Marek Polacek  <polacek@redhat.com>

	PR c++/99331
	* call.c (build_converted_constant_expr_internal): Don't emit
	-Wconversion warnings.

2021-03-25  Jakub Jelinek  <jakub@redhat.com>

	PR c++/99565
	* call.c (build_conditional_expr_1): Pass OEP_ADDRESS_OF_SAME_FIELD
	to operand_equal_p.
	* cvt.c (convert_to_void): Preserve location_t on COND_EXPR or
	or COMPOUND_EXPR.

2021-03-23  Nathan Sidwell  <nathan@acm.org>

	PR c++/99283
	* name-lookup.c (check_module_override): Set global or partition
	DUP on the binding vector.

2021-03-23  Marek Polacek  <polacek@redhat.com>

	PR c++/99318
	* decl2.c (cp_warn_deprecated_use_scopes): Only call
	cp_warn_deprecated_use when decl is a namespace, class, or enum.

2021-03-23  Nathan Sidwell  <nathan@acm.org>

	PR c++/99239
	* decl.c (duplicate_decls): Remove assert about maybe-imported
	artificial decls.

2021-03-23  Jakub Jelinek  <jakub@redhat.com>

	PR c++/99650
	* decl.c (cp_finish_decomp): Diagnose void initializers when
	using tuple_element and get.

2021-03-22  Nathan Sidwell  <nathan@acm.org>

	PR c++/99480
	* module.cc (depset::hash::make_dependency): Propagate flags for
	partial specialization.
	(module_may_redeclare): Handle partial specialization.

2021-03-22  Nathan Sidwell  <nathan@acm.org>

	PR c++/99425
	* cp-tree.h (map_context_from, map_context_to): Delete.
	(add_mergeable_specialization): Add is_alias parm.
	* pt.c (add_mergeable_specialization): Add is_alias parm, add them.
	* module.cc (map_context_from, map_context_to): Delete.
	(trees_in::decl_value): Add specializations later, adjust call.
	Drop useless alias lookup. Set duplicate fn parm context.
	(check_mergeable_decl): Drop context mapping.
	(trees_in::is_matching_decl): Likewise.
	(trees_in::read_function_def): Drop parameter context adjustment
	here.

2021-03-22  Martin Liska  <mliska@suse.cz>

	PR c++/99687
	* module.cc (fini_modules): Call vec_free instead of delete.

2021-03-20  Jakub Jelinek  <jakub@redhat.com>

	PR debug/99230
	* cp-gimplify.c (cp_genericize_r) <case STATEMENT_LIST>: Remove
	special code, instead call c_genericize_control_stmt.

2021-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR c++/99456
	* constexpr.c (cxx_eval_constant_expression): For CONVERT_EXPR from
	INDIRECT_TYPE_P to ARITHMETIC_TYPE_P, when !ctx->manifestly_const_eval
	don't diagnose it, set *non_constant_p nor return t.

2021-03-19  Marek Polacek  <polacek@redhat.com>

	PR c++/99500
	* parser.c (cp_parser_requirement_parameter_list): Handle
	error_mark_node.

2021-03-18  Marek Polacek  <polacek@redhat.com>

	* pt.c (tsubst_copy_and_build) <case FLOAT_EXPR>: Remove.

2021-03-18  Marek Polacek  <polacek@redhat.com>

	* pt.c (tsubst_copy_and_build): Add assert.

2021-03-18  Iain Sandoe  <iain@sandoe.co.uk>

	PR objc++/49070
	* parser.c (cp_debug_parser): Add Objective-C++ message
	state flag.
	(cp_parser_nested_name_specifier_opt): Allow colon to
	terminate an assignment-expression when parsing Objective-
	C++ messages.
	(cp_parser_objc_message_expression): Set and clear message
	parsing state on entry and exit.
	* parser.h (struct cp_parser): Add a context flag for
	Objective-C++ message state.

2021-03-18  Martin Liska  <mliska@suse.cz>

	PR c++/99617
	* coroutines.cc (struct var_nest_node): Init then_cl and else_cl
	to NULL.

2021-03-17  Marek Polacek  <polacek@redhat.com>

	PR c++/97973
	* call.c (conv_unsafe_in_template_p): New.
	(convert_like): Use it.

2021-03-17  Anthony Sharp  <anthonysharp15@gmail.com>
	    Jason Merrill  <jason@redhat.com>

	* semantics.c (get_class_access_diagnostic_decl): New
	function that examines special cases when a parent
	class causes a private access failure.
	(enforce_access): Slightly modified to call function
	above.

2021-03-16  Jason Merrill  <jason@redhat.com>

	* tree.c (cp_tree_equal): Use real_identical.

2021-03-16  Jakub Jelinek  <jakub@redhat.com>

	PR c++/99613
	* decl.c (expand_static_init): For thread guards, call __cxa_atexit
	before calling __cxa_guard_release rather than after it.  Formatting
	fixes.

2021-03-16  Martin Liska  <mliska@suse.cz>
	    Jason Merrill  <jason@redhat.com>

	PR c++/99108
	* call.c (get_function_version_dispatcher): Handle
	DECL_LOCAL_DECL_P.
	* decl.c (maybe_version_functions): Likewise.
	(maybe_mark_function_versioned): New.
	* name-lookup.c (push_local_extern_decl_alias): No longer static.
	* name-lookup.h (push_local_extern_decl_alias): Adjust.

2021-03-16  Nathan Sidwell  <nathan@acm.org>

	PR c++/99496
	* module.cc (trees_out::decl_value): Adjust typedef streaming,
	indicate whether it is a dependent alias.
	(trees_in::decl_value): Likewise.  Set as dependent alias, if it
	is one.

2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>

	PR c++/99047
	* coroutines.cc (expand_one_await_expression): If the
	await_ready() expression is not a boolean then convert it
	as required.

2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>

	PR c++/98704
	* coroutines.cc (build_actor_fn): Make destroy index 1
	correspond to the abnormal unhandled_exception() exit.
	Substitute the proxy for the resume index.
	(coro_rewrite_function_body): Arrange to reset the resume
	index and make done = true for a rethrown exception from
	unhandled_exception ().
	(morph_fn_to_coro): Adjust calls to build_actor_fn and
	coro_rewrite_function_body.

2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>

	PR c++/98480
	* coroutines.cc (replace_continue): Rewrite continue into
	'goto label'.
	(await_statement_walker): Handle await expressions in the
	initializer, condition and iteration expressions of for
	loops.

2021-03-15  Iain Sandoe  <iain@sandoe.co.uk>

	PR c++/96749
	* coroutines.cc (flatten_await_stmt): Allow for the case
	where a target expression variable only has uses in the
	second part of a compound expression.
	(maybe_promote_temps): Avoid emiting empty statements.

2021-03-15  Tobias Burnus  <tobias@codesourcery.com>

	PR c++/99509
	* decl.c (cp_finish_decl): For 'omp declare target implicit' vars,
	ensure that the varpool node is marked as offloadable.

2021-03-12  Nathan Sidwell  <nathan@acm.org>

	PR c++/99238
	* module.cc (depset::hash::add_binding_entity): Assert not
	visited.
	(depset::add::add_specializations): Likewise.
	* name-lookup.c (name_lookup::dedup): New.
	(name_lookup::~name_lookup): Assert not deduping.
	(name_lookup::restore_state): Likewise.
	(name_lookup::add_overload): Replace outlined code with dedup
	call.
	(name_lookup::add_value): Likewise.
	(name_lookup::search_namespace_only): Likewise.
	(name_lookup::adl_namespace_fns): Likewise.
	(name_lookup::adl_class_fns): Likewise.
	(name_lookup::search_adl): Likewise.  Add clearing dedup call.
	(name_lookup::search_qualified): Likewise.
	(name_lookup::search_unqualified): Likewise.

2021-03-12  Jakub Jelinek  <jakub@redhat.com>

	PR c++/99507
	* call.c (build_over_call): For immediate evaluation of functions
	that return references, undo convert_from_reference effects before
	calling cxx_constant_value and call convert_from_reference
	afterwards.

2021-03-11  Nathan Sidwell  <nathan@acm.org>

	PR c++/99248
	* name-lookup.c (lookup_elaborated_type_1): Access slot not bind
	when there's a binding vector.
	* ptree.c (cxx_print_xnode): Lazy flags are no longer a thing.

2021-03-11  Nathan Sidwell  <nathan@acm.org>

	PR c++/99528
	* module.cc (enum merge_kind): Delete MK_type_tmpl_spec,
	MK_decl_tmpl_spec.
	(trees_in::decl_value): Adjust add_mergeable_specialization call.
	(trees_out::get_merge_kind): Adjust detecting a partial template
	instantiation.
	(trees_out::key_mergeable): Adjust handling same.
	(trees_in::key_mergeabvle): Likewise.

2021-03-10  Nathan Sidwell  <nathan@acm.org>

	PR c++/99423
	* module.cc (post_load_processing): Assert not gcable.
	(laxy_load_pendings): Extend no-gc region around
	post_load_processing.

2021-03-10  Nathan Sidwell  <nathan@acm.org>

	PR c++/99508
	* decl.c (make_rtl_for_nonlocal_decl): Propagate local-extern's
	assembler name to the ns alias.

2021-03-09  Jakub Jelinek  <jakub@redhat.com>

	PR c++/99459
	* coroutines.cc (build_co_await): Look through NOP_EXPRs in
	build_special_member_call return value to find the CALL_EXPR.
	Simplify.

2021-03-09  Nathan Sidwell  <nathan@acm.org>

	PR c++/99472
	* parser.c (cp_parser_diagnose_invalid_type_name): Clarify
	that C++20 does not yet imply modules.

2021-03-08  Nathan Sidwell  <nathan@acm.org>

	PR c++/99436
	* name-lookup.c (get_cxx_dialect_name): Add cxx23.

2021-03-08  Nathan Sidwell  <nathan@acm.org>

	* lex.c (module_token_filter::resume): Ignore module-decls inside
	header-unit.
	* parser.c (cp_parser_module_declaration): Reject in header-unit.

2021-03-08  Nathan Sidwell  <nathan@acm.org>

	PR c++/99285
	* cp-tree.h (match_mergeable_specialization)
	(add_mergeable_specialization): Adjust parms.
	* module.cc (trees_in::decl_value): Adjust
	add_mergeable_specialization calls.
	(trees_out::key_mergeable): Adjust match_mergeable_specialization
	calls.
	(specialization_add): Likewise.
	* pt.c (match_mergeable_specialization): Do not insert.
	(add_mergeable_specialization): Add to hash table here.

2021-03-06  Patrick Palka  <ppalka@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR c++/99287
	* constexpr.c (cxx_eval_increment_expression): Pass lval when
	evaluating the MODIFY_EXPR, and update 'mod' with the result of
	this evaluation.  Check *non_constant_p afterwards.  For prefix
	ops, just return 'mod'.

2021-03-06  Patrick Palka  <ppalka@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR c++/96330
	* pt.c (tsubst_copy) <case TEMPLATE_ID_EXPR>: Rename local
	variable 'fn' to 'tmpl'.  Handle a variable template-id by
	calling lookup_template_variable.

2021-03-06  Patrick Palka  <ppalka@redhat.com>

	PR c++/99365
	* pt.c (unify) <case TEMPLATE_TYPE_PARM>: Pass targs as
	outer_targs to do_auto_deduction.
	(placeholder_type_constraint_dependent_p): Define.
	(do_auto_deduction): When processing_template_decl != 0
	and context is adc_unify and we have constraints, pretend the
	constraints are satisfied instead of punting.  Otherwise don't
	punt unless placeholder_type_constraint_dependent_p holds.
	Add some clarifying sanity checks.  Add a hack to add missing
	outermost template levels to outer_args before checking
	satisfaction.  Don't substitute outer_targs into type if it's
	already been done.

2021-03-05  Marek Polacek  <polacek@redhat.com>

	PR c++/99374
	* call.c (standard_conversion): When converting pointers to
	member, don't return NULL when the bases are equivalent but
	incomplete.

2021-03-05  Marek Polacek  <polacek@redhat.com>

	PR c++/99120
	* name-lookup.c (check_local_shadow): Check if the type of decl
	is non-null before checking TYPE_PTR*.

2021-03-05  Nathan Sidwell  <nathan@acm.org>

	PR c++/99245
	* module.cc (module_state::write_cluster): Relax binding assert.

2021-03-05  Nathan Sidwell  <nathan@acm.org>

	PR c++/99377
	* pt.c (instantiate_decl): Call set_instantiating_module.

2021-03-05  Iain Sandoe  <iain@sandoe.co.uk>

	PR c++/98118
	* coroutines.cc (build_co_await): Use type_build_ctor_call()
	to determine cases when a CTOR needs to be built.
	(flatten_await_stmt): Likewise.
	(morph_fn_to_coro): Likewise.

2021-03-05  Iain Sandoe  <iain@sandoe.co.uk>

	PR c++/95616
	* coroutines.cc (coro_diagnose_throwing_fn): New helper.
	(coro_diagnose_throwing_final_aw_expr): New helper.
	(build_co_await): Diagnose throwing final await expression
	components.
	(build_init_or_final_await): Diagnose a throwing promise
	final_suspend() call.

2021-03-05  Iain Sandoe  <iain@sandoe.co.uk>

	PR c++/95615
	* coroutines.cc (struct param_info): Track parameter copies that need
	a DTOR.
	(coro_get_frame_dtor): New helper function factored from build_actor().
	(build_actor_fn): Use coro_get_frame_dtor().
	(morph_fn_to_coro): Track parameters that need DTORs on exception,
	likewise the frame promise and the return object.  On exception, run the
	DTORs for these, destroy the frame and then rethrow the exception.

2021-03-05  Nathan Sidwell  <nathan@acm.org>

	PR c++/99389
	* pt.c (instantiate_class_template_1): Set instantiating module
	here.

2021-03-05  Tobias Burnus  <tobias@codesourcery.com>

	PR c/99137
	* parser.c (cp_parser_oacc_clause_async): Reject comma expressions.

2021-03-04  Jakub Jelinek  <jakub@redhat.com>

	PR c++/88146
	PR c++/99362
	* cvt.c (convert_to_void): Revert 2019-10-17 changes.  Clarify
	comment.

2021-03-04  Nathan Sidwell  <nathan@acm.org>

	PR c++/99170
	* module.cc (class uintset): Delete.
	(typedef attached_map_t): A hash map.
	(attached_table): Use attached_map_t.  Adjust uses ...
	(trees_out::decl_value, trees_in::decl_value): ... here ...
	(trees_out::key_mergeable): ... here ...
	(trees_in::key_mergeable): ... here ...
	(maybe_attach_decl): ... here ...
	(direct_import): ... and here.

2021-03-04  Nathan Sidwell  <nathan@acm.org>

	PR c++/99170
	* cp-tree.h
	* lex.c (cxx_dup_lang_specific_decl): Adjust for module_attached_p
	rename.
	* module.cc (class pending_key): New.
	(default_hash_traits<pending_key>): New specialization.
	(pending_map_t): New typedef.
	(pending_table): Replace old table.
	(trees_out::lang_decl_bools): Adjust.
	(trees_in::lang_decl_bools): Adjust.
	(trees_in::install_entity): Drop pending member and specialization
	handling.
	(find_pending_key): New.
	(depset::hash::fiund_dependencies): Use it.
	(pendset_lazy_load): Delete.
	(module_state::write_cluster): Don't count pendings here.  Bye
	Duff's device-like thing.
	(module_state::write_pendings): Reimplement.
	(module_state::read_pendings): Reimplement.
	(lazy_specializations_p): Delete.
	(module_state::write): Adjust write_pendings call.
	(lazy_load_pendings): New.
	(lazy_load_specializations): Delete.
	(lazy_load_members): Delete.
	(init_modules):	Adjust.
	* name-lookup.c (maybe_lazily_declare):	Call lazy_load_pendings
	not lazy_load_members.
	(note_pending_specializations): Delete.
	(load_pending_specializations): Delete.
	* name-lookup.h	(BINDING_VECTR_PENDING_SPECIALIZATIONS_P): Delete.
	(BINDING_VECTOR_PENDING_MEMBERS_P): Delete.
	(BINDING_VECTR_PENDING_MEMBERS_P): Delete.
	(note_pending_specializations): Delete.
	(load_pending_specializations): Delete.
	* pt.c (lookup_template_class_1): Call lazy_load_pendings not
	lazy_load_specializations.
	(instantiate_template_class_1): Likewise.
	(instantiate_decl): Call lazy_load_pendings.
	* typeck.c (complete_type): Likewise.

2021-03-03  Nathan Sidwell  <nathan@acm.org>

	PR c++/99170
	* module.cc (post_load_decls): New.
	(lazy_snum, recursive_lazy): Move earlier.
	(module_state::read_cluster): Push cloning onto post_load_decls.
	(post_load_processing): New.  Do the cloning here.
	(module_state::read_inits): Call post_load_processing.
	(module_state::read_language): Likewise.
	(lazy_load_binding, lazy_load_specializations): Likewise
	(lazy_load_members): Likewise

2021-03-03  Nathan Sidwell  <nathan@acm.org>

	PR c++/99170
	* module.cc (trees_out::decl_value): Stream specialization keys
	after decl.
	(trees_in::decl_value): Stream them back and insert after
	completing the decl.
	(trees_out::key_mergeable): Drop some streaming here ...
	(trees_in::key_mergeable): ... and here.  Don't insert into
	specialization tables.

2021-03-03  Patrick Palka  <ppalka@redhat.com>

	* constraint.cc (struct sat_info): Document the different
	meanings of noisy() and diagnose_unsatisfaction_p() during
	satisfaction and requires-expression evaluation.
	(tsubst_valid_expression_requirement): Take a sat_info instead
	of a subst_info.  Perform the substitution quietly first.  Fold
	in error-replaying code from diagnose_valid_expression.
	(tsubst_simple_requirement): Take a sat_info instead of a
	subst_info.
	(tsubst_type_requirement_1): New.  Fold in error-replaying code
	from diagnose_valid_type.
	(tsubst_type_requirement): Use the above.  Take a sat_info
	instead of a subst_info.
	(tsubst_compound_requirement): Likewise.  Fold in
	error-replaying code from diagnose_compound_requirement.
	(tsubst_nested_requirement): Take a sat_info instead of a
	subst_info.  Fold in error-replaying code from
	diagnose_nested_requirement.
	(tsubst_requirement): Take a sat_info instead of a subst_info.
	(tsubst_requires_expr): Split into two versions, one that takes
	a sat_info argument and another that takes a complain and
	in_decl argument.  Remove outdated documentation.  Document the
	effects of the sat_info argument.  Don't short-circuit
	processing of requirements when diagnosing unsatisfaction,
	mirroring diagnose_requires_expr.
	(satisfy_nondeclaration_constraint) <case REQUIRES_EXPR>: Remove
	assert, and se the three-parameter version of tsubst_requires_expr.
	(diagnose_trait_expr): Make static.  Take a template argument
	vector instead of a parameter mapping.
	(diagnose_valid_expression): Remove.
	(diagnose_valid_type): Remove.
	(diagnose_simple_requirement): Remove.
	(diagnose_compound_requirement): Remove.
	(diagnose_type_requirement): Remove.
	(diagnose_nested_requirement): Remove.
	(diagnose_requirement): Remove.
	(diagnose_requires_expr): Remove.
	(diagnose_atomic_constraint): Take a sat_info instead of a
	subst_info.  Adjust call to diagnose_trait_expr.  Call
	tsubst_requires_expr instead of diagnose_requires_expr.
	(diagnose_constraints): Remove special casing of REQUIRES_EXPR
	and just always call constraint_satisfaction_value.

2021-03-03  Patrick Palka  <ppalka@redhat.com>

	* constexpr.c (cxx_eval_call_expression): Adjust call to
	evaluate_concept_check.
	(cxx_eval_constant_expression) <case REQUIRES_EXPR>: Use
	evaluate_requires_expression instead of
	satisfy_constraint_expression.
	<case TEMPLATE_ID_EXPR>: Adjust call to evaluate_concept_check.
	* constraint.cc (struct sat_info): Adjust comment about which
	satisfaction entrypoints use noisy-unsat.
	(normalize_template_requirements): Remove (and adjust callers
	appropriately).
	(normalize_nontemplate_requirements): Likewise.
	(tsubst_nested_requirement): Use constraint_satisfaction_value
	instead of satisfy_constraint_expression, which'll do the
	noisy replaying of ill-formed quiet satisfaction for us.
	(decl_satisfied_cache): Adjust comment.
	(satisfy_constraint): Rename to ...
	(satisfy_normalized_constraints): ... this.
	(satisfy_associated_constraints): Remove (and make its
	callers check for dependent arguments).
	(satisfy_constraint_expression): Rename to ...
	(satisfy_nondeclaration_constraints): ... this.  Assert that
	'args' is empty when 't' is a concept-id.  Removing handling
	bare constraint-expressions, and handle REQUIRES_EXPRs
	specially.  Adjust comment accordingly.
	(satisfy_declaration_constraints): Assert in the two-parameter
	version that 't' is not a TEMPLATE_DECL.  Adjust following
	removal of normalize_(non)?template_requirements and
	satisfy_asociated_constraints.
	(constraint_satisfaction_value): Combine the two- and
	three-parameter versions in the natural way.
	(constraints_satisfied_p): Combine the one- and two-parameter
	versions in the natural way.  Improve documentation.
	(evaluate_requires_expr): Define.
	(evaluate_concept_check): Remove 'complain' parameter.  Use
	constraint_satisfaction_value instead of
	satisfy_constraint_expression.
	(diagnose_nested_requirement): Adjust following renaming of
	satisfy_constraint_expression.
	(diagnose_constraints): Handle REQUIRES_EXPR by going through
	diagnose_requires_expr directly instead of treating it as a
	constraint-expression.  Improve documentation.
	* cp-gimplify.c (cp_genericize_r) <case CALL_EXPR>: Adjust call
	to evaluate_concept_check.
	<case REQUIRES_EXPR>: Use evaluate_requires_expr instead of
	constraints_satisfied_p.
	<case TEMPLATE_ID_EXPR>: Adjust call to evaluate_concept_check.
	* cp-tree.h (evaluate_requires_expr): Declare.
	(evaluate_concept_check): Remove tsubst_flag_t parameter.
	(satisfy_constraint_expression): Remove declaration.
	(constraints_satisfied_p): Remove one-parameter declaration.
	Add a default argument to the two-parameter declaration.
	* cvt.c (convert_to_void): Adjust call to
	evaluate_concept_check.

2021-03-03  Jakub Jelinek  <jakub@redhat.com>

	PR c++/82959
	* call.c (op_is_ordered): Handle TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR
	and COMPOUND_EXPR.

2021-03-03  Marek Polacek  <polacek@redhat.com>

	PR c++/97034
	PR c++/99009
	* pt.c (build_deduction_guide): Use INNERMOST_TEMPLATE_ARGS.
	(maybe_aggr_guide): Use the original template type where needed.  In
	a class member template, partially instantiate the result of
	collect_ctor_idx_types.
	(do_class_deduction): Defer the deduction until the enclosing
	scope is non-dependent.

2021-03-03  Jason Merrill  <jason@redhat.com>

	PR c++/95675
	* call.c (build_temp): Wrap a CALL_EXPR in a TARGET_EXPR
	if it didn't get one before.

2021-03-03  Nathan Sidwell  <nathan@acm.org>

	PR c++/99344
	* module.cc (trees_out::decl_node): Small refactor.
	(depset::hash::add_binding_entity): Return true on meeting an
	import.  Set namespace's import here.
	(module_state:write_namespaces): Inform of purview too.
	(module_state:read_namespaces): Adjust.
	* name-lookup.c (implicitly_export_namespace): Delete.
	(do_pushdecl): Don't call it.
	(push_namespace): Likewise, set purview.
	(add_imported_namespace): Reorder parms.
	* name-lookup.h (add_imported_namespace): Alter param ordering.

2021-03-02  Martin Sebor  <msebor@redhat.com>

	PR c++/99251
	* class.c (build_base_path): Call build_if_nonnull.
	* cp-tree.h (build_if_nonnull): Declare.
	* rtti.c (ifnonnull): Rename...
	(build_if_nonnull): ...to this.  Set no-warning bit on COND_EXPR.
	(build_dynamic_cast_1): Adjust to name change.

2021-03-02  Patrick Palka  <ppalka@redhat.com>

	PR c++/96443
	PR c++/96960
	* constraint.cc (type_deducible_p): Don't substitute into the
	constraints, and instead just pass 'args' to do_auto_deduction
	as the outer template arguments.
	(tsubst_parameter_mapping): Remove confused code for handling
	placeholder type arguments.
	(normalize_placeholder_type_constraint): Define.
	(satisfy_constraint_expression): Use it to handle placeholder
	'auto' types.
	* cp-tree.h (PLACEHOLDER_TYPE_CONSTRAINTS_INFO): Define.
	(PLACEHOLDER_TYPE_CONSTRAINTS): Redefine in terms of the above.
	* pt.c (tsubst) <case TEMPLATE_TYPE_PARM>: Use
	PLACEHOLDER_TYPE_CONSTRAINTS_INFO instead.
	(make_constrained_placeholder_type): Set
	PLACEHOLDER_TYPE_CONSTRAINTS_INFO instead.
	(do_auto_deduction): Clarify comments about the outer_targs
	parameter.  Rework satisfaction of a placeholder type constraint
	to pass in the complete set of template arguments directly to
	constraints_satisfied_p.
	(splice_late_return_type): Use PLACEHOLDER_TYPE_CONSTRAINTS_INFO
	instead.  Also rebuild the the constraint info on the new auto.

2021-03-02  Patrick Palka  <ppalka@redhat.com>

	* constraint.cc (build_parameter_mapping): Rely on the caller to
	determine the in-scope template parameters.
	(norm_info::norm_info): Delegate the tsubst_flags_t constructor
	to the two-parameter constructor.  In the two-parameter
	constructor, fold in the definition of make_context, set
	initial_parms appropriately, and don't set the now-removed
	orig_decl member.
	(norm_info::make_context): Remove, now that its only use is
	inlined into the caller.
	(norm_info::update_context): Adjust call to
	build_parameter_mapping to pass in the relevant set of in-scope
	template parameters.
	(norm_info::ctx_parms): Define this member function.
	(norm_info::context): Initialize to NULL_TREE.
	(norm_info::orig_decl): Remove this data member.
	(norm_info::initial_parms): Define this data member.
	(normalize_atom): Adjust call to build_parameter_mapping to pass
	in the relevant set of in-scope template parameters.  Use
	info.initial_parms instead of info.orig_decl.
	(normalize_constraint_expression): Take a norm_info object
	instead of a bool.  Cache the result of normalization.
	(tsubst_nested_requirement): Call satisfy_constraint_expression
	instead of satisfy_constraint, so that we normalize on demand.
	(satisfy_constraint_expression): Handle a NESTED_REQ argument.
	Adjust call to normalize_constraint_expression.
	(finish_nested_requirement): Set the TREE_TYPE of the NESTED_REQ
	to current_template_parms.
	(diagnose_nested_requirements): Go through
	satisfy_constraint_expression, as with tsubst_nested_requirement.

2021-03-02  Patrick Palka  <ppalka@redhat.com>

	* constraint.cc (tsubst_parameter_mapping): Canonicalize the
	arguments of a substituted TYPE_ARGUMENT_PACK even if we've
	started with a TYPE_ARGUMENT_PACK.
	(finish_requires_expr): Don't set DECL_CONTEXT and
	CONSTRAINT_VAR_P on each of the introduced parameters here.
	* parser.c (cp_parser_requirement_parameter_list): Instead set
	these fields earlier, here.
	* pt.c (do_auto_deduction): Canonicalize the result of
	do_auto_deduction.  Pass 'complain' to finish_decltype_type.

2021-03-02  Patrick Palka  <ppalka@redhat.com>

	* constraint.cc (tsubst_simple_requirement): Just return
	boolean_true_node on success.
	(tsubst_type_requirement): Likewise.
	(tsubst_compound_requirement): Likewise.
	(tsubst_nested_requirement): Likewise.
	(tsubst_requirement_body): Remove.
	(check_constaint_variables): Rename to ...
	(check_constraint_variables): ... this.
	(tsubst_constraint_variables): Adjust.
	(tsubst_requires_expr): Fold tsubst_requirement_body into here.

2021-03-01  Nathan Sidwell  <nathan@acm.org>

	PR c++/99294
	* class.c (fixup_type_variants): Propagate mode, precision,
	alignment & emptiness.
	* module.cc (trees_out::type_node): Use TYPE_ALIGN_RAW.
	(trees_in::tree_node): Rematerialize alignment here.

2021-02-27  Jason Merrill  <jason@redhat.com>

	PR c++/90333
	* parser.c (cp_parser_lambda_declarator_opt): Accept GNU attributes
	between () and ->.

2021-02-26  Jakub Jelinek  <jakub@redhat.com>

	* parser.c (cp_parser_lambda_declarator_opt): Implement
	P1102R2 - Down with ()! Make ()s optional before lambda specifiers
	for -std={c,gnu}++2b or with pedwarn in earlier versions.

2021-02-26  Jakub Jelinek  <jakub@redhat.com>

	PR c++/95451
	* lambda.c (is_lambda_ignored_entity): Before checking for
	LAMBDA_FUNCTION_P, use OVL_FIRST.  Drop FUNCTION_DECL check.

2021-02-26  Jason Merrill  <jason@redhat.com>

	PR c++/98810
	* pt.c (tsubst_copy) [VIEW_CONVERT_EXPR]: Add const
	to a class non-type template argument that needs it.

2021-02-26  Patrick Palka  <ppalka@redhat.com>

	PR c++/98990
	* pt.c (splice_late_return_type): Rebuild the entire return type
	if we have to adjust the level of an auto within.
	(type_uses_auto): Adjust call to find_type_usage.
	* type-utils.h (find_type_usage): Revert r10-6571 change that
	made this function return a pointer to the auto node.

2021-02-25  Patrick Palka  <ppalka@redhat.com>

	PR c++/99213
	PR c++/94521
	* error.c (dump_scope): Pass TFF_NO_TEMPLATE_BINDINGS instead of
	TFF_NO_FUNCTION_ARGUMENTS when dumping a function scope.

2021-02-25  Patrick Palka  <ppalka@redhat.com>

	PR c++/99103
	* pt.c (is_spec_or_derived): Drop cv-qualifiers from 'etype'.
	(maybe_aggr_guide): Fix order of arguments to is_spec_or_derived.

2021-02-25  Marek Polacek  <polacek@redhat.com>

	DR 1312
	PR c++/99176
	* constexpr.c (is_std_construct_at): New overload.
	(is_std_allocator_allocate): New overload.
	(cxx_eval_call_expression): Use the new overloads.
	(cxx_eval_constant_expression): Reject casting
	from void * as per DR 1312.  Don't check can_convert.

2021-02-25  Iain Sandoe  <iain@sandoe.co.uk>

	PR c++/97587
	* coroutines.cc (struct param_info): Track rvalue refs.
	(morph_fn_to_coro): Track rvalue refs, and call the promise
	CTOR with the frame copy of passed parms.

2021-02-25  Iain Sandoe  <iain@sandoe.co.uk>

	PR c++/95822
	* coroutines.cc (morph_fn_to_coro): Unconditionally remove any
	set throwing_cleanup marker.

2021-02-25  Nathan Sidwell  <nathan@acm.org>

	PR c++/99166
	* module.cc (module_state::inform_cmi_p): Renamed field.
	(module_state::do_import): Adjust.
	(init_modules, finish_module_processing): Likewise.
	(handle_module_option): Likewise.

2021-02-25  Nathan Sidwell  <nathan@acm.org>

	PR c++/98318
	* mapper-client.cc (module_client::open_module_client): Fix typo
	of fd init.

2021-02-24  Nathan Sidwell  <nathan@acm.org>

	PR c++/98718
	* module.cc (ool): New indirection vector.
	(loc_spans::maybe_propagate): Location is not optional.
	(loc_spans::open): Likewise.  Assert monotonically advancing.
	(module_for_ordinary_loc): Use ool indirection vector.
	(module_state::write_prepare_maps): Do not count empty macro
	expansions.  Elide empty spans.
	(module_state::write_macro_maps): Skip empty expansions.
	(ool_cmp): New qsort comparator.
	(module_state::write): Create and destroy ool vector.
	(name_pending_imports): Fix dump push/pop.
	(preprocess_module): Likewise.  Add more dumping.
	(preprocessed_module): Likewise.

2021-02-24  Iain Sandoe  <iain@sandoe.co.uk>

	PR c++/96251
	* coroutines.cc (coro_common_keyword_context_valid_p): Suppress
	error reporting when instantiating for a constexpr.

2021-02-23  Nathan Sidwell  <nathan@acm.org>

	PR c++/99208
	* decl.c (name_unnamed_type): Check DECL identity, not IDENTIFIER
	identity.

2021-02-23  Patrick Palka  <ppalka@redhat.com>

	PR c++/95468
	* pt.c (tsubst_copy_and_build) <case BASELINK>: New case, copied
	over from tsubst_copy.

2021-02-23  Patrick Palka  <ppalka@redhat.com>

	* pt.c (instantiation_dependent_expression_p): Check
	processing_template_decl before calling
	potential_constant_expression.

2021-02-22  Nathan Sidwell  <nathan@acm.org>

	PR c++/99174
	* module.cc (struct module_state): Add visited_p flag.
	(name_pending_imports): Use it to avoid duplicate requests.
	(preprocess_module): Don't read preprocessor state if we failed to
	load a module's config.

2021-02-22  Nathan Sidwell  <nathan@acm.org>

	PR c++/99153
	* decl.c (duplicate_decls): Move DECL_MODULE_IMPORT_P propagation
	to common-path.
	* module.cc (set_defining_module): Add assert.

2021-02-19  Nathan Sidwell  <nathan@acm.org>

	PR c++/98741
	* module.cc (pending_imports): New.
	(declare_module): Adjust test condition.
	(name_pending_imports): New.
	(preprocess_module): Reimplement using pending_imports.
	(preprocessed_module): Move name-getting to name_pending_imports.
	* name-lookup.c (append_imported_binding_slot): Assert module
	ordering is increasing.

2021-02-19  Nathan Sidwell  <nathan@acm.org>

	* module.cc (note_cmis): New.
	(struct module_state): Add inform_read_p bit.
	(module_state::do_import): Inform of CMI location, if enabled.
	(init_modules): Canonicalize note_cmis entries.
	(handle_module_option): Handle -flang-info-module-read=FOO.

2021-02-19  Jason Merrill  <jason@redhat.com>

	PR c++/96926
	* call.c (perfect_conversion_p): Limit rvalueness
	test to reference bindings.

2021-02-19  Jason Merrill  <jason@redhat.com>

	PR c++/96926
	* call.c (perfect_conversion_p): New.
	(perfect_candidate_p): New.
	(add_candidates): Ignore templates after a perfect non-template.

2021-02-18  Nathan Sidwell  <nathan@acm.org>

	PR c++/99023
	* module.cc (canonicalize_header_name): Use
	cpp_probe_header_unit.
	(maybe_translate_include): Fix note_includes comparison.
	(init_modules): Fix note_includes string termination.

2021-02-18  Jakub Jelinek  <jakub@redhat.com>

	PR c++/99132
	* cp-gimplify.c (cp_genericize_r) <case CALL_EXPR>: Use
	cp_get_callee_fndecl_nofold instead of cp_get_callee_fndecl to check
	for immediate function calls.

2021-02-17  Nathan Sidwell  <nathan@acm.org>

	PR c++/99023
	* module.cc (struct macro_export): Add GTY markers.
	(macro_exports): Likewise, us a va_gc Vector.

2021-02-17  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/99106
	* init.c (build_zero_init_1): For flexible array members just return
	NULL_TREE instead of returning empty CONSTRUCTOR with non-complete
	ARRAY_TYPE.

2021-02-17  Nathan Sidwell  <nathan@acm.org>

	PR c++/99116
	* name-lookup.c (do_pushdecl): Don't peek under template_parm
	bindings here ...
	(set_identifier_type_value_with_scope): ... or here.
	(do_pushtag): Only set_identifier_type_value_with_scope at
	non-class template parm scope, and use parent scope.

2021-02-17  Nathan Sidwell  <nathan@acm.org>

	PR c++/99071
	* name-lookup.c (maybe_record_mergeable_decl): Deref the correct
	pointer.

2021-02-17  Patrick Palka  <ppalka@redhat.com>

	PR debug/96997
	PR c++/94034
	* tree.c (build_aggr_init_expr): Revert r10-7718 change.

2021-02-12  Nathan Sidwell  <nathan@acm.org>

	* module.cc (module_state::write_cluster): Check bindings for
	imported using-decls.

2021-02-12  Nathan Sidwell  <nathan@acm.org>

	PR c++/99040
	* module.cc (trees_in::decl_value): Call add_module_namespace_decl
	for new namespace-scope entities.
	(module_state::read_cluster): Don't call add_module_decl here.
	* name-lookup.h (add_module_decl): Rename to ...
	(add_module_namespace_decl): ... this.
	* name-lookup.c (newbinding_bookkeeping): Move into ...
	(do_pushdecl): ... here.  Its only remaining caller.
	(add_module_decl): Rename to ...
	(add_module_namespace_decl): ... here.  Add checking-assert for
	circularity. Don't call newbinding_bookkeeping, just extern_c
	checking and incomplete var checking.

2021-02-12  Nathan Sidwell  <nathan@acm.org>

	PR c++/99039
	PR c++/99040
	* cp-tree.h (CPTI_GLOBAL_TYPE): Delete.
	(global_type_node): Delete.
	(IDENTIFIER_TYPE_VALUE): Delete.
	(IDENTIFIER_HAS_TYPE_VALUE): Delete.
	(get_type_value): Delete.
	* name-lookup.h (identifier_type_value): Delete.
	* name-lookup.c (check_module_override): Don't
	SET_IDENTIFIER_TYPE_VALUE here.
	(do_pushdecl): Nor here.
	(identifier_type_value_1, identifier_type_value): Delete.
	(set_identifier_type_value_with_scope): Only
	SET_IDENTIFIER_TYPE_VALUE for local and class scopes.
	(pushdecl_nanmespace_level): Remove shadow stack nadgering.
	(do_pushtag): Use REAL_IDENTIFIER_TYPE_VALUE.
	* call.c (check_dtor_name): Use lookup_name.
	* decl.c (cxx_init_decl_processing): Drop global_type_node.
	* decl2.c (cplus_decl_attributes): Don't SET_IDENTIFIER_TYPE_VALUE
	here.
	* init.c (get_type_value): Delete.
	* pt.c (instantiate_class_template_1): Don't call pushtag or
	SET_IDENTIFIER_TYPE_VALUE here.
	(tsubst): Assert never an identifier.
	(dependent_type_p): Drop global_type_node assert.
	* typeck.c (error_args_num): Don't use IDENTIFIER_HAS_TYPE_VALUE
	to determine ctorness.

2021-02-12  Jakub Jelinek  <jakub@redhat.com>

	PR c++/97742
	* parser.c (cp_parser_requirement_seq): Stop iterating after reaching
	CPP_EOF.

2021-02-12  Jason Merrill  <jason@redhat.com>

	PR c++/97246
	PR c++/94546
	* pt.c (extract_fnparm_pack): Check DECL_PACK_P here.
	(register_parameter_specializations): Not here.

2021-02-11  Marek Polacek  <polacek@redhat.com>

	PR c++/95888
	* pt.c (lookup_template_class_1): Pass tf_none to tsubst when looking
	for the partial instantiation.

2021-02-11  Jakub Jelinek  <jakub@redhat.com>

	PR c++/99033
	* init.c (build_zero_init_1): Handle zero initialiation of
	flexible array members like initialization of [0] arrays.
	Use integer_minus_onep instead of comparison to integer_minus_one_node
	and integer_zerop instead of comparison against size_zero_node.
	Formatting fixes.

2021-02-11  Marek Polacek  <polacek@redhat.com>

	PR c++/99063
	* semantics.c (finish_do_stmt): Check for unexpanded parameter packs.

2021-02-11  Patrick Palka  <ppalka@redhat.com>

	PR c++/97582
	* name-lookup.c (op_unqualified_lookup): Handle an ambiguous
	lookup result by discarding it if the first element is a
	class-scope declaration, otherwise return it.
	(push_operator_bindings): Handle an ambiguous lookup result by
	doing push_local_binding on each element in the list.

2021-02-11  Marek Polacek  <polacek@redhat.com>

	* parser.c (cp_parser_selection_statement): Use vec_free.

2021-02-10  Jakub Jelinek  <jakub@redhat.com>

	PR c++/98988
	PR c++/99031
	* constexpr.c: Include cgraph.h.
	(cxx_eval_call_expression): Call varpool_node::finalize_decl on
	heap artificial vars.
	(cxx_eval_outermost_constant_expr): Remove varpool nodes for
	heap artificial vars.

2021-02-10  Nathan Sidwell  <nathan@acm.org>

	PR c++/99030
	* pt.c (tsubst_copy) [VAR_DECL]: For a DECL_LOCAL_DECL_P T is the
	answer if there's no local specialization.

2021-02-09  Nathan Sidwell  <nathan@acm.org>

	PR c++/98944
	* module.cc (module_state::is_rooted): Rename to ...
	(module_state::has_location): ... here.  Adjust callers.
	(module_state::read_partitions): Adjust validity check.
	Don't overwrite a known location.

2021-02-09  Jason Merrill  <jason@redhat.com>

	PR c++/96905
	* pt.c (mark_decl_instantiated): Exit early if consteval.

2021-02-09  Jason Merrill  <jason@redhat.com>

	PR c++/98326
	PR c++/20408
	* cp-gimplify.c (simple_empty_class_p): Don't touch an invisiref
	parm.

2021-02-09  Jason Merrill  <jason@redhat.com>

	PR c++/98994
	PR c++/97566
	* constexpr.c (cxx_eval_store_expression): Only skip empty fields in
	RECORD_TYPE.

2021-02-08  Nathan Sidwell  <nathan@acm.org>

	* decl.c (start_cleanup_fn): Push function into
	namespace.

2021-02-08  Nathan Sidwell  <nathan@acm.org>

	PR c++/98531
	* cp-tree.h (push_abi_namespace, pop_abi_namespace): Declare.
	* decl.c (push_abi_namespace, pop_abi_namespace): Moved
	from rtti.c, add default namespace arg.
	(check_redeclaration_exception_specification): Allow a lazy
	builtin's eh spec to differ from an lready-declared user
	declaration.
	(declare_global_var): Use push/pop_abi_namespace.
	(get_atexit_node): Push the fndecl into a namespace.
	* rtti.c (push_abi_namespace, pop_abi_namespace): Moved to
	decl.c.

2021-02-08  Marek Polacek  <polacek@redhat.com>

	* cp-tree.h (CLASSTYPE_TI_TEMPLATE): Fix typo.

2021-02-05  Marek Polacek  <polacek@redhat.com>

	PR c++/98947
	* call.c (build_conditional_expr_1): Don't call mark_lvalue_use
	on arg2/arg3.
	* expr.c (mark_use) <case MODIFY_EXPR>: Don't check read_p when
	issuing the -Wvolatile warning.  Only set TREE_THIS_VOLATILE if
	a warning was emitted.

2021-02-05  Marek Polacek  <polacek@redhat.com>

	PR c++/96462
	* name-lookup.c (lookup_using_decl): Hoist the destructor check.

2021-02-05  Jakub Jelinek  <jakub@redhat.com>

	PR c++/97878
	* decl.c (check_array_initializer): For structured bindings, require
	the array type to be complete.

2021-02-04  Jason Merrill  <jason@redhat.com>

	PR c++/98717
	* constraint.cc (build_concept_check_arguments): Remove assert.
	(build_concept_check): Allow empty args.

2021-02-04  Tom Greenslade (thomgree)  <thomgree@cisco.com>

	PR c++/90926
	* call.c (can_convert_array): Extend to handle all valid aggregate
	initializers of an array; including by string literals, not just by
	brace-init-list.
	(build_aggr_conv): Call can_convert_array more often, not just in
	brace-init-list case.
	* typeck2.c (array_string_literal_compatible_p): New function.
	(digest_init_r): call array_string_literal_compatible_p
	* cp-tree.h: (array_string_literal_compatible_p): Declare.

2021-02-04  Jason Merrill  <jason@redhat.com>

	PR c++/98802
	* pt.c (do_class_deduction): No aggregate guide if any_dguides_p.

2021-02-04  Jason Merrill  <jason@redhat.com>

	PR c++/95192
	* pt.c (tsubst_attribute): Handle error.
	(apply_late_template_attributes): Return false on error.
	(tsubst_function_decl): Check its return value.
	(tsubst_decl): Likewise.
	(push_template_decl): Assert current_template_parms.
	(tsubst_template_decl): Set current_template_parms.

2021-02-03  Marek Polacek  <polacek@redhat.com>

	PR c++/98951
	* call.c (struct z_candidate): Mark rewritten and reversed as const.
	(struct NonPublicField): Mark operator() as const.
	(struct NonTrivialField): Likewise.

2021-02-03  Jason Merrill  <jason@redhat.com>

	PR c++/98926
	PR c++/98570
	* pt.c (spec_hasher::equal): Set processing_template_decl.
	* Make-lang.in (check-g++-strict-gc): Add --param
	hash-table-verification-limit=10000.

2021-02-03  Marek Polacek  <polacek@redhat.com>

	PR c++/98899
	* parser.c (cp_parser_class_specifier_1): Use any possible
	DEFPARSE_INSTANTIATIONS to update DEFERRED_NOEXCEPT_PATTERN.
	(cp_parser_save_noexcept): Initialize DEFPARSE_INSTANTIATIONS.
	* pt.c (tsubst_exception_specification): Stash new_specs into
	DEFPARSE_INSTANTIATIONS.
	* tree.c (fixup_deferred_exception_variants): Use
	UNPARSED_NOEXCEPT_SPEC_P.

2021-02-02  Jason Merrill  <jason@redhat.com>

	PR c++/98929
	PR c++/96199
	* error.c (dump_expr): Ignore dummy object.
	* pt.c (tsubst_baselink): Handle dependent scope.

2021-02-01  Patrick Palka  <ppalka@redhat.com>

	PR c++/98295
	* constexpr.c (cxx_eval_array_reference): Also set
	new_ctx.object when setting new_ctx.ctor.

2021-02-01  Marek Polacek  <polacek@redhat.com>

	PR c++/98355
	* parser.c (cp_parser_has_attribute_expression): Use
	uses_template_parms instead of type_dependent_expression_p.

2021-02-01  Jason Merrill  <jason@redhat.com>

	PR c++/98570
	* cp-tree.h: Declare it.
	* pt.c (comparing_dependent_aliases): New flag.
	(template_args_equal, spec_hasher::equal): Set it.
	(dependent_alias_template_spec_p): Assert that we don't
	get non-types other than error_mark_node.
	(instantiate_alias_template): SET_TYPE_STRUCTURAL_EQUALITY
	on complex alias specializations.  Set TYPE_DEPENDENT_P here.
	(tsubst_decl): Not here.
	* module.cc (module_state::read_cluster): Set
	comparing_dependent_aliases instead of
	comparing_specializations.
	* tree.c (cp_tree_equal): Remove comparing_specializations
	module handling.
	* typeck.c (structural_comptypes): Adjust.
	(comptypes): Remove comparing_specializations handling.

2021-01-29  Nathan Sidwell  <nathan@acm.org>

	PR c++/98843
	* module.cc (module_state_config): Add num_entities field.
	(module_state::read_entities): The entity_ary span is
	already allocated.
	(module_state::write_config): Write num_entities.
	(module_state::read_config): Read num_entities.
	(module_state::write): Set config's num_entities.
	(module_state::read_initial): Allocate the entity ary
	span here.
	(module_state::read_language): Do not set entity_lwm
	here.

2021-01-29  Marek Polacek  <polacek@redhat.com>

	PR c++/96137
	* parser.c (cp_parser_class_name): If parser->scope is
	error_mark_node, return it, otherwise continue.

2021-01-28  Jakub Jelinek  <jakub@redhat.com>

	PR c++/98841
	* typeck.c (build_x_indirect_ref): For *this, return current_class_ref.

2021-01-28  Jakub Jelinek  <jakub@redhat.com>

	PR c++/33661
	PR c++/98847
	* decl.c (cp_finish_decl): For register vars with asmspec in templates
	call set_user_assembler_name and set DECL_HARD_REGISTER.
	* pt.c (tsubst_expr): When instantiating DECL_HARD_REGISTER vars,
	pass asmspec_tree to cp_finish_decl.

2021-01-28  Nathan Sidwell  <nathan@acm.org>

	PR c++/98770
	* module.cc (trees_out::decl_value): Swap is_typedef & TYPE_NAME
	check order.
	(trees_in::decl_value): Do typedef frobbing only when installing
	a new typedef, adjust is_matching_decl call.  Swap is_typedef
	& TYPE_NAME check.
	(trees_in::is_matching_decl): Add is_typedef parm. Adjust variable
	names and deal with typedef checking.

2021-01-27  Jason Merrill  <jason@redhat.com>

	PR c++/97874
	* name-lookup.c (lookup_using_decl): Clean up handling
	of dependency and inherited constructors.
	(finish_nonmember_using_decl): Handle DECL_DEPENDENT_P.
	* pt.c (tsubst_expr): Handle DECL_DEPENDENT_P.

2021-01-26  Jason Merrill  <jason@redhat.com>

	PR c++/97474
	* call.c (type_passed_as): Don't mark invisiref restrict.

2021-01-26  Jason Merrill  <jason@redhat.com>

	PR c++/97566
	PR c++/98463
	* class.c (layout_class_type): An empty field gets size 0.
	(is_empty_field): New.
	(check_bases): Check it.
	* cp-tree.h (is_empty_field): Declare it.
	* constexpr.c (cxx_eval_store_expression): Check it.
	(cx_check_missing_mem_inits): Likewise.
	* init.c (perform_member_init): Likewise.
	* typeck2.c (process_init_constructor_record): Likewise.

2021-01-25  Martin Sebor  <msebor@redhat.com>

	PR c++/98646
	* cvt.c (cp_fold_convert): Propagate TREE_NO_WARNING.

2021-01-25  Jason Merrill  <jason@redhat.com>

	PR c++/98463
	* constexpr.c (get_or_insert_ctor_field): Add check.
	(cxx_eval_store_expression): Handle discontinuity of refs.

2021-01-23  Anthony Sharp  <anthonysharp15@gmail.com>

	* call.c (complain_about_access): Altered function.
	* cp-tree.h (complain_about_access): Changed parameters of function.
	(get_parent_with_private_access): Declared new function.
	* search.c (get_parent_with_private_access): Defined new function.
	* semantics.c (enforce_access): Modified function.
	* typeck.c (complain_about_unrecognized_member): Updated function
	arguments in complain_about_access.

2021-01-23  Patrick Palka  <ppalka@redhat.com>

	PR c++/97399
	* cp-tree.h (shared_member_p): Adjust declaration.
	* parser.c (cp_parser_init_declarator): If the storage class
	specifier is sc_static, pass true for static_p to
	cp_parser_declarator.
	(cp_parser_direct_declarator): Don't do inject_this_parm when
	the declarator is a friend.
	* search.c (shared_member_p): Change return type to bool and
	adjust function body accordingly.  Return false for a dependent
	USING_DECL instead of aborting.
	* semantics.c (finish_qualified_id_expr): Rely on shared_member_p
	even when type-dependent.

2021-01-22  Marek Polacek  <polacek@redhat.com>

	PR c++/96623
	* parser.c (inject_parm_decls): Remove a redundant assignment.
	(cp_parser_class_specifier_1): Clear current_class_{ptr,ref}
	before calling inject_parm_decls.

2021-01-22  Jason Merrill  <jason@redhat.com>

	PR c++/98744
	* call.c (make_base_init_ok): Use DECL_HAS_VTT_PARM_P.

2021-01-22  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/95693
	* init.c (build_zero_init_1): Revert the 2018-03-06 change to
	return build_zero_cst for reference types.
	* typeck2.c (process_init_constructor_record): Instead call
	build_zero_cst here during error recovery instead of build_zero_init.

2021-01-22  Marek Polacek  <polacek@redhat.com>

	PR c++/98545
	* mangle.c (write_member_name): Emit abi_warn_or_compat_version_crosses
	warnings regardless of abi_version_at_least.
	(write_expression): When the expression is a dependent name
	and an operator name, write "on" before writing its name.

2021-01-22  Marek Polacek  <polacek@redhat.com>

	PR c++/97966
	* pt.c (instantiate_class_template_1): Instantiate members
	marked with attribute used only after we're done instantiating
	the class.

2021-01-21  Patrick Palka  <ppalka@redhat.com>

	PR c++/71879
	* semantics.c (finish_decltype_type): Set up a cp_unevaluated
	sentinel at the start of the function.  Remove a now-redundant
	manual adjustment of cp_unevaluated_operand.

2021-01-21  Nathan Sidwell  <nathan@acm.org>

	PR c++/98624
	* module.cc (depset::hash::find_dependencies): Add
	module arg.
	(trees_out::core_vals): Check state before calling
	write_location.
	(sort_cluster, module_state::write): Adjust
	find_dependencies call.

2021-01-21  Jakub Jelinek  <jakub@redhat.com>

	PR c++/98672
	* constexpr.c (check_for_return_continue_data): Add break_stmt member.
	(check_for_return_continue): Also look for BREAK_STMT.  Handle
	SWITCH_STMT by ignoring break_stmt from its body.
	(potential_constant_expression_1) <case FOR_STMT>,
	<case WHILE_STMT>: If the condition isn't constant true, check if
	the loop body can contain a return stmt.
	<case SWITCH_STMT>: Adjust check_for_return_continue_data initializer.
	<case IF_STMT>: If recursion with tf_none is successful,
	merge *jump_target from the branches - returns with highest priority,
	breaks or continues lower.  If then branch is potentially constant and
	doesn't return, check the else branch if it could return, break or
	continue.

2021-01-21  Nathan Sidwell  <nathan@acm.org>

	PR c++/98530
	* name-lookup.c (lookup_class_binding): Rearrange a stat-hack.

2021-01-20  Nathan Sidwell  <nathan@acm.org>

	* module.cc (bytes_in::i, bytes_in::wi): Avoid left shift of
	signed type.

2021-01-20  Patrick Palka  <ppalka@redhat.com>

	PR c++/95434
	* pt.c (tsubst) <case TEMPLATE_TYPE_PARM>: If tsubsting
	CLASS_PLACEHOLDER_TEMPLATE yields a TEMPLATE_TEMPLATE_PARM,
	adjust to its TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL.

2021-01-20  Patrick Palka  <ppalka@redhat.com>

	PR c++/82613
	* parser.c (cp_parser_class_head): Defer access checking when
	parsing the base-clause until all bases are seen and attached
	to the class type.
	* pt.c (instantiate_class_template): Likewise when substituting
	into dependent bases.

2021-01-20  Jakub Jelinek  <jakub@redhat.com>

	PR c++/98742
	* semantics.c (finish_omp_clauses) <case OMP_CLAUSE_DETACH>: If
	error_operand_p, remove clause without further checking.  Check
	for non-NULL TYPE_NAME.

2021-01-19  Marek Polacek  <polacek@redhat.com>

	PR c++/98659
	* pt.c (maybe_instantiate_noexcept): Return false if FN is
	error_mark_node.

2021-01-19  Marek Polacek  <polacek@redhat.com>

	PR c++/98687
	* name-lookup.c (push_using_decl_bindings): New, broken out of...
	(finish_nonmember_using_decl): ...here.
	* name-lookup.h (push_using_decl_bindings): Update declaration.
	* pt.c (tsubst_expr): Update the call to push_using_decl_bindings.

2021-01-19  Patrick Palka  <ppalka@redhat.com>

	PR c++/41437
	PR c++/58993
	* search.c (friend_accessible_p): If scope is a hidden friend
	defined inside a dependent class, consider access from the
	class.
	* parser.c (cp_parser_late_parsing_for_member): Don't push a
	dk_no_check access state.

2021-01-19  Marek Polacek  <polacek@redhat.com>

	PR c++/98333
	* parser.c (cp_parser_class_specifier_1): Perform late-parsing
	of NSDMIs before late-parsing of noexcept-specifiers.

2021-01-19  Nathan Sidwell  <nathan@acm.org>

	* module.cc (identifier): Merge overloads.

2021-01-19  Nathan Sidwell  <nathan@acm.org>

	PR c++/98624
	* module.cc (trees_out::write_location): Make static.

2021-01-16  Kwok Cheung Yeung  <kcy@codesourcery.com>

	* parser.c (cp_parser_omp_clause_detach): New.
	(cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_DETACH.
	(OMP_TASK_CLAUSE_MASK): Add mask for PRAGMA_OMP_CLAUSE_DETACH.
	* pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
	* semantics.c (finish_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
	Prevent use of detach with mergeable and overriding the	data sharing
	mode of the event handle.

2021-01-15  Nathan Sidwell  <nathan@acm.org>

	PR c++/98538
	* tree.c (cp_build_qualified_type_real): Propagate an array's
	dependentness to the copy, if known.

2021-01-15  Jason Merrill  <jason@redhat.com>

	PR c++/98642
	* call.c (unsafe_return_slot_p): Return int.
	(init_by_return_slot_p): Split out from...
	(unsafe_copy_elision_p): ...here.
	(unsafe_copy_elision_p_opt): New name for old meaning.
	(build_over_call): Adjust.
	(make_safe_copy_elision): New.
	* typeck2.c (split_nonconstant_init_1): Elide copy from safe
	list-initialization.
	* cp-tree.h: Adjust.

2021-01-15  Jason Merrill  <jason@redhat.com>

	* call.c (base_ctor_for, make_base_init_ok): New.
	(build_over_call): Use make_base_init_ok.

2021-01-15  Jason Merrill  <jason@redhat.com>

	PR c++/63707
	* tree.c (build_vec_init_expr): Don't call build_vec_init_elt
	if we got a CONSTRUCTOR.

2021-01-15  Nathan Sidwell  <nathan@acm.org>

	PR c++/98591
	* lang-specs.h: Fix handling of -fmodule-only with -fsyntax-only.

2021-01-14  Jason Merrill  <jason@redhat.com>

	* typeck2.c (process_init_constructor_record): Use fldtype
	variable consistently.

2021-01-14  Nathan Sidwell  <nathan@acm.org>

	PR c++/98372
	* tree.c (cp_tree_equal): Correct map_context logic.

2021-01-13  Marek Polacek  <polacek@redhat.com>

	PR c++/98231
	* name-lookup.c (push_using_decl_bindings): New.
	* name-lookup.h (push_using_decl_bindings): Declare.
	* pt.c (tsubst_expr): Call push_using_decl_bindings.

2021-01-13  Nathan Sidwell  <nathan@acm.org>

	PR c++/98626
	* module.cc (module_add_import_initializers):  Pass a
	zero-element argument vector.

2021-01-12  Patrick Palka  <ppalka@redhat.com>

	PR c++/98611
	* tree.c (cp_walk_subtrees) <case TEMPLATE_TYPE_PARM>: Visit
	the template of a CTAD placeholder.

2021-01-12  Marek Polacek  <polacek@redhat.com>

	PR c++/98620
	* typeck2.c (process_init_constructor_record): Don't emit
	-Wmissing-field-initializers warnings in unevaluated contexts.

2021-01-11  Jakub Jelinek  <jakub@redhat.com>

	PR c++/98481
	* class.c (find_abi_tags_r): Set *walk_subtrees to 2 instead of 1
	for types.
	(mark_abi_tags_r): Likewise.
	* decl2.c (min_vis_r): Likewise.
	* tree.c (cp_walk_subtrees): If *walk_subtrees_p is 2, look through
	typedefs.

2021-01-08  Patrick Palka  <ppalka@redhat.com>

	PR c++/98551
	* constexpr.c (cxx_eval_call_expression): Check CLASS_TYPE_P
	instead of AGGREGATE_TYPE_P before calling replace_result_decl.

2021-01-08  Patrick Palka  <ppalka@redhat.com>

	PR c++/98515
	* semantics.c (check_accessibility_of_qualified_id): Punt if
	we're checking access of a scoped non-static member inside a
	class template.

2021-01-07  Jakub Jelinek  <jakub@redhat.com>

	PR c++/98329
	* pt.c (tsubst_copy) <case BIT_CAST_EXPR>: Don't call
	cp_build_bit_cast here, instead just build_min a BIT_CAST_EXPR and set
	its location.
	(tsubst_copy_and_build): Handle BIT_CAST_EXPR.

2021-01-07  Marek Polacek  <polacek@redhat.com>

	PR c++/98441
	* decl.c (grokdeclarator): Move the !funcdecl_p check inside the
	!late_return_type block.

2021-01-07  Jason Merrill  <jason@redhat.com>

	* constexpr.c (cxx_bind_parameters_in_call): Add comment.
	(cxx_eval_store_expression): Add comment.

2021-01-07  Jason Merrill  <jason@redhat.com>

	* call.c (has_next): Factor out from...
	(next_conversion): ...here.
	(strip_standard_conversion): And here.
	(is_subseq): And here.
	(build_conv): Check it.
	(standard_conversion): Don't call build_conv
	for ck_identity.

2021-01-06  Martin Sebor  <msebor@redhat.com>

	PR c++/95768
	* error.c (dump_expr): Call c_pretty_printer::unary_expression.

2021-01-05  Patrick Palka  <ppalka@redhat.com>

	* pt.c (unify) <case TEMPLATE_PARM_INDEX>: After walking into
	the type of the NTTP, substitute into the type again.  If the
	type is still dependent, don't unify the NTTP.

2021-01-05  Jakub Jelinek  <jakub@redhat.com>

	* Make-lang.in (cc1plus-checksum, cc1plus$(exeext): Add
	$(CODYLIB) after $(BACKEND).

2021-01-05  Jakub Jelinek  <jakub@redhat.com>

	PR c++/98469
	* constexpr.c (cxx_eval_constant_expression) <case BIT_CAST_EXPR>:
	Punt if lval is true.
	* semantics.c (cp_build_bit_cast): Call get_target_expr_sfinae on
	the result if it has a class type.

2021-01-05  Marek Polacek  <polacek@redhat.com>

	PR c++/82099
	* pt.c (resolve_overloaded_unification): Call
	maybe_instantiate_noexcept after instantiating the function
	decl.

2021-01-05  Nathan Sidwell  <nathan@acm.org>

	* parser.c (cp_parser_module_declaration): Alter diagnostic
	text to say where is permissable.

2021-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR c++/98316
	* Make-lang.in (cc1plus$(exeext)): Add $(CODYLIB), $(NETLIBS).

2021-01-02  Jan Hubicka  <jh@suse.cz>

	* cp-tree.h (cp_tree_c_finish_parsing): Declare.
	* decl2.c (c_parse_final_cleanups): Call cp_tree_c_finish_parsing.
	* tree.c (cp_tree_c_finish_parsing): New function.

2021-01-01  Jakub Jelinek  <jakub@redhat.com>

	* ChangeLog-2020: Rotate ChangeLog.  New file.


Copyright (C) 2021 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
