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

	PR c++/102617
	* parser.c (cp_parser_for): Maybe call cp_parser_init_statement
	twice.  Warn about range-based for loops with initializer here.
	(cp_parser_init_statement): Don't duplicate code.  Allow
	alias-declaration in init-statement.

2021-10-22  Eric Gallager  <egallager@gcc.gnu.org>

	PR other/102663
	* Make-lang.in: Add dummy c++.install-dvi target.

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

	* parser.c (cp_parser_parse_and_diagnose_invalid_type_name):
	Pass true for declarator_p.
	(cp_parser_nested_name_specifier_opt): Only look through
	TYPENAME_TYPE if check_dependency_p is false.

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

	PR c++/102642
	* name-lookup.c (push_local_extern_decl_alias): Don't call
	set_decl_tls_model on error_mark_node.
	* decl.c (make_rtl_for_nonlocal_decl): Don't call
	set_user_assembler_name on error_mark_node.
	* parser.c (cp_parser_oacc_declare): Ignore DECL_LOCAL_DECL_ALIAS
	if it is error_mark_node.
	(cp_parser_omp_declare_target): Likewise.

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

	PR c++/102786
	* constexpr.c (cxx_eval_constant_expression): Don't reject
	INTEGER_CSTs with type POINTER_TYPE to METHOD_TYPE.

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

	PR c++/51851
	PR c++/101402
	PR c++/102033
	PR c++/102034
	PR c++/102039
	PR c++/102044
	* pt.c (determine_specialization): Remove redundant code.
	(fn_type_unification): Check for mismatched length.
	(type_unification_real): Ignore terminal void.
	(get_bindings): Don't stop at void_list_node.
	* class.c (resolve_address_of_overloaded_function): Likewise.

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

	* constexpr.c (cxx_bind_parameters_in_call): Replace
	new_call parameter with fun.
	(cxx_eval_call_expression): Call it before instantiation.
	(cxx_eval_outermost_constant_expr): Only instantiate fns
	when manifestly_const_eval.
	* typeck2.c (check_narrowing): This context is manifestly
	constant-evaluated.

2021-10-14  Kwok Cheung Yeung  <kcy@codesourcery.com>

	* decl.c (omp_declare_variant_finalize_one): Change call from
	c_omp_mark_declare_variant to omp_mark_declare_variant.
	* parser.c (cp_finish_omp_declare_variant): Change call from
	c_omp_check_context_selector to omp_check_context_selector.

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

	* parser.c (cp_parser_omp_structured_block): Remove disallow_omp_attrs
	argument.
	(cp_parser_omp_structured_block_sequence): New function.
	(cp_parser_omp_scan_loop_body): Use it.
	(cp_parser_omp_sections_scope): Likewise.

2021-10-08  Martin Liska  <mliska@suse.cz>

	* constexpr.c (maybe_warn_about_constant_value): Use new macro
	OPTION_SET_P.
	* decl.c (redeclaration_error_message): Likewise.
	(cxx_init_decl_processing): Likewise.

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

	PR c++/102640
	* parser.c (handle_omp_declare_target_clause): New function.
	(cp_parser_omp_declare_target): Use it.

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

	PR c++/61355
	* pt.c (convert_template_argument): Perform array/function to
	pointer conversion on the substituted type of an NTTP.

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

	PR c++/99904
	* pt.c (is_compatible_template_arg): Set processing_template_decl
	around tsubst_constraint_info.

2021-10-07  Jonathan Wakely  <jwakely@redhat.com>

	PR c++/102482
	* init.c (maybe_warn_list_ctor): Do not warn for a reference to
	a non-const std::initializer_list.

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

	PR c++/102612
	* parser.c (cp_parser_jump_statement): Implement C++23 P2242R3.
	Allow goto expressions in constexpr function bodies for C++23.
	Adjust error message for older standards to mention it.
	* decl.c (start_decl): Allow static and thread_local declarations
	in constexpr function bodies for C++23.  Adjust error message for
	older standards to mention it.
	* constexpr.c (ensure_literal_type_for_constexpr_object): Allow
	declarations of variables with non-literal type in constexpr function
	bodies for C++23.  Adjust error message for older standards to mention
	it.
	(cxx_eval_constant_expression) <case DECL_EXPR>: Diagnose declarations
	of initialization of static or thread_local vars.
	(cxx_eval_constant_expression) <case GOTO_EXPR>: Diagnose goto
	statements for C++23.
	(potential_constant_expression_1) <case DECL_EXPR>: Swap the
	CP_DECL_THREAD_LOCAL_P and TREE_STATIC checks.
	(potential_constant_expression_1) <case LABEL_EXPR>: Allow labels for
	C++23.  Adjust error message for older standards to mention it.

2021-10-06  Jakub Jelinek  <jakub@redhat.com>
	    Jason Merrill  <jason@redhat.com>

	PR c++/98712
	PR c++/102490
	* cp-tree.h (maybe_synthesize_method): Declare.
	* method.c (genericize_spaceship): Use
	LOOKUP_NORMAL | LOOKUP_NONVIRTUAL | LOOKUP_DEFAULTED instead of
	LOOKUP_NORMAL for flags.
	(comp_info): Remove defining member.  Add complain, code, retcat.
	(comp_info::comp_info): Adjust.
	(do_one_comp): Split out from build_comparison_op.   Use
	LOOKUP_NORMAL | LOOKUP_NONVIRTUAL | LOOKUP_DEFAULTED instead of
	LOOKUP_NORMAL for flags.
	(build_comparison_op): Add defining argument. Adjust comp_info
	construction.  Use defining instead of info.defining.  Assert that
	if defining, ctype is a complete type.  Walk base binfos.
	(synthesize_method, maybe_explain_implicit_delete,
	explain_implicit_non_constexpr): Adjust build_comparison_op callers.
	(maybe_synthesize_method): New function.
	* class.c (check_bases_and_members): Don't call defaulted_late_check
	for sfk_comparison.
	(finish_struct_1): Call it here instead after class has been
	completed.
	* pt.c (maybe_instantiate_noexcept): Call maybe_synthesize_method
	instead of synthesize_method.

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

	PR c++/102548
	* tree.c (apply_identity_attributes): Fix handling of the
	case where an attribute in the list doesn't affect type
	identity but some attribute before it does.

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

	PR c++/102547
	* constexpr.c (potential_constant_expression_1): Handle
	NONTYPE_ARGUMENT_PACK.

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

	PR c++/98930
	* pt.c (has_value_dependent_address): Return true for a static
	local variable from a function template.

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

	PR c++/97573
	* typeck.c (cp_build_binary_op): Call do_warn_array_compare.

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

	PR c++/101765
	* coroutines.cc (register_local_var_uses): Emit a sorry if
	we encounter a VLA in the coroutine local variables.

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

	PR c++/99710
	* coroutines.cc (await_statement_walker): Report an error if
	an await expression is found in a handler body.

2021-10-03  John Eivind Helset  <jehelset@gmail.com>

	PR c++/100673
	* coroutines.cc (build_co_await): Guard against NULL
	await_suspend types.

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

	PR c++/101133
	* coroutines.cc (build_co_await): Mark co_await_expr trees
	with TREE_SIDE_EFFECTS, also mark any containing expression.
	(finish_co_await_expr): Mark type-dependent co_await_expr
	trees with TREE_SIDE_EFFECTS.

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

	PR c++/99575
	* coroutines.cc (build_co_await): Strip NOPs from
	candidate awaiter expressions before testing to see
	if they need a temporary.

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

	PR c/102103
	* typeck.c (warn_for_null_address): Enhance.
	(cp_build_binary_op): Call it also for member pointers.

2021-10-01  qingzhe huang  <nickhuang99@hotmail.com>

	PR c++/101783
	* tree.c (cp_build_qualified_type_real): Exclude typedef from
	error.

2021-10-01  Jakub Jelinek  <jakub@redhat.com>
	    Richard Biener  <rguenther@suse.de>

	PR sanitizer/102515
	* typeck.c (cp_build_binary_op): Call ubsan_instrument_division
	for division even for SANITIZE_SI_OVERFLOW.

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

	* parser.c (cp_parser_omp_clause_order): Set
	OMP_CLAUSE_ORDER_REPRODUCIBLE for explicit reproducible: modifier.

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

	PR c++/102496
	* name-lookup.c (push_local_extern_decl_alias): Return early even for
	tls vars with non-dependent type when processing_template_decl.  For
	CP_DECL_THREAD_LOCAL_P vars call set_decl_tls_model on alias.

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

	PR c++/102535
	* method.c (is_xible_helper): Don't exit early for multi-arg
	ctors in C++20.

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

	* parser.c (cp_parser_trait_expr): Call nreverse on the reversed
	list of trailing arguments.

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

	PR c++/95567
	* method.c (build_comparison_op): Skip DECL_VIRTUAL_P fields.

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

	PR c++/99909
	* pt.c (coerce_template_template_parms): Keep
	processing_template_decl set around the call to unify as well.

2021-09-28  Iain Sandoe  <iain@sandoe.co.uk>

	PR c++/102454
	* coroutines.cc (analyze_fn_parms): Clean up synthetic names for
	unnamed function params.
	(morph_fn_to_coro): Do not try to set a guard variable for param
	DTORs in the ramp, unless we have exceptions active.

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

	PR c++/102479
	* pt.c (rewrite_template_parm): Handle single-level tsubst_args.
	Avoid a tree cycle when assigning the DECL_TEMPLATE_PARMS for a
	rewritten ttp.
	(alias_ctad_tweaks): Set current_template_parms accordingly.

