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

	PR c++/123601
	* tree.cc (build_min_non_dep_op_overload): Relax
	COMPARISON_CLASS_P assert to accept SPACESHIP_EXPR too.

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

	* reflect.cc (get_range_elts): Add comment for TARGET_EXPR stripping.
	(get_vector_of_info_elts): Likewise.

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

	* decl2.cc (min_vis_expr_r): For _DECLs with no linkage refer to the
	linkage of the containing entity that does have a name with linkage.

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

	* metafns.gperf: Add "" as second operand of 2 static_asserts.
	* metafns.h: Regenerate.

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

	* reflect.cc (get_reflection): Adjust the error message for the
	is_capture_proxy check.

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

	* cp-tree.h (direct_base_parent): Rename to...
	(direct_base_derived): ...this.
	* decl2.cc (min_vis_expr_r): Call direct_base_derived instead of
	direct_base_parent.
	* pt.cc (iterative_hash_template_arg): Likewise.
	* reflect.cc (direct_base_parent_binfo): Rename to...
	(direct_base_derived_binfo): ...this.
	(direct_base_parent): Rename to...
	(direct_base_derived): ...this.
	(eval_is_expected_access): Call direct_base_derived_binfo instead
	of direct_base_parent_binfo.
	(eval_source_location_of): Call direct_base_derived instead of
	direct_base_parent.
	(eval_parent_of): Likewise.
	(eval_offset_of): Likewise.
	(eval_display_string_of): Likewise.
	(eval_annotations_of): Call direct_base_derived_binfo instead
	of direct_base_parent_binfo.
	(eval_is_accessible): Call direct_base_derived instead of
	direct_base_parent.

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

	* reflect.cc (check_splice_expr): Use context_for_name_lookup.

2026-01-18  Simon Martin  <simon@nasilyan.com>

	PR c++/122391
	* tree.cc (decl_linkage): Return lk_none for TYPE_DECLs with
	erroneous type.

2026-01-17  Nathaniel Shead  <nathanieloshead@gmail.com>

	PR c++/123627
	* class.cc (finish_struct): Maybe key function-local types.
	* module.cc (trees_out::get_merge_kind): Choose whether to use
	MK_local_type or MK_keyed for a local type based on if the
	immediate context's definition will be streamed.
	(trees_in::key_mergeable): Allow key decls on FUNCTION_DECL.
	(adjust_key_scope): New function.
	(maybe_key_decl): Handle key decls on FUNCTION_DECL; check that
	we only key a given decl to a context at most once.
	(get_keyed_decl_scope): Support non-lambda decls.

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

	* reflect.cc (eval_variable_of): Update comment.

2026-01-16  Jakub Jelinek  <jakub@redhat.com>
	    Peter Damianov  <peter0x44@disroot.org>

	PR c/123437
	* typeck.cc (cp_build_binary_op): Don't use RDIV_EXPR
	resultcode if both types are integral, _BitInt or
	newly VECTOR_TYPE of ENUMERAL_TYPE.

2026-01-15  Marek Polacek  <polacek@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR c++/120775
	PR c++/123081
	PR c++/122634
	* Make-lang.in: Add cp/reflect.o.  Add a rule for cp/metafns.h.
	* config-lang.in: Add reflect.cc.
	* constexpr.cc (constexpr_global_ctx): Add consteval_block and
	metafns_called members.  Initialize them.
	(cxx_constexpr_quiet_p): New.
	(cxx_constexpr_manifestly_const_eval): New.
	(cxx_constexpr_caller): New.
	(cxx_constexpr_consteval_block): New.
	(enum value_cat): Move into cp-tree.h.
	(cxx_eval_constant_expression): Move the declaration into cp-tree.h.
	No longer static.  Handle REFLECT_EXPR.  Handle conversion of
	a reflection to the meta::info type.
	(cxx_eval_cxa_builtin_fn): Override current_function_decl.
	(cxx_eval_builtin_function_call): Handle __builtin_is_string_literal.
	(is_std_allocator): Also check __new_allocator.
	(is_std_allocator_allocate): No longer static.
	(cxa_allocate_and_throw_exception): New.
	(cxx_eval_call_expression): Handle metafunctions.  Maybe set
	metafns_called.
	(reduced_constant_expression_p): Handle REFLECT_EXPR.
	(cxx_eval_binary_expression): Use compare_reflections for comparing
	reflections.
	(find_immediate_fndecl): Don't walk REFLECT_EXPR_P.
	(cxx_eval_outermost_constant_expr): Set global_ctx.consteval_block.
	Detect consteval-only smuggling.
	(potential_constant_expression_1): Return true for REFLECT_EXPR
	and SPLICE_EXPR.
	* constraint.cc (diagnose_trait_expr): Add CPTK_IS_CONSTEVAL_ONLY case.
	* cp-gimplify.cc (immediate_escalating_function_p): No longer static.
	(promote_function_to_consteval): Likewise.
	(cp_gimplify_expr) <case CALL_EXPR>: Detect any surviving consteval-only
	expressions.
	<case CP_BUILT_IN_IS_STRING_LITERAL>: Handle.
	(wipe_consteval_only_r): New.
	(cp_fold_immediate_r): Detect invalid uses of consteval-only types.
	Clear consteval-only DECL_EXPRs.
	(cp_genericize_r): Wipe consteval-only vars from BIND_EXPR_VARS and
	BLOCK_VARS.
	* cp-objcp-common.cc (cp_common_init_ts): Mark META_TYPE, SPLICE_SCOPE,
	SPLICE_EXPR, and REFLECT_EXPR.
	* cp-trait.def (IS_CONSTEVAL_ONLY): New trait.
	* cp-tree.def (REFLECT_EXPR, META_TYPE, SPLICE_EXPR, SPLICE_SCOPE): New
	trees.
	* cp-tree.h (enum cp_tree_index): Add CPTI_ANNOTATION_IDENTIFIER,
	CPTI_STD_META, and CPTI_META_INFO_TYPE.
	(std_meta_node): Define.
	(meta_info_type_node): Define.
	(annotation_identifier): Define.
	(REFLECTION_TYPE_P): Define.
	(REFLECT_EXPR_P): Define.
	(REFLECT_EXPR_HANDLE): Define.
	(enum reflect_kind): New.
	(REFLECT_EXPR_KIND): Define.
	(SET_REFLECT_EXPR_KIND): Define.
	(SPLICE_EXPR_EXPRESSION_P): Define.
	(SET_SPLICE_EXPR_EXPRESSION_P): Define.
	(SPLICE_EXPR_MEMBER_ACCESS_P): Define.
	(SET_SPLICE_EXPR_MEMBER_ACCESS_P): Define.
	(SPLICE_EXPR_ADDRESS_P): Define.
	(SET_SPLICE_EXPR_ADDRESS_P): Define.
	(SPLICE_SCOPE_EXPR): Define.
	(SPLICE_SCOPE_TYPE_P): Define.
	(WILDCARD_TYPE_P): Include SPLICE_SCOPE.
	(COMPONENT_REF_SPLICE_P): Define.
	(SCALAR_TYPE_P): Include REFLECTION_TYPE_P.
	(ENUM_BEING_DEFINED_P): Define.
	(OLD_PARM_DECL_P): Define.
	(MULTIPLE_NAMES_PARM_P): Define.
	(cp_preserve_using_decl): Declare.
	(DEF_OPERATOR, DEF_ASSN_OPERATOR): Include META.
	(struct ovl_op_info_t): Add meta_name member.
	(enum cp_built_in_function): Add CP_BUILT_IN_IS_STRING_LITERAL.
	(build_stub_type): Declare.
	(current_function_decl_without_access_scope): Declare.
	(dependent_namespace_p): Declare.
	(convert_reflect_constant_arg): Declare.
	(finish_base_specifier): Adjust declaration.
	(parsing_lambda_declarator): Declare.
	(fold_builtin_is_string_literal): Declare.
	(annotation_p): Declare.
	(finish_class_member_access_expr): Adjust declaration.
	(immediate_escalating_function_p): Declare.
	(promote_function_to_consteval): Declare.
	(is_std_allocator_allocate): Declare.
	(cxa_allocate_and_throw_exception): Declare.
	(enum value_cat): Define.
	(cxx_eval_constant_expression): Declare.
	(cxx_constexpr_quiet_p): Declare.
	(cxx_constexpr_manifestly_const_eval): Declare.
	(cxx_constexpr_caller): Declare.
	(cxx_constexpr_consteval_block): Declare.
	(init_reflection): Declare.
	(metafunction_p): Declare.
	(direct_base_parent): Declare.
	(process_metafunction): Declare.
	(get_reflection): Declare.
	(get_null_reflection): Declare.
	(splice): Declare.
	(check_out_of_consteval_use): Declare.
	(consteval_only_p): Declare.
	(compare_reflections): Declare.
	(valid_splice_type_p): Declare.
	(valid_splice_scope_p): Declare.
	(check_splice_expr): Declare.
	(make_splice_scope): Declare.
	(dependent_splice_p): Declare.
	(reflection_mangle_prefix): Declare.
	(check_consteval_only_fn): Declare.
	* cvt.cc (convert_to_void): Call check_out_of_consteval_use.
	* cxx-pretty-print.cc (cxx_pretty_printer::unary_expression): New
	REFLECT_EXPR case.
	(cxx_pretty_printer::expression): Likewise.
	(cxx_pretty_printer::simple_type_specifier): New META_TYPE case.
	(cxx_pretty_printer::type_id): Likewise.
	* decl.cc (duplicate_decls): Merge parameter names for Reflection.
	Maybe set OLD_PARM_DECL_P.
	(initialize_predefined_identifiers): Add "annotation ".
	(cxx_init_decl_processing): Add __builtin_is_string_literal.  Call
	init_reflection.
	(maybe_commonize_var): Do nothing for consteval_only_p.
	(check_initializer): Default-initialize std::meta::info.
	(make_rtl_for_nonlocal_decl): For consteval_only_p vars, set
	DECL_EXTERNAL and return early.
	(cp_finish_decl): Call check_out_of_consteval_use.  Don't go
	creating a varpool node for consteval_only_p.
	(get_tuple_size): Check the instantiation instead of the type.
	(grokfndecl): Call check_consteval_only_fn.
	(xref_basetypes): Stitch annotations onto BINFO_BASE_ACCESSES.
	(finish_enum_value_list): Clear ENUM_BEING_DEFINED_P.
	* decl2.cc (is_late_template_attribute): Handle all annotations as
	late.
	(cp_check_const_attributes): Don't handle annotations here.
	(maybe_make_one_only): Do nothing for consteval_only_p.
	(mark_needed): Likewise.
	(min_vis_expr_r): Handle reflections.
	(prune_vars_needing_no_initialization): Skip consteval_only_p.
	(no_linkage_error): Return early for metafunctions.
	(c_parse_final_cleanups): Don't write out consteval_only_p vars.  Avoid
	complaining about metafunctions.
	* error.cc (dump_type): New cases for CONST_DECL, META_TYPE, and
	SPLICE_SCOPE.
	(dump_type_prefix): New cases for META_TYPE and SPLICE_SCOPE.
	(dump_type_suffix): Likewise.
	(dump_decl): Dump SPLICE_EXPR.
	(dump_expr): Dump REFLECT_EXPR and SPLICE_EXPR.
	* init.cc (build_zero_init_1): Build a null reflection value.
	(perform_member_init): Call check_out_of_consteval_use.
	* lex.cc (DEF_OPERATOR, OPERATOR_TRANSITION): Update defines.
	* mangle.cc (write_type): Mangle META_TYPE.
	(write_expression): Handle REFLECT_EXPR.
	(write_reflection): New.
	(write_template_arg_literal): New REFLECT_EXPR case.
	(write_template_arg): Handle REFLECT_EXPR.
	* method.cc (build_stub_type): No longer static.
	* module.cc (trees_out::type_node): Handle META_TYPE.
	(trees_in::tree_node): Likewise.
	* name-lookup.cc (name_lookup::adl_type): std::meta is an associated
	namespace of std::meta::info.
	(strip_using_decl): Don't strip when cp_preserve_using_decl.
	(handle_namespace_attrs): Handle annotations.
	(do_namespace_alias): Handle SPLICE_EXPR.
	(lookup_qualified_name): When cp_preserve_using_decl, don't do
	OVL_FUNCTION.
	(finish_using_directive): Detect annotations on using directive.
	* operators.def: Update for META_NAME.
	* parser.cc: New cp_preserve_using_decl global.
	(enum required_token): Add RT_CLOSE_SPLICE.
	(get_required_cpp_ttype): Return CPP_CLOSE_SPLICE for RT_CLOSE_SPLICE.
	(cp_parser_next_tokens_start_splice_type_spec_p): New.
	(cp_parser_next_tokens_can_start_splice_scope_spec_p): New.
	(cp_parser_splice_specifier): New.
	(cp_parser_splice_type_specifier): New.
	(cp_parser_splice_expression): New.
	(cp_parser_splice_scope_specifier): New.
	(cp_parser_splice_spec_is_nns_p): New.
	(cp_parser_nth_token_starts_splice_without_nns_p): New.
	(cp_parser_primary_expression): Handle CPP_OPEN_SPLICE.  Give an
	error for ^^ outside reflection.
	(cp_parser_unqualified_id): Allow r.~typename [:R:].
	(cp_parser_nested_name_specifier_opt): Cope with splice-scope-specifier.
	(cp_parser_qualifying_entity): Parse splice-scope-specifier.
	(cp_parser_postfix_expression): Deal with [: :] after a typename.
	(cp_parser_postfix_dot_deref_expression): Parse & handle splices
	in a class member access.  Pass splice_p to
	finish_class_member_access_expr.
	(cp_parser_reflection_name): New.
	(cp_parser_reflect_expression): New.
	(cp_parser_unary_expression): Parse reflect-expression.
	(cp_parser_declaration): Parse splice-scope-specifier.
	(cp_parser_decomposition_declaration): Detect annotations on structured
	bindings.
	(cp_parser_decltype_expr): Parse splice-expression.
	(cp_parser_template_id): New parsed_templ argument.  If it's nonnull,
	don't parse the template name.  Turn an assert into a condition.
	(cp_parser_type_specifier): Handle typename [: :].
	(cp_parser_simple_type_specifier): Parse splice-type-specifier.
	(cp_parser_enum_specifier): Set ENUM_BEING_DEFINED_P.
	(cp_parser_namespace_alias_definition): Parse splice-specifier.
	(cp_parser_using_directive): Likewise.
	(cp_parser_type_id_1): New bool * parameter to distinguish between
	types and type aliases.  Set it.
	(cp_parser_type_id): Adjust the call to cp_parser_type_id_1.
	(cp_parser_template_type_arg): Likewise.
	(cp_parser_trailing_type_id): Likewise.
	(cp_parser_base_specifier): Handle annotations.  Maybe give an error
	for splice-scope-specifier.  Parse splice-type-specifier.  Pass
	annotations to finish_base_specifier.
	(cp_parser_annotation): New.
	(cp_parser_std_attribute_list): Detect mixing annotations and attributes
	in the same list.
	(cp_parser_annotation_list): New.
	(cp_parser_std_attribute_spec): Parse annotations.
	(cp_parser_skip_balanced_tokens): Also handle CPP_OPEN_SPLICE
	and CPP_CLOSE_SPLICE.
	(cp_parser_type_requirement): Parse splice-type-specifier.
	(cp_parser_lookup_name): Also consider dependent namespaces.  Don't
	call check_accessibility_of_qualified_id for USING_DECLs.
	(cp_parser_required_error): Handle RT_CLOSE_SPLICE.
	* pt.cc (current_function_decl_without_access_scope): New.
	(verify_unstripped_args_1): REFLECT_EXPR_P is OK.
	(iterative_hash_template_arg): Handle REFLECT_EXPR.
	(convert_nontype_argument): Maybe give an error for REFLECTION_TYPE_P.
	(for_each_template_parm_r): Handle SPLICE_SCOPE.
	(instantiate_class_template): Handle annotations.
	(tsubst_pack_index): Make static.
	(tsubst_decl): Handle NAMESPACE_DECL.
	(tsubst_splice_scope): New.
	(tsubst_splice_expr): New.
	(tsubst): Don't return early for NAMESPACE_DECL.   New META_TYPE case.
	Handle a splice-specifier that expanded into a NAMESPACE_DECL.  Handle
	SPLICE_SCOPE, SPLICE_EXPR, and TEMPLATE_ID_EXPR.
	(tsubst_scope): Also accept NAMESPACE_DECL.
	(tsubst_qualified_id): Check dependent_namespace_p.
	(tsubst_lambda_expr): Set LAMBDA_EXPR_CONSTEVAL_BLOCK_P.
	(tsubst_expr): Allow dependent_splice_p in an assert.  Check
	COMPONENT_REF_SPLICE_P and pass it to finish_class_member_access_expr.
	<case NAMESPACE_DECL>: Remove.
	New REFLECT_EXPR and SPLICE_EXPR cases.
	(unify): Handle META_TYPE.
	(instantiate_body): Call check_consteval_only_fn.
	(tsubst_enum): Set ENUM_BEING_DEFINED_P.
	(dependent_type_p_r): A splice-scope-specifier is dependent.
	(dependent_namespace_p): New.
	(value_dependent_expression_p): Handle REFLECT_EXPR.  Also handle
	[meta.reflection.access.context]/8.
	(type_dependent_expression_p): REFLECT_EXPR_P is not type-dependent.
	(convert_reflect_constant_arg): New.
	* search.cc (check_final_overrider): Adjust for CWG 3117.
	* semantics.cc (finish_base_specifier): Handle annotations.
	(parsing_lambda_declarator): No longer static.
	(finish_id_expression_1): Check dependent_namespace_p.
	(fold_builtin_is_string_literal): New.
	(trait_expr_value): Handle CPTK_IS_CONSTEVAL_ONLY.
	(finish_trait_expr): Likewise.
	* tree.cc (handle_annotation_attribute): New.
	(builtin_valid_in_constant_expr_p): Return true for
	CP_BUILT_IN_IS_STRING_LITERAL.
	(cp_tree_equal): Handle comparing REFLECT_EXPRs.
	(internal_attributes): Add "annotation ".
	(annotation_p): New.
	* typeck.cc (finish_class_member_access_expr): New splice_p argument.
	Handle dependent splices.  Implement splicing a base class subobject.
	Handle class member access using a splice-expression.
	(cp_build_binary_op): Handle comparing std::meta::infos.
	(check_return_expr): Call check_out_of_consteval_use.
	* metafns.gperf: New file.
	* metafns.h: New file.
	* reflect.cc: New file.

2026-01-14  David Malcolm  <dmalcolm@redhat.com>

	* call.cc (get_fndecl_argument_location): Use DECL_SOURCE_LOCATION
	for "this".
	* cp-tree.h (class candidate_context): New.
	(print_candidates): Add optional candidate_context param.
	* decl2.cc: Include "gcc-rich-location.h" and
	"tree-pretty-print-markup.h".
	(struct fndecl_signature): New.
	(class parm_rich_location): New.
	(class fndecl_comparison): New.
	(class decl_mismatch_context): New.
	(check_classfn): For the "no declaration matches" case, pass an
	instance of a custom candidate_context subclass to
	print_candidates, using fndecl_comparison to report on close
	matches.
	* pt.cc (print_candidates): Add optional candidate_context param.
	Use it if provided to potentially emit per-candidate notes.

2026-01-14  David Malcolm  <dmalcolm@redhat.com>

	* call.cc (print_z_candidates): Move inform_n call into a new
	inform_num_candidates function.
	* class.cc (check_methods): Pass location to call to
	print_candidates.
	(resolve_address_of_overloaded_function): Likewise.
	* cp-tree.h (print_candidates): Add location_t param.
	(inform_num_candidates): New decl.
	* decl.cc (make_typename_type): Pass location to call to
	print_candidates.
	(reshape_init_class): Likewise.
	(lookup_and_check_tag): Likewise.
	* decl2.cc (check_classfn): Likewise.
	* error.cc (qualified_name_lookup_error): Likewise.
	* init.cc (build_new_1): Likewise.
	* name-lookup.cc (lookup_using_decl): Likewise.
	(set_decl_namespace): Likewise.
	(push_namespace): Likewise.
	* parser.cc (cp_parser_nested_name_specifier_opt): Likewise.
	(cp_parser_lookup_name): Likewise.
	* pt.cc  (print_candidates_1): Drop, converting the looping part
	into...
	(flatten_candidates): ...this new function.
	(inform_num_candidates): New function.
	(print_candidates): Use flatten_candidates to build an auto_vec
	of candidates, and use this to print them here, rather than in
	print_candidates_1.  Eliminate the dynamic allocation of spaces
	for a prefix in favor of printing "candidate %i" when there is
	more than one candidate.  Add "error_loc" param and pass it to
	inform_num_candidates to show a heading, and add nesting levels
	for it and for the candidate notes.
	(determine_specialization): Pass location to calls to
	print_candidates.
	* search.cc (lookup_member): Likewise.
	* semantics.cc (finish_id_expression_1): Likewise.

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

	PR c++/123551
	* constexpr.cc (potential_constant_expression_1) <case GOTO_EXPR>:
	Only test DECL_ARTIFICIAL on LABEL_DECLs.

