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

	* cp-tree.h (TEMPLATE_PARM_DESCENDANTS): Harden.
	(TEMPLATE_TYPE_DESCENDANTS): Define.
	(TEMPLATE_TEMPLATE_PARM_SIMPLE_P): Define.
	* pt.cc (reduce_template_parm_level): Revert
	r14-418-g0bc2a1dc327af9 change.
	(process_template_parm): Set TEMPLATE_TEMPLATE_PARM_SIMPLE_P
	appropriately.
	(uses_outer_template_parms): Determine the outer depth of
	a template template parm without relying on DECL_CONTEXT.
	(tsubst) <case TEMPLATE_TEMPLATE_PARM>: Cache lowering a
	simple template template parm.  Consistently use 'code'.

2023-06-29  Patrick Palka  <ppalka@redhat.com>

	PR c++/110468
	* init.cc (maybe_instantiate_nsdmi_init): Mask out all
	tsubst flags except for tf_warning_or_error.

2023-06-29  Patrick Palka  <ppalka@redhat.com>

	PR c++/110463
	* cp-gimplify.cc (cp_fold) <case CONSTRUCTOR>: Propagate
	CONSTRUCTOR_MUTABLE_POISON.

2023-06-29  Patrick Palka  <ppalka@redhat.com>

	* cp-tree.h (tree_template_info::partial): New data member.
	(TI_PARTIAL_INFO): New tree accessor.
	(most_specialized_partial_spec): Add defaulted bool parameter.
	* module.cc (trees_out::core_vals) <case TEMPLATE_INFO>: Stream
	TI_PARTIAL_INFO.
	(trees_in::core_vals) <case TEMPLATE_INFO>: Likewise.
	* parser.cc (specialization_of): Adjust after making
	most_specialized_partial_spec return TEMPLATE_INFO instead
	of TREE_LIST.
	* pt.cc (process_partial_specialization): Set TI_PARTIAL_INFO
	of 'decl' to point back to the partial TEMPLATE_DECL.  Likewise
	(and pass rechecking=true to most_specialization_partial_spec).
	(instantiate_class_template): Likewise.
	(instantiate_template): Set TI_PARTIAL_INFO to the result of
	most_specialization_partial_spec after forming a variable
	template specialization.
	(most_specialized_partial_spec): Add 'rechecking' parameter.
	Exit early if the template is not primary.  Use the TI_PARTIAL_INFO
	of the corresponding TEMPLATE_INFO as a cache unless 'rechecking'
	is true.  Don't bother setting TREE_TYPE of each TREE_LIST.
	(instantiate_decl): Adjust after making
	most_specialized_partial_spec return TEMPLATE_INFO instead of
	TREE_LIST.
	* ptree.cc (cxx_print_xnode) <case TEMPLATE_INFO>: Dump
	TI_PARTIAL_INFO.

2023-06-29  Eugene Rozenfeld  <erozen@microsoft.com>

	* Make-lang.in: Pass correct stage cc1plus when processing
	profile data collected while building target libraries

2023-06-28  Patrick Palka  <ppalka@redhat.com>

	PR c++/89442
	PR c++/107437
	* cp-tree.h (lookup_template_variable): Add complain parameter.
	* parser.cc (cp_parser_template_id): Pass tf_warning_or_error
	to lookup_template_variable.
	* pt.cc (lookup_template_variable): Add complain parameter.
	Coerce template arguments here ...
	(finish_template_variable): ... instead of here.
	(lookup_and_finish_template_variable): Check for error_mark_node
	result from lookup_template_variable.
	(tsubst_copy) <case TEMPLATE_ID_EXPR>: Pass complain to
	lookup_template_variable.
	(instantiate_template): Use build2 instead of
	lookup_template_variable to build a TEMPLATE_ID_EXPR
	for most_specialized_partial_spec.

2023-06-28  Marek Polacek  <polacek@redhat.com>

	PR c++/110175
	* typeck.cc (cp_build_unary_op): Check tf_warning before warning.

2023-06-28  Jason Merrill  <jason@redhat.com>

	PR c++/110334
	* cp-tree.h (clone_attrs): Declare.
	* method.cc (implicitly_declare_fn): Use it for inherited
	constructor.
	* optimize.cc (clone_attrs): New.
	(maybe_clone_body): Use it.

2023-06-28  Jason Merrill  <jason@redhat.com>

	PR c++/110344
	* constexpr.cc (cxx_eval_constant_expression): In C++26, allow cast
	from void* to the type of a pointed-to object.

2023-06-23  David Malcolm  <dmalcolm@redhat.com>

	PR c++/110164
	* cp-name-hint.h (maybe_suggest_missing_header): New decl.
	* decl.cc: Define INCLUDE_MEMORY.  Add include of
	"cp/cp-name-hint.h".
	(start_decl_1): Call maybe_suggest_missing_header.
	* name-lookup.cc (maybe_suggest_missing_header): Remove "static".

2023-06-16  Alex Coplan  <alex.coplan@arm.com>

	* parser.cc (cp_parser_enum_specifier): Don't reject
	elaborated-type-specifier with enum-base, instead emit new
	Welaborated-enum-base warning.

2023-06-14  Jason Merrill  <jason@redhat.com>

	DR 2327
	PR c++/86521
	* call.cc (joust_maybe_elide_copy): Don't change cand.
	(joust): Move the elided tiebreaker later.

2023-06-13  David Malcolm  <dmalcolm@redhat.com>

	PR c/84890
	* name-lookup.cc (missing_std_header::~missing_std_header): Reword
	note to avoid negative tone of "forgetting".

2023-06-13  Jason Merrill  <jason@redhat.com>

	* tree.cc (build_target_expr): Check TYPE_HAS_MUTABLE_P.

2023-06-12  Tobias Burnus  <tobias@codesourcery.com>

	* parser.cc (cp_parser_omp_clause_map): Reword error message for
	clearness especially with 'omp target (enter/exit) data.'
	* semantics.cc (handle_omp_array_sections): Handle
	GOMP_MAP_{ALWAYS_,}PRESENT_{TO,TOFROM,FROM,ALLOC} enum values.

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

	PR c++/105838
	* call.cc (convert_like_internal) [ck_list]: Use
	maybe_init_list_as_array.
	* constexpr.cc (cxx_eval_vec_init_1): Init might have
	a different type.
	* tree.cc (build_vec_init_elt): Likewise.
	* init.cc (build_vec_init): Handle from_array from a
	TARGET_EXPR.  Retain TARGET_EXPR of a different type.

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

	PR c++/110122
	* constexpr.cc (cxx_eval_call_expression): Synthesize defaulted
	functions needed for constant evaluation.
	(instantiate_cx_fn_r): Likewise.

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

	PR c++/110122
	* pt.cc (lookup_template_class): Extend shortcut for looking up the
	current class scope to consider outer class scopes too, and use
	current_nonlambda_class_type instead of current_class_type.  Only
	call coerce_template_parms when specializing a primary template.

2023-06-10  Nathan Sidwell  <nathan@acm.org>

	PR c++/61663
	* pt.cc (maybe_adjust_types_for_deduction): Implement DR976.

2023-06-09  Jason Merrill  <jason@redhat.com>

	PR c++/110185
	PR c++/58487
	* method.cc (build_comparison_op): Give retval a name.
	* typeck.cc (check_return_expr): Fix for nameless variables.

2023-06-09  Jason Merrill  <jason@redhat.com>

	* parser.cc (cp_parser_simple_type_specifier): Check for auto
	in template argument.
	(cp_parser_template_type_arg): Remove auto checking.

2023-06-09  Jason Merrill  <jason@redhat.com>

	PR c++/110102
	* call.cc (maybe_init_list_as_array): Check that the element type is
	copyable.

2023-06-07  Jason Merrill  <jason@redhat.com>

	PR c++/58487
	PR c++/53637
	* cp-tree.h (INIT_EXPR_NRV_P): New.
	* semantics.cc (finalize_nrv_r): Check it.
	* name-lookup.h (decl_in_scope_p): Declare.
	* name-lookup.cc (decl_in_scope_p): New.
	* typeck.cc (check_return_expr): Allow non-NRV
	returns if the NRV is no longer in scope.

2023-06-07  Jason Merrill  <jason@redhat.com>

	PR c++/58487
	* typeck.cc (want_nrvo_p): New.
	(check_return_expr): Handle -Wnrvo.

