2026-07-24  Tobias Burnus  <tburnus@baylibre.com>

	* pt.cc (tsubst_omp_clauses): Add OMP_CLAUSE_DEVICE_TYPE
	to switch statement.

2026-07-23  Marek Polacek  <polacek@redhat.com>

	PR c++/112908
	* method.cc (build_prvalue_trait_object): New.
	(ref_xes_from_temporary): Use build_prvalue_trait_object.
	Use deferring_access_check_sentinel and cp_unevaluated.  Don't
	call force_rvalue or rvalue.
	* semantics.cc (finish_trait_expr)
	<case CPTK_REF_CONSTRUCTS_FROM_TEMPORARY>: Actually check
	completeness.

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

	PR c++/126354
	* constexpr.cc (cxx_eval_call_expression): Diagnose return from
	[[noreturn]] function.

2026-07-23  Marek Polacek  <polacek@redhat.com>

	PR c++/126215
	* constexpr.cc (lookup_placeholder): Do unshare_expr.

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

	* typeck2.cc: Implement part of CWG3130 - Naming function members of
	anonymous unions.
	(abstract_virtuals_error): Diagnose trying to create
	an object with anonymous union or struct type.
	* semantics.cc (finish_compound_literal): Call abstract_virtuals_error.
	(finish_member_declaration): Diagnose named members with anonymous
	union or struct type.
	* decl.cc (xref_basetypes): Diagnose anonymous structs as bases.

2026-07-23  Thomas Schwinge  <tschwinge@baylibre.com>

	PR c++/119102
	* module.cc (module_state): Update comment for 'SE_BITS' change.

2026-07-20  Ville Voutilainen  <ville.voutilainen@gmail.com>

	PR c++/125904
	* contracts.cc (build_contract_check): Set TREE_SIDE_EFFECTS.

2026-07-17  Jakub Jelinek  <jakub@redhat.com>

	PR c++/125833
	* cp-tree.h: Implement C++29 P3424R2 - Deallocation Functions with
	Throwing Exception Specification Are Ill-formed.
	(maybe_diagnose_deallocation_noexcept_false): Declare.
	* decl.cc (maybe_diagnose_deallocation_noexcept_false): New function.
	(grokfndecl): Call it.
	* pt.cc (maybe_instantiate_noexcept): Likewise.
	* parser.cc (cp_parser_class_specifier): Likewise.

2026-07-15  Tobias Burnus  <tburnus@baylibre.com>

	PR c/122748
	* parser.cc (cp_parser_omp_clause_uses_allocators): Mark
	trait var as read to avoid 'unused but set' warning.

2026-07-15  Jakub Jelinek  <jakub@redhat.com>

	PR c++/120635
	* parser.cc (cp_parser_std_attribute): Add
	canonicalize_attr_ns_name lambda and use it instead of
	canonicalize_attr_name for namespaces.  Emit a warning
	on __clang__::.
	(cp_parser_std_attribute_spec): Emit a warning on
	using __clang__:.

2026-07-14  Jakub Jelinek  <jakub@redhat.com>

	* decl.cc (grokfndecl): If raises is NULL_TREE for C++11
	deallocation function, use noexcept_true_spec instead.

2026-07-13  Yuxuan Chen  <i@yuxuan.ch>

	PR c++/125066
	* decl.cc (store_parm_decls): Do not register trivial_abi parameter
	cleanups for cloned functions.

2026-07-13  Vladislav Semykin  <vladislav.semykin@gmail.com>

	PR c++/126207
	* cp-tree.h (typeid_evaluated_p): Add nonnull out-parameter.
	* rtti.cc (typeid_evaluated_p): Likewise; avoid calling
	resolves_to_fixed_type_p twice.
	(build_typeid): Adjust.

2026-07-13  Yuxuan Chen  <i@yuxuan.ch>

	PR c++/125064
	* tree.cc (validate_trivial_abi_attribute): Remove a rejected
	trivial_abi attribute from all variants.

2026-07-13  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>

	PR driver/124058
	* decl.cc (maybe_prepare_return_this): Use OPT_Wuse_after_free_.

2026-07-13  Jakub Jelinek  <jakub@redhat.com>

	PR c++/120635
	* tree.cc (cxx_gnu_attributes): Add "no_specializations" entry.
	(cxx_clang_attributes): Likewise.
	(handle_no_specializations_attribute,
	handle_gnu_no_specializations_attribute): New functions.
	* decl2.cc (is_late_template_attribute): Return false for
	"no_specializations" attribute, even on dependent types.  Don't
	differentiate between the completely unknown and dependent
	cases, for the 5 template attributes return always false, for
	others true if dependent type and false otherwise.
	* parser.cc (cp_parser_std_attribute): Use
	uneval_string_attr even for clang::no_specializations attribute.
	* pt.cc: Include "escaped_string.h".
	(maybe_diagnose_no_specializations): New function.
	(maybe_process_partial_specialization): Use it.
	(check_explicit_specialization): Likewise.

2026-07-13  Marek Polacek  <polacek@redhat.com>

	PR c++/126066
	* constraint.cc (tsubst_requires_expr): Use
	REQUIRES_EXPR_LOCATION.
	(satisfaction_cache::get): Use cp_expr_location.
	(satisfaction_cache::save): Likewise.
	(finish_requires_expr): Use make_node and set REQUIRES_EXPR_*.
	* cp-objcp-common.cc (cp_tree_size): Handle REQUIRES_EXPR.
	(cp_common_init_ts): Change REQUIRES_EXPR from MARK_TS_EXP to
	MARK_TS_TYPED.
	* cp-tree.def (REQUIRES_EXPR): Make it tcc_exceptional with no
	operands.
	* cp-tree.h (struct tree_requires_expr): New.
	(REQUIRES_EXPR_PARMS): Adjust.
	(REQUIRES_EXPR_REQS): Likewise.
	(REQUIRES_EXPR_EXTRA_ARGS): Likewise.
	(REQUIRES_EXPR_LOCATION): New.
	(enum cp_tree_node_structure_enum): Add TS_CP_REQUIRES_EXPR.
	(union lang_tree_node): Add tree_requires_expr.
	(cp_expr_location): Handle REQUIRES_EXPR.
	* cxx-pretty-print.cc (pp_cxx_requires_expr): Use
	REQUIRES_EXPR_REQS.
	* decl.cc (cp_tree_node_structure): Handle REQUIRES_EXPR.
	* error.cc (print_requires_expression_info): Use
	REQUIRES_EXPR_PARMS.
	* mangle.cc (write_tparms_constraints): Use cp_expr_location.
	* module.cc (trees_out::core_vals): Handle REQUIRES_EXPR
	specially.
	(trees_in::core_vals): Likewise.
	* pt.cc (iterative_hash_template_arg): Handle REQUIRES_EXPR.
	* tree.cc (strip_typedefs_expr): Likewise.
	(cp_tree_equal): Likewise.

2026-07-13  Joyee Cheung  <joyee@igalia.com>

	PR c++/96496
	* cvt.cc (ocp_convert): For an enumeration type with a fixed
	underlying type, convert the operand to that type first, as
	specified by [expr.static.cast]/8.  Update the comment quoting
	[expr.static.cast]/8.

2026-07-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* module.cc (EOPNOTSUPP): Provide fallback.
	(elf_out::create_mapping) [HAVE_POSIX_FALLOCATE]: Allow for
	EOPNOTSUPP result.

2026-07-10  Arsen Arsenović  <aarsenovic@baylibre.com>

	* cp-tree.h (temp_override): In provided-value constructor,
	don't deduce based on provided value.

2026-07-07  Egas Ribeiro  <egas.g.ribeiro@gmail.com>

	* except.cc (can_convert_eh): Handle a nullptr_t exception
	caught by a pointer or pointer-to-member handler.

2026-07-07  Vladislav Semykin  <vladislav.semykin@gmail.com>

	PR c++/125886
	PR c++/116385
	PR c++/68604
	* parser.cc (cp_parser_postfix_expression): Two-pass typeid parse.
	* pt.cc (tsubst_expr): Same for TYPEID_EXPR.
	* rtti.cc (typeid_evaluated_p, build_typeid): Shared predicate.
	* cp-tree.h: Declare typeid_evaluated_p.

