+2022-09-27 Jakub Jelinek <jakub@redhat.com>
+
+ * inclhack.def (glibc_cxx_floatn_1, glibc_cxx_floatn_2,
+ glibc_cxx_floatn_3): Add to files also "*/bits/floatn.h"
+ and "*/bits/floatn-common.h".
+ * fixincl.x: Regenerated.
+
+2022-09-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/106652
+ PR c++/85518
+ * inclhack.def (glibc_cxx_floatn_1, glibc_cxx_floatn_2,
+ glibc_cxx_floatn_3): New fixes.
+ * tests/base/bits/floatn.h: New file.
+ * fixincl.x: Regenerated.
+
2022-08-31 Martin Liska <mliska@suse.cz>
* configure: Regenerate.
+2022-09-27 Eugene Rozenfeld <erozen@microsoft.com>
+
+ * ipa-cp.cc (good_cloning_opportunity_p): Fix profile count comparison.
+
+2022-09-27 Kim Kuparinen <kim.kuparinen@rightware.com>
+
+ * doc/invoke.texi: Update ABI version info.
+
+2022-09-27 Aldy Hernandez <aldyh@redhat.com>
+
+ * gimple-range-op.cc (cfn_popcount): Calculate the popcount of a
+ singleton.
+
+2022-09-27 Aldy Hernandez <aldyh@redhat.com>
+
+ * value-range.cc (irange::set_nonzero_bits): Set range when known.
+
+2022-09-27 Aldy Hernandez <aldyh@redhat.com>
+
+ * value-range.h (irange::set): New version taking wide_int_ref.
+
+2022-09-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/107029
+ * tree-ssa-reassoc.cc (optimize_range_tests_cmp_bitwise): Treat
+ OFFSET_TYPE like POINTER_TYPE, except that OFFSET_TYPE may be
+ signed and so can trigger even the (b % 4) == 3 case.
+
+2022-09-27 Jeff Law <jeffreyalaw@gmail.com>
+
+ * cfgrtl.cc (fixup_reorder_chain): Verify that simple_return
+ and return are available before trying to use them.
+
+2022-09-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/106652
+ PR c++/85518
+ * tree-core.h (enum tree_index): Add TI_FLOAT128T_TYPE
+ enumerator.
+ * tree.h (float128t_type_node): Define.
+ * tree.cc (build_common_tree_nodes): Initialize float128t_type_node.
+ * builtins.def (DEF_FLOATN_BUILTIN): Adjust comment now that
+ _Float<N> is supported in C++ too.
+ * config/i386/i386.cc (ix86_mangle_type): Only mangle as "g"
+ float128t_type_node.
+ * config/i386/i386-builtins.cc (ix86_init_builtin_types): Use
+ float128t_type_node for __float128 instead of float128_type_node
+ and create it if NULL.
+ * config/i386/avx512fp16intrin.h (_mm_setzero_ph, _mm256_setzero_ph,
+ _mm512_setzero_ph, _mm_set_sh, _mm_load_sh): Use 0.0f16 instead of
+ 0.0f.
+ * config/ia64/ia64.cc (ia64_init_builtins): Use
+ float128t_type_node for __float128 instead of float128_type_node
+ and create it if NULL.
+ * config/rs6000/rs6000-c.cc (is_float128_p): Also return true
+ for float128t_type_node if non-NULL.
+ * config/rs6000/rs6000.cc (rs6000_mangle_type): Don't mangle
+ float128_type_node as "u9__ieee128".
+ * config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Use
+ float128t_type_node for __float128 instead of float128_type_node
+ and create it if NULL.
+
2022-09-26 Martin Liska <mliska@suse.cz>
* doc/invoke.texi: Add missing dash for
+2022-09-27 Marek Polacek <polacek@redhat.com>
+
+ PR c++/101165
+ PR c++/106882
+ * c-cppbuiltin.cc (c_cpp_builtins): Define __cpp_implicit_move.
+
+2022-09-27 Marek Polacek <polacek@redhat.com>
+
+ * c-format.cc (c_keywords): Drop nothrow.
+
+2022-09-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/106651
+ * c-cppbuiltin.cc (c_cpp_builtins): Predefine
+ __cpp_static_call_operator=202207L for C++23.
+
+2022-09-27 Jakub Jelinek <jakub@redhat.com>
+
+ * c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_ASSUME,
+ PRAGMA_OMP_ASSUMES and PRAGMA_OMP_BEGIN. Rename
+ PRAGMA_OMP_END_DECLARE_TARGET to PRAGMA_OMP_END.
+ * c-pragma.cc (omp_pragmas): Add assumes and begin.
+ For end rename PRAGMA_OMP_END_DECLARE_TARGET to PRAGMA_OMP_END.
+ (omp_pragmas_simd): Add assume.
+ * c-common.h (c_omp_directives): Declare.
+ * c-omp.cc (omp_directives): Rename to ...
+ (c_omp_directives): ... this. No longer static. Uncomment
+ assume, assumes, begin assumes and end assumes entries.
+ In end declare target entry rename PRAGMA_OMP_END_DECLARE_TARGET
+ to PRAGMA_OMP_END.
+ (c_omp_categorize_directive): Adjust for omp_directives to
+ c_omp_directives renaming.
+
+2022-09-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/106652
+ PR c++/85518
+ * c-common.cc (c_common_reswords): Change _Float{16,32,64,128} and
+ _Float{32,64,128}x flags from D_CONLY to 0.
+ (shorten_binary_op): Punt if common_type returns error_mark_node.
+ (shorten_compare): Likewise.
+ (c_common_nodes_and_builtins): For C++ record _Float{16,32,64,128}
+ and _Float{32,64,128}x builtin types if available. For C++
+ clear float128t_type_node.
+ * c-cppbuiltin.cc (c_cpp_builtins): Predefine
+ __STDCPP_FLOAT{16,32,64,128}_T__ for C++23 if supported.
+ * c-lex.cc (interpret_float): For q/Q suffixes prefer
+ float128t_type_node over float128_type_node. Allow
+ {f,F}{16,32,64,128} suffixes for C++ if supported with pedwarn
+ for C++20 and older. Allow {f,F}{32,64,128}x suffixes for C++
+ with pedwarn. Don't call excess_precision_type for C++.
+
2022-09-26 Marek Polacek <polacek@redhat.com>
PR c++/106656
+2022-09-27 Jakub Jelinek <jakub@redhat.com>
+
+ * c-lang.h (current_omp_begin_assumes): Declare.
+ * c-parser.cc: Include bitmap.h.
+ (c_parser_omp_end_declare_target): Rename to ...
+ (c_parser_omp_end): ... this. Handle also end assumes.
+ (c_parser_omp_begin, c_parser_omp_assumption_clauses,
+ c_parser_omp_assumes, c_parser_omp_assume): New functions.
+ (c_parser_translation_unit): Also diagnose #pragma omp begin assumes
+ without corresponding #pragma omp end assumes.
+ (c_parser_pragma): Use %s in may only be used at file scope
+ diagnostics to decrease number of translatable messages. Handle
+ PRAGMA_OMP_BEGIN and PRAGMA_OMP_ASSUMES. Handle PRAGMA_OMP_END
+ rather than PRAGMA_OMP_END_DECLARE_TARGET and call c_parser_omp_end
+ for it rather than c_parser_omp_end_declare_target.
+ (c_parser_omp_construct): Handle PRAGMA_OMP_ASSUME.
+ * c-decl.cc (current_omp_begin_assumes): Define.
+
2022-09-24 Jakub Jelinek <jakub@redhat.com>
PR c/106981
+2022-09-27 Marek Polacek <polacek@redhat.com>
+
+ PR c++/101165
+ PR c++/106882
+ * call.cc (reference_binding): Check clk_implicit_rval in C++20 only.
+ * cp-tree.h (unparenthesized_id_or_class_member_access_p): Declare.
+ * pt.cc (unparenthesized_id_or_class_member_access_p): New function,
+ broken out of...
+ (do_auto_deduction): ...here. Use it. In C++23, maybe call
+ treat_lvalue_as_rvalue_p.
+ * tree.cc (xvalue_p): Check & clk_rvalueref, not == clk_rvalueref.
+ * typeck.cc (check_return_expr): Allow implicit move for functions
+ returning a reference as well, or when the return value type is not
+ a scalar type.
+
+2022-09-27 Marek Polacek <polacek@redhat.com>
+
+ * constraint.cc (diagnose_trait_expr): Say "nothrow" without quotes
+ rather than in quotes.
+
+2022-09-27 Jonathan Wakely <jwakely@redhat.com>
+
+ PR c++/107049
+ * method.cc (is_convertible_helper): Use access check sentinel.
+
+2022-09-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/106651
+ * cp-tree.h (LAMBDA_EXPR_STATIC_P): Implement C++23
+ P1169R4 - static operator(). Define.
+ * parser.cc (CP_PARSER_FLAGS_ONLY_MUTABLE_OR_CONSTEXPR): Document
+ that it also allows static.
+ (cp_parser_lambda_declarator_opt): Handle static lambda specifier.
+ (cp_parser_decl_specifier_seq): Allow RID_STATIC for
+ CP_PARSER_FLAGS_ONLY_MUTABLE_OR_CONSTEXPR.
+ * decl.cc (grok_op_properties): If operator() isn't a method,
+ use a different error wording, if it is static member function,
+ allow it (for C++20 and older with a pedwarn unless it is
+ a lambda function or template instantiation).
+ * call.cc (joust): Don't ICE if one candidate is static member
+ function and the other is an indirect call. If the parameter
+ conversion on the other candidate is user defined conversion,
+ ellipsis or bad conversion, make static member function candidate
+ a winner for that parameter.
+ * lambda.cc (maybe_add_lambda_conv_op): Handle static lambdas.
+ * error.cc (dump_lambda_function): Print static for static lambdas.
+
+2022-09-27 Jakub Jelinek <jakub@redhat.com>
+
+ * cp-tree.h (struct omp_begin_assumes_data): New type.
+ (struct saved_scope): Add omp_begin_assumes member.
+ * parser.cc: Include bitmap.h.
+ (cp_parser_omp_assumption_clauses, cp_parser_omp_assume,
+ cp_parser_omp_assumes, cp_parser_omp_begin): New functions.
+ (cp_parser_omp_end_declare_target): Rename to ...
+ (cp_parser_omp_end): ... this. Handle also end assumes.
+ (cp_parser_omp_construct): Handle PRAGMA_OMP_ASSUME.
+ (cp_parser_pragma): Handle PRAGMA_OMP_ASSUME, PRAGMA_OMP_ASSUMES
+ and PRAGMA_OMP_BEGIN. Handle PRAGMA_OMP_END rather than
+ PRAGMA_OMP_END_DECLARE_TARGET and call cp_parser_omp_end
+ for it rather than cp_parser_omp_end_declare_target.
+ * pt.cc (apply_late_template_attributes): Also temporarily clear
+ omp_begin_assumes.
+ * semantics.cc (finish_translation_unit): Also diagnose
+ #pragma omp begin assumes without corresponding
+ #pragma omp end assumes.
+
+2022-09-27 Jakub Jelinek <jakub@redhat.com>
+
+ * parser.cc (cp_parser_lambda_declarator_opt): Don't diagnose
+ conflicting specifiers here.
+ (cp_storage_class_name): New variable.
+ (cp_parser_decl_specifier_seq): When setting conflicting_specifiers_p
+ for the first time, diagnose which exact specifiers conflict.
+ (cp_parser_set_storage_class): Likewise. Move storage_class
+ computation earlier.
+ * decl.cc (grokdeclarator): Don't diagnose conflicting specifiers
+ here, just return error_mark_node.
+
+2022-09-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/106652
+ PR c++/85518
+ * cp-tree.h (cp_compare_floating_point_conversion_ranks): Implement
+ P1467R9 - Extended floating-point types and standard names except
+ for std::bfloat16_t for now. Declare.
+ (extended_float_type_p): New inline function.
+ * mangle.cc (write_builtin_type): Mangle float{16,32,64,128}_type_node
+ as DF{16,32,64,128}_. Mangle float{32,64,128}x_type_node as
+ DF{32,64,128}x. Remove FIXED_POINT_TYPE mangling that conflicts
+ with that.
+ * typeck2.cc (check_narrowing): If one of ftype or type is extended
+ floating-point type, compare floating-point conversion ranks.
+ * parser.cc (cp_keyword_starts_decl_specifier_p): Handle
+ CASE_RID_FLOATN_NX.
+ (cp_parser_simple_type_specifier): Likewise and diagnose missing
+ _Float<N> or _Float<N>x support if not supported by target.
+ * typeck.cc (cp_compare_floating_point_conversion_ranks): New function.
+ (cp_common_type): If both types are REAL_TYPE and one or both are
+ extended floating-point types, select common type based on comparison
+ of floating-point conversion ranks and subranks.
+ (cp_build_binary_op): Diagnose operation with floating point arguments
+ with unordered conversion ranks.
+ * call.cc (standard_conversion): For floating-point conversion, if
+ either from or to are extended floating-point types, set conv->bad_p
+ for implicit conversion from larger to smaller conversion rank or
+ with unordered conversion ranks.
+ (convert_like_internal): Emit a pedwarn on such conversions.
+ (build_conditional_expr): Diagnose operation with floating point
+ arguments with unordered conversion ranks.
+ (convert_arg_to_ellipsis): Don't promote extended floating-point types
+ narrower than double to double.
+ (compare_ics): Implement P1467R9 [over.ics.rank]/4 changes.
+
2022-09-26 Marek Polacek <polacek@redhat.com>
PR c++/106656
+2022-09-27 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * dmd/MERGE: Merge upstream dmd d579c467c1.
+ * decl.cc (layout_struct_initializer): Update for new front-end
+ interface.
+ * expr.cc (ExprVisitor::visit (AssignExp *)): Remove lowering of array
+ assignments.
+ (ExprVisitor::visit (NewExp *)): Add new lowering of new'ing
+ associative arrays to an _aaNew() library call.
+ * runtime.def (ARRAYSETASSIGN): Remove.
+ (AANEW): Define.
+
2022-09-15 Richard Biener <rguenther@suse.de>
* d-builtins.cc (d_build_c_type_nodes): Do not initialize
+2022-09-27 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/107054
+ * simplify.cc (gfc_simplify_unpack): Replace assert by condition
+ that terminates simplification when there are not enough elements
+ in the constructor of argument VECTOR.
+
2022-09-25 Mikael Morin <mikael@gcc.gnu.org>
PR fortran/41453
+2022-09-27 Marek Polacek <polacek@redhat.com>
+
+ PR c++/101165
+ PR c++/106882
+ * g++.dg/conversion/pr41426.C: Add dg-error for C++23.
+ * g++.dg/cpp0x/elision_weak.C: Likewise.
+ * g++.dg/cpp0x/move-return3.C: Only link in c++20_down.
+ * g++.dg/cpp1y/decltype-auto2.C: Add dg-error for C++23.
+ * g++.dg/cpp1y/lambda-generic-89419.C: Likewise.
+ * g++.dg/cpp23/feat-cxx2b.C: Test __cpp_implicit_move.
+ * g++.dg/gomp/pr56217.C: Only compile in c++20_down.
+ * g++.dg/warn/Wno-return-local-addr.C: Add dg-error for C++23.
+ * g++.dg/warn/Wreturn-local-addr.C: Adjust dg-error.
+ * g++.old-deja/g++.brendan/crash55.C: Add dg-error for C++23.
+ * g++.old-deja/g++.jason/temporary2.C: Likewise.
+ * g++.old-deja/g++.mike/p2846b.C: Adjust.
+ * g++.dg/cpp1y/decltype-auto6.C: New test.
+ * g++.dg/cpp23/decltype1.C: New test.
+ * g++.dg/cpp23/decltype2.C: New test.
+ * g++.dg/cpp23/elision1.C: New test.
+ * g++.dg/cpp23/elision2.C: New test.
+ * g++.dg/cpp23/elision3.C: New test.
+ * g++.dg/cpp23/elision4.C: New test.
+ * g++.dg/cpp23/elision5.C: New test.
+ * g++.dg/cpp23/elision6.C: New test.
+ * g++.dg/cpp23/elision7.C: New test.
+
+2022-09-27 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/107054
+ * gfortran.dg/pr107054.f90: New test.
+
+2022-09-27 Aldy Hernandez <aldyh@redhat.com>
+
+ * gcc.dg/tree-ssa/popcount6b.c: New test.
+
+2022-09-27 Marek Polacek <polacek@redhat.com>
+
+ * g++.dg/cpp2a/concepts-traits3.C: Adjust expected diagnostics.
+
+2022-09-27 Jonathan Wakely <jwakely@redhat.com>
+
+ PR c++/107049
+ * g++.dg/ext/is_convertible4.C: New test.
+ * g++.dg/ext/is_nothrow_convertible4.C: New test.
+
+2022-09-27 Aldy Hernandez <aldyh@redhat.com>
+
+ * gcc.dg/tree-ssa/popcount6.c: New test.
+
+2022-09-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/106651
+ * g++.dg/template/error30.C: Adjust expected diagnostics.
+ * g++.dg/cpp1z/constexpr-lambda13.C: Likewise.
+ * g++.dg/cpp23/feat-cxx2b.C: Test __cpp_static_call_operator.
+ * g++.dg/cpp23/static-operator-call1.C: New test.
+ * g++.dg/cpp23/static-operator-call2.C: New test.
+ * g++.old-deja/g++.jason/operator.C: Adjust expected diagnostics.
+ * g++.dg/cpp23/static-operator-call3.C: New file.
+
+2022-09-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/107029
+ * g++.dg/torture/pr107029.C: New test.
+
+2022-09-27 Jakub Jelinek <jakub@redhat.com>
+
+ * c-c++-common/gomp/assume-1.c: New test.
+ * c-c++-common/gomp/assume-2.c: New test.
+ * c-c++-common/gomp/assume-3.c: New test.
+ * c-c++-common/gomp/assumes-1.c: New test.
+ * c-c++-common/gomp/assumes-2.c: New test.
+ * c-c++-common/gomp/assumes-3.c: New test.
+ * c-c++-common/gomp/assumes-4.c: New test.
+ * c-c++-common/gomp/begin-assumes-1.c: New test.
+ * c-c++-common/gomp/begin-assumes-2.c: New test.
+ * c-c++-common/gomp/begin-assumes-3.c: New test.
+ * c-c++-common/gomp/begin-assumes-4.c: New test.
+ * c-c++-common/gomp/declare-target-6.c: New test.
+ * g++.dg/gomp/attrs-1.C (bar): Add n1 and n2 arguments, add
+ tests for assume directive.
+ * g++.dg/gomp/attrs-2.C (bar): Likewise.
+ * g++.dg/gomp/attrs-9.C: Add n1 and n2 variables, add tests for
+ begin assumes directive.
+ * g++.dg/gomp/attrs-15.C: New test.
+ * g++.dg/gomp/attrs-16.C: New test.
+ * g++.dg/gomp/attrs-17.C: New test.
+
+2022-09-27 Jakub Jelinek <jakub@redhat.com>
+
+ * g++.dg/diagnostic/conflicting-specifiers-1.C: Adjust expected
+ diagnostics.
+ * g++.dg/parse/typedef8.C: Likewise.
+ * g++.dg/parse/crash39.C: Likewise.
+ * g++.dg/other/mult-stor1.C: Likewise.
+ * g++.dg/cpp2a/constinit3.C: Likewise.
+
+2022-09-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/106652
+ PR c++/85518
+ * g++.dg/cpp23/ext-floating1.C: New test.
+ * g++.dg/cpp23/ext-floating2.C: New test.
+ * g++.dg/cpp23/ext-floating3.C: New test.
+ * g++.dg/cpp23/ext-floating4.C: New test.
+ * g++.dg/cpp23/ext-floating5.C: New test.
+ * g++.dg/cpp23/ext-floating6.C: New test.
+ * g++.dg/cpp23/ext-floating7.C: New test.
+ * g++.dg/cpp23/ext-floating8.C: New test.
+ * g++.dg/cpp23/ext-floating9.C: New test.
+ * g++.dg/cpp23/ext-floating10.C: New test.
+ * g++.dg/cpp23/ext-floating.h: New file.
+ * g++.target/i386/float16-1.C: Adjust expected diagnostics.
+
2022-09-26 Marek Polacek <polacek@redhat.com>
PR c++/106656
+2022-09-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/106652
+ PR c++/85518
+ * demangle.h (enum demangle_component_type): Add
+ DEMANGLE_COMPONENT_EXTENDED_BUILTIN_TYPE.
+ (struct demangle_component): Add u.s_extended_builtin member.
+
+2022-09-27 Meghan Denny <hello@nektro.net>
+
+ * dwarf2.h: Update with additional languages from dwarf
+ standard.
+
2022-07-12 Martin Liska <mliska@suse.cz>
* plugin-api.h (enum linker_api_version): New enum.
+2022-09-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/106652
+ PR c++/85518
+ * expr.cc (interpret_float_suffix): Allow {f,F}{16,32,64,128} and
+ {f,F}{32,64,128}x suffixes for C++.
+
2022-09-08 Lewis Hyatt <lhyatt@gmail.com>
* line-map.cc (location_adhoc_data_update): Remove reliance on
+2022-09-27 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/106652
+ PR c++/85518
+ * cp-demangle.c (d_dump): Handle
+ DEMANGLE_COMPONENT_EXTENDED_BUILTIN_TYPE. Don't handle
+ DEMANGLE_COMPONENT_FIXED_TYPE.
+ (d_make_extended_builtin_type): New function.
+ (cplus_demangle_builtin_types): Add _Float entry.
+ (cplus_demangle_type): For DF demangle it as _Float<N> or
+ _Float<N>x rather than fixed point which conflicts with it.
+ (d_count_templates_scopes): Handle
+ DEMANGLE_COMPONENT_EXTENDED_BUILTIN_TYPE. Just break; for
+ DEMANGLE_COMPONENT_FIXED_TYPE.
+ (d_find_pack): Handle DEMANGLE_COMPONENT_EXTENDED_BUILTIN_TYPE.
+ Don't handle DEMANGLE_COMPONENT_FIXED_TYPE.
+ (d_print_comp_inner): Likewise.
+ * cp-demangle.h (D_BUILTIN_TYPE_COUNT): Bump.
+ * testsuite/demangle-expected: Replace _Z3xxxDFyuVb test
+ with _Z3xxxDF16_DF32_DF64_DF128_CDF16_Vb. Add
+ _Z3xxxDF32xDF64xDF128xCDF32xVb test.
+
2022-09-22 Jonathan Wakely <jwakely@redhat.com>
* README: Replace gcc-bugs email address with Bugzilla URL.
+2022-09-27 Iain Buclaw <ibuclaw@gdcproject.org>
+
+ * libdruntime/MERGE: Merge upstream druntime d579c467c1.
+ * libdruntime/Makefile.am (DRUNTIME_DSOURCES): Remove
+ rt/arrayassign.d.
+ * libdruntime/Makefile.in: Regenerate.
+ * src/MERGE: Merge upstream phobos 88aa69b14.
+ * src/Makefile.am (PHOBOS_DSOURCES): Remove std/digest/digest.d,
+ std/xml.d.
+ * src/Makefile.in: Regenerate.
+
2022-08-27 Iain Buclaw <ibuclaw@gdcproject.org>
* libdruntime/MERGE: Merge upstream druntime 817610b16d.
+2022-09-27 Jonathan Wakely <jwakely@redhat.com>
+
+ PR c++/107049
+ * testsuite/20_util/is_convertible/requirements/access.cc: New
+ test.
+
+2022-09-27 Jonathan Wakely <jwakely@redhat.com>
+
+ PR c++/106651
+ * include/bits/std_function.h (__function_guide_t): New alias
+ template.
+ [__cpp_static_call_operator] (__function_guide_static_helper):
+ New class template.
+ (function): Use __function_guide_t in deduction guide.
+ * include/std/future (packaged_task): Use __function_guide_t in
+ deduction guide.
+ * testsuite/20_util/function/cons/deduction_c++23.cc: New test.
+ * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
+ New test.
+
2022-09-26 Jonathan Wakely <jwakely@redhat.com>
* include/bits/ptr_traits.h (__ptr_traits_elem) [__cpp_concepts]: