diff -Nrcpad gcc-13-20260513/LAST_UPDATED gcc-13-20260520/LAST_UPDATED
*** gcc-13-20260513/LAST_UPDATED	Wed May 13 22:32:20 2026
--- gcc-13-20260520/LAST_UPDATED	Wed May 20 22:32:18 2026
***************
*** 1 ****
! Obtained from git: releases/gcc-13 revision aaeb71da186ab1377b87c65206b13133c5fcf848
--- 1 ----
! Obtained from git: releases/gcc-13 revision f2b1a0cae33adbd4942eb1ee966bb2d1f3768ffc
diff -Nrcpad gcc-13-20260513/MD5SUMS gcc-13-20260520/MD5SUMS
*** gcc-13-20260513/MD5SUMS	Wed May 13 22:32:24 2026
--- gcc-13-20260520/MD5SUMS	Wed May 20 22:32:22 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-13-20260513.tar.xz tarball.
  #
  # Besides verifying that all files in the tarball were correctly expanded,
  # it also can be used to determine if any files have changed since the
--- 1,5 ----
  # This file contains the MD5 checksums of the files in the
! # gcc-13-20260520.tar.xz tarball.
  #
  # Besides verifying that all files in the tarball were correctly expanded,
  # it also can be used to determine if any files have changed since the
*************** d32239bcb673463ab874e80d47fae504  COPYIN
*** 21,27 ****
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! a33869536bd30a8fbd2cd0afdd9fe073  LAST_UPDATED
  81b3330d422f3ce1ef8b720dfae35068  MAINTAINERS
  2b61ddbd876fa839639a7ca551773426  Makefile.def
  5d2d6a74f897f8158d37f5f2ec6877ce  Makefile.in
--- 21,27 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! dde56c40f0cb10625bc8958243331095  LAST_UPDATED
  81b3330d422f3ce1ef8b720dfae35068  MAINTAINERS
  2b61ddbd876fa839639a7ca551773426  Makefile.def
  5d2d6a74f897f8158d37f5f2ec6877ce  Makefile.in
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 510,516 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! ca191890d4a65a3c9a4a0b63ddd6eac2  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
--- 510,516 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 2be3a41fc42b990389d9d285f1c38441  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** a92be6f532ece352cab8309520cf28f0  gcc/co
*** 5078,5084 ****
  6614aac0ce8960f693faf880a7560bc5  gcc/coroutine-passes.cc
  9d6931fedff9a87a6266d15841579e67  gcc/coverage.cc
  b964f4291cd58a61a06769149429435f  gcc/coverage.h
! 5c942f8c3cd35b13b70325f0597af5a5  gcc/cp/ChangeLog
  d271e3663538ba1f3281cab3838e92cd  gcc/cp/ChangeLog-1993
  f5a44adbc05521162350ca409d1d95ce  gcc/cp/ChangeLog-1994
  ac55db48d964cb5469ff03c1cd3ee04d  gcc/cp/ChangeLog-1995
--- 5078,5084 ----
  6614aac0ce8960f693faf880a7560bc5  gcc/coroutine-passes.cc
  9d6931fedff9a87a6266d15841579e67  gcc/coverage.cc
  b964f4291cd58a61a06769149429435f  gcc/coverage.h
! 31f733d2936e92d272c5121192ceb32d  gcc/cp/ChangeLog
  d271e3663538ba1f3281cab3838e92cd  gcc/cp/ChangeLog-1993
  f5a44adbc05521162350ca409d1d95ce  gcc/cp/ChangeLog-1994
  ac55db48d964cb5469ff03c1cd3ee04d  gcc/cp/ChangeLog-1995
*************** c2dbf831f4bbc53553765214d1b2d674  gcc/fl
*** 5576,5582 ****
  46538296abcbd26df93f276f5974ec0f  gcc/fold-const-call.h
  e091b0ed4e31525d6d685d5e6f7a7fa0  gcc/fold-const.cc
  9dd2c87502c864095a8b942bea07b5f3  gcc/fold-const.h
! a2933fd7c80a95cbe37f8359cfb51eb0  gcc/fortran/ChangeLog
  3330102ad3a0217cba963be6b5eefd58  gcc/fortran/ChangeLog-2002
  d000ab985b1eeb1ad5749f98b8fef99f  gcc/fortran/ChangeLog-2003
  bf42f94f0c51dcc7d8051cc7fda1efdc  gcc/fortran/ChangeLog-2004
--- 5576,5582 ----
  46538296abcbd26df93f276f5974ec0f  gcc/fold-const-call.h
  e091b0ed4e31525d6d685d5e6f7a7fa0  gcc/fold-const.cc
  9dd2c87502c864095a8b942bea07b5f3  gcc/fold-const.h
! eb82abec25b07bc3b8cdb0b327887385  gcc/fortran/ChangeLog
  3330102ad3a0217cba963be6b5eefd58  gcc/fortran/ChangeLog-2002
  d000ab985b1eeb1ad5749f98b8fef99f  gcc/fortran/ChangeLog-2003
  bf42f94f0c51dcc7d8051cc7fda1efdc  gcc/fortran/ChangeLog-2004
*************** c310fb2cf5f2bb20fbf7f911e7a5b2cc  gcc/fo
*** 5651,5657 ****
  c0c3bcf7a95794a179458f5f74c2d450  gcc/fortran/parse.cc
  b07d21325e9bf64201a6131a3dacb9e2  gcc/fortran/parse.h
  0b0dcac362edd98a98305776d6738ab4  gcc/fortran/primary.cc
! 209042c6f306fb2591745a1d48a78c8f  gcc/fortran/resolve.cc
  f1620f6af6f4d226dd7e0ee858f8bd10  gcc/fortran/scanner.cc
  0ea05c5f1f9c27f26a76525f5eed9380  gcc/fortran/scanner.h
  d7be9766180ba9d84c17fe538c02907f  gcc/fortran/simplify.cc
--- 5651,5657 ----
  c0c3bcf7a95794a179458f5f74c2d450  gcc/fortran/parse.cc
  b07d21325e9bf64201a6131a3dacb9e2  gcc/fortran/parse.h
  0b0dcac362edd98a98305776d6738ab4  gcc/fortran/primary.cc
! 2fbe151fd04a3c2bb12a256141ae86ba  gcc/fortran/resolve.cc
  f1620f6af6f4d226dd7e0ee858f8bd10  gcc/fortran/scanner.cc
  0ea05c5f1f9c27f26a76525f5eed9380  gcc/fortran/scanner.h
  d7be9766180ba9d84c17fe538c02907f  gcc/fortran/simplify.cc
*************** b16988fb11ef93959450cfdd9eaa8825  gcc/fo
*** 5665,5671 ****
  45ab297b0b34853431ed0f3c09a63db3  gcc/fortran/trans-const.cc
  2825c959ade33ef2a6492d640b05ef8c  gcc/fortran/trans-const.h
  13a5d3dd3c4bb9f7708081058f2745e4  gcc/fortran/trans-decl.cc
! a9f1ee4e35ea493d86fa56e00192e4d9  gcc/fortran/trans-expr.cc
  7a6a0f4f555cbc9df7d147a017fc7444  gcc/fortran/trans-intrinsic.cc
  f6db1c9d47520d97d86df27171bd0050  gcc/fortran/trans-io.cc
  c7930b7764e05d4b5c9e3c65f7ccc34c  gcc/fortran/trans-openmp.cc
--- 5665,5671 ----
  45ab297b0b34853431ed0f3c09a63db3  gcc/fortran/trans-const.cc
  2825c959ade33ef2a6492d640b05ef8c  gcc/fortran/trans-const.h
  13a5d3dd3c4bb9f7708081058f2745e4  gcc/fortran/trans-decl.cc
! 3ca908789ece558ac42f6be494731d55  gcc/fortran/trans-expr.cc
  7a6a0f4f555cbc9df7d147a017fc7444  gcc/fortran/trans-intrinsic.cc
  f6db1c9d47520d97d86df27171bd0050  gcc/fortran/trans-io.cc
  c7930b7764e05d4b5c9e3c65f7ccc34c  gcc/fortran/trans-openmp.cc
*************** b829ed0032c899e107be2db349c913f3  gcc/ta
*** 7637,7643 ****
  811da275a2b9d3186a6decf96c01b0ed  gcc/targhooks.cc
  edb193a32070c4a7626fb75382def9b9  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 0e4e532deac54a567ef5d674286b728f  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
--- 7637,7643 ----
  811da275a2b9d3186a6decf96c01b0ed  gcc/targhooks.cc
  edb193a32070c4a7626fb75382def9b9  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! bf4aea36e7538535be30e26ae659668a  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
*************** d832d83a7f0305ed5af20dce6be24b4b  gcc/te
*** 89604,89609 ****
--- 89604,89610 ----
  e91d746b0b9de2b6ed5529fb46921a0b  gcc/testsuite/gfortran.dg/pr114535d.f90
  60e9f03f051c282f39e48a14c058f5de  gcc/testsuite/gfortran.dg/pr114535iv.f90
  d3d77a4c149cf5358eb97935171795fb  gcc/testsuite/gfortran.dg/pr114739.f90
+ dcc85737c1fe827eb6a63f372dd52f3e  gcc/testsuite/gfortran.dg/pr115260.f90
  862aedc97da38fe9b3319406b768d9c0  gcc/testsuite/gfortran.dg/pr115348.f90
  6c3af77c51cf7ae784cf117509d09064  gcc/testsuite/gfortran.dg/pr117730_a.f90
  c409953e60b511d0f73cda8df16bc1dc  gcc/testsuite/gfortran.dg/pr117730_b.f90
*************** c8c260dea52e24ac6be6641b8f123d9a  gcc/te
*** 90377,90382 ****
--- 90378,90384 ----
  a056a75dc3c7830d385da1c0b9d587bc  gcc/testsuite/gfortran.dg/pr96711.f90
  a94ae73a3b6b9628990c54fb08f2950c  gcc/testsuite/gfortran.dg/pr96737.f90
  74a709306836d044b8cd43d035aecdf2  gcc/testsuite/gfortran.dg/pr96859.f90
+ 3b72f7e6589a60bc5e040e31c77484b8  gcc/testsuite/gfortran.dg/pr96986.f90
  76f063a5164cc2eff42c50fc9b9989a1  gcc/testsuite/gfortran.dg/pr97036.f90
  70cac68f93e5398eb60f3aa67f709e6a  gcc/testsuite/gfortran.dg/pr97095.f
  f219dfba008fc41e9e809107b3498d57  gcc/testsuite/gfortran.dg/pr97272.f90
*************** c265574887f4390ecccd1073ee5c0190  libssp
*** 113666,113672 ****
  02470b541ab713bd1bfb8e6787e65f2c  libssp/strncpy-chk.c
  8a7a0719ef45cb3ae0041192eac8d550  libssp/vsnprintf-chk.c
  d662ba7536e1bd06226d47b1a7f1f4e2  libssp/vsprintf-chk.c
! bb1d0c1f6248b1aa319cf2ceb974fb55  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 113668,113674 ----
  02470b541ab713bd1bfb8e6787e65f2c  libssp/strncpy-chk.c
  8a7a0719ef45cb3ae0041192eac8d550  libssp/vsnprintf-chk.c
  d662ba7536e1bd06226d47b1a7f1f4e2  libssp/vsprintf-chk.c
! 1af9c7cf21e941bfc137da46fd264351  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
*************** adcea90b4e1088e2e86276002047930d  libstd
*** 113758,113764 ****
  b9781348efbb56e34bbcbae0c133c4c8  libstdc++-v3/config/cpu/sh/atomicity.h
  f0d558aa9a20f3e1cb155d4bf7338f1a  libstdc++-v3/config/cpu/sparc/atomic_word.h
  9cb5258fc5ee28e47bb10eb3a5b9993e  libstdc++-v3/config/cpu/sparc/atomicity.h
! 859dc35b61c4326aa5dc08ee1a73e78a  libstdc++-v3/config/io/basic_file_stdio.cc
  667751272c2634e9ca84aafbf5899453  libstdc++-v3/config/io/basic_file_stdio.h
  a0d5f7157fc4b3fc206d8bf4497dd924  libstdc++-v3/config/io/c_io_stdio.h
  8d8376bd496628e6daff6e43c6a00f43  libstdc++-v3/config/locale/darwin/ctype_members.cc
--- 113760,113766 ----
  b9781348efbb56e34bbcbae0c133c4c8  libstdc++-v3/config/cpu/sh/atomicity.h
  f0d558aa9a20f3e1cb155d4bf7338f1a  libstdc++-v3/config/cpu/sparc/atomic_word.h
  9cb5258fc5ee28e47bb10eb3a5b9993e  libstdc++-v3/config/cpu/sparc/atomicity.h
! 9b0c42384ee92fc019cfe3a934380c43  libstdc++-v3/config/io/basic_file_stdio.cc
  667751272c2634e9ca84aafbf5899453  libstdc++-v3/config/io/basic_file_stdio.h
  a0d5f7157fc4b3fc206d8bf4497dd924  libstdc++-v3/config/io/c_io_stdio.h
  8d8376bd496628e6daff6e43c6a00f43  libstdc++-v3/config/locale/darwin/ctype_members.cc
*************** bf556dc6840d7dadbb3b6275d1a0246f  libstd
*** 113813,113819 ****
  f0f692d4993106f00dc73fffe8481a5a  libstdc++-v3/config/os/bsd/darwin/ctype_base.h
  bff3f0f5f7fae007b47106e4cd2aedd8  libstdc++-v3/config/os/bsd/darwin/ctype_configure_char.cc
  b3726c7385b8a8c7b6ae336f5eef90a8  libstdc++-v3/config/os/bsd/darwin/ctype_inline.h
! 36e4c8ce8504c11324759a1cdc69c4b2  libstdc++-v3/config/os/bsd/darwin/os_defines.h
  9e91dfcb11e4c78744df0e1e0cf69b5b  libstdc++-v3/config/os/bsd/darwin/ppc-extra.ver
  d05e9e7b17b7b8b3d1a862ceda60c106  libstdc++-v3/config/os/bsd/dragonfly/ctype_base.h
  7e7ffc1a0dbe201efefbdbc801c4cfaf  libstdc++-v3/config/os/bsd/dragonfly/ctype_configure_char.cc
--- 113815,113821 ----
  f0f692d4993106f00dc73fffe8481a5a  libstdc++-v3/config/os/bsd/darwin/ctype_base.h
  bff3f0f5f7fae007b47106e4cd2aedd8  libstdc++-v3/config/os/bsd/darwin/ctype_configure_char.cc
  b3726c7385b8a8c7b6ae336f5eef90a8  libstdc++-v3/config/os/bsd/darwin/ctype_inline.h
! f34d1793fa7dc794c23c01b6e9d614f6  libstdc++-v3/config/os/bsd/darwin/os_defines.h
  9e91dfcb11e4c78744df0e1e0cf69b5b  libstdc++-v3/config/os/bsd/darwin/ppc-extra.ver
  d05e9e7b17b7b8b3d1a862ceda60c106  libstdc++-v3/config/os/bsd/dragonfly/ctype_base.h
  7e7ffc1a0dbe201efefbdbc801c4cfaf  libstdc++-v3/config/os/bsd/dragonfly/ctype_configure_char.cc
*************** d05e9e7b17b7b8b3d1a862ceda60c106  libstd
*** 113822,113828 ****
  70b706514677753f53f175644c6d1c3c  libstdc++-v3/config/os/bsd/freebsd/ctype_base.h
  7e7ffc1a0dbe201efefbdbc801c4cfaf  libstdc++-v3/config/os/bsd/freebsd/ctype_configure_char.cc
  b3726c7385b8a8c7b6ae336f5eef90a8  libstdc++-v3/config/os/bsd/freebsd/ctype_inline.h
! efcb0a7d47a741c72b91843ad95c5242  libstdc++-v3/config/os/bsd/freebsd/os_defines.h
  88f0caf3f3b225d015f8768e496ebd4a  libstdc++-v3/config/os/bsd/netbsd/ctype_base.h
  37c0176086b51b82cdf41777685ce449  libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc
  b0500c41fc08ce01a06b84e41fa43c31  libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h
--- 113824,113830 ----
  70b706514677753f53f175644c6d1c3c  libstdc++-v3/config/os/bsd/freebsd/ctype_base.h
  7e7ffc1a0dbe201efefbdbc801c4cfaf  libstdc++-v3/config/os/bsd/freebsd/ctype_configure_char.cc
  b3726c7385b8a8c7b6ae336f5eef90a8  libstdc++-v3/config/os/bsd/freebsd/ctype_inline.h
! 0547f3b8c175ad170df00e0342a1982a  libstdc++-v3/config/os/bsd/freebsd/os_defines.h
  88f0caf3f3b225d015f8768e496ebd4a  libstdc++-v3/config/os/bsd/netbsd/ctype_base.h
  37c0176086b51b82cdf41777685ce449  libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc
  b0500c41fc08ce01a06b84e41fa43c31  libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h
*************** aedbb1de1dc942434f2d23b8971c0b6f  libstd
*** 113894,113900 ****
  f2586e13ea278d1f5cb3ffccc9efc110  libstdc++-v3/doc/Makefile.in
  3f7ff07f68cc7610addc1921bc125548  libstdc++-v3/doc/doxygen/Intro.3
  8cd134670f5092cbc6540d6789acc229  libstdc++-v3/doc/doxygen/doxygroups.cc
! 520db39aef0e2a59418132af88b897ed  libstdc++-v3/doc/doxygen/mainpage.html
  f298475c719652bf6b563563d90f327a  libstdc++-v3/doc/doxygen/stdheader.cc
  1273764cd133c402d2d3f22cf2913af5  libstdc++-v3/doc/doxygen/tables.html
  4e2062754819106c107a975574733a1a  libstdc++-v3/doc/doxygen/user.cfg.in
--- 113896,113902 ----
  f2586e13ea278d1f5cb3ffccc9efc110  libstdc++-v3/doc/Makefile.in
  3f7ff07f68cc7610addc1921bc125548  libstdc++-v3/doc/doxygen/Intro.3
  8cd134670f5092cbc6540d6789acc229  libstdc++-v3/doc/doxygen/doxygroups.cc
