https://gcc.gnu.org/g:3800d1c5a84db84c85fa4d9e47a84023e0189920
commit r17-613-g3800d1c5a84db84c85fa4d9e47a84023e0189920 Author: GCC Administrator <[email protected]> Date: Wed May 20 00:16:31 2026 +0000 Daily bump. Diff: --- gcc/ChangeLog | 163 ++++++++++++++++++++++++++++++++++++++++++++++++ gcc/DATESTAMP | 2 +- gcc/ada/ChangeLog | 5 ++ gcc/analyzer/ChangeLog | 38 +++++++++++ gcc/c/ChangeLog | 7 +++ gcc/cp/ChangeLog | 22 +++++++ gcc/fortran/ChangeLog | 47 ++++++++++++++ gcc/m2/ChangeLog | 6 ++ gcc/testsuite/ChangeLog | 131 ++++++++++++++++++++++++++++++++++++++ libgcc/ChangeLog | 7 +++ libgomp/ChangeLog | 16 +++++ libstdc++-v3/ChangeLog | 86 +++++++++++++++++++++++++ 12 files changed, 529 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f0ddfe351359..00dec46427aa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,166 @@ +2026-05-19 Pengxuan Zheng <[email protected]> + + PR target/123748 + * config/aarch64/aarch64-simd.md (vec_packs_float_v2di): New pattern. + +2026-05-19 Christopher Bazley <[email protected]> + + * config/aarch64/aarch64.cc (aarch64_call_scalar_result_in_simd_reg_p): + New function to determine probabilistically whether a gcall + produces a scalar result in a SIMD/FP register. + (aarch64_scalar_op_to_vec_p): New function to determine + whether or not to add scalar_to_vec_cost per scalar operand + from which a vector is to be constructed. + (aarch64_external_adjust_stmt_cost): New function to adjust the + cost of an SLP tree node for a vec_construct that is fed by + values defined outside the vectorized region. + (aarch64_vector_costs::add_stmt_cost): Call the new + aarch64_external_adjust_stmt_cost function if we have an SLP + node and a vector type. + +2026-05-19 Paul-Antoine Arras <[email protected]> + Chung-Lin Tang <[email protected]> + Sandra Loosemore <[email protected]> + + * fold-const.cc (operand_compare::operand_equal_p): Handle + OMP_ARRAY_SECTION. + * gimplify.cc (gimplify_scan_omp_clauses): Call + omp_remove_duplicate_maps after partial clause expansion. + * omp-general.cc (omp_remove_duplicate_maps): New function. + * omp-general.h (omp_remove_duplicate_maps): Declare. + * omp-low.cc (install_var_field): Add new 'tree key_expr = NULL_TREE' + default parameter. Set splay-tree lookup key to key_expr instead of + var if key_expr is non-NULL. Adjust call to install_parm_decl. + Update comments. + (scan_sharing_clauses): Use clause tree expression as splay-tree key + for map/to/from and OpenACC firstprivate cases when installing the + variable field into the send/receive record type. + (lower_oacc_reductions): Adjust to find map-clause of reduction + variable, then create receiver-ref. + (lower_omp_target): Adjust to lookup var field using clause expression. + +2026-05-19 Jakub Jelinek <[email protected]> + + PR other/125348 + * config/i386/i386-expand.cc (ix86_expand_builtin): Fix diagnostic + typo, forth -> fourth. + +2026-05-19 Georg-Johann Lay <[email protected]> + + PR target/50481 + * config/avr/avr.md (bitreverseqi2): New insn-and-split. + (*bitreverseqi2): New insn. + +2026-05-19 Roger Sayle <[email protected]> + + PR target/90483 + PR libstdc++/118416 + * config/i386/i386-expand.cc (ix86_expand_sse_ptest): Refactor + with optimizations for PTESTZ*, PTESTC* and PTESTNZC*, including + transforming ptestz(x,-1) into ptestz(x,x). + +2026-05-19 Christophe Lyon <[email protected]> + + PR target/124870 + * config/arm/arm-mve-builtins-base.cc (vstrq_scatter_base_impl) + (vldrq_gather_base_impl): Fix call_properties. + +2026-05-19 Andrew Pinski <[email protected]> + + * cfgrtl.cc: Don't include gimplify.h or gimplify-me.h. + * cgraphbuild.cc: Likewise. + * emit-rtl.cc: Likewie. + * tree-ssa-dom.cc: Likewise. + * tree-ssa-dse.cc: Likewise. + * tree-ssa-loop-im.cc: Likewise. + * tree-ssa-loop-niter.cc: Likewise. + * tree-ssa-loop-unswitch.cc: Likewise. + * tree-ssa-math-opts.cc: Likewise. + * tree-ssa-phiopt.cc: Likewise. + * tree-ssa-phiprop.cc: Likewise. + * tree-ssa-pre.cc: Likewise. + * tree-ssa-propagate.cc: Likewise. + * tree-ssa-sccvn.cc: Likewise. + * gimplify.h (unshare_expr): Remove. + (unshare_expr_without_location): Remove. + (copy_if_shared): Remove. + * tree.h (unshare_expr): New decl. + (unshare_expr_without_location): Likewise. + (copy_if_shared): Likewise. + * gimplify.cc (mostly_copy_tree_r): Moved to tree.cc. + (copy_if_shared_r): Likewise. + (copy_if_shared): Likewise. + (unshare_expr): Likewise. + (prune_expr_location): Likewise. + (unshare_expr_without_location): Likewise. + * tree.cc (mostly_copy_tree_r): Moved from gimplify.cc + (copy_if_shared_r): Likewise. + (copy_if_shared): Likewise. + (unshare_expr): Likewise. + (prune_expr_location): Likewise. + (unshare_expr_without_location): Likewise. + +2026-05-19 Jakub Jelinek <[email protected]> + + PR target/125357 + * config/i386/i386-expand.cc (ix86_expand_vec_perm): For + one_operand_shuffle if TARGET_AVX and not TARGET_AVX512F use + vpermilps for V4SImode/V4SFmode. Formatting fix. + +2026-05-19 Georg-Johann Lay <[email protected]> + + * config/avr/avr.md (bitreversehi2, bitreversesi2): New insn_and_split. + (*bitreversehi2.libgcc, *bitreversesi2.libgcc): New insns. + +2026-05-19 Jakub Jelinek <[email protected]> + + PR target/50481 + * optabs.cc (widen_bswap): Add UNOPTAB argument and use it instead + of hardcoded bswap_optab. Rename to ... + (widen_bswap_or_bitreverse): ... this. + (expand_doubleword_bswap): Add UNOPTAB argument and use it instead + of hardcoded bswap_optab. Rename to ... + (expand_doubleword_bswap_or_bitreverse): ... this. + (expand_bitreverse): Use widen_bswap_or_bitreverse and + expand_doubleword_bswap_or_bitreverse. + (expand_unop): Adjust widen_bswap and expand_doubleword_bswap callers + to use new names and add an extra bswap_optab argument. + +2026-05-19 H.J. Lu <[email protected]> + + PR target/125355 + * config/i386/i386-expand.cc (ix86_expand_movmem): Replace + optimize_function_for_size_p with optimize_insn_for_size_p. + +2026-05-19 Robin Dapp <[email protected]> + + PR target/125097 + * config/riscv/riscv.cc (riscv_legitimize_move): Emit 32-bit + vec_extracts right away. + +2026-05-19 Robin Dapp <[email protected]> + + * config/riscv/autovec.md (<cbranch_optab><mode>): Remove. + * config/riscv/riscv-protos.h (expand_vec_cmp_float): Add mask + and else arguments. + * config/riscv/riscv-v.cc (expand_vec_cmp): Add mask and else + arguments. + (expand_vec_cmp_float): Ditto. + * config/riscv/vector-iterators.md: Remove iterators. + +2026-05-19 Peter Bergner <[email protected]> + Jeevitha Palanisamy <[email protected]> + + * config/rs6000/amo.h: Add missing atomic memory operations. + * doc/extend.texi (PowerPC Atomic Memory Operation Functions): Document + new functions. + +2026-05-19 Andi Kleen <[email protected]> + + PR target/125351 + * config/i386/i386.md: Use alternative to handle masm ptwrite + syntax. + 2026-05-18 Xin Wang <[email protected]> * tree-ssa-loop-split.cc (fix_loop_bb_probability): Rename diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index 2bdf77fcc72f..25622053d367 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20260519 +20260520 diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index a768fd420914..ad18fe41259b 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2026-05-19 Jakub Jelinek <[email protected]> + + PR other/125348 + * libgnat/s-regpat.ads: Fix comment spelling, paramter -> parameter. + 2026-05-10 Eric Botcazou <[email protected]> PR ada/125240 diff --git a/gcc/analyzer/ChangeLog b/gcc/analyzer/ChangeLog index d4d08911edcc..87b9a8e4ea09 100644 --- a/gcc/analyzer/ChangeLog +++ b/gcc/analyzer/ChangeLog @@ -1,3 +1,41 @@ +2026-05-19 David Malcolm <[email protected]> + + PR analyzer/125304 + * common.h (compare_bit_offsets_p): New decl. + (eval_region_offset_comparison): New decl. + * region-model.cc (region_model::on_assignment): Pass *this to + store::set_value to help determination of aliasing. + (region_model::set_value): Likewise. + (region_model::eval_condition): Likewise for + region_svalue::eval_condition. + * region.cc (compare_bit_offsets_p): New. + (region_offset::dump_to_pp): Dump the base region, wrapping the + whole thing in braces. + (eval_byte_offset_comparison): New. + (eval_region_offset_comparison): New. + * store.cc (store::set_value): Add "model" param and pass it to + eval_alias. + (store::eval_alias): Add "model" param and pass to eval_alias_1. + Add early return of true when checking a base region against + itself. Replace final return of "unknown" with logic that + compares the kinds of the two base regions, and may be able + to return "false" rather than "unknown". + (store::eval_alias_1): Add "model" param and pass to eval_alias. + Assert that we have two different base_regions. + (store::replay_call_summary_cluster): Pass model to set_value. + * store.h (store::set_value): Add "model" param. + (store::eval_alias): Likewise. + (store::eval_alias_1): Likewise. + * svalue.cc (region_svalue::eval_condition): Likewise. + Reimplement in terms of eval_region_offset_comparison. + * svalue.h (region_svalue::eval_condition): Add "model" param. + +2026-05-19 David Malcolm <[email protected]> + + PR analyzer/124104 + * svalue.cc (binop_svalue::maybe_get_value_range_1): Bail out for + incompatible types. + 2026-05-18 David Malcolm <[email protected]> * analyzer.opt (-param=analyzer-bb-explosion-factor=): Rename to... diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index 6406110a87b0..523d18208754 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -1,3 +1,10 @@ +2026-05-19 Paul-Antoine Arras <[email protected]> + Chung-Lin Tang <[email protected]> + Sandra Loosemore <[email protected]> + + * c-typeck.cc (c_finish_omp_clauses): Call omp_remove_duplicate_maps + before clause expansion. + 2026-05-15 Andi Kleen <[email protected]> PR c/124532 diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index dcb6881cc458..175fcc604cea 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,25 @@ +2026-05-19 Marek Polacek <[email protected]> + + 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 <[email protected]> + + 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 <[email protected]> + Chung-Lin Tang <[email protected]> + Sandra Loosemore <[email protected]> + + * semantics.cc (finish_omp_clauses): Likewise. + 2026-05-18 Marek Polacek <[email protected]> * constexpr.cc (cxx_eval_bare_aggregate): Remove dead code. diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 085251e31075..0cd6f3e9a289 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,50 @@ +2026-05-19 Julian Brown <[email protected]> + Tobias Burnus <[email protected]> + + * dump-parse-tree.cc (show_attr): Show omp_udm_artificial_var flag. + (show_omp_namelist): Support OMP_MAP_UNSET. + * gfortran.h (enum gfc_statement): Add ST_OMP_DECLARE_MAPPER. + (symbol_attribute): Add omp_udm_artificial_var attribute. + (enum gfc_omp_map_op): Add OMP_MAP_UNSET. + (gfc_omp_namelist_udm): New struct. + (gfc_omp_namelist): Add udm pointer to u2 union. + (gfc_symtree): Add omp_udm pointer. + (gfc_namespace): Add omp_udm_root symtree and omp_udm_ns flag. + (gfc_free_omp_udm, gfc_omp_udm_find, gfc_find_omp_udm, + gfc_resolve_omp_udms): Add prototypes. + * match.h (gfc_match_omp_declare_mapper): Add prototype. + * match.cc (gfc_free_omp_namelist): Update for declare mapper's udm. + * openmp.cc (gfc_omp_directives): Uncomment 'declare mapper'. + (gfc_free_omp_udm, gfc_find_omp_udm, gfc_omp_udm_find, + gfc_match_omp_declare_mapper, gfc_resolve_omp_udm, + gfc_resolve_omp_udms): New. + (gfc_match_omp_clauses): Take argument for the default map-type + modifier; add support for the 'mapper' modifier. + (resolve_omp_clauses): Update for declare-mapper map clauses. + * parse.cc (decode_omp_directive): Add declare mapper support. + (case_omp_decl): Add ST_OMP_DECLARE_MAPPER case. + (gfc_ascii_statement): Add ST_OMP_DECLARE_MAPPER case. + * resolve.cc (resolve_types): Call gfc_resolve_omp_udms. + * symbol.cc (free_omp_udm_tree): New function. + (gfc_free_namespace): Call it. + +2026-05-19 Paul-Antoine Arras <[email protected]> + Chung-Lin Tang <[email protected]> + Sandra Loosemore <[email protected]> + + * gfortran.h (enum gfc_omp_map_op): Dedicate the two LSB to TO and FROM. + * openmp.cc (resolve_omp_clauses): Adjust to allow duplicate + mapped variables for OpenMP. + * trans-openmp.cc (gfc_trans_omp_clauses): Remove duplicates before + clause expansion. + +2026-05-19 Thomas Koenig <[email protected]> + + PR fortran/115260 + * trans-expr.cc (gfc_conv_subref_array_arg): Pass false to + dealloc argument of gfc_trans_scalar_assign if we are + converting a g77-style argument. + 2026-05-16 Thomas Koenig <[email protected]> PR fortran/122245 diff --git a/gcc/m2/ChangeLog b/gcc/m2/ChangeLog index 4f3b364999f7..bb9cfeb3065b 100644 --- a/gcc/m2/ChangeLog +++ b/gcc/m2/ChangeLog @@ -1,3 +1,9 @@ +2026-05-19 Jakub Jelinek <[email protected]> + + PR other/125348 + * gm2-compiler/M2GenGCC.mod (PerformLastForIterator): Fix diagnostic + typo, intemediate -> intermediate. + 2026-04-21 Gaius Mulley <[email protected]> PR modula2/120189 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f75e2dfaf480..98a479522825 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,134 @@ +2026-05-19 Pengxuan Zheng <[email protected]> + + * gcc.target/aarch64/pr123748.c: Use "long long" instead of "long". + +2026-05-19 Julian Brown <[email protected]> + Tobias Burnus <[email protected]> + + * gfortran.dg/gomp/declare-mapper-1.f90: New test. + * gfortran.dg/gomp/declare-mapper-2.f90: New test. + +2026-05-19 David Malcolm <[email protected]> + + PR analyzer/125304 + * c-c++-common/analyzer/pointer-comparison-pr125304-eq.c: New test. + * c-c++-common/analyzer/pointer-comparison-pr125304-ge.c: New test. + * c-c++-common/analyzer/pointer-comparison-pr125304-gt.c: New test. + * c-c++-common/analyzer/pointer-comparison-pr125304-le.c: New test. + * c-c++-common/analyzer/pointer-comparison-pr125304-lt.c: New test. + * g++.dg/analyzer/pointer-casts-pr125304.C: New test. + +2026-05-19 Marek Polacek <[email protected]> + + PR c++/123536 + * g++.dg/cpp0x/lambda/lambda-const12.C: New test. + * g++.dg/cpp0x/lambda/lambda-const13.C: New test. + * g++.dg/cpp0x/lambda/lambda-const14.C: New test. + * g++.dg/template/local11.C: New test. + +2026-05-19 Pengxuan Zheng <[email protected]> + + PR target/123748 + * gcc.target/aarch64/pr123748.c: New test. + +2026-05-19 Christopher Bazley <[email protected]> + + * gcc.target/aarch64/sve/vec_construct_1.c: New test. + * gcc.target/aarch64/sve/vec_construct_2.c: New test. + * gcc.target/aarch64/sve/vec_construct_3.c: New test. + * gcc.target/aarch64/sve/vec_construct_4.c: New test. + * gcc.target/aarch64/sve/vec_construct_5.c: New test. + * gcc.target/aarch64/vec-construct-1.c: New test. + * gcc.target/aarch64/vec-construct-10.c: New test. + * gcc.target/aarch64/vec-construct-11.c: New test. + * gcc.target/aarch64/vec-construct-12.c: New test. + * gcc.target/aarch64/vec-construct-2.c: New test. + * gcc.target/aarch64/vec-construct-3.c: New test. + * gcc.target/aarch64/vec-construct-4.c: New test. + * gcc.target/aarch64/vec-construct-5.c: New test. + * gcc.target/aarch64/vec-construct-6.c: New test. + * gcc.target/aarch64/vec-construct-7.c: New test. + * gcc.target/aarch64/vec-construct-8.c: New test. + * gcc.target/aarch64/vec-construct-9.c: New test. + +2026-05-19 Marek Polacek <[email protected]> + + PR c++/125336 + * g++.dg/cpp2a/no_unique_address17.C: New test. + * g++.dg/cpp2a/no_unique_address18.C: New test. + +2026-05-19 Paul-Antoine Arras <[email protected]> + Chung-Lin Tang <[email protected]> + Sandra Loosemore <[email protected]> + + * c-c++-common/gomp/clauses-2.c: Adjust testcase. + * c-c++-common/gomp/map-6.c: Adjust testcase. + * gfortran.dg/gomp/pr107214.f90: Adjust testcase. + * c-c++-common/gomp/map-multi-1.c: New test. + * c-c++-common/gomp/map-multi-2.c: New test. + * gfortran.dg/gomp/map-multi-1.f90: New test. + * gfortran.dg/gomp/map-multi-2.f90: New test. + +2026-05-19 Thomas Koenig <[email protected]> + + PR fortran/115260 + * gfortran.dg/pr115260.f90: New test. + +2026-05-19 Jakub Jelinek <[email protected]> + + PR other/125348 + * gcc.target/i386/pr117416-2.c (prefetch_test): Adjust expected + diagnostic spelling. + * gdc.test/compilable/dtoh_TemplateDeclaration.d: Fix comment + spelling, paramter -> parameter. + +2026-05-19 Roger Sayle <[email protected]> + + PR target/90483 + PR libstdc++/118416 + * gcc.target/i386/sse4_1-ptest-8.c: New test case. + * gcc.target/i386/sse4_1-ptest-9.c: Likewise. + +2026-05-19 Christophe Lyon <[email protected]> + + PR target/124870 + * gcc.target/arm/mve/intrinsics/pr124870.c: New test. + +2026-05-19 Jakub Jelinek <[email protected]> + + PR target/125357 + * gcc.target/i386/avx-pr125357.c: New test. + * gcc.target/i386/avx2-pr125357.c: New test. + +2026-05-19 H.J. Lu <[email protected]> + + PR target/125355 + * gcc.target/i386/pr125355-2.c: New test. + +2026-05-19 H.J. Lu <[email protected]> + + * lib/scanasm.exp (configure_check-function-bodies): Check + "*-*-mingw32" instead of "aarch64*-*-mingw32". + +2026-05-19 Robin Dapp <[email protected]> + + * gcc.target/riscv/rvv/autovec/early-break-5.c: Remove redundant + comments. + +2026-05-19 Peter Bergner <[email protected]> + Jeevitha Palanisamy <[email protected]> + + * gcc.target/powerpc/amo3.c: New test. + * gcc.target/powerpc/amo4.c: Likewise. + * gcc.target/powerpc/amo5.c: Likewise. + * gcc.target/powerpc/amo6.c: Likewise. + * gcc.target/powerpc/amo7.c: Likewise. + +2026-05-19 Andi Kleen <[email protected]> + + PR target/125351 + * gcc.target/i386/pr125351.c: New test. + 2026-05-18 Andrew Pinski <[email protected]> * gcc.dg/tree-ssa/pr112095.c: Add -Wno-psabi to the options. diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index a769e628e482..1a7e3cee8958 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,10 @@ +2026-05-19 Georg-Johann Lay <[email protected]> + + * config/avr/t-avr (LIB1ASMFUNCS): Add _bitreverse8, _bitreverse16, + _bitreverse24, _bitreverse32. + * config/avr/lib1funcs.S (__bitreverse8, __bitreverse16) + (__bitreverse24, __bitreverse32): New functions. + 2026-05-11 John David Anglin <[email protected]> * config.host (hppa*64*-hp-hpux11*): Handle linking with GNU ld. diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog index 3975f41cebc0..b568584ae9c7 100644 --- a/libgomp/ChangeLog +++ b/libgomp/ChangeLog @@ -1,3 +1,19 @@ +2026-05-19 Paul-Antoine Arras <[email protected]> + Chung-Lin Tang <[email protected]> + Sandra Loosemore <[email protected]> + + * testsuite/libgomp.c++/target-map-multi-1.C: New test. + * testsuite/libgomp.c-c++-common/target-map-iterators-6.c: New test. + * testsuite/libgomp.c-c++-common/target-map-multi-1.c: New test. + * testsuite/libgomp.c-c++-common/target-map-multi-2.c: New test. + * testsuite/libgomp.c-c++-common/target-map-multi-3.c: New test. + * testsuite/libgomp.c-c++-common/target-map-multi-4.c: New test. + * testsuite/libgomp.fortran/target-map-multi-1.f90: New test. + * testsuite/libgomp.fortran/target-map-multi-2.f90: New test. + * testsuite/libgomp.fortran/target-map-multi-3.f90: New test. + * testsuite/libgomp.fortran/target-map-multi-4.f90: New test. + * testsuite/libgomp.fortran/target-map-multi-5.f90: New test. + 2026-05-16 Rainer Orth <[email protected]> * env.c (initialize_env): Check GOMP_DEFAULT_STACKSIZE for diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 193418823b53..8fc038268c70 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,89 @@ +2026-05-19 Jonathan Wakely <[email protected]> + + * src/c++20/tzdata.zi: Import new file from 2026b release. + +2026-05-19 Patrick Palka <[email protected]> + + PR libstdc++/125374 + * include/std/flat_map (_Flat_map_impl::_M_try_emplace): Forward + instead of unconditionally moving __k when inserting it. + * testsuite/23_containers/flat_map/1.cc (test10): New test. + +2026-05-19 Nathan Myers <[email protected]> + + PR libstdc++/118030 + * config/abi/pre/gnu.ver: Expose string::_S_allocate_at_least, + _M_create_plus symbols. + * include/bits/alloc_traits.h: + (allocate_at_least): Delegate in allocator_traits<allocator<_Tp>> + specialization to allocator<_Tp>::allocate_at_least, unconditionally; + annotate [[__gnu__::always_inline__]]. + (allocate_at_least): Declare "= delete;" in allocator<void>. + * include/bits/allocator.h (allocate_at_least): Delegate to base + allocate_at_least where defined, calling with explicit base-class + qualification, picking up __new_allocator member. + * include/bits/basic_string.h: + (_Alloc_result): Define new type. + (_S_allocate_at_least): Define, using it. + (_S_allocate): Minimize for legacy ABI use only. + (_M_create_plus): Declare. + (_M_create_and_place): Define, abstracting common operations. + (assign): Use _S_allocate_at_least. + * include/bits/basic_string.tcc: + (_M_create_plus): Define. + (_M_replace, reserve): Use _S_allocate_at_least. + (_M_construct, others (3x)): Use _M_create_and_place. + (_M_construct, input iterators): Use _M_create_plus. + (_M_create, _M_assign, reserve, _M_mutate): Same. + * include/bits/memory_resource.h (allocate_at_least): Define, + document. + * include/bits/new_allocator.h (allocate_at_least): Define. + (_S_check_allocation_limit) Define. + (allocate): Use _S_check_allocation_limit. + (_S_max_size): Change from _M_max_size. + (deallocate): Refine "if constexpr" logic. + * include/bits/stl_vector.h: + (_S_max_size): Move to _Vector_base. + (_Alloc_result): Define type. + (_M_allocate_at_least): Define, using allocate_at_least where supported. + (_M_allocate): Delegate to _M_allocate_at_least. + (max_size, _S_check_init_len): Use _S_max_size as moved. + (_M_create_storage, append_range, _M_allocate_and_copy, + _M_replace_storage): Define, abstracting common operations. + (_M_replace_with): Define, likewise. + (_M_range_initialize_n): Use _M_allocate_at_least. + (_M_check_len): Improve logic. + * include/bits/vector.tcc: + (reserve, _M_fill_append, _M_range_insert): Use _M_allocate_at_least + and _M_replace_storage. + (operator=, _M_assign_aux): Use _M_replace_with. + (_M_realloc_insert, _M_realloc_append, _M_default_append, insert_range): + Use _M_allocate_at_least. + (_M_fill_insert): Use _M_replace_storage, normalize whitespace. + * testsuite/util/testsuite_allocator.h: + (allocate_at_least (3x)): Define. + (allocate): Use allocate_at_least. + * testsuite/20_util/allocator/allocate_at_least.cc: Add tests. + * testsuite/21_strings/basic_string/capacity/char/18654.cc: + Loosen capacity check. + * testsuite/21_strings/basic_string/capacity/char/shrink_to_fit.cc: + Same. + * testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc: Same. + * testsuite/21_strings/basic_string/capacity/wchar_t/2.cc: Same. + * testsuite/21_strings/basic_string/capacity/wchar_t/shrink_to_fit.cc: + Same. + * testsuite/23_containers/vector/capacity/shrink_to_fit.cc: Same. + * testsuite/23_containers/vector/capacity/shrink_to_fit2.cc: Same + * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc: + Adapt to looser reserve behavior. + +2026-05-19 Jonathan Wakely <[email protected]> + + PR libstdc++/125369 + * include/bits/chrono_io.h (__detail::_Parser::operator()): + Check for errors when parsing digits for a %z format. + * testsuite/std/time/parse/125369.cc: New test. + 2026-05-18 Jonathan Wakely <[email protected]> * testsuite/23_containers/bitset/lwg4294.cc: Move to...
