diff -Nrcpad gcc-15-20251213/LAST_UPDATED gcc-15-20251220/LAST_UPDATED
*** gcc-15-20251213/LAST_UPDATED	Sat Dec 13 22:32:20 2025
--- gcc-15-20251220/LAST_UPDATED	Sat Dec 20 22:32:19 2025
***************
*** 1 ****
! Obtained from git: releases/gcc-15 revision d3dd4de59f1e76fb4387d2d06149a4e60cf3b01c
--- 1 ----
! Obtained from git: releases/gcc-15 revision 89a05e96fbe45543fb435502e97562aee70496bd
diff -Nrcpad gcc-15-20251213/MD5SUMS gcc-15-20251220/MD5SUMS
*** gcc-15-20251213/MD5SUMS	Sat Dec 13 22:32:25 2025
--- gcc-15-20251220/MD5SUMS	Sat Dec 20 22:32:24 2025
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-15-20251213.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-15-20251220.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
*** 25,31 ****
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 3fe407d7f35ff97eef17074789a88406  LAST_UPDATED
  9d2cf5b58292c2e8b0804d3eafc2d6f3  MAINTAINERS
  b714b83dd28679b75c5fd3e619d35956  Makefile.def
  9d0808afc70085c5ca8d45062fc59689  Makefile.in
--- 25,31 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 579340af706fbfe3a621c3176c7f6871  LAST_UPDATED
  9d2cf5b58292c2e8b0804d3eafc2d6f3  MAINTAINERS
  b714b83dd28679b75c5fd3e619d35956  Makefile.def
  9d0808afc70085c5ca8d45062fc59689  Makefile.in
*************** a22e70b3f29292d0e628450f4bb11e62  fixinc
*** 514,520 ****
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! d05911c16eea68242410d6b7e1aa0bb9  gcc/ChangeLog
  51281e73aa07fb62394bd72f3c9299ba  gcc/ChangeLog-1997
  f77af8c9ac412064886b00c5506123b5  gcc/ChangeLog-1998
  00a2e4ead1b289bf69bca0196fed6f9f  gcc/ChangeLog-1999
--- 514,520 ----
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! b82bcc810bb6497bb283635fa6e5f759  gcc/ChangeLog
  51281e73aa07fb62394bd72f3c9299ba  gcc/ChangeLog-1997
  f77af8c9ac412064886b00c5506123b5  gcc/ChangeLog-1998
  00a2e4ead1b289bf69bca0196fed6f9f  gcc/ChangeLog-1999
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 551,557 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! d7ab401e4ecaff188e0ec97b4f1f9a50  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
--- 551,557 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 08d4bf028a27e354dc6e074110415f49  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** ec6799501b2eb2923d5de6a66169dbd2  gcc/ON
*** 563,569 ****
  cd96bf34cb76c97f86704a59b9ddb18a  gcc/acinclude.m4
  18db4664d7e31002aac43ebcf20e075f  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! cbc48bca86ccaac32827566c0b8a1a80  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
--- 563,569 ----
  cd96bf34cb76c97f86704a59b9ddb18a  gcc/acinclude.m4
  18db4664d7e31002aac43ebcf20e075f  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! f2b0107af1a15ba87eef477b531254ff  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
*************** b270d994d3afc78b194d5ab9ddd800c0  gcc/ad
*** 759,765 ****
  cc3a6ec62bea106872aef6143609f920  gcc/ada/exp_aggr.ads
  f5cfbe3c80cc2c7ded2440a52b2b9cf0  gcc/ada/exp_atag.adb
  17872534d797a09463e33092ff3c4b9c  gcc/ada/exp_atag.ads
! 21d2c4bba0a8e76e8fed08b94023fc91  gcc/ada/exp_attr.adb
  16622dd90fd58bfbfa68224d0bfaf8b2  gcc/ada/exp_attr.ads
  4cb08de59df5f8d0a124038dcbb392f0  gcc/ada/exp_cg.adb
  b18d9873e8e43583acd0e69ba6635023  gcc/ada/exp_cg.ads
--- 759,765 ----
  cc3a6ec62bea106872aef6143609f920  gcc/ada/exp_aggr.ads
  f5cfbe3c80cc2c7ded2440a52b2b9cf0  gcc/ada/exp_atag.adb
  17872534d797a09463e33092ff3c4b9c  gcc/ada/exp_atag.ads
! 75f9d4cd8780ae213f93e8b450c7c397  gcc/ada/exp_attr.adb
  16622dd90fd58bfbfa68224d0bfaf8b2  gcc/ada/exp_attr.ads
  4cb08de59df5f8d0a124038dcbb392f0  gcc/ada/exp_cg.adb
  b18d9873e8e43583acd0e69ba6635023  gcc/ada/exp_cg.ads
*************** e8ba734d63b4001c905ea24a0dc1b6a3  gcc/ad
*** 856,862 ****
  a74b4504c5ad4ed4e963f0691c289b40  gcc/ada/gcc-interface/system.ads
  b350a6fd65cafe8bd47dc42192437310  gcc/ada/gcc-interface/targtyps.cc
  da03d35f4d69ea6f735edce7df124c15  gcc/ada/gcc-interface/trans.cc
! e8e1dea48e7ee6c84d438db1b4a6a9b2  gcc/ada/gcc-interface/utils.cc
  7b0d708fd189018a87468ef844fc3811  gcc/ada/gcc-interface/utils2.cc
  20ab1d2ee73423b8b0fababbae54659c  gcc/ada/gen_il-fields.ads
  580645a6185724324a0a7aad4f86301c  gcc/ada/gen_il-gen-gen_entities.adb
--- 856,862 ----
  a74b4504c5ad4ed4e963f0691c289b40  gcc/ada/gcc-interface/system.ads
  b350a6fd65cafe8bd47dc42192437310  gcc/ada/gcc-interface/targtyps.cc
  da03d35f4d69ea6f735edce7df124c15  gcc/ada/gcc-interface/trans.cc
! 054d591deee18b8775aa2c7a898c8861  gcc/ada/gcc-interface/utils.cc
  7b0d708fd189018a87468ef844fc3811  gcc/ada/gcc-interface/utils2.cc
  20ab1d2ee73423b8b0fababbae54659c  gcc/ada/gen_il-fields.ads
  580645a6185724324a0a7aad4f86301c  gcc/ada/gen_il-gen-gen_entities.adb
*************** fd8e9517de64ab23821ea1284ea6d7f6  gcc/co
*** 4992,4998 ****
  b5e46305db1116cc1758b504ea37fe74  gcc/config/riscv/vector-bfloat16.md
  88f7597398d0c8b8b87baba5fd207996  gcc/config/riscv/vector-crypto.md
  243d8ebb633382b17c68b2758bbbae23  gcc/config/riscv/vector-iterators.md
! 0e5ade434c860bf54c1a26c07e2302f7  gcc/config/riscv/vector.md
  4ffde0be9b9a0efe78c98b4407d00397  gcc/config/riscv/xiangshan.md
  0f64aaa114ab62a1a46f7ac422d6a129  gcc/config/riscv/zc.md
  2a87e05e2432e50d410a6b774704755f  gcc/config/riscv/zicond.md
--- 4992,4998 ----
  b5e46305db1116cc1758b504ea37fe74  gcc/config/riscv/vector-bfloat16.md
  88f7597398d0c8b8b87baba5fd207996  gcc/config/riscv/vector-crypto.md
  243d8ebb633382b17c68b2758bbbae23  gcc/config/riscv/vector-iterators.md
! cb40d629af72a795da41939e5d0de822  gcc/config/riscv/vector.md
  4ffde0be9b9a0efe78c98b4407d00397  gcc/config/riscv/xiangshan.md
  0f64aaa114ab62a1a46f7ac422d6a129  gcc/config/riscv/zc.md
  2a87e05e2432e50d410a6b774704755f  gcc/config/riscv/zicond.md
*************** a9c3cddee4e237141062720b72fe38cd  gcc/co
*** 5500,5506 ****
  5d31df44fc0a5b17beb74ce0ff38e214  gcc/coroutine-passes.cc
  2a5216aefb9cdf4b270ef8e599cc794f  gcc/coverage.cc
  722fb5fda78e55c5af5da72cad78751f  gcc/coverage.h
! cd77106395898f3d0a9895500359d8d2  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
--- 5500,5506 ----
  5d31df44fc0a5b17beb74ce0ff38e214  gcc/coroutine-passes.cc
  2a5216aefb9cdf4b270ef8e599cc794f  gcc/coverage.cc
  722fb5fda78e55c5af5da72cad78751f  gcc/coverage.h
! 8af16637500778cfaef006b1324ca3d6  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
*************** e7fe06956aada61bcaae5168ad47a9c1  gcc/cp
*** 5587,5593 ****
  813c253a000ee20d8d6598f56edc400e  gcc/cp/optimize.cc
  a2d86d3655a737a6a9f1e60561394d14  gcc/cp/parser.cc
  e8a3a03873c6294ff25a783941b8d8af  gcc/cp/parser.h
! 311cb09ad0b8e59b1550377ee734398f  gcc/cp/pt.cc
  a121c0a45933b618832614be1fbfd5c7  gcc/cp/ptree.cc
  318c5e4a338363a8183b4a01222aa800  gcc/cp/rtti.cc
  a4930c49ed8f9e6b019399bd1faf86d0  gcc/cp/search.cc
--- 5587,5593 ----
  813c253a000ee20d8d6598f56edc400e  gcc/cp/optimize.cc
  a2d86d3655a737a6a9f1e60561394d14  gcc/cp/parser.cc
  e8a3a03873c6294ff25a783941b8d8af  gcc/cp/parser.h
! 594d59455027c33ed5e849a2ad7b20f0  gcc/cp/pt.cc
  a121c0a45933b618832614be1fbfd5c7  gcc/cp/ptree.cc
  318c5e4a338363a8183b4a01222aa800  gcc/cp/rtti.cc
  a4930c49ed8f9e6b019399bd1faf86d0  gcc/cp/search.cc
*************** b21182651156de7779948fe8ca2c4160  gcc/dw
*** 6022,6028 ****
  186b01005d892edba3b03fc17bd0dc8f  gcc/dwarf2codeview.h
  baaae59ceda4df837a6f62ffb0f29ee7  gcc/dwarf2ctf.cc
  1d0191caafac1774f50a47175d915ea0  gcc/dwarf2ctf.h
! 7cc9c8d25a9d43ddb6451c311969a2b2  gcc/dwarf2out.cc
  a37a84426cea5b6f077117901c0cbc81  gcc/dwarf2out.h
  fdd976759ee89958c91a4010e53c0f02  gcc/early-remat.cc
  e0339faf7da1ffc9030bc3a53b41cc1c  gcc/edit-context.cc
--- 6022,6028 ----
  186b01005d892edba3b03fc17bd0dc8f  gcc/dwarf2codeview.h
  baaae59ceda4df837a6f62ffb0f29ee7  gcc/dwarf2ctf.cc
  1d0191caafac1774f50a47175d915ea0  gcc/dwarf2ctf.h
! 0ce98f236c02178e582ba41ddb5116bd  gcc/dwarf2out.cc
  a37a84426cea5b6f077117901c0cbc81  gcc/dwarf2out.h
  fdd976759ee89958c91a4010e53c0f02  gcc/early-remat.cc
  e0339faf7da1ffc9030bc3a53b41cc1c  gcc/edit-context.cc
*************** a798cdca802a57ffa3473ab610b37c86  gcc/fo
*** 6060,6066 ****
  4b1bef753dda2d19671f35332c69a0f7  gcc/fold-const.cc
  f23dec03425a07611492fa2c061cd7d2  gcc/fold-const.h
  cd4e6baf5d162fbd41160606055f8297  gcc/fold-mem-offsets.cc
! 0654a3784b921512ee7bb090afdc3f34  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
--- 6060,6066 ----
  4b1bef753dda2d19671f35332c69a0f7  gcc/fold-const.cc
  f23dec03425a07611492fa2c061cd7d2  gcc/fold-const.h
  cd4e6baf5d162fbd41160606055f8297  gcc/fold-mem-offsets.cc
! 1c3646d4779ffed1e3f9627b4e7e7f62  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
*************** e350765243fa7b881ed82507561870ff  gcc/fo
*** 6136,6142 ****
  3b3c13f513e2236a6456d1d3b112404c  gcc/fortran/module.cc
  50632a137a18f04dcc1b089dbb5f27e3  gcc/fortran/openmp.cc
  8376eba2060129f13c5146a7773b2af7  gcc/fortran/options.cc
! 066b089d8a8df7ff652dcc802d982276  gcc/fortran/parse.cc
  09678ef13dc709d251be943d808544b8  gcc/fortran/parse.h
  8c815c31f49f2be21bde29058fe60166  gcc/fortran/primary.cc
  b99c66f0d8d9d173b5e559dd7cff0f1c  gcc/fortran/resolve.cc
--- 6136,6142 ----
  3b3c13f513e2236a6456d1d3b112404c  gcc/fortran/module.cc
  50632a137a18f04dcc1b089dbb5f27e3  gcc/fortran/openmp.cc
  8376eba2060129f13c5146a7773b2af7  gcc/fortran/options.cc
! 1d0a3022c08ef6b885d0772e22a2bf7f  gcc/fortran/parse.cc
  09678ef13dc709d251be943d808544b8  gcc/fortran/parse.h
  8c815c31f49f2be21bde29058fe60166  gcc/fortran/primary.cc
  b99c66f0d8d9d173b5e559dd7cff0f1c  gcc/fortran/resolve.cc
*************** c68318dec81d9d0316a2b8481fea02b0  gcc/m2
*** 7635,7641 ****
  d8c314554dde17baabdee11b802264b3  gcc/m2/tools-src/mklink.c
  ff4d04d0175889f5cc05d2c0c762fe57  gcc/m2/tools-src/tidydates.py
  f9608e9005487c369e6c38949ab36fa1  gcc/m2/version.c
! 88e10618d6f39a411b34e2245b93307b  gcc/machmode.def
  550bdb35d0e034ca0050c574ba896d61  gcc/machmode.h
  486412acbbb6de10b080e31410a14f33  gcc/main.cc
  d053620a6d75e0f59842e390386fd917  gcc/make-unique.h
--- 7635,7641 ----
  d8c314554dde17baabdee11b802264b3  gcc/m2/tools-src/mklink.c
  ff4d04d0175889f5cc05d2c0c762fe57  gcc/m2/tools-src/tidydates.py
  f9608e9005487c369e6c38949ab36fa1  gcc/m2/version.c
! 9c73ce7b15dda9ddf7130eb220aee884  gcc/machmode.def
  550bdb35d0e034ca0050c574ba896d61  gcc/machmode.h
  486412acbbb6de10b080e31410a14f33  gcc/main.cc
  d053620a6d75e0f59842e390386fd917  gcc/make-unique.h
*************** b1497a03867668af210c32280876fdd7  gcc/sy
*** 8447,8453 ****
  b4bbfe8a8f62eed5c75429762e88d324  gcc/targhooks.cc
  ae57260b8b60d8b8dfaef3556c3ac5e5  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 7491335982cf6677139eb7a3329bc8e9  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