! 0afaede288e1533644cb1445cf4ff813  libstdc++-v3/doc/doxygen/mainpage.html
  f298475c719652bf6b563563d90f327a  libstdc++-v3/doc/doxygen/stdheader.cc
  1273764cd133c402d2d3f22cf2913af5  libstdc++-v3/doc/doxygen/tables.html
  4e2062754819106c107a975574733a1a  libstdc++-v3/doc/doxygen/user.cfg.in
*************** f905c739c406885aba58dd48cd9eddab  libstd
*** 114358,114364 ****
  7f47148b0e13c75cb1ca1385d6ba2b3e  libstdc++-v3/include/bits/char_traits.h
  0a14bf55d3849f91b6f272370226f0b8  libstdc++-v3/include/bits/charconv.h
  89af0ab72b50a7bc31ce564865821616  libstdc++-v3/include/bits/chrono.h
! 728eefcd3d8bd361f5754ccef8cd601d  libstdc++-v3/include/bits/chrono_io.h
  99228a8561efb5af08fdf896e792dbd3  libstdc++-v3/include/bits/codecvt.h
  02b297f22d933704022d62bb998083b6  libstdc++-v3/include/bits/concept_check.h
  35c9669d9e15757a7acf82d95cda0a0a  libstdc++-v3/include/bits/cow_string.h
--- 114360,114366 ----
  7f47148b0e13c75cb1ca1385d6ba2b3e  libstdc++-v3/include/bits/char_traits.h
  0a14bf55d3849f91b6f272370226f0b8  libstdc++-v3/include/bits/charconv.h
  89af0ab72b50a7bc31ce564865821616  libstdc++-v3/include/bits/chrono.h
! 77ed55d73137df2f8b49a45cfb51a985  libstdc++-v3/include/bits/chrono_io.h
  99228a8561efb5af08fdf896e792dbd3  libstdc++-v3/include/bits/codecvt.h
  02b297f22d933704022d62bb998083b6  libstdc++-v3/include/bits/concept_check.h
  35c9669d9e15757a7acf82d95cda0a0a  libstdc++-v3/include/bits/cow_string.h
*************** f7dbdb00cb5664fe06868cb519c18fbf  libstd
*** 114446,114452 ****
  5be391a12793142550786b0bb50e6138  libstdc++-v3/include/bits/stl_algo.h
  443f7678e66a208008b30b4fe6575fc7  libstdc++-v3/include/bits/stl_algobase.h
  017c2db5a715f2c5215992f550936e62  libstdc++-v3/include/bits/stl_bvector.h
! 2692aca002018b5b1663c464dddaf63f  libstdc++-v3/include/bits/stl_construct.h
  4a0bb23f380040a1ce59a88a8353ce1b  libstdc++-v3/include/bits/stl_deque.h
  60507e6d5f3434ae5ce86363f622a178  libstdc++-v3/include/bits/stl_function.h
  f1a151d37c2259f38ae9f3bb60c184cc  libstdc++-v3/include/bits/stl_heap.h
--- 114448,114454 ----
  5be391a12793142550786b0bb50e6138  libstdc++-v3/include/bits/stl_algo.h
  443f7678e66a208008b30b4fe6575fc7  libstdc++-v3/include/bits/stl_algobase.h
  017c2db5a715f2c5215992f550936e62  libstdc++-v3/include/bits/stl_bvector.h
! 1614f1b27bffe489aa8c4b32eeaf08e0  libstdc++-v3/include/bits/stl_construct.h
  4a0bb23f380040a1ce59a88a8353ce1b  libstdc++-v3/include/bits/stl_deque.h
  60507e6d5f3434ae5ce86363f622a178  libstdc++-v3/include/bits/stl_function.h
  f1a151d37c2259f38ae9f3bb60c184cc  libstdc++-v3/include/bits/stl_heap.h
*************** acfce1940d41d37560494851676d5991  libstd
*** 114459,114465 ****
  6c5062c35eced881ad87ebac2c8a5faf  libstdc++-v3/include/bits/stl_multiset.h
  a160d3a1010219c7f0a400e068b1b39c  libstdc++-v3/include/bits/stl_numeric.h
  6c9baa7c3c4d143fae498a34a9efda80  libstdc++-v3/include/bits/stl_pair.h
! 420d5465635ca7fcbba4bc1a1f702222  libstdc++-v3/include/bits/stl_queue.h
  d12837792d22543fb74e959b8671dc45  libstdc++-v3/include/bits/stl_raw_storage_iter.h
  04b280c2aae349e2e28e67c88e0500c3  libstdc++-v3/include/bits/stl_relops.h
  3d95e52c0ad2bef5b3530737dc1f1013  libstdc++-v3/include/bits/stl_set.h
--- 114461,114467 ----
  6c5062c35eced881ad87ebac2c8a5faf  libstdc++-v3/include/bits/stl_multiset.h
  a160d3a1010219c7f0a400e068b1b39c  libstdc++-v3/include/bits/stl_numeric.h
  6c9baa7c3c4d143fae498a34a9efda80  libstdc++-v3/include/bits/stl_pair.h
! a7453339a2e48473111a6a57f28020a2  libstdc++-v3/include/bits/stl_queue.h
  d12837792d22543fb74e959b8671dc45  libstdc++-v3/include/bits/stl_raw_storage_iter.h
  04b280c2aae349e2e28e67c88e0500c3  libstdc++-v3/include/bits/stl_relops.h
  3d95e52c0ad2bef5b3530737dc1f1013  libstdc++-v3/include/bits/stl_set.h
*************** be2393381a05eac4c3ce9c1ca48fcc14  libstd
*** 115035,115041 ****
  6a6e184e0a63330c64ab616785279ac6  libstdc++-v3/include/std/bit
  06852873ecbf5b23ff53ea0b1952d3d8  libstdc++-v3/include/std/bitset
  3ee0e8090ee1f0e442c4bf1bc44a96f4  libstdc++-v3/include/std/charconv
! c1d080b2c23b4f05b4cb6ae8fe066cad  libstdc++-v3/include/std/chrono
  bbf20db5408848d929deed7c0ba28df3  libstdc++-v3/include/std/codecvt
  d3e91ccfa90352c8af77f3f7e0303ac8  libstdc++-v3/include/std/complex
  933005cab15e64abf8af0d4e0972908f  libstdc++-v3/include/std/concepts
--- 115037,115043 ----
  6a6e184e0a63330c64ab616785279ac6  libstdc++-v3/include/std/bit
  06852873ecbf5b23ff53ea0b1952d3d8  libstdc++-v3/include/std/bitset
  3ee0e8090ee1f0e442c4bf1bc44a96f4  libstdc++-v3/include/std/charconv
! de252c9134d2cd911e75698e72683062  libstdc++-v3/include/std/chrono
  bbf20db5408848d929deed7c0ba28df3  libstdc++-v3/include/std/codecvt
  d3e91ccfa90352c8af77f3f7e0303ac8  libstdc++-v3/include/std/complex
  933005cab15e64abf8af0d4e0972908f  libstdc++-v3/include/std/concepts
*************** d03063a4bedb845e2ff7fba28b7ecb1d  libstd
*** 115080,115086 ****
  d379c79a4b4ed0a78190d8f4a9da9aa2  libstdc++-v3/include/std/source_location
  2a2066d8e8f8c8a94b2d17fa0990856d  libstdc++-v3/include/std/span
  d85e5f395906ee64d169f731e153854e  libstdc++-v3/include/std/spanstream
! a75470ffd4afdfac6eca39a7b36542d2  libstdc++-v3/include/std/sstream
  91e5fdbed2e8180adc1417ecfceba477  libstdc++-v3/include/std/stack
  bbc0c33c94ab18dc7789ef417cbd2143  libstdc++-v3/include/std/stacktrace
  91c2dec920e37dc2bdfcd57f2ee1917c  libstdc++-v3/include/std/stdexcept
--- 115082,115088 ----
  d379c79a4b4ed0a78190d8f4a9da9aa2  libstdc++-v3/include/std/source_location
  2a2066d8e8f8c8a94b2d17fa0990856d  libstdc++-v3/include/std/span
  d85e5f395906ee64d169f731e153854e  libstdc++-v3/include/std/spanstream
! 20d55bd6ba1c90c00d51f7ab0d3f765c  libstdc++-v3/include/std/sstream
  91e5fdbed2e8180adc1417ecfceba477  libstdc++-v3/include/std/stack
  bbc0c33c94ab18dc7789ef417cbd2143  libstdc++-v3/include/std/stacktrace
  91c2dec920e37dc2bdfcd57f2ee1917c  libstdc++-v3/include/std/stdexcept
*************** d4462abdac571d8d61a236930c8cfc4b  libstd
*** 115092,115098 ****
  389b652a4f0c6e87818f8b1ab805ec13  libstdc++-v3/include/std/syncstream
  0ef04d7cdcad35a449aec6319852270f  libstdc++-v3/include/std/system_error
  f247d2ab92c9235549e795b99206b5e7  libstdc++-v3/include/std/thread
! f16a4d988e4018aed43e10d719ed07a4  libstdc++-v3/include/std/tuple
  aaf1c30405392a16806fece2b71d7820  libstdc++-v3/include/std/type_traits
  5a950e25b3e5d469314bc0a340057eaa  libstdc++-v3/include/std/typeindex
  b3721b1a59dccec76d19cdcd7d20c684  libstdc++-v3/include/std/unordered_map
--- 115094,115100 ----
  389b652a4f0c6e87818f8b1ab805ec13  libstdc++-v3/include/std/syncstream
  0ef04d7cdcad35a449aec6319852270f  libstdc++-v3/include/std/system_error
  f247d2ab92c9235549e795b99206b5e7  libstdc++-v3/include/std/thread
! 1ebc3bd587e5a65ca5464450d7e4a0a2  libstdc++-v3/include/std/tuple
  aaf1c30405392a16806fece2b71d7820  libstdc++-v3/include/std/type_traits
  5a950e25b3e5d469314bc0a340057eaa  libstdc++-v3/include/std/typeindex
  b3721b1a59dccec76d19cdcd7d20c684  libstdc++-v3/include/std/unordered_map
*************** cdf9c54ab7ea85aa42bbf32b2e749913  libstd
*** 115366,115373 ****
  3b38edf9d188d303f6aa2c63b7032e89  libstdc++-v3/src/c++17/floating_to_chars.cc
  fa072ccb9e6e80b3f27e4b23dfd619f9  libstdc++-v3/src/c++17/fs_dir.cc
  4f8743f3869fca4fcea53ac133a5149c  libstdc++-v3/src/c++17/fs_ops.cc
! 17fedf8750118959c518303ad2958de2  libstdc++-v3/src/c++17/fs_path.cc
! 115b4116584b81ff091cc1c8a434be2b  libstdc++-v3/src/c++17/memory_resource.cc
  2e23492a9bdff13463ee6d01c4b7cc20  libstdc++-v3/src/c++17/ostream-inst.cc
  f7696e2f5518e5e873ced4beacb8d107  libstdc++-v3/src/c++17/ryu/LOCAL_PATCHES
  e225c39ccc4c6adc72a744687977d59d  libstdc++-v3/src/c++17/ryu/MERGE
--- 115368,115375 ----
  3b38edf9d188d303f6aa2c63b7032e89  libstdc++-v3/src/c++17/floating_to_chars.cc
  fa072ccb9e6e80b3f27e4b23dfd619f9  libstdc++-v3/src/c++17/fs_dir.cc
  4f8743f3869fca4fcea53ac133a5149c  libstdc++-v3/src/c++17/fs_ops.cc
! 03d1d71565ab06303ddc8ce45e1db34c  libstdc++-v3/src/c++17/fs_path.cc
! 99c2aeb80767d9674325cb0cf760d949  libstdc++-v3/src/c++17/memory_resource.cc
  2e23492a9bdff13463ee6d01c4b7cc20  libstdc++-v3/src/c++17/ostream-inst.cc
  f7696e2f5518e5e873ced4beacb8d107  libstdc++-v3/src/c++17/ryu/LOCAL_PATCHES
  e225c39ccc4c6adc72a744687977d59d  libstdc++-v3/src/c++17/ryu/MERGE
*************** fbb127f006c65ae37d591c627cc6235c  libstd
*** 115388,115395 ****
  254cd9c33da3fa7ab663f4fb0c3eb02d  libstdc++-v3/src/c++20/Makefile.am
  1a78ce3875810d2fbde4c0259e6da49c  libstdc++-v3/src/c++20/Makefile.in
  b914ff6670ac6160405a2435443a4a06  libstdc++-v3/src/c++20/sstream-inst.cc
! e9e89f4578e59d252e4caaf0b63d6dfb  libstdc++-v3/src/c++20/tzdata.zi
! 9161154d8e1947f4e8174cc83e695460  libstdc++-v3/src/c++20/tzdb.cc
  45134a761e2989110bf92106ea6dca4e  libstdc++-v3/src/c++98/Makefile.am
  9b27a44fa8ef5adb147c45f43b150e95  libstdc++-v3/src/c++98/Makefile.in
  0da013c21616235a62a7ce091c9e8ab8  libstdc++-v3/src/c++98/allocator-inst.cc
--- 115390,115397 ----
  254cd9c33da3fa7ab663f4fb0c3eb02d  libstdc++-v3/src/c++20/Makefile.am
  1a78ce3875810d2fbde4c0259e6da49c  libstdc++-v3/src/c++20/Makefile.in
  b914ff6670ac6160405a2435443a4a06  libstdc++-v3/src/c++20/sstream-inst.cc
! e868493d039d86bca105c23a24b87383  libstdc++-v3/src/c++20/tzdata.zi
! 84608cc3c5b549d5d3b98e83fbd468db  libstdc++-v3/src/c++20/tzdb.cc
  45134a761e2989110bf92106ea6dca4e  libstdc++-v3/src/c++98/Makefile.am
  9b27a44fa8ef5adb147c45f43b150e95  libstdc++-v3/src/c++98/Makefile.in
  0da013c21616235a62a7ce091c9e8ab8  libstdc++-v3/src/c++98/allocator-inst.cc
*************** d6bc384ca66ff3fdd05e0b2371122457  libstd
*** 116862,116868 ****
  227931069351de891d63e6a0ce09cf3a  libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/95788.cc
  13432f208160f26ba0e05a30f46f88f0  libstdc++-v3/testsuite/20_util/specialized_algorithms/destroy/constrained.cc
  307ed30ab86d3f9f310f22ef029e832e  libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc
! 0695e76e14d0d1b7c0729b84e8e85149  libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc
  7e2d819342973c849d87437556e29d5c  libstdc++-v3/testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc
  681f3ec9c3b800b4e5258afc87a95231  libstdc++-v3/testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc
  7377989805a8e1aa7f8896037d2eefae  libstdc++-v3/testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc
--- 116864,116871 ----
  227931069351de891d63e6a0ce09cf3a  libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/95788.cc
  13432f208160f26ba0e05a30f46f88f0  libstdc++-v3/testsuite/20_util/specialized_algorithms/destroy/constrained.cc
  307ed30ab86d3f9f310f22ef029e832e  libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc
! 3d215c86194df15b75fdf87c57f36962  libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_n_neg.cc
! 060089834fae7f70e97089bd874bfd08  libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc
  7e2d819342973c849d87437556e29d5c  libstdc++-v3/testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc
  681f3ec9c3b800b4e5258afc87a95231  libstdc++-v3/testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc
  7377989805a8e1aa7f8896037d2eefae  libstdc++-v3/testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc
*************** fced6aef1c90b8200f7966d8fc0d1e2b  libstd
*** 116903,116908 ****
--- 116906,116912 ----
  23c56fdbc29d5022809523814c5efbb7  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc
  14b31098d096d0fc451958711491a982  libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc
  a7c2ab37c69a57274f01d9c1c0925d2b  libstdc++-v3/testsuite/20_util/steady_clock/constexpr_data.cc
+ 309b7ad3662d6e3be2a1afeaaef39c0e  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/118681.cc
  e01bbbdabdcc05d3ec7cd1288920cb0b  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/allocate.cc
  8cb654edf02f6707a3f06925f75baeaf  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/allocate_single.cc
  3ec8a2fc64cb64aa1082ab02188507a8  libstdc++-v3/testsuite/20_util/synchronized_pool_resource/cons.cc
*************** ccb35fb7a62300af936085819483975c  libstd
*** 116977,116982 ****
--- 116981,116987 ----
  d23b1a747046dfeaadefce18d2c02b12  libstdc++-v3/testsuite/20_util/tuple/cons/101960.cc
  32c154912a091023741fdaa263538a86  libstdc++-v3/testsuite/20_util/tuple/cons/102270.cc
  9a6dc1f9548e126de2581231c632a19f  libstdc++-v3/testsuite/20_util/tuple/cons/114147.cc
+ acc813dd1edb9480437149d28cd4faf0  libstdc++-v3/testsuite/20_util/tuple/cons/121771.cc
  f27dfd667d19d5a586e2805084cc1c5a  libstdc++-v3/testsuite/20_util/tuple/cons/41530.cc
  c5d05d77429ce4ba3914543541b3764e  libstdc++-v3/testsuite/20_util/tuple/cons/44487.cc
  45938586f3445d3925b645ab2e912816  libstdc++-v3/testsuite/20_util/tuple/cons/45228.cc
*************** b06d4bee43487cb46ceadf7135cb4db5  libstd
*** 117121,117126 ****
--- 117126,117132 ----
  fc63665747e3ea8f7fba3bd2b8231ddb  libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc
  79ae7324ed01aba2f0a26aa803be147c  libstdc++-v3/testsuite/20_util/unreachable/1.cc
  39e33d60fe45843188bb85ba28c7f355  libstdc++-v3/testsuite/20_util/unreachable/version.cc
+ e71310aab27f8280547a5f500ddfc531  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/118681.cc
  6cdad804e564520c37e1afc56cab7f5b  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc
  304b459dc12bebfddf1f302c0d20acf8  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/allocate.cc
  e146873cfa2a56eb95438a7e5f8ae879  libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/cons.cc