2021-09-23  Michel Morin  <mimomorin@gmail.com>

	* parser.c (cp_keyword_starts_decl_specifier_p): Do not
	handle RID_ATTRIBUTE.
	(cp_parser_constructor_declarator_p): Remove now-redundant
	checks.
	(cp_parser_lambda_declarator_opt): Likewise.

2021-09-23  Michel Morin  <mimomorin@gmail.com>

	PR c++/77565
	* parser.c (cp_keyword_starts_decl_specifier_p): Handle more
	decl-specifiers (typedef/inline/cv/explicit/virtual/friend).

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

	* ptree.c (cxx_print_decl): Dump the DECL_TEMPLATE_RESULT of
	a TEMPLATE_DECL.  Dump the DECL_TEMPLATE_INFO rather than just
	printing its pointer value.

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

	PR c++/102413
	* parser.c (cp_parser_omp_directive_args): Diagnose if omp::directive
	is not followed by a balanced token sequence starting with open paren.

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

	DR 2446
	PR c++/102412
	* constexpr.c (cxx_eval_constant_expression)
	<case TEMPLATE_ID_EXPR>: Check value_dependent_expression_p
	instead of processing_template_decl.
	* pt.c (value_dependent_expression_p) <case TEMPLATE_ID_EXPR>:
	Return true only if any_dependent_template_arguments_p.
	(instantiation_dependent_r) <case CALL_EXPR>: Remove this case.
	<case TEMPLATE_ID_EXPR>: Likewise.

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

	* parser.c (cp_parser_omp_clause_allocate): Parse allocate clause
	modifiers.
	* semantics.c (finish_omp_clauses) <OMP_CLAUSE_ALLOCATE>: Perform
	semantic analysis of OMP_CLAUSE_ALLOCATE_ALIGN.
	* pt.c (tsubst_omp_clauses) <case OMP_CLAUSE_ALLOCATE>: Handle
	also OMP_CLAUSE_ALLOCATE_ALIGN.

2021-09-22  Barrett Adair  <barrettellisadair@gmail.com>

	* pt.c (find_parm_usage_r): New walk_tree callback to find func
	parms.
	(any_template_arguments_need_structural_equality_p): New special
	case.

2021-09-21  wangpc  <pc.wang@linux.alibaba.com>

	* decl.c (start_decl_1): Move verify_type_context to ...
	(cp_finish_decl): ... to here.

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

	* parser.c (cp_parser_omp_clause_order): Parse unconstrained
	and reproducible modifiers.
	(OMP_DISTRIBUTE_CLAUSE_MASK): Add order clause.

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

	* parser.c (cp_parser_omp_clause_default): Handle private and
	firstprivate arguments, adjust diagnostics on unknown argument.
	* cp-gimplify.c (cxx_omp_finish_clause): Handle OMP_CLAUSE_PRIVATE.

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

	* cp-tree.h (dependentish_scope_p): Declare.
	* pt.c (dependentish_scope_p): New.
	* parser.c (cp_parser_lookup_name): Return a TYPENAME_TYPE
	for lookup of a type in a dependent object.
	(cp_parser_template_id): Handle TYPENAME_TYPE.
	(cp_parser_template_name): If we're looking for a type,
	a name followed by < names a template.

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

	* cp-tree.h: Fix typo in LANG_FLAG list.

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

	* cp-tree.h (finish_omp_atomic): Add r and weak arguments.
	* parser.c (cp_parser_omp_atomic): Update function comment for
	OpenMP 5.1 atomics, parse OpenMP 5.1 atomics and fail, compare and
	weak clauses.
	* semantics.c (finish_omp_atomic): Add r and weak arguments, handle
	them, handle COND_EXPRs.
	* pt.c (tsubst_expr): Adjust for COND_EXPR forms that
	finish_omp_atomic can now produce.

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

	PR c++/98486
	* constraint.cc (get_normalized_constraints_from_decl): Always
	look up constraints using the most general template.
	* decl.c (grokdeclarator): Set constraints on a static data
	member template.
	* pt.c (determine_specialization): Check constraints on a
	variable template.

2021-09-16  Iain Sandoe  <iain@sandoe.co.uk>

	* coroutines.cc (await_statement_walker): Code cleanups.

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

	* constexpr.c (cxx_eval_outermost_constant_expr): Use
	protected_set_expr_location.

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

	PR c++/101904
	* call.c (build_user_type_conversion_1): Add tf_conv to complain.
	(add_candidates): When in a SFINAE context, instead of adding a
	candidate to bad_fns just mark it unviable.

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

	* cp-tree.h (parsing_function_declarator): Declare.
	* name-lookup.c (set_decl_context_in_fn): Use it.
	* parser.c (cp_parser_direct_declarator): Use it.
	(parsing_function_declarator): New.

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

	PR c++/88578
	PR c++/102295
	* typeck2.c (split_nonconstant_init_1): Don't throw away empty
	initializers of flexible array members if they have non-zero type
	size.

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

	PR c++/102050
	* decl.c (grok_special_member_properties): Set
	TYPE_HAS_COPY_CTOR, TYPE_HAS_DEFAULT_CONSTRUCTOR
	and TYPE_HAS_LIST_CTOR independently from each other.

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

	* decl.c (cxx_init_decl_processing): Only warn about odd
	interference sizes if they were specified with --param.

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

	PR c++/48396
	* cp-tree.h (enum cp_tree_index): Remove CPTI_TYPE_INFO_PTR_TYPE.
	(type_info_ptr_type): Remove.
	* rtti.c (init_rtti_processing): Don't predeclare std::type_info.
	(typeid_ok_p): Check for null const_type_info_type_node.
	(type_info_ptr_type, get_void_tinfo_ptr): New fns.
	(get_tinfo_decl_dynamic, get_tinfo_ptr): Use them.
	(ptr_initializer, ptm_initializer, get_pseudo_ti_init): Use them.
	(get_tinfo_desc): Use const_ptr_type_node.

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

	* parser.c (cp_parser_template_name): Move object type.
	(cp_parser_pre_parsed_nested_name_specifier): Likewise.

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

	* parser.c (cp_parser_unqualified_id): Only complain about ~A<T> in
	a declarator.

2021-09-14  Iain Sandoe  <iain@sandoe.co.uk>

	* coroutines.cc (struct param_info): Add copy_var.
	(build_actor_fn): Use simplified param references.
	(register_param_uses): Likewise.
	(rewrite_param_uses): Likewise.
	(analyze_fn_parms): New function.
	(coro_rewrite_function_body): Add proxies for the fn
	parameters to the outer bind scope of the rewritten code.
	(morph_fn_to_coro): Use simplified version of param ref.

2021-09-14  Iain Sandoe  <iain@sandoe.co.uk>

	* coroutines.cc (coro_resume_fn_id, coro_destroy_fn_id,
	coro_promise_id, coro_frame_needs_free_id, coro_resume_index_id,
	coro_self_handle_id, coro_actor_continue_id,
	coro_frame_i_a_r_c_id): New.
	(coro_init_identifiers): Initialize new name identifiers.
	(coro_promise_type_found_p): Use pre-built identifiers.
	(struct await_xform_data): Remove unused fields.
	(transform_await_expr): Delete code that is now unused.
	(build_actor_fn): Simplify interface, use pre-built identifiers and
	remove transforms that are no longer needed.
	(build_destroy_fn): Use revised field names.
	(register_local_var_uses): Use pre-built identifiers.
	(coro_rewrite_function_body): Simplify interface, use pre-built
	identifiers.  Generate proxy vars in the outer bind expr scope for the
	implementation state that we wish to expose.
	(morph_fn_to_coro): Adjust comments for new variable names, use pre-
	built identifiers.  Remove unused code to generate frame entries for
	the implementation state.  Adjust call for build_actor_fn.

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

	PR c++/102163
	* constexpr.c (cxx_eval_call_expression): After evaluating a
	subobject constructor call for an empty union member, produce a
	side effect that makes sure the member gets activated.

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

	PR c++/102295
	* decl.c (layout_var_decl): For aggregates ending with a flexible
	array member, add the size of the initializer for that member to
	DECL_SIZE and DECL_SIZE_UNIT.

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

	PR c++/102305
	* method.c (is_xible_helper): Call complete_type on to.

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

	* decl.c (cxx_init_decl_processing): Don't warn if L1 cache line
	size is smaller than maxalign.

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

	* constexpr.c (maybe_warn_about_constant_value):
	Complain about std::hardware_destructive_interference_size.
	(cxx_eval_constant_expression): Call it.
	* decl.c (cxx_init_decl_processing): Check
	--param *-interference-size values.

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

	PR c++/101764
	* cp-tree.h (PACK_EXPANSION_FORCE_EXTRA_ARGS_P): New accessor
	macro.
	* pt.c (has_extra_args_mechanism_p): New function.
	(find_parameter_pack_data::found_extra_args_tree_p): New data
	member.
	(find_parameter_packs_r): Set ppd->found_extra_args_tree_p
	appropriately.
	(make_pack_expansion): Set PACK_EXPANSION_FORCE_EXTRA_ARGS_P if
	ppd.found_extra_args_tree_p.
	(use_pack_expansion_extra_args_p): Return true if there were
	unsubstituted packs and PACK_EXPANSION_FORCE_EXTRA_ARGS_P.
	(tsubst_pack_expansion): Pass the pack expansion to
	use_pack_expansion_extra_args_p.

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

	* parser.c (cp_parser_omp_atomic): Allow acq_rel on atomic read/write
	and acq_rel/acquire clauses on update.
	* semantics.c (finish_omp_atomic): Adjust c_finish_omp_atomic caller.