2023-06-07  Jason Merrill  <jason@redhat.com>

	PR c++/51571
	PR c++/92407
	* decl.cc (finish_function): Simplify NRV handling.
	* except.cc (maybe_set_retval_sentinel): Also set if NRV.
	(maybe_splice_retval_cleanup): Don't add the cleanup region
	if we don't need it.
	* semantics.cc (nrv_data): Add simple field.
	(finalize_nrv): Set it.
	(finalize_nrv_r): Check it and retval sentinel.
	* cp-tree.h (finalize_nrv): Adjust declaration.
	* typeck.cc (check_return_expr): Remove named_labels check.

2023-06-07  Jason Merrill  <jason@redhat.com>

	PR c++/92407
	* typeck.cc (check_return_expr): Prevent NRV in the presence of
	named labels.

2023-06-07  Jason Merrill  <jason@redhat.com>

	PR c++/33799
	* except.cc (maybe_splice_retval_cleanup): Change
	recognition of function body and try scopes.
	* semantics.cc (do_poplevel): Call it after poplevel.
	(at_try_scope): New.
	* cp-tree.h (maybe_splice_retval_cleanup): Adjust.

2023-06-07  Jason Merrill  <jason@redhat.com>

	* semantics.cc (finalize_nrv_r): [RETURN_EXPR]: Only replace the
	INIT_EXPR.

2023-06-06  Kwok Cheung Yeung  <kcy@codesourcery.com>
	    Tobias Burnus  <tobias@codesourcery.com>

	* parser.cc (cp_parser_omp_clause_defaultmap,
	cp_parser_omp_clause_map): Parse 'present'.
	(cp_parser_omp_clause_from_to): New; parse to/from
	clauses with optional 'present' modifier.
	(cp_parser_omp_all_clauses): Update call.
	(cp_parser_omp_target_data, cp_parser_omp_target_enter_data,
	cp_parser_omp_target_exit_data): Handle new enum value for
	'present' mapping.
	* semantics.cc (finish_omp_target): Likewise.

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

	PR c++/97720
	* cp-tree.h (enum cp_tree_index): Add CPTI_CALL_TERMINATE_FN.
	(call_terminate_fn): New macro.
	* cp-gimplify.cc (gimplify_must_not_throw_expr): Use it.
	* except.cc (init_exception_processing): Set it.
	(cp_protect_cleanup_actions): Return it.

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

	PR c++/109923
	* pt.cc (is_specialization_of_friend): Fix overbroad check for
	a non-template member function of a class template.

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

	* pt.cc (iterative_hash_template_arg): Don't hash
	TEMPLATE_TEMPLATE_PARM specially.

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

	* class.cc (build_base_path): Check in_template_context instead
	of in_template_function.
	(resolves_to_fixed_type_p): Likewise.
	* cp-tree.h (in_template_context): Define.
	(in_template_function): Remove.
	* decl.cc (cp_make_fname_decl): Check current_function_decl
	and in_template_context instead of in_template_function.
	* decl2.cc (mark_used): Check in_template_context instead of
	in_template_function.
	* pt.cc (in_template_function): Remove.
	* semantics.cc (enforce_access): Check in_template_context
	instead of current_template_parms directly.

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

	PR c++/70790
	* mangle.cc (write_expression): Handle NOEXCEPT_EXPR.

2023-06-02  Jason Merrill  <jason@redhat.com>

	DR 2735
	PR c++/109247
	* call.cc (sfk_copy_or_move): New.
	(joust): Add tiebreaker for explicit conv and copy ctor.

2023-06-02  Jason Merrill  <jason@redhat.com>

	PR c++/110070
	PR c++/105838
	* call.cc (maybe_init_list_as_array): Set DECL_MERGEABLE.
	(convert_like_internal) [ck_list]: Set it.
	(set_up_extended_ref_temp): Copy it.
	* tree.cc (handle_no_unique_addr_attribute): Set it.

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

	* typeck2.cc (check_narrowing): Check flag_permissive.

2023-05-30  Tobias Burnus  <tobias@codesourcery.com>

	PR c/109999
	* parser.cc (cp_parser_oacc_all_clauses,
	cp_parser_omp_all_clauses): Improve error wording.

2023-05-19  Andrew Pinski  <apinski@marvell.com>

	PR driver/33980
	* lang-specs.h ("@c++-header"): Add %w after
	the --output-pch.
	("@c++-system-header"): Likewise.
	("@c++-user-header"): Likewise.

2023-05-19  Patrick Palka  <ppalka@redhat.com>

	* constraint.cc (normalize_concept_check): Avoid having to do
	two norm_cache lookups.  Remove unnecessary early exit for an
	ill-formed concept definition.

2023-05-19  Patrick Palka  <ppalka@redhat.com>

	PR c++/97340
	* pt.cc (lookup_and_finish_template_variable): Don't call
	convert_from_reference.
	(tsubst_copy_and_build) <case TEMPLATE_ID_EXPR>: Call
	convert_from_reference on the result of
	lookup_and_finish_template_variable.

2023-05-18  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* call.cc (promoted_arithmetic_type_p): Use _P defines from tree.h.
	(build_conditional_expr): Ditto.
	(convert_like_internal): Ditto.
	(convert_arg_to_ellipsis): Ditto.
	(build_over_call): Ditto.
	(compare_ics): Ditto.
	* class.cc (is_empty_base_ref): Ditto.
	* coroutines.cc (rewrite_param_uses): Ditto.
	* cp-tree.h (DECL_DISCRIMINATOR_P): Ditto.
	(ARITHMETIC_TYPE_P): Ditto.
	* cvt.cc (ocp_convert): Ditto.
	* cxx-pretty-print.cc (pp_cxx_template_argument_list): Ditto.
	* decl.cc (layout_var_decl): Ditto.
	(get_tuple_size): Ditto.
	* error.cc (dump_simple_decl): Ditto.
	* lambda.cc (start_lambda_scope): Ditto.
	* mangle.cc (write_template_arg): Ditto.
	* method.cc (spaceship_comp_cat): Ditto.
	* module.cc (node_template_info): Ditto.
	(trees_out::start): Ditto.
	(trees_out::decl_node): Ditto.
	(trees_in::read_var_def): Ditto.
	(set_instantiating_module): Ditto.
	* name-lookup.cc (maybe_record_mergeable_decl): Ditto.
	(consider_decl): Ditto.
	(maybe_add_fuzzy_decl): Ditto.
	* pt.cc (convert_nontype_argument): Ditto.
	* semantics.cc (handle_omp_array_sections_1): Ditto.
	(finish_omp_clauses): Ditto.
	(finish_omp_target_clauses_r): Ditto.
	(is_this_parameter): Ditto.
	* tree.cc (build_cplus_array_type): Ditto.
	(is_this_expression): Ditto.
	* typeck.cc (do_warn_enum_conversions): Ditto.
	* typeck2.cc (store_init_value): Ditto.
	(check_narrowing): Ditto.

2023-05-17  Jakub Jelinek  <jakub@redhat.com>

	PR c++/109868
	* init.cc (build_zero_init_1): Don't initialize zero-width bitfields.
	For unions only initialize the first FIELD_DECL.

2023-05-16  Marek Polacek  <polacek@redhat.com>

	PR c++/109774
	* typeck.cc (check_return_expr): In a template, return only after
	suppressing -Wdangling-reference.

2023-05-16  Patrick Palka  <ppalka@redhat.com>

	PR c++/109871
	* call.cc (add_list_candidates): Check for invalid designated
	initialization sooner and even for types that have a list
	constructor.

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

	PR c++/109745
	* typeck2.cc (poison_mutable_constructors): Define.
	(store_init_value): Use it instead of setting
	CONSTRUCTOR_MUTABLE_POISON directly.

2023-05-11  Patrick Palka  <ppalka@redhat.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	PR c++/83258
	PR c++/80488
	PR c++/97700
	* pt.cc (convert_nontype_argument_function): Remove linkage
	requirement for C++17 and later.
	(invalid_tparm_referent_p) <case ADDR_EXPR>: Restrict
	DECL_ARTIFICIAL rejection test to VAR_DECL.

2023-05-10  Marek Polacek  <polacek@redhat.com>

	PR c++/109680
	* method.cc (build_trait_object): New.
	(assignable_expr): Use it.
	(ref_xes_from_temporary): Likewise.
	(is_convertible_helper): Likewise.  Check FUNC_OR_METHOD_TYPE_P.