--- 8447,8453 ----
  b4bbfe8a8f62eed5c75429762e88d324  gcc/targhooks.cc
  ae57260b8b60d8b8dfaef3556c3ac5e5  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 5139a8813335aff9b9482be08b809081  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
*************** e944a760f2bcd206b36820c53e03b241  gcc/te
*** 18412,18417 ****
--- 18412,18418 ----
  573ad180b4337eb14688fd7c74cdeccc  gcc/testsuite/g++.dg/cpp0x/noexcept88.C
  6920aaae5ff91adaae9f973d58b99fd0  gcc/testsuite/g++.dg/cpp0x/noexcept89.C
  01fdf9b25aed01336395f7314f3b5857  gcc/testsuite/g++.dg/cpp0x/noexcept90.C
+ a1c17fbec179b1075e3839acd36429dc  gcc/testsuite/g++.dg/cpp0x/noexcept91.C
  3bf83ccb654cedbb57a45851fb14aa9d  gcc/testsuite/g++.dg/cpp0x/nolinkage1.C
  6b7c91b931bbdacbbffbf9b90a79bc6a  gcc/testsuite/g++.dg/cpp0x/nolinkage1.h
  c92e0eda44dd6b3d74960b249fa5204f  gcc/testsuite/g++.dg/cpp0x/nolinkage1a.cc
*************** ecf4a5a96a9a66275db51c43656e4549  gcc/te
*** 30376,30381 ****
--- 30377,30383 ----
  5a8510fe4f107344e120dad60a01d61e  gcc/testsuite/g++.dg/template/dependent-name16.C
  821354ce1318166659eba50d9ae2f7bc  gcc/testsuite/g++.dg/template/dependent-name17.C
  e8a32b9dc0ab464b7f14ed88342967c0  gcc/testsuite/g++.dg/template/dependent-name18.C
+ 95cef29e581db16b7553a10027c170e2  gcc/testsuite/g++.dg/template/dependent-name19.C
  18d61b100652dfe4816b8b9c6cefa923  gcc/testsuite/g++.dg/template/dependent-name2.C
  03c5fb73327b7854a036dd70874ee185  gcc/testsuite/g++.dg/template/dependent-name3.C
  147338e18276d105fca28005404df2a8  gcc/testsuite/g++.dg/template/dependent-name4.C
*************** cbb30a4d3c73f183db77e6da8a13e3a9  gcc/te
*** 37088,37093 ****
--- 37090,37098 ----
  f7378d596bb7308498db40ad34fd8dab  gcc/testsuite/g++.target/aarch64/bitfield-abi-warning.h
  64610704e2fb7b814ffc84b6b28714a0  gcc/testsuite/g++.target/aarch64/complex-init.C
  c11e5f97e7a5971cc5c5017024f54496  gcc/testsuite/g++.target/aarch64/diag_aka_1.C
+ 5c7d9c457935aed97ec5411da8248b77  gcc/testsuite/g++.target/aarch64/dwarf-bit-stride-func.C
+ 8768115d444f864192b9eed7e675cd58  gcc/testsuite/g++.target/aarch64/dwarf-bit-stride-pragma-sme.C
+ 6ae7e639f92550ad23b9ec3fe950fa14  gcc/testsuite/g++.target/aarch64/dwarf-bit-stride-pragma.C
  8d30bac01e24683c2d4e58c15ccb4a99  gcc/testsuite/g++.target/aarch64/fp8_mangling.C
  e488781ad97c2cdafc1c66ede7aa1e0f  gcc/testsuite/g++.target/aarch64/fp8_scalar_typecheck_2.C
  4320de0414b96b162e7734443992dd38  gcc/testsuite/g++.target/aarch64/interference.C
*************** f515b18aeb1d66984b8b5d71e9fc0b3c  gcc/te
*** 37273,37278 ****
--- 37278,37284 ----
  f3ce91773bd0b4a3127c481ccd50f20e  gcc/testsuite/g++.target/aarch64/sve/dup_sel_4.C
  88995b2addb79f14a72ba650d83a3920  gcc/testsuite/g++.target/aarch64/sve/dup_sel_5.C
  9e6f261244b524db00958d47111eef62  gcc/testsuite/g++.target/aarch64/sve/dup_sel_6.C
+ ed268bb0c6479d4c5a1aa2efea8c023a  gcc/testsuite/g++.target/aarch64/sve/dwarf-bit-stride.C
  57a0aa7896383cbb0273342d58a4a7b5  gcc/testsuite/g++.target/aarch64/sve/max_1.C
  ab6c5e333d0a740ae5ecff69966813a2  gcc/testsuite/g++.target/aarch64/sve/min_1.C
  2ff8eb172904381922581e6d91f913e4  gcc/testsuite/g++.target/aarch64/sve/noncall-eh-fp-1.C
*************** a95c8779f3b9cc5c91774eab2c3b9b8d  gcc/te
*** 61389,61394 ****
--- 61395,61403 ----
  4662bde0005cf4c7497e012d44ac937a  gcc/testsuite/gcc.target/aarch64/declare-simd-2.c
  063fb3cb3ef8c03670a39beb490eee85  gcc/testsuite/gcc.target/aarch64/diag_aka_1.c
  99d13b07988399a087cb53856c728972  gcc/testsuite/gcc.target/aarch64/div-by-bitmask.c
+ 3488e2eafe407d3b6120c7194ed905bb  gcc/testsuite/gcc.target/aarch64/dwarf-bit-stride-func.c
+ 69d1e677362acf66e406e0f76cb24fff  gcc/testsuite/gcc.target/aarch64/dwarf-bit-stride-pragma-sme.c
+ 44e0ea6a8b4b6be2787d845af653ac9a  gcc/testsuite/gcc.target/aarch64/dwarf-bit-stride-pragma.c
  5a0fb82365f402f7b5e039bc723a3020  gcc/testsuite/gcc.target/aarch64/dwarf-cfa-reg.c
  a9ccf8cef71e90daa83ae00204fd983c  gcc/testsuite/gcc.target/aarch64/dwarf_reg_size_1.c
  5fdc01fccf89920c24ce6dadea7114d3  gcc/testsuite/gcc.target/aarch64/dwarf_reg_size_2.c
*************** b756b55bf45e469c93050878d9bef905  gcc/te
*** 66127,66132 ****
--- 66136,66142 ----
  79f15d195cc9087e1d6665345a3f5123  gcc/testsuite/gcc.target/aarch64/sve/dup_lane_1.c
  7b29bcc5f4568a218b087ab7a6207177  gcc/testsuite/gcc.target/aarch64/sve/dup_lane_2.c
  f75cd152d1ea63349f09ef48040ff809  gcc/testsuite/gcc.target/aarch64/sve/dup_lane_3.c
+ dc3237178be6599bbf6062f3731243ef  gcc/testsuite/gcc.target/aarch64/sve/dwarf-bit-stride.c
  f8aebeb8f0a738c291cd7acbf0c1cd2e  gcc/testsuite/gcc.target/aarch64/sve/ext_1.c
  5a6168e8f8698cd82ef986d8c867fcc0  gcc/testsuite/gcc.target/aarch64/sve/ext_2.c
  d0e1d8fee3d430dd78f1f6b60a9c0f79  gcc/testsuite/gcc.target/aarch64/sve/ext_3.c
*************** cbc44c5c7fa77e3f0d3efc55779bba4b  gcc/te
*** 89650,89655 ****
--- 89660,89667 ----
  ca9ef4de6ed36716b972a6b4efc63e85  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr121845.c
  e990c042b373d09f16b69f4b30f0ac20  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr122321.c
  9e392034c9515123dd44a7ee88bd8905  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr122627.c
+ 4c249548c54ca3fd544c8943a9d28b77  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr123022-2.c
+ 159ba529f2ab9b94d86dd9c7121d5aec  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr123022.c
  ee8bcba5f6876f2027f0f263f81465aa  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last-1.c
  7ff884bfa2e6cf9bc4c6172466538515  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last-10.c
  b2792e9264dcd6fa2e88f495d51677e6  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last-11.c
*************** cc7b1657de64dc18aa34c31291e692dc  gcc/te
*** 101554,101562 ****
  1b3c7a86b8ef34e232357cb1e76b8755  gcc/testsuite/gfortran.dg/coarray_lib_token_4.f90
  2d0699c77682dc9d6a0ceba649b61a15  gcc/testsuite/gfortran.dg/coarray_lock_1.f90
  f7a47ce438683c4f8c5566d174e4525b  gcc/testsuite/gfortran.dg/coarray_lock_2.f90
! bb8d56d19a9b76a2194076b6f5de055f  gcc/testsuite/gfortran.dg/coarray_lock_3.f90
! c132dbfa1738d526e8055c025c1641e0  gcc/testsuite/gfortran.dg/coarray_lock_4.f90
! 074eddb0df81baa8fa98afe087fec459  gcc/testsuite/gfortran.dg/coarray_lock_5.f90
  5a1674540bf58193c6febb71d5f4b58b  gcc/testsuite/gfortran.dg/coarray_lock_6.f90
  23b8603e7d1d4aaf27f154ffeffe5241  gcc/testsuite/gfortran.dg/coarray_lock_7.f90
  363f712216477dd98bef29eaa7b022e7  gcc/testsuite/gfortran.dg/coarray_poly_1.f90
--- 101566,101574 ----
  1b3c7a86b8ef34e232357cb1e76b8755  gcc/testsuite/gfortran.dg/coarray_lib_token_4.f90
  2d0699c77682dc9d6a0ceba649b61a15  gcc/testsuite/gfortran.dg/coarray_lock_1.f90
  f7a47ce438683c4f8c5566d174e4525b  gcc/testsuite/gfortran.dg/coarray_lock_2.f90
! 83bf59c0d8e4ecf8510b94d23cfb1069  gcc/testsuite/gfortran.dg/coarray_lock_3.f90
! 5b662516b0846930a9822c5d11db3acb  gcc/testsuite/gfortran.dg/coarray_lock_4.f90
! a61646c8d2a54bc1972126b81acf1cef  gcc/testsuite/gfortran.dg/coarray_lock_5.f90
  5a1674540bf58193c6febb71d5f4b58b  gcc/testsuite/gfortran.dg/coarray_lock_6.f90
  23b8603e7d1d4aaf27f154ffeffe5241  gcc/testsuite/gfortran.dg/coarray_lock_7.f90
  363f712216477dd98bef29eaa7b022e7  gcc/testsuite/gfortran.dg/coarray_poly_1.f90
*************** c0f02b651aa311a5b5cddd400f9701ed  gcc/te
*** 111796,111801 ****
--- 111808,111815 ----
  fb19807d91f445350623ae19eb1b5aee  gcc/testsuite/gnat.dg/lto28_pkg3.ads
  d38a63c50972ebf0d60bc6959e5d130f  gcc/testsuite/gnat.dg/lto29.adb
  92924880135ec84fd65e4fecf6055807  gcc/testsuite/gnat.dg/lto29_pkg.ads
+ 0bb4f053befcf73a4d457f035ee97b6a  gcc/testsuite/gnat.dg/lto30.adb
+ 5889bf52461acb4efaa37c6ba94a8f31  gcc/testsuite/gnat.dg/lto30.ads
  2acb4cc31994f1569a3db6ac6613928d  gcc/testsuite/gnat.dg/lto4.adb
  9b38247c8e825c514f87e2965d931dad  gcc/testsuite/gnat.dg/lto4.ads
  959fb8bdf4cd1c34347ecfbab19ea60b  gcc/testsuite/gnat.dg/lto5.adb
*************** fde5d5ed0c271572ac7da0e31e22bc5c  gcc/te
*** 112335,112340 ****
--- 112349,112356 ----
  46cc8f530fa18a6afd30b9d241f7967e  gcc/testsuite/gnat.dg/recursive_call.adb
  91cab892d1898f9564d603cfa1201d11  gcc/testsuite/gnat.dg/reduce1.adb
  0b27bcc5788ce003bc049b34d20d5c88  gcc/testsuite/gnat.dg/reduce2.adb
+ 5870b8cebdd6ce91693a485c5a6854d5  gcc/testsuite/gnat.dg/reduce4.adb
+ 001425eca43e1ece9e65dd7929459079  gcc/testsuite/gnat.dg/reduce5.adb
  50be8d98f4f9ac99d64926a10596a2df  gcc/testsuite/gnat.dg/ref_type.adb
  5457827e708b7bfc92ffe5610655a443  gcc/testsuite/gnat.dg/ref_type.ads
  222b5d10f23a2e8e8a5e4d41e86e66ed  gcc/testsuite/gnat.dg/regpat1.adb
*************** d680e7307fb59fe24f8431e179191f16  libssp
*** 132057,132063 ****
  534c3fb4a88e5c1f70db35c12b7742c3  libssp/vsnprintf-chk.c
  34daeb04a522ee796098df4446d6ce61  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! 61104ed0a0185c41aa47964583c4f244  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 132073,132079 ----
  534c3fb4a88e5c1f70db35c12b7742c3  libssp/vsnprintf-chk.c
  34daeb04a522ee796098df4446d6ce61  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! d0e0c98efe92e7dec2089b86ce0b0208  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
*************** d18c16b3c9c3ab2e7d487de90ec27d17  libstd
*** 132736,132742 ****
  a65f3932e944795c8e78b00d2e7f11a0  libstdc++-v3/include/bits/atomic_base.h
  7c88fbee1dffec663e740720882b5344  libstdc++-v3/include/bits/atomic_futex.h
  c2ed9b9ed62b02a5aba9733f5b376172  libstdc++-v3/include/bits/atomic_timed_wait.h
! bb69994569d6bb0513c7fbd4d74bc697  libstdc++-v3/include/bits/atomic_wait.h
  3f7a7ce2588d1e8ea4f282e9f41ac292  libstdc++-v3/include/bits/basic_ios.h
  c54b27ddff7542cc6baa362f62fb5778  libstdc++-v3/include/bits/basic_ios.tcc
  811aa7875a4cc11129344e9a96ad1f5b  libstdc++-v3/include/bits/basic_string.h
--- 132752,132758 ----
  a65f3932e944795c8e78b00d2e7f11a0  libstdc++-v3/include/bits/atomic_base.h
  7c88fbee1dffec663e740720882b5344  libstdc++-v3/include/bits/atomic_futex.h
  c2ed9b9ed62b02a5aba9733f5b376172  libstdc++-v3/include/bits/atomic_timed_wait.h
! 4aec94297e365e5a284c252c0a72d1e5  libstdc++-v3/include/bits/atomic_wait.h
  3f7a7ce2588d1e8ea4f282e9f41ac292  libstdc++-v3/include/bits/basic_ios.h
  c54b27ddff7542cc6baa362f62fb5778  libstdc++-v3/include/bits/basic_ios.tcc
  811aa7875a4cc11129344e9a96ad1f5b  libstdc++-v3/include/bits/basic_string.h
*************** a155d2afa910d24be0955f42c4585228  libstd
*** 132751,132757 ****
  2ff73cb405cb01626a751e0fa0f339f3  libstdc++-v3/include/bits/codecvt.h
  23fc42ee8644308c793f44d20f00420e  libstdc++-v3/include/bits/concept_check.h
  e999e0783a5ca2165919f352526501e9  libstdc++-v3/include/bits/cow_string.h