2026-01-13  Nathaniel Shead  <nathanieloshead@gmail.com>

	* coroutines.cc (create_coroutine_info_table): New function.
	(get_or_insert_coroutine_info): Mark static.
	(ensure_coro_initialized): Likewise; use
	create_coroutine_info_table.
	(coro_promise_type_found_p): Set DECL_CONTEXT for proxies.
	(coro_set_ramp_function): New function.
	(coro_set_transform_functions): New function.
	(coro_build_actor_or_destroy_function): Use
	coro_set_ramp_function, mark as DECL_COROUTINE_P.
	* cp-tree.h (coro_set_transform_functions): Declare.
	(coro_set_ramp_function): Declare.
	* module.cc (struct merge_key): New field coro_disc.
	(dumper::impl::nested_name): Distinguish coroutine transform
	functions.
	(get_coroutine_discriminator): New function.
	(trees_out::key_mergeable): Stream coroutine discriminator.
	(check_mergeable_decl): Adjust comment, check for matching
	coroutine discriminator.
	(trees_in::key_mergeable): Read coroutine discriminator.
	(has_definition): Override for coroutine transform functions.
	(trees_out::write_function_def): Stream linked ramp, actor, and
	destroy functions for coroutines.
	(trees_in::read_function_def): Read them.
	(module_state::read_cluster): Set cfun->coroutine_component.