2026-07-06  Marek Polacek  <polacek@redhat.com>

	PR c++/125901
	* cp-tree.h (finish_trait_expr): Adjust declaration.
	* reflect.cc (eval_constant_of): Adjust the call to
	eval_is_array_type.
	(eval_reflect_object): Adjust the call to eval_is_object_type.
	(eval_type_trait): Emit a diagnostic when finish_trait_expr
	returns error_mark_node and set *non_constant_p.  Adjust the
	call to eval_type_trait.
	(eval_is_array_type): Adjust the call to eval_type_trait.
	(eval_is_pointer_type): Likewise.
	(eval_is_member_object_pointer_type): Likewise.
	(eval_is_member_function_pointer_type): Likewise.
	(eval_is_enum_type): Likewise.
	(eval_is_union_type): Likewise.
	(eval_is_class_type): Likewise.
	(eval_is_reference_type): Likewise.
	(eval_is_member_pointer_type): Likewise.
	(eval_is_object_type): Likewise.
	(eval_is_trivially_copyable_type): Use eval_type_trait.
	(eval_is_standard_layout_type): Likewise.
	(eval_is_empty_type): Adjust the call to eval_type_trait.
	(eval_is_polymorphic_type): Likewise.
	(eval_is_abstract_type): Use eval_type_trait.
	(eval_is_final_type): Adjust the call to eval_type_trait.
	(eval_is_aggregate_type): Use eval_type_trait.
	(eval_is_structural_type): Adjust the call to eval_type_trait.
	(eval_is_bounded_array_type): Likewise.
	(eval_is_constructible_type): Use eval_type_trait.
	(eval_is_default_constructible_type): Likewise.
	(eval_is_copy_constructible_type): Likewise.
	(eval_is_move_constructible_type): Likewise.
	(eval_is_assignable_type): Adjust the call to eval_type_trait.
	(eval_is_copy_assignable_type): Use eval_type_trait.
	(eval_is_move_assignable_type): Use eval_type_trait.
	(eval_is_destructible_type): Adjust the call to eval_type_trait.
	(eval_is_trivially_constructible_type): Use eval_type_trait.
	(eval_is_trivially_default_constructible_type): Likewise.
	(eval_is_trivially_copy_constructible_type): Likewise.
	(eval_is_trivially_move_constructible_type): Likewise.
	(eval_is_trivially_assignable_type): Adjust the call to
	eval_type_trait.
	(eval_is_trivially_copy_assignable_type): Use eval_type_trait.
	(eval_is_trivially_move_assignable_type): Likewise.
	(eval_is_trivially_destructible_type): Adjust the call to
	eval_type_trait.
	(eval_is_nothrow_constructible_type): Use eval_type_trait.
	(eval_is_nothrow_default_constructible_type): Likewise.
	(eval_is_nothrow_copy_constructible_type): Likewise.
	(eval_is_nothrow_move_constructible_type): Likewise.
	(eval_is_nothrow_assignable_type): Adjust the call to
	eval_type_trait.
	(eval_is_nothrow_copy_assignable_type): Use eval_type_trait.
	(eval_is_nothrow_move_assignable_type): Likewise.
	(eval_is_nothrow_destructible_type): Adjust the call to
	eval_type_trait.
	(eval_is_implicit_lifetime_type): Use eval_type_trait.
	(eval_has_virtual_destructor): Likewise.
	(eval_has_unique_object_representations): Likewise.
	(eval_reference_constructs_from_temporary): Adjust the call to
	eval_type_trait.
	(eval_reference_converts_from_temporary): Likewise.
	(eval_extent): Adjust the call to eval_is_bounded_array_type.
	Check != boolean_true_node rather than == boolean_false_node when
	checking eval_is_bounded_array_type.
	(eval_is_same_type): Adjust the call to eval_type_trait.
	(eval_is_base_of_type): Likewise.
	(eval_is_virtual_base_of_type): Likewise.
	(eval_is_convertible_type): Likewise.
	(eval_is_nothrow_convertible_type): Likewise.
	(eval_is_layout_compatible_type): Likewise.
	(eval_is_pointer_interconvertible_base_of_type): Likewise.
	(eval_is_invocable_type): Use eval_type_trait.
	(eval_is_nothrow_invocable_type): Likewise.
	(eval_data_member_spec): Adjust the calls to eval_is_array_type
	and eval_is_object_type.  Check != boolean_true_node rather than
	== boolean_false_node when checking eval_is_object_type.
	(eval_extract): Adjust the call to eval_is_reference_type.
	(process_metafunction): Adjust the calls to various
	metafunctions.
	* semantics.cc (check_trait_type): Remove a default argument.
	Add a complain parameter.  If not emitting error messages, always
	return false for incomplete types.
	(finish_trait_expr): Add a complain parameter.  Use it.  Call
	complete_type_or_maybe_complain instead of
	complete_type_or_else.

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

	PR c++/126031
	PR c++/121552
	* decl.cc (maybe_diagnose_non_c_class_typedef_for_linkage): Handle
	incomplete type.

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

	PR c++/126057
	* decl.cc (cp_finish_decomp): Set assembler name to
	<decomp> during error recovery whenever TREE_STATIC
	rather than just DECL_NAMESPACE_SCOPE_P.
	* pt.cc (tsubst_stmt): If tsubst_decomp_names fails,
	set assembler name to <decomp>.

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

	PR c++/125826
	* method.cc: Implement C++29 P2953R5 - Adding restrictions to
	defaulted assignment operator functions.
	(maybe_delete_defaulted_fn): For C++29, error instead of
	deleting always, with the exception of F1 having parmtype
	const C & and F2 having implicit_parmtype C & and no other
	non-permitted changes.  Move checks whether defaulted fn
	should be deleted or ill-formed at all from defaulted_late_check
	to this function.  Also error for C++29 if
	FUNCTION_RVALUE_QUALIFIED.
	(defaulted_late_check): Call maybe_delete_defaulted_fn
	unconditionally.

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

	PR c++/126036
	* reflect.cc (get_range_elts): Avoid calling finish_compound_literal
	when processing_template_decl, instead set *non_constant_p and
	return NULL_TREE.
	(process_metafunction): Likewise.

2026-07-02  Marek Polacek  <polacek@redhat.com>

	PR c++/125819
	* reflect.cc (namespace_members_of): Skip
	DECL_IS_UNDECLARED_BUILTIN decls.

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

	PR c++/124584
	* decl.cc (cp_finish_decl): Use get_temp_regvar for decomp guards.

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

	PR c++/121094
	PR c++/117259
	* coroutines.cc (replace_proxy): Handle TARGET_EXPR from.
	(flatten_await_stmt): Pass it.

2026-06-30  Jakub Jelinek  <jakub@redhat.com>

	PR c++/126007
	* tree.cc (eligible_special_member_function_p): New function.
	(implicit_lifetime_type_p): Use true instead of 1 in function comment.
	Add some further comments.  Use eligible_special_member_function_p
	instead of !DECL_DELETED_FN.

2026-06-29  Georg-Johann Lay  <avr@gjlay.de>

	* mangle.cc (mangle_ctor_vtbl_for_type): Fix production in comment.

2026-06-28  Kevin Stefanov  <kevinstefanov15@gmail.com>

	PR middle-end/125274
	* call.cc (conversion): Likewise.
	* cp-tree.h (saved_scope): Likewise.
	(language_function): Likewise.
	(cp_decl_specifier_seq): Likewise.
	(cp_declarator): Likewise.
	* name-lookup.h (cp_binding_level): Likewise.

2026-06-26  Marek Polacek  <polacek@redhat.com>

	PR c++/125900
	* reflect.cc (check_out_of_consteval_use_r): Don't walk
	SPLICE_EXPR.

2026-06-25  Marek Polacek  <polacek@redhat.com>

	PR c++/125922
	* parser.cc (cp_parser_reflect_expression): Temporarily set
	parser->type_definition_forbidden_message.

2026-06-25  Richard Biener  <rguenther@suse.de>

	* module.cc (trees_out::decl_value): Adjust for enum class
	tree_code.

2026-06-24  Marek Polacek  <polacek@redhat.com>

	PR c++/125939
	* cp-tree.h (build_const_lref): Declare.
	* method.cc (build_stub_type): Pass tf_ignore_bad_quals to
	cp_build_qualified_type.
	* reflect.cc (build_const_lref): New.
	(get_range_elts): Use it.
	(eval_is_copy_constructible_type): Likewise.
	(eval_is_copy_assignable_type): Likewise.
	(eval_is_trivially_copy_assignable_type): Likewise.
	(eval_is_nothrow_copy_constructible_type): Likewise.
	(eval_is_nothrow_copy_assignable_type): Likewise.
	* tree.cc (trivially_copy_constructible_p): Likewise.
	(handle_annotation_attribute): Likewise.

2026-06-24  Paul-Antoine Arras  <parras@baylibre.com>

	* semantics.cc (finish_omp_barrier): Push GOMP_BARRIER_EXPLICIT
	onto the argument vector.

2026-06-23  Jason Merrill  <jason@redhat.com>

	PR c++/125334
	* module.cc (depset::hash::find_dependencies): Don't add_dependency
	dependent ADL functions.

2026-06-23  Jason Merrill  <jason@redhat.com>

	PR c++/125768
	* module.cc (trees_out::decl_node): When not streaming,
	recurse into DECL_ORIGINAL_TYPE of an imported typedef.

2026-06-23  Kwok Cheung Yeung  <kcyeung@baylibre.com>
	    Sandra Loosemore  <sloosemore@baylibre.com>

	* parser.cc (cp_parser_omp_iterators): Use iterator constructors
	and macros for accessing iterator elements.
	(cp_parser_omp_clause_affinity): Likewise.
	(cp_parser_omp_clause_depend): Likewise.
	(cp_parser_omp_clause_from_to): Likewise.
	(cp_parser_omp_clause_map): Likewise.
	* pt.cc (tsubst_omp_clause_decl): Likewise.
	* semantics.cc (cp_omp_finish_iterators): Likewise.