! 99157013f345a7984753e3d01fdd744f  libstdc++-v3/include/bits/cpp_type_traits.h
  7cddddf44455557aa3a51978b5887fff  libstdc++-v3/include/bits/deque.tcc
  be08582d1795753f6e8fb613a7ec9fe0  libstdc++-v3/include/bits/elements_of.h
  397af990234a7f718cce0f629f7d8b13  libstdc++-v3/include/bits/enable_special_members.h
--- 132767,132773 ----
  2ff73cb405cb01626a751e0fa0f339f3  libstdc++-v3/include/bits/codecvt.h
  23fc42ee8644308c793f44d20f00420e  libstdc++-v3/include/bits/concept_check.h
  e999e0783a5ca2165919f352526501e9  libstdc++-v3/include/bits/cow_string.h
! 3096fc9df7ce27113a7adfd3be390678  libstdc++-v3/include/bits/cpp_type_traits.h
  7cddddf44455557aa3a51978b5887fff  libstdc++-v3/include/bits/deque.tcc
  be08582d1795753f6e8fb613a7ec9fe0  libstdc++-v3/include/bits/elements_of.h
  397af990234a7f718cce0f629f7d8b13  libstdc++-v3/include/bits/enable_special_members.h
*************** a462fb6c466b34fa25624b7fab6323e3  libstd
*** 132885,132892 ****
  3ddbcccf58411251c2825ae41b697844  libstdc++-v3/include/bits/valarray_array.tcc
  a4c99020fc6d28e94d24a3f60a71b6ec  libstdc++-v3/include/bits/valarray_before.h
  64f75edbe1420af49b20c6a8641361c4  libstdc++-v3/include/bits/vector.tcc
! 1ed2014de22effe1785695d161d0d30e  libstdc++-v3/include/bits/version.def
! f3e08e3719deb8aaf3a38d4131c0ce50  libstdc++-v3/include/bits/version.h
  0db0dfc5d016435e64398e3bb70098d3  libstdc++-v3/include/bits/version.tpl
  6ccd70c0c36dd38ba559c1fc5a05fbd0  libstdc++-v3/include/c/cassert
  c31b54f25b2f8c7ca3ca3eec930d4e1d  libstdc++-v3/include/c/cctype
--- 132901,132908 ----
  3ddbcccf58411251c2825ae41b697844  libstdc++-v3/include/bits/valarray_array.tcc
  a4c99020fc6d28e94d24a3f60a71b6ec  libstdc++-v3/include/bits/valarray_before.h
  64f75edbe1420af49b20c6a8641361c4  libstdc++-v3/include/bits/vector.tcc
! 12d6dd6628d6b456b3ab66f0b7d36529  libstdc++-v3/include/bits/version.def
! 30e2252fcee270c61b56eae8bc9031a6  libstdc++-v3/include/bits/version.h
  0db0dfc5d016435e64398e3bb70098d3  libstdc++-v3/include/bits/version.tpl
  6ccd70c0c36dd38ba559c1fc5a05fbd0  libstdc++-v3/include/c/cassert
  c31b54f25b2f8c7ca3ca3eec930d4e1d  libstdc++-v3/include/c/cctype
*************** f1cc3238df41adc204bc4f90accc63f3  libstd
*** 133435,133446 ****
  9eb208714fb55de6cfffb684575b47e3  libstdc++-v3/include/std/algorithm
  d891b88417c6426b21aee63c74ec4e98  libstdc++-v3/include/std/any
  d434b6703454e6fece0bb6ab907894d5  libstdc++-v3/include/std/array
! 0629d22f554a52275f62402292b23e12  libstdc++-v3/include/std/atomic
  4f32c26cb6bb867bc482113b2f4a9eb1  libstdc++-v3/include/std/barrier
  2a2983a946c8ff2f85e6ee4fedaafdc7  libstdc++-v3/include/std/bit
  a2b26793e4e6009d6ffdd683cc309894  libstdc++-v3/include/std/bitset
  b992fa2a4889a430ba299555276bcf81  libstdc++-v3/include/std/charconv
! cb5ee04f24eb3f44950a511e7d8fd2e7  libstdc++-v3/include/std/chrono
  a90e2b9ed2c236c92f3f2387a39a0ac8  libstdc++-v3/include/std/codecvt
  73ad0b394fec64fa4f07972401973741  libstdc++-v3/include/std/complex
  c3c1dced3bd41cb17dfb1d65d089f9d3  libstdc++-v3/include/std/concepts
--- 133451,133462 ----
  9eb208714fb55de6cfffb684575b47e3  libstdc++-v3/include/std/algorithm
  d891b88417c6426b21aee63c74ec4e98  libstdc++-v3/include/std/any
  d434b6703454e6fece0bb6ab907894d5  libstdc++-v3/include/std/array
! 850809e77d5451e71320247626527833  libstdc++-v3/include/std/atomic
  4f32c26cb6bb867bc482113b2f4a9eb1  libstdc++-v3/include/std/barrier
  2a2983a946c8ff2f85e6ee4fedaafdc7  libstdc++-v3/include/std/bit
  a2b26793e4e6009d6ffdd683cc309894  libstdc++-v3/include/std/bitset
  b992fa2a4889a430ba299555276bcf81  libstdc++-v3/include/std/charconv
! e484f02a336cd08699671bd956a54a98  libstdc++-v3/include/std/chrono
  a90e2b9ed2c236c92f3f2387a39a0ac8  libstdc++-v3/include/std/codecvt
  73ad0b394fec64fa4f07972401973741  libstdc++-v3/include/std/complex
  c3c1dced3bd41cb17dfb1d65d089f9d3  libstdc++-v3/include/std/concepts
*************** c5a4df8fdbbe4b3d33d0b52db500e16d  libstd
*** 133503,133509 ****
  608edef7344e2e25c7b00170df6fa9e6  libstdc++-v3/include/std/text_encoding
  96f0baf96cfb63439fb481bbfb6b17da  libstdc++-v3/include/std/thread
  af3d3134c33d40c51e1d3493f1fb7cc4  libstdc++-v3/include/std/tuple
! 8f22fc68b35d01856ee0826270cfdc94  libstdc++-v3/include/std/type_traits
  237682577d22ec3f9f5046abf0acd8e7  libstdc++-v3/include/std/typeindex
  520c52362f53e18f20838693cfd131bf  libstdc++-v3/include/std/unordered_map
  c82be32edefaa23cc1228b092d319315  libstdc++-v3/include/std/unordered_set
--- 133519,133525 ----
  608edef7344e2e25c7b00170df6fa9e6  libstdc++-v3/include/std/text_encoding
  96f0baf96cfb63439fb481bbfb6b17da  libstdc++-v3/include/std/thread
  af3d3134c33d40c51e1d3493f1fb7cc4  libstdc++-v3/include/std/tuple
! 4c9882efcebded2d01ce0997d67240ae  libstdc++-v3/include/std/type_traits
  237682577d22ec3f9f5046abf0acd8e7  libstdc++-v3/include/std/typeindex
  520c52362f53e18f20838693cfd131bf  libstdc++-v3/include/std/unordered_map
  c82be32edefaa23cc1228b092d319315  libstdc++-v3/include/std/unordered_set
*************** c94ad903b4e7baf364cdc3ef5e9f58a8  libstd
*** 133677,133683 ****
  4cb74e4755d2e3e58503a243d7ae042b  libstdc++-v3/python/hook.in
  68b329da9893e34099c7d8ad5cb9c940  libstdc++-v3/python/libstdcxx/__init__.py
  f3661044e04e7499daef1e53bba37dc7  libstdc++-v3/python/libstdcxx/v6/__init__.py
! 6bfb86e6eb00a1b6bcaee948565dc0db  libstdc++-v3/python/libstdcxx/v6/printers.py
  c4a63edebdca46a9468f6ce9cde53449  libstdc++-v3/python/libstdcxx/v6/xmethods.py
  cdac7363b91e7d57b85f7b560f62f033  libstdc++-v3/scripts/check_compile
  87c30a72c1d3ec2a203894ac24d78005  libstdc++-v3/scripts/check_performance
--- 133693,133699 ----
  4cb74e4755d2e3e58503a243d7ae042b  libstdc++-v3/python/hook.in
  68b329da9893e34099c7d8ad5cb9c940  libstdc++-v3/python/libstdcxx/__init__.py
  f3661044e04e7499daef1e53bba37dc7  libstdc++-v3/python/libstdcxx/v6/__init__.py
! 44da29d7c6a7f27b49b9feed380c843a  libstdc++-v3/python/libstdcxx/v6/printers.py
  c4a63edebdca46a9468f6ce9cde53449  libstdc++-v3/python/libstdcxx/v6/xmethods.py
  cdac7363b91e7d57b85f7b560f62f033  libstdc++-v3/scripts/check_compile
  87c30a72c1d3ec2a203894ac24d78005  libstdc++-v3/scripts/check_performance
*************** e66e202fb59625eb933c316b0bf9ee34  libstd
*** 133803,133810 ****
  fc90aab2bcae05d7286b5666cd1f2be8  libstdc++-v3/src/c++20/Makefile.in
  94b3ab191e8fe566a951ac2b4f081c40  libstdc++-v3/src/c++20/format.cc
  939eb3ac7ce3c32a8b2aac493f053893  libstdc++-v3/src/c++20/sstream-inst.cc
! e9e89f4578e59d252e4caaf0b63d6dfb  libstdc++-v3/src/c++20/tzdata.zi
! b01c0cfbca4e753f78f74ab41ce26267  libstdc++-v3/src/c++20/tzdb.cc
  3665d657cc35c7afb8b5cc7bae0ef058  libstdc++-v3/src/c++23/Makefile.am
  d85f3a53465585d54b96880e79456c79  libstdc++-v3/src/c++23/Makefile.in
  3c95970ad4fd23117b63a99dd3241ebe  libstdc++-v3/src/c++23/libstdc++.modules.json.in
--- 133819,133826 ----
  fc90aab2bcae05d7286b5666cd1f2be8  libstdc++-v3/src/c++20/Makefile.in
  94b3ab191e8fe566a951ac2b4f081c40  libstdc++-v3/src/c++20/format.cc
  939eb3ac7ce3c32a8b2aac493f053893  libstdc++-v3/src/c++20/sstream-inst.cc
! 5f51e6efda14986b9b4932b46f8e73c3  libstdc++-v3/src/c++20/tzdata.zi
! 505d13577d7fcb40c2c710aeab89dfcd  libstdc++-v3/src/c++20/tzdb.cc
  3665d657cc35c7afb8b5cc7bae0ef058  libstdc++-v3/src/c++23/Makefile.am
  d85f3a53465585d54b96880e79456c79  libstdc++-v3/src/c++23/Makefile.in
  3c95970ad4fd23117b63a99dd3241ebe  libstdc++-v3/src/c++23/libstdc++.modules.json.in
*************** cd35f526f71cd243c4965f834df24c89  libstd
*** 134332,134337 ****
--- 134348,134354 ----
  eef2204d57edb98136c3ffd5d0879a97  libstdc++-v3/testsuite/20_util/bitset/version.cc
  c8f50ba04b6971c9baf46f1890fc61ef  libstdc++-v3/testsuite/20_util/bool_constant/requirements.cc
  d9e3a835b6facefd71de42c8fe38c7ed  libstdc++-v3/testsuite/20_util/common_reference/100894.cc
+ af25f8f7e85a16941631a585bc0e1b68  libstdc++-v3/testsuite/20_util/common_reference/p2655r3.cc
  b231fe644af8f6c7b8e8db865b0335e8  libstdc++-v3/testsuite/20_util/common_reference/requirements/alias_decl.cc
  e874c307ac6cb1be4ebab7d34d4673c1  libstdc++-v3/testsuite/20_util/common_reference/requirements/explicit_instantiation.cc
  3ec71232a9e140f7524d6dbc2af6bd6a  libstdc++-v3/testsuite/20_util/common_reference/requirements/typedefs.cc
*************** dc51bf8ec0600eaf13a5e97b344b0c79  libstd
*** 138574,138579 ****
--- 138591,138597 ----
  ae049046b45a395504fd1e8a19c4f18b  libstdc++-v3/testsuite/25_algorithms/copy/108846.cc
  6f8c3f9d5e1238778b6e1ba3a9bb80ef  libstdc++-v3/testsuite/25_algorithms/copy/114817.cc
  23b0d913d66888b7f56b9fe9040957c3  libstdc++-v3/testsuite/25_algorithms/copy/115444.cc
+ 125e1ba85822cfd51c8df1b6a842bc84  libstdc++-v3/testsuite/25_algorithms/copy/122907.cc
  5003c29765774a7418c3443878d83332  libstdc++-v3/testsuite/25_algorithms/copy/2.cc
  273dff5a2d0cc6cda1596a2c8a114fec  libstdc++-v3/testsuite/25_algorithms/copy/3.cc
  809bbcd5453cb854bf0b20b8491fb7da  libstdc++-v3/testsuite/25_algorithms/copy/34595.cc
*************** d860508e08a414ec1460e80180e40393  libstd
*** 142712,142727 ****
  ef2f4e85b3f385730ab4bd1fad98ccab  libstdc++-v3/testsuite/performance/23_containers/range_construct/list_construct2.cc
  aa50ec94a0aa77a0703874fe58208719  libstdc++-v3/testsuite/performance/23_containers/range_construct/vector_construct.cc
  5aebf4bc3a180504c2fa2e43e74dd6d6  libstdc++-v3/testsuite/performance/23_containers/resize/vector_bool.cc
! 9a2163e6878e3e22225129681ca96a75  libstdc++-v3/testsuite/performance/23_containers/sort_search/list.cc
  9d1d6439b2e93ebc48779237c0969b25  libstdc++-v3/testsuite/performance/25_algorithms/copy_backward_deque_iterators.cc
  ab09b2da7335847dccf2fd63d8b8fd89  libstdc++-v3/testsuite/performance/25_algorithms/copy_deque_iterators.cc
  6a6944457d6145fee939caa81a0bf393  libstdc++-v3/testsuite/performance/25_algorithms/copy_streambuf_iterators.cc
! 824f5174ad4f4597cb17e7b0af108f7c  libstdc++-v3/testsuite/performance/25_algorithms/equal_deque_iterators.cc
  6c237c6ab42e10e29629ddec6e8f7325  libstdc++-v3/testsuite/performance/25_algorithms/find_istreambuf_iterators.cc
  d02f1d737a7f2c7fafab78435fa78e93  libstdc++-v3/testsuite/performance/25_algorithms/inplace_merge.cc
  ff3f9bba9ccad4d1fc7a866b7a751251  libstdc++-v3/testsuite/performance/25_algorithms/lexicographical_compare.cc
  075844d01b94cfd34e1708cab1e2f312  libstdc++-v3/testsuite/performance/25_algorithms/nth_element_worst_case.cc
! ee0e492f7b0b50118dbda480520c67c1  libstdc++-v3/testsuite/performance/25_algorithms/search_n.cc
  e3d7908e495b67a7f37be76db8ed2169  libstdc++-v3/testsuite/performance/25_algorithms/sort.cc
  aef4f91004ab79c0eddaf5c332c6d491  libstdc++-v3/testsuite/performance/25_algorithms/sort_heap.cc
  7f064f37490bfa8d7841ad0fffb3de89  libstdc++-v3/testsuite/performance/25_algorithms/stable_sort.cc
--- 142730,142745 ----
  ef2f4e85b3f385730ab4bd1fad98ccab  libstdc++-v3/testsuite/performance/23_containers/range_construct/list_construct2.cc
  aa50ec94a0aa77a0703874fe58208719  libstdc++-v3/testsuite/performance/23_containers/range_construct/vector_construct.cc
  5aebf4bc3a180504c2fa2e43e74dd6d6  libstdc++-v3/testsuite/performance/23_containers/resize/vector_bool.cc
! 7ff826212a8220eb184ecf332c234f40  libstdc++-v3/testsuite/performance/23_containers/sort_search/list.cc
  9d1d6439b2e93ebc48779237c0969b25  libstdc++-v3/testsuite/performance/25_algorithms/copy_backward_deque_iterators.cc
  ab09b2da7335847dccf2fd63d8b8fd89  libstdc++-v3/testsuite/performance/25_algorithms/copy_deque_iterators.cc
  6a6944457d6145fee939caa81a0bf393  libstdc++-v3/testsuite/performance/25_algorithms/copy_streambuf_iterators.cc
! d940de57660124156c1e41869e403663  libstdc++-v3/testsuite/performance/25_algorithms/equal_deque_iterators.cc
  6c237c6ab42e10e29629ddec6e8f7325  libstdc++-v3/testsuite/performance/25_algorithms/find_istreambuf_iterators.cc
  d02f1d737a7f2c7fafab78435fa78e93  libstdc++-v3/testsuite/performance/25_algorithms/inplace_merge.cc
  ff3f9bba9ccad4d1fc7a866b7a751251  libstdc++-v3/testsuite/performance/25_algorithms/lexicographical_compare.cc
  075844d01b94cfd34e1708cab1e2f312  libstdc++-v3/testsuite/performance/25_algorithms/nth_element_worst_case.cc
! d09c03e581470b136a07d5f7e532d178  libstdc++-v3/testsuite/performance/25_algorithms/search_n.cc
  e3d7908e495b67a7f37be76db8ed2169  libstdc++-v3/testsuite/performance/25_algorithms/sort.cc
  aef4f91004ab79c0eddaf5c332c6d491  libstdc++-v3/testsuite/performance/25_algorithms/sort_heap.cc
  7f064f37490bfa8d7841ad0fffb3de89  libstdc++-v3/testsuite/performance/25_algorithms/stable_sort.cc
diff -Nrcpad gcc-15-20251213/gcc/ChangeLog gcc-15-20251220/gcc/ChangeLog
*** gcc-15-20251213/gcc/ChangeLog	Sat Dec 13 22:32:05 2025
--- gcc-15-20251220/gcc/ChangeLog	Sat Dec 20 22:32:05 2025
***************
*** 1,3 ****
--- 1,28 ----
+ 2025-12-19  Yury Khrustalev  <yury.khrustalev@arm.com>
+ 
+ 	Backported from master:
+ 	2025-11-24  Yury Khrustalev  <yury.khrustalev@arm.com>
+ 
+ 	PR debug/121964
+ 	* dwarf2out.cc (gen_array_type_die): Add DW_AT_bit_stride attribute
+ 	for array types based on element type bit precision for integer and
+ 	boolean element types.
+ 
+ 2025-12-19  Yury Khrustalev  <yury.khrustalev@arm.com>
+ 
+ 	Backported from master:
+ 	2025-11-24  Yury Khrustalev  <yury.khrustalev@arm.com>
+ 
+ 	* machmode.def (VECTOR_BOOL_MODE): Fix comment.
+ 
+ 2025-12-16  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	Backported from master:
+ 	2025-12-09  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/123022
+ 	* config/riscv/vector.md: Add mode_idx attribute.
+ 
  2025-12-11  Vladimir N. Makarov  <vmakarov@redhat.com>
  
  	PR rtl-optimization/122215
diff -Nrcpad gcc-15-20251213/gcc/DATESTAMP gcc-15-20251220/gcc/DATESTAMP
*** gcc-15-20251213/gcc/DATESTAMP	Sat Dec 13 22:32:05 2025
--- gcc-15-20251220/gcc/DATESTAMP	Sat Dec 20 22:32:05 2025
***************
*** 1 ****
! 20251213
--- 1 ----
! 20251220
diff -Nrcpad gcc-15-20251213/gcc/ada/ChangeLog gcc-15-20251220/gcc/ada/ChangeLog
*** gcc-15-20251213/gcc/ada/ChangeLog	Sat Dec 13 22:32:05 2025
--- gcc-15-20251220/gcc/ada/ChangeLog	Sat Dec 20 22:32:05 2025
***************
*** 1,3 ****
--- 1,17 ----
+ 2025-12-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/123138
+ 	* exp_attr.adb (Expand_N_Attribute_Reference) <Attribute_Reduce>:
+ 	Override a universal numeric type only if the prefix is not an
+ 	aggregate.
+ 
+ 2025-12-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/123060
+ 	* gcc-interface/utils.cc (update_pointer_to): Synthesize a new
+ 	TYPE_CANONICAL for the old pointer type in the case where there
+ 	is no new pointer type.  Likewise for references.
+ 
  2025-12-11  Eric Botcazou  <ebotcazou@adacore.com>
  
  	PR ada/123096
diff -Nrcpad gcc-15-20251213/gcc/ada/exp_attr.adb gcc-15-20251220/gcc/ada/exp_attr.adb
*** gcc-15-20251213/gcc/ada/exp_attr.adb	Sat Dec 13 22:32:05 2025
--- gcc-15-20251220/gcc/ada/exp_attr.adb	Sat Dec 20 22:32:05 2025
*************** package body Exp_Attr is
*** 6368,6381 ****
                    Accum_Typ := Etype (N);
                 end if;
  
!                --  Try to cope with wrong E1 when Etype (N) doesn't help
                 if Is_Universal_Numeric_Type (Accum_Typ) then
!                   if Is_Array_Type (Etype (Prefix (N))) then
                       Accum_Typ := Component_Type (Etype (Prefix (N)));
-                   else
-                      --  Further hackery can be added here when there is a
-                      --  demonstrated need.
-                      null;
                    end if;
                 end if;
  
--- 6368,6380 ----
                    Accum_Typ := Etype (N);
                 end if;
  
!                --  If Accum_Typ is a universal numeric type and the prefix
!                --  is not an aggregate, use its component type in order to
!                --  avoid resolution problems later on.
! 
                 if Is_Universal_Numeric_Type (Accum_Typ) then
!                   if Nkind (Prefix (N)) /= N_Aggregate then
                       Accum_Typ := Component_Type (Etype (Prefix (N)));
                    end if;
                 end if;
  
diff -Nrcpad gcc-15-20251213/gcc/ada/gcc-interface/utils.cc gcc-15-20251220/gcc/ada/gcc-interface/utils.cc
*** gcc-15-20251213/gcc/ada/gcc-interface/utils.cc	Sat Dec 13 22:32:05 2025
--- gcc-15-20251220/gcc/ada/gcc-interface/utils.cc	Sat Dec 20 22:32:05 2025
*************** update_pointer_to (tree old_type, tree n
*** 4594,4601 ****
  	    new_ptr = TYPE_NEXT_PTR_TO (new_ptr);
  	  TYPE_NEXT_PTR_TO (new_ptr) = ptr;
  	}
!       else
! 	TYPE_POINTER_TO (new_type) = ptr;
  
        /* Now adjust them.  */
        for (; ptr; ptr = TYPE_NEXT_PTR_TO (ptr))
--- 4594,4616 ----
  	    new_ptr = TYPE_NEXT_PTR_TO (new_ptr);
  	  TYPE_NEXT_PTR_TO (new_ptr) = ptr;
  	}
!       else if (ptr)
! 	{
! 	  TYPE_POINTER_TO (new_type) = ptr;
! 
! 	  /* If there is no pointer pointing to NEW_TYPE yet, re-compute the
! 	     TYPE_CANONICAL of the old pointer but pointing to NEW_TYPE, like
! 	     build_pointer_type would have done for such a pointer, because we
! 	     will propagate it in the adjustment loop below.  */
! 	  if (TYPE_STRUCTURAL_EQUALITY_P (new_type))
! 	    SET_TYPE_STRUCTURAL_EQUALITY (ptr);
! 	  else if (TYPE_CANONICAL (new_type) != new_type
! 		   || (TYPE_REF_CAN_ALIAS_ALL (ptr)
! 		       && !lookup_attribute ("may_alias",
! 					     TYPE_ATTRIBUTES (new_type))))
! 	    TYPE_CANONICAL (ptr)
! 	      = build_pointer_type (TYPE_CANONICAL (new_type));
! 	}
  
        /* Now adjust them.  */
        for (; ptr; ptr = TYPE_NEXT_PTR_TO (ptr))
*************** update_pointer_to (tree old_type, tree n
*** 4615,4622 ****
  	    new_ref = TYPE_NEXT_REF_TO (new_ref);
  	  TYPE_NEXT_REF_TO (new_ref) = ref;
  	}
!       else
! 	TYPE_REFERENCE_TO (new_type) = ref;
  
        /* Now adjust them.  */
        for (; ref; ref = TYPE_NEXT_REF_TO (ref))
--- 4630,4652 ----
  	    new_ref = TYPE_NEXT_REF_TO (new_ref);
  	  TYPE_NEXT_REF_TO (new_ref) = ref;
  	}
!       else if (ref)
! 	{
! 	  TYPE_REFERENCE_TO (new_type) = ref;
! 
! 	  /* If there is no reference pointing to NEW_TYPE yet, re-compute the
! 	     TYPE_CANONICAL of the old reference but pointing to NEW_TYPE, like
! 	     build_reference_type would have done for such a reference, because
! 	     we will propagate it in the adjustment loop below.  */
! 	  if (TYPE_STRUCTURAL_EQUALITY_P (new_type))
! 	    SET_TYPE_STRUCTURAL_EQUALITY (ref);
! 	  else if (TYPE_CANONICAL (new_type) != new_type
! 		   || (TYPE_REF_CAN_ALIAS_ALL (ref)
! 		       && !lookup_attribute ("may_alias",
! 					     TYPE_ATTRIBUTES (new_type))))
! 	    TYPE_CANONICAL (ref)
! 	      = build_reference_type (TYPE_CANONICAL (new_type));
! 	}
  
        /* Now adjust them.  */
        for (; ref; ref = TYPE_NEXT_REF_TO (ref))