2023-05-10  Jason Merrill  <jason@redhat.com>

	* call.cc (convert_like_internal): Share ck_ref_bind handling
	between all bad conversions.

2023-05-10  Jason Merrill  <jason@redhat.com>

	DR 2543
	* constexpr.cc (cxx_eval_outermost_constant_expr): Preserve
	TARGET_EXPR flags.
	(potential_constant_expression_1): Check TARGET_EXPR_ELIDING_P.
	* typeck2.cc (store_init_value): Diagnose constinit sooner.

2023-05-10  Jason Merrill  <jason@redhat.com>

	* constexpr.cc (cxx_eval_outermost_constant_expr): Always check
	for address of immediate fn.
	(maybe_constant_init_1): Evaluate PTRMEM_CST.

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

	PR c++/109756
	* parser.cc (cp_parser_std_attribute): For unknown attributes with
	arguments set TREE_VALUE (attribute) to error_mark_node after skipping
	the balanced tokens.
	(cp_parser_std_attribute_list): If ... is used after attribute without
	arguments, diagnose it and return error_mark_node.  If
	TREE_VALUE (attribute) is error_mark_node, don't call
	make_pack_expansion nor return early error_mark_node.

2023-05-09  Patrick Palka  <ppalka@redhat.com>

	PR c++/109752
	* constraint.cc (satisfaction_cache::satisfaction_cache): In the
	unexpected case of evaluating an atom for the first time noisily,
	remove the cache slot that we inserted.

2023-05-09  Patrick Palka  <ppalka@redhat.com>

	PR c++/109761
	* parser.cc (cp_parser_class_specifier): Don't pass a class
	context to noexcept_override_late_checks.
	(noexcept_override_late_checks): Remove 'type' parameter
	and use DECL_CONTEXT of 'fndecl' instead.

2023-05-09  Jakub Jelinek  <jakub@redhat.com>

	PR c++/109756
	* cp-gimplify.cc (process_stmt_assume_attribute): Diagnose pack
	expansion of assume attribute.

2023-05-08  Patrick Palka  <ppalka@redhat.com>

	PR c++/106214
	PR c++/93107
	* pt.cc (do_auto_deduction): Move up resolve_nondeduced_context
	calls to happen before do_class_deduction.  Add some
	error_mark_node tests.

2023-05-07  Patrick Palka  <ppalka@redhat.com>

	PR c++/85979
	* cxx-pretty-print.cc (cxx_pretty_printer::unary_expression)
	<case ALIGNOF_EXPR>: Consider ALIGNOF_EXPR_STD_P.
	* error.cc (dump_expr) <case ALIGNOF_EXPR>: Likewise.

2023-05-07  Patrick Palka  <ppalka@redhat.com>

	DR 2256
	PR c++/103091
	* decl.cc (decl_jump_unsafe): Return bool instead of int.
	Don't consider TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
	(check_previous_goto_1): Simplify now that decl_jump_unsafe
	returns bool instead of int.
	(check_goto): Likewise.

2023-05-07  Patrick Palka  <ppalka@redhat.com>

	* pt.cc (instantiate_alias_template): Exit early upon
	error from coerce_template_parms.  Remove dependence test
	guarding constraints_satisfied_p.

2023-05-07  Patrick Palka  <ppalka@redhat.com>

	* cp-tree.h (PLACEHOLDER_TYPE_CONSTRAINTS_INFO): Harden via
	TEMPLATE_TYPE_PARM_CHECK.
	(TPARMS_PRIMARY_TEMPLATE): Harden via TREE_VEC_CHECK.
	(TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): Harden via
	TEMPLATE_TEMPLATE_PARM_CHECK.
	* cxx-pretty-print.cc (cxx_pretty_printer::simple_type_specifier):
	Guard PLACEHOLDER_TYPE_CONSTRAINTS access.
	* error.cc (dump_type) <case TEMPLATE_TYPE_PARM>: Use separate
	variable to store CLASS_PLACEHOLDER_TEMPLATE result.
	* pt.cc (outer_template_args): Use strip_innermost_template_args.
	(any_type_dependent_arguments_p): Exit early if
	!processing_template_decl.  Use range-based for.
	(any_dependent_template_arguments_p): Likewise.

2023-05-07  Patrick Palka  <ppalka@redhat.com>

	PR c++/98283
	* pt.cc (tsubst_copy_and_build) <case COMPONENT_REF>: Propagate
	REF_PARENTHESIZED_P more generally via force_paren_expr.
	* semantics.cc (force_paren_expr): Document default argument.

2023-05-07  Patrick Palka  <ppalka@redhat.com>

	PR c++/109651
	* pt.cc (coerce_template_args_for_ttp): Mention we can hit the
	current_template_parms fallback when level-lowering a bound ttp.
	(tsubst_template_decl): Add lambda_tparms parameter.  Prefer to
	use lambda_tparms instead of substituting DECL_TEMPLATE_PARMS.
	(tsubst_decl) <case TEMPLATE_DECL>: Pass NULL_TREE as lambda_tparms
	to tsubst_template_decl.
	(tsubst_lambda_expr): For a generic lambda, substitute
	DECL_TEMPLATE_PARMS and set current_template_parms to it
	before substituting the function type.  Pass the substituted
	DECL_TEMPLATE_PARMS as lambda_tparms to tsubst_template_decl.

2023-05-07  Patrick Palka  <ppalka@redhat.com>

	PR c++/109480
	* semantics.cc (enforce_access): Check current_template_parms
	instead of processing_template_decl when deciding whether to
	defer the access check.

2023-05-07  Patrick Palka  <ppalka@redhat.com>

	PR c++/109480
	* constexpr.cc (potential_constant_expression_1) <case CALL_EXPR>:
	Reorganize to call get_fns sooner.  Remove special handling of
	the object argument of a non-static member function call.  Remove
	dead store to 'fun'.

2023-05-05  Jason Merrill  <jason@redhat.com>

	Revert:
	2023-04-27  Jason Merrill  <jason@redhat.com>

	PR c++/61445
	* pt.cc (instantiate_decl): Assert !defer_ok for local
	class members.

2023-05-03  Jason Merrill  <jason@redhat.com>

	PR c++/91618
	PR c++/109649
	* friend.cc (do_friend): Don't call check_explicit_specialization if
	DECL_TEMPLATE_INFO is already set.
	* decl2.cc (check_classfn): Set DECL_TEMPLATE_INFO.
	* name-lookup.cc (set_decl_namespace): Likewise.

2023-05-03  Jakub Jelinek  <jakub@redhat.com>

	* cp-gimplify.cc (cp_fold_data): Move definition earlier.
	(cp_gimplify_expr): Pass address of ff_genericize | ff_mce_false
	constructed data rather than &pset to cp_walk_tree with cp_fold_r.

2023-05-03  Jason Merrill  <jason@redhat.com>

	* pt.cc (reduce_template_parm_level): Fix comparison of
	template template parm to cached version.

2023-05-02  Jason Merrill  <jason@redhat.com>

	* pt.cc (instantiate_class_template): Skip the RECORD_TYPE
	of a class template.
	(tsubst_template_decl): Clear CLASSTYPE_USE_TEMPLATE.

2023-05-02  Jason Merrill  <jason@redhat.com>

	* name-lookup.cc (pop_from_top_level): Don't
	invalidate_class_lookup_cache.

2023-05-02  Jason Merrill  <jason@redhat.com>

	PR c++/109678
	* cp-tree.h (lookup_base): Add offset parm.
	* constexpr.cc (cxx_fold_indirect_ref_1): Pass it.
	* search.cc (struct lookup_base_data_s): Add offset.
	(dfs_lookup_base): Handle it.
	(lookup_base): Pass it.

2023-05-02  Jason Merrill  <jason@redhat.com>

	PR c++/109678
	* constexpr.cc (cxx_fold_indirect_ref_1): Handle empty base first.

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

	PR c++/109666
	* name-lookup.cc (maybe_push_to_top_level)
	(maybe_pop_from_top_level): Split out...
	* pt.cc (instantiate_body): ...from here.
	* init.cc (maybe_instantiate_nsdmi_init): Use them.
	* name-lookup.h: Declare them..