*************** f750de8f7a7b9f522f1d20e2d7b1c24b  libstd
*** 118949,118954 ****
--- 118955,118961 ----
  83fbed2c29ae3d0412c684b7c70a428c  libstdc++-v3/testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc
  dda5d6f1c5182a1b581a45ec2d4bc71c  libstdc++-v3/testsuite/23_containers/multiset/requirements/partial_specialization/1.cc
  95eade5bc721f08b1dd1d74efb06e211  libstdc++-v3/testsuite/23_containers/multiset/requirements/typedefs.cc
+ c2def03f80594fdacabf96a3fe28473a  libstdc++-v3/testsuite/23_containers/priority_queue/118088.cc
  67f73d3809efd5946ecf4de7a8538042  libstdc++-v3/testsuite/23_containers/priority_queue/67085.cc
  55e1b3aaddbbda2b023958a8dc2ddcb4  libstdc++-v3/testsuite/23_containers/priority_queue/77528.cc
  95f7ba6a7e6c8dace2c3383d38968f2a  libstdc++-v3/testsuite/23_containers/priority_queue/92878_92947.cc
*************** a6306b96109e4ac88fec3e48390ea520  libstd
*** 119646,119653 ****
  1ce2272844a9da337ee743c345bec85b  libstdc++-v3/testsuite/23_containers/vector/cons/constexpr.cc
  46f0c2a0b0960e4576e3270d26769808  libstdc++-v3/testsuite/23_containers/vector/cons/deduction.cc
  7a66bf7f5aca27ddc8ca203f2f55a9b6  libstdc++-v3/testsuite/23_containers/vector/cons/destroy-adl.cc
! dac5f3f9aadcf745fb603c739588aaa2  libstdc++-v3/testsuite/23_containers/vector/cons/destructible_debug_neg.cc
! f7bab4eab1d2bc6e522c4cb05878163e  libstdc++-v3/testsuite/23_containers/vector/cons/destructible_neg.cc
  5893577535f0a3d5bb18f37b6f785f5f  libstdc++-v3/testsuite/23_containers/vector/cons/moveable.cc
  b59054fb1d00091880d5605b974fa84c  libstdc++-v3/testsuite/23_containers/vector/cons/moveable2.cc
  43e21483e0953a254bd6139216fbe169  libstdc++-v3/testsuite/23_containers/vector/cons/noexcept_move_construct.cc
--- 119653,119660 ----
  1ce2272844a9da337ee743c345bec85b  libstdc++-v3/testsuite/23_containers/vector/cons/constexpr.cc
  46f0c2a0b0960e4576e3270d26769808  libstdc++-v3/testsuite/23_containers/vector/cons/deduction.cc
  7a66bf7f5aca27ddc8ca203f2f55a9b6  libstdc++-v3/testsuite/23_containers/vector/cons/destroy-adl.cc
! dbe19cc4c612d2abc999f18b0a66ac1c  libstdc++-v3/testsuite/23_containers/vector/cons/destructible_debug_neg.cc
! 5cb19c9b91d8d7eb22c067703b17e02c  libstdc++-v3/testsuite/23_containers/vector/cons/destructible_neg.cc
  5893577535f0a3d5bb18f37b6f785f5f  libstdc++-v3/testsuite/23_containers/vector/cons/moveable.cc
  b59054fb1d00091880d5605b974fa84c  libstdc++-v3/testsuite/23_containers/vector/cons/moveable2.cc
  43e21483e0953a254bd6139216fbe169  libstdc++-v3/testsuite/23_containers/vector/cons/noexcept_move_construct.cc
*************** b8939124765ab9270338e83358b3ac2b  libstd
*** 122001,122006 ****
--- 122008,122014 ----
  c208c8de494bf32d878da5e4c9b204af  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/wchar_t/1057.cc
  ca62659f7a645bedde2eca769be9962a  libstdc++-v3/testsuite/27_io/basic_stringbuf/sputn/wchar_t/9404-2.cc
  8622720c9345ba21912feea8824bdc15  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/1.cc
+ 977a013f60bef4a12b598777d9f03bd4  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/123100.cc
  336990ae2489df97e50305d0ed3f7c27  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/2.cc
  4b0f93f8b1f2c857573d6de9b3ff2517  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/3.cc
  5ca6a228218b7685c57f8087d179c4b3  libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/3955.cc
*************** adc6839881d66900bdb4afec1183fee6  libstd
*** 122105,122110 ****
--- 122113,122119 ----
  76d9cd4f874777f208df909f580d633b  libstdc++-v3/testsuite/27_io/filesystem/path/compare/lwg2936.cc
  f96fd6968fd5dc0a924d195a63fd0f01  libstdc++-v3/testsuite/27_io/filesystem/path/compare/path.cc
  71dece1f73b5dfe83d3feeccea213e26  libstdc++-v3/testsuite/27_io/filesystem/path/compare/strings.cc
+ 9b500ed50c013cdbd0290f1d06786f83  libstdc++-v3/testsuite/27_io/filesystem/path/concat/120029.cc
  645545a2827964059e41fbf8a38f3610  libstdc++-v3/testsuite/27_io/filesystem/path/concat/92853.cc
  08d3a01e742eaf2deea882236be3a404  libstdc++-v3/testsuite/27_io/filesystem/path/concat/94063.cc
  b9c63e25d0a6079a7198ceb1e34281aa  libstdc++-v3/testsuite/27_io/filesystem/path/concat/path.cc
*************** b98948c551bee5cc7d9c094747ddba4a  libstd
*** 123239,123244 ****
--- 123248,123254 ----
  7a96d873382d822fd330b3b81ce412c1  libstdc++-v3/testsuite/experimental/filesystem/path/compare/compare.cc
  9781d2ddc7dcd407841d5aa8e364b349  libstdc++-v3/testsuite/experimental/filesystem/path/compare/path.cc
  751386fe94f215b9517c877cdc28e958  libstdc++-v3/testsuite/experimental/filesystem/path/compare/strings.cc
+ 83f8a63ee6afbdafe75f08d3ab59ded7  libstdc++-v3/testsuite/experimental/filesystem/path/concat/120029.cc
  918b69aab461293cc241390a9b1479dc  libstdc++-v3/testsuite/experimental/filesystem/path/concat/path.cc
  1b7d15b79bbcf73d77ef62f090e14db4  libstdc++-v3/testsuite/experimental/filesystem/path/concat/strings.cc
  c06b01e19066f0d4ffa4faa5202f4e3e  libstdc++-v3/testsuite/experimental/filesystem/path/construct/100630.cc
*************** be10c13acd828ebea73db44489485d31  libstd
*** 124329,124338 ****
  be910052b3c95c93d92af43b6a22b3be  libstdc++-v3/testsuite/std/time/clock/file/members.cc
  345478b5ce7c143f57ec487df78d136d  libstdc++-v3/testsuite/std/time/clock/file/overview.cc
  17f8bff974757122a65883e7c33d9d80  libstdc++-v3/testsuite/std/time/clock/gps/1.cc
! 582df7dcaed4b97a2a4f6c981cd9c658  libstdc++-v3/testsuite/std/time/clock/gps/io.cc
! 74c3a6dc91a891549033088b48ed9eb7  libstdc++-v3/testsuite/std/time/clock/system/io.cc
  001b9c894be15711431b32cf6934f07e  libstdc++-v3/testsuite/std/time/clock/tai/1.cc
! 7db468492a30dc966a62a5676e3f47d5  libstdc++-v3/testsuite/std/time/clock/tai/io.cc
  7e3e7a495e0c19958f10682f7b49296d  libstdc++-v3/testsuite/std/time/clock/utc/1.cc
  23476f1e3b3d23b2649d29884d101d56  libstdc++-v3/testsuite/std/time/clock/utc/io.cc
  ff09d6a4a1def92f6d35e9fe30514c86  libstdc++-v3/testsuite/std/time/clock/utc/leap_second_info.cc
--- 124339,124349 ----
  be910052b3c95c93d92af43b6a22b3be  libstdc++-v3/testsuite/std/time/clock/file/members.cc
  345478b5ce7c143f57ec487df78d136d  libstdc++-v3/testsuite/std/time/clock/file/overview.cc
  17f8bff974757122a65883e7c33d9d80  libstdc++-v3/testsuite/std/time/clock/gps/1.cc
! 3fff7c8a9ff27a9167c62f08009448ca  libstdc++-v3/testsuite/std/time/clock/gps/io.cc
! 521877571e845eea902518b76a784d98  libstdc++-v3/testsuite/std/time/clock/local/io.cc
! a2772dcdba4aa99fa270f1bf4bc0e5c0  libstdc++-v3/testsuite/std/time/clock/system/io.cc
  001b9c894be15711431b32cf6934f07e  libstdc++-v3/testsuite/std/time/clock/tai/1.cc
! f7d720a4c23ba45d880ad68e66d87661  libstdc++-v3/testsuite/std/time/clock/tai/io.cc
  7e3e7a495e0c19958f10682f7b49296d  libstdc++-v3/testsuite/std/time/clock/utc/1.cc
  23476f1e3b3d23b2649d29884d101d56  libstdc++-v3/testsuite/std/time/clock/utc/io.cc
  ff09d6a4a1def92f6d35e9fe30514c86  libstdc++-v3/testsuite/std/time/clock/utc/leap_second_info.cc
*************** ed486cc2e31c6afcdde6ef9f6c13f745  libstd
*** 124400,124406 ****
  30bc9b2fd2b40e8027fe0054e4a38fe7  libstdc++-v3/testsuite/std/time/zoned_time/1.cc
  c5b4f50004a5d67e4537e73a7737a3b1  libstdc++-v3/testsuite/std/time/zoned_time/custom.cc
  189c09d558551ffe49e3d2dc9834b8a4  libstdc++-v3/testsuite/std/time/zoned_time/deduction.cc
! 59b340d5c1d26a795b8807bd3d3265f6  libstdc++-v3/testsuite/std/time/zoned_time/io.cc
  2efed5bb6e9bdea0ea3cd7fb040c1711  libstdc++-v3/testsuite/std/time/zoned_time/req_neg.cc
  a486e4fae5e727ed071c66c4751798e5  libstdc++-v3/testsuite/std/time/zoned_time/requirements.cc
  2e901ad2401971034cd40a777684dcf6  libstdc++-v3/testsuite/std/time/zoned_traits.cc
--- 124411,124417 ----
  30bc9b2fd2b40e8027fe0054e4a38fe7  libstdc++-v3/testsuite/std/time/zoned_time/1.cc
  c5b4f50004a5d67e4537e73a7737a3b1  libstdc++-v3/testsuite/std/time/zoned_time/custom.cc
  189c09d558551ffe49e3d2dc9834b8a4  libstdc++-v3/testsuite/std/time/zoned_time/deduction.cc
! bf1895421c2fd631595e3fe7d12104ba  libstdc++-v3/testsuite/std/time/zoned_time/io.cc
  2efed5bb6e9bdea0ea3cd7fb040c1711  libstdc++-v3/testsuite/std/time/zoned_time/req_neg.cc
  a486e4fae5e727ed071c66c4751798e5  libstdc++-v3/testsuite/std/time/zoned_time/requirements.cc
  2e901ad2401971034cd40a777684dcf6  libstdc++-v3/testsuite/std/time/zoned_traits.cc
diff -Nrcpad gcc-13-20260513/gcc/DATESTAMP gcc-13-20260520/gcc/DATESTAMP
*** gcc-13-20260513/gcc/DATESTAMP	Wed May 13 22:32:05 2026
--- gcc-13-20260520/gcc/DATESTAMP	Wed May 20 22:32:05 2026
***************
*** 1 ****
! 20260513
--- 1 ----
! 20260520
diff -Nrcpad gcc-13-20260513/gcc/cp/ChangeLog gcc-13-20260520/gcc/cp/ChangeLog
*** gcc-13-20260513/gcc/cp/ChangeLog	Wed May 13 22:32:07 2026
--- gcc-13-20260520/gcc/cp/ChangeLog	Wed May 20 22:32:06 2026
***************
*** 1,3 ****
--- 1,11 ----
+ 2026-05-13  Jason Merrill  <jason@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-08-21  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/120757
+ 	* pt.cc (tsubst_copy) [OFFSET_REF]: Don't tsubst the type.
+ 
  2026-03-30  Patrick Palka  <ppalka@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-13-20260513/gcc/fortran/ChangeLog gcc-13-20260520/gcc/fortran/ChangeLog
*** gcc-13-20260513/gcc/fortran/ChangeLog	Wed May 13 22:32:07 2026
--- gcc-13-20260520/gcc/fortran/ChangeLog	Wed May 20 22:32:06 2026
***************
*** 1,3 ****
--- 1,55 ----
+ 2026-05-14  Christopher Albert  <albert@tugraz.at>
+ 
+ 	Backported from master:
+ 	2026-04-08  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/96986
+ 	* resolve.cc (resolve_global_procedure): Move entry symbol
+ 	lookup outside the resolved != -1 block.
+ 
+ 2026-05-13  Christopher Albert  <albert@tugraz.at>
+ 
+ 	Backported from master:
+ 	2026-04-10  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/94978
+ 	* frontend-passes.cc (evaluate_loop_bound): New helper.
+ 	(inner_loop_may_be_skipped): New helper.
+ 	(do_subscript): Skip outer-loop bound warnings when nested inner loops
+ 	may be zero-trip for the substituted bound.
+ 
+ 2026-05-13  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-03-16  Paul Thomas  <pault@gcc.gnu.org>
+ 		    Steve Kargl  <kargls@comcast.net>
+ 
+ 	PR fortran/93832
+ 	* array.cc (resolve_array_bound): Emit error and return false
+ 	if bound expression is derived type or class.
+ 	* primary.cc (gfc_convert_to_structure_constructor): Do not
+ 	dereference NULL in character component test. Define 'shorter'
+ 	and use it help cure one of several whitespace issues.
+ 
+ 2026-05-13  Christopher Albert  <albert@tugraz.at>
+ 
+ 	Backported from master:
+ 	2026-04-11  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/93814
+ 	* trans-decl.cc (build_entry_thunks): Create local result buffer
+ 	and length temporaries for bind(c) CHARACTER entry thunks when the
+ 	master returns by reference but the thunk returns by value.
+ 
+ 2026-05-13  Christopher Albert  <albert@tugraz.at>
+ 
+ 	Backported from master:
+ 	2026-04-08  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/93715
+ 	* trans-decl.cc (gfc_trans_deferred_vars): Skip auto array
+ 	allocation for scalar coarrays.
+ 
  2026-05-09  Christopher Albert  <albert@tugraz.at>
  
  	Backported from master:
diff -Nrcpad gcc-13-20260513/gcc/fortran/resolve.cc gcc-13-20260520/gcc/fortran/resolve.cc
*** gcc-13-20260513/gcc/fortran/resolve.cc	Wed May 13 22:32:07 2026
--- gcc-13-20260520/gcc/fortran/resolve.cc	Wed May 20 22:32:07 2026
*************** resolve_global_procedure (gfc_symbol *sy
*** 2694,2710 ****
  	  /* This can happen if a binding name has been specified.  */
  	  if (gsym->binding_label && gsym->sym_name != def_sym->name)
  	    gfc_find_symbol (gsym->sym_name, gsym->ns, 0, &def_sym);
  
! 	  if (def_sym->attr.entry_master || def_sym->attr.entry)
! 	    {
! 	      gfc_entry_list *entry;
! 	      for (entry = gsym->ns->entries; entry; entry = entry->next)
! 		if (strcmp (entry->sym->name, sym->name) == 0)
! 		  {
! 		    def_sym = entry->sym;
! 		    break;
! 		  }
! 	    }
  	}
  
        if (sym->attr.function && !gfc_compare_types (&sym->ts, &def_sym->ts))
--- 2694,2715 ----
  	  /* This can happen if a binding name has been specified.  */
  	  if (gsym->binding_label && gsym->sym_name != def_sym->name)
  	    gfc_find_symbol (gsym->sym_name, gsym->ns, 0, &def_sym);
+ 	}
  
!       /* Look up the specific entry symbol so that interface checks use
! 	 the entry's own formal argument list, not the entry master's.
! 	 This must run even when resolved == -1 (recursive resolution in
! 	 progress), because def_sym starts as the namespace proc_name
! 	 which is the entry master with the combined formals.  */
!       if (def_sym->attr.entry_master || def_sym->attr.entry)
! 	{
! 	  gfc_entry_list *entry;
! 	  for (entry = gsym->ns->entries; entry; entry = entry->next)
! 	    if (strcmp (entry->sym->name, sym->name) == 0)
! 	      {
! 		def_sym = entry->sym;
! 		break;
! 	      }
  	}
  
        if (sym->attr.function && !gfc_compare_types (&sym->ts, &def_sym->ts))