2026-06-23  Jason Merrill  <jason@redhat.com>

	PR c++/125745
	* cp-ubsan.cc (cp_ubsan_instrument_vptr): Use build_vfield_ref.

2026-06-22  Marek Polacek  <polacek@redhat.com>

	PR c++/125697
	* cp-tree.h (trivially_copy_constructible_p): Declare.
	* parser.cc (warn_for_range_copy): Use it.
	* reflect.cc (eval_is_trivially_copy_constructible_type): Use it.
	* tree.cc (trivially_copy_constructible_p): New.

2026-06-22  Marek Polacek  <polacek@redhat.com>

	PR c++/125889
	* reflect.cc (class_members_of): Also append LAMBDA_FUNCTION_P
	from the implicitly_declared vector.

2026-06-22  Georg-Johann Lay  <avr@gjlay.de>

	* call.cc: Remove -*- C++ -*- tags for Emacs.
	* class.cc: Same.
	* constexpr.cc: Same.
	* decl.cc: Same.
	* init.cc: Same.
	* mangle.cc: Same.
	* mapper-resolver.cc: Same.
	* parser.cc: Same.
	* pt.cc: Same.

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

	PR c++/125408
	* expr.cc (mark_use): Fix condition for changing rvalue to lvalue.

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

	PR c++/125408
	* tree.cc (cp_walk_subtrees): Walk into the DECL_ORIGINAL_TYPE of a
	typedef DECL_EXPR.

2026-06-18  Marek Polacek  <polacek@redhat.com>

	* decl.cc (check_initializer): Don't call
	build_aggr_init_full_exprs for {} of an aggregate.

2026-06-17  Marek Polacek  <polacek@redhat.com>

	PR c++/125764
	* reflect.cc (eval_can_substitute): Don't call
	convert_from_reference on types.

2026-06-17  Marek Polacek  <polacek@redhat.com>

	PR c++/125759
	* reflect.cc (get_reflection): Do STRIP_REFERENCE_REF.

2026-06-17  Marek Polacek  <polacek@redhat.com>

	PR c++/125492
	* reflect.cc (eval_size_of): Add a separate throw_exception for
	function types.

2026-06-17  Wang Jinghao  <zheng.xianyuwang@gmail.com>

	* reflect.cc (eval_is_explicit_object_parameter): Call
	maybe_update_function_parm before checking the parameter
	against DECL_ARGUMENTS.

2026-06-17  Marek Polacek  <polacek@redhat.com>

	PR c++/125613
	* pt.cc (check_explicit_specialization): Detect mismatches in
	exception specifications in explicit instantiations.

2026-06-17  H.J. Lu  <hjl.tools@gmail.com>

	PR c++/125851
	* name-lookup.cc (get_cxx_dialect_name): Handle cxx29.

2026-06-16  Marek Polacek  <polacek@redhat.com>

	PR c++/125770
	* decl2.cc (mark_used): Check complain & tf_error before giving
	an error.

2026-06-16  Marek Polacek  <polacek@redhat.com>

	PR c++/125539
	* cvt.cc (ocp_convert): In a template, always call
	perform_implicit_conversion.  Pass flags to
	perform_implicit_conversion_flags.
	* decl.cc (check_initializer): Remove a call to
	build_implicit_conv_flags.

2026-06-12  Jakub Jelinek  <jakub@redhat.com>

	PR c++/125674
	* pt.cc (tsubst_decl): Diagnose bit-field widths
	with invalid type.

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

	PR c/125694
	* typeck.cc (build_x_bswapg_bitreverseg ): If arg is error_operand_p,
	return error_mark_node.

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

	PR c++/91155
	* decl.cc (cp_make_fname_decl): Use cpp_translate_string instead of
	cpp_interpret_string, don't prefix name strname.text with " and suffix
	with " and NUL.

2026-06-10  Marek Polacek  <polacek@redhat.com>

	PR c++/125498
	* mangle.cc (write_reflection): Use DECL_PARM_INDEX for
	computing the parameter index.

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

	PR c++/121287
	PR c++/125212
	PR c++/105667
	PR c++/121597
	PR c++/110961
	* cp-tree.h (TYPE_DECL_OPAQUE_ALIAS_P): Define.
	(any_lambdas_p): Declare.
	* decl.cc (grokdeclarator): Set TYPE_DECL_OPAQUE_ALIAS_P.
	* pt.cc (dependent_opaque_alias_p): Refine to check
	TYPE_DECL_OPAQUE_ALIAS_P.
	(tsubst_decl) <case TYPE_DECL>: Set TYPE_DECL_OPAQUE_ALIAS_P.
	(any_lambdas_p): New, factored out of...
	(regenerate_decl_from_template): ...this.  Call it.

2026-06-08  Jakub Jelinek  <jakub@redhat.com>

	* call.cc (build_op_delete_call_1): Add missing auto_diagnostic_group
	sentinel.  Formatting fix.
	(complain_about_access): Add missing auto_diagnostic_group sentinels.
	(convert_like_internal): Likewise.
	(build_over_call): Likewise.
	(maybe_warn_class_memaccess): Likewise.
	* constexpr.cc (maybe_warn_about_constant_value): Likewise.
	(cxx_eval_outermost_constant_expr): Likewise.
	* contracts.cc (check_param_in_postcondition): Likewise.
	(check_postconditions_in_redecl): Likewise.  Formatting fixes.
	* decl.cc (identify_goto): Add missing auto_diagnostic_group
	sentinels.
	(omp_declare_variant_finalize_one): Likewise.
	* method.cc (walk_field_subobs): Likewise.
	* semantics.cc (finish_omp_clauses): Likewise.
	* tree.cc (validate_trivial_abi_attribute): Likewise.
	* typeck2.cc (digest_init_r): Likewise.

2026-06-05  Sandra Loosemore  <sloosemore@baylibre.com>

	* semantics.cc (cxx_omp_map_array_section): Allow ARRAY_TYPE
	expressions, not just pointers.

2026-06-05  Patrick Palka  <ppalka@redhat.com>

	PR c++/125334
	* module.cc (depset::hash::add_dependent_adl_entities):
	Disable when inside a header unit.

2026-06-05  Patrick Palka  <ppalka@redhat.com>

	* module.cc (dep_adl_info::args): Initializer to nullptr
	instead of immediately allocating.
	(depset::hash::add_dependent_adl_entities): Exit early
	for non-type-dependent calls and operator expressions.
	Only allocate dep_adl_info::args if we're not exiting early.
	Correct all-type-dependent args test.
	* name-lookup.cc (name_lookup::preserve_state): Replace
	propagation of tentative flag with assert that it's not
	set.

2026-06-05  Marek Polacek  <polacek@redhat.com>

	* pt.cc (check_explicit_inst_of_var_template): Add
	auto_diagnostic_group.

2026-06-05  Jakub Jelinek  <jakub@redhat.com>

	PR c/122731
	* parser.cc (cp_parser_postfix_expression): Parse
	__builtin_bswapg and __builtin_bitreverseg.
	* typeck.cc (build_x_bswapg_bitreverseg): New function.
	* cp-tree.h (build_x_bswapg_bitreverseg): Declare.
	* pt.cc (tsubst_expr): Handle IFN_BSWAP and IFN_BITREVERSE.
	* constexpr.cc (cxx_eval_internal_function): Likewise.
	(potential_constant_expression_1): Likewise.
	* cp-gimplify.cc (cp_gimplify_expr): Likewise.

2026-06-04  Marek Polacek  <polacek@redhat.com>

	PR c++/125575
	PR c++/98524
	* pt.cc (check_explicit_inst_of_var_template): New.
	(check_explicit_specialization): Use it.

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

	PR c++/125378
	* tree.cc (build_min_non_dep_op_overload): Handle comparison
	operator expressions rewritten from a <=> that contain an
	integer promotion.

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

	PR c++/125490
	* parser.cc (cp_parser_constraint_expression): Pass
	no_toplevel_fold_p=false instead of =true to
	cp_parser_binary_expression.

2026-06-03  Marek Polacek  <polacek@redhat.com>

	PR c++/107124
	* cp-tree.h: Adjust comments to mention
	maybe_build_nontype_implicit_conv instead of
	maybe_convert_nontype_argument.
	* pt.cc (maybe_convert_nontype_argument): Rename to...
	(maybe_build_nontype_implicit_conv): ...this.
	(convert_nontype_argument_maybe_dependent): New, factored
	out of...
	(convert_template_argument): ...here.
	(unify) <case TEMPLATE_PARM_INDEX>: Call
	convert_nontype_argument_maybe_dependent and return unify_invalid
	if it failed.  Don't call strip_typedefs_expr.

2026-06-03  Jason Merrill  <jason@redhat.com>

	PR c++/124794
	* parser.cc (cp_parser_splice_specifier): Use TYPE_BINFO (scope)
	for not-derived case.
	* search.cc (build_baselink): Assert that binfos aren't null.

2026-06-03  feedable  <feedabl3@gmail.com>

	PR c++/124794
	PR c++/125069
	* parser.cc (cp_parser_splice_specifier): Do not strip BASELINKs.
	(cp_parser_splice_expression): Add parsing for member function
	template specializations without the "template" keyword.
	* pt.cc (tsubst_splice_expr): Handle TEMPLATE_ID_EXPR where the
	template part is a SPLICE_EXPR.
	(tsubst_expr): Defer to tsubst_splice_expr when the template part of
	TEMPLATE_ID_EXPR is a SPLICE_EXPR.
	* reflect.cc (check_splice_expr): Add handling for BASELINKs.