2026-01-13  Nathaniel Shead  <nathanieloshead@gmail.com>

	* module.cc (trees_out::lang_decl_bools): Update list of flags.
	(trees_in::lang_decl_bools): Likewise.

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

	PR c++/123189
	* name-lookup.cc (binding_to_template_parms_of_scope_p):
	Gracefully handle TEMPLATE_INFO whose TI_TEMPLATE is a TREE_LIST.
	* pt.cc (maybe_begin_member_template_processing): For a friend
	template specialization consider its class context instead.

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

	PR libstdc++/123326
	* cp-tree.h (DECL_NONGNU_INLINE_P): New.
	* decl.cc (duplicate_decls, start_decl): Check it.
	* decl2.cc (vague_linkage_p, import_export_class): Likewise.
	(vtables_uniquely_emitted, import_export_decl): Likewise.
	* class.cc (determine_key_method): Check it instead of
	lookup_attribute.

2026-01-12  Nathaniel Shead  <nathanieloshead@gmail.com>

	PR c++/115163
	* call.cc (implicit_conversion_error): Add flags argument, call
	maybe_show_nonconverting_candidate.
	(build_converted_constant_expr_internal): Pass flags to
	implicit_conversion_error.
	(perform_implicit_conversion_flags): Likewise.
	* cvt.cc (ocp_convert): Call maybe_show_nonconverting_candidate
	on conversion error.

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

	PR c++/123526
	* method.cc: Include attribs.h.
	(implicitly_declare_fn): Remove gnu::gnu_inline attribute.

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

	* gen-cxxapi-file.py: Update copyright year.  Separate
	parts of Copyright word with {:s} so that it doesn't get matched
	by update-copyright.py.

2026-01-09  Nathaniel Shead  <nathanieloshead@gmail.com>

	PR c++/123393
	* name-lookup.cc (make_namespace_finish): Pass from_import to
	add_using_namespace.

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

	* parser.cc (OMP_GROUPPRIVATE_CLAUSE_MASK,
	cp_parser_omp_groupprivate): New.
	(cp_parser_pragma): Call it.
	(cp_maybe_parse_omp_decl): Uncomment PRAGMA_OMP_GROUPPRIVATE
	check.

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

	PR libstdc++/123326
	* class.cc (determine_key_method): Allow virtual inline/constexpr
	non-pure virtual methods with gnu::gnu_inline attribute to be key
	methods.

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

	PR c++/123347
	* constexpr.cc (potential_constant_expression_1): Check for
	CLASS_TYPE_P before using TYPE_POLYMORPHIC_P on TREE_TYPE (e).

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

	PR c++/123331
	* constexpr.cc (cxx_eval_vec_init_1): Don't build INIT_EXPR if
	eltinit is erroneous.

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

	PR c++/123277
	* decl2.cc (is_late_template_attribute): Return false also for
	[[maybe_unused]] attribute on TYPE_DECLs to dependent types.

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