diff -Nrcpad gcc-13-20260513/gcc/fortran/trans-expr.cc gcc-13-20260520/gcc/fortran/trans-expr.cc
*** gcc-13-20260513/gcc/fortran/trans-expr.cc	Wed May 13 22:32:07 2026
--- gcc-13-20260520/gcc/fortran/trans-expr.cc	Wed May 20 22:32:07 2026
*************** gfc_conv_subref_array_arg (gfc_se *se, g
*** 5197,5203 ****
  
    gcc_assert (lse.ss == gfc_ss_terminator);
  
!   tmp = gfc_trans_scalar_assign (&lse, &rse, expr->ts, false, true);
    gfc_add_expr_to_block (&body, tmp);
  
    /* Generate the copying loops.  */
--- 5197,5205 ----
  
    gcc_assert (lse.ss == gfc_ss_terminator);
  
!   /* Do not do deallocations when we are looking at a g77-style argument.  */
! 
!   tmp = gfc_trans_scalar_assign (&lse, &rse, expr->ts, false, !g77);
    gfc_add_expr_to_block (&body, tmp);
  
    /* Generate the copying loops.  */
diff -Nrcpad gcc-13-20260513/gcc/testsuite/ChangeLog gcc-13-20260520/gcc/testsuite/ChangeLog
*** gcc-13-20260513/gcc/testsuite/ChangeLog	Wed May 13 22:32:08 2026
--- gcc-13-20260520/gcc/testsuite/ChangeLog	Wed May 20 22:32:08 2026
***************
*** 1,3 ****
--- 1,52 ----
+ 2026-05-14  Christopher Albert  <albert@tugraz.at>
+ 
+ 	Backported from master:
+ 	2026-04-08  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/96986
+ 	* gfortran.dg/pr96986.f90: New test.
+ 
+ 2026-05-13  Jason Merrill  <jason@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-08-21  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/120757
+ 	* g++.dg/cpp1y/auto-fn66.C: New test.
+ 
+ 2026-05-13  Christopher Albert  <albert@tugraz.at>
+ 
+ 	Backported from master:
+ 	2026-04-10  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/94978
+ 	* gfortran.dg/pr94978.f90: New test.
+ 
+ 2026-05-13  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-03-16  Paul Thomas  <pault@gcc.gnu.org>
+ 		    Steve Kargl  <kargls@comcast.net>
+ 
+ 	PR fortran/93832
+ 	* gfortran.dg/pr93832.f90: New test.
+ 
+ 2026-05-13  Christopher Albert  <albert@tugraz.at>
+ 
+ 	Backported from master:
+ 	2026-04-11  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/93814
+ 	* gfortran.dg/pr93814.f90: New test.
+ 
+ 2026-05-13  Christopher Albert  <albert@tugraz.at>
+ 
+ 	Backported from master:
+ 	2026-04-08  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/93715
+ 	* gfortran.dg/pr93715.f90: New test.
+ 
  2026-05-09  Christopher Albert  <albert@tugraz.at>
  
  	Backported from master:
diff -Nrcpad gcc-13-20260513/gcc/testsuite/gfortran.dg/pr115260.f90 gcc-13-20260520/gcc/testsuite/gfortran.dg/pr115260.f90
*** gcc-13-20260513/gcc/testsuite/gfortran.dg/pr115260.f90	Thu Jan  1 00:00:00 1970
--- gcc-13-20260520/gcc/testsuite/gfortran.dg/pr115260.f90	Wed May 20 22:32:12 2026
***************
*** 0 ****
--- 1,35 ----
+ ! { dg-do run }
+ ! PR 115260 - this got corrupted output.
+ ! Original test case by Steve Mullerworth
+ 
+ program usegnufields
+   implicit none
+   type :: field_type
+     real,    allocatable :: data(:)
+     integer, allocatable :: idata(:)
+   end type field_type
+   type :: fieldholder
+     type(field_type) :: fieldset(2,4)
+   end type fieldholder
+   type(fieldholder) :: myfields
+ 
+   allocate(myfields%fieldset(2,1)%data(3))
+   allocate(myfields%fieldset(2,1)%idata(3))
+   myfields%fieldset(2,1)%data =1.0
+   myfields%fieldset(2,1)%idata=2
+ 
+   call setfields (myfields%fieldset(2,1:4))
+ !  print *,'After calling setfields with fieldset(2,1:4)'
+ !  print *,myfields%fieldset(2,1)%data
+ !  print *,myfields%fieldset(2,1)%idata
+   if (any (myfields%fieldset(2,1)%data  /= 1.0)) stop 1
+   if (any (myfields%fieldset(2,1)%idata /= 2  )) stop 2
+ 
+ contains
+   subroutine setfields (fieldset)
+     type(field_type), intent(inout) :: fieldset(1:4) ! corruption with -O
+ !    print *,'In setfields:'
+ !    print *,fieldset(1)%data
+ !    print *,fieldset(1)%idata
+   end subroutine setfields
+ end
diff -Nrcpad gcc-13-20260513/gcc/testsuite/gfortran.dg/pr96986.f90 gcc-13-20260520/gcc/testsuite/gfortran.dg/pr96986.f90
*** gcc-13-20260513/gcc/testsuite/gfortran.dg/pr96986.f90	Thu Jan  1 00:00:00 1970
--- gcc-13-20260520/gcc/testsuite/gfortran.dg/pr96986.f90	Wed May 20 22:32:12 2026
***************
*** 0 ****
--- 1,25 ----
+ ! { dg-do compile }
+ ! { dg-options "-std=legacy" }
+ !
+ ! PR fortran/96986
+ ! Calling an ENTRY with no volatile arguments incorrectly required an
+ ! explicit interface because the volatile attribute from a sibling ENTRY
+ ! was checked against the master procedure's combined formal list.
+ 
+ subroutine volatile_test ()
+   implicit none
+   integer, volatile :: va
+ 
+   entry fun_a()
+   return
+ 
+   entry fun_b(va)
+     call fun_c()
+   return
+ end subroutine volatile_test
+ 
+ subroutine fun_c ()
+   implicit none
+   call fun_a()  ! Must not require explicit interface
+   return
+ end subroutine fun_c
diff -Nrcpad gcc-13-20260513/libstdc++-v3/ChangeLog gcc-13-20260520/libstdc++-v3/ChangeLog
*** gcc-13-20260513/libstdc++-v3/ChangeLog	Wed May 13 22:32:16 2026
--- gcc-13-20260520/libstdc++-v3/ChangeLog	Wed May 20 22:32:14 2026
***************
*** 1,3 ****
--- 1,204 ----
+ 2026-05-14  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-04-24  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/std/chrono (chrono::__detail::__get_leap_second_info):
+ 	Update expiry date for leap seconds list.
+ 	* src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds):
+ 	Likewise.
+ 	* src/c++20/tzdata.zi: Import new file from 2026a release.
+ 
+ 2026-05-14  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-12-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/std/chrono (chrono::__detail::__get_leap_second_info):
+ 	Update expiry date for leap seconds list.
+ 	* src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds):
+ 	Likewise.
+ 	* src/c++20/tzdata.zi: Import new file from 2025c release.
+ 
+ 2026-05-14  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-06-11  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/120390
+ 	* include/bits/stl_construct.h (_Destroy_aux::__destroy_n): New
+ 	static member function.
+ 	(_Destroy_aux<true>::__destroy_n): Likewise.
+ 	(_Destroy_n_aux): Remove.
+ 	(_Destroy(ForwardIterator, ForwardIterator)): Remove
+ 	static_assert. Use is_trivially_destructible instead of
+ 	__has_trivial_destructor.
+ 	(_Destroy_n): Likewise. Use _Destroy_aux::__destroy_n instead of
+ 	_Destroy_n_aux::__destroy_n.
+ 	* testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
+ 	Adjust dg-error strings. Move destroy_n tests to ...
+ 	* testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_n_neg.cc:
+ 	New test.
+ 	* testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
+ 	Adjust dg-error strings.
+ 	* testsuite/23_containers/vector/cons/destructible_neg.cc:
+ 	Likewise.
+ 
+ 2026-05-14  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-12-02  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/stl_construct.h (_Destroy(FwdIter, FwdIter)): Use
+ 	'if constexpr' instead of dispatching to a member function of a
+ 	class template.
+ 	(_Destroy_n(FwdIter, Size)): Likewise.
+ 	(_Destroy_aux, _Destroy_n_aux): Only define for C++98.
+ 
+ 2026-05-14  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-03-22  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/stl_construct.h (construct_at): Guard
+ 	with feature test macros instead of just __cplusplus.
+ 
+ 2026-05-14  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-12-09  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/102259
+ 	* config/io/basic_file_stdio.cc (basic_file::xsgetn): Limit n to
+ 	_GLIBCXX_MAX_READ_SIZE if that macro is defined.
+ 	* config/os/bsd/darwin/os_defines.h (_GLIBCXX_MAX_READ_SIZE):
+ 	Define to INT_MAX-1.
+ 	* config/os/bsd/freebsd/os_defines.h (_GLIBCXX_MAX_READ_SIZE):
+ 	Likewise.
+ 
+ 2026-05-14  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-20  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* src/c++17/fs_path.cc (path::operator+=): Use pointer
+ 	comparison to detect aliasing instead of a loop.
+ 
+ 2026-05-14  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-05-06  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/120029
+ 	* src/c++17/fs_path.cc (path::operator+=(const path&)): Handle
+ 	parameters that alias the path or one of its components.
+ 	* testsuite/27_io/filesystem/path/concat/120029.cc: New test.
+ 	* testsuite/experimental/filesystem/path/concat/120029.cc: New
+ 	test.
+ 
+ 2026-05-14  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-05-19  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/120293
+ 	* include/bits/chrono_io.h (_M_format_to_ostream): Add special
+ 	case for local_time convertible to local_days.
+ 	* testsuite/std/time/clock/local/io.cc: Check formatting of
+ 	chrono::local_days.
+ 
+ 2026-05-14  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-07-30  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/chrono_io.h (__local_fmt_t): Remove unused
+ 	declaration.
+ 	(__formatter_chrono::_M_format_to_ostream): Add explicit
+ 	handling for specializations of __local_time_fmt, including the
+ 	time zone abbreviation in the output if __is_neg is true.
+ 	(formatter<chrono::tai_time<D>>::format): Add comment.
+ 	(formatter<chrono::gps_time<D>>::format): Likewise.
+ 	(formatter<chrono::__detail::__local_time_fmt::format): Call
+ 	_M_format with true for the __is_neg flag.
+ 	* testsuite/std/time/clock/gps/io.cc: Remove unused variable.
+ 	* testsuite/std/time/clock/local/io.cc: New file.
+ 	* testsuite/std/time/clock/system/io.cc: Check empty
+ 	chrono-specs.
+ 	* testsuite/std/time/clock/tai/io.cc: Likewise.
+ 	* testsuite/std/time/zoned_time/io.cc: Likewise.
+ 
+ 2026-05-14  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-13  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/121771
+ 	* include/std/tuple (tuple::tuple(const Elements&...)): Use
+ 	type_identity_t to prevent constructor being used for CTAD.
+ 	(tuple::tuple(allocator_arg_t, const A&, const Elements&...)):
+ 	Likewise.
+ 	* testsuite/20_util/tuple/cons/121771.cc: New test.
+ 
+ 2026-05-14  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-20  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/122567
+ 	* src/c++20/tzdb.cc (tzdb::current_zone): Loop over all trailing
+ 	components of /etc/localtime path. Use readlink instead of
+ 	std::filesystem::read_symlink.
+ 
+ 2026-05-14  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-01-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/123100
+ 	* include/std/sstream (basic_stringbuf::str()&&): Handle the
+ 	case where _M_string is not being used for the buffer.
+ 	* testsuite/27_io/basic_stringbuf/str/char/123100.cc: New test.
+ 
+ 2026-05-14  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-05  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/109965
+ 	* doc/doxygen/mainpage.html: Link to topics.html instead of
+ 	modules.html
+ 
+ 2026-05-14  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-12-18  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/118088
+ 	* include/bits/stl_queue.h (priority_queue(priority_queue&&)):
+ 	Clear the source object after moving from it.
+ 	(priority_queue(priority_queue&&, const Alloc&)): Likewise.
+ 	(operator=(priority_queue&&)): Likewise.
+ 	* testsuite/23_containers/priority_queue/118088.cc: New test.
+ 
+ 2026-05-14  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-07-08  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/118681
+ 	* src/c++17/memory_resource.cc (choose_block_size): New
+ 	function.
+ 	(synchronized_pool_resource::do_allocate): Use choose_block_size
+ 	to determine appropriate block size.
+ 	(synchronized_pool_resource::do_deallocate): Likewise
+ 	(unsynchronized_pool_resource::do_allocate): Likewise.
+ 	(unsynchronized_pool_resource::do_deallocate): Likewise
+ 	* testsuite/20_util/synchronized_pool_resource/118681.cc: New
+ 	test.
+ 	* testsuite/20_util/unsynchronized_pool_resource/118681.cc: New
+ 	test.
+ 
  2026-03-22  Jakub Jelinek  <jakub@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-13-20260513/libstdc++-v3/config/io/basic_file_stdio.cc gcc-13-20260520/libstdc++-v3/config/io/basic_file_stdio.cc
*** gcc-13-20260513/libstdc++-v3/config/io/basic_file_stdio.cc	Wed May 13 22:32:16 2026
--- gcc-13-20260520/libstdc++-v3/config/io/basic_file_stdio.cc	Wed May 20 22:32:14 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 336,341 ****
--- 336,347 ----
      if (__ret == 0 && ferror(this->file()))
        __ret = -1;
  #else
+ 
+ #ifdef _GLIBCXX_MAX_READ_SIZE
+     if (__builtin_expect(__n > _GLIBCXX_MAX_READ_SIZE, 0))
+       __n = _GLIBCXX_MAX_READ_SIZE;
+ #endif
+ 
      do
        __ret = read(this->fd(), __s, __n);
      while (__ret == -1L && errno == EINTR);
diff -Nrcpad gcc-13-20260513/libstdc++-v3/config/os/bsd/darwin/os_defines.h gcc-13-20260520/libstdc++-v3/config/os/bsd/darwin/os_defines.h
*** gcc-13-20260513/libstdc++-v3/config/os/bsd/darwin/os_defines.h	Wed May 13 22:32:16 2026
--- gcc-13-20260520/libstdc++-v3/config/os/bsd/darwin/os_defines.h	Wed May 20 22:32:14 2026
***************
*** 54,57 ****
--- 54,60 ----
  // No support for referencing weak symbols without a definition.
  #define _GLIBCXX_USE_WEAK_REF 0
  
+ // read(2) can return EINVAL for n >= INT_MAX.
+ #define _GLIBCXX_MAX_READ_SIZE (__INT_MAX__ - 1)
+ 
  #endif
diff -Nrcpad gcc-13-20260513/libstdc++-v3/config/os/bsd/freebsd/os_defines.h gcc-13-20260520/libstdc++-v3/config/os/bsd/freebsd/os_defines.h
*** gcc-13-20260513/libstdc++-v3/config/os/bsd/freebsd/os_defines.h	Wed May 13 22:32:16 2026
--- gcc-13-20260520/libstdc++-v3/config/os/bsd/freebsd/os_defines.h	Wed May 20 22:32:14 2026
***************
*** 40,43 ****
--- 40,46 ----
  #define _GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_CHECK 1
  #define _GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC defined _XOPEN_SOURCE
  
+ // read(2) can return EINVAL for n >= INT_MAX.
+ #define _GLIBCXX_MAX_READ_SIZE (__INT_MAX__ - 1)
+ 
  #endif
diff -Nrcpad gcc-13-20260513/libstdc++-v3/doc/doxygen/mainpage.html gcc-13-20260520/libstdc++-v3/doc/doxygen/mainpage.html
*** gcc-13-20260513/libstdc++-v3/doc/doxygen/mainpage.html	Wed May 13 22:32:16 2026
--- gcc-13-20260520/libstdc++-v3/doc/doxygen/mainpage.html	Wed May 20 22:32:14 2026
***************
*** 38,44 ****
  
  <p>Here are entry points to all the pages generated by Doxygen:
     <ul>
!     <li><a href="modules.html">Modules</a></li>
  
      <li>Namespaces
      <ul>
--- 38,44 ----
  
  <p>Here are entry points to all the pages generated by Doxygen:
     <ul>
!     <li><a href="topics.html">Topics</a></li>
  
      <li>Namespaces
      <ul>
diff -Nrcpad gcc-13-20260513/libstdc++-v3/include/bits/chrono_io.h gcc-13-20260520/libstdc++-v3/include/bits/chrono_io.h
*** gcc-13-20260513/libstdc++-v3/include/bits/chrono_io.h	Wed May 13 22:32:16 2026
--- gcc-13-20260520/libstdc++-v3/include/bits/chrono_io.h	Wed May 20 22:32:15 2026
*************** namespace __detail
*** 155,160 ****
--- 155,161 ----
  namespace __detail
  {
    // An unspecified type returned by `chrono::local_time_format`.
+   // This is called `local-time-format-t` in the standard.
    template<typename _Duration>
      struct __local_time_fmt
      {
*************** namespace __detail
*** 162,169 ****
        const string* _M_abbrev;
        const seconds* _M_offset_sec;
      };
- 
-   struct __local_fmt_t;
  }
  /// @endcond
  
--- 163,168 ----
*************** namespace __format
*** 690,702 ****
  	  using ::std::chrono::__detail::__utc_leap_second;
  	  using ::std::chrono::__detail::__local_time_fmt;
  
  	  if constexpr (__is_specialization_of<_Tp, __local_time_fmt>)
- 	    return _M_format_to_ostream(__t._M_time, __fc, false);
- 	  else
  	    {
! 	      basic_ostringstream<_CharT> __os;
! 	      __os.imbue(_M_locale(__fc));
  
  	      if constexpr (__is_specialization_of<_Tp, __utc_leap_second>)
  		__os << __t._M_date << ' ' << __t._M_time;
  	      else if constexpr (chrono::__is_time_point_v<_Tp>)
--- 689,722 ----
  	  using ::std::chrono::__detail::__utc_leap_second;
  	  using ::std::chrono::__detail::__local_time_fmt;
  
+ 	  basic_ostringstream<_CharT> __os;
+ 	  __os.imbue(_M_locale(__fc));
+ 
  	  if constexpr (__is_specialization_of<_Tp, __local_time_fmt>)
  	    {
! 	      // Format as "{:L%F %T}"
! 	      auto __days = chrono::floor<chrono::days>(__t._M_time);
! 	      __os << chrono::year_month_day(__days) << ' '
! 		   << chrono::hh_mm_ss(__t._M_time - __days);
  
+ 	      // For __local_time_fmt the __is_neg flags says whether to
+ 	      // append " %Z" to the result.
+ 	      if (__is_neg)
+ 		{
+ 		  if (!__t._M_abbrev) [[unlikely]]
+ 		    __format::__no_timezone_available();
+ 		  else if constexpr (is_same_v<_CharT, char>)
+ 		    __os << ' ' << *__t._M_abbrev;
+ 		  else
+ 		    {
+ 		      __os << L' ';
+ 		      for (char __c : *__t._M_abbrev)
+ 			__os << __c;
+ 		    }
+ 		}
+ 	    }
+ 	  else
+ 	    {
  	      if constexpr (__is_specialization_of<_Tp, __utc_leap_second>)
  		__os << __t._M_date << ' ' << __t._M_time;
  	      else if constexpr (chrono::__is_time_point_v<_Tp>)
*************** namespace __format
*** 708,713 ****
--- 728,736 ----
  		  // sys_time with period greater or equal to days:
  		  if constexpr (is_convertible_v<_Tp, chrono::sys_days>)
  		    __os << _S_date(__t);
+ 		  // Or a local_time with period greater or equal to days:
+ 		  else if constexpr (is_convertible_v<_Tp, chrono::local_days>)
+ 		    __os << _S_date(__t);
  		  else // Or it's formatted as "{:L%F %T}":
  		    {
  		      auto __days = chrono::floor<chrono::days>(__t);
*************** namespace __format
*** 722,732 ****
  		      __os << _S_plus_minus[1];
  		  __os << __t;
  		}
- 
- 	      auto __str = std::move(__os).str();
- 	      return __format::__write_padded_as_spec(__str, __str.size(),
- 						      __fc, _M_spec);
  	    }
  	}
  
        static constexpr const _CharT* _S_chars