2026-06-02  H.J. Lu  <hjl.tools@gmail.com>

	PR c/121911
	* decl.cc (cxx_init_decl_processing ): Declare stack protection
	guard after calling c_common_nodes_and_builtins.

2026-06-02  Peter Damianov  <peter0x44@disroot.org>

	* class.cc (dump_vtable_entry): New function.
	(dump_array): Use it.
	(dump_class_hierarchy_r): Drop redundant literal 0x from
	HOST_WIDE_INT_PRINT_HEX formatting.
	(dump_vtable): Likewise.

2026-06-01  Joe Natter  <johannes.natter@outlook.at>

	PR c++/125422
	* init.cc (build_new_1): Avoid building a null-check
	COND_EXPR when rval == data_addr.

2026-06-01  yxj-github-437  <2457369732@qq.com>

	* module.cc (module_state_config::get_dialect): Add reflection
	dialect.

2026-06-01  Eczbek  <eczbek.void@gmail.com>

	PR c++/125317
	* parser.cc (cp_parser_requirement_body): Set
	parser->greater_than_is_operator_p.

2026-05-30  Jakub Jelinek  <jakub@redhat.com>

	PR c++/125123
	* parser.cc (cp_build_range_for_decls): If range_temp or begin
	are static, set DECL_IGNORED_P on it.
	* pt.cc (finish_expansion_stmt): Similarly for iter.
	* decl.cc (cp_finish_decl): Call determine_local_discriminator
	etc. also for DECL_ARTIFICIAL TREE_STATIC vars.

2026-05-30  Dhruv Chawla  <dhruvc@nvidia.com>

	* call.cc (involves_qualification_conversion_p): Fix typos.
	(build_user_type_conversion_1): Likewise.
	(complain_about_access): Likewise.
	(maybe_warn_class_memaccess): Likewise.
	* class.cc (inherit_targ_abi_tags): Likewise.
	(warn_hidden): Likewise.
	(maybe_add_class_template_decl_list): Likewise.
	(check_bases_and_members): Likewise.
	(dfs_accumulate_vtbl_inits): Likewise.
	* constexpr.cc (cx_check_missing_mem_inits): Likewise.
	(cxx_eval_call_expression): Likewise.
	(modifying_const_object_error): Likewise.
	(cxx_replaceable_global_alloc_fn): Likewise.
	* contracts.cc (copy_contracts_list): Likewise.
	(check_redecl_contract): Likewise.
	(update_late_contract): Likewise.
	(get_precondition_function): Likewise.
	* coroutines.cc (cp_coroutine_transform::build_ramp_function): Likewise.
	* cp-tree.def (DISJ_CONSTR): Likewise.
	* cp-tree.h (struct lang_decl_base): Likewise.
	(SCOPE_DEPTH): Likewise.
	(set_anon_aggr_type_field): Likewise.
	(struct cp_decl_specifier_seq): Likewise.
	* decl.cc (reshape_init_array_1): Likewise.
	(omp_declare_variant_finalize): Likewise.
	(grokdeclarator): Likewise.
	(copy_type_enum): Likewise.
	* decl2.cc (struct priority_map_traits): Likewise.
	(determine_visibility): Likewise.
	(constrain_class_visibility): Likewise.
	(one_static_initialization_or_destruction): Likewise.
	* g++spec.cc (lang_specific_driver): Likewise.
	* init.cc (constant_value_1): Likewise.
	(build_new): Likewise.
	* mangle.cc (write_unqualified_name): Likewise.
	* method.cc (inherited_ctor_binfo): Likewise.
	(synthesized_method_walk): Likewise.
	* module.cc (GTY): Likewise.
	(trees_out::lang_decl_bools): Likewise.
	(trees_out::core_vals): Likewise.
	(trees_in::core_vals): Likewise.
	(trees_in::install_implicit_member): Likewise.
	(trees_in::odr_duplicate): Likewise.
	(instantiating_tu_local_entity): Likewise.
	(sort_cluster): Likewise.
	(module_state::write_define): Likewise.
	(module_state::write_begin): Likewise.
	(declare_module): Likewise.
	(init_modules): Likewise.
	* name-lookup.cc (name_lookup::ambiguous): Likewise.
	(pushdecl): Likewise.
	(suggest_alternatives_for_1): Likewise.
	(maybe_add_fuzzy_decl): Likewise.
	* name-lookup.h (INHERITED_VALUE_BINDING_P): Likewise.
	(HIDDEN_TYPE_BINDING_P): Likewise.
	(BINDING_VECTOR_GLOBAL_DUPS_P): Likewise.
	* operators.def: Likewise.
	* parser.cc (cp_lexer_new_main): Likewise.
	(get_cast_suggestion): Likewise.
	(cp_parser_expression): Likewise.
	(cp_parser_simple_type_specifier): Likewise.
	(cp_parser_noexcept_specification_opt): Likewise.
	(cp_parser_lookup_name): Likewise.
	(class_decl_loc_t::diag_mismatched_tags): Likewise.
	(cp_parser_cache_defarg): Likewise.
	(cp_parser_objc_statement): Likewise.
	(cp_parser_omp_loop_nest): Likewise.
	(cp_parser_omp_taskloop): Likewise.
	(cp_parser_objc_at_property_declaration): Likewise.
	* parser.h (struct cp_unparsed_functions_entry): Likewise.
	* pt.cc (tsubst_friend_class): Likewise.
	(use_pack_expansion_extra_args_p): Likewise.
	(tsubst_unary_left_fold): Likewise.
	(tsubst_unary_right_fold): Likewise.
	(filter_memfn_lookup): Likewise.
	* semantics.cc (maybe_convert_cond): Likewise.
	(finish_switch_cond): Likewise.
	(cp_finish_omp_clause_doacross_sink): Likewise.
	(finish_omp_target_clauses_r): Likewise.
	* tree.cc (build_cplus_new): Likewise.
	(apply_identity_attributes): Likewise.
	* vtable-class-hierarchy.cc (vtv_compute_class_hierarchy_transitive_closure): Likewise.
	(vtv_generate_init_routine): Likewise.

2026-05-29  Jakub Jelinek  <jakub@redhat.com>

	* init.cc (build_value_init_noctor): Zero initialize anonymous
	union/struct subobjects.  Formatting fix.

2026-05-28  Marek Polacek  <polacek@redhat.com>

	PR c++/125454
	* typeck.cc (cp_build_array_ref): Don't recurse for array[array].

2026-05-27  Jakub Jelinek  <jakub@redhat.com>

	PR c++/125412
	* reflect.cc (process_metafunction): If ht is error_operand_p,
	set *non_constant_p and return NULL_TREE.

2026-05-26  Marek Polacek  <polacek@redhat.com>

	PR c++/125423
	* pt.cc (tsubst_expr) <case REFLECT_EXPR>: Don't tsubst
	REFLECT_BASEs.

2026-05-23  Jason Merrill  <jason@redhat.com>

	PR c++/125135
	* pt.cc (check_non_deducible_conversions): Handle LOOKUP_DEFAULTED.

2026-05-22  Julian Brown  <julian@codesourcery.com>
	    Tobias Burnus  <tburnus@baylibre.com>

	* parser.cc (cp_parser_omp_clause_from_to): Add parsing for
	mapper modifier.
	(cp_parser_omp_target_update): Instantiate mappers.

2026-05-22  Jakub Jelinek  <jakub@redhat.com>

	PR c++/119059
	* method.cc: Implement C++26 P3074R7 - trivial unions (was
	std::uninitialized<T>) (except the sentence removed again in P3726R2)
	and proposed resolution of CWG3189 - Implicitly deleted destructors
	for union-like classes.
	(walk_field_subobs): Don't do default_init_uninitialized_part checks
	for variant members.  Don't check subobject ctor/dtor for variant
	members for ctor/inheriting ctor or when subobject doesn't have member
	initializer for dtor and it is either the dtor_from_ctor case or
	the current class doesn't have user provided ctors.
	* class.cc (check_field_decl): Don't or in
	TYPE_HAS_NONTRIVIAL_DESTRUCTOR or TYPE_HAS_DEFAULT_CONSTRUCTOR of
	variant subobjects for C++26.

2026-05-21  Marek Polacek  <polacek@redhat.com>

	PR c++/125330
	* parser.cc (cp_parser_parameter_declaration_list): Also
	pushdecl when parameter->default_argument is this_identifier.

2026-05-21  Jason Merrill  <jason@redhat.com>

	* constexpr.cc (init_subob_ctx): Check is_empty_field.

2026-05-21  Jason Merrill  <jason@redhat.com>

	PR c++/125384
	PR c++/113563
	* lambda.cc (build_capture_proxy): 'this' capture proxy is const.

2026-05-21  Marek Polacek  <polacek@redhat.com>

	PR c++/125284
	PR c++/125333
	* pt.cc (tsubst_decl) <case USING_DECL>: Copy targs before
	modifying them.

