From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2168) id 0A1763858D32; Wed, 19 Oct 2022 00:20:09 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0A1763858D32 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1666138809; bh=W4tUrRvRFIn5Xr7xZPdL/VUBvZF+doogUHJCJYoVVLc=; h=From:To:Subject:Date:From; b=jlsErr82aD7roEN3VHq1/XxjUhxhAYIKAEmdUkDlusqXRDXlW2vRBs+lO6XcNwo2Q L/Hp/uGdqK+B6gVvNI7EHeGcykDWacfUwfDgSVmD1PB9TXOE6IqLZYi8DebtafAxVa LkDdNkE2CG8QrIl4FqYs4T5WQikEY6+joILE1z5k= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: GCC Administrator To: gcc-cvs@gcc.gnu.org, libstdc++-cvs@gcc.gnu.org Subject: [gcc r13-3367] Daily bump. X-Act-Checkin: gcc X-Git-Author: GCC Administrator X-Git-Refname: refs/heads/master X-Git-Oldrev: f5f1d92fe2e1d75c3fae34497929a1965af704ae X-Git-Newrev: 21de009f741923bc2dcfaa80877b3725e90ab96c Message-Id: <20221019002009.0A1763858D32@sourceware.org> Date: Wed, 19 Oct 2022 00:20:09 +0000 (GMT) List-Id: https://gcc.gnu.org/g:21de009f741923bc2dcfaa80877b3725e90ab96c commit r13-3367-g21de009f741923bc2dcfaa80877b3725e90ab96c Author: GCC Administrator Date: Wed Oct 19 00:19:08 2022 +0000 Daily bump. Diff: --- gcc/ChangeLog | 221 ++++++++++++++++++++++++++++++++++++++++++++++++ gcc/DATESTAMP | 2 +- gcc/c-family/ChangeLog | 8 ++ gcc/c/ChangeLog | 21 +++++ gcc/cp/ChangeLog | 16 ++++ gcc/testsuite/ChangeLog | 65 ++++++++++++++ libgcc/ChangeLog | 4 + libiberty/ChangeLog | 11 +++ libsanitizer/ChangeLog | 6 ++ libstdc++-v3/ChangeLog | 60 +++++++++++++ 10 files changed, 413 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8c0ce0aa2cf..04c9deca525 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,224 @@ +2022-10-18 Martin Jambor + + * ipa-prop.h (ipa_agg_value): Remove type. + (ipa_agg_value_set): Likewise. + (ipa_copy_agg_values): Remove function. + (ipa_release_agg_values): Likewise. + (ipa_auto_call_arg_values) Add a forward declaration. + (ipa_call_arg_values): Likewise. + (class ipa_argagg_value_list): New constructors, added member function + value_for_index_p. + (class ipa_auto_call_arg_values): Removed the destructor and member + function safe_aggval_at. Use ipa_argagg_values for m_known_aggs. + (class ipa_call_arg_values): Removed member function safe_aggval_at. + Use ipa_argagg_values for m_known_aggs. + (ipa_get_indirect_edge_target): Removed declaration. + (ipa_find_agg_cst_for_param): Likewise. + (ipa_find_agg_cst_from_init): New declaration. + (ipa_agg_value_from_jfunc): Likewise. + (ipa_agg_value_set_from_jfunc): Removed declaration. + (ipa_push_agg_values_from_jfunc): New declaration. + * ipa-cp.cc (ipa_agg_value_from_node): Renamed to + ipa_agg_value_from_jfunc, made public. + (ipa_agg_value_set_from_jfunc): Removed. + (ipa_push_agg_values_from_jfunc): New function. + (ipa_get_indirect_edge_target_1): Removed known_aggs parameter, use + avs for this purpose too. + (ipa_get_indirect_edge_target): Removed the overload working on + ipa_auto_call_arg_values, use ipa_argagg_value_list in the remaining + one. + (devirtualization_time_bonus): Use ipa_argagg_value_list and + ipa_get_indirect_edge_target_1 instead of + ipa_get_indirect_edge_target. + (context_independent_aggregate_values): Removed function. + (gather_context_independent_values): Work on ipa_argagg_value_list. + (estimate_local_effects): Likewise, define some iterator variables + only in the construct where necessary. + (ipcp_discover_new_direct_edges): Adjust the call to + ipa_get_indirect_edge_target_1. + (push_agg_values_for_index_from_edge): Adjust the call + ipa_agg_value_from_node which has been renamed to + ipa_agg_value_from_jfunc. + * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Work on + ipa_argagg_value_list. + (evaluate_properties_for_edge): Replace manual filling in aggregate + values with call to ipa_push_agg_values_from_jfunc. + (estimate_calls_size_and_time): Work on ipa_argagg_value_list. + (ipa_cached_call_context::duplicate_from): Likewise. + (ipa_cached_call_context::release): Likewise. + (ipa_call_context::equal_to): Likewise. + * ipa-prop.cc (ipa_find_agg_cst_from_init): Make public. + (ipa_find_agg_cst_for_param): Removed function. + (ipa_find_agg_cst_from_jfunc_items): New function. + (try_make_edge_direct_simple_call): Replace calls to + ipa_agg_value_set_from_jfunc and ipa_find_agg_cst_for_param with + ipa_find_agg_cst_from_init and ipa_find_agg_cst_from_jfunc_items. + (try_make_edge_direct_virtual_call): Replace calls to + ipa_agg_value_set_from_jfunc and ipa_find_agg_cst_for_param with + simple query of constant jump function and a call to + ipa_find_agg_cst_from_jfunc_items. + (ipa_auto_call_arg_values::~ipa_auto_call_arg_values): Removed. + +2022-10-18 Martin Jambor + + * ipa-prop.h (IPA_PROP_ARG_INDEX_LIMIT_BITS): New. + (ipcp_transformation): Added forward declaration. + (ipa_argagg_value): New type. + (ipa_argagg_value_list): New type. + (ipa_agg_replacement_value): Removed type. + (ipcp_transformation): Switch from using ipa_agg_replacement_value + to ipa_argagg_value_list. + (ipa_get_agg_replacements_for_node): Removed. + (ipa_dump_agg_replacement_values): Removed declaration. + * ipa-cp.cc: Define INCLUDE_ALGORITHM. + (values_equal_for_ipcp_p): Moved up in the file. + (ipa_argagg_value_list::dump): New function. + (ipa_argagg_value_list::debug): Likewise. + (ipa_argagg_value_list::get_elt): Likewise. + (ipa_argagg_value_list::get_elt_for_index): Likewise. + (ipa_argagg_value_list::get_value): New overloaded functions. + (ipa_argagg_value_list::superset_of_p): New function. + (new ipa_argagg_value_list::push_adjusted_values): Likewise. + (push_agg_values_from_plats): Likewise. + (intersect_argaggs_with): Likewise. + (get_clone_agg_value): Removed. + (ipa_agg_value_from_node): Make last parameter const, use + ipa_argagg_value_list to search values coming from clones. + (ipa_get_indirect_edge_target_1): Use ipa_argagg_value_list to search + values coming from clones. + (ipcp_discover_new_direct_edges): Pass around a vector of + ipa_argagg_values rather than a link list of replacement values. + (cgraph_edge_brings_value_p): Use ipa_argagg_value_list to search + values coming from clones. + (create_specialized_node): Work with a vector of ipa_argagg_values + rather than a link list of replacement values. + (self_recursive_agg_pass_through_p): Make the pointer parameters + const. + (copy_plats_to_inter): Removed. + (intersect_with_plats): Likewise. + (agg_replacements_to_vector): Likewise. + (intersect_with_agg_replacements): Likewise. + (intersect_aggregates_with_edge): Likewise. + (push_agg_values_for_index_from_edge): Likewise. + (push_agg_values_from_edge): Likewise. + (find_aggregate_values_for_callers_subset): Rewrite. + (cgraph_edge_brings_all_agg_vals_for_node): Likewise. + (ipcp_val_agg_replacement_ok_p): Use ipa_argagg_value_list to search + aggregate values. + (decide_about_value): Work with a vector of ipa_argagg_values rather + than a link list of replacement values. + (decide_whether_version_node): Likewise. + (ipa_analyze_node): Check number of parameters, assert that there + are no descriptors when bailing out. + * ipa-prop.cc (ipa_set_node_agg_value_chain): Switch to a vector of + ipa_argagg_value. + (ipa_node_params_t::duplicate): Removed superfluous handling of + ipa_agg_replacement_values. Name of src parameter removed because + it is no longer used. + (ipcp_transformation_t::duplicate): Replaced duplication of + ipa_agg_replacement_values with copying vector m_agg_values. + (ipa_dump_agg_replacement_values): Removed. + (write_ipcp_transformation_info): Stream the new data-structure + instead of the old. + (read_ipcp_transformation_info): Likewise. + (adjust_agg_replacement_values): Work with ipa_argagg_values instead + of linked lists of ipa_agg_replacement_values, copy the items and + truncate the vector as necessary to keep it sorted instead of marking + items as invalid. Return one bool if CFG should be updated. + (ipcp_modif_dom_walker): Store ipcp_transformation instead of + linked list of ipa_agg_replacement_values. + (ipcp_modif_dom_walker::before_dom_children): Use + ipa_argagg_value_list instead of walking a list of + ipa_agg_replacement_values. + (ipcp_transform_function): Switch to the new data structure, adjust + dumping. + +2022-10-18 Richard Biener + + PR tree-optimization/107302 + * tree-vect-loop.cc (vectorizable_recurrence): Fix vec_perm + placement for a PHI latch def. + +2022-10-18 Andre Vieira + + PR tree-optimization/107275 + * tree-if-conv.cc (if_convertible_loop_p_1): Move + find_data_references_in_loop call from here... + (if_convertible_loop_p): And move data-reference vector initialization + from here... + (tree_if_conversion):... to here. + +2022-10-18 Jakub Jelinek + + PR c++/106654 + * gimple.def (GIMPLE_ASSUME): New statement kind. + * gimple.h (struct gimple_statement_assume): New type. + (is_a_helper ::test, + is_a_helper ::test): New. + (gimple_build_assume): Declare. + (gimple_has_substatements): Return true for GIMPLE_ASSUME. + (gimple_assume_guard, gimple_assume_set_guard, + gimple_assume_guard_ptr, gimple_assume_body_ptr, gimple_assume_body): + New inline functions. + * gsstruct.def (GSS_ASSUME): New. + * gimple.cc (gimple_build_assume): New function. + (gimple_copy): Handle GIMPLE_ASSUME. + * gimple-pretty-print.cc (dump_gimple_assume): New function. + (pp_gimple_stmt_1): Handle GIMPLE_ASSUME. + * gimple-walk.cc (walk_gimple_op): Handle GIMPLE_ASSUME. + * omp-low.cc (WALK_SUBSTMTS): Likewise. + (lower_omp_1): Likewise. + * omp-oacc-kernels-decompose.cc (adjust_region_code_walk_stmt_fn): + Likewise. + * tree-cfg.cc (verify_gimple_stmt, verify_gimple_in_seq_2): Likewise. + * function.h (struct function): Add assume_function bitfield. + * gimplify.cc (gimplify_call_expr): If the assumption isn't + simple enough, expand it into GIMPLE_ASSUME wrapped block or + for -O0 drop it. + * gimple-low.cc: Include attribs.h. + (create_assumption_fn): New function. + (struct lower_assumption_data): New type. + (find_assumption_locals_r, assumption_copy_decl, + adjust_assumption_stmt_r, adjust_assumption_stmt_op, + lower_assumption): New functions. + (lower_stmt): Handle GIMPLE_ASSUME. + * tree-ssa-ccp.cc (pass_fold_builtins::execute): Remove + IFN_ASSUME calls. + * lto-streamer-out.cc (output_struct_function_base): Pack + assume_function bit. + * lto-streamer-in.cc (input_struct_function_base): And unpack it. + * cgraphunit.cc (cgraph_node::expand): Don't verify assume_function + has TREE_ASM_WRITTEN set and don't release its body. + (symbol_table::compile): Allow assume functions not to have released + body. + * internal-fn.cc (expand_ASSUME): Remove gcc_unreachable. + * passes.cc (execute_one_pass): For TODO_discard_function don't + release body of assume functions. + * cgraph.cc (cgraph_node::verify_node): Don't verify cgraph nodes + of PROP_assumptions_done functions. + * tree-pass.h (PROP_assumptions_done): Define. + (TODO_discard_function): Adjust comment. + (make_pass_assumptions): Declare. + * passes.def (pass_assumptions): Add. + * timevar.def (TV_TREE_ASSUMPTIONS): New. + * tree-inline.cc (remap_gimple_stmt): Handle GIMPLE_ASSUME. + * tree-vrp.cc (pass_data_assumptions): New variable. + (pass_assumptions): New class. + (make_pass_assumptions): New function. + +2022-10-18 Richard Biener + + PR tree-optimization/107301 + * gimple-ssa-isolate-paths.cc (handle_return_addr_local_phi_arg): + Check whether we can duplicate the block. + (find_implicit_erroneous_behavior): Likewise. + +2022-10-18 Andrew MacLeod + + PR tree-optimization/107273 + * value-relation.cc (equiv_oracle::add_partial_equiv): Merge + instead of copying precison of each member. + 2022-10-17 Jeff Law PR target/101697 diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index e1b70eb75bf..268d1b47e9d 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20221018 +20221019 diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index 2047e2e65ec..63076ed849a 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,11 @@ +2022-10-18 Joseph Myers + + PR c/36113 + * c-common.cc (c_common_type_for_size): Add fallback to + widest_unsigned_literal_type_node or + widest_integer_literal_type_node for precision that may not + exactly match the precision of those types. + 2022-10-14 Jakub Jelinek * c-cppbuiltin.cc (c_cpp_builtins): If bfloat16_type_node, diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index d28585b768b..7cb2e9c5199 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -1,3 +1,24 @@ +2022-10-18 Joseph Myers + + PR c/107164 + * c-decl.cc (shadow_tag_warned): If pedantic, diagnose "enum tag;" + with previous declaration visible. + +2022-10-18 Joseph Myers + + PR c/36113 + * c-decl.cc (finish_enum): If any enumerators do not fit in int, + convert all to the type of the enumeration. pedwarn if no integer + type fits all enumerators and default to + widest_integer_literal_type_node in that case. Otherwise pedwarn + for type wider than intmax_t. + (build_enumerator): pedwarn for enumerators outside the range of + uintmax_t or intmax_t, and otherwise use pedwarn_c11 for + enumerators outside the range of int. On overflow, attempt to + find a wider type that can hold the value of the next enumerator. + Do not convert value to type determined with + c_common_type_for_size. + 2022-10-14 Jakub Jelinek * c-typeck.cc (convert_arguments): Don't promote __bf16 to diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 19f923a4fec..1fe2b1f3329 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,19 @@ +2022-10-18 Patrick Palka + + PR c++/105045 + * module.cc (trees_out::tpl_parms_fini): Don't assume default + template arguments must be trailing. + (trees_in::tpl_parms_fini): Likewise. + +2022-10-18 Jakub Jelinek + + PR c++/106654 + * cp-tree.h (build_assume_call): Declare. + * parser.cc (cp_parser_omp_assumption_clauses): Use build_assume_call. + * cp-gimplify.cc (build_assume_call): New function. + (process_stmt_assume_attribute): Use build_assume_call. + * pt.cc (tsubst_copy_and_build): Likewise. + 2022-10-17 Patrick Palka PR c++/101449 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7aa621e35d4..763e88a92ff 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,68 @@ +2022-10-18 Joseph Myers + + PR c/107164 + * gcc.dg/c99-tag-4.c, gcc.dg/c99-tag-5.c, gcc.dg/c99-tag-6.c: New + tests. + +2022-10-18 Marek Polacek + + PR testsuite/107213 + * c-c++-common/pointer-to-fn1.c: Only run on i?86/x86_64. + +2022-10-18 Patrick Palka + + PR c++/105045 + * g++.dg/modules/pr105045_a.C: New test. + * g++.dg/modules/pr105045_b.C: New test. + +2022-10-18 Joseph Myers + + PR c/36113 + * gcc.dg/c11-enum-1.c, gcc.dg/c11-enum-2.c, gcc.dg/c11-enum-3.c, + gcc.dg/c2x-enum-1.c, gcc.dg/c2x-enum-2.c, gcc.dg/c2x-enum-3.c, + gcc.dg/c2x-enum-4.c, gcc.dg/c2x-enum-5.c: New tests. + * gcc.dg/pr30260.c: Explicitly use -std=gnu11. Update expected + diagnostics. + * gcc.dg/torture/pr25183.c: Update expected diagnostics. + +2022-10-18 Martin Jambor + + * gcc.dg/ipa/ipcp-agg-11.c: Adjust dumps. + * gcc.dg/ipa/ipcp-agg-8.c: Likewise. + +2022-10-18 Richard Biener + + PR tree-optimization/107302 + * gcc.dg/vect/pr107302.c: New testcase. + +2022-10-18 Andre Vieira + + * gcc.dg/vect/pr107275.c: New test. + +2022-10-18 Jakub Jelinek + + PR c++/106654 + * g++.dg/cpp23/attr-assume5.C: New test. + * g++.dg/cpp23/attr-assume6.C: New test. + * g++.dg/cpp23/attr-assume7.C: New test. + +2022-10-18 Richard Biener + + PR tree-optimization/107301 + * gcc.dg/torture/pr107301.c: New testcase. + +2022-10-18 Liwei Xu + + PR testsuite/107220 + * gcc.dg/tree-ssa/forwprop-19.c: Move scanning pass from + forwprop1 to dse1, This fixs the test case fail. + +2022-10-18 Andrew MacLeod + + PR tree-optimization/107273 + * gcc.dg/tree-ssa/pr107273-1.c: New. + * gcc.dg/tree-ssa/pr107273-2.c: New. + 2022-10-17 Steve Kargl PR fortran/104330 diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index ba2bedb14c2..ea4997d34cf 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,7 @@ +2022-10-18 Jonathan Wakely + + * Makefile.in: Quote variable. + 2022-10-17 H.J. Lu * unwind-generic.h (_Unwind_Frames_Increment): Add the EXC diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog index 1c8cc5c7ef5..aae88a1f0c5 100644 --- a/libiberty/ChangeLog +++ b/libiberty/ChangeLog @@ -1,3 +1,14 @@ +2022-10-18 Florian Weimer + + * acinclude.m4 (ac_cv_func_strncmp_works): Add missing + int return type and parameter list to the definition of main. + Include and for prototypes. + (ac_cv_c_stack_direction): Add missing + int return type and parameter list to the definitions of + main, find_stack_direction. Include for exit + prototype. + * configure: Regenerate. + 2022-10-14 Jakub Jelinek * cp-demangle.h (D_BUILTIN_TYPE_COUNT): Increment. diff --git a/libsanitizer/ChangeLog b/libsanitizer/ChangeLog index 4e550b41f8a..1c3beef3815 100644 --- a/libsanitizer/ChangeLog +++ b/libsanitizer/ChangeLog @@ -1,3 +1,9 @@ +2022-10-18 Florian Weimer + + * configure.ac (sanitizer_supported): Include for + syscall prototype. + * configure: Regenerate. + 2022-10-12 Martin Liska * configure: Regenerate. diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 804a8ac6149..09988f69a25 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,63 @@ +2022-10-18 Patrick Palka + + * include/std/ranges (stride_view): Define. + (stride_view::_Iterator): Define. + (views::__detail::__can_stride_view): Define. + (views::_Stride, views::stride): Define. + * testsuite/std/ranges/adaptors/stride/1.cc: New test. + +2022-10-18 Jakub Jelinek + + PR c++/106652 + * include/std/stdfloat: New file. + * include/std/numbers (__glibcxx_numbers): Define and use it + for __float128 explicit instantiations as well as + _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t. + * include/std/atomic (atomic<_Float16>, atomic<_Float32>, + atomic<_Float64>, atomic<_Float128>, atomic<__gnu_cxx::__bfloat16_t>): + New explicit instantiations. + * include/std/type_traits (__is_floating_point_helper<_Float16>, + __is_floating_point_helper<_Float32>, + __is_floating_point_helper<_Float64>, + __is_floating_point_helper<_Float128>, + __is_floating_point_helper<__gnu_cxx::__bfloat16_t>): Likewise. + * include/std/limits (__glibcxx_concat3_, __glibcxx_concat3, + __glibcxx_float_n): Define. + (numeric_limits<_Float16>, numeric_limits<_Float32>, + numeric_limits<_Float64>, numeric_limits<_Float128>, + numeric_limits<__gnu_cxx::__bfloat16_t>): New explicit instantiations. + * include/bits/std_abs.h (abs): New overloads for + _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t. + * include/bits/c++config (_GLIBCXX_LDOUBLE_IS_IEEE_BINARY128): Define + if long double is IEEE quad. + (__gnu_cxx::__bfloat16_t): New using. + * include/c_global/cmath (acos, asin, atan, atan2, ceil, cos, cosh, + exp, fabs, floor, fmod, frexp, ldexp, log, log10, modf, pow, sin, + sinh, sqrt, tan, tanh, fpclassify, isfinite, isinf, isnan, isnormal, + signbit, isgreater, isgreaterequal, isless, islessequal, + islessgreater, isunordered, acosh, asinh, atanh, cbrt, copysign, erf, + erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, + llrint, llround, log1p, log2, logb, lrint, lround, nearbyint, + nextafter, remainder, rint, round, scalbln, scalbn, tgamma, trunc, + lerp): New overloads with _Float{16,32,64,128} or + __gnu_cxx::__bfloat16_t types. + * config/os/gnu-linux/os_defines.h (_GLIBCXX_HAVE_FLOAT128_MATH): + Prepare for definition if glibc 2.26 and later implements *f128 APIs + but comment out the actual definition for now. + * include/ext/type_traits.h (__promote<_Float16>, __promote<_Float32>, + __promote<_Float64>, __promote<_Float128>, + __promote<__gnu_cxx::__bfloat16_t>): New specializations. + * include/Makefile.am (std_headers): Add stdfloat. + * include/Makefile.in: Regenerated. + * include/precompiled/stdc++.h: Include stdfloat. + * testsuite/18_support/headers/stdfloat/types_std.cc: New test. + * testsuite/18_support/headers/limits/synopsis_cxx23.cc: New test. + * testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc: + New test. + * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc: New test. + * testsuite/26_numerics/numbers/4.cc: New test. + * testsuite/29_atomics/atomic_float/requirements_cxx23.cc: New test. + 2022-10-17 Jonathan Wakely * include/std/charconv (__cpp_lib_constexpr_charconv): Define to