2023-04-28  Eugene Rozenfeld  <erozen@microsoft.com>

	* Make-lang.in: Merge perf data collected when compiling cc1plus and runtime libraries

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

	* call.cc (print_conversion_rejection): Use iloc_sentinel.

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

	PR c++/61445
	* pt.cc (instantiate_decl): Assert !defer_ok for local
	class members.

2023-04-26  Jason Merrill  <jason@redhat.com>

	* init.cc (nsdmi_inst): Remove.
	(maybe_instantiate_nsdmi_init): Use DECL_INITIAL instead.

2023-04-26  Jason Merrill  <jason@redhat.com>

	PR c++/109241
	* pt.cc (instantiate_class_template): Do partially instantiate.
	(tsubst_expr): Do call complete_type for partial instantiations.

2023-04-26  Jason Merrill  <jason@redhat.com>

	PR c++/69836
	* pt.cc (regenerate_decl_from_template): Skip unique friends.

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

	* pt.cc (most_specialized_partial_spec): Exit early when
	DECL_TEMPLATE_SPECIALIZATIONS is empty.  Move local variable
	declarations closer to their first use.  Remove redundant
	flag_concepts test.  Remove redundant forward declaration.

2023-04-25  Patrick Palka  <ppalka@redhat.com>

	PR c++/108975
	* pt.cc (value_dependent_expression_p) <case VAR_DECL>:
	Suppress conservative early exit for reference variables
	when DECL_HAS_VALUE_EXPR_P.

2023-04-25  Tobias Burnus  <tobias@codesourcery.com>

	* parser.cc (cp_parser_omp_scan_loop_body): Handle
	zero exec statements before/after 'omp scan'.

2023-04-24  Patrick Palka  <ppalka@redhat.com>

	* cp-tree.h (cp_expr_location): Define here.
	* tree.cc (cp_expr_location): Don't define here.

2023-04-21  Jason Merrill  <jason@redhat.com>

	PR c++/108099
	* decl.cc (grokdeclarator): Don't clear typedef_decl after 'unsigned
	typedef' pedwarn.  Use c_common_signed_or_unsigned_type.  Also
	handle 'signed typedef'.

2023-04-21  Patrick Palka  <ppalka@redhat.com>

	* tree.cc (cp_walk_subtrees): Avoid repeatedly dereferencing tp.
	<case DECLTYPE_TYPE>: Use cp_unevaluated and WALK_SUBTREE.
	<case ALIGNOF_EXPR etc>: Likewise.

2023-04-20  Patrick Palka  <ppalka@redhat.com>

	* pt.cc (tsubst) <case TEMPLATE_TYPE_PARM>: Don't recurse when
	level lowering a cv-qualified type template parameter.  Remove
	recursive loop breaker in the level lowering case for constrained
	autos.  Use the TEMPLATE_PARM_DESCENDANTS cache in this case as
	well.

2023-04-20  Patrick Palka  <ppalka@redhat.com>

	* constraint.cc (diagnose_trait_expr): Convert a TREE_VEC
	of arguments into a TREE_LIST for sake of pretty printing.
	* cxx-pretty-print.cc (pp_cxx_trait): Handle TREE_VEC
	instead of TREE_LIST of trailing variadic trait arguments.
	* method.cc (constructible_expr): Likewise.
	(is_xible_helper): Likewise.
	* parser.cc (cp_parser_trait): Represent trailing variadic trait
	arguments as a TREE_VEC instead of TREE_LIST.
	* pt.cc (value_dependent_expression_p): Handle TREE_VEC
	instead of TREE_LIST of trailing variadic trait arguments.
	* semantics.cc (finish_type_pack_element): Likewise.
	(check_trait_type): Likewise.

2023-04-20  Patrick Palka  <ppalka@redhat.com>

	* tree.cc (strip_typedefs): Move TREE_LIST handling to
	strip_typedefs_expr.  Dispatch to strip_typedefs_expr for
	non-type 't'.
	<case TYPENAME_TYPE>: Remove manual dispatching to
	strip_typedefs_expr.
	<case TRAIT_TYPE>: Likewise.
	(strip_typedefs_expr): Replaces calls to strip_typedefs_expr
	with strip_typedefs throughout.  Don't dispatch to strip_typedefs
	for type 't'.
	<case TREE_LIST>: Replace this with the better version from
	strip_typedefs.

2023-04-19  Patrick Palka  <ppalka@redhat.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	PR c++/100157
	* cp-trait.def (TYPE_PACK_ELEMENT): Define.
	* cp-tree.h (finish_trait_type): Add complain parameter.
	* cxx-pretty-print.cc (pp_cxx_trait): Handle
	CPTK_TYPE_PACK_ELEMENT.
	* parser.cc (cp_parser_constant_expression): Document default
	arguments.
	(cp_parser_trait): Handle CPTK_TYPE_PACK_ELEMENT.  Pass
	tf_warning_or_error to finish_trait_type.
	* pt.cc (tsubst) <case TRAIT_TYPE>: Handle non-type first
	argument.  Pass complain to finish_trait_type.
	* semantics.cc (finish_type_pack_element): Define.
	(finish_trait_type): Add complain parameter.  Handle
	CPTK_TYPE_PACK_ELEMENT.
	* tree.cc (strip_typedefs): Handle non-type first argument.
	Pass tf_warning_or_error to finish_trait_type.
	* typeck.cc (structural_comptypes) <case TRAIT_TYPE>: Use
	cp_tree_equal instead of same_type_p for the first argument.

2023-04-19  Patrick Palka  <ppalka@redhat.com>

	PR c++/109556
	* pt.cc (try_class_unification): Don't ggc_free the copy of
	'targs'.

2023-04-19  Jason Merrill  <jason@redhat.com>

	PR c++/108099
	* decl.cc (grokdeclarator): Keep typedef_decl for __int128_t.

2023-04-17  Patrick Palka  <ppalka@redhat.com>

	PR c++/109531
	* pt.cc (tsubst) <case BOUND_TEMPLATE_TEMPLATE_PARM>:
	In the level-lowering case just use lookup_template_class
	to rebuild the bound ttp.

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

	PR c++/109357
	* constexpr.cc (cxx_eval_constant_expression) [TARGET_EXPR]:
	Check for complex initializer.

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

	PR c++/109420
	* decl.cc (make_typename_type): Also ignore non-types during the
	lookup if tag_type corresponds to an elaborated-type-specifier.
	* pt.cc (tsubst) <case TYPENAME_TYPE>: Pass class_type or
	enum_type as tag_type to make_typename_type accordingly instead
	of always passing typename_type.

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

	PR c++/109277
	* semantics.cc (check_trait_type): Handle incomplete type directly.
	* typeck2.cc (cxx_incomplete_type_diagnostic): Remove assert.

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

	* typeck2.cc (cxx_incomplete_type_diagnostic): Return bool.
	* cp-tree.h (cxx_incomplete_type_diagnostic): Adjust.

2023-04-12  Jakub Jelinek  <jakub@redhat.com>

	* Make-lang.in (s-cp-module-version): New target.
	(cp/module.o): Depend on it.
	(MODULE_VERSION): Remove variable.
	(CFLAGS-cp/module.o): For -DMODULE_VERSION= argument just
	cat s-cp-module-version.

2023-04-09  Iain Sandoe  <iain@sandoe.co.uk>

	* coroutines.cc (coro_rewrite_function_body): Ensure that added
	bind expressions have scope blocks.

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

	PR c++/107484
	* decl2.cc (find_last_decl): Return early if DECL_USE_TEMPLATE.

2023-04-03  Patrick Palka  <ppalka@redhat.com>

	PR c++/109300
	* decl.cc (cp_finish_decl): Diagnose ordinary auto deduction
	with no initializer, instead of asserting.

2023-04-01  Patrick Palka  <ppalka@redhat.com>

	PR c++/109160
	* cp-tree.h (do_auto_deduction): Add defaulted tmpl parameter.
	* pt.cc (convert_template_argument): Pass 'in_decl' as 'tmpl' to
	do_auto_deduction.
	(tsubst_decl) <case VAR_/TYPE_DECL>: Pass 'tmpl' instead of 't' as
	'in_decl' to coerce_template_parms.
	(unify) <case TEMPLATE_PARM_INDEX>: Pass TPARMS_PRIMARY_TEMPLATE
	as 'tmpl' to do_auto_deduction.
	(do_auto_deduction): Document default arguments.  Rename local
	variable 'tmpl' to 'ctmpl'.  Use 'tmpl' to obtain a full set of
	template arguments for satisfaction in the adc_unify case.