2026-05-21  Jakub Jelinek  <jakub@redhat.com>

	PR c++/125376
	* coroutines.cc (register_local_var_uses): Ignore DECL_NAME for
	name independent decls.

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

	PR c++/123536
	* cp-tree.h (process_outer_var_ref): Remove a parameter's name.
	* expr.cc (mark_use): Return if mark_rvalue_use returns
	error_mark_node.
	* semantics.cc (process_outer_var_ref): Return decl when it is
	instantiation-dependent.

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

	PR c++/125336
	* constexpr.cc (cxx_eval_bare_aggregate): Don't call
	get_or_insert_ctor_field when there is no CONSTRUCTOR.  Assert
	is_empty_class.

2026-05-19  Paul-Antoine Arras  <parras@baylibre.com>
	    Chung-Lin Tang  <cltang@baylibre.com>
	    Sandra Loosemore  <sloosemore@baylibre.com>

	* semantics.cc (finish_omp_clauses): Likewise.

2026-05-18  Marek Polacek  <polacek@redhat.com>

	* constexpr.cc (cxx_eval_bare_aggregate): Remove dead code.

2026-05-15  Jakub Jelinek  <jakub@redhat.com>

	PR c++/125081
	* typeck.cc (cp_build_binary_op): Emit -Wconstant-logical-operand
	warnings.

2026-05-15  Jason Merrill  <jason@redhat.com>

	PR c++/125315
	* constexpr.cc (init_subob_ctx): Allow both ctor and object
	to be null for an empty subobject.

2026-05-14  Patrick Palka  <ppalka@redhat.com>

	PR c++/124628
	* reflect.cc (resolve_type_of_reflected_decl): New.
	(get_reflection): Call resolve_type_of_reflected_decl instead
	of mark_used.
	(has_type): Call resolve_type_of_reflected_decl before
	checking for an undeduced auto.
	(eval_can_substitute): Likewise.  Also look through BASELINK.
	(members_of_representable): Call resolve_type_of_reflected_decl
	before checking for an undeduced auto.

2026-05-14  Tobias Burnus  <tburnus@baylibre.com>

	* semantics.cc (cp_check_omp_declare_mapper): Change what
	argument is expected; check that the struct var is used by at
	least one map war. Print sorry when compiling with -std=c++98.
	* pt.cc (tsubst_stmt, tsubst_expr): Call it.
	* parser.cc (cp_parser_omp_declare_mapper): Update call.

2026-05-13  Marek Polacek  <polacek@redhat.com>

	PR c++/125280
	* reflect.cc (consteval_only_p): Don't complete_type.
	(consteval_only_p_walker::walk): Return false for
	error_mark_node.

2026-05-13  chzn@mail.ustc.edu.cn  <chzn@mail.ustc.edu.cn>
	    Jason Merrill  <jason@redhat.com>

	PR c++/123609
	* parser.cc (cp_parser_class_head): Re-parse attributes
	that caused a tentative parsing failure.

2026-05-12  Jason Merrill  <jason@redhat.com>

	PR c++/100903
	* call.cc (build_over_call): Avoid -Wzero-as-null-pointer-constant
	if the warning is disabled around the called function.

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

	PR c++/50479
	PR c++/62244
	* parser.cc (cp_parser_parameter_declaration_list): Move the
	grokdeclarator call and setting DECL_SOURCE_LOCATION to...
	(cp_parser_parameter_declaration): ...here.  New tree parameter.
	Set it.  Call pushdecl for a named decl with a default argument.

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

	PR c++/125208
	* reflect.cc (compare_reflections): Use == when comparing two
	aliases.
	* tree.cc (cp_tree_equal) <case REFLECT_EXPR>: Use
	compare_reflections.

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

	* reflect.cc (null_reflection_p): New.
	(splice): Use it.
	* error.cc (dump_expr): Use it.
	* cp-tree.h (null_reflection_p): Declare.

2026-05-11  Marek Polacek  <polacek@redhat.com>

	* decl2.cc (decl_defined_p): Also return true if DECL_INITIAL
	and !DECL_IN_AGGR_P is true for a VAR_DECL.

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

	PR c++/121500
	* cp-gimplify.cc (cp_genericize_r): Unconditionally walk
	DECL_VALUE_EXPR.

2026-05-08  Marek Polacek  <polacek@redhat.com>

	PR c++/115181
	PR c++/125043
	PR c++/124979
	* pt.cc (invalid_tparm_referent_p): Allow DECL_IGNORED_P in an
	assert.

2026-05-07  Marek Polacek  <polacek@redhat.com>

	PR c++/124770
	* decl.cc (wrapup_namespace_globals): Give the odr-used
	inline variable error only when !DECL_INITIAL.

2026-05-07  Marek Polacek  <polacek@redhat.com>

	PR c++/125206
	* tree.cc (strip_typedefs_expr) <case REFLECT_EXPR>: Always
	return instead of recursing.

2026-05-07  Jakub Jelinek  <jakub@redhat.com>

	PR c++/125007
	* cp-tree.h (maybe_update_function_parm): Declare.
	* reflect.cc (maybe_update_function_parm): No longer static.
	* error.cc (dump_expr) <case REFLECT_EXPR>: Improve printing
	of various reflections.

2026-05-07  Jakub Jelinek  <jakub@redhat.com>

	PR c++/125184
	* reflect.cc (check_out_of_consteval_use_r): Don't walk children of
	USING_STMTs.

2026-05-07  Jakub Jelinek  <jakub@redhat.com>

	PR c++/124347
	* constexpr.cc (cxx_eval_builtin_function_call): For
	mce_true strip nops in first argument of BUILT_IN*_OBJECT_SIZE
	if the inner expression is ADDR_EXPR.

2026-05-07  Jakub Jelinek  <jakub@redhat.com>

	PR c++/125111
	* reflect.cc (extract_ref): Throw instead of trying to build
	arrays of functions, methods or arrays with NULL TYPE_DOMAIN.

2026-05-07  Jakub Jelinek  <jakub@redhat.com>

	PR c++/124991
	* cp-tree.h (struct lang_type): Document typeinfo_var member.
	(get_classtype_typeinfo_var): New inline function.
	(CLASSTYPE_TYPEINFO_VAR): Use it.
	(set_classtype_typeinfo_var): New inline function.
	(SET_CLASSTYPE_TYPEINFO_VAR): Define.
	(get_anon_aggr_type_field): New inline function.
	(ANON_AGGR_TYPE_FIELD): Use it.
	(set_anon_aggr_type_field): New inline function.
	(SET_ANON_AGGR_TYPE_FIELD): Define.
	* decl.cc (fixup_anonymous_aggr): Use SET_ANON_AGGR_TYPE_FIELD
	instead of ANON_AGGR_TYPE_FIELD.
	* module.cc (trees_in::read_class_def): Use
	SET_CLASSTYPE_TYPEINFO_VAR instead of setting
	CLASSTYPE_TYPEINFO_VAR and do it even for ANON_AGGR_TYPE_P
	types.  Use SET_ANON_AGGR_TYPE_FIELD instead of setting
	ANON_AGGR_TYPE_FIELD.
	* rtti.cc (get_tinfo_decl_direct): Use SET_CLASSTYPE_TYPEINFO_VAR
	instead of setting CLASSTYPE_TYPEINFO_VAR.
	* semantics.cc (finish_member_declaration): Use
	SET_ANON_AGGR_TYPE_FIELD instead of setting ANON_AGGR_TYPE_FIELD.

2026-05-06  Patrick Palka  <ppalka@redhat.com>

	PR c++/125179
	* reflect.cc: (consteval_only_type_r): Remove this cp_walk_tree
	callback and replace with ...
	(consteval_only_walker): ... this recursive memoized
	implementation.
	(consteval_only_p): Define in terms of consteval_only_walker.

2026-05-05  Patrick Palka  <ppalka@redhat.com>

	PR c++/124957
	* class.cc (check_tag): Set ABI_TAG_INHERITED on the TREE_LIST
	of an inherited tag.  Adjust after ABI_TAG_IMPLICIT renaming.
	* cp-tree.h (ABI_TAG_IMPLICIT): Rename to ...
	(ABI_TAG_NOT_MANGLED): ... this.
	(equal_abi_tags): Adjust forward declaration.
	* mangle.cc (write_unqualified_name): Adjust equal_abi_tags call.
	(sorted_abi_tags): New ignore_inherited_p parameter, for ignoring
	ABI_TAG_INHERITED tags.  Adjust after ABI_TAG_INHERITED renaming.
	(write_abi_tags): Adjust sorted_abi_tags call.
	(equal_abi_tags): New ignore_inherited_p parameter.  Pass it to
	sorted_abi_tags.
	* module.cc (trees_in::check_abi_tags): Pass
	ignore_inherited_p=true to equal_abi_tags iff there's a
	mangled-ness mismatch.

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

	* module.cc (elf_out::create_mapping) [MAPPED_WRITING]
	(elf_out::create_mapping) [HAVE_POSIX_FALLOCATE]: Allow for
	ENOTSUP return from posix_fallocate.

2026-05-04  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR c++/65271
	* parser.cc (cp_parser_class_specifier): Accept &&.