--- 745,755 ----
  		      __os << _S_plus_minus[1];
  		  __os << __t;
  		}
  	    }
+ 
+ 	  auto __str = std::move(__os).str();
+ 	  return __format::__write_padded_as_spec(__str, __str.size(),
+ 						  __fc, _M_spec);
  	}
  
        static constexpr const _CharT* _S_chars
*************** namespace __format
*** 2023,2028 ****
--- 2046,2053 ----
  	       _FormatContext& __fc) const
  	{
  	  // Convert to __local_time_fmt with abbrev "TAI" and offset 0s.
+ 	  // We use __local_time_fmt and not sys_time (as the standard implies)
+ 	  // because %Z for sys_time would print "UTC" and we want "TAI" here.
  
  	  // Offset is 1970y/January/1 - 1958y/January/1
  	  constexpr chrono::days __tai_offset = chrono::days(4383);
*************** namespace __format
*** 2053,2058 ****
--- 2078,2085 ----
  	       _FormatContext& __fc) const
  	{
  	  // Convert to __local_time_fmt with abbrev "GPS" and offset 0s.
+ 	  // We use __local_time_fmt and not sys_time (as the standard implies)
+ 	  // because %Z for sys_time would print "UTC" and we want "GPS" here.
  
  	  // Offset is 1980y/January/Sunday[1] - 1970y/January/1
  	  constexpr chrono::days __gps_offset = chrono::days(3657);
*************** namespace __format
*** 2119,2125 ****
  	typename _FormatContext::iterator
  	format(const chrono::__detail::__local_time_fmt<_Duration>& __t,
  	       _FormatContext& __ctx) const
! 	{ return _M_f._M_format(__t, __ctx); }
  
      private:
        __format::__formatter_chrono<_CharT> _M_f;
--- 2146,2152 ----
  	typename _FormatContext::iterator
  	format(const chrono::__detail::__local_time_fmt<_Duration>& __t,
  	       _FormatContext& __ctx) const
! 	{ return _M_f._M_format(__t, __ctx, /* use %Z for {} */ true); }
  
      private:
        __format::__formatter_chrono<_CharT> _M_f;
diff -Nrcpad gcc-13-20260513/libstdc++-v3/include/bits/stl_construct.h gcc-13-20260520/libstdc++-v3/include/bits/stl_construct.h
*** gcc-13-20260513/libstdc++-v3/include/bits/stl_construct.h	Wed May 13 22:32:16 2026
--- gcc-13-20260520/libstdc++-v3/include/bits/stl_construct.h	Wed May 20 22:32:15 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 88,94 ****
  	__location->~_Tp();
      }
  
! #if __cplusplus >= 202002L
    template<typename _Tp, typename... _Args>
      constexpr auto
      construct_at(_Tp* __location, _Args&&... __args)
--- 88,94 ----
  	__location->~_Tp();
      }
  
! #if __cpp_constexpr_dynamic_alloc // >= C++20
    template<typename _Tp, typename... _Args>
      constexpr auto
      construct_at(_Tp* __location, _Args&&... __args)
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 108,114 ****
      inline void
      _Construct(_Tp* __p, _Args&&... __args)
      {
! #if __cplusplus >= 202002L
        if (std::__is_constant_evaluated())
  	{
  	  // Allow std::_Construct to be used in constant expressions.
--- 108,114 ----
      inline void
      _Construct(_Tp* __p, _Args&&... __args)
      {
! #if __cpp_constexpr_dynamic_alloc // >= C++20
        if (std::__is_constant_evaluated())
  	{
  	  // Allow std::_Construct to be used in constant expressions.
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 145,157 ****
      _GLIBCXX14_CONSTEXPR inline void
      _Destroy(_Tp* __pointer)
      {
! #if __cplusplus > 201703L
        std::destroy_at(__pointer);
  #else
        __pointer->~_Tp();
  #endif
      }
  
    template<bool>
      struct _Destroy_aux
      {
--- 145,161 ----
      _GLIBCXX14_CONSTEXPR inline void
      _Destroy(_Tp* __pointer)
      {
! #if __cpp_constexpr_dynamic_alloc // >= C++20
        std::destroy_at(__pointer);
  #else
        __pointer->~_Tp();
  #endif
      }
  
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wc++17-extensions" // for if-constexpr
+ 
+ #if __cplusplus < 201103L
    template<bool>
      struct _Destroy_aux
      {
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 162,167 ****
--- 166,180 ----
  	  for (; __first != __last; ++__first)
  	    std::_Destroy(std::__addressof(*__first));
  	}
+ 
+       template<typename _ForwardIterator, typename _Size>
+ 	static _GLIBCXX20_CONSTEXPR _ForwardIterator
+ 	__destroy_n(_ForwardIterator __first, _Size __count)
+ 	{
+ 	  for (; __count > 0; (void)++__first, --__count)
+ 	    std::_Destroy(std::__addressof(*__first));
+ 	  return __first;
+ 	}
      };
  
    template<>
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 170,176 ****
--- 183,198 ----
        template<typename _ForwardIterator>
          static void
          __destroy(_ForwardIterator, _ForwardIterator) { }
+ 
+       template<typename _ForwardIterator, typename _Size>
+ 	static _ForwardIterator
+ 	__destroy_n(_ForwardIterator __first, _Size __count)
+ 	{
+ 	  std::advance(__first, __count);
+ 	  return __first;
+ 	}
      };
+ #endif
  
    /**
     * Destroy a range of objects.  If the value_type of the object has
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 184,226 ****
        typedef typename iterator_traits<_ForwardIterator>::value_type
                         _Value_type;
  #if __cplusplus >= 201103L
!       // A deleted destructor is trivial, this ensures we reject such types:
!       static_assert(is_destructible<_Value_type>::value,
! 		    "value type is destructible");
! #endif
! #if __cplusplus >= 202002L
!       if (std::__is_constant_evaluated())
! 	return std::_Destroy_aux<false>::__destroy(__first, __last);
  #endif
        std::_Destroy_aux<__has_trivial_destructor(_Value_type)>::
  	__destroy(__first, __last);
      }
  
-   template<bool>
-     struct _Destroy_n_aux
-     {
-       template<typename _ForwardIterator, typename _Size>
- 	static _GLIBCXX20_CONSTEXPR _ForwardIterator
- 	__destroy_n(_ForwardIterator __first, _Size __count)
- 	{
- 	  for (; __count > 0; (void)++__first, --__count)
- 	    std::_Destroy(std::__addressof(*__first));
- 	  return __first;
- 	}
-     };
- 
-   template<>
-     struct _Destroy_n_aux<true>
-     {
-       template<typename _ForwardIterator, typename _Size>
-         static _ForwardIterator
-         __destroy_n(_ForwardIterator __first, _Size __count)
- 	{
- 	  std::advance(__first, __count);
- 	  return __first;
- 	}
-     };
- 
    /**
     * Destroy a range of objects.  If the value_type of the object has
     * a trivial destructor, the compiler should optimize all of this
--- 206,225 ----
        typedef typename iterator_traits<_ForwardIterator>::value_type
                         _Value_type;
  #if __cplusplus >= 201103L
!       if constexpr (!is_trivially_destructible<_Value_type>::value)
! 	for (; __first != __last; ++__first)
! 	  std::_Destroy(std::__addressof(*__first));
! #if __cpp_constexpr_dynamic_alloc // >= C++20
!       else if (std::__is_constant_evaluated())
! 	for (; __first != __last; ++__first)
! 	  std::destroy_at(std::__addressof(*__first));
  #endif
+ #else
        std::_Destroy_aux<__has_trivial_destructor(_Value_type)>::
  	__destroy(__first, __last);
+ #endif
      }
  
    /**
     * Destroy a range of objects.  If the value_type of the object has
     * a trivial destructor, the compiler should optimize all of this
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 233,249 ****
        typedef typename iterator_traits<_ForwardIterator>::value_type
                         _Value_type;
  #if __cplusplus >= 201103L
!       // A deleted destructor is trivial, this ensures we reject such types:
!       static_assert(is_destructible<_Value_type>::value,
! 		    "value type is destructible");
! #endif
! #if __cplusplus >= 202002L
!       if (std::__is_constant_evaluated())
! 	return std::_Destroy_n_aux<false>::__destroy_n(__first, __count);
  #endif
!       return std::_Destroy_n_aux<__has_trivial_destructor(_Value_type)>::
  	__destroy_n(__first, __count);
      }
  
  #if __cplusplus >= 201703L
    template <typename _ForwardIterator>
--- 232,254 ----
        typedef typename iterator_traits<_ForwardIterator>::value_type
                         _Value_type;
  #if __cplusplus >= 201103L
!       if constexpr (!is_trivially_destructible<_Value_type>::value)
! 	for (; __count > 0; (void)++__first, --__count)
! 	  std::_Destroy(std::__addressof(*__first));
! #if __cpp_constexpr_dynamic_alloc // >= C++20
!       else if (std::__is_constant_evaluated())
! 	for (; __count > 0; (void)++__first, --__count)
! 	  std::destroy_at(std::__addressof(*__first));
  #endif
!       else
! 	std::advance(__first, __count);
!       return __first;
! #else
!       return std::_Destroy_aux<__has_trivial_destructor(_Value_type)>::
  	__destroy_n(__first, __count);
+ #endif
      }
+ #pragma GCC diagnostic pop
  
  #if __cplusplus >= 201703L
    template <typename _ForwardIterator>
diff -Nrcpad gcc-13-20260513/libstdc++-v3/include/bits/stl_queue.h gcc-13-20260520/libstdc++-v3/include/bits/stl_queue.h
*** gcc-13-20260513/libstdc++-v3/include/bits/stl_queue.h	Wed May 13 22:32:16 2026
--- gcc-13-20260520/libstdc++-v3/include/bits/stl_queue.h	Wed May 20 22:32:15 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 566,571 ****
--- 566,591 ----
        : c(std::move(__s)), comp(__x)
        { std::make_heap(c.begin(), c.end(), comp); }
  
+       priority_queue(const priority_queue&) = default;
+       priority_queue& operator=(const priority_queue&) = default;
+ 
+       priority_queue(priority_queue&& __q)
+       noexcept(__and_<is_nothrow_move_constructible<_Sequence>,
+ 		      is_nothrow_move_constructible<_Compare>>::value)
+       : c(std::move(__q.c)), comp(std::move(__q.comp))
+       { __q.c.clear(); }
+ 
+       priority_queue&
+       operator=(priority_queue&& __q)
+       noexcept(__and_<is_nothrow_move_assignable<_Sequence>,
+ 		      is_nothrow_move_assignable<_Compare>>::value)
+       {
+ 	c = std::move(__q.c);
+ 	__q.c.clear();
+ 	comp = std::move(__q.comp);
+ 	return *this;
+       }
+ 
        template<typename _Alloc, typename _Requires = _Uses<_Alloc>>
  	explicit
  	priority_queue(const _Alloc& __a)
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 594,600 ****
  
        template<typename _Alloc, typename _Requires = _Uses<_Alloc>>
  	priority_queue(priority_queue&& __q, const _Alloc& __a)
! 	: c(std::move(__q.c), __a), comp(std::move(__q.comp)) { }
  #endif
  
        /**
--- 614,621 ----
  
        template<typename _Alloc, typename _Requires = _Uses<_Alloc>>
  	priority_queue(priority_queue&& __q, const _Alloc& __a)
! 	: c(std::move(__q.c), __a), comp(std::move(__q.comp))
! 	{ __q.c.clear(); }
  #endif
  
        /**
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 609,616 ****
         *  the copy according to @a __x.
         *
         *  For more information on function objects, see the
!        *  documentation on @link functors functor base
!        *  classes@endlink.
         */
  #if __cplusplus < 201103L
        template<typename _InputIterator>
--- 630,636 ----
         *  the copy according to @a __x.
         *
         *  For more information on function objects, see the
!        *  documentation on @link functors functor base classes@endlink.
         */
  #if __cplusplus < 201103L
        template<typename _InputIterator>
diff -Nrcpad gcc-13-20260513/libstdc++-v3/include/std/chrono gcc-13-20260520/libstdc++-v3/include/std/chrono
*** gcc-13-20260513/libstdc++-v3/include/std/chrono	Wed May 13 22:32:16 2026
--- gcc-13-20260520/libstdc++-v3/include/std/chrono	Wed May 20 22:32:15 2026
*************** namespace __detail
*** 3253,3259 ****
        };
        // The list above is known to be valid until (at least) this date
        // and only contains positive leap seconds.
!       const sys_seconds __expires(1766880000s); // 2025-12-28 00:00:00 UTC
  
  #if _GLIBCXX_USE_CXX11_ABI || ! _GLIBCXX_USE_DUAL_ABI
        if (__ss > __expires)
--- 3253,3259 ----
        };
        // The list above is known to be valid until (at least) this date
        // and only contains positive leap seconds.
!       constexpr sys_seconds __expires(1798416000s); // 2026-12-28 00:00:00 UTC
  
  #if _GLIBCXX_USE_CXX11_ABI || ! _GLIBCXX_USE_DUAL_ABI
        if (__ss > __expires)
diff -Nrcpad gcc-13-20260513/libstdc++-v3/include/std/sstream gcc-13-20260520/libstdc++-v3/include/std/sstream
*** gcc-13-20260513/libstdc++-v3/include/std/sstream	Wed May 13 22:32:16 2026
--- gcc-13-20260520/libstdc++-v3/include/std/sstream	Wed May 20 22:32:15 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 273,280 ****
        {
  	if (char_type* __hi = _M_high_mark())
  	  {
! 	    // Set length to end of character sequence and add null terminator.
! 	    _M_string._M_set_length(_M_high_mark() - this->pbase());
  	  }
  	auto __str = std::move(_M_string);
  	_M_string.clear();
--- 273,283 ----
        {
  	if (char_type* __hi = _M_high_mark())
  	  {
! 	    if (_M_string.data() == this->pbase()) [[likely]]
! 	      // Set length to end of sequence and add null terminator.
! 	      _M_string._M_set_length(__hi - this->pbase());
! 	    else
! 	      _M_string.assign(this->pbase(), __hi);
  	  }
  	auto __str = std::move(_M_string);
  	_M_string.clear();
diff -Nrcpad gcc-13-20260513/libstdc++-v3/include/std/tuple gcc-13-20260520/libstdc++-v3/include/std/tuple
*** gcc-13-20260513/libstdc++-v3/include/std/tuple	Wed May 13 22:32:16 2026
--- gcc-13-20260520/libstdc++-v3/include/std/tuple	Wed May 20 22:32:15 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 871,884 ****
        template<bool _NotEmpty = (sizeof...(_Elements) >= 1),
  	       _ImplicitCtor<_NotEmpty, const _Elements&...> = true>
  	constexpr
! 	tuple(const _Elements&... __elements)
  	noexcept(__nothrow_constructible<const _Elements&...>())
  	: _Inherited(__elements...) { }
  
        template<bool _NotEmpty = (sizeof...(_Elements) >= 1),
  	       _ExplicitCtor<_NotEmpty, const _Elements&...> = false>
  	explicit constexpr
! 	tuple(const _Elements&... __elements)
  	noexcept(__nothrow_constructible<const _Elements&...>())
  	: _Inherited(__elements...) { }
  
--- 871,884 ----
        template<bool _NotEmpty = (sizeof...(_Elements) >= 1),
  	       _ImplicitCtor<_NotEmpty, const _Elements&...> = true>
  	constexpr
! 	tuple(const __type_identity_t<_Elements>&... __elements)
  	noexcept(__nothrow_constructible<const _Elements&...>())
  	: _Inherited(__elements...) { }
  
        template<bool _NotEmpty = (sizeof...(_Elements) >= 1),
  	       _ExplicitCtor<_NotEmpty, const _Elements&...> = false>
  	explicit constexpr
! 	tuple(const __type_identity_t<_Elements>&... __elements)
  	noexcept(__nothrow_constructible<const _Elements&...>())
  	: _Inherited(__elements...) { }
  
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 982,988 ****
  	       _ImplicitCtor<_NotEmpty, const _Elements&...> = true>
  	_GLIBCXX20_CONSTEXPR
  	tuple(allocator_arg_t __tag, const _Alloc& __a,
! 	      const _Elements&... __elements)
  	: _Inherited(__tag, __a, __elements...) { }
  
        template<typename _Alloc, bool _NotEmpty = (sizeof...(_Elements) >= 1),
--- 982,988 ----
  	       _ImplicitCtor<_NotEmpty, const _Elements&...> = true>
  	_GLIBCXX20_CONSTEXPR
  	tuple(allocator_arg_t __tag, const _Alloc& __a,
! 	      const __type_identity_t<_Elements>&... __elements)
  	: _Inherited(__tag, __a, __elements...) { }
  
        template<typename _Alloc, bool _NotEmpty = (sizeof...(_Elements) >= 1),
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 990,996 ****
  	_GLIBCXX20_CONSTEXPR
  	explicit
  	tuple(allocator_arg_t __tag, const _Alloc& __a,
! 	      const _Elements&... __elements)
  	: _Inherited(__tag, __a, __elements...) { }
  
        template<typename _Alloc, typename... _UElements,
--- 990,996 ----
  	_GLIBCXX20_CONSTEXPR
  	explicit
  	tuple(allocator_arg_t __tag, const _Alloc& __a,
! 	      const __type_identity_t<_Elements>&... __elements)
  	: _Inherited(__tag, __a, __elements...) { }
  
        template<typename _Alloc, typename... _UElements,
diff -Nrcpad gcc-13-20260513/libstdc++-v3/src/c++17/fs_path.cc gcc-13-20260520/libstdc++-v3/src/c++17/fs_path.cc
*** gcc-13-20260513/libstdc++-v3/src/c++17/fs_path.cc	Wed May 13 22:32:16 2026
--- gcc-13-20260520/libstdc++-v3/src/c++17/fs_path.cc	Wed May 20 22:32:15 2026
*************** path::operator+=(const path& p)
*** 866,871 ****
--- 866,883 ----
        return *this;
      }
  
+   // Handle p += p which would otherwise access dangling pointers after
+   // reallocating _M_cmpts and _M_pathname.
+   if (&p == this) [[unlikely]]
+     return *this += p.native();
+   // Handle p += *i where i is in [p.begin(),p.end()), for the same reason.
+   if (_M_type() == _Type::_Multi && p._M_type() != _Type::_Multi)
+     {
+       const auto first = _M_cmpts.begin(), last = first + _M_cmpts.size();
+       if (!std::less<>()(&p, first) && std::less<>()(&p, last)) [[unlikely]]
+ 	return *this += p.native();
+     }
+ 
  #if _GLIBCXX_FILESYSTEM_IS_WINDOWS
    if (_M_type() == _Type::_Root_name
        || (_M_type() == _Type::_Filename && _M_pathname.size() == 1))
diff -Nrcpad gcc-13-20260513/libstdc++-v3/src/c++17/memory_resource.cc gcc-13-20260520/libstdc++-v3/src/c++17/memory_resource.cc
*** gcc-13-20260513/libstdc++-v3/src/c++17/memory_resource.cc	Wed May 13 22:32:16 2026
--- gcc-13-20260520/libstdc++-v3/src/c++17/memory_resource.cc	Wed May 20 22:32:15 2026
*************** namespace pmr
*** 178,185 ****
    // versions will not use this symbol.
    monotonic_buffer_resource::~monotonic_buffer_resource() { release(); }
  
!   namespace {
! 
    // aligned_size<N> stores the size and alignment of a memory allocation.
    // The size must be a multiple of N, leaving the low log2(N) bits free
    // to store the base-2 logarithm of the alignment.
--- 178,185 ----
    // versions will not use this symbol.
    monotonic_buffer_resource::~monotonic_buffer_resource() { release(); }
  
! namespace
! {
    // aligned_size<N> stores the size and alignment of a memory allocation.
    // The size must be a multiple of N, leaving the low log2(N) bits free
    // to store the base-2 logarithm of the alignment.
*************** namespace pmr
*** 217,223 ****
      return (n + alignment - 1) & ~(alignment - 1);
    }
  
!   } // namespace
  
    // Memory allocated by the upstream resource is managed in a linked list
    // of _Chunk objects. A _Chunk object recording the size and alignment of
--- 217,223 ----
      return (n + alignment - 1) & ~(alignment - 1);
    }
  
! } // namespace
  
    // Memory allocated by the upstream resource is managed in a linked list
    // of _Chunk objects. A _Chunk object recording the size and alignment of
