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.