2026-05-04  yxj-github-437  <2457369732@qq.com>

	* constexpr.cc (cxx_eval_constant_expression): Do not cache
	result with contract violation.

2026-05-04  chzn@mail.ustc.edu.cn  <chzn@mail.ustc.edu.cn>

	PR c++/124241
	* search.cc (accessible_p): Call type_context_for_name_lookup
	for otype if it's anonymous union.

2026-05-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR c++/119567
	* error.cc (dump_expr): Treat EXACT_DIV_EXPR the same as FLOOR_DIV_EXPR.

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

	PR c++/125115
	* module.cc (trees_in::is_matching_decl): Turn e_type into a
	reference and use it instead of TREE_TYPE (e_inner).  Always
	use build_exception_variant to propagate an already-instantiated
	noexcept.

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

	PR c++/125096
	* pt.cc (tsubst_splice_scope): Don't return early for
	dependent_splice_p.  Propagate cv-qualifiers from the
	SPLICE_SCOPE to the result.
	* reflect.cc (valid_splice_scope_p): Accept SPLICE_SCOPE.

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

	PR c++/125035
	* module.cc (merge_key): Add iobj_p and xobj_p bits.
	(trees_out::key_mergeable) <case MK_named>: Set and stream
	merge_key's iobj_p and xobj_p bits.
	(check_mergeable_decl) <case FUNCTION_DECL>: Compare merge_key's
	iobj_p and xobj_p bits with that of the given function.
	(trees_in::key_mergeable): Stream merge_key's iobj_p and xobj_p
	bits.

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

	PR c++/124582
	PR c++/123810
	* module.cc (check_mergeable_decl) <case TYPE_DECL>: Handle
	merging a typedef to an unnamed type with the -freflection
	representation.

2026-04-29  Julian Brown  <julian@codesourcery.com>

	* parser.cc (cp_parser_omp_target_data): Instantiate mappers for 'omp
	target data'.
	(cp_parser_omp_target_enter_data): Instantiate mappers for 'omp target
	enter data'.
	(cp_parser_omp_target_exit_data): Instantiate mappers for 'omp target
	exit data'.
	(cp_parser_omp_target): Add c_omp_region_type argument to
	c_omp_instantiate_mappers call.
	* pt.cc (tsubst_omp_clauses): Instantiate mappers for OMP regions other
	than just C_ORT_OMP_TARGET.
	(tsubst_expr): Update call to tsubst_omp_clauses for OMP_TARGET_UPDATE,
	OMP_TARGET_ENTER_DATA, OMP_TARGET_EXIT_DATA stanza.
	* semantics.cc (cxx_omp_map_array_section): Avoid calling
	build_array_ref for non-array/non-pointer bases (error reported
	already).

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

	* reflect.cc (compare_reflection): For REFLECT_BASE use lhs == rhs rather
	than cp_tree_equal.

2026-04-28  Marek Polacek  <polacek@redhat.com>

	PR c++/124756
	* reflect.cc (get_reflection): Give an error when taking the
	reflection of a block-scope extern.

2026-04-28  Marek Polacek  <polacek@redhat.com>

	* error.cc (inform_tree_category): Also print concept and alias
	template.
	* pt.cc (tsubst_splice_scope): Reword the diagnostic messages.
	Call inform_tree_category.

2026-04-28  Jason Merrill  <jason@redhat.com>

	PR c++/125022
	* decl.cc (store_parm_decls): Only do trivial_abi stuff when
	!processing_template_decl.

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

	PR c++/124978
	PR c++/115314
	* semantics.cc (finish_decltype_type): Check REFERENCE_REF_P
	instead of INDIRECT_REF_P before stripping implicit dereferences.

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

	PR c++/124953
	* module.cc (trees_in::tree_node) <tt_nttp_var>: Push the result
	of get_template_parm_object to post_load_decls.
	(post_load_processing): Call cp_finish_decl on any not yet
	completed NTTP objects.
	* pt.cc (get_template_parm_object): Don't call cp_finish_decl
	when !check_init.

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

	PR c++/124910
	DR 2658
	* constexpr.cc (reduced_constant_expression_p): Allow a union
	with no active member.

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

	* module.cc (trees_out::core_vals) <case PTRMEM_CST>:
	Stream PTRMEM_CST_LOCATION.
	<case TRAIT_EXPR>: Stream TRAIT_EXPR_LOCATION.
	(trees_in::core_vals): As in trees_out::core_vals.

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

	PR c++/124981
	* module.cc (trees_in::core_vals) <case PTRMEM_CST>: Use RTU
	instead of RT to stream PTRMEM_CST_MEMBER.

2026-04-23  Marek Polacek  <polacek@redhat.com>

	* cp-tree.h (lookup_annotation): Declare.
	* decl.cc (grokfndecl): Use lookup_annotation.
	(grokdeclarator): Likewise.
	* name-lookup.cc (push_local_extern_decl_alias): Likewise.
	* parser.cc (cp_parser_decomposition_declaration): Likewise.
	* reflect.cc (eval_annotations_of): Likewise.
	* tree.cc (lookup_annotation): New.

2026-04-23  Marek Polacek  <polacek@redhat.com>

	* cp-tree.h (enum linkage_kind): Add lk_module.
	* module.cc (check_module_decl_linkage): Use DECL_EXTERNAL_LINKAGE_P.
	* name-lookup.cc (check_can_export_using_decl): Don't check for
	attachment.
	* parser.cc (cp_parser_template_argument): Check that linkage isn't
	lk_module.
	* reflect.cc (eval_has_module_linkage): Check lk_module.
	(eval_has_external_linkage): Use DECL_EXTERNAL_LINKAGE_P.
	* tree.cc (decl_linkage): Return lk_module if appropriate.

2026-04-23  Marek Polacek  <polacek@redhat.com>

	DR 2229
	PR c++/123935
	* decl2.cc (grokbitfield): Add pedwarn for cv-qualified unnamed
	bit-fields.

2026-04-23  Marek Polacek  <polacek@redhat.com>

	PR c++/124989
	* pt.cc (tsubst_splice_expr): Turn off access checking for the
	build_offset_ref call.

2026-04-23  Ben Wu  <soggysocks206@gmail.com>

	PR c++/118374
	PR c++/41127
	* parser.cc (cp_parser_enum_specifier): Parse definitely
	before cp_parser_type_specifier_seq.

2026-04-23  Yuxuan Chen  <i@yuxuan.ch>

	PR c++/107187
	* cp-tree.h (has_trivial_abi_attribute): New function.
	(validate_trivial_abi_attribute): Declare.
	(classtype_has_non_deleted_copy_or_move_ctor): Declare.
	(cxx_clang_attribute_table): Declare.
	* tree.cc (handle_trivial_abi_attribute): New function.
	(handle_gnu_trivial_abi_attribute): New function.
	(classtype_has_trivial_abi): New function.
	(validate_trivial_abi_attribute): New function.
	(cxx_gnu_attributes): Add trivial_abi entry.
	(cxx_clang_attributes): New table for [[clang::trivial_abi]].
	* class.cc (finish_struct_bits): Skip BLKmode for types with
	trivial_abi attribute.
	(classtype_has_non_deleted_copy_or_move_ctor): New function.
	(finish_struct_1): Call validate_trivial_abi_attribute before
	finish_struct_bits.
	* cp-objcp-common.h (cp_objcp_attribute_table): Register
	cxx_clang_attribute_table.
	* decl.cc (store_parm_decls): Register cleanups for trivial_abi
	parameters.

2026-04-23  Jason Merrill  <jason@redhat.com>

	PR c++/124973
	* cp-gimplify.cc (cp_fold_r): Fix typo.

2026-04-23  Marek Polacek  <polacek@redhat.com>

	PR c++/124926
	* pt.cc (tsubst_qualified_id): Rename name_lookup_p parameter to
	reflecting_p.  Check !reflecting_p instead of name_lookup_p.  Do
	not give the "instantiation yields a type" error when reflecting_p
	is true.
	(tsubst_expr) <case REFLECT_EXPR>: Adjust the call to
	tsubst_qualified_id.

2026-04-22  Jason Merrill  <jason@redhat.com>

	PR c++/124973
	PR c++/120502
	PR c++/120005
	* cp-gimplify.cc (cp_fold_r) <case TARGET_EXPR>: Only
	do optimization folding when ff_genericize.
	(cp_fold) <case CALL_EXPR>: Don't do
	optimization folding when ff_only_non_odr.

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

	PR c++/123879
	* module.cc (maybe_translate_include): Use lrealpath in check
	whether we're including something in the same directory.

2026-04-21  Jakub Jelinek  <jakub@redhat.com>

	PR c++/124944
	* parser.cc (cp_parser_mem_initializer_id): Parse
	splice-type-specifier.

2026-04-21  Jakub Jelinek  <jakub@redhat.com>

	PR c++/124927
	* pt.cc (finish_expansion_stmt): Compute types for force_target_expr
	from b and e before extracting TARGET_EXPR_INITIAL from it.

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

	PR c++/124910
	* constexpr.cc (cxx_eval_store_expression): Ending the
	lifetime of the active member means no active member.