2023-04-01  Patrick Palka  <ppalka@redhat.com>

	PR c++/53164
	PR c++/105848
	* pt.cc (invalid_tparm_referent_p): Accept ADDR_EXPR of
	FUNCTION_DECL.
	(instantiate_class_template): Call mark_template_arguments_used.
	(tsubst_copy_and_build) <case CALL_EXPR>: Revert r13-995 change.
	(mark_template_arguments_used): Define.
	(instantiate_body): Call mark_template_arguments_used.

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

	PR c++/101118
	* coroutines.cc (flatten_await_stmt): Use the current count of
	promoted temporaries to build a unique name for the frame entries.

2023-03-30  Jason Merrill  <jason@redhat.com>

	PR c++/105452
	* search.cc (type_context_for_name_lookup): New.
	(accessible_p): Handle anonymous union.
	* init.cc (maybe_instantiate_nsdmi_init): Use
	type_context_for_name_lookup.
	* parser.cc (cp_parser_class_specifier): Likewise.
	* cp-tree.h (type_context_for_name_lookup): Declare.

2023-03-30  Jason Merrill  <jason@redhat.com>

	PR c++/105221
	* pt.cc (unify) [FUNCTION_TYPE]: Handle function pointer
	conversions.

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

	PR c++/109319
	* decl2.cc (grok_array_decl): After emitting a pedwarn for
	-Wcomma-subscript, if processing_template_decl set orig_index_exp
	to compound expr from orig_index_exp_list.

2023-03-30  Jason Merrill  <jason@redhat.com>

	PR c++/107897
	PR c++/108887
	* decl2.cc (record_mangling): Use symtab_node::reset.

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

	PR c++/109278
	* call.cc (convert_like_internal): If pedwarn for extended float
	type conversions doesn't report anything, avoid calling
	maybe_inform_about_fndecl_for_bogus_argument_init.

2023-03-29  Jason Merrill  <jason@redhat.com>

	PR c++/109321
	PR c++/109320
	* pt.cc (alias_ctad_tweaks): Rewrite deduced args.
	(type_targs_deducible_from): Handle null pack deduction.

2023-03-28  David Malcolm  <dmalcolm@redhat.com>

	PR c/107002
	* parser.cc (cp_parser_binary_expression): Update for new param of
	check_for_xor_used_as_pow.

2023-03-28  Jakub Jelinek  <jakub@redhat.com>

	PR c++/109309
	* contracts.cc: Include intl.h.
	(check_postcondition_result): Don't form diagnostics from two halves
	of an English message to allow translations.

2023-03-24  Patrick Palka  <ppalka@redhat.com>

	PR c++/106969
	* parser.cc (cp_parser_class_specifier): Clear current_class_ptr
	and current_class_ref sooner, before parsing a class definition.

2023-03-24  Jason Merrill  <jason@redhat.com>

	PR c++/105481
	* pt.cc (type_unification_real): Adjust for partial ordering.

2023-03-23  Jason Merrill  <jason@redhat.com>

	PR c++/105996
	* typeck.cc (build_ptrmemfunc): Drop 0-offset optimization
	and location wrappers.

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

	PR c++/107532
	* call.cc (class_has_reference_member_p): New.
	(class_has_reference_member_p_r): New.
	(reference_like_class_p): Don't look for a specific constructor.
	Use a DFS walk with class_has_reference_member_p_r.

2023-03-23  Jason Merrill  <jason@redhat.com>

	PR c++/109241
	* pt.cc (find_parameter_packs_r): Handle null TREE_BINFO.

2023-03-22  Jason Merrill  <jason@redhat.com>

	PR c++/108390
	* pt.cc (unify): Use fold of build_nop instead of fold_convert.

2023-03-22  Jason Merrill  <jason@redhat.com>

	PR c++/108795
	* semantics.cc (finish_id_expression_1): Check scope before
	returning id_expression.

2023-03-22  Alex Coplan  <alex.coplan@arm.com>

	PR c++/109177
	* call.cc (build_over_call): Use make_temp_override to suppress
	both unavailable and deprecated warnings when calling
	build_addr_func.

2023-03-21  Jason Merrill  <jason@redhat.com>

	PR c++/106890
	* init.cc (maybe_instantiate_nsdmi_init): Don't leave
	current_function_decl set to a constructor.

2023-03-20  Marek Polacek  <polacek@redhat.com>

	PR c++/109159
	* call.cc (add_template_candidate_real): Add explicit decls to the
	set of candidates when the initializer is a braced-init-list.

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

	PR c++/109164
	* cp-tree.h (var_needs_tls_wrapper): Declare.
	* decl2.cc (var_needs_tls_wrapper): No longer static.
	* decl.cc (cp_finish_decl): Clear TREE_READONLY on TLS variables
	for which a TLS wrapper will be needed.

2023-03-17  Jason Merrill  <jason@redhat.com>

	PR c++/108975
	* lambda.cc (prune_lambda_captures): Don't bother in a template.

2023-03-17  Jason Merrill  <jason@redhat.com>

	PR c++/109172
	* except.cc (build_throw): Check dtor access.

2023-03-17  Jason Merrill  <jason@redhat.com>

	PR c++/69410
	* friend.cc (do_friend): Handle namespace as scope argument.
	* decl.cc (grokdeclarator): Pass down in_namespace.

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

	PR c++/105809
	* init.cc (get_nsdmi): Split out...
	(maybe_instantiate_nsdmi_init): ...this function.
	* cp-tree.h: Declare it.
	* pt.cc (tsubst_expr): Use it.

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

	PR c++/108242
	* pt.cc (tsubst_expr) [TAG_DEFN]: Handle partial instantiation.

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

	PR c++/101869
	* semantics.cc (finish_qualified_id_expr): Don't try to build a
	pointer-to-member if the scope is an enumeration.

2023-03-16  Patrick Palka  <ppalka@redhat.com>

	PR c++/109030
	* constexpr.cc (maybe_constant_init_1): For an unevaluated
	non-manifestly-constant operand, don't constant evaluate
	and instead call fold_to_constant as in maybe_constant_value.

2023-03-16  Patrick Palka  <ppalka@redhat.com>

	PR c++/100288
	* constraint.cc (satisfaction_cache::get): Relax overly strict
	checking assert in the constraint recursion case.

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

	PR c++/105406
	* coroutines.cc (build_co_await): Handle lvalue 'o'.

2023-03-15  Jason Merrill  <jason@redhat.com>

	PR c++/103871
	PR c++/98056
	* typeck.cc (cp_build_modify_expr): Allow array initialization of
	DECL_ARTIFICIAL variable.

2023-03-15  Marek Polacek  <polacek@redhat.com>

	PR c++/107280
	* constexpr.cc (cxx_eval_store_expression): Strip location wrappers.

2023-03-15  Jason Merrill  <jason@redhat.com>

	PR c++/58538
	* semantics.cc (check_template_template_default_arg): Check
	maybe_get_template_decl_from_type_decl.

2023-03-15  Jason Merrill  <jason@redhat.com>

	PR c++/108179
	PR c++/104107
	PR c++/95036
	* pt.cc (coerce_template_template_parms): Use args from
	DECL_CONTEXT (arg_tmpl) instead of outer_args.

2023-03-15  Jason Merrill  <jason@redhat.com>

	PR c++/108179
	* pt.cc	(coerce_template_template_parms): Take the arg and parm
	templates directly.
	(coerce_template_template_parm): Adjust.
	(template_template_parm_bindings_ok_p): Adjust.
	(convert_template_argument): Adjust.

2023-03-14  Patrick Palka  <ppalka@redhat.com>

	PR c++/96830
	* pt.cc (push_inline_template_parms_recursive): Set
	TEMPLATE_PARMS_CONSTRAINTS.
	(push_template_decl): For an out-of-line declaration, verify
	constraints for each enclosing template scope match those of the
	original template declaratation.

2023-03-14  Patrick Palka  <ppalka@redhat.com>

	PR c++/96830
	* pt.cc (redeclare_class_template): Add missing "of" in
	constraint mismatch diagnostic.
	(tsubst_friend_class): For an already declared class template,
	substitute and pass the friend declaration's constraints to
	redeclare_class_template instead of passing the existing
	template's constraints.