2021-09-08  Richard Biener  <rguenther@suse.de>

	PR c++/102228
	* cp-tree.h (ANON_AGGR_TYPE_FIELD): New define.
	* decl.c (fixup_anonymous_aggr): Wipe RTTI info put in
	place on invalid code.
	* decl2.c (reset_type_linkage): Guard CLASSTYPE_TYPEINFO_VAR
	access.
	* module.cc (trees_in::read_class_def): Likewise.  Reconstruct
	ANON_AGGR_TYPE_FIELD.
	* semantics.c (finish_member_declaration): Populate
	ANON_AGGR_TYPE_FIELD for anon aggregate typed members.
	* typeck.c (lookup_anon_field): Remove DFS search and return
	ANON_AGGR_TYPE_FIELD directly.

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

	PR c++/100495
	* constexpr.c (maybe_save_constexpr_fundef): Save body even for
	constexpr deleting dtors.
	(cxx_eval_call_expression): Don't use DECL_CLONED_FUNCTION for
	deleting dtors.

2021-09-07  Marcel Vollweiler  <marcel@codesourcery.com>

	* parser.c (cp_parser_omp_flush): Parse 'seq_cst' clause on 'flush'
	directive.
	* semantics.c (finish_omp_flush): Handle MEMMODEL_SEQ_CST.

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

	* coroutines.cc (register_local_var_uses): Do not mangle
	frame entries for the outermost scope.  Record the outer
	scope as nesting depth 0.

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

	* coroutines.cc (coro_build_artificial_var): New.
	(build_actor_fn): Use var builder, rename vars to use
	implementation namespace.
	(coro_rewrite_function_body): Likewise.
	(morph_fn_to_coro): Likewise.

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

	* coroutines.cc (transform_local_var_uses): Record
	frame offset expressions as DECL_VALUE_EXPRs instead of
	rewriting them.

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

	PR c++/101904
	* call.c (build_this_conversion): New function, split out from
	add_function_candidate.
	(add_function_candidate): New parameter shortcut_bad_convs.
	Document it.  Use build_this_conversion.  Stop at the first bad
	argument conversion when shortcut_bad_convs is true.
	(add_template_candidate_real): New parameter shortcut_bad_convs.
	Use build_this_conversion to check the 'this' conversion before
	attempting deduction.  When the rejection reason code is
	rr_bad_arg_conversion, pass -1 instead of 0 as the viable
	parameter to add_candidate.  Pass 'convs' to add_candidate.
	(add_template_candidate): New parameter shortcut_bad_convs.
	(add_template_conv_candidate): Pass false as shortcut_bad_convs
	to add_template_candidate_real.
	(add_candidates): Prefer to shortcut bad conversions during
	overload resolution under the assumption that we'll eventually
	see a strictly viable candidate.  If this assumption turns out
	to be false, re-process the non-strictly viable candidates
	without shortcutting those bad conversions.

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

	* pt.c (limit_bad_template_recursion): Suppress -Wunused for decls
	we decide not to instantiate.

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

	PR target/102024
	* class.c (build_base_field): Use SET_DECL_FIELD_ABI_IGNORED
	instead of writing to DECL_FIELD_ABI_IGNORED.
	(layout_class_type): Likewise.  In the place where zero-width
	bitfields used to be removed, use
	SET_DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD on those fields instead.

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

	* call.c (build_over_call): Handle unavailable state in addition to
	deprecation.
	* class.c (type_build_ctor_call): Likewise.
	(type_build_dtor_call): Likewise.
	* cp-tree.h: Rename cp_warn_deprecated_use to
	cp_handle_deprecated_or_unavailable.
	* decl.c (duplicate_decls): Merge unavailability.
	(grokdeclarator): Handle unavailability in addition to deprecation.
	(type_is_unavailable): New.
	(grokparms): Handle unavailability in addition to deprecation.
	* decl.h (enum deprecated_states): Add
	UNAVAILABLE_DEPRECATED_SUPPRESS.
	* decl2.c (cplus_decl_attributes): Propagate unavailability to
	templates.
	(cp_warn_deprecated_use): Rename to ...
	(cp_handle_deprecated_or_unavailable): ... this and amend to handle
	the unavailable case. It remains a warning in the case of deprecation
	but becomes an error in the case of unavailability.
	(cp_warn_deprecated_use_scopes): Handle unavailability.
	(mark_used): Likewise.
	* parser.c (cp_parser_template_name): Likewise.
	(cp_parser_template_argument): Likewise.
	(cp_parser_parameter_declaration_list): Likewise.
	* typeck.c (build_class_member_access_expr): Likewise.
	(finish_class_member_access_expr): Likewise.
	* typeck2.c (build_functional_cast_1): Likewise.

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

	* coroutines.cc (build_actor_fn): Add begin/finish clauses
	to the initial test in the actor function.

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

	* coroutines.cc (await_statement_walker): Use build_stmt and
	add_stmt instead of build1 and finish_expr_stmt.

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

	* coroutines.cc (flatten_await_stmt): Fix copyo.
	* decl.c (reshape_init_class): Simplify.
	* module.cc (module_state::read_language): Add null check.
	* parser.c (build_range_temp): Avoid type_uses_auto.
	(cp_parser_class_specifier_1): Add null check.

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

	PR c++/12672
	* call.c (rejection_reason::call_varargs_p): Rename this
	previously unused member to ...
	(rejection_reason::least_p): ... this.
	(arity_rejection): Add least_p parameter.
	(add_template_candidate_real): When there are explicit
	template arguments, check that the arity of the call agrees with
	the arity of the function before attempting deduction.
	(print_arity_information): Add least_p parameter.
	(print_z_candidate): Adjust call to print_arity_information.

2021-08-31  Martin Sebor  <msebor@redhat.com>

	* parser.c (cp_parser_selection_statement): Use direct initialization
	instead of copy.

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

	* constexpr.c (explain_invalid_constexpr_fn): Use iloc_sentinel.

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

	PR c++/92193
	* cp-tree.h (FNDECL_MANIFESTLY_CONST_EVALUATED): New.
	* constexpr.c (cxx_eval_call_expression): Set it.
	* pt.c (neglectable_inst_p): Check it.

2021-08-31  Marcel Vollweiler  <marcel@codesourcery.com>

	* parser.c (cp_parser_omp_clause_device): Parse device-modifiers 'device_num'
	and 'ancestor' in 'target device' clauses.
	* semantics.c (finish_omp_clauses): Error handling. Constant device ids must
	evaluate to '1' if 'ancestor' is used.

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

	PR c++/96286
	* cp-tree.h (struct lang_type): Add erroneous bit-field.
	(CLASSTYPE_ERRONEOUS): New.
	* pt.c (limit_bad_template_recursion): Check it.
	(instantiate_class_template_1): Set it.

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

	* constexpr.c (cxx_eval_outermost_constant_expr): Copy
	expr location to result.

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

	PR c++/101460
	* cp-tree.h (cxx_constant_value_sfinae): Declare.
	* constexpr.c (cxx_constant_value_sfinae): New.
	* pt.c (fold_targs_r, maybe_fold_fn_template_args): New.
	(tsubst_copy_and_build) [CALL_EXPR]: Call
	maybe_fold_fn_template_args.

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

	* parser.c (cp_parser_simple_requirement): Warn about missing
	requires.

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

	* typeck2.c (build_x_arrow): Do set TREE_TYPE when operand is
	a dependent pointer.