2026-04-20  Marek Polacek  <polacek@redhat.com>

	PR c++/124706
	* parser.cc (cp_parser_splice_type_specifier): For ctad_template_p
	call make_template_placeholder.
	* pt.cc (tsubst_splice_scope): Likewise.

2026-04-20  Iain Sandoe  <iain@sandoe.co.uk>

	PR c++/124648
	* contracts.cc (maybe_apply_function_contracts): Nest pre and
	post conditions inside the outer bind expression of a lambda
	with captures.

2026-04-20  Marek Polacek  <polacek@redhat.com>

	PR c++/124855
	* reflect.cc (consteval_only_p): Return false if the type is
	dependent.

2026-04-17  Marek Polacek  <polacek@redhat.com>

	* cp-tree.h (reflection_function_template_p): Change the
	parameter to const_tree.
	* reflect.cc (valid_splice_for_member_access_p): Use
	reflection_function_template_p.
	(reflection_function_template_p): Check DECL_FUNCTION_TEMPLATE_P
	instead of really_overloaded_fn.  Unwrap BASELINKs and OVERLOADs.
	Adjust the parameter type.

2026-04-17  Marek Polacek  <polacek@redhat.com>

	* reflect.cc (splice): Detect a null reflection.

2026-04-17  Jakub Jelinek  <jakub@redhat.com>

	* lex.cc (cxx_init): Don't call cpp_warn on contract_assert,
	instead call it on pre and post.

2026-04-17  Jakub Jelinek  <jakub@redhat.com>

	PR c++/123783
	* reflect.cc (splice): Reject splicing of function parameters.

2026-04-17  Jason Merrill  <jason@redhat.com>

	PR c++/124632
	* constexpr.cc (cxx_eval_call_expression): Unshare bindings
	sooner.

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

	* reflect.cc (dump_data_member_spec): Temporarily ignore
	-Wformat and -Wformat-diag warnings.

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

	PR c++/124614
	* cp-tree.h (valid_splice_for_member_access_p): Declare.
	(dump_data_member_spec): Declare.
	* error.cc (dump_expr) <case REFLECT_EXPR>: Print a data member
	description.
	* parser.cc (cp_parser_splice_expression): Use
	valid_splice_for_member_access_p.
	* pt.cc (tsubst_splice_expr): Likewise.
	* reflect.cc (dump_data_member_spec): New.
	(eval_display_string_of): Use it.
	(valid_splice_for_member_access_p): New.
	(check_splice_expr): Check that we got
	valid_splice_for_member_access_p for a member access.
	* typeck.cc (finish_class_member_access_expr): Use
	valid_splice_for_member_access_p.

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

	PR c++/124120
	* pt.cc (finish_expansion_stmt): Give iter variable an artificial
	name.

2026-04-16  Egas Ribeiro  <egas.g.ribeiro@gmail.com>
	    Jason Merrill  <jason@redhat.com>

	PR c++/123346
	* constexpr.cc (init_subob_ctx): Do initialize new_ctx.ctor
	for an empty union member.

2026-04-16  Iain Sandoe  <iains.gcc@gmail.com>
	    Jason Merrill  <jason@redhat.com>

	PR c++/124648
	* cp-tree.h (DECL_CONTRACT_CAPTURE_P): New.
	* parser.cc (cp_parser_lambda_body): Scan the captures for
	ones were only added in contract assertion scopes.  Issue
	errors for those found.
	* semantics.cc (process_outer_var_ref): Mark implicit
	captures that occur in contract assertion scopes.  Clear
	the mark if the entity is subsequently captured 'normally'.
	(set_contract_capture_flag): New.

2026-04-16  Iain Sandoe  <iains.gcc@gmail.com>
	    Jason Merrill  <jason@redhat.com>

	* contracts.cc (view_as_const): Check for const-qualified
	class pointer before wrapping it.
	* parser.cc (cp_parser_late_contract_condition): Use revised
	handling of const-ification of class pointers.
	(cp_parser_contract_assert): Likewise.
	(cp_parser_function_contract_specifier): Likewise.

2026-04-15  Marek Polacek  <polacek@redhat.com>

	PR c++/120338
	* decl.cc (cp_finish_decl): Set DECL_INITIAL to error_mark_node
	instead of NULL_TREE for deleted main.

2026-04-15  Marek Polacek  <polacek@redhat.com>

	PR c++/123783
	* lambda.cc (add_capture): When trying to capture something in
	an instantiation of generic lambda, give an error instead of an ICE.

2026-04-15  Patrick Palka  <ppalka@redhat.com>

	PR c++/124824
	* decl.cc (cp_finish_decl): Sink !consteval_only_p check to
	only guard the varpool_node::get_create call.

2026-04-15  Jakub Jelinek  <jakub@redhat.com>

	PR c++/124755
	* constexpr.cc (cxx_eval_constant_expression): If TARGET_EXPR_INITIAL
	throws and !is_complex and type is neither aggregate nor vector,
	call ctx->global->put_value (slot, NULL) before returning.

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

	PR c++/117133
	PR c++/124768
	PR c++/124773
	* mangle.cc (unmangled_name_p): Don't mangle internal extern "C"
	variables.

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

	PR c++/121643
	PR c++/123975
	* coroutines.cc (build_co_await): Pass rvalue to await_suspend.
	(expand_one_await_expression): Fix await_suspend surgery.

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

	PR c++/121961
	* coroutines.cc (build_actor_fn): Move the delete label before
	the refcount handling.
	(cp_coroutine_transform::build_ramp_function): Decrement refcount
	after destroying gro.

2026-04-15  Jakub Jelinek  <jakub@redhat.com>

	* pt.cc (finish_expansion_stmt): Implement CWG3149 - Rvalues in
	destructuring expansion statements.  For esk_destructuring, if
	expansion_init is not lvalue_p, wrap init into a static_cast
	to decltype of destruct_decls[i].

2026-04-15  Jakub Jelinek  <jakub@redhat.com>

	* mangle.cc (write_reflection): Adjust grammar for type alias
	reflections.  Don't use write_prefix on arg, instead
	write_prefix its mangling context, write_unqualified_name of
	the alias, optionally write_template_args, append underscore
	and write_type the original type.

2026-04-15  Jakub Jelinek  <jakub@redhat.com>

	PR c++/124862
	* decl.cc (cp_decomp_size): If btype is different from type,
	check if it is accessible.

2026-04-15  Jakub Jelinek  <jakub@redhat.com>

	PR c++/124850
	* typeck.cc (cxx_mark_addressable): For DECL_ANON_UNION_VAR_P vars
	also mark their DECL_VALUE_EXPR.

2026-04-15  Jakub Jelinek  <jakub@redhat.com>

	* reflect.cc (adjust_array_elt): New function.
	(get_range_elts): Implement LWG4483 - Multidimensional arrays are not
	supported by meta::reflect_constant_array and related functions.
	Handle ARRAY_TYPE valuet.  Don't unshare_expr in the class valuet case,
	get_template_param_object will unshare.

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

	PR c++/124544
	* tree.cc (strip_typedefs_expr) <case REFLECT_EXPR>: Don't
	recurse into a type operand.
	(cp_tree_equal) <case REFLECT_EXPR>: For a reflection of an
	alias, also compare TYPE_NAMEs directly.

2026-04-14  Marek Polacek  <polacek@redhat.com>

	* cp-tree.h (reflection_function_template_p): Declare.
	* parser.cc (cp_parser_splice_expression): Use
	reflection_function_template_p instead of really_overloaded_fn.
	* reflect.cc (check_splice_expr): Likewise.
	(reflection_function_template_p): New.

2026-04-13  Marek Polacek  <polacek@redhat.com>

	PR c++/123237
	PR c++/124771
	PR c++/124842
	* mangle.cc (write_splice): New.
	(write_prefix): Call write_splice for SPLICE_SCOPE.
	(write_type): Likewise.
	(write_expression): Call write_splice for dependent_splice_p.
	(write_reflection): Handle the "tt" and "de" prefixes.
	* reflect.cc (reflection_mangle_prefix): For
	DECL_TEMPLATE_TEMPLATE_PARM_P, use the prefix "tt".  For
	dependent reflections, use "de".

2026-04-13  Marek Polacek  <polacek@redhat.com>

	PR c++/124835
	* parser.cc (cp_parser_decltype_expr): Check that [: :] is
	followed by a close paren before declaring it an unparenthesized
	splice-expression.

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

	PR c++/103901
	PR c++/123566
	* pt.cc (push_template_decl): Sorry on local class in lambda in
	template parm list.

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

	PR c++/122632
	* pt.cc (tsubst_exception_specification): Add cp_unevaluated.

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

	PR c++/122884
	* pt.cc (reconstruct_lambda_capture_pack): New.
	(tsubst_pack_expansion): Use it.
	(tsubst_decl): Handle capture proxy.
	(tsubst): Handle lambda closure.
	(tsubst_expr): Handle closure field.
	(tsubst_lambda_expr): Copy closure location.
	* constraint.cc (satisfy_declaration_constraints): Set up
	local_specializations for a lambda.

2026-04-10  Jakub Jelinek  <jakub@redhat.com>

	PR c++/124831
	* reflect.cc (namespace_members_of): Append reflection of anon unions
	when we see it first time as CP_DECL_CONTEXT of some CONST_DECL in
	the namespace.