diff -Nrcpad gcc-15-20251213/gcc/config/riscv/vector.md gcc-15-20251220/gcc/config/riscv/vector.md
*** gcc-15-20251213/gcc/config/riscv/vector.md	Sat Dec 13 22:32:06 2025
--- gcc-15-20251220/gcc/config/riscv/vector.md	Sat Dec 20 22:32:06 2025
***************
*** 4095,4100 ****
--- 4095,4101 ----
    "TARGET_VECTOR"
    "vw<plus_minus:insn><any_extend:u>.wx\t%0,%3,%z4%p1"
    [(set_attr "type" "vi<widen_binop_insn_type>")
+    (set_attr "mode_idx" "3")
     (set_attr "mode" "<V_DOUBLE_TRUNC>")])
  
  (define_insn "@pred_single_widen_add<any_extend:su><mode>_extended_scalar"
***************
*** 4361,4366 ****
--- 4362,4368 ----
    "TARGET_VECTOR"
    "v<insn>.vx\t%0,%3,%4%p1"
    [(set_attr "type" "<int_binop_insn_type>")
+    (set_attr "mode_idx" "3")
     (set_attr "mode" "<MODE>")])
  
  (define_insn "@pred_<optab><mode>_scalar"
***************
*** 4382,4387 ****
--- 4384,4390 ----
    "TARGET_VECTOR"
    "v<insn>.vx\t%0,%3,%4%p1"
    [(set_attr "type" "<int_binop_insn_type>")
+    (set_attr "mode_idx" "3")
     (set_attr "mode" "<MODE>")])
  
  (define_expand "@pred_<optab><mode>_scalar"
***************
*** 4436,4441 ****
--- 4439,4445 ----
    "TARGET_VECTOR"
    "v<insn>.vx\t%0,%3,%4%p1"
    [(set_attr "type" "<int_binop_insn_type>")
+    (set_attr "mode_idx" "3")
     (set_attr "mode" "<MODE>")])
  
  (define_insn "*pred_<optab><mode>_extended_scalar"
***************
*** 4458,4463 ****
--- 4462,4468 ----
    "TARGET_VECTOR && !TARGET_64BIT"
    "v<insn>.vx\t%0,%3,%4%p1"
    [(set_attr "type" "<int_binop_insn_type>")
+    (set_attr "mode_idx" "3")
     (set_attr "mode" "<MODE>")])
  
  (define_expand "@pred_<optab><mode>_scalar"
***************
*** 4512,4517 ****
--- 4517,4523 ----
    "TARGET_VECTOR"
    "v<insn>.vx\t%0,%3,%z4%p1"
    [(set_attr "type" "<int_binop_insn_type>")
+    (set_attr "mode_idx" "3")
     (set_attr "mode" "<MODE>")])
  
  (define_insn "*pred_<optab><mode>_extended_scalar"
***************
*** 4534,4539 ****
--- 4540,4546 ----
    "TARGET_VECTOR && !TARGET_64BIT"
    "v<insn>.vx\t%0,%3,%z4%p1"
    [(set_attr "type" "<int_binop_insn_type>")
+    (set_attr "mode_idx" "3")
     (set_attr "mode" "<MODE>")])
  
  (define_insn "@pred_<sat_op><mode>"
***************
*** 4579,4584 ****
--- 4586,4592 ----
    "TARGET_VECTOR"
    "v<sat_op>.vx\t%0,%3,%z4%p1"
    [(set_attr "type" "<sat_insn_type>")
+    (set_attr "mode_idx" "3")
     (set_attr "mode" "<MODE>")])
  
  (define_insn "@pred_<sat_op><mode>_scalar"
diff -Nrcpad gcc-15-20251213/gcc/cp/ChangeLog gcc-15-20251220/gcc/cp/ChangeLog
*** gcc-15-20251213/gcc/cp/ChangeLog	Sat Dec 13 22:32:06 2025
--- gcc-15-20251220/gcc/cp/ChangeLog	Sat Dec 20 22:32:06 2025
***************
*** 1,3 ****
--- 1,22 ----
+ 2025-12-16  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-12-15  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/122752
+ 	* pt.cc (tsubst) <case TYPENAME_TYPE>: Allow TYPENAME_TYPE
+ 	resolving to another wildcard type.
+ 
+ 2025-12-16  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-11-19  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/122668
+ 	PR c++/114764
+ 	* pt.cc (dependentish_scope_p): Return true for the current
+ 	instantiation from within an immediately parsed noexcept-spec.
+ 
  2025-12-08  Jakub Jelinek  <jakub@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-15-20251213/gcc/cp/pt.cc gcc-15-20251220/gcc/cp/pt.cc
*** gcc-15-20251213/gcc/cp/pt.cc	Sat Dec 13 22:32:06 2025
--- gcc-15-20251220/gcc/cp/pt.cc	Sat Dec 20 22:32:06 2025
*************** tsubst (tree t, tree args, tsubst_flags_
*** 17196,17202 ****
  	    f = TREE_TYPE (f);
  	  }
  
! 	if (TREE_CODE (f) != TYPENAME_TYPE)
  	  {
  	    if (TYPENAME_IS_ENUM_P (t) && TREE_CODE (f) != ENUMERAL_TYPE)
  	      {
--- 17196,17202 ----
  	    f = TREE_TYPE (f);
  	  }
  
! 	if (!WILDCARD_TYPE_P (f))
  	  {
  	    if (TYPENAME_IS_ENUM_P (t) && TREE_CODE (f) != ENUMERAL_TYPE)
  	      {
*************** dependent_scope_p (tree scope)
*** 28755,28761 ****
  bool
  dependentish_scope_p (tree scope)
  {
!   return dependent_scope_p (scope) || any_dependent_bases_p (scope);
  }
  
  /* T is a SCOPE_REF.  Return whether it represents a non-static member of
--- 28755,28770 ----
  bool
  dependentish_scope_p (tree scope)
  {
!   return dependent_scope_p (scope) || any_dependent_bases_p (scope)
!     /* A noexcept-spec is a complete-class context, so this should never hold.
!        But since we don't implement deferred noexcept-spec parsing of a friend
!        declaration (PR114764) we compensate by treating the current
!        instantiation as dependent to avoid bogus name lookup failures in this
!        case (PR122668).  */
!     || (cp_noexcept_operand
! 	&& CLASS_TYPE_P (scope)
! 	&& TYPE_BEING_DEFINED (scope)
! 	&& dependent_type_p (scope));
  }
  
  /* T is a SCOPE_REF.  Return whether it represents a non-static member of
diff -Nrcpad gcc-15-20251213/gcc/dwarf2out.cc gcc-15-20251220/gcc/dwarf2out.cc
*** gcc-15-20251213/gcc/dwarf2out.cc	Sat Dec 13 22:32:06 2025
--- gcc-15-20251220/gcc/dwarf2out.cc	Sat Dec 20 22:32:07 2025
*************** gen_array_type_die (tree type, dw_die_re
*** 22721,22726 ****
--- 22721,22748 ----
  		      && TYPE_REVERSE_STORAGE_ORDER (type),
  		      context_die);
  
+   /* Add bit stride information to boolean vectors of single bits so that
+      elements can be correctly read and displayed by a debugger.  */
+   if (VECTOR_BOOLEAN_TYPE_P (type))
+     {
+       enum machine_mode tmode = TYPE_MODE_RAW (type);
+       if (GET_MODE_CLASS (tmode) == MODE_VECTOR_BOOL)
+ 	{
+ 	  /* Calculate bit-size of element based on mnode.  */
+ 	  poly_uint16 bit_size = exact_div (GET_MODE_BITSIZE (tmode),
+ 					    GET_MODE_NUNITS (tmode));
+ 	  /* Set bit stride in the array type DIE.  */
+ 	  add_AT_unsigned (array_die, DW_AT_bit_stride, bit_size.coeffs[0]);
+ 	  /* Find DIE corresponding to the element type so that we could
+ 	     add DW_AT_bit_size to it.  */
+ 	  dw_die_ref elem_die = get_AT_ref (array_die, DW_AT_type);
+ 	  /* Avoid adding DW_AT_bit_size twice.  */
+ 	  if (get_AT (elem_die, DW_AT_bit_size) == NULL)
+ 	    add_AT_unsigned (elem_die, DW_AT_bit_size,
+ 			     TYPE_PRECISION (element_type));
+ 	}
+     }
+ 
    add_gnat_descriptive_type_attribute (array_die, type, context_die);
    if (TYPE_ARTIFICIAL (type))
      add_AT_flag (array_die, DW_AT_artificial, 1);
diff -Nrcpad gcc-15-20251213/gcc/fortran/ChangeLog gcc-15-20251220/gcc/fortran/ChangeLog
*** gcc-15-20251213/gcc/fortran/ChangeLog	Sat Dec 13 22:32:06 2025
--- gcc-15-20251220/gcc/fortran/ChangeLog	Sat Dec 20 22:32:07 2025
***************
*** 1,3 ****
--- 1,13 ----
+ 2025-12-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2025-12-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	PR fortran/107406
+ 	* parse.cc (check_component): Adjust the error check to
+ 	require a codimension if the allocatable type has
+ 	a non-coarray LOCK_TYPE component.
+ 
  2025-12-09  Harald Anlauf  <anlauf@gmx.de>
  
  	Backported from master:
diff -Nrcpad gcc-15-20251213/gcc/fortran/parse.cc gcc-15-20251220/gcc/fortran/parse.cc
*** gcc-15-20251213/gcc/fortran/parse.cc	Sat Dec 13 22:32:06 2025
--- gcc-15-20251220/gcc/fortran/parse.cc	Sat Dec 20 22:32:07 2025
*************** check_component (gfc_symbol *sym, gfc_co
*** 3675,3685 ****
                 "of type LOCK_TYPE, which must have a codimension or be a "
                 "subcomponent of a coarray", c->name, &c->loc);
  
!   if (lock_type && allocatable && !coarray)
!     gfc_error ("Allocatable component %s at %L of type LOCK_TYPE must have "
!                "a codimension", c->name, &c->loc);
!   else if (lock_type && allocatable && c->ts.type == BT_DERIVED
!            && c->ts.u.derived->attr.lock_comp)
      gfc_error ("Allocatable component %s at %L must have a codimension as "
                 "it has a noncoarray subcomponent of type LOCK_TYPE",
                 c->name, &c->loc);
--- 3675,3682 ----
                 "of type LOCK_TYPE, which must have a codimension or be a "
                 "subcomponent of a coarray", c->name, &c->loc);
  
!   if (lock_type && allocatable && !coarray && c->ts.type == BT_DERIVED
!       && c->ts.u.derived->attr.lock_comp)
      gfc_error ("Allocatable component %s at %L must have a codimension as "
                 "it has a noncoarray subcomponent of type LOCK_TYPE",
                 c->name, &c->loc);
diff -Nrcpad gcc-15-20251213/gcc/machmode.def gcc-15-20251220/gcc/machmode.def
*** gcc-15-20251213/gcc/machmode.def	Sat Dec 13 22:32:07 2025
--- gcc-15-20251220/gcc/machmode.def	Sat Dec 20 22:32:07 2025
*************** along with GCC; see the file COPYING3.
*** 148,159 ****
  	mode, with smaller numbers indicating a higher priority.
  
       VECTOR_BOOL_MODE (NAME, COUNT, COMPONENT, BYTESIZE)
!         Create a vector mode called NAME that contains COUNT boolean
!         elements and occupies BYTESIZE bytes in total.  Each boolean
!         element is of COMPONENT type and occupies (COUNT * BITS_PER_UNIT) /
!         BYTESIZE bits, with the element at index 0 occupying the lsb of the
!         first byte in memory.  Only the lowest bit of each element is
!         significant.
  
       OPAQUE_MODE (NAME, BYTESIZE)
          Create an opaque mode called NAME that is BYTESIZE bytes wide.
--- 148,159 ----
  	mode, with smaller numbers indicating a higher priority.
  
       VECTOR_BOOL_MODE (NAME, COUNT, COMPONENT, BYTESIZE)
! 	Create a vector mode called NAME that contains COUNT boolean
! 	elements and occupies BYTESIZE bytes in total.  Each boolean
! 	element is of COMPONENT type and occupies ((BYTESIZE * BITS_PER_UNIT)
! 	/ COUNT) bits, with the element at index 0 occupying the lsb of the
! 	first byte in memory.  Only the lowest bit of each element is
! 	significant.
  
       OPAQUE_MODE (NAME, BYTESIZE)
          Create an opaque mode called NAME that is BYTESIZE bytes wide.
diff -Nrcpad gcc-15-20251213/gcc/testsuite/ChangeLog gcc-15-20251220/gcc/testsuite/ChangeLog
*** gcc-15-20251213/gcc/testsuite/ChangeLog	Sat Dec 13 22:32:07 2025
--- gcc-15-20251220/gcc/testsuite/ChangeLog	Sat Dec 20 22:32:07 2025
***************
*** 1,3 ****
--- 1,65 ----
+ 2025-12-19  Yury Khrustalev  <yury.khrustalev@arm.com>
+ 
+ 	Backported from master:
+ 	2025-11-24  Yury Khrustalev  <yury.khrustalev@arm.com>
+ 
+ 	PR debug/121964
+ 	* g++.target/aarch64/dwarf-bit-stride-func.C: New test.
+ 	* g++.target/aarch64/dwarf-bit-stride-pragma.C: New test.
+ 	* g++.target/aarch64/dwarf-bit-stride-pragma-sme.C: New test.
+ 	* g++.target/aarch64/sve/dwarf-bit-stride.C: New test.
+ 	* gcc.target/aarch64/dwarf-bit-stride-func.c: New test.
+ 	* gcc.target/aarch64/dwarf-bit-stride-pragma.c: New test.
+ 	* gcc.target/aarch64/dwarf-bit-stride-pragma-sme.c: New test.
+ 	* gcc.target/aarch64/sve/dwarf-bit-stride.c: New test.
+ 
+ 2025-12-16  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-12-15  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/122752
+ 	* g++.dg/template/dependent-name19.C: New test.
+ 
+ 2025-12-16  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-11-19  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/122668
+ 	PR c++/114764
+ 	* g++.dg/cpp0x/noexcept91.C: New test.
+ 
+ 2025-12-16  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	Backported from master:
+ 	2025-12-09  Robin Dapp  <rdapp@ventanamicro.com>
+ 
+ 	PR target/123022
+ 	* gcc.target/riscv/rvv/autovec/pr123022-2.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/pr123022.c: New test.
+ 
+ 2025-12-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2025-12-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	PR fortran/107406
+ 	* gfortran.dg/coarray_lock_3.f90: Remove dg-error on
+ 	valid code.
+ 	* gfortran.dg/coarray_lock_4.f90: Likewise.
+ 	* gfortran.dg/coarray_lock_5.f90: Likwise
+ 	Co-Authored by: Andre Vehreschild <vehre@gcc.gnu.org>
+ 
+ 2025-12-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/reduce4.adb: New test.
+ 	* gnat.dg/reduce5.adb: Likewise.
+ 
+ 2025-12-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/lto30.ads, gnat.dg/lto30.adb: New test.
+ 
  2025-12-11  Eric Botcazou  <ebotcazou@adacore.com>
  
  	* gnat.dg/specs/put_image2.ads: New test.
diff -Nrcpad gcc-15-20251213/gcc/testsuite/g++.dg/cpp0x/noexcept91.C gcc-15-20251220/gcc/testsuite/g++.dg/cpp0x/noexcept91.C
*** gcc-15-20251213/gcc/testsuite/g++.dg/cpp0x/noexcept91.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20251220/gcc/testsuite/g++.dg/cpp0x/noexcept91.C	Sat Dec 20 22:32:08 2025
***************
*** 0 ****
--- 1,15 ----
+ // PR c++/122668
+ // { dg-do compile { target c++11 } }
+ 
+ template<class T>
+ struct A {
+   friend void f1(A& a) noexcept(noexcept(a.g(0))) { }
+   friend void f2(A& a) noexcept(noexcept(A::g(0))) { }
+   static void g(int) noexcept;
+ };
+ 
+ int main() {
+   A<int> a;
+   static_assert(noexcept(f1(a)), "");
+   static_assert(noexcept(f2(a)), "");
+ }
diff -Nrcpad gcc-15-20251213/gcc/testsuite/g++.dg/template/dependent-name19.C gcc-15-20251220/gcc/testsuite/g++.dg/template/dependent-name19.C
*** gcc-15-20251213/gcc/testsuite/g++.dg/template/dependent-name19.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20251220/gcc/testsuite/g++.dg/template/dependent-name19.C	Sat Dec 20 22:32:09 2025
***************
*** 0 ****
--- 1,22 ----
+ // PR c++/122752
+ 
+ struct set {
+   typedef unsigned size_type;
+   unsigned size() { return 42; }
+ };
+ 
+ template<class S>
+ struct A {
+   typedef S VertexSet;
+   typename VertexSet::size_type size();
+   VertexSet vertices_;
+ };
+ 
+ template<class S>
+ inline typename A<S>::VertexSet::size_type A<S>::size()
+ { return vertices_.size(); }
+ 
+ int main() {
+   A<set> a;
+   a.size();
+ }
diff -Nrcpad gcc-15-20251213/gcc/testsuite/g++.target/aarch64/dwarf-bit-stride-func.C gcc-15-20251220/gcc/testsuite/g++.target/aarch64/dwarf-bit-stride-func.C
*** gcc-15-20251213/gcc/testsuite/g++.target/aarch64/dwarf-bit-stride-func.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20251220/gcc/testsuite/g++.target/aarch64/dwarf-bit-stride-func.C	Sat Dec 20 22:32:09 2025
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ // { dg-options "-g -dA" }
+ // { dg-final { scan-assembler-times "DW_AT_name: \"svbool_t\"" 1 } }
+ // { dg-final { scan-assembler-times ".byte	0x1	// DW_AT_bit_stride" 1 } }
+ // { dg-final { scan-assembler-times ".byte	0x1	// DW_AT_bit_size" 1 } }
+ 
+ #include <arm_sve.h>
+ 
+ [[gnu::target ("arch=armv9-a+sve")]]
+ void fun ()
+ {
+   volatile svbool_t pred8 = svwhilelt_b8_u32 (0u, 1u);
+   volatile svbool_t pred16 = svwhilelt_b16_u32 (0u, 3u);
+   volatile svbool_t pred32 = svwhilelt_b32_u32 (0u, 7u);
+   volatile svbool_t pred64 = svwhilelt_b64_u32 (0u, 11u);
+ }
diff -Nrcpad gcc-15-20251213/gcc/testsuite/g++.target/aarch64/dwarf-bit-stride-pragma-sme.C gcc-15-20251220/gcc/testsuite/g++.target/aarch64/dwarf-bit-stride-pragma-sme.C
*** gcc-15-20251213/gcc/testsuite/g++.target/aarch64/dwarf-bit-stride-pragma-sme.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20251220/gcc/testsuite/g++.target/aarch64/dwarf-bit-stride-pragma-sme.C	Sat Dec 20 22:32:09 2025
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ // { dg-options "-g -dA" }
+ // { dg-final { scan-assembler-times "DW_AT_name: \"svbool_t\"" 1 } }
+ // { dg-final { scan-assembler-times "DW_AT_name: \"svcount_t\"" 1 } }
+ // { dg-final { scan-assembler-times ".byte	0x1	// DW_AT_bit_stride" 1 } }
+ // { dg-final { scan-assembler-times ".byte	0x1	// DW_AT_bit_size" 1 } }
+ 
+ #include <arm_sme.h>
+ 
+ #pragma GCC target "+sve2p1+sme2"
+ 
+ void fun ()
+ {
+   volatile svbool_t pred;
+   volatile svcount_t count;
+ }
diff -Nrcpad gcc-15-20251213/gcc/testsuite/g++.target/aarch64/dwarf-bit-stride-pragma.C gcc-15-20251220/gcc/testsuite/g++.target/aarch64/dwarf-bit-stride-pragma.C
*** gcc-15-20251213/gcc/testsuite/g++.target/aarch64/dwarf-bit-stride-pragma.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20251220/gcc/testsuite/g++.target/aarch64/dwarf-bit-stride-pragma.C	Sat Dec 20 22:32:09 2025
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ // { dg-options "-g -dA" }
+ // { dg-final { scan-assembler-times "DW_AT_name: \"svbool_t\"" 1 } }
+ // { dg-final { scan-assembler-times ".byte	0x1	// DW_AT_bit_stride" 1 } }
+ // { dg-final { scan-assembler-times ".byte	0x1	// DW_AT_bit_size" 1 } }
+ 
+ #include <arm_sve.h>
+ 
+ #pragma GCC target "+sve"
+ 
+ void fun ()
+ {
+   volatile svbool_t pred8 = svwhilelt_b8_u32 (0u, 1u);
+   volatile svbool_t pred16 = svwhilelt_b16_u32 (0u, 3u);
+   volatile svbool_t pred32 = svwhilelt_b32_u32 (0u, 7u);
+   volatile svbool_t pred64 = svwhilelt_b64_u32 (0u, 11u);
+ }
diff -Nrcpad gcc-15-20251213/gcc/testsuite/g++.target/aarch64/sve/dwarf-bit-stride.C gcc-15-20251220/gcc/testsuite/g++.target/aarch64/sve/dwarf-bit-stride.C
*** gcc-15-20251213/gcc/testsuite/g++.target/aarch64/sve/dwarf-bit-stride.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20251220/gcc/testsuite/g++.target/aarch64/sve/dwarf-bit-stride.C	Sat Dec 20 22:32:09 2025
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ // { dg-options "-g -dA" }
+ // { dg-final { scan-assembler-times "DW_AT_name: \"svbool_t\"" 1 } }
+ // { dg-final { scan-assembler-times ".byte	0x1	// DW_AT_bit_stride" 1 } }
+ // { dg-final { scan-assembler-times ".byte	0x1	// DW_AT_bit_size" 1 } }
+ 
+ #include <arm_sve.h>
+ 
+ void fun ()
+ {
+   volatile svbool_t pred8 = svwhilelt_b8_u32 (0u, 1u);
+   volatile svbool_t pred16 = svwhilelt_b16_u32 (0u, 3u);
+   volatile svbool_t pred32 = svwhilelt_b32_u32 (0u, 7u);
+   volatile svbool_t pred64 = svwhilelt_b64_u32 (0u, 11u);
+ }
diff -Nrcpad gcc-15-20251213/gcc/testsuite/gcc.target/aarch64/dwarf-bit-stride-func.c gcc-15-20251220/gcc/testsuite/gcc.target/aarch64/dwarf-bit-stride-func.c
*** gcc-15-20251213/gcc/testsuite/gcc.target/aarch64/dwarf-bit-stride-func.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251220/gcc/testsuite/gcc.target/aarch64/dwarf-bit-stride-func.c	Sat Dec 20 22:32:10 2025
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ // { dg-options "-g -dA" }
+ // { dg-final { scan-assembler-times "DW_AT_name: \"__SVBool_t\"" 1 } }
+ // { dg-final { scan-assembler-times ".byte	0x1	// DW_AT_bit_stride" 1 } }
+ // { dg-final { scan-assembler-times ".byte	0x1	// DW_AT_bit_size" 1 } }
+ 
+ #include <arm_sve.h>
+ 
+ __attribute__((target("arch=armv9-a+sve")))
+ void fun ()
+ {
+   volatile svbool_t pred8 = svwhilelt_b8_u32 (0u, 1u);
+   volatile svbool_t pred16 = svwhilelt_b16_u32 (0u, 3u);
+   volatile svbool_t pred32 = svwhilelt_b32_u32 (0u, 7u);
+   volatile svbool_t pred64 = svwhilelt_b64_u32 (0u, 11u);
+ }
diff -Nrcpad gcc-15-20251213/gcc/testsuite/gcc.target/aarch64/dwarf-bit-stride-pragma-sme.c gcc-15-20251220/gcc/testsuite/gcc.target/aarch64/dwarf-bit-stride-pragma-sme.c
*** gcc-15-20251213/gcc/testsuite/gcc.target/aarch64/dwarf-bit-stride-pragma-sme.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251220/gcc/testsuite/gcc.target/aarch64/dwarf-bit-stride-pragma-sme.c	Sat Dec 20 22:32:10 2025
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ // { dg-options "-g -dA" }
+ // { dg-final { scan-assembler-times "DW_AT_name: \"__SVBool_t\"" 2 } }
+ // { dg-final { scan-assembler-times "DW_AT_name: \"__SVCount_t\"" 1 } }
+ // { dg-final { scan-assembler-times ".byte	0x1	// DW_AT_bit_stride" 2 } }
+ // { dg-final { scan-assembler-times ".byte	0x1	// DW_AT_bit_size" 1 } }
+ 
+ #pragma GCC target "+sve2p1+sme2"
+ 
+ void fun ()
+ {
+   volatile __SVBool_t pred;
+   volatile __SVCount_t count;
+ }
diff -Nrcpad gcc-15-20251213/gcc/testsuite/gcc.target/aarch64/dwarf-bit-stride-pragma.c gcc-15-20251220/gcc/testsuite/gcc.target/aarch64/dwarf-bit-stride-pragma.c
*** gcc-15-20251213/gcc/testsuite/gcc.target/aarch64/dwarf-bit-stride-pragma.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251220/gcc/testsuite/gcc.target/aarch64/dwarf-bit-stride-pragma.c	Sat Dec 20 22:32:10 2025
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ // { dg-options "-g -dA" }
+ // { dg-final { scan-assembler-times "DW_AT_name: \"__SVBool_t\"" 1 } }
+ // { dg-final { scan-assembler-times ".byte	0x1	// DW_AT_bit_stride" 1 } }
+ // { dg-final { scan-assembler-times ".byte	0x1	// DW_AT_bit_size" 1 } }
+ 
+ #include <arm_sve.h>
+ 
+ #pragma GCC target "+sve"
+ 
+ void fun ()
+ {
+   volatile svbool_t pred8 = svwhilelt_b8_u32 (0u, 1u);
+   volatile svbool_t pred16 = svwhilelt_b16_u32 (0u, 3u);
+   volatile svbool_t pred32 = svwhilelt_b32_u32 (0u, 7u);
+   volatile svbool_t pred64 = svwhilelt_b64_u32 (0u, 11u);
+ }
diff -Nrcpad gcc-15-20251213/gcc/testsuite/gcc.target/aarch64/sve/dwarf-bit-stride.c gcc-15-20251220/gcc/testsuite/gcc.target/aarch64/sve/dwarf-bit-stride.c
*** gcc-15-20251213/gcc/testsuite/gcc.target/aarch64/sve/dwarf-bit-stride.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251220/gcc/testsuite/gcc.target/aarch64/sve/dwarf-bit-stride.c	Sat Dec 20 22:32:10 2025
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ // { dg-options "-g -dA" }
+ // { dg-final { scan-assembler-times "DW_AT_name: \"__SVBool_t\"" 1 } }
+ // { dg-final { scan-assembler-times ".byte	0x1	// DW_AT_bit_stride" 1 } }
+ // { dg-final { scan-assembler-times ".byte	0x1	// DW_AT_bit_size" 1 } }
+ 
+ #include <arm_sve.h>
+ 
+ void fun ()
+ {
+   volatile svbool_t pred8 = svwhilelt_b8_u32 (0u, 1u);
+   volatile svbool_t pred16 = svwhilelt_b16_u32 (0u, 3u);
+   volatile svbool_t pred32 = svwhilelt_b32_u32 (0u, 7u);
+   volatile svbool_t pred64 = svwhilelt_b64_u32 (0u, 11u);
+ }
diff -Nrcpad gcc-15-20251213/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr123022-2.c gcc-15-20251220/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr123022-2.c
*** gcc-15-20251213/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr123022-2.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251220/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr123022-2.c	Sat Dec 20 22:32:12 2025
***************
*** 0 ****
--- 1,6 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -march=rv64gcv_zvl512b -mabi=lp64d -mrvv-vector-bits=zvl -fsigned-char" } */
+ 
+ #include "pr123022.c"
+ 
+ /* { dg-final { scan-assembler-not "vset.*zero,1," } } */
diff -Nrcpad gcc-15-20251213/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr123022.c gcc-15-20251220/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr123022.c
*** gcc-15-20251213/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr123022.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251220/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr123022.c	Sat Dec 20 22:32:12 2025
***************
*** 0 ****
--- 1,21 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target rvv_zvl512b_ok } */
+ /* { dg-options "-O3 -march=rv64gcv_zvl512b -mabi=lp64d -mrvv-vector-bits=zvl -fsigned-char" } */
+ unsigned e[2][2];
+ long a;
+ char c[2];
+ 
+ int
+ main ()
+ {
+   long long b;
+   c[1] = 3;
+   for (unsigned h = 0; h < 2; h++)
+     for (int i = c[0]; i < 5; i += 5)
+       for (int j = 0; j < 219; j++)
+ 	a = c[h] ? e[h][h] + 3326195747 : 0;
+ 
+   b = a;
+   if (b != 3326195747)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-15-20251213/gcc/testsuite/gfortran.dg/coarray_lock_3.f90 gcc-15-20251220/gcc/testsuite/gfortran.dg/coarray_lock_3.f90
*** gcc-15-20251213/gcc/testsuite/gfortran.dg/coarray_lock_3.f90	Sat Dec 13 22:32:14 2025
--- gcc-15-20251220/gcc/testsuite/gfortran.dg/coarray_lock_3.f90	Sat Dec 20 22:32:12 2025
*************** end module m
*** 24,30 ****
  module m2
    use iso_fortran_env
    type t2
!     type(lock_type), allocatable :: x ! { dg-error "Allocatable component x at .1. of type LOCK_TYPE must have a codimension" }
    end type t2
  end module m2
  
--- 24,30 ----
  module m2
    use iso_fortran_env
    type t2
!     type(lock_type), allocatable :: x
    end type t2
  end module m2
  
diff -Nrcpad gcc-15-20251213/gcc/testsuite/gfortran.dg/coarray_lock_4.f90 gcc-15-20251220/gcc/testsuite/gfortran.dg/coarray_lock_4.f90
*** gcc-15-20251213/gcc/testsuite/gfortran.dg/coarray_lock_4.f90	Sat Dec 13 22:32:14 2025
--- gcc-15-20251220/gcc/testsuite/gfortran.dg/coarray_lock_4.f90	Sat Dec 20 22:32:12 2025
*************** subroutine more_tests
*** 49,55 ****
    type(t1) :: x1 ! OK
  
    type t2
!     type(lock_type), allocatable :: c1(:) ! { dg-error "Allocatable component c1 at .1. of type LOCK_TYPE must have a codimension" }
    end type t2
  
    type t3
--- 49,55 ----
    type(t1) :: x1 ! OK
  
    type t2
!     type(lock_type), allocatable :: c1(:)
    end type t2
  
    type t3
diff -Nrcpad gcc-15-20251213/gcc/testsuite/gfortran.dg/coarray_lock_5.f90 gcc-15-20251220/gcc/testsuite/gfortran.dg/coarray_lock_5.f90
*** gcc-15-20251213/gcc/testsuite/gfortran.dg/coarray_lock_5.f90	Sat Dec 13 22:32:14 2025
--- gcc-15-20251220/gcc/testsuite/gfortran.dg/coarray_lock_5.f90	Sat Dec 20 22:32:12 2025
*************** subroutine test2()
*** 32,38 ****
    use iso_fortran_env
    implicit none
    type t
!     type(lock_type), allocatable :: lock ! { dg-error "Allocatable component lock at .1. of type LOCK_TYPE must have a codimension" }
    end type t
    type t2
      type(lock_type) :: lock
--- 32,38 ----
    use iso_fortran_env
    implicit none
    type t
!     type(lock_type), allocatable :: lock
    end type t
    type t2
      type(lock_type) :: lock
diff -Nrcpad gcc-15-20251213/gcc/testsuite/gnat.dg/lto30.adb gcc-15-20251220/gcc/testsuite/gnat.dg/lto30.adb
*** gcc-15-20251213/gcc/testsuite/gnat.dg/lto30.adb	Thu Jan  1 00:00:00 1970
--- gcc-15-20251220/gcc/testsuite/gnat.dg/lto30.adb	Sat Dec 20 22:32:13 2025
***************
*** 0 ****
--- 1,31 ----
+ -- { dg-do compile }
+ -- { dg-options "-flto" { target lto } }
+ 
+ with Ada.Unchecked_Conversion;
+ with System;
+ 
+ package body Lto30 is
+ 
+    generic
+       type T is private;
+    package Unbounded_Arrays is
+       type Unbounded_Array is array (Natural range 1 .. Natural'Last) of T;
+       type Unbounded_Array_Access is access Unbounded_Array;
+       function Convert is new
+          Ada.Unchecked_Conversion (System.Address, Unbounded_Array_Access);
+    end Unbounded_Arrays;
+ 
+    package Atom_Arrays is new Unbounded_Arrays (Ptr);
+    use Atom_Arrays;
+ 
+    procedure Proc is
+       procedure Foo (Targets : access Unbounded_Array_Access);
+       pragma Import (Ada, Foo, "Foo");
+ 
+       Output : aliased Unbounded_Array_Access;
+ 
+    begin
+       Foo (Output'Unchecked_Access);
+    end;
+ 
+ end Lto30;
diff -Nrcpad gcc-15-20251213/gcc/testsuite/gnat.dg/lto30.ads gcc-15-20251220/gcc/testsuite/gnat.dg/lto30.ads
*** gcc-15-20251213/gcc/testsuite/gnat.dg/lto30.ads	Thu Jan  1 00:00:00 1970
--- gcc-15-20251220/gcc/testsuite/gnat.dg/lto30.ads	Sat Dec 20 22:32:13 2025
***************
*** 0 ****
--- 1,13 ----
+ package Lto30 is
+ 
+    type Rec is private;
+ 
+    type Ptr is access all Rec;
+ 
+    procedure Proc;
+ 
+ private
+ 
+    type Rec is null record;
+ 
+ end Lto30;
diff -Nrcpad gcc-15-20251213/gcc/testsuite/gnat.dg/reduce4.adb gcc-15-20251220/gcc/testsuite/gnat.dg/reduce4.adb
*** gcc-15-20251213/gcc/testsuite/gnat.dg/reduce4.adb	Thu Jan  1 00:00:00 1970
--- gcc-15-20251220/gcc/testsuite/gnat.dg/reduce4.adb	Sat Dec 20 22:32:13 2025
***************
*** 0 ****
--- 1,9 ----
+ -- { dg-do compile }
+ -- { dg-options "-gnat2022" }
+ 
+ procedure Reduce4 (S : String) is
+ begin
+   if [for E of S => 1]'Reduce ("+", 0) = 3 then
+     null;
+   end if;
+ end;
diff -Nrcpad gcc-15-20251213/gcc/testsuite/gnat.dg/reduce5.adb gcc-15-20251220/gcc/testsuite/gnat.dg/reduce5.adb
*** gcc-15-20251213/gcc/testsuite/gnat.dg/reduce5.adb	Thu Jan  1 00:00:00 1970
--- gcc-15-20251220/gcc/testsuite/gnat.dg/reduce5.adb	Sat Dec 20 22:32:13 2025
***************
*** 0 ****
--- 1,36 ----
+ -- { dg-do compile }
+ -- { dg-options "-gnat2022" }
+ 
+ with Ada.Text_IO; use Ada.Text_IO;
+ 
+ procedure Reduce5 is
+    subtype Chunk_Number is Natural range 1 .. 8;
+    Grid  : array (1 .. 80, 1 .. 100) of Boolean := (others => (others => False));
+    Partial_Sum, Partial_Max : array (Chunk_Number) of Natural := (others => 0);
+    Partial_Min              : array (Chunk_Number) of Natural := (others => Natural'Last);
+ 
+ begin
+    for I in Grid'Range (1) loop
+       Grid (I, 1) := (for all J in Grid'Range (2) => Grid (I, J) = True);
+    end loop;
+ 
+    for I in Grid'Range (1) loop
+       declare
+          True_Count : constant Natural :=
+            [for J in Grid'Range(2) => (if Grid (I, J) then 1 else 0)]'Reduce("+",0);
+       begin
+          Partial_Sum (I) := @ + True_Count;
+          Partial_Min (I) := Natural'Min (@, True_Count);
+          Partial_Max (I) := Natural'Max (@, True_Count);
+       end;
+    end loop;
+ 
+   Put_Line ("Total=" & Natural'Image (Partial_Sum'Reduce ("+", 0)) &
+             ", Min=" & Natural'Image (Partial_Min'Reduce(Natural'Min, Natural'Last)) &
+             ", Max=" & Natural'Image (Partial_Max'Reduce(Natural'Max, 0)));
+ 
+   Put_Line ("Total=" & Partial_Sum'Reduce ("+", 0)'Image &
+             ", Min=" & Partial_Min'Reduce(Natural'Min, Natural'Last)'Image &
+             ", Max=" & Partial_Max'Reduce(Natural'Max, 0)'Image);
+ 
+ end;
diff -Nrcpad gcc-15-20251213/libstdc++-v3/ChangeLog gcc-15-20251220/libstdc++-v3/ChangeLog
*** gcc-15-20251213/libstdc++-v3/ChangeLog	Sat Dec 13 22:32:16 2025
--- gcc-15-20251220/libstdc++-v3/ChangeLog	Sat Dec 20 22:32:15 2025
***************
*** 1,3 ****
--- 1,80 ----
+ 2025-12-17  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.
+ 
+ 2025-12-17  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-12-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/122907
+ 	* include/bits/cpp_type_traits.h (__memcpyable_integer<bool>):
+ 	Define as false.
+ 	* testsuite/25_algorithms/copy/122907.cc: New test.
+ 
+ 2025-12-17  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-12-06  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/atomic_wait.h (__detail::__atomic_compare): Use
+ 	std::addressof instead of &.
+ 	* include/std/atomic (atomic::wait, atomic::notify_one)
+ 	(atomic::notify_all): Likewise.
+ 
+ 2025-12-17  Vladimir Bespalov  <vlad.bespalov@jetstreamsoft.com>
+ 
+ 	Backported from master:
+ 	2025-12-03  Vladimir Bespalov  <vlad.bespalov@jetstreamsoft.com>
+ 
+ 	PR libstdc++/122812
+ 	* python/libstdcxx/v6/printers.py (lookup_templ_spec): Use
+ 	gdb.Type.tag if present.
+ 
+ 2025-12-17  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-11-27  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* testsuite/performance/23_containers/sort_search/list.cc: Cast
+ 	results to void to suppress -Wunused-result warnings from
+ 	nodiscard functions.
+ 	* testsuite/performance/25_algorithms/equal_deque_iterators.cc:
+ 	Likewise.
+ 	* testsuite/performance/25_algorithms/search_n.cc: Likewise.
+ 
+ 2025-12-16  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-12-05  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR libstdc++/120446
+ 	* include/bits/version.def (common_reference): New.
+ 	* include/bits/version.h: Regenerate.
+ 	* include/std/type_traits (__glibcxx_want_common_reference):
+ 	Define.
+ 	(__common_reference_impl<T1, T2, 1>): Add pointer convertibility
+ 	constraints as per P2655R3.
+ 	* testsuite/20_util/common_reference/p2655r3.cc: New test.
+ 
+ 2025-12-16  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-12-05  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/120446
+ 	* include/std/type_traits (__common_reference_impl): Rewrite
+ 	partial specializations to use requires-clause instead of
+ 	an additional void_t template parameter.  Consolidate the
+ 	partial specializations corresponding to bullet 1.
+ 
  2025-12-02  Patrick Palka  <ppalka@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-15-20251213/libstdc++-v3/include/bits/atomic_wait.h gcc-15-20251220/libstdc++-v3/include/bits/atomic_wait.h
*** gcc-15-20251213/libstdc++-v3/include/bits/atomic_wait.h	Sat Dec 13 22:32:16 2025
--- gcc-15-20251220/libstdc++-v3/include/bits/atomic_wait.h	Sat Dec 20 22:32:15 2025
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 188,194 ****
        bool __atomic_compare(const _Tp& __a, const _Tp& __b)
        {
  	// TODO make this do the correct padding bit ignoring comparison
! 	return __builtin_memcmp(&__a, &__b, sizeof(_Tp)) == 0;
        }
  
      struct __waiter_pool_base
--- 188,195 ----
        bool __atomic_compare(const _Tp& __a, const _Tp& __b)
        {
  	// TODO make this do the correct padding bit ignoring comparison
! 	return __builtin_memcmp(std::addressof(__a), std::addressof(__b),
! 				sizeof(_Tp)) == 0;
        }
  
      struct __waiter_pool_base
diff -Nrcpad gcc-15-20251213/libstdc++-v3/include/bits/cpp_type_traits.h gcc-15-20251220/libstdc++-v3/include/bits/cpp_type_traits.h
*** gcc-15-20251213/libstdc++-v3/include/bits/cpp_type_traits.h	Sat Dec 13 22:32:16 2025
--- gcc-15-20251220/libstdc++-v3/include/bits/cpp_type_traits.h	Sat Dec 20 22:32:15 2025
*************** __INT_N(__GLIBCXX_TYPE_INT_N_3)
*** 503,508 ****
--- 503,515 ----
      struct __memcpyable_integer<volatile _Tp>
      { enum { __width = 0 }; };
  
+   // Assigning an integer to bool needs to convert all non-zero values to true
+   // so it is not a memcpyable integer.
+   // __memcpyable<bool*, bool*> is still true though.
+   template<>
+     struct __memcpyable_integer<bool>
+     { enum { __width = 0 }; };
+ 
    // Specializations for __intNN types with padding bits.
  #if defined __GLIBCXX_TYPE_INT_N_0 && __GLIBCXX_BITSIZE_INT_N_0 % __CHAR_BIT__
    __extension__
diff -Nrcpad gcc-15-20251213/libstdc++-v3/include/bits/version.def gcc-15-20251220/libstdc++-v3/include/bits/version.def
*** gcc-15-20251213/libstdc++-v3/include/bits/version.def	Sat Dec 13 22:32:16 2025
--- gcc-15-20251220/libstdc++-v3/include/bits/version.def	Sat Dec 20 22:32:15 2025
*************** ftms = {
*** 1694,1699 ****
--- 1694,1707 ----
  };
  
  ftms = {
+   name = common_reference;
+   values = {
+     v = 202302;
+     cxxmin = 20; // We treat P2655R3 as a DR against C++20.
+   };
+ };
+ 
+ ftms = {
    name = formatters;
    values = {
      v = 202302;
diff -Nrcpad gcc-15-20251213/libstdc++-v3/include/bits/version.h gcc-15-20251220/libstdc++-v3/include/bits/version.h
*** gcc-15-20251213/libstdc++-v3/include/bits/version.h	Sat Dec 13 22:32:16 2025
--- gcc-15-20251220/libstdc++-v3/include/bits/version.h	Sat Dec 20 22:32:15 2025
***************
*** 1890,1895 ****
--- 1890,1905 ----
  #endif /* !defined(__cpp_lib_flat_set) && defined(__glibcxx_want_flat_set) */
  #undef __glibcxx_want_flat_set
  
+ #if !defined(__cpp_lib_common_reference)
+ # if (__cplusplus >= 202002L)
+ #  define __glibcxx_common_reference 202302L
+ #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_common_reference)
+ #   define __cpp_lib_common_reference 202302L
+ #  endif
+ # endif
+ #endif /* !defined(__cpp_lib_common_reference) && defined(__glibcxx_want_common_reference) */
+ #undef __glibcxx_want_common_reference
+ 
  #if !defined(__cpp_lib_formatters)
  # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
  #  define __glibcxx_formatters 202302L
diff -Nrcpad gcc-15-20251213/libstdc++-v3/include/std/atomic gcc-15-20251220/libstdc++-v3/include/std/atomic
*** gcc-15-20251213/libstdc++-v3/include/std/atomic	Sat Dec 13 22:32:17 2025
--- gcc-15-20251220/libstdc++-v3/include/std/atomic	Sat Dec 20 22:32:15 2025
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 401,421 ****
        void
        wait(_Tp __old, memory_order __m = memory_order_seq_cst) const noexcept
        {
! 	std::__atomic_wait_address_v(&_M_i, __old,
! 			   [__m, this] { return this->load(__m); });
        }
  
        // TODO add const volatile overload
  
        void
        notify_one() noexcept
!       { std::__atomic_notify_address(&_M_i, false); }
  
        void
        notify_all() noexcept
!       { std::__atomic_notify_address(&_M_i, true); }
  #endif // __cpp_lib_atomic_wait
- 
      };
  
    /// Partial specialization for pointer types.
--- 401,420 ----
        void
        wait(_Tp __old, memory_order __m = memory_order_seq_cst) const noexcept
        {
! 	std::__atomic_wait_address_v(std::addressof(_M_i), __old,
! 				     [__m, this] { return this->load(__m); });
        }
  
        // TODO add const volatile overload
  
        void
        notify_one() noexcept
!       { std::__atomic_notify_address(std::addressof(_M_i), false); }
  
        void
        notify_all() noexcept
!       { std::__atomic_notify_address(std::addressof(_M_i), true); }
  #endif // __cpp_lib_atomic_wait
      };
  
    /// Partial specialization for pointer types.
diff -Nrcpad gcc-15-20251213/libstdc++-v3/include/std/chrono gcc-15-20251220/libstdc++-v3/include/std/chrono
*** gcc-15-20251213/libstdc++-v3/include/std/chrono	Sat Dec 13 22:32:17 2025
--- gcc-15-20251220/libstdc++-v3/include/std/chrono	Sat Dec 20 22:32:15 2025
*************** namespace __detail
*** 3260,3266 ****
        };
        // 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)
--- 3260,3266 ----
        };
        // The list above is known to be valid until (at least) this date
        // and only contains positive leap seconds.
!       constexpr sys_seconds __expires(1782604800s); // 2026-06-28 00:00:00 UTC
  
  #if _GLIBCXX_USE_CXX11_ABI || ! _GLIBCXX_USE_DUAL_ABI
        if (__ss > __expires)
diff -Nrcpad gcc-15-20251213/libstdc++-v3/include/std/type_traits gcc-15-20251220/libstdc++-v3/include/std/type_traits
*** gcc-15-20251213/libstdc++-v3/include/std/type_traits	Sat Dec 13 22:32:17 2025
--- gcc-15-20251220/libstdc++-v3/include/std/type_traits	Sat Dec 20 22:32:15 2025
***************
*** 41,46 ****
--- 41,47 ----
  
  #define __glibcxx_want_bool_constant
  #define __glibcxx_want_bounded_array_traits
+ #define __glibcxx_want_common_reference
  #define __glibcxx_want_has_unique_object_representations
  #define __glibcxx_want_integral_constant_callable
  #define __glibcxx_want_is_aggregate
*************** template<typename _Ret, typename _Fn, ty
*** 4113,4119 ****
      { using type = _Tp0; };
  
    /// @cond undocumented
!   template<typename _Tp1, typename _Tp2, int _Bullet = 1, typename = void>
      struct __common_reference_impl
      : __common_reference_impl<_Tp1, _Tp2, _Bullet + 1>
      { };
--- 4114,4120 ----
      { using type = _Tp0; };
  
    /// @cond undocumented
!   template<typename _Tp1, typename _Tp2, int _Bullet = 1>
      struct __common_reference_impl
      : __common_reference_impl<_Tp1, _Tp2, _Bullet + 1>
      { };
*************** template<typename _Ret, typename _Fn, ty
*** 4126,4171 ****
  
    // If T1 and T2 are reference types and COMMON-REF(T1, T2) is well-formed, ...
    template<typename _Tp1, typename _Tp2>
!     struct __common_reference_impl<_Tp1&, _Tp2&, 1,
! 				   void_t<__common_ref<_Tp1&, _Tp2&>>>
!     { using type = __common_ref<_Tp1&, _Tp2&>; };
! 
!   template<typename _Tp1, typename _Tp2>
!     struct __common_reference_impl<_Tp1&&, _Tp2&&, 1,
! 				   void_t<__common_ref<_Tp1&&, _Tp2&&>>>
!     { using type = __common_ref<_Tp1&&, _Tp2&&>; };
! 
!   template<typename _Tp1, typename _Tp2>
!     struct __common_reference_impl<_Tp1&, _Tp2&&, 1,
! 				   void_t<__common_ref<_Tp1&, _Tp2&&>>>
!     { using type = __common_ref<_Tp1&, _Tp2&&>; };
! 
!   template<typename _Tp1, typename _Tp2>
!     struct __common_reference_impl<_Tp1&&, _Tp2&, 1,
! 				   void_t<__common_ref<_Tp1&&, _Tp2&>>>
!     { using type = __common_ref<_Tp1&&, _Tp2&>; };
  
    // Otherwise, if basic_common_reference<...>::type is well-formed, ...
    template<typename _Tp1, typename _Tp2>
!     struct __common_reference_impl<_Tp1, _Tp2, 2,
! 				   void_t<__basic_common_ref<_Tp1, _Tp2>>>
      { using type = __basic_common_ref<_Tp1, _Tp2>; };
  
    // Otherwise, if COND-RES(T1, T2) is well-formed, ...
    template<typename _Tp1, typename _Tp2>
!     struct __common_reference_impl<_Tp1, _Tp2, 3,
! 				   void_t<__cond_res<_Tp1, _Tp2>>>
      { using type = __cond_res<_Tp1, _Tp2>; };
  
    // Otherwise, if common_type_t<T1, T2> is well-formed, ...
    template<typename _Tp1, typename _Tp2>
!     struct __common_reference_impl<_Tp1, _Tp2, 4,
! 				   void_t<common_type_t<_Tp1, _Tp2>>>
      { using type = common_type_t<_Tp1, _Tp2>; };
  
    // Otherwise, there shall be no member type.
    template<typename _Tp1, typename _Tp2>
!     struct __common_reference_impl<_Tp1, _Tp2, 5, void>
      { };
  
    // Otherwise, if sizeof...(T) is greater than two, ...
--- 4127,4164 ----
  
    // If T1 and T2 are reference types and COMMON-REF(T1, T2) is well-formed, ...
    template<typename _Tp1, typename _Tp2>
!     requires is_reference_v<_Tp1> && is_reference_v<_Tp2>
!       && requires { typename __common_ref<_Tp1, _Tp2>; }
! #if __cpp_lib_common_reference // C++ >= 20
!       && is_convertible_v<add_pointer_t<_Tp1>,
! 			  add_pointer_t<__common_ref<_Tp1, _Tp2>>>
!       && is_convertible_v<add_pointer_t<_Tp2>,
! 			  add_pointer_t<__common_ref<_Tp1, _Tp2>>>
! #endif
!     struct __common_reference_impl<_Tp1, _Tp2, 1>
!     { using type = __common_ref<_Tp1, _Tp2>; };
  
    // Otherwise, if basic_common_reference<...>::type is well-formed, ...
    template<typename _Tp1, typename _Tp2>
!     requires requires { typename __basic_common_ref<_Tp1, _Tp2>; }
!     struct __common_reference_impl<_Tp1, _Tp2, 2>
      { using type = __basic_common_ref<_Tp1, _Tp2>; };
  
    // Otherwise, if COND-RES(T1, T2) is well-formed, ...
    template<typename _Tp1, typename _Tp2>
!     requires requires { typename __cond_res<_Tp1, _Tp2>; }
!     struct __common_reference_impl<_Tp1, _Tp2, 3>
      { using type = __cond_res<_Tp1, _Tp2>; };
  
    // Otherwise, if common_type_t<T1, T2> is well-formed, ...
    template<typename _Tp1, typename _Tp2>
!     requires requires { typename common_type_t<_Tp1, _Tp2>; }
!     struct __common_reference_impl<_Tp1, _Tp2, 4>
      { using type = common_type_t<_Tp1, _Tp2>; };
  
    // Otherwise, there shall be no member type.
    template<typename _Tp1, typename _Tp2>
!     struct __common_reference_impl<_Tp1, _Tp2, 5>
      { };
  
    // Otherwise, if sizeof...(T) is greater than two, ...
*************** template<typename _Ret, typename _Fn, ty
*** 4184,4190 ****
      { };
    /// @endcond
  
! #endif // C++2a
  
    /// @} group metaprogramming
  
--- 4177,4183 ----
      { };
    /// @endcond
  
! #endif // C++20
  
    /// @} group metaprogramming
  
diff -Nrcpad gcc-15-20251213/libstdc++-v3/python/libstdcxx/v6/printers.py gcc-15-20251220/libstdc++-v3/python/libstdcxx/v6/printers.py
*** gcc-15-20251213/libstdc++-v3/python/libstdcxx/v6/printers.py	Sat Dec 13 22:32:17 2025
--- gcc-15-20251220/libstdc++-v3/python/libstdcxx/v6/printers.py	Sat Dec 20 22:32:15 2025
*************** def lookup_templ_spec(templ, *args):
*** 133,139 ****
      """
      Lookup template specialization templ<args...>.
      """
!     t = '{}<{}>'.format(templ, ', '.join([str(a) for a in args]))
      try:
          return gdb.lookup_type(t)
      except gdb.error as e:
--- 133,143 ----
      """
      Lookup template specialization templ<args...>.
      """
!     # Similar to PR67440, str(a) might contain unexpected type qualifiers.
!     t = '{}<{}>'.format(templ, ', '.join([ \
!             a.tag if isinstance(a, gdb.Type) and a.tag \
!             else str(a) \
!         for a in args]))
      try:
          return gdb.lookup_type(t)
      except gdb.error as e:
diff -Nrcpad gcc-15-20251213/libstdc++-v3/src/c++20/tzdata.zi gcc-15-20251220/libstdc++-v3/src/c++20/tzdata.zi
*** gcc-15-20251213/libstdc++-v3/src/c++20/tzdata.zi	Sat Dec 13 22:32:17 2025
--- gcc-15-20251220/libstdc++-v3/src/c++20/tzdata.zi	Sat Dec 20 22:32:15 2025
***************
*** 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,4 ----
! # version 2025c
  # 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 -
*************** 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
--- 2951,2957 ----
  -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
diff -Nrcpad gcc-15-20251213/libstdc++-v3/src/c++20/tzdb.cc gcc-15-20251220/libstdc++-v3/src/c++20/tzdb.cc
*** gcc-15-20251213/libstdc++-v3/src/c++20/tzdb.cc	Sat Dec 13 22:32:17 2025
--- gcc-15-20251220/libstdc++-v3/src/c++20/tzdb.cc	Sat Dec 20 22:32:15 2025
*************** namespace std::chrono
*** 1209,1216 ****
    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
--- 1209,1216 ----
    pair<vector<leap_second>, bool>
    tzdb_list::_Node::_S_read_leap_seconds()
    {
!     // This list is valid until at least 2026-06-28 00:00:00 UTC.
!     constexpr auto expires = sys_days{2026y/06/28};
      vector<leap_second> leaps
      {
        (leap_second)  78796800, // 1 Jul 1972
diff -Nrcpad gcc-15-20251213/libstdc++-v3/testsuite/20_util/common_reference/p2655r3.cc gcc-15-20251220/libstdc++-v3/testsuite/20_util/common_reference/p2655r3.cc
*** gcc-15-20251213/libstdc++-v3/testsuite/20_util/common_reference/p2655r3.cc	Thu Jan  1 00:00:00 1970
--- gcc-15-20251220/libstdc++-v3/testsuite/20_util/common_reference/p2655r3.cc	Sat Dec 20 22:32:16 2025
***************
*** 0 ****
--- 1,15 ----
+ // P2655R3 - common_reference_t of reference_wrapper Should Be a Reference Type
+ // Implemented as a DR against C++20
+ // { dg-do compile { target c++20 } }
+ 
+ #include <type_traits>
+ 
+ #if __cpp_lib_common_reference != 202302L
+ # error "Feature-test macro __cpp_lib_common_reference has wrong value in <type_traits>"
+ #endif
+ 
+ struct A { };
+ struct B { operator A&() const; };
+ 
+ static_assert( std::is_same_v<std::common_reference_t<A&, const B&>, A&> );
+ static_assert( std::is_same_v<std::common_reference_t<const B&, A&>, A&> );
diff -Nrcpad gcc-15-20251213/libstdc++-v3/testsuite/25_algorithms/copy/122907.cc gcc-15-20251220/libstdc++-v3/testsuite/25_algorithms/copy/122907.cc
*** gcc-15-20251213/libstdc++-v3/testsuite/25_algorithms/copy/122907.cc	Thu Jan  1 00:00:00 1970
--- gcc-15-20251220/libstdc++-v3/testsuite/25_algorithms/copy/122907.cc	Sat Dec 20 22:32:16 2025
***************
*** 0 ****
--- 1,43 ----
+ // { dg-do run }
+ 
+ // Bug libstdc++/122907
+ // std::copy incorrectly uses memcpy when copying from signed or unsigned char
+ // buffer to bool buffer
+ 
+ #include <algorithm>
+ #include <testsuite_hooks.h>
+ 
+ template<typename T>
+ __attribute__((noinline,noipa))
+ void
+ test_pr122907(T (&buf)[4])
+ {
+   unsigned char uc[4];
+   bool bool_buf[4];
+   std::copy(buf, buf+1, bool_buf);
+   std::copy(bool_buf, bool_buf+1, uc);
+   VERIFY(uc[0] == bool(buf[0]));
+   std::copy(buf, buf+4, bool_buf);
+   std::copy(bool_buf, bool_buf+4, uc);
+   VERIFY(uc[0] == bool(buf[0]));
+   VERIFY(uc[1] == bool(buf[1]));
+   VERIFY(uc[2] == bool(buf[2]));
+   VERIFY(uc[3] == bool(buf[3]));
+ }
+ 
+ template<typename T>
+ void
+ test_pr122907()
+ {
+   T buf[4] = { (T)3,  (T)2, (T)1, (T)0 };
+   test_pr122907(buf);
+ }
+ 
+ int main()
+ {
+   test_pr122907<char>();
+   test_pr122907<signed char>();
+   test_pr122907<unsigned char>();
+   test_pr122907<bool>();
+   test_pr122907<int>();
+ }
diff -Nrcpad gcc-15-20251213/libstdc++-v3/testsuite/performance/23_containers/sort_search/list.cc gcc-15-20251220/libstdc++-v3/testsuite/performance/23_containers/sort_search/list.cc
*** gcc-15-20251213/libstdc++-v3/testsuite/performance/23_containers/sort_search/list.cc	Sat Dec 13 22:32:17 2025
--- gcc-15-20251220/libstdc++-v3/testsuite/performance/23_containers/sort_search/list.cc	Sat Dec 20 22:32:16 2025
*************** template<typename Container, int Iter>
*** 34,40 ****
  
  	//Search for random values that may or may not belong to the list.
  	for (int i = 0; i < 50; ++i)
! 	  std::find(obj.begin(), obj.end(), rand() % 100001);
        
  	obj.sort();
        
--- 34,40 ----
  
  	//Search for random values that may or may not belong to the list.
  	for (int i = 0; i < 50; ++i)
! 	  (void) std::find(obj.begin(), obj.end(), rand() % 100001);
        
  	obj.sort();
        
diff -Nrcpad gcc-15-20251213/libstdc++-v3/testsuite/performance/25_algorithms/equal_deque_iterators.cc gcc-15-20251220/libstdc++-v3/testsuite/performance/25_algorithms/equal_deque_iterators.cc
*** gcc-15-20251213/libstdc++-v3/testsuite/performance/25_algorithms/equal_deque_iterators.cc	Sat Dec 13 22:32:17 2025
--- gcc-15-20251220/libstdc++-v3/testsuite/performance/25_algorithms/equal_deque_iterators.cc	Sat Dec 20 22:32:16 2025
*************** int main()
*** 34,40 ****
    start_counters(time, resource);
    for (int i = 0; i < 1000; ++i)
      for (int j = 0; j < 3000; ++j)
!       std::equal(data.begin(), data.begin() + j, d.begin());
    stop_counters(time, resource);
    report_performance(__FILE__, "deque vs deque", time, resource);
    clear_counters(time, resource);
--- 34,40 ----
    start_counters(time, resource);
    for (int i = 0; i < 1000; ++i)
      for (int j = 0; j < 3000; ++j)
!       (void) std::equal(data.begin(), data.begin() + j, d.begin());
    stop_counters(time, resource);
    report_performance(__FILE__, "deque vs deque", time, resource);
    clear_counters(time, resource);
*************** int main()
*** 44,50 ****
    start_counters(time, resource);
    for (int i = 0; i < 1000; ++i)
      for (int j = 0; j < 3000; ++j)
!       std::equal(data.begin(), data.begin() + j, v.begin());
    stop_counters(time, resource);
    report_performance(__FILE__, "deque vs vector", time, resource);
    clear_counters(time, resource);
--- 44,50 ----
    start_counters(time, resource);
    for (int i = 0; i < 1000; ++i)
      for (int j = 0; j < 3000; ++j)
!       (void) std::equal(data.begin(), data.begin() + j, v.begin());
    stop_counters(time, resource);
    report_performance(__FILE__, "deque vs vector", time, resource);
    clear_counters(time, resource);
*************** int main()
*** 54,60 ****
    start_counters(time, resource);
    for (int i = 0; i < 1000; ++i)
      for (int j = 0; j < 3000; ++j)
!       std::equal(v.begin(), v.begin() + j, d.begin());
    stop_counters(time, resource);
    report_performance(__FILE__, "vector vs deque", time, resource);
    clear_counters(time, resource);
--- 54,60 ----
    start_counters(time, resource);
    for (int i = 0; i < 1000; ++i)
      for (int j = 0; j < 3000; ++j)
!       (void) std::equal(v.begin(), v.begin() + j, d.begin());
    stop_counters(time, resource);
    report_performance(__FILE__, "vector vs deque", time, resource);
    clear_counters(time, resource);
*************** int main()
*** 64,70 ****
    start_counters(time, resource);
    for (int i = 0; i < 1000; ++i)
      for (int j = 0; j < 3000; ++j)
!       std::equal(data.begin(), data.begin() + j, cv.begin());
    stop_counters(time, resource);
    report_performance(__FILE__, "int deque vs char vector", time, resource);
    clear_counters(time, resource);
--- 64,70 ----
    start_counters(time, resource);
    for (int i = 0; i < 1000; ++i)
      for (int j = 0; j < 3000; ++j)
!       (void) std::equal(data.begin(), data.begin() + j, cv.begin());
    stop_counters(time, resource);
    report_performance(__FILE__, "int deque vs char vector", time, resource);
    clear_counters(time, resource);
*************** int main()
*** 74,80 ****
    start_counters(time, resource);
    for (int i = 0; i < 1000; ++i)
      for (int j = 0; j < 3000; ++j)
!       std::equal(cv.begin(), cv.begin() + j, d.begin());
    stop_counters(time, resource);
    report_performance(__FILE__, "char vector vs int deque", time, resource);
  
--- 74,80 ----
    start_counters(time, resource);
    for (int i = 0; i < 1000; ++i)
      for (int j = 0; j < 3000; ++j)
!       (void) std::equal(cv.begin(), cv.begin() + j, d.begin());
    stop_counters(time, resource);
    report_performance(__FILE__, "char vector vs int deque", time, resource);
  
diff -Nrcpad gcc-15-20251213/libstdc++-v3/testsuite/performance/25_algorithms/search_n.cc gcc-15-20251220/libstdc++-v3/testsuite/performance/25_algorithms/search_n.cc
*** gcc-15-20251213/libstdc++-v3/testsuite/performance/25_algorithms/search_n.cc	Sat Dec 13 22:32:17 2025
--- gcc-15-20251220/libstdc++-v3/testsuite/performance/25_algorithms/search_n.cc	Sat Dec 20 22:32:16 2025
*************** main(void)
*** 47,53 ****
    __gnu_test::test_container<int, forward_iterator_wrapper> fcon(ary, ary + length);
    start_counters(time, resource);
    for(int i = 0; i < 100; i++)
!     search_n(fcon.begin(), fcon.end(), 10, 1);
    stop_counters(time, resource);
    report_performance(__FILE__, "forward iterator", time, resource);
    clear_counters(time, resource);
--- 47,53 ----
    __gnu_test::test_container<int, forward_iterator_wrapper> fcon(ary, ary + length);
    start_counters(time, resource);
    for(int i = 0; i < 100; i++)
!     (void) search_n(fcon.begin(), fcon.end(), 10, 1);
    stop_counters(time, resource);
    report_performance(__FILE__, "forward iterator", time, resource);
    clear_counters(time, resource);
*************** main(void)
*** 55,61 ****
    __gnu_test::test_container<int, random_access_iterator_wrapper> rcon(ary, ary + length);
    start_counters(time, resource);
    for(int i = 0; i < 100; i++)
!     search_n(rcon.begin(), rcon.end(), 10, 1);
    stop_counters(time, resource);
    report_performance(__FILE__, "random access iterator", time, resource);
    clear_counters(time, resource);
--- 55,61 ----
    __gnu_test::test_container<int, random_access_iterator_wrapper> rcon(ary, ary + length);
    start_counters(time, resource);
    for(int i = 0; i < 100; i++)
!     (void) search_n(rcon.begin(), rcon.end(), 10, 1);
    stop_counters(time, resource);
    report_performance(__FILE__, "random access iterator", time, resource);
    clear_counters(time, resource);