2023-03-14  Jason Merrill  <jason@redhat.com>

	PR c++/108468
	* pt.cc (unify_pack_expansion): Check that TPARMS_PRIMARY_TEMPLATE
	is non-null.

2023-03-14  Jason Merrill  <jason@redhat.com>

	PR c++/107310
	* cp-gimplify.cc (genericize_if_stmt): Restore folding
	of constant conditions.

2023-03-14  Jakub Jelinek  <jakub@redhat.com>

	PR c++/109096
	* tree.cc (record_has_unique_obj_representations): Ignore unnamed
	bitfields.

2023-03-13  Jason Merrill  <jason@redhat.com>

	PR c++/107128
	* parser.cc (cp_parser_set_decl_spec_type): Use
	redefined_builtin_type for extended_float_type_p.

2023-03-13  Marek Polacek  <polacek@redhat.com>

	PR c++/107532
	* call.cc (reference_like_class_p): Check for std::span.

2023-03-10  Jakub Jelinek  <jakub@redhat.com>

	PR c++/107558
	* decl.cc (cp_finish_decl): Don't clear TREE_READONLY on
	automatic non-aggregate variables just because of
	-fmerge-all-constants.

2023-03-10  Jakub Jelinek  <jakub@redhat.com>

	PR c++/109039
	* class.cc (end_of_class): For bit-fields, instead of computing
	offset as sum of byte_position (field) and DECL_SIZE_UNIT (field),
	compute it as sum of bit_position (field) and DECL_SIZE (field)
	divided by BITS_PER_UNIT rounded up.

2023-03-10  Jason Merrill  <jason@redhat.com>

	PR c++/108972
	* lambda.cc (compare_lambda_template_head): Check more
	for error_mark_node.

2023-03-10  Jason Merrill  <jason@redhat.com>

	PR c++/108566
	* mangle.cc (anon_aggr_naming_decl): New.
	(write_unqualified_name): Use it.

2023-03-10  Jakub Jelinek  <jakub@redhat.com>

	PR c/108079
	* decl.cc (poplevel): Suppress OPT_Wunused_variable warning
	after diagnosing it.

2023-03-10  Jason Merrill  <jason@redhat.com>

	PR c++/108099
	* decl.cc (grokdeclarator): Handle non-typedef typedef_decl.

2023-03-10  Jason Merrill  <jason@redhat.com>

	PR c++/108542
	* class.cc (instantiate_type): Strip location wrapper.

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

	PR c++/108773
	* init.cc (find_allocator_temps_r): New.
	(combine_allocator_temps): Replace find_allocator_temp.
	(build_vec_init): Adjust.

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

	DR 2664
	PR c++/102529
	* pt.cc (alias_ctad_tweaks): Continue after deduction failure.

2023-03-09  Jason Merrill  <jason@redhat.com>
	    Michael Spertus  <mike@spertus.com>

	PR c++/105841
	* pt.cc	(corresponding_template_parameter_list): Split out...
	(corresponding_template_parameter): ...from here.
	(find_template_parameters): Factor out...
	(find_template_parameter_info::find_in): ...this function.
	(find_template_parameter_info::find_in_recursive): New.
	(find_template_parameter_info::found): New.
	(alias_ctad_tweaks): Only add parms used in the deduced args.

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

	* cp-trait.def (IS_DEDUCIBLE): Add space to name.

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

	PR c++/105841
	* cp-trait.def (IS_DEDUCIBLE): New.
	* cxx-pretty-print.cc (pp_cxx_trait): Handle non-type.
	* parser.cc (cp_parser_trait): Likewise.
	* tree.cc (cp_tree_equal): Likewise.
	* pt.cc (tsubst_copy_and_build): Likewise.
	(type_targs_deducible_from): New.
	(alias_ctad_tweaks): Use it.
	* semantics.cc (trait_expr_value): Handle CPTK_IS_DEDUCIBLE.
	(finish_trait_expr): Likewise.
	* constraint.cc (diagnose_trait_expr): Likewise.
	* cp-tree.h (type_targs_deducible_from): Declare.

2023-03-07  Jason Merrill  <jason@redhat.com>

	PR c++/108526
	PR c++/106651
	* pt.cc (tsubst_function_decl): Don't replace the closure
	parameter if DECL_STATIC_FUNCTION_P.

2023-03-07  Marek Polacek  <polacek@redhat.com>

	PR c++/107532
	* call.cc (reference_like_class_p): New.
	(do_warn_dangling_reference): Add new bool parameter.  See through
	reference_like_class_p.

2023-03-07  Jakub Jelinek  <jakub@redhat.com>

	PR c++/109042
	* rtti.cc (emit_support_tinfo_1): Don't assert that last
	unemitted_tinfo_decls element is tinfo, instead pop from it only in
	that case.
	* decl2.cc (c_parse_final_cleanups): Don't call emit_tinfo_decl
	for unemitted_tinfO_decls which have already non-NULL DECL_INITIAL.

2023-03-07  Marek Polacek  <polacek@redhat.com>

	PR c++/109030
	* constexpr.cc (cxx_eval_call_expression): Relax assert.

2023-03-07  Marek Polacek  <polacek@redhat.com>

	PR c++/107939
	* constexpr.cc (potential_constant_expression_1) <case CALL_EXPR>: Pass
	'any' when recursing on a VAR_DECL and not a pointer to function.

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

	PR c++/108702
	* constexpr.cc: Include toplev.h.
	(cxx_eval_constant_expression) <case DECL_EXPR>: When seeing a local
	static initialized by constant expression outside of a constexpr
	function which has been deferred by make_rtl_for_nonlocal_decl,
	call rest_of_decl_compilation on it.

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

	PR c++/108998
	* pt.cc (el_data::skipped_trees): New data member.
	(extract_locals_r): Push to skipped_trees any unevaluated
	contexts that we skipped over.
	(extract_local_specs): For the second walk, start from each
	tree in skipped_trees.

2023-03-03  Alexandre Oliva  <oliva@adacore.com>

	* typeck.cc (cp_build_binary_op): Suppress redundant warning
	for pfn null test in pmfn test with vbit-in-delta.

2023-03-02  Jakub Jelinek  <jakub@redhat.com>

	PR target/108883
	* cp-tree.h (enum cp_tree_index): Remove CPTI_FALLBACK_DFLOAT*_TYPE
	enumerators.
	(fallback_dfloat32_type, fallback_dfloat64_type,
	fallback_dfloat128_type): Remove.
	* rtti.cc (emit_support_tinfo_1): If not emitted already, call
	emit_tinfo_decl and remove from unemitted_tinfo_decls right away.
	(emit_support_tinfos): Move &dfloat*_type_node from fundamentals array
	into new fundamentals_with_fallback array.  Call emit_support_tinfo_1
	on elements of that array too, with the difference that if
	the type is NULL, use a fallback REAL_TYPE for it temporarily.
	Drop the !targetm.decimal_float_supported_p () handling.  Call
	targetm.emit_support_tinfos at the end.
	* mangle.cc (write_builtin_type): Remove references to
	fallback_dfloat*_type.  Handle bfloat16_type_node mangling.

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

	PR c++/108243
	PR c++/97553
	* cp-gimplify.cc (cp_fully_fold): Add an internal overload that
	additionally takes and propagate an mce_value parameter, and
	define the existing public overload in terms of it.
	(cp_fully_fold_init): Pass mce_false to cp_fully_fold.

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

	PR c++/108243
	* constexpr.cc (maybe_constant_init_1): Override
	manifestly_const_eval to true if is_static.

2023-03-02  Jakub Jelinek  <jakub@redhat.com>

	PR debug/108716
	* cp-gimplify.cc (cp_genericize_r) <case USING_STMT>: Set
	DECL_SOURCE_LOCATION on IMPORTED_DECL to expression location
	of USING_STMT or input_location.

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

	PR c++/106259
	* parser.cc (class_decl_loc_t::diag_mismatched_tags): If the first
	lookup of SPEC didn't find anything, try to look for
	most_general_template.

2023-03-02  Jakub Jelinek  <jakub@redhat.com>

	PR c++/105839
	* parser.cc (cp_convert_omp_range_for): Allow in assert
	decomp_first_name without DECL_HAS_VALUE_EXPR_P if it has
	error_mark_node type.
	(cp_finish_omp_range_for): Don't set DECL_HAS_VALUE_EXPR_P back
	on decls which have error_mark_node type.