*************** namespace pmr
*** 303,310 ****
  
    // Helper types for synchronized_pool_resource & unsynchronized_pool_resource
  
!   namespace {
! 
    // Simple bitset with runtime size.
    // Tracks which blocks in a pool chunk are used/unused.
    struct bitset
--- 303,310 ----
  
    // Helper types for synchronized_pool_resource & unsynchronized_pool_resource
  
! namespace
! {
    // Simple bitset with runtime size.
    // Tracks which blocks in a pool chunk are used/unused.
    struct bitset
*************** namespace pmr
*** 631,637 ****
  
    static_assert(sizeof(big_block) == (2 * sizeof(void*)));
  
!   } // namespace
  
    // A pool that serves blocks of a particular size.
    // Each pool manages a number of chunks.
--- 631,637 ----
  
    static_assert(sizeof(big_block) == (2 * sizeof(void*)));
  
! } // namespace
  
    // A pool that serves blocks of a particular size.
    // Each pool manages a number of chunks.
*************** namespace pmr
*** 863,869 ****
      using big_block::big_block;
    };
  
!   namespace {
  
    constexpr size_t pool_sizes[] = {
        8, 16, 24,
--- 863,878 ----
      using big_block::big_block;
    };
  
! namespace
! {
!   // N.B. it is important that we don't skip any power of two sizes if there
!   // is a non-power of two size between them, e.g. must not have pool sizes
!   // of 24 and 40 without having a pool size of 32. Otherwise an allocation
!   // of 32 bytes with alignment 16 would choose the 40-byte pool which is not
!   // correctly aligned for 16-byte alignment. It would be OK (but suboptimal)
!   // to have no pool of size 32 if we have pool sizes of 16 and 64 and no
!   // non-power of two sizes between those, because the example of (32, 16)
!   // would choose the 64-byte pool, which would be correctly aligned.
  
    constexpr size_t pool_sizes[] = {
        8, 16, 24,
*************** namespace pmr
*** 978,984 ****
    using exclusive_lock = lock_guard<shared_mutex>;
  #endif
  
!   } // namespace
  
    __pool_resource::
    __pool_resource(const pool_options& opts, memory_resource* upstream)
--- 987,993 ----
    using exclusive_lock = lock_guard<shared_mutex>;
  #endif
  
! } // namespace
  
    __pool_resource::
    __pool_resource(const pool_options& opts, memory_resource* upstream)
*************** namespace pmr
*** 1070,1081 ****
      return p;
    }
  
  #ifdef _GLIBCXX_HAS_GTHREADS
    // synchronized_pool_resource members.
  
    /* Notes on implementation and thread safety:
     *
!    * Each synchronized_pool_resource manages an linked list of N+1 _TPools
     * objects, where N is the number of threads using the pool resource.
     * Each _TPools object has its own set of pools, with their own chunks.
     * The first element of the list, _M_tpools[0], can be used by any thread.
--- 1079,1111 ----
      return p;
    }
  
+   // Determine the appropriate allocation size, rounding up to a multiple
+   // of the alignment if needed.
+   static inline size_t
+   choose_block_size(size_t bytes, size_t alignment)
+   {
+     if (bytes == 0) [[unlikely]]
+       return alignment;
+ 
+     // Use bit_ceil in case alignment is invalid (i.e. not a power of two).
+     size_t mask = std::__bit_ceil(alignment) - 1;
+     // Round up to a multiple of alignment.
+     size_t block_size = (bytes + mask) & ~mask;
+ 
+     if (block_size >= bytes) [[likely]]
+       return block_size;
+ 
+     // Wrapped around to zero, bytes must have been impossibly large.
+     return numeric_limits<size_t>::max();
+   }
+ 
+ 
  #ifdef _GLIBCXX_HAS_GTHREADS
    // synchronized_pool_resource members.
  
    /* Notes on implementation and thread safety:
     *
!    * Each synchronized_pool_resource manages a linked list of N+1 _TPools
     * objects, where N is the number of threads using the pool resource.
     * Each _TPools object has its own set of pools, with their own chunks.
     * The first element of the list, _M_tpools[0], can be used by any thread.
*************** namespace pmr
*** 1242,1248 ****
    synchronized_pool_resource::
    do_allocate(size_t bytes, size_t alignment)
    {
!     const auto block_size = std::max(bytes, alignment);
      const pool_options opts = _M_impl._M_opts;
      if (block_size <= opts.largest_required_pool_block)
        {
--- 1272,1278 ----
    synchronized_pool_resource::
    do_allocate(size_t bytes, size_t alignment)
    {
!     const auto block_size = choose_block_size(bytes, alignment);
      const pool_options opts = _M_impl._M_opts;
      if (block_size <= opts.largest_required_pool_block)
        {
*************** namespace pmr
*** 1289,1295 ****
    synchronized_pool_resource::
    do_deallocate(void* p, size_t bytes, size_t alignment)
    {
!     size_t block_size = std::max(bytes, alignment);
      if (block_size <= _M_impl._M_opts.largest_required_pool_block)
        {
  	const ptrdiff_t index = pool_index(block_size, _M_impl._M_npools);
--- 1319,1325 ----
    synchronized_pool_resource::
    do_deallocate(void* p, size_t bytes, size_t alignment)
    {
!     size_t block_size = choose_block_size(bytes, alignment);
      if (block_size <= _M_impl._M_opts.largest_required_pool_block)
        {
  	const ptrdiff_t index = pool_index(block_size, _M_impl._M_npools);
*************** namespace pmr
*** 1448,1454 ****
    void*
    unsynchronized_pool_resource::do_allocate(size_t bytes, size_t alignment)
    {
!     const auto block_size = std::max(bytes, alignment);
      if (block_size <= _M_impl._M_opts.largest_required_pool_block)
        {
  	// Recreate pools if release() has been called:
--- 1478,1484 ----
    void*
    unsynchronized_pool_resource::do_allocate(size_t bytes, size_t alignment)
    {
!     const auto block_size = choose_block_size(bytes, alignment);
      if (block_size <= _M_impl._M_opts.largest_required_pool_block)
        {
  	// Recreate pools if release() has been called:
*************** namespace pmr
*** 1465,1471 ****
    unsynchronized_pool_resource::
    do_deallocate(void* p, size_t bytes, size_t alignment)
    {
!     size_t block_size = std::max(bytes, alignment);
      if (block_size <= _M_impl._M_opts.largest_required_pool_block)
        {
  	if (auto pool = _M_find_pool(block_size))
--- 1495,1501 ----
    unsynchronized_pool_resource::
    do_deallocate(void* p, size_t bytes, size_t alignment)
    {
!     size_t block_size = choose_block_size(bytes, alignment);
      if (block_size <= _M_impl._M_opts.largest_required_pool_block)
        {
  	if (auto pool = _M_find_pool(block_size))
diff -Nrcpad gcc-13-20260513/libstdc++-v3/src/c++20/tzdata.zi gcc-13-20260520/libstdc++-v3/src/c++20/tzdata.zi
*** gcc-13-20260513/libstdc++-v3/src/c++20/tzdata.zi	Wed May 13 22:32:16 2026
--- gcc-13-20260520/libstdc++-v3/src/c++20/tzdata.zi	Wed May 20 22:32:15 2026
***************
*** 1,4 ****
! # version 2025b
  # This zic input file is in the public domain.
  R d 1916 o - Jun 14 23s 1 S
  R d 1916 1919 - O Su>=1 23s 0 -
--- 1,5 ----
! # version 2026a
! # redo posix_only
  # This zic input file is in the public domain.
  R d 1916 o - Jun 14 23s 1 S
  R d 1916 1919 - O Su>=1 23s 0 -
*************** R MT 1974 o - S 16 0s 0 -
*** 1304,1311 ****
  R MT 1975 1979 - Ap Su>=15 2 1 S
  R MT 1975 1980 - S Su>=15 2 0 -
  R MT 1980 o - Mar 31 2 1 S
! R MD 1997 ma - Mar lastSu 2 1 S
! R MD 1997 ma - O lastSu 3 0 -
  R O 1918 1919 - S 16 2s 0 -
  R O 1919 o - Ap 15 2s 1 S
  R O 1944 o - Ap 3 2s 1 S
--- 1305,1312 ----
  R MT 1975 1979 - Ap Su>=15 2 1 S
  R MT 1975 1980 - S Su>=15 2 0 -
  R MT 1980 o - Mar 31 2 1 S
! R MD 1997 2021 - Mar lastSu 2 1 S
! R MD 1997 2021 - O lastSu 3 0 -
  R O 1918 1919 - S 16 2s 0 -
  R O 1919 o - Ap 15 2s 1 S
  R O 1944 o - Ap 3 2s 1 S
*************** Z America/Tijuana -7:48:4 - LMT 1922 Ja
*** 2951,2959 ****
  -8 1 PDT 1951 S 30 2
  -8 - PST 1952 Ap 27 2
  -8 1 PDT 1952 S 28 2
! -8 - PST 1954
! -8 CA P%sT 1961
! -8 - PST 1976
  -8 u P%sT 1996
  -8 m P%sT 2001
  -8 u P%sT 2002 F 20
--- 2952,2958 ----
  -8 1 PDT 1951 S 30 2
  -8 - PST 1952 Ap 27 2
  -8 1 PDT 1952 S 28 2
! -8 CA P%sT 1967
  -8 u P%sT 1996
  -8 m P%sT 2001
  -8 u P%sT 2002 F 20
*************** Z Europe/Chisinau 1:55:20 - LMT 1880
*** 3668,3674 ****
  3 R MSK/MSD 1990 May 6 2
  2 R EE%sT 1992
  2 e EE%sT 1997
! 2 MD EE%sT
  Z Europe/Dublin -0:25:21 - LMT 1880 Au 2
  -0:25:21 - DMT 1916 May 21 2s
  -0:25:21 1 IST 1916 O 1 2s
--- 3667,3674 ----
  3 R MSK/MSD 1990 May 6 2
  2 R EE%sT 1992
  2 e EE%sT 1997
! 2 MD EE%sT 2022
! 2 E EE%sT
  Z Europe/Dublin -0:25:21 - LMT 1880 Au 2
  -0:25:21 - DMT 1916 May 21 2s
  -0:25:21 1 IST 1916 O 1 2s
diff -Nrcpad gcc-13-20260513/libstdc++-v3/src/c++20/tzdb.cc gcc-13-20260520/libstdc++-v3/src/c++20/tzdb.cc
*** gcc-13-20260513/libstdc++-v3/src/c++20/tzdb.cc	Wed May 13 22:32:16 2026
--- gcc-13-20260520/libstdc++-v3/src/c++20/tzdb.cc	Wed May 20 22:32:15 2026
***************
*** 35,41 ****
  #include <atomic>     // atomic<T*>, atomic<int>
  #include <memory>     // atomic<shared_ptr<T>>
  #include <mutex>      // mutex
! #include <filesystem> // filesystem::read_symlink
  
  #ifdef _AIX
  # include <cstdlib>   // getenv
--- 35,45 ----
  #include <atomic>     // atomic<T*>, atomic<int>
  #include <memory>     // atomic<shared_ptr<T>>
  #include <mutex>      // mutex
! #include <iomanip>    // quoted
! 
! #if defined(_GLIBCXX_HAVE_READLINK) && defined(_GLIBCXX_HAVE_UNISTD_H)
! # include <unistd.h>  // readlink
! #endif
  
  #ifdef _AIX
  # include <cstdlib>   // getenv
*************** namespace std::chrono
*** 1191,1198 ****
    pair<vector<leap_second>, bool>
    tzdb_list::_Node::_S_read_leap_seconds()
    {
!     // This list is valid until at least 2025-12-28 00:00:00 UTC.
!     auto expires = sys_days{2025y/12/28};
      vector<leap_second> leaps
      {
        (leap_second)  78796800, // 1 Jul 1972
--- 1195,1202 ----
    pair<vector<leap_second>, bool>
    tzdb_list::_Node::_S_read_leap_seconds()
    {
!     // This list is valid until at least 2026-12-28 00:00:00 UTC.
!     constexpr auto expires = sys_days{2026y/12/28};
      vector<leap_second> leaps
      {
        (leap_second)  78796800, // 1 Jul 1972
*************** namespace std::chrono
*** 1737,1764 ****
    tzdb::current_zone() const
    {
      // TODO cache this function's result?
  
  #ifndef _AIX
!     // Repeat the preprocessor condition used by filesystem::read_symlink,
!     // to avoid a dependency on src/c++17/fs_ops.o if it won't work anyway.
! #if defined(_GLIBCXX_HAVE_READLINK) && defined(_GLIBCXX_HAVE_SYS_STAT_H)
!     error_code ec;
!     // This should be a symlink to e.g. /usr/share/zoneinfo/Europe/London
!     auto path = filesystem::read_symlink("/etc/localtime", ec);
!     if (!ec)
        {
! 	auto first = path.begin(), last = path.end();
! 	if (std::distance(first, last) > 2)
  	  {
! 	    --last;
! 	    string name = last->string();
! 	    if (auto tz = do_locate_zone(this->zones, this->links, name))
! 	      return tz;
! 	    --last;
! 	    name = last->string() + '/' + name;
! 	    if (auto tz = do_locate_zone(this->zones, this->links, name))
  	      return tz;
  	  }
        }
  #endif
      // Otherwise, look for a file naming the time zone.
--- 1741,1828 ----
    tzdb::current_zone() const
    {
      // TODO cache this function's result?
+     // Could check the modification time of /etc/localtime, and not re-read
+     // it if it hasn't changed. reload_tzdb() could clear the cache too,
+     // to have a way to force a re-read.
  
  #ifndef _AIX
! #if defined(_GLIBCXX_HAVE_READLINK) && defined(_GLIBCXX_HAVE_UNISTD_H)
!     string_view str;
!     char buf[128]; // strlen("../usr/share/zoneinfo/...") is usually < 55
!     string dynbuf;
!     // /etc/localtime should be a symlink that ends with a zone name,
!     // e.g. /etc/localtime -> /usr/share/zoneinfo/Europe/London
!     // https://www.freedesktop.org/software/systemd/man/latest/localtime.html
!     // This should work on GNU/Linux, macOS, NetBSD, and OpenBSD.
!     // Some FreeBSD systems also use a symlink for /etc/localtime.
!     // Use readlink directly to avoid std::filesystem overhead.
!     if (auto n = ::readlink("/etc/localtime", buf, sizeof(buf)); n > 0)
        {
! 	if (static_cast<size_t>(n) < sizeof(buf))
! 	  str = string_view(buf, n);
! 	else [[unlikely]]
  	  {
! 	    // We read the symlink but it didn't fit in buf[], use dynbuf.
! 	    do
! 	      {
! 		n *= 2;
! 		dynbuf.resize(n);
! 		// In gcc-14 and later this uses dynbuf.__resize_and_overwrite:
! 		{
! 		  auto n2 = ::readlink("/etc/localtime", dynbuf.data(), n);
! 		  if (n2 == -1) // symlink removed or replaced by file?!
! 		    __throw_runtime_error("tzdb: error reading /etc/localtime");
! 		  dynbuf.resize(n2 < n ? n2 : 0);
! 		}
! 	      }
! 	    while (dynbuf.empty());
! 	    str = dynbuf;
! 	  }
!       }
! 
!     if (!str.empty())
!       {
! 	// Remove any redundant slashes so we can match zone names.
! 	// e.g. /usr/share/zoneinfo/Europe//London is a valid symlink,
! 	// but won't match against "Europe/London".
! 	if (auto pos = str.rfind("//"); pos != str.npos) [[unlikely]]
! 	  {
! 	    if (str.data() != dynbuf.data())
! 	      dynbuf = str;
! 	    string::size_type spos = pos;
! 	    do
! 	      {
! 		dynbuf.erase(spos, 1);
! 		spos = dynbuf.rfind("//", spos);
! 	      }
! 	    while (spos != dynbuf.npos);
! 	    str = dynbuf;
! 	  }
! 
! 	// Check the trailing components of the path against known zone names.
! 	// Valid IANA times zones can have one, two, or three parts, e.g.
! 	// "UTC", "Europe/London", and "America/Indiana/Indianapolis".
! 	// Custom tzdata.zi files could in theory use four or more parts.
! 
! 	auto pos = str.rfind('/');
! 	while (pos != str.npos && pos != 0)
! 	  {
! 	    if (auto tz = do_locate_zone(this->zones, this->links,
! 					 str.substr(pos + 1)))
  	      return tz;
+ 	    pos = str.rfind('/', pos - 1);
  	  }
+ 	// If we didn't match yet, try once more so that we will match
+ 	// a symlink to a relative path such as "Europe/London"
+ 	// or symlink to an absolute path such as "/Europe/London".
+ 	// Both cases seem unlikely because it would require either
+ 	// /etc/Europe or /Europe to be a directory (or a symlink to one)
+ 	// containing the TZif files, but it's theoretically possible.
+ 	// If pos==npos then pos+1 wraps to 0 and we use the whole string.
+ 	// If pos==0 then substr(1) discards the leading slash.
+ 	if (auto tz = do_locate_zone(this->zones, this->links,
+ 				     str.substr(pos + 1)))
+ 	  return tz;
        }
  #endif
      // Otherwise, look for a file naming the time zone.
*************** namespace std::chrono
*** 1795,1801 ****
  		  return tz;
  	      }
        }
! #else
      // AIX stores current zone in $TZ in /etc/environment but the value
      // is typically a POSIX time zone name, not IANA zone.
      // https://developer.ibm.com/articles/au-aix-posix/
--- 1859,1870 ----
  		  return tz;
  	      }
        }
! 
!     // FIXME: For DragonFly BSD /etc/localtime is a copy of one of the
!     // zone files in /usr/share/zoneinfo so we need to compare its contents
!     // to each one until we find a match.
! 
! #else // _AIX
      // AIX stores current zone in $TZ in /etc/environment but the value
      // is typically a POSIX time zone name, not IANA zone.
      // https://developer.ibm.com/articles/au-aix-posix/
diff -Nrcpad gcc-13-20260513/libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_n_neg.cc gcc-13-20260520/libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_n_neg.cc
*** gcc-13-20260513/libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_n_neg.cc	Thu Jan  1 00:00:00 1970
--- gcc-13-20260520/libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_n_neg.cc	Wed May 20 22:32:15 2026
***************
*** 0 ****
--- 1,59 ----
+ // Copyright (C) 2017-2025 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+ // terms of the GNU General Public License as published by the
+ // Free Software Foundation; either version 3, or (at your option)
+ // any later version.
+ 
+ // This library is distributed in the hope that it will be useful,
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ // GNU General Public License for more details.
+ 
+ // You should have received a copy of the GNU General Public License along
+ // with this library; see the file COPYING3.  If not see
+ // <http://www.gnu.org/licenses/>.
+ 
+ // { dg-do compile { target c++17 } }
+ 
+ #include <memory>
+ 
+ // This has a trivial destructor, but should not be destructible!
+ struct DeletedDtor {
+   ~DeletedDtor() = delete;
+ };
+ 
+ void
+ test01()
+ {
+   alignas(DeletedDtor) unsigned char buf[sizeof(DeletedDtor)];
+   auto p = ::new (buf) DeletedDtor();
+   std::destroy_n(p, 1);
+ }
+ 
+ class PrivateDtor {
+   ~PrivateDtor() { }
+ };
+ 
+ void
+ test02()
+ {
+   alignas(PrivateDtor) unsigned char buf[sizeof(PrivateDtor)];
+   auto p = ::new (buf) PrivateDtor();
+   std::destroy_n(p, 1);
+ }
+ 
+ #if __cpp_constexpr_dynamic_alloc // >= C++20
+ consteval bool
+ test03()
+ {
+   DeletedDtor* p = nullptr;
+   std::destroy_n(p, 0);
+   return true;
+ }
+ static_assert(test03());
+ #endif
+ 
+ // { dg-error "deleted function .*DeletedDtor" "" { target *-*-* } 0 }
+ // { dg-error "PrivateDtor.* is private" "" { target *-*-* } 0 }
diff -Nrcpad gcc-13-20260513/libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc gcc-13-20260520/libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc
*** gcc-13-20260513/libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc	Wed May 13 22:32:16 2026
--- gcc-13-20260520/libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc	Wed May 20 22:32:15 2026
*************** test01()
*** 29,36 ****
  {
    alignas(DeletedDtor) unsigned char buf[sizeof(DeletedDtor)];
    auto p = ::new (buf) DeletedDtor();
!   std::destroy(p, p + 1);	// { dg-error "here" }
!   std::destroy_n(p, 1);		// { dg-error "here" }
  }
  
  class PrivateDtor {
--- 29,35 ----
  {
    alignas(DeletedDtor) unsigned char buf[sizeof(DeletedDtor)];
    auto p = ::new (buf) DeletedDtor();
!   std::destroy(p, p + 1);
  }
  
  class PrivateDtor {
*************** test02()
*** 42,49 ****
  {
    alignas(PrivateDtor) unsigned char buf[sizeof(PrivateDtor)];
    auto p = ::new (buf) PrivateDtor();
!   std::destroy(p, p + 1);	// { dg-error "here" }
!   std::destroy_n(p, 1);		// { dg-error "here" }
  }
  
! // { dg-error "value type is destructible" "" { target *-*-* } 0 }
--- 41,59 ----
  {
    alignas(PrivateDtor) unsigned char buf[sizeof(PrivateDtor)];
    auto p = ::new (buf) PrivateDtor();
!   std::destroy(p, p + 1);
  }
  
! #if __cpp_constexpr_dynamic_alloc // >= C++20
! consteval bool
! test03()
! {
!   DeletedDtor* p = nullptr;
!   std::destroy(p, p);
!   return true;
! }
! static_assert(test03());
! #endif
! 
! // { dg-error "deleted function .*DeletedDtor" "" { target *-*-* } 0 }
! // { dg-error "PrivateDtor.* is private" "" { target *-*-* } 0 }
diff -Nrcpad gcc-13-20260513/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/118681.cc gcc-13-20260520/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/118681.cc
*** gcc-13-20260513/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/118681.cc	Thu Jan  1 00:00:00 1970
--- gcc-13-20260520/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/118681.cc	Wed May 20 22:32:15 2026
***************
*** 0 ****
--- 1,6 ----
+ // { dg-do run { target c++17 } }
+ // { dg-require-gthreads "" }
+ // Bug 118681 - unsynchronized_pool_resource may fail to respect alignment
+ 
+ #define RESOURCE std::pmr::synchronized_pool_resource
+ #include "../unsynchronized_pool_resource/118681.cc"
diff -Nrcpad gcc-13-20260513/libstdc++-v3/testsuite/20_util/tuple/cons/121771.cc gcc-13-20260520/libstdc++-v3/testsuite/20_util/tuple/cons/121771.cc
*** gcc-13-20260513/libstdc++-v3/testsuite/20_util/tuple/cons/121771.cc	Thu Jan  1 00:00:00 1970
--- gcc-13-20260520/libstdc++-v3/testsuite/20_util/tuple/cons/121771.cc	Wed May 20 22:32:15 2026
***************
*** 0 ****
--- 1,45 ----
+ // { dg-do compile { target c++17 } }
+ 
+ // Bug 121771 - std::tuple CTAD fails for lvalue reference to function type
+ 
+ #include <tuple>
+ #include <memory>
+ 
+ void func();
+ 
+ std::tuple t(func);
+ std::tuple<void (*)()>& r = t;
+ 
+ struct Explicit {
+     Explicit();
+     explicit Explicit(const Explicit&);
+ } ex;
+ 
+ std::tuple t2(func, 1);
+ std::tuple<void (*)(), int>& r2 = t2;
+ 
+ std::tuple t2x(ex, func);
+ std::tuple<Explicit, void (*)()>& r2x = t2x;
+ 
+ std::tuple t3(1, func, 3);
+ std::tuple<int, void (*)(), int>& r3 = t3;
+ 
+ std::tuple t3x(ex, 2, func);
+ std::tuple<Explicit, int, void (*)()>& r3x = t3x;
+ 
+ std::allocator<int> alloc;
+ 
+ std::tuple ta(std::allocator_arg, alloc, func);
+ std::tuple<void (*)()>& ra = ta;
+ 
+ std::tuple ta2(std::allocator_arg, alloc, func, 1);
+ std::tuple<void (*)(), int>& ra2 = ta2;
+ 
+ std::tuple ta2x(std::allocator_arg, alloc, ex, func);
+ std::tuple<Explicit, void (*)()>& ra2x = ta2x;
+ 
+ std::tuple ta3(std::allocator_arg, alloc, 1, func, 3);
+ std::tuple<int, void (*)(), int>& ra3 = ta3;
+ 
+ std::tuple ta3x(std::allocator_arg, alloc, ex, 2, func);
+ std::tuple<Explicit, int, void (*)()>& ra3x = ta3x;
diff -Nrcpad gcc-13-20260513/libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/118681.cc gcc-13-20260520/libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/118681.cc
*** gcc-13-20260513/libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/118681.cc	Thu Jan  1 00:00:00 1970
--- gcc-13-20260520/libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/118681.cc	Wed May 20 22:32:15 2026
***************
*** 0 ****
--- 1,58 ----
+ // { dg-do run { target c++17 } }
+ // Bug 118681 - unsynchronized_pool_resource may fail to respect alignment
+ 
+ #include <memory_resource>
+ #include <cstdio>
+ #include <testsuite_hooks.h>
+ 
+ #ifndef RESOURCE
+ # define RESOURCE std::pmr::unsynchronized_pool_resource
+ #endif
+ 
+ bool any_misaligned = false;
+ 
+ bool
+ is_aligned(void* p, [[maybe_unused]] std::size_t size, std::size_t alignment)
+ {
+   const bool misaligned = reinterpret_cast<std::uintptr_t>(p) % alignment;
+ #ifdef DEBUG
+   std::printf("allocate(%2zu, %2zu): %p is aligned %scorrectly\n",
+ 	      size, alignment, p, misaligned ? "in" : "");
+   any_misaligned |= misaligned;
+   return true;
+ #endif
+   return ! misaligned;
+ }
+ 
+ void
+ test_alignment(std::pmr::memory_resource& res, bool dealloc)
+ {
+   for (std::size_t alignment : { 8, 16, 32, 64 })
+   {
+     for (std::size_t size : { 9, 12, 24, 40, 48, 56, 72 })
+     {
+       void* p1 = res.allocate(size, alignment);
+       void* p2 = res.allocate(size, alignment);
+ 
+       VERIFY( is_aligned(p1, size, alignment) );
+       VERIFY( is_aligned(p2, size, alignment) );
+ 
+       if (dealloc)
+       {
+ 	res.deallocate(p1, size, alignment);
+ 	res.deallocate(p2, size, alignment);
+       }
+     }
+   }
+ }
+ 
+ int main()
+ {
+   RESOURCE res;
+   test_alignment(res, true);
+   res.release();
+   test_alignment(res, false);
+   res.release();
+ 
+   VERIFY( ! any_misaligned );
+ }
diff -Nrcpad gcc-13-20260513/libstdc++-v3/testsuite/23_containers/priority_queue/118088.cc gcc-13-20260520/libstdc++-v3/testsuite/23_containers/priority_queue/118088.cc
*** gcc-13-20260513/libstdc++-v3/testsuite/23_containers/priority_queue/118088.cc	Thu Jan  1 00:00:00 1970
--- gcc-13-20260520/libstdc++-v3/testsuite/23_containers/priority_queue/118088.cc	Wed May 20 22:32:15 2026
***************
*** 0 ****
--- 1,83 ----
+ // { dg-do run { target c++11 } }
+ 
+ #include <queue>
+ #include <vector>
+ #include <testsuite_hooks.h>
+ 
+ template<typename T, typename Seq>
+ bool
+ check(std::priority_queue<T, Seq>& p)
+ {
+   if (!p.empty())
+     {
+       T prev = p.top();
+       p.pop();
+       while (!p.empty())
+ 	{
+ 	  if ( prev < p.top() )
+ 	    return false;
+ 	  prev = p.top();
+ 	  p.pop();
+ 	}
+     }
+   return true;
+ }
+ 
+ // A vector-like type that has a non-empty moved-from state.
+ struct Vector : std::vector<int>
+ {
+   using Base = std::vector<int>;
+ 
+   using Base::Base;
+ 
+   Vector(const Vector&) = default;
+   Vector& operator=(const Vector&) = default;
+ 
+   Vector(Vector&& v) : Base(static_cast<const Base&>(v))
+   {
+     invalidate_heap(v);
+   }
+ 
+   Vector(Vector&& v, const std::allocator<int>&)
+   : Base(static_cast<const Base&>(v))
+   {
+     invalidate_heap(v);
+   }
+ 
+   Vector&
+   operator=(Vector&& v)
+   {
+     static_cast<Base&>(*this) = static_cast<const Base&>(v);
+     invalidate_heap(v);
+     return *this;
+   }
+ 
+   void invalidate_heap(Base& v) { v = {1,2,3}; }
+ };
+ 
+ void
+ test_moves()
+ {
+   std::priority_queue<int, Vector> p;
+   p.push(1);
+   p.push(3);
+   p.push(5);
+   p.push(2);
+   p.push(2);
+   p.push(2);
+   p.push(2);
+   std::priority_queue<int, Vector> p2 = std::move(p);
+   VERIFY( check(p) );
+ 
+   // Allocator-extended move constructor:
+   std::priority_queue<int, Vector> p3(std::move(p2), std::allocator<int>());
+   VERIFY( check(p2) );
+ 
+   p2 = std::move(p3);
+   VERIFY( check(p3) );
+ }
+ 
+ int main()
+ {
+   test_moves();
+ }
diff -Nrcpad gcc-13-20260513/libstdc++-v3/testsuite/23_containers/vector/cons/destructible_debug_neg.cc gcc-13-20260520/libstdc++-v3/testsuite/23_containers/vector/cons/destructible_debug_neg.cc
*** gcc-13-20260513/libstdc++-v3/testsuite/23_containers/vector/cons/destructible_debug_neg.cc	Wed May 13 22:32:17 2026
--- gcc-13-20260520/libstdc++-v3/testsuite/23_containers/vector/cons/destructible_debug_neg.cc	Wed May 20 22:32:15 2026
*************** test02()
*** 43,53 ****
    std::vector<PrivateDtor> v;
  }
  
! // { dg-error "value type is destructible" "" { target *-*-* } 0 }
  
  // In Debug Mode the "required from here" errors come from <debug/vector>
  // { dg-error "required from here" "" { target *-*-* } 172 }
- 
- // Needed because of PR c++/92193
- // { dg-prune-output "deleted function" }
- // { dg-prune-output "private within this context" }
--- 43,50 ----
    std::vector<PrivateDtor> v;
  }
  
! // { dg-error "deleted function .*DeletedDtor" "" { target *-*-* } 0 }
! // { dg-error "PrivateDtor.* is private" "" { target *-*-* } 0 }
  
  // In Debug Mode the "required from here" errors come from <debug/vector>
  // { dg-error "required from here" "" { target *-*-* } 172 }
diff -Nrcpad gcc-13-20260513/libstdc++-v3/testsuite/23_containers/vector/cons/destructible_neg.cc gcc-13-20260520/libstdc++-v3/testsuite/23_containers/vector/cons/destructible_neg.cc
*** gcc-13-20260513/libstdc++-v3/testsuite/23_containers/vector/cons/destructible_neg.cc	Wed May 13 22:32:17 2026
--- gcc-13-20260520/libstdc++-v3/testsuite/23_containers/vector/cons/destructible_neg.cc	Wed May 20 22:32:15 2026
*************** test02()
*** 42,49 ****
    std::vector<PrivateDtor> v; // { dg-error "here" }
  }
  
! // { dg-error "value type is destructible" "" { target *-*-* } 0 }
! 
! // Needed because of PR c++/92193
! // { dg-prune-output "deleted function" }
! // { dg-prune-output "private within this context" }
--- 42,46 ----
    std::vector<PrivateDtor> v; // { dg-error "here" }
  }
  
! // { dg-error "deleted function .*DeletedDtor" "" { target *-*-* } 0 }
! // { dg-error "PrivateDtor.* is private" "" { target *-*-* } 0 }
diff -Nrcpad gcc-13-20260513/libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/123100.cc gcc-13-20260520/libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/123100.cc
*** gcc-13-20260513/libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/123100.cc	Thu Jan  1 00:00:00 1970
--- gcc-13-20260520/libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/123100.cc	Wed May 20 22:32:15 2026
***************
*** 0 ****
--- 1,58 ----
+ // { dg-do run }
+ 
+ #include <sstream>
+ #include <testsuite_hooks.h>
+ 
+ void
+ test01()
+ {
+   const int n = 20;
+   const char data[n] = "abcde";
+   char buf[n] = "0123456789";
+   std::string expected("abcde56789\0\0\0\0\0\0\0\0\0\0", n);
+ 
+   std::ostringstream out;
+   out.rdbuf()->pubsetbuf(buf, n);
+   out << data;
+   VERIFY( out.str() == expected );
+   VERIFY( out.str() == expected );
+ #if __cplusplus >= 201103L
+   VERIFY( std::move(out).str() == expected );
+ #if __cplusplus >= 202002L && _GLIBCXX_USE_CXX11_ABI
+   expected.clear();
+ #endif
+   VERIFY( out.str() == expected );
+   VERIFY( std::move(out).str() == expected );
+ #endif
+ }
+ 
+ void
+ test02()
+ {
+   const int n = 20;
+   const char data[n] = "abcde";
+   char buf[n] = "0123456789";
+   std::string expected("abcde56789\0\0\0\0\0\0\0\0\0\0", n);
+ 
+   std::ostringstream out;
+   out << std::string(n * 2, 'a');
+   VERIFY( out.str() == std::string(n * 2, 'a') );
+   out.rdbuf()->pubsetbuf(buf, n);
+   out << data; // writes 6 chars
+   VERIFY( out.str() == expected );
+   VERIFY( out.str() == expected );
+ #if __cplusplus >= 201103L
+   VERIFY( std::move(out).str() == expected );
+ #if __cplusplus >= 202002L && _GLIBCXX_USE_CXX11_ABI
+   expected.clear();
+ #endif
+   VERIFY( out.str() == expected );
+   VERIFY( std::move(out).str() == expected );
+ #endif
+ }
+ 
+ int main()
+ {
+   test01();
+   test02();
+ }
diff -Nrcpad gcc-13-20260513/libstdc++-v3/testsuite/27_io/filesystem/path/concat/120029.cc gcc-13-20260520/libstdc++-v3/testsuite/27_io/filesystem/path/concat/120029.cc
*** gcc-13-20260513/libstdc++-v3/testsuite/27_io/filesystem/path/concat/120029.cc	Thu Jan  1 00:00:00 1970
--- gcc-13-20260520/libstdc++-v3/testsuite/27_io/filesystem/path/concat/120029.cc	Wed May 20 22:32:15 2026
***************
*** 0 ****
--- 1,72 ----
+ // { dg-do run { target c++17 } }
+ 
+ // Bug libstdc++/120029
+ // Dangling iterator usage in path::operator+=(const path& p) when this == p
+ 
+ #include <filesystem>
+ #include <testsuite_hooks.h>
+ 
+ namespace fs = std::filesystem;
+ 
+ void
+ test_root_dir()
+ {
+   fs::path p = "/";
+   p += p;
+   p += p;
+   VERIFY( p == "////" );
+   p += p.filename();
+   VERIFY( p == "////" );
+   p += *std::prev(p.end());
+   VERIFY( p == "////" );
+ }
+ 
+ void
+ test_root_name()
+ {
+   fs::path p = "C:/";
+   p += p;
+   p += p;
+   VERIFY( p == "C:/C:/C:/C:/" );
+   p += p.filename();
+   VERIFY( p == "C:/C:/C:/C:/" );
+   p += *std::prev(p.end());
+   VERIFY( p == "C:/C:/C:/C:/" );
+ }
+ 
+ void
+ test_filename()
+ {
+   fs::path p = "file";
+   p += p;
+   p += p;
+   VERIFY( p == "filefilefilefile" );
+   p += p.filename();
+   VERIFY( p == "filefilefilefilefilefilefilefile" );
+   p += *std::prev(p.end());
+   VERIFY( p == "filefilefilefilefilefilefilefilefilefilefilefilefilefilefilefile" );
+ }
+ 
+ void
+ test_multi()
+ {
+   fs::path p = "/home/username/Documents/mu";
+   p += p;
+   p += p;
+   VERIFY( p == "/home/username/Documents/mu/home/username/Documents/mu/home/username/Documents/mu/home/username/Documents/mu" );
+   p += p.filename();
+   VERIFY( p == "/home/username/Documents/mu/home/username/Documents/mu/home/username/Documents/mu/home/username/Documents/mumu" );
+   p += *std::prev(p.end());
+   VERIFY( p == "/home/username/Documents/mu/home/username/Documents/mu/home/username/Documents/mu/home/username/Documents/mumumumu" );
+   auto n = std::distance(p.begin(), p.end());
+   for (int i = 0; i < n; ++i)
+     p += *std::next(p.begin(), i);
+ }
+ 
+ int main()
+ {
+   test_root_dir();
+   test_root_name();
+   test_filename();
+   test_multi();
+ }
diff -Nrcpad gcc-13-20260513/libstdc++-v3/testsuite/experimental/filesystem/path/concat/120029.cc gcc-13-20260520/libstdc++-v3/testsuite/experimental/filesystem/path/concat/120029.cc
*** gcc-13-20260513/libstdc++-v3/testsuite/experimental/filesystem/path/concat/120029.cc	Thu Jan  1 00:00:00 1970
--- gcc-13-20260520/libstdc++-v3/testsuite/experimental/filesystem/path/concat/120029.cc	Wed May 20 22:32:15 2026
***************
*** 0 ****
--- 1,74 ----
+ // { dg-options "-DUSE_FILESYSTEM_TS -lstdc++fs" }
+ // { dg-do run { target c++11 } }
+ // { dg-require-filesystem-ts "" }
+ 
+ // Bug libstdc++/120029
+ // Dangling iterator usage in path::operator+=(const path& p) when this == p
+ 
+ #include <experimental/filesystem>
+ #include <testsuite_hooks.h>
+ 
+ namespace fs = std::experimental::filesystem;
+ 
+ void
+ test_root_dir()
+ {
+   fs::path p = "/";
+   p += p;
+   p += p;
+   VERIFY( p == "////" );
+   p += p.filename();
+   VERIFY( p == "////////" );
+   p += *std::prev(p.end());
+   VERIFY( p == "////////////////" );
+ }
+ 
+ void
+ test_root_name()
+ {
+   fs::path p = "C:/";
+   p += p;
+   p += p;
+   VERIFY( p == "C:/C:/C:/C:/" );
+   p += p.filename(); // For Filesystem TS the filename is "."
+   VERIFY( p == "C:/C:/C:/C:/." );
+   p += *std::prev(p.end());
+   VERIFY( p == "C:/C:/C:/C:/.." );
+ }
+ 
+ void
+ test_filename()
+ {
+   fs::path p = "file";
+   p += p;
+   p += p;
+   VERIFY( p == "filefilefilefile" );
+   p += p.filename();
+   VERIFY( p == "filefilefilefilefilefilefilefile" );
+   p += *std::prev(p.end());
+   VERIFY( p == "filefilefilefilefilefilefilefilefilefilefilefilefilefilefilefile" );
+ }
+ 
+ void
+ test_multi()
+ {
+   fs::path p = "/home/username/Documents/mu";
+   p += p;
+   p += p;
+   VERIFY( p == "/home/username/Documents/mu/home/username/Documents/mu/home/username/Documents/mu/home/username/Documents/mu" );
+   p += p.filename();
+   VERIFY( p == "/home/username/Documents/mu/home/username/Documents/mu/home/username/Documents/mu/home/username/Documents/mumu" );
+   p += *std::prev(p.end());
+   VERIFY( p == "/home/username/Documents/mu/home/username/Documents/mu/home/username/Documents/mu/home/username/Documents/mumumumu" );
+   auto n = std::distance(p.begin(), p.end());
+   for (int i = 0; i < n; ++i)
+     p += *std::next(p.begin(), i);
+ }
+ 
+ int main()
+ {
+   test_root_dir();
+   test_root_name();
+   test_filename();
+   test_multi();
+ }
diff -Nrcpad gcc-13-20260513/libstdc++-v3/testsuite/std/time/clock/gps/io.cc gcc-13-20260520/libstdc++-v3/testsuite/std/time/clock/gps/io.cc
*** gcc-13-20260513/libstdc++-v3/testsuite/std/time/clock/gps/io.cc	Wed May 13 22:32:17 2026
--- gcc-13-20260520/libstdc++-v3/testsuite/std/time/clock/gps/io.cc	Wed May 20 22:32:15 2026
*************** test01()
*** 23,29 ****
    ss << gt;
    VERIFY( ss.str() == "2000-01-01 00:00:13" );
  
-   gps_time<duration<float>> gtf = gt;
    ss.str("");
    ss.clear();
    ss << (gps_time<duration<long double>>(gt) + 20ms);
--- 23,28 ----
diff -Nrcpad gcc-13-20260513/libstdc++-v3/testsuite/std/time/clock/local/io.cc gcc-13-20260520/libstdc++-v3/testsuite/std/time/clock/local/io.cc
*** gcc-13-20260513/libstdc++-v3/testsuite/std/time/clock/local/io.cc	Thu Jan  1 00:00:00 1970
--- gcc-13-20260520/libstdc++-v3/testsuite/std/time/clock/local/io.cc	Wed May 20 22:32:15 2026
***************
*** 0 ****
--- 1,102 ----
+ // { dg-options "-std=gnu++20" }
+ // { dg-do run { target c++20 } }
+ // { dg-timeout-factor 2 }
+ 
+ #include <chrono>
+ #include <format>
+ #include <testsuite_hooks.h>
+ 
+ void
+ test_ostream()
+ {
+   using namespace std::chrono;
+ 
+   auto lt = local_time<seconds>(1722198122s);
+ 
+   std::ostringstream ss;
+   ss << lt;
+   auto s = ss.str();
+   ss.str("");
+   ss.clear();
+   ss << sys_time<seconds>{lt.time_since_epoch()};
+   auto s2 = ss.str();
+   VERIFY( s == s2 );
+ }
+ 
+ void
+ test_format()
+ {
+   using std::format;
+   using namespace std::chrono;
+ 
+   auto lt = local_seconds(1722198122s);
+ 
+ #if __cpp_exceptions
+   auto args = std::make_format_args(lt);
+   try
+   {
+     (void) std::vformat("{:%Z}", args);
+     VERIFY(false);
+   }
+   catch (const std::format_error&)
+   {
+   }
+   try
+   {
+     (void) std::vformat("{:%z}", args);
+     VERIFY(false);
+   }
+   catch (const std::format_error&)
+   {
+   }
+ #endif
+ 
+   auto s = format("{0:%F %T %a}", lt);
+   VERIFY( s == "2024-07-28 20:22:02 Sun" );
+ 
+   s = format("{}", lt);
+   VERIFY( s == "2024-07-28 20:22:02" );
+ 
+   // Test formatting for chrono::local_time_format and local-time-format-t too:
+   auto ltf = local_time_format(lt);
+   s = std::format("{:%F %T %a %b}", ltf);
+   VERIFY( s == "2024-07-28 20:22:02 Sun Jul" );
+ #if __cpp_exceptions
+   try
+   {
+     (void) std::format("{:%Z}", ltf);
+     VERIFY(false);
+   }
+   catch (const std::format_error&)
+   {
+   }
+   try
+   {
+     (void) std::format("{:%z}", ltf);
+     VERIFY(false);
+   }
+   catch (const std::format_error&)
+   {
+   }
+ #endif
+   std::string abbrev = "FOO";
+   seconds off = -3600s;
+   ltf = local_time_format(lt, &abbrev, &off);
+   s = std::format("{}", ltf);
+   VERIFY( s == "2024-07-28 20:22:02 FOO" );
+   s = std::format("{:%Z %T %F %z %Ez}", ltf);
+   __builtin_puts(s.c_str());
+   VERIFY( s == "FOO 20:22:02 2024-07-28 -0100 -01:00" );
+ 
+   s = std::format("{}", local_seconds{});
+   VERIFY( s == "1970-01-01 00:00:00" );
+ 
+   s = std::format("{}", local_days{}); // PR libstdc++/120293
+   VERIFY( s == "1970-01-01" );
+ }
+ 
+ int main()
+ {
+   test_ostream();
+   test_format();
+ }
diff -Nrcpad gcc-13-20260513/libstdc++-v3/testsuite/std/time/clock/system/io.cc gcc-13-20260520/libstdc++-v3/testsuite/std/time/clock/system/io.cc
*** gcc-13-20260513/libstdc++-v3/testsuite/std/time/clock/system/io.cc	Wed May 13 22:32:17 2026
--- gcc-13-20260520/libstdc++-v3/testsuite/std/time/clock/system/io.cc	Wed May 20 22:32:15 2026
*************** test_format()
*** 65,77 ****
  		 " | 25.708 | 17:26:25.708 | 1 | 51 | 51 | 1 | 51 | 12/19/22"
  		 " | 17:26:25 | 22 | 2022 | +0000 | UTC" );
  
    auto loc = std::locale::classic();
    auto smod = std::format(loc, "{:%Ec %EC %Od %Oe %OH %OI %Om %OM %OS %Ou %OU"
  			       " %Ow %OW %Ex %EX %Oy %Ey %EY %Ez %Oz}", t);
    s = std::format("{:%c %C %d %e %H %I %m %M %S %u %U"
  		  " %w %W %x %X %y %y %Y +00:00 +00:00}",
! 		  std::chrono::time_point_cast<std::chrono::seconds>(t));
    VERIFY( smod == s );
  }
  
  int main()
--- 65,83 ----
  		 " | 25.708 | 17:26:25.708 | 1 | 51 | 51 | 1 | 51 | 12/19/22"
  		 " | 17:26:25 | 22 | 2022 | +0000 | UTC" );
  
+   auto st = std::chrono::time_point_cast<std::chrono::seconds>(t);
    auto loc = std::locale::classic();
    auto smod = std::format(loc, "{:%Ec %EC %Od %Oe %OH %OI %Om %OM %OS %Ou %OU"
  			       " %Ow %OW %Ex %EX %Oy %Ey %EY %Ez %Oz}", t);
    s = std::format("{:%c %C %d %e %H %I %m %M %S %u %U"
  		  " %w %W %x %X %y %y %Y +00:00 +00:00}",
! 		  st);
    VERIFY( smod == s );
+ 
+   s = std::format("{}", t);
+   VERIFY( s == "2022-12-19 17:26:25.708" );
+   s = std::format("{0:} {0:=<21}", st);
+   VERIFY( s == "2022-12-19 17:26:25 2022-12-19 17:26:25==" );
  }
  
  int main()
diff -Nrcpad gcc-13-20260513/libstdc++-v3/testsuite/std/time/clock/tai/io.cc gcc-13-20260520/libstdc++-v3/testsuite/std/time/clock/tai/io.cc
*** gcc-13-20260513/libstdc++-v3/testsuite/std/time/clock/tai/io.cc	Wed May 13 22:32:17 2026
--- gcc-13-20260520/libstdc++-v3/testsuite/std/time/clock/tai/io.cc	Wed May 20 22:32:15 2026
*************** test01()
*** 17,22 ****
--- 17,25 ----
  
    auto s = format("{0:%F %T %Z} == {1:%F %T %Z}", st, tt);
    VERIFY( s == "2000-01-01 00:00:00 UTC == 2000-01-01 00:00:32 TAI" );
+ 
+   s = std::format("{:=>21}", tt);
+   VERIFY( s == "==2000-01-01 00:00:32" );
  }
  
  int main()
diff -Nrcpad gcc-13-20260513/libstdc++-v3/testsuite/std/time/zoned_time/io.cc gcc-13-20260520/libstdc++-v3/testsuite/std/time/zoned_time/io.cc
*** gcc-13-20260513/libstdc++-v3/testsuite/std/time/zoned_time/io.cc	Wed May 13 22:32:17 2026
--- gcc-13-20260520/libstdc++-v3/testsuite/std/time/zoned_time/io.cc	Wed May 20 22:32:15 2026
*************** test_format()
*** 38,43 ****
--- 38,44 ----
  	       " | 25.708 | 12:26:25.708 | 1 | 51 | 51 | 1 | 51 | 12/19/22"
  	       " | 12:26:25 | 22 | 2022 | -0500 | EST" );
  
+ #ifdef _GLIBCXX_USE_WCHAR_T
    std::wstring ws = std::format(L"{:%a | %A | %b | %B | %c"
  				 " | %C | %d | %D | %e | %F | %g | %G | %h"
  				 " | %H | %I | %j | %m | %M | %p | %r | %R"
*************** test_format()
*** 48,53 ****
--- 49,55 ----
  		 " | 12 | 12 | 353 | 12 | 26 | PM | 12:26:25 PM | 12:26"
  		 " | 25.708 | 12:26:25.708 | 1 | 51 | 51 | 1 | 51 | 12/19/22"
  		 " | 12:26:25 | 22 | 2022 | -0500 | EST" );
+ #endif
  
    auto loc = std::locale::classic();
    auto smod = std::format(loc, "{:%Ec %EC %Od %Oe %OH %OI %Om %OM %OS %Ou %OU"
*************** test_format()
*** 56,61 ****
--- 58,72 ----
  		  " %w %W %x %X %y %y %Y -05:00 -05:00}",
  		  zoned_time<seconds>(zone, time_point_cast<seconds>(t)));
    VERIFY( smod == s );
+ 
+   s = std::format("{}", zt);
+   VERIFY( s == "2022-12-19 12:26:25.708 EST" );
+   s = std::format("{1:=>30}", 1, zt);
+   VERIFY( s == "===2022-12-19 12:26:25.708 EST" );
+ #ifdef _GLIBCXX_USE_WCHAR_T
+   ws = std::format(L"{:+^34}", zoned_time<microseconds>(zone, t));
+   VERIFY( ws == L"++2022-12-19 12:26:25.708000 EST++" );
+ #endif
  }
  
  int main()