2026-04-10  Jakub Jelinek  <jakub@redhat.com>

	PR c++/124792
	* pt.cc (get_template_parm_object): Call unshare_expr_without_location
	on expr if check_init.

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

	PR c++/123998
	* cp-tree.h (SPLICE_EXPR_TEMPLATE_P): Define.
	(SET_SPLICE_EXPR_TEMPLATE_P): Define.
	(SPLICE_EXPR_TARGS_P): Define.
	(SET_SPLICE_EXPR_TARGS_P): Define.
	(check_splice_expr): Adjust.
	* parser.cc (cp_parser_splice_expression): Do
	SET_SPLICE_EXPR_TEMPLATE_P and SET_SPLICE_EXPR_TARGS_P.  Adjust
	the call to check_splice_expr.  Move the template_p checking into
	check_splice_expr.
	* pt.cc (tsubst_splice_expr): Do SET_SPLICE_EXPR_TEMPLATE_P and
	SET_SPLICE_EXPR_TARGS_P.  Adjust the call to check_splice_expr.
	* reflect.cc (eval_constant_of): Adjust the call to
	check_splice_expr.
	(check_splice_expr): Two new bool parameters.  Add the template_p
	checking from cp_parser_splice_expression.  Allow
	variable_template_p in the assert.  Add a check for
	DECL_TYPE_TEMPLATE_P.

2026-04-09  Dhruv Chawla  <dhruvc@nvidia.com>

	* Make-lang.in (create_fdas_for_cc1plus): Use $(AFDO_PROFILER) when
	passing --profiler to create_gcov. Ensure that perf.data contains
	profile for cc1plus. Make the console output more useful.

2026-04-08  Marek Polacek  <polacek@redhat.com>
	    Boris Staletic  <boris.staletic@protonmail.com>

	PR c++/123726
	* reflect.cc (check_splice_expr): Detect accessing a class template
	or alias template with . or ->.
	* typeck.cc (finish_class_member_access_expr): Check if the scope of
	the spliced entity in a member access expression is of a class type.
	Allow variable_template_p for context_for_name_lookup.

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

	PR c++/124457
	* parser.cc (cp_parser_reflect_expression): Check is_auto here
	instead of...
	* reflect.cc (get_reflection): ...here.

2026-04-08  Marek Polacek  <polacek@redhat.com>
	    Boris Staletic  <boris.staletic@protonmail.com>

	PR c++/124177
	* tree.cc (handle_annotation_attribute): Decay annotation
	values.  Turn if !type_dependent_expression_p into an assert.

2026-04-08  Yang Kun  <yangkun@disroot.org>

	* pt.cc (tsubst_expr): Use gcc_unreachable, not gcc_assert.
	* parser.cc (cp_parser_template_id): Likewise.
	* reflect.cc (eval_template_of): Likewise.

2026-04-08  Yang Kun  <yangkun@disroot.org>

	* reflect.cc (eval_current_function): Add missing return.
	(eval_current_class): Likewise.

2026-04-08  Yang Kun  <yangkun@disroot.org>

	* reflect.cc (eval_display_string_of): Fix copy-paste error in exception
	messages.

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

	* parser.cc (cp_parser_omp_loop_nest): Write orig_declv, not incrv.

2026-04-08  Yang Kun  <yangkun@disroot.org>

	* parser.cc (cp_parser_omp_clause_proc_bind): Fix error message
	(cp_parser_omp_clause_device_type): Likewise.

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

	PR c++/124617
	* parser.cc (cp_parser_reflect_expression): Call baselink_for_fns.

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

	* constraint.cc (diagnose_trait_expr): Remove CPTK_IS_CONSTEVAL_ONLY
	handling.
	* metafns.gperf (enum metafn_code): Remove
	METAFN_IS_CONSTEVAL_ONLY_TYPE.
	(is_consteval_only_type): Remove.
	* semantics.cc (trait_expr_value, finish_trait_expr): Remove
	CPTK_IS_CONSTEVAL_ONLY handling.
	* cp-trait.def (__builtin_is_consteval_only): Remove.
	* metafns.h: Regenerate.
	* reflect.cc (eval_is_consteval_only_type): Remove.
	(process_metafunction): Don't handle METAFN_IS_CONSTEVAL_ONLY_TYPE.

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

	* decl.cc (cp_finish_decomp): Implement CWG3135 - constexpr structured
	bindings with prvalues from tuples (as a DR).  Don't call
	cp_build_reference_type if init is prvalue.

2026-04-07  Patrick Palka  <ppalka@redhat.com>

	PR c++/123700
	* pt.cc (dependent_opaque_alias_p): Return true for a
	template-id typedef with a lambda targ.

2026-04-07  Patrick Palka  <ppalka@redhat.com>

	PR c++/123529
	PR c++/98930
	* pt.cc (has_value_dependent_address): Correct context
	dependence check for a static local variable.

2026-04-07  Jakub Jelinek  <jakub@redhat.com>

	* cp-tree.h: Implement C++26 CWG3140 - Allowing expansion over
	non-constant std::array.
	(cp_build_range_for_decls): Change last argument from bool to tree.
	(build_range_temp): Likewise and default it to NULL_TREE rather than
	false.
	* parser.cc (build_range_temp): Remove expansion_stmt_p
	argument, add expansion_stmt_decl.  Don't call cp_build_qualified_type
	if expansion_stmt_decl was not declared constexpr.
	(cp_build_range_for_decls): Remove expansion_stmt_p argument, add
	expansion_stmt_decl.  Pass expansion_stmt_decl to build_range_temp.
	Don't set TREE_STATIC, TREE_PUBLIC, DECL_COMMON, DECL_INTERFACE_KNOWN,
	DECL_DECLARED_CONSTEXPR_P and TREE_READONLY on range_temp if
	expansion_stmt_decl was not declared constexpr.  Don't call
	cp_build_qualified_type on begin type nor set TREE_STATIC etc. on begin
	if expansion_stmt_decl was not declared constexpr.  If
	expansion_stmt_decl is non-NULL, don't build end at all, instead pass
	begin_expr and end_expr in end_p[0] and end_p[1] to the caller.
	(cp_convert_range_for): Adjust cp_build_range_for_decls caller.
	* pt.cc (finish_expansion_stmt): Likewise.  Use begin_expr and end_expr
	instead of begin and end variables from cp_build_range_for_decls,
	make them non-constant and avoid spurious -Wunused-result/nodiscard
	diagnostics.

2026-04-07  Jakub Jelinek  <jakub@redhat.com>

	PR c++/124487
	* mangle.cc (write_type) <case PACK_INDEX_TYPE>: Handle even
	the case of partially substituted pack.
	(write_expression): Similarly for PACK_INDEX_EXPR.

2026-04-07  Jakub Jelinek  <jakub@redhat.com>

	PR c++/124790
	* reflect.cc (get_reflection): When reflecting VAR_DECL or PARM_DECL,
	call mark_exp_read on it.

2026-04-06  Nathaniel Shead  <nathanieloshead@gmail.com>

	PR libstdc++/124268
	* module.cc (instantiating_tu_local_entity): Use pedwarn instead
	of warning.
	(depset::hash::add_binding_entity): Don't skip exported
	using-decls as TU-local entities.
	(depset::hash::finalize_dependencies): Don't attempt to complain
	again about using-decls referencing TU-local entities.
	* name-lookup.cc (check_can_export_using_decl): Demote the error
	to a warning for using-decls of GMF vars or functions.

2026-04-06  Nathaniel Shead  <nathanieloshead@gmail.com>

	PR c++/124735
	* module.cc (trees_in::is_matching_decl): Handle importing
	undeduced auto when existing is already deduced.

2026-04-06  Nathaniel Shead  <nathanieloshead@gmail.com>

	PR c++/124781
	* module.cc (set_originating_module): Add a function comment,
	only set attachment/exporting for entities with non-NULL
	DECL_CONTEXT.
	(check_module_decl_linkage): Use decl_anon_ns_mem_p instead of
	decl_internal_context_p.

2026-04-06  Nathaniel Shead  <nathanieloshead@gmail.com>

	PR c++/124785
	* module.cc (trees_in::is_matching_decl): Narrow condition for
	when noexcept propagation occurs; assert that we don't propagate
	noexcept-specs for TEMPLATE_DECLs.

2026-04-06  Nathaniel Shead  <nathanieloshead@gmail.com>

	PR c++/118630
	* module.cc (depset::hash::add_dependency): Correct entry point
	corection for recursive clusters.

2026-04-06  Jakub Jelinek  <jakub@redhat.com>

	PR c++/124488
	* parser.cc (cp_parser_expansion_statement): Set
	DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P, DECL_DEPENDENT_INIT_P and
	if maybe constant non-reference TREE_CONSTANT on range_decl.
	* pt.cc (tsubst_stmt) <case TEMPLATE_FOR_STMT>: Set
	DECL_DEPENDENT_INIT_P on decl.

2026-04-06  Jakub Jelinek  <jakub@redhat.com>

	* decl.cc (grokfndecl): For -freflection mark annotations of
	PARM_DECLs in a function definit