2023-03-01  Marek Polacek  <polacek@redhat.com>

	PR c++/107574
	* constexpr.cc (cxx_eval_constant_expression): Emit an error when
	a PTRMEM_CST cannot be evaluated.

2023-03-01  Patrick Palka  <ppalka@redhat.com>

	* pt.cc (tsubst_scope): Define.
	(tsubst_decl) <case USING_DECL>: Call tsubst_scope instead of
	calling tsubst_scope with tf_qualifying_scope set.
	(tsubst_qualified_id): Call tsubst_scope instead of
	calling tsubst with tf_qualifying_scope set.
	(tsubst_copy): Immediately delegate to tsubst for all TYPE_P
	trees.  Remove tf_qualifying_scope manipulation.
	<case SCOPE_REF>: Call tsubst_scope instead of calling
	tsubst with tf_qualifying_scope set.

2023-03-01  Patrick Palka  <ppalka@redhat.com>
	    Jason Merrill  <jason@redhat.com>

	PR c++/108219
	PR c++/108218
	* constexpr.cc (fold_to_constant): Define.
	(maybe_constant_value): Move up early exit test for unevaluated
	operands.  Try reducing an unevaluated operand to a constant via
	fold_to_constant.
	(fold_non_dependent_expr_template): Add early exit test for
	CONSTANT_CLASS_P nodes.  Try reducing an unevaluated operand
	to a constant via fold_to_constant.
	* cp-tree.h (fold_to_constant): Declare.

2023-03-01  Jakub Jelinek  <jakub@redhat.com>

	PR c++/108606
	* constexpr.cc (potential_constant_expression_1) <case DECL_EXPR>:
	Only recurse on DECL_INITIAL (tmp) if tmp is a VAR_DECL, otherwise
	just return true.

2023-02-28  Patrick Palka  <ppalka@redhat.com>

	PR c++/108848
	* pt.cc (finish_template_variable): Move dependence check
	to here from ...
	(lookup_and_finish_template_variable): ... here.
	* semantics.cc (finish_id_expression_1): Call
	finish_template_variable sooner, before (and regardless of) the
	type_dependent_expression_p test.

2023-02-28  Marek Polacek  <polacek@redhat.com>

	PR c++/108550
	* pt.cc (lookup_and_finish_template_variable): Clear tf_partial.

2023-02-20  Marek Polacek  <polacek@redhat.com>

	PR c++/101073
	* constexpr.cc (cxx_eval_call_expression): Replace shortcutting trivial
	constructor/op= with a checking assert.

2023-02-20  Marek Polacek  <polacek@redhat.com>

	PR c++/108829
	* pt.cc (prepend_one_capture): Set LAMBDA_CAPTURE_EXPLICIT_P.
	(tsubst_lambda_expr): Pass LAMBDA_CAPTURE_EXPLICIT_P to
	prepend_one_capture.

2023-02-18  Jason Merrill  <jason@redhat.com>

	DR 2518
	PR c++/52809
	PR c++/53638
	PR c++/87389
	PR c++/89741
	PR c++/92099
	PR c++/104041
	PR c++/104691
	* semantics.cc (finish_static_assert): Don't diagnose in
	template context.

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

	PR c++/108243
	PR c++/97553
	* cp-gimplify.cc (enum fold_flags): Define.
	(fold_flags_t): Declare.
	(cp_fold_data::genericize): Replace this data member with ...
	(cp_fold_data::fold_flags): ... this.
	(cp_fold_r): Adjust use of cp_fold_data and calls to cp_fold.
	(cp_fold_function): Likewise.
	(cp_fold_maybe_rvalue): Add an internal overload that
	additionally takes and propagates a fold_flags_t parameter, and
	define the existing public overload in terms of it.
	(cp_fold_rvalue): Likewise.
	(cp_fully_fold_init): Adjust use of cp_fold_data.
	(fold_cache): Replace with ...
	(fold_caches): ... this 2-element array of caches.
	(get_fold_cache): Define.
	(clear_fold_cache): Adjust.
	(cp_fold): Add fold_flags_t parameter.  Use get_fold_cache.
	Pass flags to calls to cp_fold, cp_fold_rvalue and
	cp_fold_maybe_rvalue.
	<case CALL_EXPR>: If ff_mce_false is set, fold
	__builtin_is_constant_evaluated to false and pass mce_false to
	maybe_constant_value.

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

	* constexpr.cc (constexpr_call::manifestly_const_eval): Give
	it type int instead of bool.
	(constexpr_ctx::manifestly_const_eval): Give it type mce_value
	instead of bool.
	(cxx_eval_builtin_function_call): Adjust after making
	manifestly_const_eval tri-state.
	(cxx_eval_call_expression): Likewise.
	(cxx_eval_binary_expression): Likewise.
	(cxx_eval_conditional_expression): Likewise.
	(cxx_eval_constant_expression): Likewise.
	(cxx_eval_outermost_constant_expr): Likewise.
	(cxx_constant_value): Likewise.
	(cxx_constant_dtor): Likewise.
	(maybe_constant_value): Give manifestly_const_eval parameter
	type mce_value instead of bool and adjust accordingly.
	(fold_non_dependent_expr_template): Adjust call
	to cxx_eval_outermost_constant_expr.
	(fold_non_dependent_expr): Likewise.
	(maybe_constant_init_1): Likewise.
	* constraint.cc (satisfy_atom): Adjust call to
	maybe_constant_value.
	* cp-tree.h (enum class mce_value): Define.
	(maybe_constant_value): Adjust manifestly_const_eval parameter
	type and default argument.
	* decl.cc (compute_array_index_type_loc): Adjust call to
	maybe_constant_value.
	* pt.cc (convert_nontype_argument): Likewise.

2023-02-16  Patrick Palka  <ppalka@redhat.com>

	PR c++/107773
	* cp-tree.h (enum tsubst_flags): New flag tf_qualifying_scope.
	* decl.cc (make_typename_type): Use lookup_member instead of
	lookup_field.  If tf_qualifying_scope is set, pass want_type=true
	instead of =false to lookup_member.  Generalize format specifier
	in diagnostic to handle both type and non-type bindings.
	* pt.cc (tsubst_aggr_type_1): Clear tf_qualifying_scope.  Tidy
	the function.
	(tsubst_decl) <case USING_DECL>: Set tf_qualifying_scope when
	substituting USING_DECL_SCOPE.
	(tsubst): Clear tf_qualifying_scope right away and remember if
	it was set.  Do the same for tf_tst_ok sooner.
	<case TYPENAME_TYPE>: Set tf_qualifying_scope when substituting
	TYPE_CONTEXT.  Pass tf_qualifying_scope to make_typename_type
	if it was set.
	(tsubst_qualified_id): Set tf_qualifying_scope when substituting
	the scope.
	(tsubst_copy): Clear tf_qualifying_scope and remember if it was
	set.
	<case SCOPE_REF>: Set tf_qualifying_scope when substituting the
	scope.
	<case *_TYPE>: Pass tf_qualifying_scope to tsubst if it was set.
	* search.cc (lookup_member): Document default argument.

2023-02-16  Patrick Palka  <ppalka@redhat.com>

	* cp-tree.h: Mechanically drop static from static inline
	functions via s/^static inline/inline/g.

2023-02-15  Marek Polacek  <polacek@redhat.com>

	PR c++/106675
	* call.cc (joust_maybe_elide_copy): Return false for ck_ambig.

2023-02-10  Marek Polacek  <polacek@redhat.com>

	PR c++/107079
	* call.cc (set_up_extended_ref_temp): Pass var to maybe_constant_init.

2023-02-09  Tobias Burnus  <tobias@codesourcery.com>

	* parser.cc (cp_parser_omp_allocate): Parse align
	clause and check for restrictions.

2023-02-09  Jakub Jelinek  <jakub@redhat.com>

	PR c++/108698
	* mangle.cc (write_expression, write_template_arg): Handle
	EXCESS_PRECISION_EXPR with REAL_CST operand as
	write_template_arg_literal on fold_convert of the REAL_CST
	to EXCESS_PRECISION_EXPR type.