2021-08-25  Andrew Pinski  <apinski@marvell.com>

	PR c++/66590
	* cp-objcp-common.c (cxx_block_may_fallthru): Handle
	CLEANUP_STMT for the case which will be try/finally.

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

	PR c++/102019
	* init.c (build_value_init_noctor): Ignore unnamed zero-width
	bitfields.

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

	* parser.c (cp_parser_omp_clause_num_tasks,
	cp_parser_omp_clause_grainsize): Parse the optional strict: modifier.

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

	* parser.c (cp_parser_handle_statement_omp_attributes): Determine if
	PRAGMA_OMP_ERROR directive is C_OMP_DIR_STANDALONE.
	(cp_parser_omp_error): New function.
	(cp_parser_pragma): Handle PRAGMA_OMP_ERROR.

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

	* parser.c (cp_parser_omp_clause_depend_sink): Reject spurious
	comma at the end of list.  Don't parse closing paren here...
	(cp_parser_omp_clause_depend): ... but here instead.

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

	PR c++/101803
	* cp-tree.h (CONSTRUCTOR_IS_PAREN_INIT): Clarify comment.

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

	* parser.c (cp_parser_omp_requires): Don't call cp_lexer_nth_token_is
	and optionally consume token if current token is CPP_EOF,
	CPP_PRAGMA_EOL or CPP_CLOSE_PAREN.

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

	* parser.c (cp_parser_omp_nothing): Use cp_parser_require_pragma_eol
	instead of cp_parser_skip_to_pragma_eol.

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

	PR c++/101344
	PR c++/101803
	* cp-tree.h (CONSTRUCTOR_BRACES_ELIDED_P): Define.
	* decl.c (reshape_init_r): Set it.
	* pt.c (collect_ctor_idx_types): Recurse into a sub-CONSTRUCTOR
	iff CONSTRUCTOR_BRACES_ELIDED_P.

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

	PR c++/101883
	* pt.c (convert_template_argument): Pass LOOKUP_IMPLICIT to
	do_auto_deduction.

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

	* parser.c (cp_parser_omp_nothing): New function.
	(cp_parser_pragma): Handle PRAGMA_OMP_NOTHING.

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

	* parser.c (cp_parser_omp_ordered): Return true instead of
	false after emitting errors that the directive is not allowed in
	pragma_stmt context.
	(cp_parser_omp_target_update): Likewise.
	(cp_parser_omp_cancellation_point): Change return type from void to
	bool, return false if the directive should be ignored in pragma_stmt
	contexts.
	(cp_parser_omp_target_enter_data, cp_parser_omp_target_exit_data):
	Change return type from tree to bool, return false if the
	directive should be ignored in pragma_stmt contexts.
	(cp_parser_omp_target): Adjust callers of cp_parser_omp_target_*_data,
	return their result directly.
	(cp_parser_pragma): For PRAGMA_OMP_CANCELLATION_POINT return what
	cp_parser_omp_cancellation_point returned.  Return true instead of
	false after emitting errors that the directive is not allowed in
	pragma_stmt context.

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

	PR c++/101539
	* cp-tree.h (enum cp_trait_kind): Add CPTK_IS_LAYOUT_COMPATIBLE.
	(enum cp_built_in_function): Add CP_BUILT_IN_IS_CORRESPONDING_MEMBER.
	(fold_builtin_is_corresponding_member, next_common_initial_seqence,
	layout_compatible_type_p): Declare.
	* parser.c (cp_parser_primary_expression): Handle
	RID_IS_LAYOUT_COMPATIBLE.
	(cp_parser_trait_expr): Likewise.
	* cp-objcp-common.c (names_builtin_p): Likewise.
	* constraint.cc (diagnose_trait_expr): Handle
	CPTK_IS_LAYOUT_COMPATIBLE.
	* decl.c (cxx_init_decl_processing): Register
	__builtin_is_corresponding_member builtin.
	* constexpr.c (cxx_eval_builtin_function_call): Handle
	CP_BUILT_IN_IS_CORRESPONDING_MEMBER builtin.
	* semantics.c (is_corresponding_member_union,
	is_corresponding_member_aggr, fold_builtin_is_corresponding_member):
	New functions.
	(trait_expr_value): Handle CPTK_IS_LAYOUT_COMPATIBLE.
	(finish_trait_expr): Likewise.
	* typeck.c (next_common_initial_seqence, layout_compatible_type_p):
	New functions.
	* cp-gimplify.c (cp_gimplify_expr): Fold
	CP_BUILT_IN_IS_CORRESPONDING_MEMBER.
	(cp_fold): Likewise.
	* tree.c (builtin_valid_in_constant_expr_p): Handle
	CP_BUILT_IN_IS_CORRESPONDING_MEMBER.
	* cxx-pretty-print.c (pp_cxx_trait_expression): Handle
	CPTK_IS_LAYOUT_COMPATIBLE.
	* class.c (remove_zero_width_bit_fields): Remove.
	(layout_class_type): Don't call it.

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

	* parser.c (OMP_SCOPE_CLAUSE_MASK): Define.
	(cp_parser_omp_scope): New function.
	(cp_parser_omp_construct, cp_parser_pragma): Handle PRAGMA_OMP_SCOPE.
	* pt.c (tsubst_expr): Handle OMP_SCOPE.

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

	* parser.c (cp_parser_omp_clause_name): Parse filter clause name.
	(cp_parser_omp_clause_filter): New function.
	(cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FILTER.
	(OMP_MASKED_CLAUSE_MASK): Define.
	(cp_parser_omp_masked): New function.
	(cp_parser_omp_parallel): Handle parallel masked.
	(cp_parser_omp_construct, cp_parser_pragma): Handle PRAGMA_OMP_MASKED.
	* semantics.c (finish_omp_clauses): Handle OMP_CLAUSE_FILTER.
	* pt.c (tsubst_omp_clauses): Likewise.
	(tsubst_expr): Handle OMP_MASKED.

2021-08-12  Sergei Trofimovich  <siarheit@google.com>

	PR c++/101219
	* pt.c (tsubst_copy_and_build): Use build_ptrmemfunc_access_expr
	to construct ptrmemfunc expression instantiation.

2021-08-12  Tobias Burnus  <tobias@codesourcery.com>

	* parser.c (cp_parser_omp_clause_proc_bind): Accept
	'primary' as alias for 'master'.

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

	* cp-tree.h (omp_declare_target_attr): New type.
	(struct saved_scope): Change type of omp_declare_target_attribute
	from int to vec<omp_declare_target_attr, va_gc> * and move it.
	* parser.c (cp_parser_omp_declare_target): Instead of
	incrementing scope_chain->omp_declare_target_attribute, push
	a struct containing parser->lexer->in_omp_attribute_pragma to
	the vector.
	(cp_parser_omp_end_declare_target): Instead of decrementing
	scope_chain->omp_declare_target_attribute, pop a structure
	from it.  Diagnose mismatching declare target vs.
	end declare target syntax.
	* semantics.c (finish_translation_unit): Use vec_safe_length
	and vec_safe_truncate on scope_chain->omp_declare_target_attributes.
	* decl2.c (cplus_decl_attributes): Use vec_safe_length
	on scope_chain->omp_declare_target_attributes.

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

	* parser.c (cp_parser_lambda_body): Add temp overrides
	for parser->{omp_declare_simd,oacc_routine,omp_attrs_forbidden_p}.
	(cp_parser_statement): Restore parser->omp_attrs_forbidden_p for
	cp_parser_declaration_statement.
	(cp_parser_default_argument): Add temp override for
	parser->omp_attrs_forbidden_p.
	(cp_parser_late_parsing_omp_declare_simd): Diagnose declare simd
	or declare variant in attribute syntax on a declaration immediately
	following an OpenMP construct in pragma syntax.

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

	PR c++/94162
	* method.c (cat_tag_for): Return cc_last for !CLASS_TYPE_P
	or for classes not in std namespace.

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

	* name-lookup.c (finish_using_directive): Diagnose omp::directive
	or omp::sequence attributes on using-directive.

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

	* parser.c (cp_parser_block_declaration): Call
	cp_parser_using_directive for C++11 attributes followed by
	using namespace tokens.
	(cp_parser_using_directive): Parse C++11 attributes at the start
	of the directive rather than at the end, only parse GNU attributes
	at the end.

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

	PR c++/101663
	* constexpr.c (cxx_eval_store_expression): Handle the lval=true
	case in the early exit code path for empty stores with mismatched
	types.

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

	PR c++/101725
	DR 2082
	* cp-tree.h (unevaluated_p): Return true for REQUIRES_EXPR.
	* decl.c (local_variable_p_walkfn): Don't walk into unevaluated
	operands.
	* parser.c (cp_parser_primary_expression) <case CPP_NAME>: Never
	reject uses of local variables in unevaluated contexts.
	* tree.c (cp_walk_subtrees) <case REQUIRES_EXPR>: Increment
	cp_unevaluated_operand.  Use cp_walk_tree directly instead of
	WALK_SUBTREE to avoid the goto.  Use REQUIRES_EXPR_REQS instead
	of TREE_OPERAND directly.

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

	PR c++/101786
	* decl2.c (var_defined_without_dynamic_init): Return true for
	DECL_DECLARED_CONSTINIT_P with complete type and trivial destructor.

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

	PR c++/79501
	* parser.c (maybe_adjust_declarator_for_dguide): New, split
	out from ...
	(cp_parser_init_declarator): ... here.
	(cp_parser_member_declaration): Use it.

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

	PR c++/89062
	* parser.c (cp_parser_parameter_declaration_list): Don't call
	grokdeclarator if cp_parser_error_occurred.
	(cp_parser_parameter_declaration): Simulate an error if we see
	the beginning of a CTAD form, i.e. if we see an opening brace
	after the decl-specifier-seq and the type is a CTAD placeholder.

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

	* parser.c (cp_parser_member_declaration): Move odsd declaration
	before cp_parser_using_declaration call to avoid errors with
	GCC 4.8 to 6.

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

	* parser.h (struct cp_omp_declare_simd_data): Remove
	in_omp_attribute_pragma and clauses members, add loc and attribs.
	(struct cp_oacc_routine_data): Remove loc member, add clauses
	member.
	* parser.c (cp_finalize_omp_declare_simd): New function.
	(cp_parser_handle_statement_omp_attributes): Mention in
	function comment the function is used also for
	attribute-declaration.
	(cp_parser_handle_directive_omp_attributes): New function.
	(cp_parser_statement): Don't call
	cp_parser_handle_statement_omp_attributes if statement doesn't
	have attribute-specifier-seq at the beginning at all or if
	if those attributes don't appertain to the statement.
	(cp_parser_simple_declaration): Call
	cp_parser_handle_directive_omp_attributes and
	cp_finalize_omp_declare_simd.
	(cp_parser_explicit_instantiation): Likewise.
	(cp_parser_init_declarator): Initialize prefix_attributes
	only after parsing declarators.
	(cp_parser_direct_declarator): Call
	cp_parser_handle_directive_omp_attributes and
	cp_finalize_omp_declare_simd.
	(cp_parser_member_declaration): Likewise.
	(cp_parser_single_declaration): Likewise.
	(cp_parser_omp_declare_simd): Don't initialize
	data.in_omp_attribute_pragma, instead initialize
	data.attribs[0] and data.attribs[1].
	(cp_finish_omp_declare_variant): Remove
	in_omp_attribute_pragma argument, instead use
	parser->lexer->in_omp_attribute_pragma.
	(cp_parser_late_parsing_omp_declare_simd): Adjust
	cp_finish_omp_declare_variant caller.  Handle attribute-syntax
	declare simd/variant.

2021-08-06  Tamar Christina  <tamar.christina@arm.com>

	* cp-objcp-common.h (cxx_simulate_enum_decl): Pass vec<> by pointer.
	* decl.c (cxx_simulate_enum_decl): Likewise.

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

	PR c++/101759
	* parser.c (cp_parser_default_argument): Temporarily override
	parser->omp_declare_simd and parser->oacc_routine to NULL.

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

	PR c++/100828
	* logic.cc (formula::formula): Use emplace_back instead of
	push_back.
	(formula::branch): Insert a copy of m_current directly after
	m_current instead of at the end of the list.
	(formula::erase): Define.
	(decompose_formula): Remove.
	(decompose_antecedents): Remove.
	(decompose_consequents): Remove.
	(derive_proofs): Remove.
	(max_problem_size): Remove.
	(diagnose_constraint_size): Remove.
	(subsumes_constraints_nonnull): Rewrite directly in terms of
	decompose_clause and derive_proof, interleaving decomposition
	with implication checking.  Remove limit on constraint complexity.
	Use formula::erase to free the current clause before moving on to
	the next one.

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

	PR c++/96636
	* decl.c (fixup_anonymous_aggr): Clear TYPE_NEEDS_CONSTRUCTING
	after error.

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

	* ptree.c (cxx_print_type) [TYPE_PACK_EXPANSION]: Also print
	PACK_EXPANSION_PATTERN.

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

	* parser.c (cp_parser_declaration): Handle OpenMP directives
	in attribute-declaration.

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

	PR c++/101539
	* cp-tree.h (enum cp_trait_kind): Add
	CPTK_IS_POINTER_INTERCONVERTIBLE_BASE_OF.
	(enum cp_built_in_function): Add
	CP_BUILT_IN_IS_POINTER_INTERCONVERTIBLE_WITH_CLASS.
	(fold_builtin_is_pointer_inverconvertible_with_class): Declare.
	* parser.c (cp_parser_primary_expression): Handle
	RID_IS_POINTER_INTERCONVERTIBLE_BASE_OF.
	(cp_parser_trait_expr): Likewise.
	* cp-objcp-common.c (names_builtin_p): Likewise.
	* constraint.cc (diagnose_trait_expr): Handle
	CPTK_IS_POINTER_INTERCONVERTIBLE_BASE_OF.
	* decl.c (cxx_init_decl_processing): Register
	__builtin_is_pointer_interconvertible_with_class builtin.
	* constexpr.c (cxx_eval_builtin_function_call): Handle
	CP_BUILT_IN_IS_POINTER_INTERCONVERTIBLE_WITH_CLASS builtin.
	* semantics.c (pointer_interconvertible_base_of_p,
	first_nonstatic_data_member_p,
	fold_builtin_is_pointer_inverconvertible_with_class): New functions.
	(trait_expr_value): Handle CPTK_IS_POINTER_INTERCONVERTIBLE_BASE_OF.
	(finish_trait_expr): Likewise.  Formatting fix.
	* cp-gimplify.c (cp_gimplify_expr): Fold
	CP_BUILT_IN_IS_POINTER_INTERCONVERTIBLE_WITH_CLASS.  Call
	fndecl_built_in_p just once.
	(cp_fold): Likewise.
	* tree.c (builtin_valid_in_constant_expr_p): Handle
	CP_BUILT_IN_IS_POINTER_INTERCONVERTIBLE_WITH_CLASS.  Call
	fndecl_built_in_p just once.
	* cxx-pretty-print.c (pp_cxx_trait_expression): Handle
	CPTK_IS_POINTER_INTERCONVERTIBLE_BASE_OF.

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

	* class.c (finish_struct_anon): Improve comment.
	* decl.c (fixup_anonymous_aggr): Reject anonymous struct
	with bases.

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

	* parser.c (cp_parser_statement): Rollback attributes not just
	when std_attrs is non-NULL, but whenever
	cp_parser_std_attribute_spec_seq parsed any tokens.

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

	PR c++/101582
	* parser.c (cp_parser_skip_std_attribute_spec_seq): Add a forward
	declaration.
	(cp_parser_declaration): Parse empty-declaration and
	attribute-declaration.
	(cp_parser_toplevel_declaration): Don't parse empty-declaration here.

2021-07-28  Martin Sebor  <msebor@redhat.com>

	* init.c: Include new header.

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

	DR 1512
	PR c++/99701
	* cp-gimplify.c (cp_fold): Remove {LE,LT,GE,GT_EXPR} from
	a switch.
	* typeck.c (cp_build_binary_op): Reject ordered comparison
	of two null pointers.

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

	* parser.h (struct cp_lexer): Add orphan_p member.
	* parser.c (cp_parser_statement): Don't change in_omp_attribute_pragma
	upon restart from CPP_PRAGMA handling.  Fix up condition when a lexer
	should be destroyed and adjust saved_tokens if it records tokens from
	the to be destroyed lexer.
	(cp_parser_omp_section_scan): New function.
	(cp_parser_omp_scan_loop_body): Use it.  If
	parser->lexer->in_omp_attribute_pragma, allow optional comma
	after scan.
	(cp_parser_omp_sections_scope): Use cp_parser_omp_section_scan.

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

	* parser.h (struct cp_parser): Add omp_attrs_forbidden_p member.
	* parser.c (cp_parser_handle_statement_omp_attributes): Diagnose
	mixing of attribute and pragma syntax directives when seeing
	omp::directive if parser->omp_attrs_forbidden_p or if attribute syntax
	directives are followed by OpenMP pragma.
	(cp_parser_statement): Clear parser->omp_attrs_forbidden_p after
	the cp_parser_handle_statement_omp_attributes call.
	(cp_parser_omp_structured_block): Add disallow_omp_attrs argument,
	if true, set parser->omp_attrs_forbidden_p.
	(cp_parser_omp_scan_loop_body, cp_parser_omp_sections_scope): Pass
	false as disallow_omp_attrs to cp_parser_omp_structured_block.
	(cp_parser_omp_parallel, cp_parser_omp_task): Set
	parser->omp_attrs_forbidden_p.

2021-07-21  Thomas Schwinge  <thomas@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>

	* parser.c (cp_parser_omp_clause_name): Handle 'nohost'.
	(cp_parser_oacc_all_clauses): Handle 'PRAGMA_OACC_CLAUSE_NOHOST'.
	(OACC_ROUTINE_CLAUSE_MASK): Add 'PRAGMA_OACC_CLAUSE_NOHOST'.
	* pt.c (tsubst_omp_clauses): Handle 'OMP_CLAUSE_NOHOST'.
	* semantics.c (finish_omp_clauses): Likewise.

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-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-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>

	DR 960
	PR c++/99664
	* search.c (check_final_overrider): Compare TYPE_REF_IS_RVALUE
	when the return types are references.

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

	* typeck2.c (check_narrowing): Don't suppress the pedantic error
	in system headers.

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-15  Jason Merrill  <jason@redhat.com>

	PR c++/101095
	* cp-objcp-common.c (cp_common_init_ts): Mark types as types.
	(cp_tree_size): Remove redundant entries.

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

	PR c++/88252
	* cp-tree.h (TEMPLATE_TYPE_PARM_FOR_CLASS): Remove.
	* pt.c (push_template_decl): Remove TEMPLATE_TYPE_PARM_FOR_CLASS
	handling.
	(redeclare_class_template): Likewise.
	(forwarding_reference_p): Define.
	(maybe_adjust_types_for_deduction): Use it instead.  Add 'tparms'
	parameter.
	(unify_one_argument): Pass tparms to
	maybe_adjust_types_for_deduction.
	(try_one_overload): Likewise.
	(unify): Likewise.
	(rewrite_template_parm): Remove TEMPLATE_TYPE_PARM_FOR_CLASS
	handling.

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

	* class.c (struct find_final_overrider_data): Use auto_vec.
	(find_final_overrider): Remove explicit release.
	* coroutines.cc (process_conditional): Use auto_vec.
	* cp-gimplify.c (struct cp_genericize_data): Use auto_vec.
	(cp_genericize_tree): Remove explicit release.
	* parser.c (cp_parser_objc_at_property_declaration): Use
	auto_delete_vec.
	* semantics.c (omp_reduction_lookup): Use auto_vec.

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

	PR c++/101371
	* constexpr.c (cxx_eval_array_reference): Create a new .object
	and .ctor for the non-aggregate non-scalar case too when
	value-initializing.

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

	PR c++/79501
	PR c++/100983
	* decl.c (grokfndecl): Don't require that deduction guides are
	declared at namespace scope.  Check that class-scope deduction
	guides have the same access as the member class template.
	(grokdeclarator): Pretend class-scope deduction guides are static.
	* search.c (lookup_member): Don't use a BASELINK for (class-scope)
	deduction guides.

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

	PR c++/82110
	* init.c (build_aggr_init): Return error_mark_node if
	expand_aggr_init_1 returns false.
	(expand_default_init): Change return type to bool.  Return false
	on error, true on success.
	(expand_aggr_init_1): Likewise.

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  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-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-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-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-08  Martin Sebor  <msebor@redhat.com>

	PR bootstrap/101372
	* module.cc (identifier): Suppress warning.
	(module_state::read_macro_maps): Remove warning suppression.
	(module_state::install_macros): Ditto.

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-08  Martin Sebor  <msebor@redhat.com>

	PR bootstrap/101374
	* module.cc (module_state::read_macro_maps): Temporarily disable
	-Warray-bounds.
	(module_state::install_macros): Same.

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

	* error.c (cp_printer):  Remove support for %G and %K.

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

	* parser.h (struct cp_lexer): Add in_omp_attribute_pragma member.
	(struct cp_omp_declare_simd_data): Likewise.
	* cp-tree.h (enum cp_tree_index): Add CPTI_OMP_IDENTIFIER.
	(omp_identifier): Define.
	* parser.c (cp_parser_skip_to_pragma_eol): Handle
	in_omp_attribute_pragma CPP_PRAGMA_EOL followed by CPP_EOF.
	(cp_parser_require_pragma_eol): Likewise.
	(struct cp_omp_attribute_data): New type.
	(cp_parser_handle_statement_omp_attributes): New function.
	(cp_parser_statement): Handle OpenMP directives in statement's
	attribute-specifier-seq.
	(cp_parser_omp_directive_args, cp_parser_omp_sequence_args): New
	functions.
	(cp_parser_std_attribute): Handle omp::directive and omp::sequence
	attributes.
	(cp_parser_omp_all_clauses): If in_omp_attribute_pragma, allow
	a comma also before the first clause.
	(cp_parser_omp_allocate): Likewise.
	(cp_parser_omp_atomic): Likewise.
	(cp_parser_omp_depobj): Likewise.
	(cp_parser_omp_flush): Likewise.
	(cp_parser_omp_ordered): Likewise.
	(cp_parser_omp_declare_simd): Save in_omp_attribute_pragma
	into struct cp_omp_declare_simd_data.
	(cp_finish_omp_declare_variant): Add in_omp_attribute_pragma
	argument.  If set, allow a comma also before match clause.
	(cp_parser_late_parsing_omp_declare_simd): If in_omp_attribute_pragma,
	allow a comma also before the first clause.  Adjust
	cp_finish_omp_declare_variant caller.
	(cp_parser_omp_declare_target): If in_omp_attribute_pragma, allow
	a comma also before the first clause.
	(cp_parser_omp_declare_reduction_exprs): Likewise.
	(cp_parser_omp_requires): Likewise.
	* decl.c (initialize_predefined_identifiers): Initialize
	omp_identifier.
	* decl2.c (cplus_decl_attributes): Reject omp::directive and
	omp::sequence attributes.

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

	PR c/101297
	* parser.c (cp_parser_omp_atomic): Consume comma only if it
	appears before a CPP_NAME.

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-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-01  Patrick Palka  <ppalka@redhat.com>

	PR c++/96204
	* pt.c (finish_template_variable): Pass the partially
	instantiated template and its args to instantiate_template.
	(instantiate_class_template_1): No need to call
	push_nested_class and pop_nested_class around the call to
	most_specialized_partial_spec.
	(instantiate_template_1): Pass the partially instantiated
	template to lookup_template_variable.
	(most_specialized_partial_spec):  Use push_access_scope_guard
	to set the access scope appropriately.  Use
	deferring_access_check_sentinel to force access to get checked
	immediately.
	(instantiate_decl): Just pass the VAR_DECL to
	most_specialized_partial_spec.

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

	* constraint.cc (get_normalized_constraints_from_decl): Use
	push_access_scope_guard instead of push_nested_class_guard.
	* cp-tree.h (struct push_nested_class_guard): Replace with ...
	(struct push_access_scope_guard): ... this.
	* pt.c (push_access_scope): When the argument corresponds to
	a class type, push the class instead of its context.
	(pop_access_scope): Adjust accordingly.

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

	PR c++/100975
	DR 2397
	* decl.c (create_array_type_for_decl): Allow array of auto.

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

	* pt.c (instantiate_decl): Only consider partial specializations of
	actual variable templates.

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

	PR c++/96204
	* pt.c (instantiate_class_template_1): Enter the scope of the
	type when calling most_specialized_partial_spec.

2021-06-26  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-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-25  Martin Sebor  <msebor@redhat.com>

	* call.c (build_over_call): Replace direct uses of TREE_NO_WARNING
	with warning_suppressed_p, suppress_warning, and copy_no_warning, or
	nothing if not necessary.
	(set_up_extended_ref_temp): Same.
	* class.c (layout_class_type): Same.
	* constraint.cc (constraint_satisfaction_value): Same.
	* coroutines.cc (finish_co_await_expr): Same.
	(finish_co_yield_expr): Same.
	(finish_co_return_stmt): Same.
	(build_actor_fn): Same.
	(coro_rewrite_function_body): Same.
	(morph_fn_to_coro): Same.
	* cp-gimplify.c (genericize_eh_spec_block): Same.
	(gimplify_expr_stmt): Same.
	(cp_genericize_r): Same.
	(cp_fold): Same.
	* cp-ubsan.c (cp_ubsan_instrument_vptr): Same.
	* cvt.c (cp_fold_convert): Same.
	(convert_to_void): Same.
	* decl.c (wrapup_namespace_globals): Same.
	(grokdeclarator): Same.
	(finish_function): Same.
	(require_deduced_type): Same.
	* decl2.c (no_linkage_error): Same.
	(c_parse_final_cleanups): Same.
	* except.c (expand_end_catch_block): Same.
	* init.c (build_new_1): Same.
	(build_new): Same.
	(build_vec_delete_1): Same.
	(build_vec_init): Same.
	(build_delete): Same.
	* method.c (defaultable_fn_check): Same.
	* parser.c (cp_parser_fold_expression): Same.
	(cp_parser_primary_expression): Same.
	* pt.c (push_tinst_level_loc): Same.
	(tsubst_copy): Same.
	(tsubst_omp_udr): Same.
	(tsubst_copy_and_build): Same.
	* rtti.c (build_if_nonnull): Same.
	* semantics.c (maybe_convert_cond): Same.
	(finish_return_stmt): Same.
	(finish_parenthesized_expr): Same.
	(cp_check_omp_declare_reduction): Same.
	* tree.c (build_cplus_array_type): Same.
	* typeck.c (build_ptrmemfunc_access_expr): Same.
	(cp_build_indirect_ref_1): Same.
	(cp_build_function_call_vec): Same.
	(warn_for_null_address): Same.
	(cp_build_binary_op): Same.
	(unary_complex_lvalue): Same.
	(cp_build_modify_expr): Same.
	(build_x_modify_expr): Same.
	(convert_for_assignment): Same.

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

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

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-06-24  Jakub Jelinek  <jakub@redhat.com>

	* parser.c (cp_omp_split_clauses): Pass C_ORT_OMP_TARGET instead of
	C_ORT_OMP for clauses on target construct.
	(OMP_TARGET_CLAUSE_MASK): Add in_reduction clause.
	(cp_parser_omp_target): For non-combined target add
	map (always, tofrom:) clauses for OMP_CLAUSE_IN_REDUCTION.  Pass
	C_ORT_OMP_TARGET to finish_omp_clauses.
	* semantics.c (handle_omp_array_sections_1): Adjust ort handling
	for addition of C_ORT_OMP_TARGET and simplify, mapping clauses are
	never present on C_ORT_*DECLARE_SIMD.
	(handle_omp_array_sections): Likewise.
	(finish_omp_clauses): Likewise.  Handle OMP_CLAUSE_IN_REDUCTION
	on C_ORT_OMP_TARGET, set OMP_CLAUSE_MAP_IN_REDUCTION on
	corresponding map clauses.
	* pt.c (tsubst_expr): Pass C_ORT_OMP_TARGET instead of C_ORT_OMP for
	clauses on target construct.

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

	PR c++/101174
	* pt.c (push_access_scope): For artificial deduction guides,
	set the access scope to that of the constructor.
	(pop_access_scope): Likewise.
	(build_deduction_guide): Don't set DECL_CONTEXT on the guide.

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

	PR c++/86439
	* call.c (print_error_for_call_failure): Constify 'args' parameter.
	(perform_dguide_overload_resolution): Define.
	* cp-tree.h: (perform_dguide_overload_resolution): Declare.
	* pt.c (do_class_deduction): Use perform_dguide_overload_resolution
	instead of build_new_function_call.  Don't use tf_decltype or
	set cp_unevaluated_operand.  Remove unnecessary NULL_TREE tests.

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

	PR c++/67302
	* typeck.c (check_return_expr): Call maybe_undo_parenthesized_ref
	sooner, before the NRVO handling.

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

	PR c++/80431
	* tree.c (bot_replace): Use convert_to_base to build the
	conversion to the (morally) virtual base.

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-17  Jason Merrill  <jason@redhat.com>

	PR c++/101106
	* decl.c (duplicate_decls): Make 'deleted after first declaration'
	pedwarn on by default.

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

	PR c++/101029
	* init.c (build_vec_init): Preserve the type of base.

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

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

2021-06-15  Robin Dapp  <rdapp@linux.ibm.com>

	* decl.c (duplicate_decls): Likewise.

2021-06-14  Tobias Burnus  <tobias@codesourcery.com>

	PR c/100913
	* parser.c (cp_parser_omp_clause_affinity): No need to set iterator
	var in the error case.

2021-06-13  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* constexpr.c (cxx_eval_call_expression): Iterate over vec<>
	with range based for.
	(cxx_eval_store_expression): Likewise.
	(cxx_eval_loop_expr): Likewise.
	* decl.c (wrapup_namespace_globals): Likewise.
	(cp_finish_decl): Likewise.
	(cxx_simulate_enum_decl): Likewise.
	* parser.c (cp_parser_postfix_expression): Likewise.

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

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

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

	* pt.c (lookup_template_class_1): Shortcut current_class_type.

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

	DR 1227
	PR c++/96560
	* pt.c (tsubst_arg_types): Rearrange so that we substitute into
	TYPE_ARG_TYPES in forward order while short circuiting
	appropriately.  Adjust formatting.

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

	PR c++/100974
	* cp-tree.h (struct saved_scope): Add consteval_if_p
	member.  Formatting fix for the discarded_stmt comment.
	(in_consteval_if_p, IF_STMT_CONSTEVAL_P): Define.
	* parser.c (cp_parser_lambda_expression): Temporarily disable
	in_consteval_if_p when parsing lambda body.
	(cp_parser_selection_statement): Parse consteval if.
	* decl.c (struct named_label_entry): Add in_consteval_if member.
	(level_for_consteval_if): New function.
	(poplevel_named_label_1, check_previous_goto_1, check_goto): Handle
	consteval if.
	* constexpr.c (cxx_eval_builtin_function_call): Clarify in comment
	why CP_BUILT_IN_IS_CONSTANT_EVALUATED needs to *non_constant_p
	for !ctx->manifestly_const_eval.
	(cxx_eval_conditional_expression): For IF_STMT_CONSTEVAL_P evaluate
	condition as if it was __builtin_is_constant_evaluated call.
	(potential_constant_expression_1): For IF_STMT_CONSTEVAL_P always
	recurse on both branches.
	* cp-gimplify.c (genericize_if_stmt): Genericize IF_STMT_CONSTEVAL_P
	as the else branch.
	* pt.c (tsubst_expr) <case IF_STMT>: Copy IF_STMT_CONSTEVAL_P.
	Temporarily set in_consteval_if_p when recursing on
	IF_STMT_CONSTEVAL_P then branch.
	(tsubst_lambda_expr): Temporarily disable
	in_consteval_if_p when instantiating lambda body.
	* call.c (immediate_invocation_p): Return false when
	in_consteval_if_p.

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

	PR c++/100995
	* constexpr.c (maybe_constexpr_fn): New.
	* cp-tree.h (maybe_constexpr_fn): Declare.
	* semantics.c (find_std_constant_evaluated_r): New.
	(maybe_warn_for_constant_evaluated): New.
	(finish_if_stmt_cond): Call it.

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

	PR c++/67829
	* pt.c (unify) <case BOUND_TEMPLATE_TEMPLATE_PARM>: When
	the TEMPLATE_DECL of a BOUND_TEMPLATE_TEMPLATE_PARM argument is
	a template template parameter, adjust to the
	TEMPLATE_TEMPLATE_PARAMETER before falling through.

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-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>

	* parser.c (cp_parser_string_literal): Adjust diagnostic.

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
	* name-lookup.c (get_class_binding): Keep a BASELINK.
	(set_inherited_value_binding_p): Adjust.
	* lambda.c (is_lambda_ignored_entity): Adjust.
	* pt.c (lookup_template_function): Copy a BASELINK before
	modifying it.

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-08  Jason Merrill  <jason@redhat.com>

	PR c++/100102
	* init.c (build_offset_ref): Return the BASELINK for a static
	member function.

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-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-04  Patrick Palka  <ppalka@redhat.com>

	PR c++/100893
	* pt.c (convert_template_argument): Strip top-level cv-quals
	on the substituted type of a non-type template parameter.

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-04  Jakub Jelinek  <jakub@redhat.com>

	PR c++/100872
	* name-lookup.c (maybe_save_operator_binding): Add op_attr after all
	ATTR_IS_DEPENDENT attributes in the DECL_ATTRIBUTES list rather than
	to the start.

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

	PR c++/100592
	* decl.c (make_typename_type): After calling
	lookup_template_class, adjust the result to its TYPE_NAME and
	then consider the tf_keep_type_decl flag.

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-03  Jakub Jelinek  <jakub@redhat.com>

	PR c++/100859
	* semantics.c (handle_omp_array_sections_1): For
	OMP_CLAUSE_{AFFINITY,DEPEND} handle FIELD_DECL base using
	finish_non_static_data_member and allow this as base.
	(finish_omp_clauses): Move OMP_CLAUSE_AFFINITY
	after depend only cases.  Let this be diagnosed by !lvalue_p
	case for OMP_CLAUSE_{AFFINITY,DEPEND} and remove useless
	assert.
	* pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_AFFINITY.

2021-06-02  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-06-01  Patrick Palka  <ppalka@redhat.com>

	PR c++/65816
	* init.c (expand_aggr_init_1): Check
	type_has_non_user_provided_default_constructor instead of
	type_has_user_provided_constructor.

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++/94492
	* decl2.c (cp_warn_deprecated_use): Check warning_enabled_at.

2021-05-31  Richard Biener  <rguenther@suse.de>

	PR c++/88601
	* cp-objcp-common.c (names_builtin_p): Handle
	RID_BUILTIN_SHUFFLEVECTOR.
	* cp-tree.h (build_x_shufflevector): Declare.
	* parser.c (cp_parser_postfix_expression): Handle
	RID_BUILTIN_SHUFFLEVECTOR.
	* pt.c (tsubst_copy_and_build): Handle IFN_SHUFFLEVECTOR.
	* typeck.c (build_x_shufflevector): Build either a lowered
	VEC_PERM_EXPR or an unlowered shufflevector via a temporary
	internal function IFN_SHUFFLEVECTOR.

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

	* constexpr.c (build_data_member_initialization): Use tsi_range.
	(build_constexpr_constructor_member_initializers): Likewise.
	(constexpr_fn_retval, cxx_eval_statement_list): Likewise.
	(potential_constant_expression_1): Likewise.
	* coroutines.cc (await_statement_expander): Likewise.
	(await_statement_walker): Likewise.
	* module.cc (trees_out::core_vals): Likewise.
	* pt.c (tsubst_expr): Likewise.
	* semantics.c (set_cleanup_locs): Likewise.

2021-05-28  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-28  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/99928
	* semantics.c (handle_omp_array_sections): Copy
	OMP_CLAUSE_MAP_IMPLICIT.
	(finish_omp_clauses): Move not just OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT
	marked clauses last, but also OMP_CLAUSE_MAP_IMPLICIT.  Add
	map_firstprivate_head bitmap, set it for GOMP_MAP_FIRSTPRIVATE_POINTER
	maps and silently remove OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT if it is
	present too.  For OMP_CLAUSE_MAP_IMPLICIT silently remove the clause
	if present in map_head, map_field_head or map_firstprivate_head
	bitmaps.

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

	* parser.c (cp_parser_omp_clause_affinity): New.
	(cp_parser_omp_clause_name, cp_parser_omp_var_list_no_open,
	cp_parser_omp_all_clauses, OMP_TASK_CLAUSE_MASK): Handle affinity
	clause.
	* semantics.c (handle_omp_array_sections_1, handle_omp_array_sections,
	finish_omp_clauses): Likewise.

2021-05-27  Matthias Kretz  <kretz@kde.org>

	PR c++/100716
	* error.c (dump_template_bindings): Include code to print
	"[with" and ']', conditional on whether anything is printed at
	all. This is tied to whether a semicolon is needed to separate
	multiple template parameters. If the template argument repeats
	the template parameter (T = T), then skip the parameter.
	(dump_substitution): Moved code to print "[with" and ']' to
	dump_template_bindings.
	(dump_function_decl): Partial revert of PR50828, which masked
	TFF_TEMPLATE_NAME for all of dump_function_decl. Now
	TFF_TEMPLATE_NAME is masked for the scope of the function and
	only carries through to dump_function_name.
	(dump_function_name): Avoid calling dump_template_parms if
	TFF_TEMPLATE_NAME is set.

2021-05-27  Matthias Kretz  <kretz@kde.org>

	PR c++/100763
	* error.c: Call dump_scope when printing a typedef.

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

	PR c++/99893
	* tree.c (cp_walk_subtrees) <case STATIC_ASSERT>: New case.

2021-05-27  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-05-27  Patrick Palka  <ppalka@redhat.com>

	DR 1315
	PR c++/67593
	PR c++/96555
	* pt.c (process_partial_specialization): Don't error on a
	non-simple non-type template argument that involves template
	parameters.
	(for_each_template_parm_r): Don't walk TRAIT_EXPR, PLUS_EXPR,
	MULT_EXPR, or SCOPE_REF when include_nondeduced_p is false.

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-26  Patrick Palka  <ppalka@redhat.com>

	PR c++/100368
	* tree.c (build_target_expr_with_type): Don't call force_rvalue
	on CALL_EXPR initializer.  Simplify now that bot_manip is no
	longer a caller.
	(bot_manip): Use force_target_expr instead of
	build_target_expr_with_type.

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-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-21  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/99928
	* semantics.c (finish_omp_clauses): Move firstprivate clauses with
	OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT to the end of the chain.  Don't error
	if a decl is mentioned both in map clause and in such firstprivate
	clause unless OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET is also set.

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

	* call.c (reference_binding): Check for designator.
	(implicit_conversion_1, build_special_member_call): Likewise.
	* decl.c (reshape_init_r): Likewise.
	* pt.c (do_class_deduction): Likewise.
	* typeck2.c (digest_init_r): Likewise.

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  Jonathan Wakely  <jwakely@redhat.com>

	* call.c (maybe_warn_array_conv): Use new warning option.
	* decl.c (mark_inline_variable, grokdeclarator): Likewise.
	* error.c (maybe_warn_cpp0x): Likewise.
	* parser.c (cp_parser_primary_expression)
	(cp_parser_unqualified_id)
	(cp_parser_pseudo_destructor_name)
	(cp_parser_lambda_introducer)
	(cp_parser_lambda_declarator_opt)
	(cp_parser_selection_statement)
	(cp_parser_init_statement)
	(cp_parser_decomposition_declaration)
	(cp_parser_function_specifier_opt)
	(cp_parser_static_assert)
	(cp_parser_namespace_definition)
	(cp_parser_using_declaration)
	(cp_parser_asm_definition)
	(cp_parser_ctor_initializer_opt_and_function_body)
	(cp_parser_initializer_list)
	(cp_parser_type_parameter_key)
	(cp_parser_member_declaration)
	(cp_parser_try_block)
	(cp_parser_std_attribute_spec): Likewise.
	* pt.c (check_template_variable): Likewise.

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>

	* pt.c (build_deduction_guide): Treat the implicit deduction guide
	as a member of the class.

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

	PR c++/100596
	* cp-tree.h (any_non_type_attribute_p): Remove.
	* decl.c (grokdeclarator): Turn an error into a warning and only
	warn for standard attributes.
	* decl2.c (any_non_type_attribute_p): Remove.
	* parser.c (cp_parser_elaborated_type_specifier): Turn an error
	into a warning and only warn for standard attributes.
	(cp_parser_member_declaration): Likewise.

2021-05-19  Martin Liska  <mliska@suse.cz>

	PR testsuite/100658
	* mangle.c (write_encoding): Fix typos.

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

	PR middle-end/99928
	* parser.c (cp_parser_omp_master): Set OMP_MASTER_COMBINED on
	master when combined with taskloop.
	(cp_parser_omp_parallel): Don't set OMP_PARALLEL_COMBINED on
	parallel master when not combined with taskloop.

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  Marek Polacek  <polacek@redhat.com>

	* class.c (classtype_has_non_deleted_copy_ctor): Remove.
	* constraint.cc (contains_wildcard_p): Likewise.
	(get_template_head_requirements): Likewise.
	(check_constrained_friend): Likewise.
	(subsumes_constraints): Likewise.
	* cp-tree.h (classtype_has_non_deleted_copy_ctor): Likewise.
	(push_void_library_fn): Likewise.
	(get_pattern_parm): Likewise.
	(get_template_parms_at_level): Likewise.
	(lambda_return_type): Likewise.
	(get_template_head_requirements): Likewise.
	(check_constrained_friend): Likewise.
	(subsumes_constraints): Likewise.
	* decl.c (push_void_library_fn): Likewise.
	* lambda.c (lambda_return_type): Likewise.
	* pt.c (get_template_parms_at_level): Likewise.
	(get_pattern_parm): Likewise.

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  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-17  Jonathan Wakely  <jwakely@redhat.com>

	PR c++/100635
	* call.c (convert_like_internal): Print different diagnostic if
	the lvalue reference is const.

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

	PR c++/95870
	* pt.c (enclosing_instantiation_of): Just compare
	DECL_SOURCE_LOCATION.
	(regenerate_decl_from_template): Copy DECL_SOURCE_LOCATION.

2021-05-14  Marek Polacek  <polacek@redhat.com>
	    Jason Merrill  <jason@redhat.com>

	PR c++/99032
	* cp-tree.h (any_non_type_attribute_p): Declare.
	* decl.c (grokdeclarator): Diagnose when an attribute appertains to
	a friend declaration that is not a definition.
	* decl2.c (any_non_type_attribute_p): New.
	* parser.c (cp_parser_decl_specifier_seq): Diagnose standard attributes
	in the middle of decl-specifiers.
	(cp_parser_elaborated_type_specifier): Diagnose when an attribute
	appertains to a friend declaration that is not a definition.
	(cp_parser_member_declaration): Likewise.

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

	* pt.c (tsubst_copy_and_build): Add warn_int_in_bool_context
	sentinel.

2021-05-12  Marcel Vollweiler  <marcel@codesourcery.com>

	* parser.c (cp_parser_omp_clause_map): Support map-type-modifier
	'close'.

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

	PR c++/100517
	* typeck.c (build_reinterpret_cast_1): Check intype on
	cast to vector.

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

	PR c++/51577
	* name-lookup.c (maybe_save_operator_binding): Unconditionally
	enable for all function templates, not just generic lambdas.
	Handle compound-assignment operator expressions.
	* typeck.c (build_x_compound_expr): Call maybe_save_operator_binding
	in the type-dependent case.
	(build_x_modify_expr): Likewise.  Move declaration of 'op' closer
	to its first use.

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-05-10  Richard Biener  <rguenther@suse.de>

	PR middle-end/100464
	PR c++/100468
	* call.c (set_up_extended_ref_temp): Mark the temporary
	addressable if the TARGET_EXPR was.

2021-05-10  Martin Liska  <mliska@suse.cz>

	* decl.c (duplicate_decls): Use startswith
	function instead of strncmp.
	(cxx_builtin_function): Likewise.
	(omp_declare_variant_finalize_one): Likewise.
	(grokfndecl): Likewise.
	* error.c (dump_decl_name): Likewise.
	* mangle.c (find_decomp_unqualified_name): Likewise.
	(write_guarded_var_name): Likewise.
	(decl_tls_wrapper_p): Likewise.
	* parser.c (cp_parser_simple_type_specifier): Likewise.
	(cp_parser_tx_qualifier_opt): Likewise.
	* pt.c (template_parm_object_p): Likewise.
	(dguide_name_p): Likewise.

2021-05-10  Martin Liska  <mliska@suse.cz>

	PR c++/99616
	* decl.c (grokdeclarator): Remove redundant NULL check.

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

	* tree.c (rvalue): Assert expr is not a class lvalue.

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

	* cp-tree.h (build_stub_object): Declare.
	* method.c (build_stub_object): No longer static.
	* call.c (can_convert): Use it.
	* tree.c (build_dummy_object): Adjust comment.
	* typeck.c (cp_build_binary_op): Wrap SPACESHIP_EXPR in a
	TARGET_EXPR.

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

	* coroutines.cc (build_co_await): Don't call 'rvalue'.
	(flatten_await_stmt): Simplify initialization.
	(morph_fn_to_coro): Change 'rvalue' to 'move'.  Simplify.

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

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

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-05-03  Patrick Palka  <ppalka@redhat.com>

	PR c++/68942
	PR c++/100344
	* pt.c (tsubst_copy_and_build) <case CALL_EXPR>: Set tf_conv
	only when the callee is a FUNCTION_DECL.

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

	PR c++/100055
	* decl.c (grokfndecl): Check current_template_parms.

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

	DR 1312
	* constexpr.c (cxx_eval_constant_expression): Don't check
	integer_zerop.

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

	* cp-tree.h (class ovl_iterator): Allow copying.  Add op==.
	(class ovl_range, class lkp_range): New.
	* call.c (build_op_call_1, add_candidates): Use them.
	(build_op_delete_call, has_trivial_copy_assign_p): Likewise.
	(has_trivial_copy_p): Likewise.
	* class.c (handle_using_decl, get_basefndecls): Likewise.
	(maybe_warn_about_overly_private_class): Likewise.
	(warn_hidden, add_implicitly_declared_members): Likewise.
	(check_methods, clone_constructors_and_destructors): Likewise.
	(type_has_user_nondefault_constructor): Likewise.

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

	* constexpr.c (cxx_fold_indirect_ref_1): Only set *empty_base if we
	don't find a field.

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

	PR c++/51344
	* decl2.c (grokfield): Call cplus_decl_attributes for friend.
	(save_template_attributes): Use chainon.
	* friend.c (do_friend): Remove attrlist parm.
	* cp-tree.h (do_friend): Adjust.
	* class.c (add_implicitly_declared_members): Adjust.
	* decl.c (grokdeclarator): Adjust.
	* pt.c (apply_late_template_attributes): Optimize.

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

	PR c++/97974
	* class.c (finish_struct_anon_r): Drop complain parm.
	Remove non-field diagnostic.
	(finish_struct_anon): Adjust.
	* decl.c (fixup_anonymous_aggr): Move non-field diagnostic here.

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

	* 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-04-29  Jason Merrill  <jason@redhat.com>

	* cp-tree.h: Clarify comments.
	* pt.c (get_template_parm_object): Add assert.
	* semantics.c (finish_compound_literal): Clear TREE_HAS_CONSTRUCTOR.
	* tree.c (zero_init_expr_p): Check TREE_HAS_CONSTRUCTOR.
	* typeck2.c (store_init_value): Likewise.

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

	PR c++/68942
	* pt.c (tsubst_copy_and_build) <case CALL_EXPR>: When KOENIG_P,
	set tf_conv during the initial substitution into the function.

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-28  Jakub Jelinek  <jakub@redhat.com>

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

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

	PR c++/92145
	* class.c (classtype_has_depr_implicit_copy): Check DECL_CONTEXT
	of operator=.

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

	PR c++/88580
	* pt.c (tsubst_initializer_list): Correctly handle the case
	where an argument inside a base initializer pack expansion is
	itself a pack expansion.

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

	PR c++/100209
	* constexpr.c (cxx_fold_indirect_ref): Try to canonicalize the
	object/offset pair for a POINTER_PLUS_EXPR of a COMPONENT_REF
	with a negative offset into one whose offset is nonnegative
	before calling cxx_fold_indirect_ref_1.

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-24  Patrick Palka  <ppalka@redhat.com>

	PR c++/87709
	* parser.c (cp_parser_type_id_1): If we see a template
	placeholder, first try simulating an error before issuing
	a real error.

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

	PR c++/98767
	* cxx-pretty-print.c (pp_cxx_parameter_declaration_clause):
	Adjust parameter list loop to iterate over 'types' instead of
	'args'.  Output the trailing '...' for a variadic function.
	Remove PARM_DECL support.
	(pp_cxx_requires_expr): Pretty print the parameter list directly
	instead of going through pp_cxx_parameter_declaration_clause.

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

	DR 2374
	* decl.c (is_direct_enum_init): Check the implicit
	convertibility requirement added by CWG 2374.

2021-04-23  Martin Liska  <mliska@suse.cz>

	* cp-tree.h (STATIC_ASSERT): Prefer static assert.
	* lex.c (init_operators): Remove run-time check.

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-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-21  Martin Liska  <mliska@suse.cz>

	Revert:
	2021-04-21  Martin Liska  <mliska@suse.cz>

	* error.c (dump_decl): Use flags in dump_generic_node call.

2021-04-21  Martin Liska  <mliska@suse.cz>

	* error.c (dump_decl): Use flags in dump_generic_node call.

2021-04-21  Martin Liska  <mliska@suse.cz>

	* error.c (dump_decl): Support anonymous labels.

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

	PR c++/100109
	* pt.c (find_parameter_packs_r): Look into enum initializers.

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.