2023-02-06  Patrick Palka  <ppalka@redhat.com>

	PR c++/107461
	* cp-tree.h (call_expr_dependent_name): Declare.
	* pt.cc (iterative_hash_template_arg) <case CALL_EXPR>: Use
	call_expr_dependent_name instead of dependent_name.
	* tree.cc (call_expr_dependent_name): Define.
	(called_fns_equal): Adjust to take two CALL_EXPRs instead of
	CALL_EXPR_FNs thereof.  Use call_expr_dependent_name instead
	of dependent_name.
	(cp_tree_equal) <case CALL_EXPR>: Adjust call to called_fns_equal.

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

	PR c++/108158
	* constexpr.cc (cxx_eval_array_reference): Don't replace
	new_ctx.object.

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

	PR c++/107461
	* semantics.cc (finish_call_expr): Strip ADDR_EXPR from
	the selected callee during overload set pruning.

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

	PR c++/96745
	* class.cc (check_methods): Diagnose an unviable OVERLOAD
	set for CLASSTYPE_DESTRUCTOR differently from an ambiguous one.
	Then prune the OVERLOAD to a single function.
	(check_bases_and_members): Handle CLASSTYPE_DESTRUCTOR being
	an OVERLOAD when calling deduce_noexcept_on_destructor.
	Document why it has to be called before check_methods.

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

	PR c++/108579
	* class.cc (check_methods): Swap order of constraints_satisfied_p
	and copy/move_fn_p tests.

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

	PR c++/107755
	* call.cc (build_new_op): Don't call warn_logical_operator when
	processing a template.

2023-02-01  Jakub Jelinek  <jakub@redhat.com>

	PR c++/108607
	* constexpr.cc (cxx_eval_constant_expression): Handle OMP_*
	and OACC_* constructs as non-constant.
	(potential_constant_expression_1): Handle OMP_SCAN and OMP_SCOPE.

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

	* class.cc (note_name_declared_in_class): Change from permerror to
	-Wchanges-meaning pedwarn, forcing -pedantic-errors for most cases.

2023-01-31  Jason Merrill  <jason@redhat.com>

	PR c++/108559
	* cp-gimplify.cc (any_non_eliding_target_exprs): New.
	(cp_genericize_init): Check it.

2023-01-31  Marek Polacek  <polacek@redhat.com>

	PR c++/107593
	PR c++/108597
	* cp-tree.h (instantiation_dependent_expression_p): Don't
	declare here.

2023-01-26  Marek Polacek  <polacek@redhat.com>

	PR c++/105300
	* parser.cc: Remove unnecessary forward declarations.
	(cp_parser_string_literal): New wrapper.
	(cp_parser_string_literal_common): Renamed from
	cp_parser_string_literal.  Add a bool parameter.  Give an error when
	UDLs are not permitted.
	(cp_parser_userdef_string_literal): New wrapper.
	(finish_userdef_string_literal): Renamed from
	cp_parser_userdef_string_literal.
	(cp_parser_primary_expression): Call cp_parser_userdef_string_literal
	instead of cp_parser_string_literal.
	(cp_parser_linkage_specification): Move a variable declaration closer
	to its first use.
	(cp_parser_static_assert): Likewise.
	(cp_parser_operator): Call cp_parser_userdef_string_literal instead of
	cp_parser_string_literal.
	(cp_parser_asm_definition): Move a variable declaration closer to its
	first use.
	(cp_parser_asm_specification_opt): Move variable declarations closer to
	their first use.
	(cp_parser_asm_operand_list): Likewise.
	(cp_parser_asm_clobber_list): Likewise.

2023-01-26  Jakub Jelinek  <jakub@redhat.com>

	PR c++/108503
	* parser.cc (cp_convert_omp_range_for): If cp_finish_decomp has been
	called in !processing_template_decl with processing_template_decl
	temporarily set, clear DECL_HAS_VALUE_EXPR_P on the vars temporarily.
	(cp_finish_omp_range_for): And set it back again here.

2023-01-25  Jakub Jelinek  <jakub@redhat.com>

	PR c++/108525
	* mangle.cc (write_closure_type_name): Don't assume all
	lambda operator() fns are methods.

2023-01-24  Jason Merrill  <jason@redhat.com>

	PR c++/108504
	* parser.cc (cp_lexer_new_main): Pass C_LEX_STRING_NO_JOIN for first
	token, too.

2023-01-24  Jason Merrill  <jason@redhat.com>

	PR c++/108526
	* pt.cc (tsubst_function_decl): Handle static lambda.

2023-01-24  Jakub Jelinek  <jakub@redhat.com>

	PR c++/108474
	* cp-gimplify.cc (cp_fold_r): Revert 2023-01-19 changes.

2023-01-24  Jason Merrill  <jason@redhat.com>

	PR c++/107303
	PR c++/107329
	* cp-gimplify.cc (cp_fold_r) [TARGET_EXPR]: In case of double
	TARGET_EXPR, keep the outer one instead of the inner one.
	(maybe_replace_decl): New.

2023-01-23  Jason Merrill  <jason@redhat.com>

	PR c++/107267
	* cp-gimplify.cc (cp_gimplify_init_expr): Allow unexpected elision
	of trivial types.

2023-01-23  Marek Polacek  <polacek@redhat.com>

	PR c++/107797
	* cvt.cc (ocp_convert): copy_warning when creating a new
	COMPOUND_EXPR.
	* init.cc (build_new_1): Suppress -Wunused-value on
	compiler-generated COMPOUND_EXPRs.

2023-01-23  Jason Merrill  <jason@redhat.com>

	PR c++/108195
	* call.cc (build_user_type_conversion_1): Check whether the
	iterators also find a list ctor.

2023-01-23  Jason Merrill  <jason@redhat.com>

	PR c++/108496
	* decl.cc (grokdeclarator): Check whether DECL_RESULT is already
	set.

2023-01-23  Jason Merrill  <jason@redhat.com>

	PR c++/53288
	DR 1299
	* call.cc (extend_ref_init_temps_1): Handle ptrmem expression.

2023-01-19  Jakub Jelinek  <jakub@redhat.com>

	PR c++/108437
	* cp-tree.h (keep_unused_object_arg): Declare.
	* call.cc (keep_unused_object_arg): No longer static.
	* tree.cc (build_min_non_dep_op_overload): Handle ARRAY_REF
	with overload being static member function.

2023-01-19  Jakub Jelinek  <jakub@redhat.com>

	PR c++/53932
	* cp-gimplify.cc (cp_fold_r): During cp_fully_fold_init replace
	DECL_ANON_UNION_VAR_P VAR_DECLs with their corresponding
	DECL_VALUE_EXPR.

2023-01-16  Jakub Jelinek  <jakub@redhat.com>

	PR c++/105593
	* decl.cc (cp_finish_decl): Check warning_enabled_at
	at the DECL_SOURCE_LOCATION (decl) for OPT_Winit_self instead
	of warn_init_self.

2023-01-14  Jakub Jelinek  <jakub@redhat.com>

	PR c++/108365
	* typeck.cc (cp_build_binary_op): Use may_shorten_divmod for integral
	division or modulo.

2023-01-13  Jakub Jelinek  <jakub@redhat.com>

	PR c++/108285
	* cvt.cc (cp_convert_and_check): For EXCESS_PRECISION_EXPR
	use its operand except that for warning purposes use the original
	EXCESS_PRECISION_EXPR.
	* call.cc (convert_like_internal): Only look through
	EXCESS_PRECISION_EXPR when calling cp_convert, not when calling
	cp_convert_and_check.

2023-01-09  Jakub Jelinek  <jakub@redhat.com>

	PR c++/105838
	PR c++/108047
	PR c++/108266
	* call.cc (maybe_init_list_as_range): Always return NULL_TREE if
	processing_template_decl.

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

	PR c++/108275
	* parser.cc (cp_parser_class_head): Use dk_deferred instead of
	dk_no_check when parsing the class name.

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

	PR c++/108286
	* semantics.cc (finish_omp_target_clauses): Ignore clauses other than
	OMP_CLAUSE_MAP.

2023-01-04  Patrick Palka  <ppalka@redhat.com>

	PR c++/108282
	* decl2.cc (mark_single_function): Ignore mark_used failure
	only in a non-SFINAE context rather than in a SFINAE one.

2023-01-04  Jakub Jelinek  <jakub@redhat.com>

	PR c++/108206
	* decl.cc (merge_default_template_args): Return false if either
	new_parm or old_parm are erroneous.


Copyright (C) 2023 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.
