diff -Nrcpad gcc-15-20251115/LAST_UPDATED gcc-15-20251122/LAST_UPDATED
*** gcc-15-20251115/LAST_UPDATED	Sat Nov 15 22:34:32 2025
--- gcc-15-20251122/LAST_UPDATED	Sat Nov 22 22:33:41 2025
***************
*** 1 ****
! Obtained from git: releases/gcc-15 revision 184a13543702c315ce7dee1916f608148263cab7
--- 1 ----
! Obtained from git: releases/gcc-15 revision de19b86454966828a889270e5a057226aa6978cb
diff -Nrcpad gcc-15-20251115/MD5SUMS gcc-15-20251122/MD5SUMS
*** gcc-15-20251115/MD5SUMS	Sat Nov 15 22:34:36 2025
--- gcc-15-20251122/MD5SUMS	Sat Nov 22 22:34:07 2025
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-15-20251115.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-20251122.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
! 2f01e72b341dcb8aca359824d6245b7a  LAST_UPDATED
  9d2cf5b58292c2e8b0804d3eafc2d6f3  MAINTAINERS
  b714b83dd28679b75c5fd3e619d35956  Makefile.def
  9d0808afc70085c5ca8d45062fc59689  Makefile.in
--- 25,31 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 32c60e4ed11e254062efcad58c1786fa  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
! 3918928cca5d80ed62470ecbf6737e00  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
! c1d100cd0b35bb17caabd57c45b148ab  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
! daff9220a43ebc6e7b6833b7fc9b0e16  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
! 4b210a1c45231a4fa6b44ff175b6376f  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
! 3145beefec668e2a09c8e7723b8118a1  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
! 5bacc9d82f250a6618c981195c3d0daa  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
*************** fcfa33c29572e4f892bd68b226e0184d  gcc/ad
*** 2880,2886 ****
  bb35d323ecf448aa8fb7025a4bc206ac  gcc/ada/raise.h
  60f15e9242cc708164c2465f35b7bcee  gcc/ada/repinfo-input.adb
  2068823632327326518141ecef478b56  gcc/ada/repinfo-input.ads
! c03cfc430368506adba96bf2402f38cd  gcc/ada/repinfo.adb
  2b7ee770fce987fa4a536a7ff6f66d28  gcc/ada/repinfo.ads
  9f01bfb3f02044d2af9dd8653ff046c7  gcc/ada/repinfo.h
  3d4a1dc93d967d84654b6489aaf51b1b  gcc/ada/restrict.adb
--- 2880,2886 ----
  bb35d323ecf448aa8fb7025a4bc206ac  gcc/ada/raise.h
  60f15e9242cc708164c2465f35b7bcee  gcc/ada/repinfo-input.adb
  2068823632327326518141ecef478b56  gcc/ada/repinfo-input.ads
! 47fd29f9f6d25a0b5b290e107a397458  gcc/ada/repinfo.adb
  2b7ee770fce987fa4a536a7ff6f66d28  gcc/ada/repinfo.ads
  9f01bfb3f02044d2af9dd8653ff046c7  gcc/ada/repinfo.h
  3d4a1dc93d967d84654b6489aaf51b1b  gcc/ada/restrict.adb
*************** b0a3315dce9de8e3bbbb3682c8b0e2ff  gcc/ad
*** 2935,2941 ****
  adba03aae1f439b9e9db8cea05d8e03f  gcc/ada/sem_ch4.ads
  3d2fb7e75bcf5cb7e2f014691fbc1d87  gcc/ada/sem_ch5.adb
  cbfbd3e4737f56717fc2ffda6b38f125  gcc/ada/sem_ch5.ads
! 7992ecc42e8487f8cdb65f2d2b283a10  gcc/ada/sem_ch6.adb
  b514f7f350605ee2678b654f7eef9152  gcc/ada/sem_ch6.ads
  3c7c6e6b95a9cddb1d6f1a42a5962379  gcc/ada/sem_ch7.adb
  24a1265e6a25756265643858abcf7ded  gcc/ada/sem_ch7.ads
--- 2935,2941 ----
  adba03aae1f439b9e9db8cea05d8e03f  gcc/ada/sem_ch4.ads
  3d2fb7e75bcf5cb7e2f014691fbc1d87  gcc/ada/sem_ch5.adb
  cbfbd3e4737f56717fc2ffda6b38f125  gcc/ada/sem_ch5.ads
! 62d192ac2f886ccdf43b3908637a43d7  gcc/ada/sem_ch6.adb
  b514f7f350605ee2678b654f7eef9152  gcc/ada/sem_ch6.ads
  3c7c6e6b95a9cddb1d6f1a42a5962379  gcc/ada/sem_ch7.adb
  24a1265e6a25756265643858abcf7ded  gcc/ada/sem_ch7.ads
*************** bb01f11ceaa352a8b99f95fcbcfe97d9  gcc/ad
*** 2967,2976 ****
  db6f5a37bd59fd83ff3286e71ab985fe  gcc/ada/sem_scil.ads
  224e89cdc39291b2a52f3e96e76cc3aa  gcc/ada/sem_smem.adb
  89d73c108bd8921f6d6cd84d98726ea5  gcc/ada/sem_smem.ads
! d0a2f5b2f65a874363f7fbe2b9a79f8b  gcc/ada/sem_type.adb
  dee50852181adfada17fb5b7423ed973  gcc/ada/sem_type.ads
! 05bc874d2463833c982d5076315b50b2  gcc/ada/sem_util.adb
! 907db3161ce24f5c766ff52fc6b8bbd0  gcc/ada/sem_util.ads
  e4e5495b136cf8092bcca5f770b4f9a7  gcc/ada/sem_warn.adb
  e71db5efd6c6d9969e1e7887ebe4e6b5  gcc/ada/sem_warn.ads
  239ca67ac9aa430abfe5120a8d4302d9  gcc/ada/set_targ.adb
--- 2967,2976 ----
  db6f5a37bd59fd83ff3286e71ab985fe  gcc/ada/sem_scil.ads
  224e89cdc39291b2a52f3e96e76cc3aa  gcc/ada/sem_smem.adb
  89d73c108bd8921f6d6cd84d98726ea5  gcc/ada/sem_smem.ads
! 2165d713ac690d5f51491a61d83f497d  gcc/ada/sem_type.adb
  dee50852181adfada17fb5b7423ed973  gcc/ada/sem_type.ads
! 0c9a1f1d3cbe64d9222e4cc46aa74f6b  gcc/ada/sem_util.adb
! 3d1db15a678b9ffc181d2df6ba742fdf  gcc/ada/sem_util.ads
  e4e5495b136cf8092bcca5f770b4f9a7  gcc/ada/sem_warn.adb
  e71db5efd6c6d9969e1e7887ebe4e6b5  gcc/ada/sem_warn.ads
  239ca67ac9aa430abfe5120a8d4302d9  gcc/ada/set_targ.adb
*************** d9450e0fa15cd8b8f6659555820ec24e  gcc/co
*** 3456,3462 ****
  7cfa3d0cdd28cdcd73a29c2c8a925548  gcc/config/aarch64/aarch64-simd-builtin-types.def
  f28e7beab7cc8baa0b1a2e5e9efc0597  gcc/config/aarch64/aarch64-simd-builtins.def
  33ce4a896b77324d9be6448637daf9ca  gcc/config/aarch64/aarch64-simd-pragma-builtins.def
! 40522c65acf5350dc270749770ecb25e  gcc/config/aarch64/aarch64-simd.md
  400cf23fe3c345ede58d2194530c6231  gcc/config/aarch64/aarch64-sme.md
  221b858bba4517a3871cb07292c6b216  gcc/config/aarch64/aarch64-speculation.cc
  cab9211ac73c7480b9b4b45833e20d71  gcc/config/aarch64/aarch64-sve-builtins-base.cc
--- 3456,3462 ----
  7cfa3d0cdd28cdcd73a29c2c8a925548  gcc/config/aarch64/aarch64-simd-builtin-types.def
  f28e7beab7cc8baa0b1a2e5e9efc0597  gcc/config/aarch64/aarch64-simd-builtins.def
  33ce4a896b77324d9be6448637daf9ca  gcc/config/aarch64/aarch64-simd-pragma-builtins.def
! 615a79b4ae20bdfe0cdcb0e0935e441f  gcc/config/aarch64/aarch64-simd.md
  400cf23fe3c345ede58d2194530c6231  gcc/config/aarch64/aarch64-sme.md
  221b858bba4517a3871cb07292c6b216  gcc/config/aarch64/aarch64-speculation.cc
  cab9211ac73c7480b9b4b45833e20d71  gcc/config/aarch64/aarch64-sve-builtins-base.cc
*************** eafc8a2abc331243ea846fab22b8aec4  gcc/co
*** 3655,3661 ****
  485d7b0baab6c9abc2c56a9f6c467afb  gcc/config/arm/arm-tables.opt
  f805d118929dd79f6bd4dc75c77c968b  gcc/config/arm/arm-tables.opt.urls
  a16ca2ab73b09afe4481044ebcec2010  gcc/config/arm/arm-tune.md
! be091cea1c4081ebd62acb2464a7710c  gcc/config/arm/arm.cc
  fe5e2b24f803c40d73fe860e114fc6e0  gcc/config/arm/arm.h
  afff34e5b83fa9b311a4351eb46f303c  gcc/config/arm/arm.md
  a7974fb16c914604eacaf43120b8769f  gcc/config/arm/arm.opt
--- 3655,3661 ----
  485d7b0baab6c9abc2c56a9f6c467afb  gcc/config/arm/arm-tables.opt
  f805d118929dd79f6bd4dc75c77c968b  gcc/config/arm/arm-tables.opt.urls
  a16ca2ab73b09afe4481044ebcec2010  gcc/config/arm/arm-tune.md
! aa43df67a1a22f4867c78ceec52a63ba  gcc/config/arm/arm.cc
  fe5e2b24f803c40d73fe860e114fc6e0  gcc/config/arm/arm.h
  afff34e5b83fa9b311a4351eb46f303c  gcc/config/arm/arm.md
  a7974fb16c914604eacaf43120b8769f  gcc/config/arm/arm.opt
*************** ba79dc9cffbca47e10d361aeb3d716f3  gcc/co
*** 4192,4198 ****
  94adc181549d171cf2618530e3b49ff7  gcc/config/i386/i386-features.h
  6eb6541c33da88d0910200287b50cdff  gcc/config/i386/i386-isa.def
  795643c7d23acf02568d7fa7acad0138  gcc/config/i386/i386-modes.def
! 2416c5636e515b0240835120ca4cf86e  gcc/config/i386/i386-options.cc
  08c877d750ab52ddb4fe7c99c90d62de  gcc/config/i386/i386-options.h
  02c486451c524cfc143358e07b88cd70  gcc/config/i386/i386-opts.h
  690c3ac09dc36dc8e7f82bad277ec24c  gcc/config/i386/i386-passes.def
--- 4192,4198 ----
  94adc181549d171cf2618530e3b49ff7  gcc/config/i386/i386-features.h
  6eb6541c33da88d0910200287b50cdff  gcc/config/i386/i386-isa.def
  795643c7d23acf02568d7fa7acad0138  gcc/config/i386/i386-modes.def
! 224504f1fd020a80489c39cc10a7e268  gcc/config/i386/i386-options.cc
  08c877d750ab52ddb4fe7c99c90d62de  gcc/config/i386/i386-options.h
  02c486451c524cfc143358e07b88cd70  gcc/config/i386/i386-opts.h
  690c3ac09dc36dc8e7f82bad277ec24c  gcc/config/i386/i386-passes.def
*************** d3ad067b1fa15bbce42fd3cc4499966e  gcc/co
*** 4436,4442 ****
  688cd325dbeb853413435f029e712cb2  gcc/config/loongarch/loongarch-str.h
  a8cd9a4a3d712802475e91e0ec9a3274  gcc/config/loongarch/loongarch-target-attr.cc
  f539c2da7e8d7a3ef7c741bceee19eed  gcc/config/loongarch/loongarch-tune.h
! 89b4fc62c9e0b06fe9eab1d85d187ac4  gcc/config/loongarch/loongarch.cc
  cac7a4f19361731647870d2210078a9e  gcc/config/loongarch/loongarch.h
  ec46785efb7afdd2deb34ce71a037c59  gcc/config/loongarch/loongarch.md
  bcc951e237d5501fc2acd6ef3141724c  gcc/config/loongarch/loongarch.opt
--- 4436,4442 ----
  688cd325dbeb853413435f029e712cb2  gcc/config/loongarch/loongarch-str.h
  a8cd9a4a3d712802475e91e0ec9a3274  gcc/config/loongarch/loongarch-target-attr.cc
  f539c2da7e8d7a3ef7c741bceee19eed  gcc/config/loongarch/loongarch-tune.h
! 0ee82048ba1ce7a626ff20137b3713e8  gcc/config/loongarch/loongarch.cc
  cac7a4f19361731647870d2210078a9e  gcc/config/loongarch/loongarch.h
  ec46785efb7afdd2deb34ce71a037c59  gcc/config/loongarch/loongarch.md
  bcc951e237d5501fc2acd6ef3141724c  gcc/config/loongarch/loongarch.opt
*************** a9c3cddee4e237141062720b72fe38cd  gcc/co
*** 5499,5505 ****
  5d31df44fc0a5b17beb74ce0ff38e214  gcc/coroutine-passes.cc
  2a5216aefb9cdf4b270ef8e599cc794f  gcc/coverage.cc
  722fb5fda78e55c5af5da72cad78751f  gcc/coverage.h
! b161486bf5533f3af08683e0d1f19461  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
--- 5499,5505 ----
  5d31df44fc0a5b17beb74ce0ff38e214  gcc/coroutine-passes.cc
  2a5216aefb9cdf4b270ef8e599cc794f  gcc/coverage.cc
  722fb5fda78e55c5af5da72cad78751f  gcc/coverage.h
! 9849961380a78d7d5661539401e41662  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
*************** bcf7c5d02934e40f17edeb18d58c4d4d  gcc/cp
*** 5535,5541 ****
  c1c7801b9b0f379e702a4f6cb83972e7  gcc/cp/ChangeLog.ptr
  9aa3cd9f75c785de9f51446e3f295515  gcc/cp/ChangeLog.tree-ssa
  08c713f559f658009bf94d139a24c2b6  gcc/cp/Make-lang.in
! f8d105353c88fb102e9216372bc4b70c  gcc/cp/call.cc
  fce8de27014c109814b3f69be6a5d4f6  gcc/cp/cfns.gperf
  68fc21d4889b1c70ccf89747b98b1fb4  gcc/cp/cfns.h
  65891fa261ce5aa3474ed32683a124d3  gcc/cp/class.cc
--- 5535,5541 ----
  c1c7801b9b0f379e702a4f6cb83972e7  gcc/cp/ChangeLog.ptr
  9aa3cd9f75c785de9f51446e3f295515  gcc/cp/ChangeLog.tree-ssa
  08c713f559f658009bf94d139a24c2b6  gcc/cp/Make-lang.in
! 92f508b339386e75dc200f6b75732c90  gcc/cp/call.cc
  fce8de27014c109814b3f69be6a5d4f6  gcc/cp/cfns.gperf
  68fc21d4889b1c70ccf89747b98b1fb4  gcc/cp/cfns.h
  65891fa261ce5aa3474ed32683a124d3  gcc/cp/class.cc
*************** c2a7409e57253e5d9bfd8ce29fb85212  gcc/cp
*** 5579,5592 ****
  6c77b1fab5f6d146677090285a202a50  gcc/cp/mapper-client.h
  44e22b51797f89c9da996523a6d97f1c  gcc/cp/mapper-resolver.cc
  8a43dc7eb02c2c19d4faa7344f490b26  gcc/cp/method.cc
! 667fa3a87b7c98366f3de3e2ffbb4e44  gcc/cp/module.cc
  4fbf6c5b0391fc30bc3aaea6d8cb1e3e  gcc/cp/name-lookup.cc
  9644410086c3beb90033e77613e9d1a7  gcc/cp/name-lookup.h
  e7fe06956aada61bcaae5168ad47a9c1  gcc/cp/operators.def
  813c253a000ee20d8d6598f56edc400e  gcc/cp/optimize.cc
  a2d86d3655a737a6a9f1e60561394d14  gcc/cp/parser.cc
  e8a3a03873c6294ff25a783941b8d8af  gcc/cp/parser.h
! b80f0a5fbd5cf7b059c906972151dee1  gcc/cp/pt.cc
  a121c0a45933b618832614be1fbfd5c7  gcc/cp/ptree.cc
  318c5e4a338363a8183b4a01222aa800  gcc/cp/rtti.cc
  a4930c49ed8f9e6b019399bd1faf86d0  gcc/cp/search.cc
--- 5579,5592 ----
  6c77b1fab5f6d146677090285a202a50  gcc/cp/mapper-client.h
  44e22b51797f89c9da996523a6d97f1c  gcc/cp/mapper-resolver.cc
  8a43dc7eb02c2c19d4faa7344f490b26  gcc/cp/method.cc
! d33a35dc23cc4443e6ff570e41b95932  gcc/cp/module.cc
  4fbf6c5b0391fc30bc3aaea6d8cb1e3e  gcc/cp/name-lookup.cc
  9644410086c3beb90033e77613e9d1a7  gcc/cp/name-lookup.h
  e7fe06956aada61bcaae5168ad47a9c1  gcc/cp/operators.def
  813c253a000ee20d8d6598f56edc400e  gcc/cp/optimize.cc
  a2d86d3655a737a6a9f1e60561394d14  gcc/cp/parser.cc
  e8a3a03873c6294ff25a783941b8d8af  gcc/cp/parser.h
! 013545c93b386f105298c8ff032a26e8  gcc/cp/pt.cc
  a121c0a45933b618832614be1fbfd5c7  gcc/cp/ptree.cc
  318c5e4a338363a8183b4a01222aa800  gcc/cp/rtti.cc
  a4930c49ed8f9e6b019399bd1faf86d0  gcc/cp/search.cc
*************** f076eff7f3e051217ab4840269c685f8  gcc/di
*** 5906,5914 ****
  81a24429bc8eb52cbe24d574c6ec7e53  gcc/diagnostic-spec.cc
  375a39d1eff397ae7fcdce6e05c76d50  gcc/diagnostic-spec.h
  dabd477d68c54372f8519e7c917d4a11  gcc/diagnostic-url.h
! c860597ec3a9ac45886199796b826b85  gcc/diagnostic.cc
  03b04b0fb78353ca76570e5ef92cf756  gcc/diagnostic.def
! c61c4737f1261c516fd04ddbb16c545e  gcc/diagnostic.h
  bec68218d528467fd119bf2cd02bc358  gcc/digraph.cc
  18e73120a6e21ceac1adce40777000cf  gcc/digraph.h
  bb82bca6383082ead28f6f21f0a6223f  gcc/doc/analyzer.texi
--- 5906,5914 ----
  81a24429bc8eb52cbe24d574c6ec7e53  gcc/diagnostic-spec.cc
  375a39d1eff397ae7fcdce6e05c76d50  gcc/diagnostic-spec.h
  dabd477d68c54372f8519e7c917d4a11  gcc/diagnostic-url.h
! 76e1818553aea722563982b603872236  gcc/diagnostic.cc
  03b04b0fb78353ca76570e5ef92cf756  gcc/diagnostic.def
! 21632ab2885104ea10689f397a217121  gcc/diagnostic.h
  bec68218d528467fd119bf2cd02bc358  gcc/digraph.cc
  18e73120a6e21ceac1adce40777000cf  gcc/digraph.h
  bb82bca6383082ead28f6f21f0a6223f  gcc/doc/analyzer.texi
*************** acdfc663791e4321372e79932070d05d  gcc/do
*** 5927,5933 ****
  81ae745aed5479afae430c578fa29055  gcc/doc/cppinternals.texi
  1a2d44757bb0f40b09493ac3863eba93  gcc/doc/cppopts.texi
  14b0532614eb25d7d84e7efd6664ecf3  gcc/doc/cppwarnopts.texi
! 214bab38dfc304ce2f0b6afedaddfa3b  gcc/doc/extend.texi
  ddcdbcb699f5252a1c1219d92d87ed8b  gcc/doc/fragments.texi
  cd346f0c279f68138ef08c7addc796de  gcc/doc/frontends.texi
  a28615d9873d98f0d5f4ef8dd3e4c39d  gcc/doc/gcc.texi
--- 5927,5933 ----
  81ae745aed5479afae430c578fa29055  gcc/doc/cppinternals.texi
  1a2d44757bb0f40b09493ac3863eba93  gcc/doc/cppopts.texi
  14b0532614eb25d7d84e7efd6664ecf3  gcc/doc/cppwarnopts.texi
! 082ff6defdc22a86dcf33f90eba1e398  gcc/doc/extend.texi
  ddcdbcb699f5252a1c1219d92d87ed8b  gcc/doc/fragments.texi
  cd346f0c279f68138ef08c7addc796de  gcc/doc/frontends.texi
  a28615d9873d98f0d5f4ef8dd3e4c39d  gcc/doc/gcc.texi
*************** ee4c7654f733cefcb73d4fd24f3e1b82  gcc/do
*** 5951,5957 ****
  e9b8122841fbfbbc30fee8ed6613c399  gcc/doc/include/texinfo.tex
  4cf31ce9dc9e7079c1c99e7dd07215ae  gcc/doc/install.texi
  0f98706361e63fac2c35c2c4491eaac4  gcc/doc/install.texi2html
! f88deb5dc50ebc62dd6d95f68cc4a73f  gcc/doc/invoke.texi
  47f1f55b3595acf670eb6193a0cbd933  gcc/doc/languages.texi
  5200cc28a2ab912efe66f0944995c45b  gcc/doc/libgcc.texi
  ef4f00c423089323edef1d3cff31a4a2  gcc/doc/libgdiagnostics/Makefile
--- 5951,5957 ----
  e9b8122841fbfbbc30fee8ed6613c399  gcc/doc/include/texinfo.tex
  4cf31ce9dc9e7079c1c99e7dd07215ae  gcc/doc/install.texi
  0f98706361e63fac2c35c2c4491eaac4  gcc/doc/install.texi2html
! 33e0c4670eb42cacf8978b6a0c4551b9  gcc/doc/invoke.texi
  47f1f55b3595acf670eb6193a0cbd933  gcc/doc/languages.texi
  5200cc28a2ab912efe66f0944995c45b  gcc/doc/libgcc.texi
  ef4f00c423089323edef1d3cff31a4a2  gcc/doc/libgdiagnostics/Makefile
*************** a798cdca802a57ffa3473ab610b37c86  gcc/fo
*** 6059,6065 ****
  4b1bef753dda2d19671f35332c69a0f7  gcc/fold-const.cc
  f23dec03425a07611492fa2c061cd7d2  gcc/fold-const.h
  cd4e6baf5d162fbd41160606055f8297  gcc/fold-mem-offsets.cc
! f3700c0f2a4bdb4f4caf6222cf1f7efc  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
--- 6059,6065 ----
  4b1bef753dda2d19671f35332c69a0f7  gcc/fold-const.cc
  f23dec03425a07611492fa2c061cd7d2  gcc/fold-const.h
  cd4e6baf5d162fbd41160606055f8297  gcc/fold-mem-offsets.cc
! fa1086f04f2ff3b4307c7a550d245319  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
*************** e350765243fa7b881ed82507561870ff  gcc/fo
*** 6138,6144 ****
  066b089d8a8df7ff652dcc802d982276  gcc/fortran/parse.cc
  09678ef13dc709d251be943d808544b8  gcc/fortran/parse.h
  8c815c31f49f2be21bde29058fe60166  gcc/fortran/primary.cc
! 1172de86452b5b1f9983dfb6d0d0789f  gcc/fortran/resolve.cc
  8dc2391850ee95634781b6e296a096f6  gcc/fortran/scanner.cc
  3c39e0eef946c7f557ac375f23b9f3db  gcc/fortran/scanner.h
  c78c72f9e780bf1c0eea63295c5ba590  gcc/fortran/simplify.cc
--- 6138,6144 ----
  066b089d8a8df7ff652dcc802d982276  gcc/fortran/parse.cc
  09678ef13dc709d251be943d808544b8  gcc/fortran/parse.h
  8c815c31f49f2be21bde29058fe60166  gcc/fortran/primary.cc
! 2cc1d2ad7b1db6eecb49a91f104594e1  gcc/fortran/resolve.cc
  8dc2391850ee95634781b6e296a096f6  gcc/fortran/scanner.cc
  3c39e0eef946c7f557ac375f23b9f3db  gcc/fortran/scanner.h
  c78c72f9e780bf1c0eea63295c5ba590  gcc/fortran/simplify.cc
*************** f380ce65b15eedb6d55a9848beb1ec3b  gcc/in
*** 6447,6453 ****
  a82ca6f10995888441918acc568477fc  gcc/incpath.cc
  078efe9e89bf7fcd6a66cd085de2d676  gcc/incpath.h
  ab23cbe770ec47ef81d84e5377063f0f  gcc/init-regs.cc
! b3d2e0a4fdb1acc7d7c1d1222ec7077d  gcc/input.cc
  61ec39febc0596c9836bf3c2bd87907c  gcc/input.h
  0dc4e5a1c70a5b34153b06594dd3ae85  gcc/insn-addr.h
  eec072fb4c8277a3634cf4cdc0846598  gcc/insn-notes.def
--- 6447,6453 ----
  a82ca6f10995888441918acc568477fc  gcc/incpath.cc
  078efe9e89bf7fcd6a66cd085de2d676  gcc/incpath.h
  ab23cbe770ec47ef81d84e5377063f0f  gcc/init-regs.cc
! 6504b77b10f885f0f4fccb6f5b9ae2de  gcc/input.cc
  61ec39febc0596c9836bf3c2bd87907c  gcc/input.h
  0dc4e5a1c70a5b34153b06594dd3ae85  gcc/insn-addr.h
  eec072fb4c8277a3634cf4cdc0846598  gcc/insn-notes.def
*************** ed475e0212369987bb572e7eabb4b4d7  gcc/lo
*** 6635,6641 ****
  05bf78e6d3e36587723b1177ffcd9c6e  gcc/lower-subreg.h
  755a196fed2cd7b5878159035d75b39b  gcc/lra-assigns.cc
  0232e051e662ebb7fd2fa507d9c581b8  gcc/lra-coalesce.cc
! 2dea971aa7072817813a345330964e00  gcc/lra-constraints.cc
  90be6ca8eebfbeae80589ba7a895bf60  gcc/lra-eliminations.cc
  d5aab2fda62b4b8a67dcd1bfeff169f5  gcc/lra-int.h
  9b39c90253128330d1b238b030a40fce  gcc/lra-lives.cc
--- 6635,6641 ----
  05bf78e6d3e36587723b1177ffcd9c6e  gcc/lower-subreg.h
  755a196fed2cd7b5878159035d75b39b  gcc/lra-assigns.cc
  0232e051e662ebb7fd2fa507d9c581b8  gcc/lra-coalesce.cc
! 1fc7e95e912ad0b2656db11e0fa7845b  gcc/lra-constraints.cc
  90be6ca8eebfbeae80589ba7a895bf60  gcc/lra-eliminations.cc
  d5aab2fda62b4b8a67dcd1bfeff169f5  gcc/lra-int.h
  9b39c90253128330d1b238b030a40fce  gcc/lra-lives.cc
*************** f2a9985147f87fd566d4ae2dd8fceabc  gcc/lt
*** 6656,6663 ****
  dfa3caf86a8bb6ea08cabdee56e570e9  gcc/lto-streamer-out.cc
  8caf9a68892d64dc294b20c27291b749  gcc/lto-streamer.cc
  78ea6d3e135322dfe8157d78aba82074  gcc/lto-streamer.h
! 8acdefc9fffd53b3f4f16af933640084  gcc/lto-wrapper.cc
! a6e9af147c6704cc913ec083fc0af467  gcc/lto/ChangeLog
  e33b56ae6d73ecb6b658dd2ffff4202a  gcc/lto/Make-lang.in
  705d8eaa74b456d79367c2c42b7a2fef  gcc/lto/common.cc
  3d201b30f0538a8cfddc450739b1c8c5  gcc/lto/common.h
--- 6656,6663 ----
  dfa3caf86a8bb6ea08cabdee56e570e9  gcc/lto-streamer-out.cc
  8caf9a68892d64dc294b20c27291b749  gcc/lto-streamer.cc
  78ea6d3e135322dfe8157d78aba82074  gcc/lto-streamer.h
! 8b0a37984ce6cc6e0b1e0651b05742d0  gcc/lto-wrapper.cc
! 4ebcb9d25a9e47195db0c6557c5f127c  gcc/lto/ChangeLog
  e33b56ae6d73ecb6b658dd2ffff4202a  gcc/lto/Make-lang.in
  705d8eaa74b456d79367c2c42b7a2fef  gcc/lto/common.cc
  3d201b30f0538a8cfddc450739b1c8c5  gcc/lto/common.h
*************** e33b56ae6d73ecb6b658dd2ffff4202a  gcc/lt
*** 6665,6682 ****
  a1977e121a895c3241becf0d3e41bd3a  gcc/lto/lang-specs.h
  d93ec20c141afe4ec8419083e7e5427d  gcc/lto/lang.opt
  e09c982f34fcc53d88fb9b974a77d569  gcc/lto/lang.opt.urls
! e9e3e1c53895933c30b602dfb27942ff  gcc/lto/lto-common.cc
  1bbd724bce4771513f0a356074d52d51  gcc/lto/lto-common.h
  24353553f316f6efb9d7f42253a3ec7c  gcc/lto/lto-dump.cc
  9a5a957f50fd70274ccec05a5ac526f6  gcc/lto/lto-lang.cc
! abba0d56cf42c70d1983f247453576cd  gcc/lto/lto-object.cc
  38c04a0ddda1a5a40c7fffc7079b0b21  gcc/lto/lto-partition.cc
  6bdee5523aaa6e7091e15f5270e1ef9f  gcc/lto/lto-partition.h
  1fe27a12b5a9b027b47f819c6e23ed1c  gcc/lto/lto-symtab.cc
  37534ae509993637d7af9690433de15c  gcc/lto/lto-symtab.h
  b153638c23972a22ca31986c1b49348d  gcc/lto/lto-tree.h
  e44c0bf9cc0411d7bd57c6585eb6d0e4  gcc/lto/lto.cc
! 46fbea4008689ba8af9f80d1cdce438a  gcc/lto/lto.h
  890758104e7697865dd110259fee0af5  gcc/m2/COPYING.FDL
  b417a4bd52371186803e70c49d24764d  gcc/m2/COPYING.RUNTIME
  8f0e2cd40e05189ec81232da84bd6e1a  gcc/m2/COPYING3
--- 6665,6682 ----
  a1977e121a895c3241becf0d3e41bd3a  gcc/lto/lang-specs.h
  d93ec20c141afe4ec8419083e7e5427d  gcc/lto/lang.opt
  e09c982f34fcc53d88fb9b974a77d569  gcc/lto/lang.opt.urls
! 2fd282b2a033ddbb7f9b8f52ee01125e  gcc/lto/lto-common.cc
  1bbd724bce4771513f0a356074d52d51  gcc/lto/lto-common.h
  24353553f316f6efb9d7f42253a3ec7c  gcc/lto/lto-dump.cc
  9a5a957f50fd70274ccec05a5ac526f6  gcc/lto/lto-lang.cc
! 3b697054907d273bdcb6e5026d3bc875  gcc/lto/lto-object.cc
  38c04a0ddda1a5a40c7fffc7079b0b21  gcc/lto/lto-partition.cc
  6bdee5523aaa6e7091e15f5270e1ef9f  gcc/lto/lto-partition.h
  1fe27a12b5a9b027b47f819c6e23ed1c  gcc/lto/lto-symtab.cc
  37534ae509993637d7af9690433de15c  gcc/lto/lto-symtab.h
  b153638c23972a22ca31986c1b49348d  gcc/lto/lto-tree.h
  e44c0bf9cc0411d7bd57c6585eb6d0e4  gcc/lto/lto.cc
! ff9a9ca6ac5fa2e371f831911c148f9b  gcc/lto/lto.h
  890758104e7697865dd110259fee0af5  gcc/m2/COPYING.FDL
  b417a4bd52371186803e70c49d24764d  gcc/m2/COPYING.RUNTIME
  8f0e2cd40e05189ec81232da84bd6e1a  gcc/m2/COPYING3
*************** b1497a03867668af210c32280876fdd7  gcc/sy
*** 8446,8452 ****
  b4bbfe8a8f62eed5c75429762e88d324  gcc/targhooks.cc
  ae57260b8b60d8b8dfaef3556c3ac5e5  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 89481552d1b2b0de1fe08ffa6c4b3df2  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
--- 8446,8452 ----
  b4bbfe8a8f62eed5c75429762e88d324  gcc/targhooks.cc
  ae57260b8b60d8b8dfaef3556c3ac5e5  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! d940c3f184d12655b135508fa1843d9f  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
*************** c261319c4540e21ce17bbed8a6a44f40  gcc/te
*** 18592,18597 ****
--- 18592,18598 ----
  fadcff10fef6007880be1e8b89051f65  gcc/testsuite/g++.dg/cpp0x/pr118923.C
  c6b0d9f964bf85f5f703f5dfa5e809e9  gcc/testsuite/g++.dg/cpp0x/pr119123.C
  b4c316ecfeb0a9b078a76b658ed94668  gcc/testsuite/g++.dg/cpp0x/pr119563.C
+ 29f9291c87488a55a2dd5fa47188ab10  gcc/testsuite/g++.dg/cpp0x/pr119580.C
  9598abf127e6826158d64ee6b05b0791  gcc/testsuite/g++.dg/cpp0x/pr122302.C
  26dea799d49ce223a0c4130a3c955271  gcc/testsuite/g++.dg/cpp0x/pr31431-2.C
  4d1da29b669bf3178b3987abce4d58b1  gcc/testsuite/g++.dg/cpp0x/pr31431.C
*************** faa8333681bedde3ba84daa60ec26ff8  gcc/te
*** 23904,23909 ****
--- 23905,23911 ----
  98638e9fa0777943851858264e4df050  gcc/testsuite/g++.dg/ext/rank.C
  bce41fa775f2176271e957652f0edf69  gcc/testsuite/g++.dg/ext/reference_constructs_from_temporary1.C
  95d105b089ea555ab8e1c29ce9e1f667  gcc/testsuite/g++.dg/ext/reference_converts_from_temporary1.C
+ 0763fce1484e78d744fc7b1372ae9195  gcc/testsuite/g++.dg/ext/reference_xes_from_temporary1.C
  5c1bae2a1fbdc59653647bbd49eb336f  gcc/testsuite/g++.dg/ext/remove_all_extents.C
  01789f18bffef5bcf261727b48fc9bb5  gcc/testsuite/g++.dg/ext/remove_cv.C
  9d092236f17635c7e6d0abe935fd348f  gcc/testsuite/g++.dg/ext/remove_cvref.C
*************** c8f6159c50d59c6586f5797b42391c86  gcc/te
*** 26709,26714 ****
--- 26711,26718 ----
  45ff01b5a1d0276885e30fb3445f5ed3  gcc/testsuite/g++.dg/modules/inst-5_b.C
  60bae6f4a7bfe8ecf40c92bc84aa9a4f  gcc/testsuite/g++.dg/modules/inst-6_a.C
  78bafa91ce71486fc147f8fef051956f  gcc/testsuite/g++.dg/modules/inst-6_b.C
+ 45f2bcdae473c2a99d7a5de022749d34  gcc/testsuite/g++.dg/modules/inst-7_a.C
+ 2b141f9dc25a6cb3cfca4a8e6b99e23d  gcc/testsuite/g++.dg/modules/inst-7_b.C
  a345a5bfe397e84c45d084024a9acbf2  gcc/testsuite/g++.dg/modules/internal-1.C
  e6b16a33fb2c85abf4f99ad0d5ad33bb  gcc/testsuite/g++.dg/modules/internal-10.C
  8fe7459b1e2ebdf33715cdab3dbafaf9  gcc/testsuite/g++.dg/modules/internal-11.C
*************** f75072de1c2abdfca708b732cbfafa89  gcc/te
*** 30163,30176 ****
  44d05d042dc79a79585f17b3bcda6ec0  gcc/testsuite/g++.dg/template/crash103.C
  1225a54926913e691b51137aef8b5d33  gcc/testsuite/g++.dg/template/crash104.C
  f07fd8a3820e9db30fbbab54d71dd891  gcc/testsuite/g++.dg/template/crash105.C
! f19bbfba4bb14d6e3ff2d65c8da05557  gcc/testsuite/g++.dg/template/crash106.C
  792c7b5aeb05b03e17861b41172963b0  gcc/testsuite/g++.dg/template/crash107.C
  01e34c6dbadd8c372851425abdb78adb  gcc/testsuite/g++.dg/template/crash108.C
  b3167df4bc44e634fce27a27e383e9a4  gcc/testsuite/g++.dg/template/crash109.C
  b9d6c3e2462b2f141eef9706fb73f7ad  gcc/testsuite/g++.dg/template/crash11.C
  bc34a5c1a684295dab662a89dc6697f6  gcc/testsuite/g++.dg/template/crash110.C
  f5c17c8c05a6c2d1d6b29054c88125a1  gcc/testsuite/g++.dg/template/crash111.C
! cafccb8ed409984b3ee5d4f9079957fa  gcc/testsuite/g++.dg/template/crash112.C
  eefdeb6db423d33961319f597beaebfa  gcc/testsuite/g++.dg/template/crash113.C
  9cf3fd890329936ea0594b310d9a64c1  gcc/testsuite/g++.dg/template/crash114.C
  ef817469f252f778c53765d1bbf1e129  gcc/testsuite/g++.dg/template/crash115.C
--- 30167,30180 ----
  44d05d042dc79a79585f17b3bcda6ec0  gcc/testsuite/g++.dg/template/crash103.C
  1225a54926913e691b51137aef8b5d33  gcc/testsuite/g++.dg/template/crash104.C
  f07fd8a3820e9db30fbbab54d71dd891  gcc/testsuite/g++.dg/template/crash105.C
! f7adbbf195de7e6c3dcc4fd4325a3b5c  gcc/testsuite/g++.dg/template/crash106.C
  792c7b5aeb05b03e17861b41172963b0  gcc/testsuite/g++.dg/template/crash107.C
  01e34c6dbadd8c372851425abdb78adb  gcc/testsuite/g++.dg/template/crash108.C
  b3167df4bc44e634fce27a27e383e9a4  gcc/testsuite/g++.dg/template/crash109.C
  b9d6c3e2462b2f141eef9706fb73f7ad  gcc/testsuite/g++.dg/template/crash11.C
  bc34a5c1a684295dab662a89dc6697f6  gcc/testsuite/g++.dg/template/crash110.C
  f5c17c8c05a6c2d1d6b29054c88125a1  gcc/testsuite/g++.dg/template/crash111.C
! 84836a0a390a3f18de7863dcbb8138a6  gcc/testsuite/g++.dg/template/crash112.C
  eefdeb6db423d33961319f597beaebfa  gcc/testsuite/g++.dg/template/crash113.C
  9cf3fd890329936ea0594b310d9a64c1  gcc/testsuite/g++.dg/template/crash114.C
  ef817469f252f778c53765d1bbf1e129  gcc/testsuite/g++.dg/template/crash115.C
*************** e55baeaf118c452b9f707b8236ee86b1  gcc/te
*** 30336,30342 ****
  bbc0cedc0c23e5084b73fd2bd7d12be0  gcc/testsuite/g++.dg/template/defarg9.C
  08e2480f72bcb72f3f0c69f74625bd4c  gcc/testsuite/g++.dg/template/delete1.C
  f64b5dcbfa3d3051a358c8d1c1e8a878  gcc/testsuite/g++.dg/template/delete2.C
! 405318b0ed9079d8a3152d85bfbe6fc3  gcc/testsuite/g++.dg/template/dependent-args1.C
  ba2918f2d50d14da19e142ac392345e1  gcc/testsuite/g++.dg/template/dependent-base1.C
  2cfeba0039a93060ff77245f34166e52  gcc/testsuite/g++.dg/template/dependent-base2.C
  1ea2af4911d47cd67d9e3ab837ef48bc  gcc/testsuite/g++.dg/template/dependent-base3.C
--- 30340,30346 ----
  bbc0cedc0c23e5084b73fd2bd7d12be0  gcc/testsuite/g++.dg/template/defarg9.C
  08e2480f72bcb72f3f0c69f74625bd4c  gcc/testsuite/g++.dg/template/delete1.C
  f64b5dcbfa3d3051a358c8d1c1e8a878  gcc/testsuite/g++.dg/template/delete2.C
! 4820802a013c4ae847e44af5c8e547b3  gcc/testsuite/g++.dg/template/dependent-args1.C
  ba2918f2d50d14da19e142ac392345e1  gcc/testsuite/g++.dg/template/dependent-base1.C
  2cfeba0039a93060ff77245f34166e52  gcc/testsuite/g++.dg/template/dependent-base2.C
  1ea2af4911d47cd67d9e3ab837ef48bc  gcc/testsuite/g++.dg/template/dependent-base3.C
*************** d043bebe314f4799a1f686632b791cca  gcc/te
*** 48475,48480 ****
--- 48479,48494 ----
  fc62f9b04cc5a79673dbe5e5bdabbe49  gcc/testsuite/gcc.dg/lto/pr117199_0.c
  6d71a1f58a218031bc3d4d7e09342e22  gcc/testsuite/gcc.dg/lto/pr117201_0.c
  5e48b5b5f991fe6ba63af683c6381505  gcc/testsuite/gcc.dg/lto/pr117288_0.c
+ f5f860d71dee47b53b433d6f33223758  gcc/testsuite/gcc.dg/lto/pr122515_0.c
+ 42ad058eb75d3c988533e8f8eecd45c5  gcc/testsuite/gcc.dg/lto/pr122515_1.c
+ c8348d97dcd57b983e2c4c696a5e8450  gcc/testsuite/gcc.dg/lto/pr122515_2.c
+ bc6aab4d748ab26c406bcfcfd94e43f4  gcc/testsuite/gcc.dg/lto/pr122515_3.c
+ b58dd1aaa3132751d46233b1e6a00a3e  gcc/testsuite/gcc.dg/lto/pr122515_4.c
+ e93496b3dab62466b11fccc4eb64033f  gcc/testsuite/gcc.dg/lto/pr122515_5.c
+ ce39b21091008775415dbe099db0aaf5  gcc/testsuite/gcc.dg/lto/pr122515_6.c
+ 7f03e9f210325e44859aafac7ad2f239  gcc/testsuite/gcc.dg/lto/pr122515_7.c
+ 6028a2dec4dfcb2bf14d8b228fb95959  gcc/testsuite/gcc.dg/lto/pr122515_8.c
+ ba260514a6f9ba02270018e5ccb3fc9c  gcc/testsuite/gcc.dg/lto/pr122515_9.c
  5192817b2492ca93ffadce3b4a5e4794  gcc/testsuite/gcc.dg/lto/pr27898_0.c
  c5f48897247dfaec60df4e32beffcd8e  gcc/testsuite/gcc.dg/lto/pr27898_1.c
  2ad724786bc4b555a7f31e8b3bf164b6  gcc/testsuite/gcc.dg/lto/pr28706_0.c
*************** f22c386d32e16704e73e0ad284bf1ad1  gcc/te
*** 49164,49169 ****
--- 49178,49184 ----
  4644aff4e3d9b41ef0b44eb441b3e574  gcc/testsuite/gcc.dg/plugin/known-fns-1.c
  d3e84ae842f69911a3ac0ceb96542627  gcc/testsuite/gcc.dg/plugin/location-overflow-test-1.c
  b584a46252319e63ce8a18cd3d89f07c  gcc/testsuite/gcc.dg/plugin/location-overflow-test-2.c
+ fe003478e6d8c2bb947402b78ce24063  gcc/testsuite/gcc.dg/plugin/location-overflow-test-3.c
  9e170fe1467d0a1b2ec0d3baf50cff4b  gcc/testsuite/gcc.dg/plugin/location-overflow-test-pr116047-1.h
  668a3b5ad920346b135fa852ca249d17  gcc/testsuite/gcc.dg/plugin/location-overflow-test-pr116047-2.h
  be795e2075413ef468ce241bac4503e2  gcc/testsuite/gcc.dg/plugin/location-overflow-test-pr116047.c
*************** c323b7b4ac0cf2caa641c6bb31350375  gcc/te
*** 49180,49186 ****
  4905199fc259967af414db22821f7f74  gcc/testsuite/gcc.dg/plugin/must_tail_call_plugin.cc
  adbc6d60d6e1474ca93af3b50208e741  gcc/testsuite/gcc.dg/plugin/one_time-test-1.c
  91500c30c78de7048ecb72b86a431e80  gcc/testsuite/gcc.dg/plugin/one_time_plugin.cc
! cb2a99ae3709baa43a8722d591d81b1c  gcc/testsuite/gcc.dg/plugin/plugin.exp
  10b87cc378ff8b6e30ae77af8c669e4b  gcc/testsuite/gcc.dg/plugin/plugindir1.c
  770fbe5bf2a65884c6120dab4b13a1d4  gcc/testsuite/gcc.dg/plugin/plugindir2.c
  5be673fb13573d3689c3cc3dff9f5a2e  gcc/testsuite/gcc.dg/plugin/plugindir3.c
--- 49195,49201 ----
  4905199fc259967af414db22821f7f74  gcc/testsuite/gcc.dg/plugin/must_tail_call_plugin.cc
  adbc6d60d6e1474ca93af3b50208e741  gcc/testsuite/gcc.dg/plugin/one_time-test-1.c
  91500c30c78de7048ecb72b86a431e80  gcc/testsuite/gcc.dg/plugin/one_time_plugin.cc
! 82ea495bfd4c359f037644f84a081eb2  gcc/testsuite/gcc.dg/plugin/plugin.exp
  10b87cc378ff8b6e30ae77af8c669e4b  gcc/testsuite/gcc.dg/plugin/plugindir1.c
  770fbe5bf2a65884c6120dab4b13a1d4  gcc/testsuite/gcc.dg/plugin/plugindir2.c
  5be673fb13573d3689c3cc3dff9f5a2e  gcc/testsuite/gcc.dg/plugin/plugindir3.c
*************** cc8dc43c5d18de4984503248c86934e4  gcc/te
*** 61875,61880 ****
--- 61890,61897 ----
  5afea9764e794ec9500d7840136687e8  gcc/testsuite/gcc.target/aarch64/pr119046.c
  4fb924f3ca58066d57cd648491945933  gcc/testsuite/gcc.target/aarch64/pr120986-1.c
  83ac293146b05a62ec4a19e52751ebd1  gcc/testsuite/gcc.target/aarch64/pr121253.c
+ c34d772e393da040a9ab73442d231d49  gcc/testsuite/gcc.target/aarch64/pr121853_1.c
+ bf526d120c538bd714985ac66c46f7bb  gcc/testsuite/gcc.target/aarch64/pr121853_2.c
  9adb42733d9f5e2b1f2dbb364b62100d  gcc/testsuite/gcc.target/aarch64/pr37780_1.c
  e668fb9e0d32efadd671247467dc90db  gcc/testsuite/gcc.target/aarch64/pr58460.c
  9023f817c07ddec673c5b546525fc184  gcc/testsuite/gcc.target/aarch64/pr60034.c
*************** a4114cf2b3bd0ac0af3dffbbe0b40004  gcc/te
*** 69348,69353 ****
--- 69365,69372 ----
  b3421fbdc1418b61214986622eb978f2  gcc/testsuite/gcc.target/arm/cmse/baseline/softfp.c
  dfde9b7816ac82223f119b2bfaa13341  gcc/testsuite/gcc.target/arm/cmse/baseline/union-1.c
  a3d5632079324bffb4dfe7cfa572dbe5  gcc/testsuite/gcc.target/arm/cmse/baseline/union-2.c
+ ab09e683e17dc7ce2c4d91c6a8e0d933  gcc/testsuite/gcc.target/arm/cmse/baseline/union-3.c
+ fc61b6892330cc23f0df8333d5d5ff47  gcc/testsuite/gcc.target/arm/cmse/baseline/union-4.c
  3a696ba550dff106d39149511c0b0de5  gcc/testsuite/gcc.target/arm/cmse/bitfield-1.c
  41ae1c120ef99d0e6c273119cef9cd11  gcc/testsuite/gcc.target/arm/cmse/bitfield-2.c
  5a79322cba867ee3afdfb353047e9ad7  gcc/testsuite/gcc.target/arm/cmse/bitfield-3.c
*************** b67dc35cb041e665b0436a8b3c1dbbf9  gcc/te
*** 69414,69419 ****
--- 69433,69439 ----
  df829d6ec7fb9540fcbd66368f0fb17b  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/softfp/cmse-8a.c
  539f0378e45653ff2109841bd4bccc87  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/union-1.c
  f0d9b39107e4de1b049dca00b29a58d2  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/union-2.c
+ faca3c21de94fc80fda6fd51e8115e33  gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/union-3.c
  ab4a6ad246ee43f02f3290436cb16703  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/bitfield-4.c
  55c0ab93e6f163c8a765c565d45a8deb  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/bitfield-5.c
  10fb3486026e454edbdbe45ab498982a  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/bitfield-6.c
*************** f32c9a4cdef7ef83fecd67301b456a9d  gcc/te
*** 69429,69438 ****
--- 69449,69461 ----
  ac653d1f3cfc80136bdb76146e93f54e  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard/cmse-5.c
  97787bd2fcb796ec7696f02f537bd431  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard/cmse-7.c
  72eb1b8dae3f9292128d561e3e35e163  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard/cmse-8.c
+ 1f19eefa0007defa3ca45a7482abfc1e  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard/union-4.c
+ 807c36fe1a023b784abbb41c04bd3fb3  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard/union-fp.c
  c10682b0d6dd961577656c6341f1e957  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/soft/cmse-13.c
  c55c869b20436c24bdd02f85fe70b11d  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/soft/cmse-5.c
  d0badae79ad18b1207053d6aee06d2e2  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/soft/cmse-7.c
  c706b608cdc03272d5b4c56b2eff0aec  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/soft/cmse-8.c
+ 40df0729b706e4e5aa6fb504927583cd  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/soft/union-4.c
  5f2c7d5d20375a6df18e5baba15b33c2  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp-sp/cmse-5.c
  81bddd3d228a9a9ca4be6b55076773e3  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp-sp/cmse-7.c
  5085fb86dd895243667d8656113e2d93  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp-sp/cmse-8.c
*************** cb1f8a28400b5e5ea5ea510c8a09258b  gcc/te
*** 69440,69452 ****
--- 69463,69479 ----
  71cacd1a0ea9cb2d80cab5df1e00d276  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp/cmse-5.c
  5d78ce9c80e35effb58bd70ff8e1c041  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp/cmse-7.c
  7c237776495bc9451d7b94ec36068f56  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp/cmse-8.c
+ b4f8619085f032943e4c8a193542e258  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp/union-4.c
  cb60008d5e98eeaf45a18dec48047164  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/union-1.c
  bfdbc743afa8415599bab6c48cb26d64  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/union-2.c
+ bc5ddeb704b470aff4db297ad27825e6  gcc/testsuite/gcc.target/arm/cmse/mainline/8m/union-3.c
  8cd1e54844f2fab111ede15dfc983556  gcc/testsuite/gcc.target/arm/cmse/pr100333.c
  c7feddd41b8ab7d0bcc61e9ba67a259a  gcc/testsuite/gcc.target/arm/cmse/pr99725.c
  dc937ad7bdd38e233f8eb2871fbab365  gcc/testsuite/gcc.target/arm/cmse/struct-1.c
  018f6e1e401b9f8f53cb13da1c5fcef7  gcc/testsuite/gcc.target/arm/cmse/union-1.x
  4b49e4c79c02f37ae492dd2e76ef29e7  gcc/testsuite/gcc.target/arm/cmse/union-2.x
+ 00b490e0defc9861facd27d1446d45db  gcc/testsuite/gcc.target/arm/cmse/union-3.x
+ 1e947232907f7ad0b0de9dc9f2203863  gcc/testsuite/gcc.target/arm/cmse/union-4.x
  2dc71ce174b431509377d1ffd99a8551  gcc/testsuite/gcc.target/arm/cold-lc.c
  415862d2bb4d1d07b30f96b9f6b103ae  gcc/testsuite/gcc.target/arm/combine-cmp-shift.c
  4aca50869b79ab15beb4a0ff13338a21  gcc/testsuite/gcc.target/arm/combine-movs.c
*************** acf1fac916847c2064b8d2bbb6535828  gcc/te
*** 83455,83460 ****
--- 83482,83489 ----
  d1eee63ffd26f53d2b788cb0eb55f5a6  gcc/testsuite/gcc.target/loongarch/pr121875.c
  1dd25b33f6fd8d4c4dc750865d86f404  gcc/testsuite/gcc.target/loongarch/pr121906.c
  4fb67de6ceaa4d3d0dfff318541b470b  gcc/testsuite/gcc.target/loongarch/pr122097.c
+ 0626ac54385b7d00394be7a0b09850a1  gcc/testsuite/gcc.target/loongarch/pr122695-1.c
+ fb640df1e5eb969859e5c360f608dec4  gcc/testsuite/gcc.target/loongarch/pr122695-2.c
  1eac553341d725c6e59615b593aedb0d  gcc/testsuite/gcc.target/loongarch/pragma-push-pop.c
  3adba2a8ae6f671eb22ec8228777c1ac  gcc/testsuite/gcc.target/loongarch/prolog-opt.c
  1bfa30f99dc5f04f569fbff68640ab19  gcc/testsuite/gcc.target/loongarch/recip-divf.c
*************** eda1f0d5c82c50988ede53858da3cabd  gcc/te
*** 89600,89605 ****
--- 89629,89635 ----
  cbc44c5c7fa77e3f0d3efc55779bba4b  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr121781.c
  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
  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
*************** fe8536ad63d0a16274b5bc4f784951a1  gcc/te
*** 107015,107020 ****
--- 107045,107051 ----
  b7f0fac05667f630e8f9b90aebe1fea4  gcc/testsuite/gfortran.dg/select_char_1.f90
  4bf875de20300472ec17d50aced7e0ab  gcc/testsuite/gfortran.dg/select_char_2.f90
  9f98379d27ae7878917fe08a1c19379f  gcc/testsuite/gfortran.dg/select_char_3.f90
+ 940d47f5d16eb43c90d00e589e757088  gcc/testsuite/gfortran.dg/select_contiguous.f90
  37e908eef4b56dca409c4daba93bdcfc  gcc/testsuite/gfortran.dg/select_rank_1.f90
  b7f688acbe6b27032e2d16f367317b58  gcc/testsuite/gfortran.dg/select_rank_2.f90
  de48eaee117c9656a2db00a7ffbe9cb9  gcc/testsuite/gfortran.dg/select_rank_3.f90
*************** cde7364d679bf019115a37fca70a6f52  gcc/te
*** 115342,115348 ****
  a658e6e3511698723b87be3277ba706d  gcc/testsuite/lib/go-torture.exp
  450868d4f15f0faade8c693e132ee071  gcc/testsuite/lib/go.exp
  8699bdd60911dccd7ce56e96f4032646  gcc/testsuite/lib/hwasan-dg.exp
! 0fc3c9996c992caced4cf2071cceba21  gcc/testsuite/lib/lto.exp
  645e8af17b334c4e279636a7b47dacbe  gcc/testsuite/lib/mike-g++.exp
  b2d617c3a17f3ed4084a60722369c3a8  gcc/testsuite/lib/mike-gcc.exp
  bf783dcd14ad74babc1bf3e91cc46055  gcc/testsuite/lib/modules.exp
--- 115373,115379 ----
  a658e6e3511698723b87be3277ba706d  gcc/testsuite/lib/go-torture.exp
  450868d4f15f0faade8c693e132ee071  gcc/testsuite/lib/go.exp
  8699bdd60911dccd7ce56e96f4032646  gcc/testsuite/lib/hwasan-dg.exp
! 68f54a06f3ffcbd6b65ca0ed4fa926c5  gcc/testsuite/lib/lto.exp
  645e8af17b334c4e279636a7b47dacbe  gcc/testsuite/lib/mike-g++.exp
  b2d617c3a17f3ed4084a60722369c3a8  gcc/testsuite/lib/mike-gcc.exp
  bf783dcd14ad74babc1bf3e91cc46055  gcc/testsuite/lib/modules.exp
*************** b4a6da1471f279353aaca4956c18cdea  gcc/tr
*** 117820,117826 ****
  bcff760f6710b9047412aba72a381983  gcc/tree-affine.h
  527c9fa3845b2653cafc14c109129179  gcc/tree-assume.cc
  918b3dce8ecc8579127255abad77605e  gcc/tree-call-cdce.cc
! 8724b2c8ddca47562f380d6bdc4b9ee3  gcc/tree-cfg.cc
  591222e5199894b9b5d23b1822f7e309  gcc/tree-cfg.h
  a48b85120f042a19d52da08d304cc287  gcc/tree-cfgcleanup.cc
  4357345e39068e97ced26f06af8109a6  gcc/tree-cfgcleanup.h
--- 117851,117857 ----
  bcff760f6710b9047412aba72a381983  gcc/tree-affine.h
  527c9fa3845b2653cafc14c109129179  gcc/tree-assume.cc
  918b3dce8ecc8579127255abad77605e  gcc/tree-call-cdce.cc
! ecc3c287e84500d6b3a5d2cc1c7b3ada  gcc/tree-cfg.cc
  591222e5199894b9b5d23b1822f7e309  gcc/tree-cfg.h
  a48b85120f042a19d52da08d304cc287  gcc/tree-cfgcleanup.cc
  4357345e39068e97ced26f06af8109a6  gcc/tree-cfgcleanup.h
*************** bc94d7017980d97ff957feb308ae771c  gcc/tr
*** 117924,117930 ****
  a27c58eccc3d8929767feb76dc99399f  gcc/tree-ssa-scopedtables.cc
  aa25adbcb019dd38a66ce237df54ae1d  gcc/tree-ssa-scopedtables.h
  1565dc0d975d174e5d53e4889ab223e3  gcc/tree-ssa-sink.cc
! f8a95ebe86d335b810e43ab71cae5b43  gcc/tree-ssa-strlen.cc
  817cd7b593b9ca11ac7464ee683d8f98  gcc/tree-ssa-strlen.h
  bd67579773d2e2f4ce02d41953702750  gcc/tree-ssa-structalias.cc
  8236d4d91b8701a8daadc2f8a12d4752  gcc/tree-ssa-tail-merge.cc
--- 117955,117961 ----
  a27c58eccc3d8929767feb76dc99399f  gcc/tree-ssa-scopedtables.cc
  aa25adbcb019dd38a66ce237df54ae1d  gcc/tree-ssa-scopedtables.h
  1565dc0d975d174e5d53e4889ab223e3  gcc/tree-ssa-sink.cc
! 406a54cdf8b5be043cc4908ed1ac0fe1  gcc/tree-ssa-strlen.cc
  817cd7b593b9ca11ac7464ee683d8f98  gcc/tree-ssa-strlen.h
  bd67579773d2e2f4ce02d41953702750  gcc/tree-ssa-structalias.cc
  8236d4d91b8701a8daadc2f8a12d4752  gcc/tree-ssa-tail-merge.cc
*************** d680e7307fb59fe24f8431e179191f16  libssp
*** 132000,132006 ****
  534c3fb4a88e5c1f70db35c12b7742c3  libssp/vsnprintf-chk.c
  34daeb04a522ee796098df4446d6ce61  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! d3edaa8b5e18f6f1e979374a921708b8  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 132031,132037 ----
  534c3fb4a88e5c1f70db35c12b7742c3  libssp/vsnprintf-chk.c
  34daeb04a522ee796098df4446d6ce61  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! 83c1edd34578e71dc9898388c190fe7d  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
*************** d66f986053e4755f0517ff5cfe90b2b5  libstd
*** 132241,132247 ****
  6d16751d668adf69fac47cc69bde7d40  libstdc++-v3/doc/html/api.html
  08920438eea18325b4bfdf979379ff66  libstdc++-v3/doc/html/bk02.html
  47886ba7da131bf3cbf81a27cada5f6f  libstdc++-v3/doc/html/bk03.html
! 2ff76da9446af5dab1f67ad7cafbacaf  libstdc++-v3/doc/html/faq.html
  1ae70f0bf94464b036515d333fff8ab2  libstdc++-v3/doc/html/images/confdeps.png
  d7f63b43e9f4c39cf71de7585de522ee  libstdc++-v3/doc/html/images/pbds_balls_and_bins.png
  22eedc841676a98f8ae8b95131ac4d7e  libstdc++-v3/doc/html/images/pbds_binary_priority_queue_int_push.png
--- 132272,132278 ----
  6d16751d668adf69fac47cc69bde7d40  libstdc++-v3/doc/html/api.html
  08920438eea18325b4bfdf979379ff66  libstdc++-v3/doc/html/bk02.html
  47886ba7da131bf3cbf81a27cada5f6f  libstdc++-v3/doc/html/bk03.html
! 65dce8e582bd843739d504bcea146a86  libstdc++-v3/doc/html/faq.html
  1ae70f0bf94464b036515d333fff8ab2  libstdc++-v3/doc/html/images/confdeps.png
  d7f63b43e9f4c39cf71de7585de522ee  libstdc++-v3/doc/html/images/pbds_balls_and_bins.png
  22eedc841676a98f8ae8b95131ac4d7e  libstdc++-v3/doc/html/images/pbds_binary_priority_queue_int_push.png
*************** d7249eb4d31bd107d0b09ea3c80cb723  libstd
*** 132322,132328 ****
  33bc39e8f2d47f3d490d7ca7d4832b43  libstdc++-v3/doc/html/images/pbds_trie_node_updator_policy_cd.png
  df705f3839120dcb896e9839cf3404d0  libstdc++-v3/doc/html/images/pbds_update_seq_diagram.png
  9262cc16ae0b0edc20fbb4efeabaaccd  libstdc++-v3/doc/html/index.html
! 4e75c9ed55364b062b87405d233e6dd8  libstdc++-v3/doc/html/manual/abi.html
  4ce10e27356ac31a5b7962aecbeb3638  libstdc++-v3/doc/html/manual/algorithms.html
  4fb7ffd9efe6e3547b24292c317aa5df  libstdc++-v3/doc/html/manual/api.html
  adafcaa8208ba56a2f53b5e10b57dde2  libstdc++-v3/doc/html/manual/appendix.html
--- 132353,132359 ----
  33bc39e8f2d47f3d490d7ca7d4832b43  libstdc++-v3/doc/html/images/pbds_trie_node_updator_policy_cd.png
  df705f3839120dcb896e9839cf3404d0  libstdc++-v3/doc/html/images/pbds_update_seq_diagram.png
  9262cc16ae0b0edc20fbb4efeabaaccd  libstdc++-v3/doc/html/index.html
! f2a4f897df6c949ab6690c9b60f86bd4  libstdc++-v3/doc/html/manual/abi.html
  4ce10e27356ac31a5b7962aecbeb3638  libstdc++-v3/doc/html/manual/algorithms.html
  4fb7ffd9efe6e3547b24292c317aa5df  libstdc++-v3/doc/html/manual/api.html
  adafcaa8208ba56a2f53b5e10b57dde2  libstdc++-v3/doc/html/manual/appendix.html
*************** adafcaa8208ba56a2f53b5e10b57dde2  libstd
*** 132330,132339 ****
  23038a3eb57967596dd7dc4f944e55e6  libstdc++-v3/doc/html/manual/appendix_free.html
  7bedd2c8f6a4683546db552dc3e8261f  libstdc++-v3/doc/html/manual/appendix_gfdl.html
  502f9b7267830b21cb88745d060faacf  libstdc++-v3/doc/html/manual/appendix_gpl.html
! 482cee07da7c4a2382174e7ad504f024  libstdc++-v3/doc/html/manual/appendix_porting.html
! ac3612f72ad76b3796526d161b19db59  libstdc++-v3/doc/html/manual/associative.html
  b8ac9fc2f2cfcaed0450c79e2fb01569  libstdc++-v3/doc/html/manual/atomics.html
! d30e8a474595941b24a6493ad08f78d9  libstdc++-v3/doc/html/manual/backwards.html
  c60c6ae778d5dedae24ac21abf948bdb  libstdc++-v3/doc/html/manual/bitmap_allocator.html
  3a3d01d1d9478286b8c505d1449531d4  libstdc++-v3/doc/html/manual/bitmap_allocator_impl.html
  6095fbb12cc581b2614870b42ad0e8b0  libstdc++-v3/doc/html/manual/bugs.html
--- 132361,132370 ----
  23038a3eb57967596dd7dc4f944e55e6  libstdc++-v3/doc/html/manual/appendix_free.html
  7bedd2c8f6a4683546db552dc3e8261f  libstdc++-v3/doc/html/manual/appendix_gfdl.html
  502f9b7267830b21cb88745d060faacf  libstdc++-v3/doc/html/manual/appendix_gpl.html
! a788b941dbdf4372824c82a3c22f6ce7  libstdc++-v3/doc/html/manual/appendix_porting.html
! 28d18f62862955c03fd5de7a9e104581  libstdc++-v3/doc/html/manual/associative.html
  b8ac9fc2f2cfcaed0450c79e2fb01569  libstdc++-v3/doc/html/manual/atomics.html
! 1985180c416d737bee7686d60f4e70ef  libstdc++-v3/doc/html/manual/backwards.html
  c60c6ae778d5dedae24ac21abf948bdb  libstdc++-v3/doc/html/manual/bitmap_allocator.html
  3a3d01d1d9478286b8c505d1449531d4  libstdc++-v3/doc/html/manual/bitmap_allocator_impl.html
  6095fbb12cc581b2614870b42ad0e8b0  libstdc++-v3/doc/html/manual/bugs.html
*************** cc3700f2fde50987f186f23abf98a7b1  libstd
*** 132341,132383 ****
  f3a54a6315d716742603d33f454f2c19  libstdc++-v3/doc/html/manual/concurrency.html
  6e1071c3830037b074f1c397f4e7a3e6  libstdc++-v3/doc/html/manual/configure.html
  5328918ec42768cddb06c3e97ef4530c  libstdc++-v3/doc/html/manual/containers.html
! c7e40c1085e414b3b4d5896db4013205  libstdc++-v3/doc/html/manual/containers_and_c.html
  5905f8be24ae69bb804c3d5a6a4abf7d  libstdc++-v3/doc/html/manual/debug.html
  1bd34529d162b6f3a08d5f2ea4943c6a  libstdc++-v3/doc/html/manual/debug_mode.html
  90b457b0d4240ee5b826a815bcd90912  libstdc++-v3/doc/html/manual/debug_mode_design.html
  397ce9357678670b7c451c92eab7cb57  libstdc++-v3/doc/html/manual/debug_mode_semantics.html
  1fe03067a558eb3fd4b3a8c1337db0d1  libstdc++-v3/doc/html/manual/debug_mode_using.html
! 7f6c5a9eb000f65ee1888d459beb9dd5  libstdc++-v3/doc/html/manual/diagnostics.html
  074e3891bbedea5b412c648e455f6adf  libstdc++-v3/doc/html/manual/documentation_hacking.html
! 44375d933be3e667b4c31334c041decb  libstdc++-v3/doc/html/manual/dynamic_memory.html
  55666dfa05ec7aae2596d6968f6fdb38  libstdc++-v3/doc/html/manual/errno.html
  e47e050922ad8c8f67f42be36ea507c4  libstdc++-v3/doc/html/manual/ext_algorithms.html
  f06c80959b51df8ead13e6679a537cbc  libstdc++-v3/doc/html/manual/ext_compile_checks.html
  afcc2751dae09e088abc1e3175cb94cc  libstdc++-v3/doc/html/manual/ext_concurrency.html
  41d83456313998bffbded9e19febedc6  libstdc++-v3/doc/html/manual/ext_concurrency_impl.html
  9eae121ff2ad3f2dd5a2748f87f9f530  libstdc++-v3/doc/html/manual/ext_concurrency_use.html
! 0597d03ff215b7f17e0240178c030166  libstdc++-v3/doc/html/manual/ext_containers.html
! 561a364254927bdc578ac31f1b66747f  libstdc++-v3/doc/html/manual/ext_demangling.html
  05003e71d54cfdfd4c8291489f8ffa07  libstdc++-v3/doc/html/manual/ext_io.html
  44f8ef8b093904d418755d0e32d700b7  libstdc++-v3/doc/html/manual/ext_iterators.html
  ffd5e74a40bbf6623b8ccf687eb584d8  libstdc++-v3/doc/html/manual/ext_numerics.html
  6d380acac52eb8c888a54068e44b16ac  libstdc++-v3/doc/html/manual/ext_preface.html
! 6889f243ab6934ae5f80ea7fa9c69dbf  libstdc++-v3/doc/html/manual/ext_sgi.html
  9b34310c7cb7faa4373ee6683678c457  libstdc++-v3/doc/html/manual/ext_utilities.html
  9e255046a8ef2903114374ed06403045  libstdc++-v3/doc/html/manual/extensions.html
  76cac108e21e304b7607196fb5245e00  libstdc++-v3/doc/html/manual/facets.html
  9b06f8b16b4ba69e1269f98bb22377f2  libstdc++-v3/doc/html/manual/fstreams.html
! b404abb1e78a27e8a8980eb14ec27bab  libstdc++-v3/doc/html/manual/generalized_numeric_operations.html
  559ad34510db5c724ed2881282560ebc  libstdc++-v3/doc/html/manual/index.html
  8687facb6d19ccc2a663efbc50e745a1  libstdc++-v3/doc/html/manual/internals.html
  17d07c26f60433c6f5bf7f55a785fb3f  libstdc++-v3/doc/html/manual/intro.html
! 46de5aefef02b8c599fc816bea53ae67  libstdc++-v3/doc/html/manual/io.html
! 89dd67b210011f646675fa2ede886305  libstdc++-v3/doc/html/manual/io_and_c.html
! 32f6d6929349f8f96de44fbdd842ed48  libstdc++-v3/doc/html/manual/iterators.html
  aa205efdc2e69588d568e2c1738a8581  libstdc++-v3/doc/html/manual/license.html
  945f5ecd78f495a46c64b58665a37d69  libstdc++-v3/doc/html/manual/localization.html
  85ac3d22494cc64118e8df02fa68c90d  libstdc++-v3/doc/html/manual/make.html
! bed9104f8eff5fa454366f451181a04a  libstdc++-v3/doc/html/manual/memory.html
  c40a00e2cba07156a6bd77b14cccc2e4  libstdc++-v3/doc/html/manual/mt_allocator.html
  4934caabf7eef9ff3618e9ac17acba49  libstdc++-v3/doc/html/manual/mt_allocator_design.html
  bdbb1ff20830123a43576a05081312f9  libstdc++-v3/doc/html/manual/mt_allocator_ex_multi.html
--- 132372,132414 ----
  f3a54a6315d716742603d33f454f2c19  libstdc++-v3/doc/html/manual/concurrency.html
  6e1071c3830037b074f1c397f4e7a3e6  libstdc++-v3/doc/html/manual/configure.html
  5328918ec42768cddb06c3e97ef4530c  libstdc++-v3/doc/html/manual/containers.html
! f66b4b01119c005cf471450613fc105b  libstdc++-v3/doc/html/manual/containers_and_c.html
  5905f8be24ae69bb804c3d5a6a4abf7d  libstdc++-v3/doc/html/manual/debug.html
  1bd34529d162b6f3a08d5f2ea4943c6a  libstdc++-v3/doc/html/manual/debug_mode.html
  90b457b0d4240ee5b826a815bcd90912  libstdc++-v3/doc/html/manual/debug_mode_design.html
  397ce9357678670b7c451c92eab7cb57  libstdc++-v3/doc/html/manual/debug_mode_semantics.html
  1fe03067a558eb3fd4b3a8c1337db0d1  libstdc++-v3/doc/html/manual/debug_mode_using.html
! ac31629383ea02b6f9d9689f5dd5494c  libstdc++-v3/doc/html/manual/diagnostics.html
  074e3891bbedea5b412c648e455f6adf  libstdc++-v3/doc/html/manual/documentation_hacking.html
! 0a3448d8bfaf5053260aeb3d9b7fd354  libstdc++-v3/doc/html/manual/dynamic_memory.html
  55666dfa05ec7aae2596d6968f6fdb38  libstdc++-v3/doc/html/manual/errno.html
  e47e050922ad8c8f67f42be36ea507c4  libstdc++-v3/doc/html/manual/ext_algorithms.html
  f06c80959b51df8ead13e6679a537cbc  libstdc++-v3/doc/html/manual/ext_compile_checks.html
  afcc2751dae09e088abc1e3175cb94cc  libstdc++-v3/doc/html/manual/ext_concurrency.html
  41d83456313998bffbded9e19febedc6  libstdc++-v3/doc/html/manual/ext_concurrency_impl.html
  9eae121ff2ad3f2dd5a2748f87f9f530  libstdc++-v3/doc/html/manual/ext_concurrency_use.html
! a475500e1e40ccf84021eef6688d0309  libstdc++-v3/doc/html/manual/ext_containers.html
! 36c76de14c65db6652b95eecd36601fb  libstdc++-v3/doc/html/manual/ext_demangling.html
  05003e71d54cfdfd4c8291489f8ffa07  libstdc++-v3/doc/html/manual/ext_io.html
  44f8ef8b093904d418755d0e32d700b7  libstdc++-v3/doc/html/manual/ext_iterators.html
  ffd5e74a40bbf6623b8ccf687eb584d8  libstdc++-v3/doc/html/manual/ext_numerics.html
  6d380acac52eb8c888a54068e44b16ac  libstdc++-v3/doc/html/manual/ext_preface.html
! 80ba3108a407ea691afc0849d1a7a487  libstdc++-v3/doc/html/manual/ext_sgi.html
  9b34310c7cb7faa4373ee6683678c457  libstdc++-v3/doc/html/manual/ext_utilities.html
  9e255046a8ef2903114374ed06403045  libstdc++-v3/doc/html/manual/extensions.html
  76cac108e21e304b7607196fb5245e00  libstdc++-v3/doc/html/manual/facets.html
  9b06f8b16b4ba69e1269f98bb22377f2  libstdc++-v3/doc/html/manual/fstreams.html
! fbe501e55689450dce7bb04b0f9a28b1  libstdc++-v3/doc/html/manual/generalized_numeric_operations.html
  559ad34510db5c724ed2881282560ebc  libstdc++-v3/doc/html/manual/index.html
  8687facb6d19ccc2a663efbc50e745a1  libstdc++-v3/doc/html/manual/internals.html
  17d07c26f60433c6f5bf7f55a785fb3f  libstdc++-v3/doc/html/manual/intro.html
! ad9c4c3d4e5712738facc14da8c89ae7  libstdc++-v3/doc/html/manual/io.html
! 5b9129eca807eb549e59c30ddf1605b9  libstdc++-v3/doc/html/manual/io_and_c.html
! 37ee363acc3e4b5507a49d588bbd797c  libstdc++-v3/doc/html/manual/iterators.html
  aa205efdc2e69588d568e2c1738a8581  libstdc++-v3/doc/html/manual/license.html
  945f5ecd78f495a46c64b58665a37d69  libstdc++-v3/doc/html/manual/localization.html
  85ac3d22494cc64118e8df02fa68c90d  libstdc++-v3/doc/html/manual/make.html
! 8f844e416e347cd59e91e9e3e3ddd63b  libstdc++-v3/doc/html/manual/memory.html
  c40a00e2cba07156a6bd77b14cccc2e4  libstdc++-v3/doc/html/manual/mt_allocator.html
  4934caabf7eef9ff3618e9ac17acba49  libstdc++-v3/doc/html/manual/mt_allocator_design.html
  bdbb1ff20830123a43576a05081312f9  libstdc++-v3/doc/html/manual/mt_allocator_ex_multi.html
*************** a40a3344663fbccc3184759981310047  libstd
*** 132385,132391 ****
  3113c1f4bb72a551ad756a0556819063  libstdc++-v3/doc/html/manual/mt_allocator_impl.html
  9dabea61a71c003598f8a991e614e76c  libstdc++-v3/doc/html/manual/numerics.html
  88a009e3d0a8c9e08103a63fdce3f776  libstdc++-v3/doc/html/manual/numerics_and_c.html
! d569c55932dee4a3a4e8598da8998e28  libstdc++-v3/doc/html/manual/pairs.html
  f9f0e84051f62c45dfb0a2c150dff6ee  libstdc++-v3/doc/html/manual/parallel_mode.html
  d0a5d1e6143763602cd06a3431e5eba7  libstdc++-v3/doc/html/manual/parallel_mode_design.html
  ecf6c505a75fa3dff283b1fefdda671b  libstdc++-v3/doc/html/manual/parallel_mode_semantics.html
--- 132416,132422 ----
  3113c1f4bb72a551ad756a0556819063  libstdc++-v3/doc/html/manual/mt_allocator_impl.html
  9dabea61a71c003598f8a991e614e76c  libstdc++-v3/doc/html/manual/numerics.html
  88a009e3d0a8c9e08103a63fdce3f776  libstdc++-v3/doc/html/manual/numerics_and_c.html
! c113923bbe1c3809744ab0db96c9ca87  libstdc++-v3/doc/html/manual/pairs.html
  f9f0e84051f62c45dfb0a2c150dff6ee  libstdc++-v3/doc/html/manual/parallel_mode.html
  d0a5d1e6143763602cd06a3431e5eba7  libstdc++-v3/doc/html/manual/parallel_mode_design.html
  ecf6c505a75fa3dff283b1fefdda671b  libstdc++-v3/doc/html/manual/parallel_mode_semantics.html
*************** e5c19b8ff5bc3c648559dbeb909a643d  libstd
*** 132394,132417 ****
  9979d7cb4d5cf7e6587881acebf84a4d  libstdc++-v3/doc/html/manual/policy_based_data_structures_test.html
  270766051c7a0ebb41d65856ebe73508  libstdc++-v3/doc/html/manual/policy_data_structures.html
  84c9bc8c54a3de8b4d90dfe3b438bc43  libstdc++-v3/doc/html/manual/policy_data_structures_ack.html
! d973b7693c2b6c717784b81d549c61e5  libstdc++-v3/doc/html/manual/policy_data_structures_design.html
  9acf818681732e9c264224c86b5ffdb3  libstdc++-v3/doc/html/manual/policy_data_structures_using.html
! 11c010c0761e0a41441314b388899e23  libstdc++-v3/doc/html/manual/setup.html
  05fe12a35eeac73538be455d4b27f923  libstdc++-v3/doc/html/manual/source_code_style.html
  f875f3f4cddfe4fee6aff2308ccb4563  libstdc++-v3/doc/html/manual/source_design_notes.html
  391422dd4f4cdbd4d764a952a0f345e6  libstdc++-v3/doc/html/manual/source_organization.html
  38ef77ae9c592a23515e4e1bbbb6a1d0  libstdc++-v3/doc/html/manual/status.html
  ea0c531c09fa230f346f8ba700961e4a  libstdc++-v3/doc/html/manual/std_contents.html
! 50160fa9f92780aaa6fc7a4ef13fc897  libstdc++-v3/doc/html/manual/streambufs.html
! 3cb55f3f54e0a98471bffdf9f533a8a2  libstdc++-v3/doc/html/manual/strings.html
  4fceea62121ba1fe214414a7506d385e  libstdc++-v3/doc/html/manual/stringstreams.html
! 52f0c68b15c7a2b6e098bcfb8da0094b  libstdc++-v3/doc/html/manual/support.html
! fcdceeabf3a95117ea22e93a0354e564  libstdc++-v3/doc/html/manual/termination.html
! 994a609aea3823f777eda71567bc8ed4  libstdc++-v3/doc/html/manual/test.html
  c39b927efcec5ac84139c1490c8ef320  libstdc++-v3/doc/html/manual/traits.html
! 530b96535baacfe35df2e65f9dfe7efc  libstdc++-v3/doc/html/manual/unordered_associative.html
  8aa9b7bfbe5a730701f97de49e583432  libstdc++-v3/doc/html/manual/using.html
! 78aa5833e13335bccb9f831528294eb7  libstdc++-v3/doc/html/manual/using_concurrency.html
  f8898e59cc7155a01a17f15a3b853c30  libstdc++-v3/doc/html/manual/using_dual_abi.html
  11dd55e39edb8313b5563e53067c431e  libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html
  09eeb2fa79fb240e032461adcbe2cb4a  libstdc++-v3/doc/html/manual/using_exceptions.html
--- 132425,132448 ----
  9979d7cb4d5cf7e6587881acebf84a4d  libstdc++-v3/doc/html/manual/policy_based_data_structures_test.html
  270766051c7a0ebb41d65856ebe73508  libstdc++-v3/doc/html/manual/policy_data_structures.html
  84c9bc8c54a3de8b4d90dfe3b438bc43  libstdc++-v3/doc/html/manual/policy_data_structures_ack.html
! 00aaa10e34d9e8b00a19d6c60ad1ed48  libstdc++-v3/doc/html/manual/policy_data_structures_design.html
  9acf818681732e9c264224c86b5ffdb3  libstdc++-v3/doc/html/manual/policy_data_structures_using.html
! 5fb6d2e05eb98a2128ffe705b93619e8  libstdc++-v3/doc/html/manual/setup.html
  05fe12a35eeac73538be455d4b27f923  libstdc++-v3/doc/html/manual/source_code_style.html
  f875f3f4cddfe4fee6aff2308ccb4563  libstdc++-v3/doc/html/manual/source_design_notes.html
  391422dd4f4cdbd4d764a952a0f345e6  libstdc++-v3/doc/html/manual/source_organization.html
  38ef77ae9c592a23515e4e1bbbb6a1d0  libstdc++-v3/doc/html/manual/status.html
  ea0c531c09fa230f346f8ba700961e4a  libstdc++-v3/doc/html/manual/std_contents.html
! ed880ae9a474601ab139b1f243cbad76  libstdc++-v3/doc/html/manual/streambufs.html
! 2a262c4a0f123859ea1ea62fc6c5a226  libstdc++-v3/doc/html/manual/strings.html
  4fceea62121ba1fe214414a7506d385e  libstdc++-v3/doc/html/manual/stringstreams.html
! 75ab8c3dc22e27fc36cddbf1f63e62e0  libstdc++-v3/doc/html/manual/support.html
! 576070c373ebcaee386d0b95fe56b0c3  libstdc++-v3/doc/html/manual/termination.html
! ef21758d3146dfd1becb9df90c7ad489  libstdc++-v3/doc/html/manual/test.html
  c39b927efcec5ac84139c1490c8ef320  libstdc++-v3/doc/html/manual/traits.html
! b2b541e52af05c96f0b4e36d035d6ed9  libstdc++-v3/doc/html/manual/unordered_associative.html
  8aa9b7bfbe5a730701f97de49e583432  libstdc++-v3/doc/html/manual/using.html
! 67af75428c4b0fee1420d75c75421ab6  libstdc++-v3/doc/html/manual/using_concurrency.html
  f8898e59cc7155a01a17f15a3b853c30  libstdc++-v3/doc/html/manual/using_dual_abi.html
  11dd55e39edb8313b5563e53067c431e  libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html
  09eeb2fa79fb240e032461adcbe2cb4a  libstdc++-v3/doc/html/manual/using_exceptions.html
*************** e8b86abd99dc9893dfa1bb7533fdc23d  libstd
*** 132424,132430 ****
  5906074c27c57c65b220c35bbcb2c5ec  libstdc++-v3/doc/xml/book.txml
  44d3a92b83abfb18efac80519c79b44c  libstdc++-v3/doc/xml/chapter.txml
  011b8e6a5442e4dc08f02e7295b644a3  libstdc++-v3/doc/xml/class.txml
! bf9bccd7b0755cfea2731e669eb18a76  libstdc++-v3/doc/xml/faq.xml
  ea77580f7e81e2c49aea3f425c01ee2b  libstdc++-v3/doc/xml/gnu/fdl-1.3.xml
  56bb32e9ab9358834c5f8eca2cd0e969  libstdc++-v3/doc/xml/gnu/gpl-3.0.xml
  18a6390297702ec8fd75cbcc525d2005  libstdc++-v3/doc/xml/images/confdeps.dot
--- 132455,132461 ----
  5906074c27c57c65b220c35bbcb2c5ec  libstdc++-v3/doc/xml/book.txml
  44d3a92b83abfb18efac80519c79b44c  libstdc++-v3/doc/xml/chapter.txml
  011b8e6a5442e4dc08f02e7295b644a3  libstdc++-v3/doc/xml/class.txml
! f8a3eeba9dd66a276c1851dc3499ecf6  libstdc++-v3/doc/xml/faq.xml
  ea77580f7e81e2c49aea3f425c01ee2b  libstdc++-v3/doc/xml/gnu/fdl-1.3.xml
  56bb32e9ab9358834c5f8eca2cd0e969  libstdc++-v3/doc/xml/gnu/gpl-3.0.xml
  18a6390297702ec8fd75cbcc525d2005  libstdc++-v3/doc/xml/images/confdeps.dot
*************** cc132f90a00a3ca05f64b578f9e332aa  libstd
*** 132604,132643 ****
  f63bfdc03ba2b82c74864f02206d7c52  libstdc++-v3/doc/xml/images/pbds_tree_text_lor_find.svg
  33bc39e8f2d47f3d490d7ca7d4832b43  libstdc++-v3/doc/xml/images/pbds_trie_node_updator_policy_cd.png
  df705f3839120dcb896e9839cf3404d0  libstdc++-v3/doc/xml/images/pbds_update_seq_diagram.png
! e7d6be44d477d4dfab6f169057dc4002  libstdc++-v3/doc/xml/manual/abi.xml
  c1d775ba87be90b85044162eab59a66c  libstdc++-v3/doc/xml/manual/algorithms.xml
! a87c9806b403e8eab90d3020e1111bd5  libstdc++-v3/doc/xml/manual/allocator.xml
  b9f6d3637e7f129ed22277a507325bfc  libstdc++-v3/doc/xml/manual/appendix_contributing.xml
  11e0fd62db5b93db462f3c54750904ec  libstdc++-v3/doc/xml/manual/appendix_free.xml
  0e37b1b056c89ad8cd7ef98f9924284c  libstdc++-v3/doc/xml/manual/appendix_porting.xml
  5139cfc8fdaabd93b5aa7362de789702  libstdc++-v3/doc/xml/manual/atomics.xml
! c3d24d92dc2ae1e99149164f60e80337  libstdc++-v3/doc/xml/manual/auto_ptr.xml
! 18ecbccd2db2605dc093780d7b72799b  libstdc++-v3/doc/xml/manual/backwards_compatibility.xml
  b84cb983bda244285e1314327a420e66  libstdc++-v3/doc/xml/manual/bitmap_allocator.xml
! b3f117e4c677e60cf6035cf76714b185  libstdc++-v3/doc/xml/manual/build_hacking.xml
  8f13cae7ea80bc018b87b4ff8de7e3cf  libstdc++-v3/doc/xml/manual/codecvt.xml
  af3361d0d0af961859ec0346c38ac8c8  libstdc++-v3/doc/xml/manual/concurrency.xml
  9da4610e32c81714e9188c6852c8dc93  libstdc++-v3/doc/xml/manual/concurrency_extensions.xml
  7ac1661f8bba0e715c24ddc063e48ee7  libstdc++-v3/doc/xml/manual/configure.xml
! d7100469dfefd97836f3007f2682087d  libstdc++-v3/doc/xml/manual/containers.xml
  d08c687d9520b2f9d8dd6d973cca9e6a  libstdc++-v3/doc/xml/manual/ctype.xml
  0423695ef5d72eb026dfccb3b68e16ac  libstdc++-v3/doc/xml/manual/debug.xml
  a972c915c47573572139ea9161dec244  libstdc++-v3/doc/xml/manual/debug_mode.xml
! f320f25003678cca910f09ba54c923fc  libstdc++-v3/doc/xml/manual/diagnostics.xml
  3680906036c20b1ccc54e2d06b5a3a24  libstdc++-v3/doc/xml/manual/documentation_hacking.xml
  f300cfbcd39d07f1a1628c08ed8bc650  libstdc++-v3/doc/xml/manual/evolution.xml
! 250fbd9ce8e61158b22da9b231426c24  libstdc++-v3/doc/xml/manual/extensions.xml
  7f1864c7f3c3b2bfde84b7086be97ca7  libstdc++-v3/doc/xml/manual/internals.xml
! fb1b8e4745ce0e8ee919f6013ad8ba87  libstdc++-v3/doc/xml/manual/intro.xml
! 01ddfa93b18eebb84ed0144728f9bc9e  libstdc++-v3/doc/xml/manual/io.xml
! 5ac71d67674ea22bcf1e54043bf8e99d  libstdc++-v3/doc/xml/manual/iterators.xml
  b9c8759ff9b60e09bd2875420a55cd31  libstdc++-v3/doc/xml/manual/locale.xml
  b00f98f125f6186c369ce588d795f978  libstdc++-v3/doc/xml/manual/localization.xml
  90cedee1e8e04d1ab87bbf41d47293ec  libstdc++-v3/doc/xml/manual/messages.xml
  ac9d3bd9fc0873aff36db0b07a78bf4a  libstdc++-v3/doc/xml/manual/mt_allocator.xml
! 42b8355117a7bd9aa755048290e70d2c  libstdc++-v3/doc/xml/manual/numerics.xml
  670fae5ac4c0fa1aec6d56273ad3e32f  libstdc++-v3/doc/xml/manual/parallel_mode.xml
! 7c390b245068bcc2f3f52590bdf8526f  libstdc++-v3/doc/xml/manual/policy_data_structures.xml
  44c53fbcb219a9a8db16061983e78759  libstdc++-v3/doc/xml/manual/policy_data_structures_biblio.xml
  bdc0ccd8cfd9d1d8cc970f825d5fe4bd  libstdc++-v3/doc/xml/manual/prerequisites.xml
  adadeaccd7e3be18b69dcc095e96f3af  libstdc++-v3/doc/xml/manual/shared_ptr.xml
--- 132635,132674 ----
  f63bfdc03ba2b82c74864f02206d7c52  libstdc++-v3/doc/xml/images/pbds_tree_text_lor_find.svg
  33bc39e8f2d47f3d490d7ca7d4832b43  libstdc++-v3/doc/xml/images/pbds_trie_node_updator_policy_cd.png
  df705f3839120dcb896e9839cf3404d0  libstdc++-v3/doc/xml/images/pbds_update_seq_diagram.png
! fababc206c2f50bea99087667b23c9f6  libstdc++-v3/doc/xml/manual/abi.xml
  c1d775ba87be90b85044162eab59a66c  libstdc++-v3/doc/xml/manual/algorithms.xml
! 954cbafffb4b6f40cda84d906436793a  libstdc++-v3/doc/xml/manual/allocator.xml
  b9f6d3637e7f129ed22277a507325bfc  libstdc++-v3/doc/xml/manual/appendix_contributing.xml
  11e0fd62db5b93db462f3c54750904ec  libstdc++-v3/doc/xml/manual/appendix_free.xml
  0e37b1b056c89ad8cd7ef98f9924284c  libstdc++-v3/doc/xml/manual/appendix_porting.xml
  5139cfc8fdaabd93b5aa7362de789702  libstdc++-v3/doc/xml/manual/atomics.xml
! 9b574792eb53b53a4c25095856de9eba  libstdc++-v3/doc/xml/manual/auto_ptr.xml
! 61521d63ad9e9ab631ea718a1c9b6bb5  libstdc++-v3/doc/xml/manual/backwards_compatibility.xml
  b84cb983bda244285e1314327a420e66  libstdc++-v3/doc/xml/manual/bitmap_allocator.xml
! 31759d672b7c4bd11ca01ca6db69c514  libstdc++-v3/doc/xml/manual/build_hacking.xml
  8f13cae7ea80bc018b87b4ff8de7e3cf  libstdc++-v3/doc/xml/manual/codecvt.xml
  af3361d0d0af961859ec0346c38ac8c8  libstdc++-v3/doc/xml/manual/concurrency.xml
  9da4610e32c81714e9188c6852c8dc93  libstdc++-v3/doc/xml/manual/concurrency_extensions.xml
  7ac1661f8bba0e715c24ddc063e48ee7  libstdc++-v3/doc/xml/manual/configure.xml
! 8fb8db51febba73cfb5456272d1dcb7a  libstdc++-v3/doc/xml/manual/containers.xml
  d08c687d9520b2f9d8dd6d973cca9e6a  libstdc++-v3/doc/xml/manual/ctype.xml
  0423695ef5d72eb026dfccb3b68e16ac  libstdc++-v3/doc/xml/manual/debug.xml
  a972c915c47573572139ea9161dec244  libstdc++-v3/doc/xml/manual/debug_mode.xml
! 90361f264f5edc899c47c155c4106f24  libstdc++-v3/doc/xml/manual/diagnostics.xml
  3680906036c20b1ccc54e2d06b5a3a24  libstdc++-v3/doc/xml/manual/documentation_hacking.xml
  f300cfbcd39d07f1a1628c08ed8bc650  libstdc++-v3/doc/xml/manual/evolution.xml
! 35161972a439c38c57ac30525b12bd9f  libstdc++-v3/doc/xml/manual/extensions.xml
  7f1864c7f3c3b2bfde84b7086be97ca7  libstdc++-v3/doc/xml/manual/internals.xml
! b9a71f2513a821d689faf68e4bb3c87f  libstdc++-v3/doc/xml/manual/intro.xml
! ae2b92cd9b8aa5539864e672f2380698  libstdc++-v3/doc/xml/manual/io.xml
! 3a6d3e952f11115ffc8c918555bbd8e7  libstdc++-v3/doc/xml/manual/iterators.xml
  b9c8759ff9b60e09bd2875420a55cd31  libstdc++-v3/doc/xml/manual/locale.xml
  b00f98f125f6186c369ce588d795f978  libstdc++-v3/doc/xml/manual/localization.xml
  90cedee1e8e04d1ab87bbf41d47293ec  libstdc++-v3/doc/xml/manual/messages.xml
  ac9d3bd9fc0873aff36db0b07a78bf4a  libstdc++-v3/doc/xml/manual/mt_allocator.xml
! b087484df7b339be84e496a6dc7e63c6  libstdc++-v3/doc/xml/manual/numerics.xml
  670fae5ac4c0fa1aec6d56273ad3e32f  libstdc++-v3/doc/xml/manual/parallel_mode.xml
! 61958800e0a22fd197373dc5b3cd3452  libstdc++-v3/doc/xml/manual/policy_data_structures.xml
  44c53fbcb219a9a8db16061983e78759  libstdc++-v3/doc/xml/manual/policy_data_structures_biblio.xml
  bdc0ccd8cfd9d1d8cc970f825d5fe4bd  libstdc++-v3/doc/xml/manual/prerequisites.xml
  adadeaccd7e3be18b69dcc095e96f3af  libstdc++-v3/doc/xml/manual/shared_ptr.xml
*************** cf0ef2164c8071a200c66f96e7971b77  libstd
*** 132651,132663 ****
  e12241b98a6c1e835b7b1d1bb31761ca  libstdc++-v3/doc/xml/manual/status_cxxis29124.xml
  947cbcb30cf76f2d22ef124b555113b9  libstdc++-v3/doc/xml/manual/status_cxxtr1.xml
  4d3d64f9d7fc245ed5d85a621393ffce  libstdc++-v3/doc/xml/manual/status_cxxtr24733.xml
! bfd38fc5f1090656a5139c94c16ea163  libstdc++-v3/doc/xml/manual/strings.xml
! 2b80feb1b53a8d0895a292620ec430b2  libstdc++-v3/doc/xml/manual/support.xml
! c540dcb615e766afe887215bd7795e42  libstdc++-v3/doc/xml/manual/test.xml
  e2e099be3dd6a4b7a940a7232635ee2c  libstdc++-v3/doc/xml/manual/test_policy_data_structures.xml
! 89a63a549c3438b3bee6bbf18f4c8b3e  libstdc++-v3/doc/xml/manual/using.xml
  257e301935b13b4b045e571fa248a4d8  libstdc++-v3/doc/xml/manual/using_exceptions.xml
! b820e3490221bb85cbf6bcdde0aa8150  libstdc++-v3/doc/xml/manual/utilities.xml
  c587674e0c370a2d6ccc5213ab3e4e65  libstdc++-v3/doc/xml/spine.xml
  bd966b4a0df6f2a84f9770525581d45c  libstdc++-v3/doc/xsl/customization.xsl.in
  42d14268f2b16c54a6bc2f71538a838c  libstdc++-v3/fragment.am
--- 132682,132694 ----
  e12241b98a6c1e835b7b1d1bb31761ca  libstdc++-v3/doc/xml/manual/status_cxxis29124.xml
  947cbcb30cf76f2d22ef124b555113b9  libstdc++-v3/doc/xml/manual/status_cxxtr1.xml
  4d3d64f9d7fc245ed5d85a621393ffce  libstdc++-v3/doc/xml/manual/status_cxxtr24733.xml
! 6ee9056a13ea8876e565b4ba45134bee  libstdc++-v3/doc/xml/manual/strings.xml
! cbd1ce02ad465e7f996671f14eee4ec9  libstdc++-v3/doc/xml/manual/support.xml
! 781c17f51704fbdcf6f729d3672f9aab  libstdc++-v3/doc/xml/manual/test.xml
  e2e099be3dd6a4b7a940a7232635ee2c  libstdc++-v3/doc/xml/manual/test_policy_data_structures.xml
! 51895aad91176abba6bdd35a08b3db4a  libstdc++-v3/doc/xml/manual/using.xml
  257e301935b13b4b045e571fa248a4d8  libstdc++-v3/doc/xml/manual/using_exceptions.xml
! bc0412a9556e7ed39afe5103b73f1f26  libstdc++-v3/doc/xml/manual/utilities.xml
  c587674e0c370a2d6ccc5213ab3e4e65  libstdc++-v3/doc/xml/spine.xml
  bd966b4a0df6f2a84f9770525581d45c  libstdc++-v3/doc/xsl/customization.xsl.in
  42d14268f2b16c54a6bc2f71538a838c  libstdc++-v3/fragment.am
*************** d85f3a53465585d54b96880e79456c79  libstd
*** 133754,133760 ****
  2f142e6a788b76b05091ff09d99ae47c  libstdc++-v3/src/c++23/print.cc
  15f6b28b71ad24bc5b6d33c21048e59a  libstdc++-v3/src/c++23/stacktrace.cc
  c319163994652e23066095eded5869f0  libstdc++-v3/src/c++23/std-clib.cc.in
! 0fa00f74a58a600c0511bf8564c30401  libstdc++-v3/src/c++23/std.cc.in
  ef2786c62e1aa27a5405d7bf70e5212c  libstdc++-v3/src/c++23/std.compat.cc.in
  97527213996a1ca6a0910b1ab5f6c3a3  libstdc++-v3/src/c++26/Makefile.am
  5dd6b2acd5d63f897ba1545bb9a07d25  libstdc++-v3/src/c++26/Makefile.in
--- 133785,133791 ----
  2f142e6a788b76b05091ff09d99ae47c  libstdc++-v3/src/c++23/print.cc
  15f6b28b71ad24bc5b6d33c21048e59a  libstdc++-v3/src/c++23/stacktrace.cc
  c319163994652e23066095eded5869f0  libstdc++-v3/src/c++23/std-clib.cc.in
! d6ec467bbf0414b1182989ccf09cf6a0  libstdc++-v3/src/c++23/std.cc.in
  ef2786c62e1aa27a5405d7bf70e5212c  libstdc++-v3/src/c++23/std.compat.cc.in
  97527213996a1ca6a0910b1ab5f6c3a3  libstdc++-v3/src/c++26/Makefile.am
  5dd6b2acd5d63f897ba1545bb9a07d25  libstdc++-v3/src/c++26/Makefile.in
*************** d261582526bd72a369fd09b9a5e27b62  libstd
*** 133809,133815 ****
  427145f15c1588507cc854a7c222094f  libstdc++-v3/src/filesystem/cow-path.cc
  b92adb30f5c707f7d2712de402cc66ba  libstdc++-v3/src/filesystem/dir-common.h
  644e833e765e73e5e86bff4b150dab3e  libstdc++-v3/src/filesystem/dir.cc
! 1c849e5f01320436f2c86830e37637be  libstdc++-v3/src/filesystem/ops-common.h
  2c978bede5376b1c0d23fabd3e70ec0f  libstdc++-v3/src/filesystem/ops.cc
  113879e407f06ea51cf09f1d102a9d4d  libstdc++-v3/src/filesystem/path.cc
  6313ac6df82e4bcf54d7f8bc2b00792e  libstdc++-v3/src/libbacktrace/Makefile.am
--- 133840,133846 ----
  427145f15c1588507cc854a7c222094f  libstdc++-v3/src/filesystem/cow-path.cc
  b92adb30f5c707f7d2712de402cc66ba  libstdc++-v3/src/filesystem/dir-common.h
  644e833e765e73e5e86bff4b150dab3e  libstdc++-v3/src/filesystem/dir.cc
! bda843db2d23dffae71b35d326ebf2da  libstdc++-v3/src/filesystem/ops-common.h
  2c978bede5376b1c0d23fabd3e70ec0f  libstdc++-v3/src/filesystem/ops.cc
  113879e407f06ea51cf09f1d102a9d4d  libstdc++-v3/src/filesystem/path.cc
  6313ac6df82e4bcf54d7f8bc2b00792e  libstdc++-v3/src/libbacktrace/Makefile.am
*************** b1bbe044bf2cc15fe9a6ecc95613510d  libstd
*** 140696,140702 ****
  ab943d9bc5490bc757c8302dfa9a2a91  libstdc++-v3/testsuite/27_io/filesystem/operations/relative.cc
  fb0171897b130763a1ebe8406ab18b30  libstdc++-v3/testsuite/27_io/filesystem/operations/remove.cc
  99ec46decac90cdf2549db4a6bc128d9  libstdc++-v3/testsuite/27_io/filesystem/operations/remove_all.cc
! 2bb08fe7776156238f12f9a7f4798d55  libstdc++-v3/testsuite/27_io/filesystem/operations/rename.cc
  05d39af031ecce987270ceb9b70d409d  libstdc++-v3/testsuite/27_io/filesystem/operations/resize_file.cc
  1d9f3065c6978d26c56d44c42e70dc5f  libstdc++-v3/testsuite/27_io/filesystem/operations/space.cc
  099ce0270a6ab9db7d982f896efdd3ed  libstdc++-v3/testsuite/27_io/filesystem/operations/status.cc
--- 140727,140733 ----
  ab943d9bc5490bc757c8302dfa9a2a91  libstdc++-v3/testsuite/27_io/filesystem/operations/relative.cc
  fb0171897b130763a1ebe8406ab18b30  libstdc++-v3/testsuite/27_io/filesystem/operations/remove.cc
  99ec46decac90cdf2549db4a6bc128d9  libstdc++-v3/testsuite/27_io/filesystem/operations/remove_all.cc
! 4ca59312344242ce287cd2829ad039b6  libstdc++-v3/testsuite/27_io/filesystem/operations/rename.cc
  05d39af031ecce987270ceb9b70d409d  libstdc++-v3/testsuite/27_io/filesystem/operations/resize_file.cc
  1d9f3065c6978d26c56d44c42e70dc5f  libstdc++-v3/testsuite/27_io/filesystem/operations/space.cc
  099ce0270a6ab9db7d982f896efdd3ed  libstdc++-v3/testsuite/27_io/filesystem/operations/status.cc
diff -Nrcpad gcc-15-20251115/gcc/ChangeLog gcc-15-20251122/gcc/ChangeLog
*** gcc-15-20251115/gcc/ChangeLog	Sat Nov 15 22:32:47 2025
--- gcc-15-20251122/gcc/ChangeLog	Sat Nov 22 22:32:12 2025
***************
*** 1,3 ****
--- 1,108 ----
+ 2025-11-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* doc/invoke.texi (Optimize Options) <-fmalloc-dce>: Remove
+ 	trailing space.
+ 	(AArch64 Options) <-march>: Fix pasto.
+ 
+ 2025-11-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2025-10-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/122225
+ 	* tree-cfg.cc (verify_gimple_return): Look at DECL_RESULT
+ 	for DECL_BY_REFERENCE.
+ 
+ 2025-11-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2025-10-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	* config/i386/i386-options.cc (ix86_option_override_internal):
+ 	Fix check during opts->x_ix86_move_max initialization.
+ 
+ 2025-11-20  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	Backported from master:
+ 	2025-11-20  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/122695
+ 	* config/loongarch/loongarch.cc (loongarch_expand_vec_perm_1):
+ 	Simplify and fix the logic preventing the xvshuf.* unpredictable
+ 	behavior.
+ 
+ 2025-11-18  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	Backported from master:
+ 	2025-11-12  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	PR target/122539
+ 	* config/arm/arm.cc (comp_not_to_clear_mask_str_un): Skip partial
+ 	register clearing logic for FP_REGS.
+ 	(compute_not_to_clear_mask): Likewise.
+ 
+ 2025-11-18  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	Backported from master:
+ 	2025-11-12  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	PR target/122539
+ 	* config/arm/arm.cc (comp_not_to_clear_mask_str_un): Update
+ 	not_to_clear_reg_mask for union members.
+ 
+ 2025-11-18  Siddhesh Poyarekar  <siddhesh@gotplt.org>
+ 
+ 	Backported from master:
+ 	2025-11-04  Siddhesh Poyarekar  <siddhesh@gotplt.org>
+ 
+ 	PR lto/122515
+ 	* lto-wrapper.cc (debug_objcopy): Set type of INOFF to int64_t.
+ 	(run_gcc): Set type of FILE_OFFSET to int64_t.
+ 
+ 2025-11-18  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	Backported from master:
+ 	2025-10-31  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/121853
+ 	* config/aarch64/aarch64-simd.md (extendbfsf2): New.
+ 
+ 2025-11-18  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2025-09-02  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/121776
+ 	* tree-ssa-strlen.cc (strlen_pass::handle_builtin_memcmp): Create
+ 	unaligned types if the alignment of the pointers is less
+ 	than the alignment of the new type.
+ 
+ 2025-11-17  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2025-08-18  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR middle-end/121581
+ 	* doc/extend.texi (__builtin_object_size): Fix example.
+ 
+ 2025-11-17  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/122627
+ 	* lra-constraints.cc (update_equiv): Remove patch from last week
+ 	related to pr122321.
+ 	(lra_constraints): Expand the equivalence array after eliminations
+ 	are complete.
+ 
+ 2025-11-16  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	* diagnostic.cc (num_digits): Change argument type from `int' to
+ 	`uint64_t'.
+ 	(test_num_digits): Add test for 64-bit argument.
+ 	* diagnostic.h (num_digits): Adjust prototype.
+ 	* input.cc (write_digit): Accept argument in range 0-9 instead of
+ 	an arbitrary int.
+ 	(write_digit_row): Adjust to change in write_digit().
+ 
  2025-11-14  Jeff Law  <jlaw@ventanamicro.com>
  
  	Backported from master:
diff -Nrcpad gcc-15-20251115/gcc/DATESTAMP gcc-15-20251122/gcc/DATESTAMP
*** gcc-15-20251115/gcc/DATESTAMP	Sat Nov 15 22:32:47 2025
--- gcc-15-20251122/gcc/DATESTAMP	Sat Nov 22 22:32:13 2025
***************
*** 1 ****
! 20251115
--- 1 ----
! 20251122
diff -Nrcpad gcc-15-20251115/gcc/ada/ChangeLog gcc-15-20251122/gcc/ada/ChangeLog
*** gcc-15-20251115/gcc/ada/ChangeLog	Sat Nov 15 22:32:47 2025
--- gcc-15-20251122/gcc/ada/ChangeLog	Sat Nov 22 22:32:13 2025
***************
*** 1,3 ****
--- 1,26 ----
+ 2025-11-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* repinfo.adb (List_Location): Do not output the final comma.
+ 	(List_Common_Type_Info): Adjust to above change.  Do not output
+ 	"??" for an unknown alignment.
+ 	(List_Entities): Do not output generic types.
+ 	(List_Object_Info): Adjust to above change.
+ 	(List_Subprogram_Info): Likewise.
+ 
+ 2025-11-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_type.adb (Last_Overloaded): Fix typo.
+ 
+ 2025-11-21  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/111433
+ 	* sem_util.ads (Incomplete_Or_Partial_View): Add Partial_Only formal
+ 	parameter.
+ 	* sem_util.adb (Incomplete_Or_Partial_View): Likewise.  Do not look
+ 	for an incomplete view if it is set to True.
+ 	* sem_ch6.adb (Check_Conformance.Null_Exclusions_Match): Pass True
+ 	for Partial_Only in the call to Incomplete_Or_Partial_View.
+ 
  2025-11-12  Eric Botcazou  <ebotcazou@adacore.com>
  
  	PR ada/122640
diff -Nrcpad gcc-15-20251115/gcc/ada/repinfo.adb gcc-15-20251122/gcc/ada/repinfo.adb
*** gcc-15-20251115/gcc/ada/repinfo.adb	Sat Nov 15 22:32:49 2025
--- gcc-15-20251122/gcc/ada/repinfo.adb	Sat Nov 22 22:32:15 2025
*************** package body Repinfo is
*** 375,383 ****
  
              if Esize (Ent) = RM_Size (Ent) then
                 if List_Representation_Info_To_JSON then
                    Write_Str ("  ""Size"": ");
                    Write_Val (Esize (Ent));
-                   Write_Line (",");
                 else
                    Write_Str ("for ");
                    List_Name (Ent);
--- 375,383 ----
  
              if Esize (Ent) = RM_Size (Ent) then
                 if List_Representation_Info_To_JSON then
+                   Write_Line (",");
                    Write_Str ("  ""Size"": ");
                    Write_Val (Esize (Ent));
                 else
                    Write_Str ("for ");
                    List_Name (Ent);
*************** package body Repinfo is
*** 390,402 ****
  
              else
                 if List_Representation_Info_To_JSON then
                    Write_Str ("  ""Object_Size"": ");
                    Write_Val (Esize (Ent));
-                   Write_Line (",");
  
                    Write_Str ("  ""Value_Size"": ");
                    Write_Val (RM_Size (Ent));
-                   Write_Line (",");
  
                 else
                    Write_Str ("for ");
--- 390,402 ----
  
              else
                 if List_Representation_Info_To_JSON then
+                   Write_Line (",");
                    Write_Str ("  ""Object_Size"": ");
                    Write_Val (Esize (Ent));
  
+                   Write_Line (",");
                    Write_Str ("  ""Value_Size"": ");
                    Write_Val (RM_Size (Ent));
  
                 else
                    Write_Str ("for ");
*************** package body Repinfo is
*** 417,422 ****
--- 417,423 ----
  
        if Known_Alignment (Ent) then
           if List_Representation_Info_To_JSON then
+             Write_Line (",");
              Write_Str ("  ""Alignment"": ");
              Write_Val (Alignment (Ent));
           else
*************** package body Repinfo is
*** 432,450 ****
        --  are not computed for types in a generic unit.
  
        else
!          --  Add unknown alignment entry in JSON format to ensure the format is
!          --  valid, as a comma is added by the caller before another field.
! 
!          if List_Representation_Info_To_JSON then
!             Write_Str ("  ""Alignment"": ");
!             Write_Unknown_Val;
!          end if;
! 
!          pragma Assert
!            (not Expander_Active or else
!               Is_Concurrent_Type (Ent) or else
!               Is_Class_Wide_Type (Ent) or else
!               Sem_Util.In_Generic_Scope (Ent));
        end if;
     end List_Common_Type_Info;
  
--- 433,442 ----
        --  are not computed for types in a generic unit.
  
        else
!          pragma Assert (not Expander_Active
!            or else Is_Concurrent_Type (Ent)
!            or else Is_Class_Wide_Type (Ent)
!            or else Sem_Util.In_Generic_Scope (Ent));
        end if;
     end List_Common_Type_Info;
  
*************** package body Repinfo is
*** 482,493 ****
  
           E := First_Entity (Ent);
           while Present (E) loop
!             --  We list entities that come from source (excluding private or
!             --  incomplete types or deferred constants, for which we will list
!             --  the information for the full view). If requested, we also list
!             --  relevant entities that have been generated when processing the
!             --  original entities coming from source. But if debug flag A is
!             --  set, then all entities are listed.
  
              if ((Comes_From_Source (E)
                     or else (Ekind (E) = E_Block
--- 474,486 ----
  
           E := First_Entity (Ent);
           while Present (E) loop
!             --  We list entities that come from source (except for incomplete,
!             --  private and generic types, as well as deferred constants, for
!             --  which we list the information for the full view). If requested
!             --  by the -gnatR4 switch, we also list relevant entities that have
!             --  been created when processing the original entities coming from
!             --  source. If debug switch -gnatdA is specified, then all entities
!             --  are listed.
  
              if ((Comes_From_Source (E)
                     or else (Ekind (E) = E_Block
*************** package body Repinfo is
*** 495,503 ****
                              Nkind (Parent (E)) = N_Implicit_Label_Declaration
                                and then
                              Comes_From_Source (Label_Construct (Parent (E)))))
!               and then not Is_Incomplete_Or_Private_Type (E)
!               and then not (Ekind (E) = E_Constant
!                               and then Present (Full_View (E))))
                or else (List_Representation_Info = 4
                           and then Relevant_Entities.Get (E))
                or else Debug_Flag_AA
--- 488,497 ----
                              Nkind (Parent (E)) = N_Implicit_Label_Declaration
                                and then
                              Comes_From_Source (Label_Construct (Parent (E)))))
!                  and then not Is_Incomplete_Or_Private_Type (E)
!                  and then not Is_Generic_Type (E)
!                  and then not (Ekind (E) = E_Constant
!                                 and then Present (Full_View (E))))
                or else (List_Representation_Info = 4
                           and then Relevant_Entities.Get (E))
                or else Debug_Flag_AA
*************** package body Repinfo is
*** 822,828 ****
        pragma Assert (List_Representation_Info_To_JSON);
        Write_Str ("  ""location"": """);
        Write_Location (Sloc (Ent));
!       Write_Line (""",");
     end List_Location;
  
     ---------------
--- 816,822 ----
        pragma Assert (List_Representation_Info_To_JSON);
        Write_Str ("  ""location"": """);
        Write_Location (Sloc (Ent));
!       Write_Str ("""");
     end List_Location;
  
     ---------------
*************** package body Repinfo is
*** 884,889 ****
--- 878,884 ----
           List_Name (Ent);
           Write_Line (""",");
           List_Location (Ent);
+          Write_Line (",");
  
           Write_Str ("  ""Size"": ");
           Write_Val (Esize (Ent));
*************** package body Repinfo is
*** 1874,1879 ****
--- 1869,1875 ----
           List_Name (Ent);
           Write_Line (""",");
           List_Location (Ent);
+          Write_Line (",");
  
           Write_Str ("  ""Convention"": """);
        else
diff -Nrcpad gcc-15-20251115/gcc/ada/sem_ch6.adb gcc-15-20251122/gcc/ada/sem_ch6.adb
*** gcc-15-20251115/gcc/ada/sem_ch6.adb	Sat Nov 15 22:32:49 2025
--- gcc-15-20251122/gcc/ada/sem_ch6.adb	Sat Nov 22 22:32:15 2025
*************** package body Sem_Ch6 is
*** 5599,5605 ****
              declare
                 D : constant Entity_Id := Directly_Designated_Type (Etype (F1));
                 Partial_View_Of_Desig : constant Entity_Id :=
!                  Incomplete_Or_Partial_View (D);
              begin
                 return No (Partial_View_Of_Desig)
                   or else Is_Tagged_Type (Partial_View_Of_Desig)
--- 5599,5605 ----
              declare
                 D : constant Entity_Id := Directly_Designated_Type (Etype (F1));
                 Partial_View_Of_Desig : constant Entity_Id :=
!                  Incomplete_Or_Partial_View (D, Partial_Only => True);
              begin
                 return No (Partial_View_Of_Desig)
                   or else Is_Tagged_Type (Partial_View_Of_Desig)
diff -Nrcpad gcc-15-20251115/gcc/ada/sem_type.adb gcc-15-20251122/gcc/ada/sem_type.adb
*** gcc-15-20251115/gcc/ada/sem_type.adb	Sat Nov 15 22:32:49 2025
--- gcc-15-20251122/gcc/ada/sem_type.adb	Sat Nov 22 22:32:15 2025
*************** package body Sem_Type is
*** 109,115 ****
        Equal      => "=");
  
     Last_Overloaded : Node_Id := Empty;
!    --  Overloaded node after initializing a new collection of intepretation
  
     -------------------------------------
     -- Handling of Overload Resolution --
--- 109,115 ----
        Equal      => "=");
  
     Last_Overloaded : Node_Id := Empty;
!    --  Overloaded node after initializing a new collection of interpretations
  
     -------------------------------------
     -- Handling of Overload Resolution --
diff -Nrcpad gcc-15-20251115/gcc/ada/sem_util.adb gcc-15-20251122/gcc/ada/sem_util.adb
*** gcc-15-20251115/gcc/ada/sem_util.adb	Sat Nov 15 22:32:49 2025
--- gcc-15-20251122/gcc/ada/sem_util.adb	Sat Nov 22 22:32:15 2025
*************** package body Sem_Util is
*** 14355,14361 ****
     -- Incomplete_Or_Partial_View --
     --------------------------------
  
!    function Incomplete_Or_Partial_View (Id : Entity_Id) return Entity_Id is
        S : constant Entity_Id := Scope (Id);
  
        function Inspect_Decls
--- 14355,14363 ----
     -- Incomplete_Or_Partial_View --
     --------------------------------
  
!    function Incomplete_Or_Partial_View
!      (Id : Entity_Id; Partial_Only : Boolean := False) return Entity_Id
!    is
        S : constant Entity_Id := Scope (Id);
  
        function Inspect_Decls
*************** package body Sem_Util is
*** 14438,14443 ****
--- 14440,14446 ----
          and then (Is_Incomplete_Type (Prev) or else Ekind (Prev) = E_Constant)
          and then Present (Full_View (Prev))
          and then Full_View (Prev) = Id
+         and then not Partial_Only
        then
           return Prev;
        end if;
*************** package body Sem_Util is
*** 14449,14455 ****
              Pkg_Decl : constant Node_Id := Package_Specification (S);
  
           begin
!             --  It is knows that Typ has a private view, look for it in the
              --  visible declarations of the enclosing scope. A special case
              --  of this is when the two views have been exchanged - the full
              --  appears earlier than the private.
--- 14452,14458 ----
              Pkg_Decl : constant Node_Id := Package_Specification (S);
  
           begin
!             --  It is known that Typ has a private view, look for it in the
              --  visible declarations of the enclosing scope. A special case
              --  of this is when the two views have been exchanged - the full
              --  appears earlier than the private.
*************** package body Sem_Util is
*** 14469,14475 ****
              --  Taft amendment type. The incomplete view should be located in
              --  the private declarations of the enclosing scope.
  
!             elsif In_Package_Body (S) then
                 return Inspect_Decls (Private_Declarations (Pkg_Decl), True);
              end if;
           end;
--- 14472,14478 ----
              --  Taft amendment type. The incomplete view should be located in
              --  the private declarations of the enclosing scope.
  
!             elsif In_Package_Body (S) and then not Partial_Only then
                 return Inspect_Decls (Private_Declarations (Pkg_Decl), True);
              end if;
           end;
diff -Nrcpad gcc-15-20251115/gcc/ada/sem_util.ads gcc-15-20251122/gcc/ada/sem_util.ads
*** gcc-15-20251115/gcc/ada/sem_util.ads	Sat Nov 15 22:32:49 2025
--- gcc-15-20251122/gcc/ada/sem_util.ads	Sat Nov 22 22:32:15 2025
*************** package Sem_Util is
*** 1685,1693 ****
     --  package specification. The package must be on the scope stack, and the
     --  corresponding private part must not.
  
!    function Incomplete_Or_Partial_View (Id : Entity_Id) return Entity_Id;
     --  Given the entity of a constant or a type, retrieve the incomplete or
!    --  partial view of the same entity. Note that Id may not have a partial
     --  view in which case the function returns Empty.
  
     function Incomplete_View_From_Limited_With
--- 1685,1695 ----
     --  package specification. The package must be on the scope stack, and the
     --  corresponding private part must not.
  
!    function Incomplete_Or_Partial_View
!      (Id : Entity_Id; Partial_Only : Boolean := False) return Entity_Id;
     --  Given the entity of a constant or a type, retrieve the incomplete or
!    --  partial view of the same entity. If Partial_Only is True, retrieve
!    --  only the partial view of a type. Note that Id may not have a partial
     --  view in which case the function returns Empty.
  
     function Incomplete_View_From_Limited_With
diff -Nrcpad gcc-15-20251115/gcc/config/aarch64/aarch64-simd.md gcc-15-20251122/gcc/config/aarch64/aarch64-simd.md
*** gcc-15-20251115/gcc/config/aarch64/aarch64-simd.md	Sat Nov 15 22:32:49 2025
--- gcc-15-20251122/gcc/config/aarch64/aarch64-simd.md	Sat Nov 22 22:32:16 2025
***************
*** 3181,3186 ****
--- 3181,3187 ----
      DONE;
    }
  )
+ 
  (define_insn "extend<mode><Vwide>2"
    [(set (match_operand:<VWIDE> 0 "register_operand" "=w")
  	(float_extend:<VWIDE>
***************
*** 3190,3195 ****
--- 3191,3219 ----
    [(set_attr "type" "neon_fp_cvt_widen_s")]
  )
  
+ /* A BF->SF is a shift left of 16, however shifts are expensive and the generic
+    middle-end expansion would force through DI move.  Instead use EXT to do the
+    shift to get better throughput and don't go through GPRs.  */
+ 
+ (define_expand "extendbfsf2"
+   [(set (match_operand:SF 0 "register_operand" "=w")
+ 	(float_extend:SF
+ 	  (match_operand:BF 1 "register_operand" "w")))]
+   "TARGET_SIMD"
+ {
+   rtx tmp0 = aarch64_gen_shareable_zero (V8BFmode);
+   rtx op0 = force_lowpart_subreg (V8BFmode, operands[1], BFmode);
+   rtx res = gen_reg_rtx (V8BFmode);
+   emit_insn (gen_aarch64_extv8bf (res, tmp0, op0, gen_int_mode (7, SImode)));
+   /* Subregs between floating point modes aren't allowed to change size, so go
+      through V4SFmode.  */
+   res = force_lowpart_subreg (V4SFmode, res, V8BFmode);
+   res = force_lowpart_subreg (SFmode, res, V4SFmode);
+   emit_move_insn (operands[0], res);
+   DONE;
+ })
+ 
+ 
  ;; Float narrowing operations.
  
  (define_insn "aarch64_float_trunc_rodd_df"
diff -Nrcpad gcc-15-20251115/gcc/config/arm/arm.cc gcc-15-20251122/gcc/config/arm/arm.cc
*** gcc-15-20251115/gcc/config/arm/arm.cc	Sat Nov 15 22:32:49 2025
--- gcc-15-20251122/gcc/config/arm/arm.cc	Sat Nov 22 22:32:16 2025
*************** comp_not_to_clear_mask_str_un (tree arg_
*** 18609,18614 ****
--- 18609,18617 ----
  
  	  if (*last_used_bit != offset)
  	    {
+ 	      /* We never clear padding bits in any other registers than the
+ 		 first 4 GPRs.  */
+ 	      gcc_assert (*regno < 4);
  	      if (offset < *last_used_bit)
  		{
  		  /* This field's offset is before the 'last_used_bit', that
*************** comp_not_to_clear_mask_str_un (tree arg_
*** 18701,18719 ****
  	      last_used_bit_t = (starting_bit + field_size) % 32;
  	    }
  
! 	  for (i = *regno; i < regno_t; i++)
  	    {
! 	      /* For all but the last register used by this field only keep the
! 		 padding bits that were padding bits in this field.  */
! 	      padding_bits_to_clear_res[i] &= padding_bits_to_clear_t[i];
! 	    }
  
! 	    /* For the last register, keep all padding bits that were padding
! 	       bits in this field and any padding bits that are still valid
! 	       as padding bits but fall outside of this field's size.  */
! 	    mask = (((uint32_t) -1) - ((uint32_t) 1 << last_used_bit_t)) + 1;
! 	    padding_bits_to_clear_res[regno_t]
! 	      &= padding_bits_to_clear_t[regno_t] | mask;
  
  	  /* Update the maximum size of the fields in terms of registers used
  	     ('max_reg') and the 'last_used_bit' in said register.  */
--- 18704,18728 ----
  	      last_used_bit_t = (starting_bit + field_size) % 32;
  	    }
  
! 	  /* We only clear padding bits in the first 4 GPRs.  No need to check
! 	     regno_t, since there is no way where this field would have been
! 	     put into part GPR part FP reg.  */
! 	  if (*regno < 4)
  	    {
! 	      for (i = *regno; i < regno_t; i++)
! 		{
! 		  /* For all but the last register used by this field only keep
! 		     the padding bits that were padding bits in this field.  */
! 		  padding_bits_to_clear_res[i] &= padding_bits_to_clear_t[i];
! 		}
  
! 	      /* For the last register, keep all padding bits that were padding
! 		 bits in this field and any padding bits that are still valid
! 		 as padding bits but fall outside of this field's size.  */
! 	      mask = (((uint32_t) -1) - ((uint32_t) 1 << last_used_bit_t)) + 1;
! 	      padding_bits_to_clear_res[regno_t]
! 		&= padding_bits_to_clear_t[regno_t] | mask;
! 	    }
  
  	  /* Update the maximum size of the fields in terms of registers used
  	     ('max_reg') and the 'last_used_bit' in said register.  */
*************** comp_not_to_clear_mask_str_un (tree arg_
*** 18728,18743 ****
  	  field = TREE_CHAIN (field);
  	}
  
!       /* Update the current padding_bits_to_clear using the intersection of the
! 	 padding bits of all the fields.  */
!       for (i=*regno; i < max_reg; i++)
! 	padding_bits_to_clear[i] |= padding_bits_to_clear_res[i];
  
!       /* Do not keep trailing padding bits, we do not know yet whether this
! 	 is the end of the argument.  */
!       mask = ((uint32_t) 1 << max_bit) - 1;
!       padding_bits_to_clear[max_reg]
! 	|= padding_bits_to_clear_res[max_reg] & mask;
  
        *regno = max_reg;
        *last_used_bit = max_bit;
--- 18737,18761 ----
  	  field = TREE_CHAIN (field);
  	}
  
!       /* We only clear padding bits in the first 4 GPRs.  No need to check
! 	 regno_t, since there is no way where this field would have been
! 	 put into part GPR part FP reg.  */
!       if (*regno < 4)
! 	{
! 	  /* Update the current padding_bits_to_clear using the intersection of the
! 	     padding bits of all the fields.  */
! 	  for (i=*regno; i < max_reg; i++)
! 	    padding_bits_to_clear[i] |= padding_bits_to_clear_res[i];
  
! 	  /* Do not keep trailing padding bits, we do not know yet whether this
! 	     is the end of the argument.  */
! 	  mask = ((uint32_t) 1 << max_bit) - 1;
! 	  padding_bits_to_clear[max_reg]
! 	    |= padding_bits_to_clear_res[max_reg] & mask;
! 	}
! 
!       for (int i = *regno; i < max_reg; ++i)
! 	not_to_clear_reg_mask |= HOST_WIDE_INT_1U << i;
  
        *regno = max_reg;
        *last_used_bit = max_bit;
*************** compute_not_to_clear_mask (tree arg_type
*** 18779,18786 ****
        /* If the 'last_used_bit' is not zero, that means we are still using a
  	 part of the last 'regno'.  In such cases we must clear the trailing
  	 bits.  Otherwise we are not using regno and we should mark it as to
! 	 clear.  */
!       if (last_used_bit != 0)
  	padding_bits_to_clear[regno]
  	  |= ((uint32_t)-1) - ((uint32_t) 1 << last_used_bit) + 1;
        else
--- 18797,18805 ----
        /* If the 'last_used_bit' is not zero, that means we are still using a
  	 part of the last 'regno'.  In such cases we must clear the trailing
  	 bits.  Otherwise we are not using regno and we should mark it as to
! 	 clear.  We only clear padding bits for scalar values that are passed
! 	 in registers, so regno is never 4 or higher.  */
!       if (regno < 4 && last_used_bit != 0)
  	padding_bits_to_clear[regno]
  	  |= ((uint32_t)-1) - ((uint32_t) 1 << last_used_bit) + 1;
        else
diff -Nrcpad gcc-15-20251115/gcc/config/i386/i386-options.cc gcc-15-20251122/gcc/config/i386/i386-options.cc
*** gcc-15-20251115/gcc/config/i386/i386-options.cc	Sat Nov 15 22:32:50 2025
--- gcc-15-20251122/gcc/config/i386/i386-options.cc	Sat Nov 22 22:32:16 2025
*************** ix86_option_override_internal (bool main
*** 3047,3053 ****
        else
  	{
  	  opts->x_ix86_move_max = opts->x_prefer_vector_width_type;
! 	  if (opts_set->x_ix86_move_max == PVW_NONE)
  	    {
  	      if (TARGET_AVX512F_P (opts->x_ix86_isa_flags)
  		  && TARGET_EVEX512_P (opts->x_ix86_isa_flags2))
--- 3047,3053 ----
        else
  	{
  	  opts->x_ix86_move_max = opts->x_prefer_vector_width_type;
! 	  if (opts->x_ix86_move_max == PVW_NONE)
  	    {
  	      if (TARGET_AVX512F_P (opts->x_ix86_isa_flags)
  		  && TARGET_EVEX512_P (opts->x_ix86_isa_flags2))
diff -Nrcpad gcc-15-20251115/gcc/config/loongarch/loongarch.cc gcc-15-20251122/gcc/config/loongarch/loongarch.cc
*** gcc-15-20251115/gcc/config/loongarch/loongarch.cc	Sat Nov 15 22:32:50 2025
--- gcc-15-20251122/gcc/config/loongarch/loongarch.cc	Sat Nov 22 22:32:16 2025
*************** loongarch_expand_vec_perm_1 (rtx operand
*** 8988,9044 ****
    /* Number of elements in the vector.  */
    w = GET_MODE_NUNITS (mode);
  
!   rtx round_data[MAX_VECT_LEN];
!   rtx round_reg, round_data_rtx;
! 
!   if (mode != E_V32QImode)
      {
!       for (int i = 0; i < w; i += 1)
! 	{
! 	  round_data[i] = GEN_INT (0x1f);
! 	}
! 
!       if (mode == E_V4DFmode)
! 	{
! 	  round_data_rtx = gen_rtx_CONST_VECTOR (E_V4DImode,
! 						 gen_rtvec_v (w, round_data));
! 	  round_reg = gen_reg_rtx (E_V4DImode);
! 	}
!       else if (mode == E_V8SFmode)
! 	{
! 
! 	  round_data_rtx = gen_rtx_CONST_VECTOR (E_V8SImode,
! 						 gen_rtvec_v (w, round_data));
! 	  round_reg = gen_reg_rtx (E_V8SImode);
! 	}
!       else
! 	{
! 	  round_data_rtx = gen_rtx_CONST_VECTOR (mode,
! 						 gen_rtvec_v (w, round_data));
! 	  round_reg = gen_reg_rtx (mode);
! 	}
! 
!       emit_move_insn (round_reg, round_data_rtx);
!       switch (mode)
! 	{
! 	case E_V32QImode:
! 	  emit_insn (gen_andv32qi3 (mask, mask, round_reg));
! 	  break;
! 	case E_V16HImode:
! 	  emit_insn (gen_andv16hi3 (mask, mask, round_reg));
! 	  break;
! 	case E_V8SImode:
! 	case E_V8SFmode:
! 	  emit_insn (gen_andv8si3 (mask, mask, round_reg));
! 	  break;
! 	case E_V4DImode:
! 	case E_V4DFmode:
! 	  emit_insn (gen_andv4di3 (mask, mask, round_reg));
! 	  break;
! 	default:
! 	  gcc_unreachable ();
! 	  break;
! 	}
      }
  
    if (mode == V4DImode || mode == V4DFmode)
--- 8988,9000 ----
    /* Number of elements in the vector.  */
    w = GET_MODE_NUNITS (mode);
  
!   /* If we are using xvshuf.*, clamp the selector to avoid unpredictable
!      output.  */
!   if (maskmode != V8SImode && maskmode != V4DImode)
      {
!       rtx t = gen_const_vec_duplicate (maskmode, GEN_INT (0x1f));
!       mask = expand_binop (maskmode, and_optab, mask, t, NULL_RTX, false,
! 			   OPTAB_DIRECT);
      }
  
    if (mode == V4DImode || mode == V4DFmode)
diff -Nrcpad gcc-15-20251115/gcc/cp/ChangeLog gcc-15-20251122/gcc/cp/ChangeLog
*** gcc-15-20251115/gcc/cp/ChangeLog	Sat Nov 15 22:32:50 2025
--- gcc-15-20251122/gcc/cp/ChangeLog	Sat Nov 22 22:32:17 2025
***************
*** 1,3 ****
--- 1,37 ----
+ 2025-11-21  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-11-21  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/120529
+ 	* call.cc (ref_conv_binds_to_temporary): Don't ignore access control.
+ 
+ 2025-11-19  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-11-19  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/119580
+ 	* pt.cc (tsubst_baselink): Return error_mark_node if
+ 	tsubst_template_args returned error_mark_node.
+ 
+ 2025-11-18  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-11-18  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR c++/122677
+ 	* module.cc (create_dirs): Skip past any leading slashes.
+ 
+ 2025-11-16  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	Backported from master:
+ 	2025-11-16  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/122625
+ 	* module.cc (trees_in::read_var_def): Also track class-scope
+ 	primary template specialisations.
+ 
  2025-11-04  Nathaniel Shead  <nathanieloshead@gmail.com>
  
  	Backported from master:
diff -Nrcpad gcc-15-20251115/gcc/cp/call.cc gcc-15-20251122/gcc/cp/call.cc
*** gcc-15-20251115/gcc/cp/call.cc	Sat Nov 15 22:32:50 2025
--- gcc-15-20251122/gcc/cp/call.cc	Sat Nov 22 22:32:17 2025
*************** ref_conv_binds_to_temporary (tree type,
*** 10143,10153 ****
    const int flags = direct_init_p ? LOOKUP_NORMAL : LOOKUP_IMPLICIT;
    conversion *conv = implicit_conversion (type, TREE_TYPE (expr), expr,
  					  /*c_cast_p=*/false, flags, tf_none);
!   tristate ret (tristate::TS_UNKNOWN);
!   if (conv && !conv->bad_p)
!     ret = tristate (conv_binds_ref_to_temporary (conv));
  
!   return ret;
  }
  
  /* Call the trivial destructor for INSTANCE, which can be either an lvalue of
--- 10143,10161 ----
    const int flags = direct_init_p ? LOOKUP_NORMAL : LOOKUP_IMPLICIT;
    conversion *conv = implicit_conversion (type, TREE_TYPE (expr), expr,
  					  /*c_cast_p=*/false, flags, tf_none);
!   if (!conv || conv->bad_p)
!     return tristate::unknown ();
  
!   if (conv_binds_ref_to_temporary (conv))
!     {
!       /* Actually perform the conversion to check access control.  */
!       if (convert_like (conv, expr, tf_none) != error_mark_node)
! 	return tristate (true);
!       else
! 	return tristate::unknown ();
!     }
! 
!   return tristate (false);
  }
  
  /* Call the trivial destructor for INSTANCE, which can be either an lvalue of
diff -Nrcpad gcc-15-20251115/gcc/cp/module.cc gcc-15-20251122/gcc/cp/module.cc
*** gcc-15-20251115/gcc/cp/module.cc	Sat Nov 15 22:32:50 2025
--- gcc-15-20251122/gcc/cp/module.cc	Sat Nov 22 22:32:17 2025
*************** maybe_add_cmi_prefix (const char *to, si
*** 4884,4891 ****
  static void
  create_dirs (char *path)
  {
    /* Try and create the missing directories.  */
!   for (char *base = path; *base; base++)
      if (IS_DIR_SEPARATOR (*base))
        {
  	char sep = *base;
--- 4884,4896 ----
  static void
  create_dirs (char *path)
  {
+   char *base = path;
+   /* Skip past initial slashes of absolute path.  */
+   while (IS_DIR_SEPARATOR (*base))
+     base++;
+ 
    /* Try and create the missing directories.  */
!   for (; *base; base++)
      if (IS_DIR_SEPARATOR (*base))
        {
  	char sep = *base;
*************** trees_in::read_var_def (tree decl, tree
*** 12848,12855 ****
  	  if (DECL_EXPLICIT_INSTANTIATION (decl)
  	      && !DECL_EXTERNAL (decl))
  	    setup_explicit_instantiation_definition_linkage (decl);
! 	  /* Class static data members are handled in read_class_def.  */
! 	  if (!DECL_CLASS_SCOPE_P (decl)
  	      && (DECL_IMPLICIT_INSTANTIATION (decl)
  		  || (DECL_EXPLICIT_INSTANTIATION (decl)
  		      && !DECL_EXTERNAL (decl))))
--- 12853,12862 ----
  	  if (DECL_EXPLICIT_INSTANTIATION (decl)
  	      && !DECL_EXTERNAL (decl))
  	    setup_explicit_instantiation_definition_linkage (decl);
! 	  /* Class non-template static members are handled in read_class_def.
! 	     But still handle specialisations of member templates.  */
! 	  if ((!DECL_CLASS_SCOPE_P (decl)
! 	       || primary_template_specialization_p (decl))
  	      && (DECL_IMPLICIT_INSTANTIATION (decl)
  		  || (DECL_EXPLICIT_INSTANTIATION (decl)
  		      && !DECL_EXTERNAL (decl))))
diff -Nrcpad gcc-15-20251115/gcc/cp/pt.cc gcc-15-20251122/gcc/cp/pt.cc
*** gcc-15-20251115/gcc/cp/pt.cc	Sat Nov 15 22:32:50 2025
--- gcc-15-20251122/gcc/cp/pt.cc	Sat Nov 22 22:32:17 2025
*************** tsubst_baselink (tree baselink, tree obj
*** 17449,17454 ****
--- 17449,17456 ----
        if (template_args)
  	template_args = tsubst_template_args (template_args, args,
  					      complain, in_decl);
+       if (template_args == error_mark_node)
+ 	return error_mark_node;
      }
  
    tree binfo_type = BINFO_TYPE (BASELINK_BINFO (baselink));
diff -Nrcpad gcc-15-20251115/gcc/diagnostic.cc gcc-15-20251122/gcc/diagnostic.cc
*** gcc-15-20251115/gcc/diagnostic.cc	Sat Nov 15 22:32:50 2025
--- gcc-15-20251122/gcc/diagnostic.cc	Sat Nov 22 22:32:17 2025
*************** diagnostic_context::report_verbatim (tex
*** 1566,1576 ****
  /* Get the number of digits in the decimal representation of VALUE.  */
  
  int
! num_digits (int value)
  {
    /* Perhaps simpler to use log10 for this, but doing it this way avoids
       using floating point.  */
-   gcc_assert (value >= 0);
  
    if (value == 0)
      return 1;
--- 1566,1575 ----
  /* Get the number of digits in the decimal representation of VALUE.  */
  
  int
! num_digits (uint64_t value)
  {
    /* Perhaps simpler to use log10 for this, but doing it this way avoids
       using floating point.  */
  
    if (value == 0)
      return 1;
*************** test_num_digits ()
*** 2397,2402 ****
--- 2396,2402 ----
    ASSERT_EQ (7, num_digits (9999999));
    ASSERT_EQ (8, num_digits (10000000));
    ASSERT_EQ (8, num_digits (99999999));
+   ASSERT_EQ (20, num_digits (uint64_t (-1)));
  }
  
  /* Run all of the selftests within this file.  */
diff -Nrcpad gcc-15-20251115/gcc/diagnostic.h gcc-15-20251122/gcc/diagnostic.h
*** gcc-15-20251115/gcc/diagnostic.h	Sat Nov 15 22:32:50 2025
--- gcc-15-20251122/gcc/diagnostic.h	Sat Nov 22 22:32:17 2025
*************** extern const char *diagnostic_get_color_
*** 1254,1260 ****
  extern char *build_message_string (const char *, ...) ATTRIBUTE_PRINTF_1;
  
  /* Compute the number of digits in the decimal representation of an integer.  */
! extern int num_digits (int);
  
  inline bool
  warning_enabled_at (location_t loc, diagnostic_option_id option_id)
--- 1254,1260 ----
  extern char *build_message_string (const char *, ...) ATTRIBUTE_PRINTF_1;
  
  /* Compute the number of digits in the decimal representation of an integer.  */
! extern int num_digits (uint64_t);
  
  inline bool
  warning_enabled_at (location_t loc, diagnostic_option_id option_id)
diff -Nrcpad gcc-15-20251115/gcc/doc/extend.texi gcc-15-20251122/gcc/doc/extend.texi
*** gcc-15-20251115/gcc/doc/extend.texi	Sat Nov 15 22:32:50 2025
--- gcc-15-20251122/gcc/doc/extend.texi	Sat Nov 22 22:32:17 2025
*************** is computed.
*** 16971,16977 ****
  
  @smallexample
  struct V @{ char buf1[10]; int b; char buf2[10]; @} var;
! char *p = &var.buf1[1], *q = &var.b;
  
  /* Here the object p points to is var.  */
  assert (__builtin_object_size (p, 0) == sizeof (var) - 1);
--- 16971,16978 ----
  
  @smallexample
  struct V @{ char buf1[10]; int b; char buf2[10]; @} var;
! char *p = &var.buf1[1];
! int *q = &var.b;
  
  /* Here the object p points to is var.  */
  assert (__builtin_object_size (p, 0) == sizeof (var) - 1);
diff -Nrcpad gcc-15-20251115/gcc/doc/invoke.texi gcc-15-20251122/gcc/doc/invoke.texi
*** gcc-15-20251115/gcc/doc/invoke.texi	Sat Nov 15 22:32:50 2025
--- gcc-15-20251122/gcc/doc/invoke.texi	Sat Nov 22 22:32:17 2025
*************** as a parameter of @code{free} call or co
*** 15743,15749 ****
  with @option{-fmalloc-dce=2} also comparisons with @code{NULL} pointer are
  considered safe to remove.
  
! The default is @option{-fmalloc-dce=2}.  See also @option{-fallocation-dce}. 
  
  @opindex fmove-loop-invariants
  @item -fmove-loop-invariants
--- 15743,15749 ----
  with @option{-fmalloc-dce=2} also comparisons with @code{NULL} pointer are
  considered safe to remove.
  
! The default is @option{-fmalloc-dce=2}.  See also @option{-fallocation-dce}.
  
  @opindex fmove-loop-invariants
  @item -fmove-loop-invariants
*************** and the features that they enable by def
*** 21967,21973 ****
  @item @samp{armv9.2-a} @tab Armv9.2-A @tab @samp{armv9.1-a}, @samp{+wfxt}, @samp{+xs}
  @item @samp{armv9.3-a} @tab Armv9.3-A @tab @samp{armv9.2-a}, @samp{+mops}
  @item @samp{armv9.4-a} @tab Armv9.4-A @tab @samp{armv9.3-a}, @samp{+sve2p1}
! @item @samp{armv9.5-a} @tab Armv9.4-A @tab @samp{armv9.4-a}, @samp{cpa}, @samp{+faminmax}, @samp{+lut}
  @item @samp{armv8-r} @tab Armv8-R @tab @samp{armv8-r}
  @end multitable
  
--- 21967,21973 ----
  @item @samp{armv9.2-a} @tab Armv9.2-A @tab @samp{armv9.1-a}, @samp{+wfxt}, @samp{+xs}
  @item @samp{armv9.3-a} @tab Armv9.3-A @tab @samp{armv9.2-a}, @samp{+mops}
  @item @samp{armv9.4-a} @tab Armv9.4-A @tab @samp{armv9.3-a}, @samp{+sve2p1}
! @item @samp{armv9.5-a} @tab Armv9.5-A @tab @samp{armv9.4-a}, @samp{cpa}, @samp{+faminmax}, @samp{+lut}
  @item @samp{armv8-r} @tab Armv8-R @tab @samp{armv8-r}
  @end multitable
  
diff -Nrcpad gcc-15-20251115/gcc/fortran/ChangeLog gcc-15-20251122/gcc/fortran/ChangeLog
*** gcc-15-20251115/gcc/fortran/ChangeLog	Sat Nov 15 22:32:50 2025
--- gcc-15-20251122/gcc/fortran/ChangeLog	Sat Nov 22 22:32:17 2025
***************
*** 1,3 ****
--- 1,12 ----
+ 2025-11-18  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2025-11-17  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/122709
+ 	* resolve.cc (resolve_assoc_var): If the associate target is a
+ 	contiguous pointer, so is the associate variable.
+ 
  2025-11-01  Harald Anlauf  <anlauf@gmx.de>
  
  	Backported from master:
diff -Nrcpad gcc-15-20251115/gcc/fortran/resolve.cc gcc-15-20251122/gcc/fortran/resolve.cc
*** gcc-15-20251115/gcc/fortran/resolve.cc	Sat Nov 15 22:32:50 2025
--- gcc-15-20251122/gcc/fortran/resolve.cc	Sat Nov 22 22:32:17 2025
*************** resolve_assoc_var (gfc_symbol* sym, bool
*** 10465,10470 ****
--- 10465,10474 ----
    /* If the target is a good class object, so is the associate variable.  */
    if (sym->ts.type == BT_CLASS && gfc_expr_attr (target).class_ok)
      sym->attr.class_ok = 1;
+ 
+   /* If the target is a contiguous pointer, so is the associate variable.  */
+   if (gfc_expr_attr (target).pointer && gfc_expr_attr (target).contiguous)
+     sym->attr.contiguous = 1;
  }
  
  
diff -Nrcpad gcc-15-20251115/gcc/input.cc gcc-15-20251122/gcc/input.cc
*** gcc-15-20251115/gcc/input.cc	Sat Nov 15 22:32:51 2025
--- gcc-15-20251122/gcc/input.cc	Sat Nov 22 22:32:17 2025
*************** get_end_location (class line_maps *set,
*** 1379,1385 ****
  static void
  write_digit (FILE *stream, int digit)
  {
!   fputc ('0' + (digit % 10), stream);
  }
  
  /* Helper function for dump_location_info.
--- 1379,1385 ----
  static void
  write_digit (FILE *stream, int digit)
  {
!   fputc ('0' + digit, stream);
  }
  
  /* Helper function for dump_location_info.
*************** write_digit_row (FILE *stream, int inden
*** 1396,1402 ****
    for (int column = 1; column < max_col; column++)
      {
        location_t column_loc = loc + (location_t (column) << map->m_range_bits);
!       write_digit (stream, column_loc / divisor);
      }
    fprintf (stream, "\n");
  }
--- 1396,1402 ----
    for (int column = 1; column < max_col; column++)
      {
        location_t column_loc = loc + (location_t (column) << map->m_range_bits);
!       write_digit (stream, (column_loc / divisor) % 10);
      }
    fprintf (stream, "\n");
  }
diff -Nrcpad gcc-15-20251115/gcc/lra-constraints.cc gcc-15-20251122/gcc/lra-constraints.cc
*** gcc-15-20251115/gcc/lra-constraints.cc	Sat Nov 15 22:32:51 2025
--- gcc-15-20251122/gcc/lra-constraints.cc	Sat Nov 22 22:32:18 2025
*************** update_equiv (int regno)
*** 522,532 ****
  {
    rtx x;
  
-   /* If REGNO is beyond the length of the equivalence array structure,
-      then there's nothing to update.  */
-   if (regno >= ira_reg_equiv_len)
-     return;
- 
    if ((x = ira_reg_equiv[regno].memory) != NULL_RTX)
      ira_reg_equiv[regno].memory
        = simplify_replace_fn_rtx (x, NULL_RTX, loc_equivalence_callback,
--- 522,527 ----
*************** lra_constraints (bool first_p)
*** 5398,5403 ****
--- 5393,5402 ----
       some pseudos during elimination.  */
    lra_eliminate (false, first_p);
    auto_bitmap equiv_insn_bitmap (&reg_obstack);
+ 
+   /* Register elimination can create new pseudos via the addptr pattern,
+      so make sure the equivalency tables are resized appropriately.  */
+   ira_expand_reg_equiv ();
    for (i = FIRST_PSEUDO_REGISTER; i < new_regno_start; i++)
      if (lra_reg_info[i].nrefs != 0)
        {
diff -Nrcpad gcc-15-20251115/gcc/lto/ChangeLog gcc-15-20251122/gcc/lto/ChangeLog
*** gcc-15-20251115/gcc/lto/ChangeLog	Sat Nov 15 22:32:51 2025
--- gcc-15-20251122/gcc/lto/ChangeLog	Sat Nov 22 22:32:18 2025
***************
*** 1,3 ****
--- 1,14 ----
+ 2025-11-18  Siddhesh Poyarekar  <siddhesh@gotplt.org>
+ 
+ 	Backported from master:
+ 	2025-11-04  Siddhesh Poyarekar  <siddhesh@gotplt.org>
+ 
+ 	PR lto/122515
+ 	* lto.h (lto_section_slot): Set type of START to off_t.
+ 	* lto-common.cc (lto_read_section_data): Adjust.
+ 	* lto-object.cc (lto_obj_file_open): Set type of OFFSET to
+ 	int64_t.
+ 
  2025-08-08  Release Manager
  
  	* GCC 15.2.0 released.
diff -Nrcpad gcc-15-20251115/gcc/lto/lto-common.cc gcc-15-20251122/gcc/lto/lto-common.cc
*** gcc-15-20251115/gcc/lto/lto-common.cc	Sat Nov 15 22:32:51 2025
--- gcc-15-20251122/gcc/lto/lto-common.cc	Sat Nov 22 22:32:18 2025
*************** static size_t page_mask;
*** 2395,2409 ****
  
  static char *
  lto_read_section_data (struct lto_file_decl_data *file_data,
! 		       intptr_t offset, size_t len)
  {
    char *result;
    static int fd = -1;
    static char *fd_name;
  #if LTO_MMAP_IO
!   intptr_t computed_len;
!   intptr_t computed_offset;
!   intptr_t diff;
  #endif
  
    /* Keep a single-entry file-descriptor cache.  The last file we
--- 2395,2409 ----
  
  static char *
  lto_read_section_data (struct lto_file_decl_data *file_data,
! 		       off_t offset, size_t len)
  {
    char *result;
    static int fd = -1;
    static char *fd_name;
  #if LTO_MMAP_IO
!   size_t computed_len;
!   off_t computed_offset;
!   off_t diff;
  #endif
  
    /* Keep a single-entry file-descriptor cache.  The last file we
*************** lto_read_section_data (struct lto_file_d
*** 2436,2444 ****
        page_mask = ~(page_size - 1);
      }
  
!   computed_offset = offset & page_mask;
    diff = offset - computed_offset;
!   computed_len = len + diff;
  
    result = (char *) mmap (NULL, computed_len, PROT_READ, MAP_PRIVATE,
  			  fd, computed_offset);
--- 2436,2450 ----
        page_mask = ~(page_size - 1);
      }
  
!   computed_offset = offset & ((off_t) page_mask);
    diff = offset - computed_offset;
!   if (len > (size_t) (SSIZE_MAX - diff))
!     {
!       fatal_error (input_location, "Cannot map %s: section is too long",
! 		   file_data->file_name);
!       return NULL;
!     }
!   computed_len = (size_t) diff + len;
  
    result = (char *) mmap (NULL, computed_len, PROT_READ, MAP_PRIVATE,
  			  fd, computed_offset);
diff -Nrcpad gcc-15-20251115/gcc/lto/lto-object.cc gcc-15-20251122/gcc/lto/lto-object.cc
*** gcc-15-20251115/gcc/lto/lto-object.cc	Sat Nov 15 22:32:51 2025
--- gcc-15-20251122/gcc/lto/lto-object.cc	Sat Nov 22 22:32:18 2025
*************** lto_file *
*** 69,78 ****
  lto_obj_file_open (const char *filename, bool writable)
  {
    const char *offset_p;
-   long loffset;
    int consumed;
    char *fname;
!   off_t offset;
    struct lto_simple_object *lo;
    const char *errmsg;
    int err;
--- 69,77 ----
  lto_obj_file_open (const char *filename, bool writable)
  {
    const char *offset_p;
    int consumed;
    char *fname;
!   int64_t offset;
    struct lto_simple_object *lo;
    const char *errmsg;
    int err;
*************** lto_obj_file_open (const char *filename,
*** 80,92 ****
    offset_p = strrchr (filename, '@');
    if (offset_p != NULL
        && offset_p != filename
!       && sscanf (offset_p, "@%li%n", &loffset, &consumed) >= 1
        && strlen (offset_p) == (unsigned int) consumed)
      {
        fname = XNEWVEC (char, offset_p - filename + 1);
        memcpy (fname, filename, offset_p - filename);
        fname[offset_p - filename] = '\0';
-       offset = (off_t) loffset;
      }
    else
      {
--- 79,90 ----
    offset_p = strrchr (filename, '@');
    if (offset_p != NULL
        && offset_p != filename
!       && sscanf (offset_p, "@%" PRIi64 "%n", &offset, &consumed) >= 1
        && strlen (offset_p) == (unsigned int) consumed)
      {
        fname = XNEWVEC (char, offset_p - filename + 1);
        memcpy (fname, filename, offset_p - filename);
        fname[offset_p - filename] = '\0';
      }
    else
      {
diff -Nrcpad gcc-15-20251115/gcc/lto/lto.h gcc-15-20251122/gcc/lto/lto.h
*** gcc-15-20251115/gcc/lto/lto.h	Sat Nov 15 22:32:51 2025
--- gcc-15-20251122/gcc/lto/lto.h	Sat Nov 22 22:32:18 2025
*************** extern int lto_link_dump_id, decl_merge_
*** 58,64 ****
  struct lto_section_slot
  {
    const char *name;
!   intptr_t start;
    size_t len;
    struct lto_section_slot *next;
  };
--- 58,64 ----
  struct lto_section_slot
  {
    const char *name;
!   off_t start;
    size_t len;
    struct lto_section_slot *next;
  };
diff -Nrcpad gcc-15-20251115/gcc/lto-wrapper.cc gcc-15-20251122/gcc/lto-wrapper.cc
*** gcc-15-20251115/gcc/lto-wrapper.cc	Sat Nov 15 22:32:51 2025
--- gcc-15-20251122/gcc/lto-wrapper.cc	Sat Nov 22 22:32:18 2025
*************** debug_objcopy (const char *infile, bool
*** 1206,1223 ****
  
    const char *p;
    const char *orig_infile = infile;
!   off_t inoff = 0;
!   long loffset;
    int consumed;
    if ((p = strrchr (infile, '@'))
        && p != infile
!       && sscanf (p, "@%li%n", &loffset, &consumed) >= 1
        && strlen (p) == (unsigned int) consumed)
      {
        char *fname = xstrdup (infile);
        fname[p - infile] = '\0';
        infile = fname;
-       inoff = (off_t) loffset;
      }
    int infd = open (infile, O_RDONLY | O_BINARY);
    if (infd == -1)
--- 1206,1221 ----
  
    const char *p;
    const char *orig_infile = infile;
!   int64_t inoff = 0;
    int consumed;
    if ((p = strrchr (infile, '@'))
        && p != infile
!       && sscanf (p, "@%" PRIi64 "%n", &inoff, &consumed) >= 1
        && strlen (p) == (unsigned int) consumed)
      {
        char *fname = xstrdup (infile);
        fname[p - infile] = '\0';
        infile = fname;
      }
    int infd = open (infile, O_RDONLY | O_BINARY);
    if (infd == -1)
*************** run_gcc (unsigned argc, char *argv[])
*** 1483,1490 ****
      {
        char *p;
        int fd;
!       off_t file_offset = 0;
!       long loffset;
        int consumed;
        char *filename = argv[i];
  
--- 1481,1487 ----
      {
        char *p;
        int fd;
!       int64_t file_offset = 0;
        int consumed;
        char *filename = argv[i];
  
*************** run_gcc (unsigned argc, char *argv[])
*** 1498,1510 ****
  
        if ((p = strrchr (argv[i], '@'))
  	  && p != argv[i]
! 	  && sscanf (p, "@%li%n", &loffset, &consumed) >= 1
  	  && strlen (p) == (unsigned int) consumed)
  	{
  	  filename = XNEWVEC (char, p - argv[i] + 1);
  	  memcpy (filename, argv[i], p - argv[i]);
  	  filename[p - argv[i]] = '\0';
- 	  file_offset = (off_t) loffset;
  	}
        fd = open (filename, O_RDONLY | O_BINARY);
        /* Linker plugin passes -fresolution and -flinker-output options.
--- 1495,1506 ----
  
        if ((p = strrchr (argv[i], '@'))
  	  && p != argv[i]
! 	  && sscanf (p, "@%" PRIi64 "%n", &file_offset, &consumed) >= 1
  	  && strlen (p) == (unsigned int) consumed)
  	{
  	  filename = XNEWVEC (char, p - argv[i] + 1);
  	  memcpy (filename, argv[i], p - argv[i]);
  	  filename[p - argv[i]] = '\0';
  	}
        fd = open (filename, O_RDONLY | O_BINARY);
        /* Linker plugin passes -fresolution and -flinker-output options.
*************** cont1:
*** 1801,1820 ****
        for (i = 0; i < num_offload_files; i++)
  	{
  	  char *p;
- 	  long loffset;
  	  int fd, consumed;
! 	  off_t file_offset = 0;
  	  char *filename = offload_argv[i];
  
  	  if ((p = strrchr (offload_argv[i], '@'))
  	      && p != offload_argv[i]
! 	      && sscanf (p, "@%li%n", &loffset, &consumed) >= 1
  	      && strlen (p) == (unsigned int) consumed)
  	    {
  	      filename = XNEWVEC (char, p - offload_argv[i] + 1);
  	      memcpy (filename, offload_argv[i], p - offload_argv[i]);
  	      filename[p - offload_argv[i]] = '\0';
- 	      file_offset = (off_t) loffset;
  	    }
  	  fd = open (filename, O_RDONLY | O_BINARY);
  	  if (fd == -1)
--- 1797,1814 ----
        for (i = 0; i < num_offload_files; i++)
  	{
  	  char *p;
  	  int fd, consumed;
! 	  int64_t file_offset = 0;
  	  char *filename = offload_argv[i];
  
  	  if ((p = strrchr (offload_argv[i], '@'))
  	      && p != offload_argv[i]
! 	      && sscanf (p, "@%" PRIi64 "%n", &file_offset, &consumed) >= 1
  	      && strlen (p) == (unsigned int) consumed)
  	    {
  	      filename = XNEWVEC (char, p - offload_argv[i] + 1);
  	      memcpy (filename, offload_argv[i], p - offload_argv[i]);
  	      filename[p - offload_argv[i]] = '\0';
  	    }
  	  fd = open (filename, O_RDONLY | O_BINARY);
  	  if (fd == -1)
diff -Nrcpad gcc-15-20251115/gcc/testsuite/ChangeLog gcc-15-20251122/gcc/testsuite/ChangeLog
*** gcc-15-20251115/gcc/testsuite/ChangeLog	Sat Nov 15 22:32:51 2025
--- gcc-15-20251122/gcc/testsuite/ChangeLog	Sat Nov 22 22:32:19 2025
***************
*** 1,3 ****
--- 1,109 ----
+ 2025-11-21  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-11-21  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/120529
+ 	* g++.dg/ext/reference_xes_from_temporary1.C: New test.
+ 
+ 2025-11-20  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	Backported from master:
+ 	2025-11-20  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/122695
+ 	* gcc.target/loongarch/pr122695-1.c: New test.
+ 	* gcc.target/loongarch/pr122695-2.c: New test.
+ 
+ 2025-11-19  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-11-19  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/119580
+ 	* g++.dg/template/crash106.C: Adjust expected diagnostics.
+ 	* g++.dg/template/crash112.C: Likewise.
+ 	* g++.dg/template/dependent-args1.C: Likewise.
+ 	* g++.dg/cpp0x/pr119580.C: New test.
+ 
+ 2025-11-18  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2025-11-17  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/122709
+ 	* gfortran.dg/select_contiguous.f90: New test.
+ 
+ 2025-11-18  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	Backported from master:
+ 	2025-11-12  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* gcc.target/arm/cmse/mainline/8m/hard/union-fp.c: New.
+ 	* gcc.target/arm/cmse/baseline/union-4.c: New.
+ 	* gcc.target/arm/cmse/mainline/8m/hard/union-4.c: New.
+ 	* gcc.target/arm/cmse/mainline/8m/soft/union-4.c: New.
+ 	* gcc.target/arm/cmse/mainline/8m/softfp/union-4.c: New.
+ 	* gcc.target/arm/cmse/union-4.x: New.
+ 
+ 2025-11-18  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	Backported from master:
+ 	2025-11-12  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* gcc.target/arm/cmse/union-3.x: New test.
+ 	* gcc.target/arm/cmse/baseline/union-3.c: New test.
+ 	* gcc.target/arm/cmse/mainline/8m/union-3.c: New test.
+ 	* gcc.target/arm/cmse/mainline/8_1m/union-3.c: New test.
+ 
+ 2025-11-18  Siddhesh Poyarekar  <siddhesh@gotplt.org>
+ 
+ 	Backported from master:
+ 	2025-11-04  Siddhesh Poyarekar  <siddhesh@gotplt.org>
+ 
+ 	PR lto/122515
+ 	* lib/lto.exp (lto-build-archive): New procedure.
+ 	(lto-execute-1): Use it.
+ 	(lto-link-and-maybe-run, lto-get-options-main): Handle ar-link.
+ 	* gcc.dg/lto/pr122515_0.c: New test case.
+ 	* gcc.dg/lto/pr122515_1.c: New file.
+ 	* gcc.dg/lto/pr122515_2.c: Likewise.
+ 	* gcc.dg/lto/pr122515_3.c: Likewise.
+ 	* gcc.dg/lto/pr122515_4.c: Likewise.
+ 	* gcc.dg/lto/pr122515_5.c: Likewise.
+ 	* gcc.dg/lto/pr122515_6.c: Likewise.
+ 	* gcc.dg/lto/pr122515_7.c: Likewise.
+ 	* gcc.dg/lto/pr122515_8.c: Likewise.
+ 	* gcc.dg/lto/pr122515_9.c: Likewise.
+ 
+ 2025-11-18  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	Backported from master:
+ 	2025-10-31  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/121853
+ 	* gcc.target/aarch64/pr121853_1.c: New test.
+ 	* gcc.target/aarch64/pr121853_2.c: New test.
+ 
+ 2025-11-17  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	PR rtl-optimization/122627
+ 	* gcc.target/riscv/rvv/autovec/pr122627.c: New test.
+ 
+ 2025-11-16  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	Backported from master:
+ 	2025-11-16  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/122625
+ 	* g++.dg/modules/inst-7_a.C: New test.
+ 	* g++.dg/modules/inst-7_b.C: New test.
+ 
+ 2025-11-16  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	* gcc.dg/plugin/location-overflow-test-3.c: New test.
+ 	* gcc.dg/plugin/plugin.exp: Add the new test.
+ 
  2025-11-14  Jeff Law  <jlaw@ventanamicro.com>
  
  	Backported from master:
diff -Nrcpad gcc-15-20251115/gcc/testsuite/g++.dg/cpp0x/pr119580.C gcc-15-20251122/gcc/testsuite/g++.dg/cpp0x/pr119580.C
*** gcc-15-20251115/gcc/testsuite/g++.dg/cpp0x/pr119580.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/g++.dg/cpp0x/pr119580.C	Sat Nov 22 22:32:21 2025
***************
*** 0 ****
--- 1,16 ----
+ // PR c++/119580
+ // { dg-do compile { target c++11 } }
+ 
+ template<typename> struct V;
+ template<typename> class C;
+ class F;
+ 
+ struct S {
+   template<typename>
+   static void foo ();
+   template<typename T, typename>
+   C<decltype(S::foo<T::value_type>)> foo ();
+   decltype(foo<V<F>>()) *a;
+ };
+ 
+ S s;
diff -Nrcpad gcc-15-20251115/gcc/testsuite/g++.dg/ext/reference_xes_from_temporary1.C gcc-15-20251122/gcc/testsuite/g++.dg/ext/reference_xes_from_temporary1.C
*** gcc-15-20251115/gcc/testsuite/g++.dg/ext/reference_xes_from_temporary1.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/g++.dg/ext/reference_xes_from_temporary1.C	Sat Nov 22 22:32:22 2025
***************
*** 0 ****
--- 1,28 ----
+ // PR c++/120529
+ // { dg-do compile { target c++11 } }
+ 
+ #define SA(X) static_assert((X),#X)
+ 
+ class Dst {};
+ 
+ class Src {
+ private:
+     operator Dst() const;
+ };
+ 
+ class Src2 {
+ protected:
+     operator Dst() const;
+ };
+ 
+ class Src3 {
+ public:
+     operator Dst() const;
+ };
+ 
+ SA (!__reference_converts_from_temporary (Dst&&, Src));
+ SA (!__reference_constructs_from_temporary (Dst&&, Src));
+ SA (!__reference_converts_from_temporary (Dst&&, Src2));
+ SA (!__reference_constructs_from_temporary (Dst&&, Src2));
+ SA (__reference_converts_from_temporary (Dst&&, Src3));
+ SA (__reference_constructs_from_temporary (Dst&&, Src3));
diff -Nrcpad gcc-15-20251115/gcc/testsuite/g++.dg/modules/inst-7_a.C gcc-15-20251122/gcc/testsuite/g++.dg/modules/inst-7_a.C
*** gcc-15-20251115/gcc/testsuite/g++.dg/modules/inst-7_a.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/g++.dg/modules/inst-7_a.C	Sat Nov 22 22:32:22 2025
***************
*** 0 ****
--- 1,33 ----
+ // PR c++/122625
+ // { dg-additional-options "-fmodules" }
+ // { dg-module-cmi M }
+ 
+ export module M;
+ struct integral_constant {
+   void f() const {}
+ };
+ struct span {
+   template <int> static constexpr integral_constant __v{};
+   template <int, int> static constexpr integral_constant partial{};
+ };
+ template <int x> constexpr integral_constant span::partial<x, 0>{};
+ 
+ template <typename T>
+ struct nested {
+   template <typename U> static const U arr[3];
+ };
+ template <typename T>
+ struct nested<T*> {
+   template <typename U> static const U arr[3];
+ };
+ template <typename T> template <typename U> const U nested<T>::arr[3] = {};
+ template <typename T> template <typename U> const U nested<T*>::arr[3] = {};
+ template <typename T> template <typename U> const U nested<T*>::arr<U*>[3] = {};
+ 
+ export inline void format() {
+   span::__v<1>.f();
+   span::partial<5, 0>.f();
+   nested<int>::arr<integral_constant>[0].f();
+   nested<int*>::arr<integral_constant>[0].f();
+   nested<int*>::arr<integral_constant*>[0].f();
+ }
diff -Nrcpad gcc-15-20251115/gcc/testsuite/g++.dg/modules/inst-7_b.C gcc-15-20251122/gcc/testsuite/g++.dg/modules/inst-7_b.C
*** gcc-15-20251115/gcc/testsuite/g++.dg/modules/inst-7_b.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/g++.dg/modules/inst-7_b.C	Sat Nov 22 22:32:22 2025
***************
*** 0 ****
--- 1,13 ----
+ // PR c++/122625
+ // { dg-additional-options "-fmodules" }
+ 
+ import M;
+ int main() {
+   format();
+ }
+ 
+ // { dg-final { scan-assembler {_ZNW1M4span3__vILi1EEE:} } }
+ // { dg-final { scan-assembler {_ZNW1M4span7partialILi5ELi0EEE:} } }
+ // { dg-final { scan-assembler {_ZNW1M6nestedIiE3arrIS_17integral_constantEE:} } }
+ // { dg-final { scan-assembler {_ZNW1M6nestedIPiE3arrIS_17integral_constantEE:} } }
+ // { dg-final { scan-assembler {_ZNW1M6nestedIPiE3arrIPS_17integral_constantEE:} } }
diff -Nrcpad gcc-15-20251115/gcc/testsuite/g++.dg/template/crash106.C gcc-15-20251122/gcc/testsuite/g++.dg/template/crash106.C
*** gcc-15-20251115/gcc/testsuite/g++.dg/template/crash106.C	Sat Nov 15 22:32:59 2025
--- gcc-15-20251122/gcc/testsuite/g++.dg/template/crash106.C	Sat Nov 22 22:32:23 2025
*************** struct A
*** 7,12 ****
    template<T> void foo(); // { dg-error "type" "" { target c++17_down } }
  };
  
! template<T N = 0.0, void (A::*)() = &A::foo<N> > struct B {}; // { dg-error "type|declared|could not convert" "" { target c++17_down } }
  
! B<> b; // { dg-message "" "" { target c++17_down } }
--- 7,12 ----
    template<T> void foo(); // { dg-error "type" "" { target c++17_down } }
  };
  
! template<T N = 0.0, void (A::*)() = &A::foo<N> > struct B {}; // { dg-error "type|not a member" "" { target c++17_down } }
  
! B<> b; // { dg-error "invalid" "" { target c++17_down } }
diff -Nrcpad gcc-15-20251115/gcc/testsuite/g++.dg/template/crash112.C gcc-15-20251122/gcc/testsuite/g++.dg/template/crash112.C
*** gcc-15-20251115/gcc/testsuite/g++.dg/template/crash112.C	Sat Nov 15 22:32:59 2025
--- gcc-15-20251122/gcc/testsuite/g++.dg/template/crash112.C	Sat Nov 22 22:32:23 2025
*************** template<void (A::*)()> struct B {};
*** 9,17 ****
  
  template<int> struct C
  {
!   B<&A::foo<int int> > b; // { dg-error "declaration|type" }
  };
  
  C<0> c;
- 
- // { dg-prune-output "could not convert" }
--- 9,15 ----
  
  template<int> struct C
  {
!   B<&A::foo<int int> > b; // { dg-error "declaration|not a member" }
  };
  
  C<0> c;
diff -Nrcpad gcc-15-20251115/gcc/testsuite/g++.dg/template/dependent-args1.C gcc-15-20251122/gcc/testsuite/g++.dg/template/dependent-args1.C
*** gcc-15-20251115/gcc/testsuite/g++.dg/template/dependent-args1.C	Sat Nov 15 22:32:59 2025
--- gcc-15-20251122/gcc/testsuite/g++.dg/template/dependent-args1.C	Sat Nov 22 22:32:23 2025
*************** struct A
*** 6,13 ****
    template<int> void foo();
  };
  
! template<int N, void (A::*)() = &A::foo<N> > struct B {};
! 
! B<int> b; // { dg-error "type/value mismatch|expected a constant|invalid type" }
  
! // { dg-prune-output "(could not convert|no match)" }
--- 6,11 ----
    template<int> void foo();
  };
  
! template<int N, void (A::*)() = &A::foo<N> > struct B {};  // { dg-error "not a member" }
  
! B<int> b; // { dg-error "type/value mismatch|invalid" }
diff -Nrcpad gcc-15-20251115/gcc/testsuite/gcc.dg/lto/pr122515_0.c gcc-15-20251122/gcc/testsuite/gcc.dg/lto/pr122515_0.c
*** gcc-15-20251115/gcc/testsuite/gcc.dg/lto/pr122515_0.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/gcc.dg/lto/pr122515_0.c	Sat Nov 22 22:32:27 2025
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-lto-do ar-link } */
+ /* { dg-lto-options { { -flto=auto -ffat-lto-objects } } } */
+ 
+ extern int bar_7 (int);
+ 
+ int main (void)
+ {
+   return bar_7 (42);
+ }
diff -Nrcpad gcc-15-20251115/gcc/testsuite/gcc.dg/lto/pr122515_1.c gcc-15-20251122/gcc/testsuite/gcc.dg/lto/pr122515_1.c
*** gcc-15-20251115/gcc/testsuite/gcc.dg/lto/pr122515_1.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/gcc.dg/lto/pr122515_1.c	Sat Nov 22 22:32:27 2025
***************
*** 0 ****
--- 1,12 ----
+ typedef struct {
+   int num;
+   int foo[40000000];
+ } A_1;
+ 
+ A_1 a1_1 = {1};
+ A_1 a2_1 = {2};
+ 
+ int bar_1 (int i)
+ {
+   return i++;
+ }
diff -Nrcpad gcc-15-20251115/gcc/testsuite/gcc.dg/lto/pr122515_2.c gcc-15-20251122/gcc/testsuite/gcc.dg/lto/pr122515_2.c
*** gcc-15-20251115/gcc/testsuite/gcc.dg/lto/pr122515_2.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/gcc.dg/lto/pr122515_2.c	Sat Nov 22 22:32:27 2025
***************
*** 0 ****
--- 1,12 ----
+ typedef struct {
+   int num;
+   int foo[40000000];
+ } A_2;
+ 
+ A_2 a1_2 = {1};
+ A_2 a2_2 = {2};
+ 
+ int bar_2 (int i)
+ {
+   return i++;
+ }
diff -Nrcpad gcc-15-20251115/gcc/testsuite/gcc.dg/lto/pr122515_3.c gcc-15-20251122/gcc/testsuite/gcc.dg/lto/pr122515_3.c
*** gcc-15-20251115/gcc/testsuite/gcc.dg/lto/pr122515_3.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/gcc.dg/lto/pr122515_3.c	Sat Nov 22 22:32:27 2025
***************
*** 0 ****
--- 1,12 ----
+ typedef struct {
+   int num;
+   int foo[40000000];
+ } A_3;
+ 
+ A_3 a1_3 = {1};
+ A_3 a2_3 = {2};
+ 
+ int bar_3 (int i)
+ {
+   return i++;
+ }
diff -Nrcpad gcc-15-20251115/gcc/testsuite/gcc.dg/lto/pr122515_4.c gcc-15-20251122/gcc/testsuite/gcc.dg/lto/pr122515_4.c
*** gcc-15-20251115/gcc/testsuite/gcc.dg/lto/pr122515_4.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/gcc.dg/lto/pr122515_4.c	Sat Nov 22 22:32:27 2025
***************
*** 0 ****
--- 1,12 ----
+ typedef struct {
+   int num;
+   int foo[40000000];
+ } A_4;
+ 
+ A_4 a1_4 = {1};
+ A_4 a2_4 = {2};
+ 
+ int bar_4 (int i)
+ {
+   return i++;
+ }
diff -Nrcpad gcc-15-20251115/gcc/testsuite/gcc.dg/lto/pr122515_5.c gcc-15-20251122/gcc/testsuite/gcc.dg/lto/pr122515_5.c
*** gcc-15-20251115/gcc/testsuite/gcc.dg/lto/pr122515_5.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/gcc.dg/lto/pr122515_5.c	Sat Nov 22 22:32:27 2025
***************
*** 0 ****
--- 1,12 ----
+ typedef struct {
+   int num;
+   int foo[40000000];
+ } A_5;
+ 
+ A_5 a1_5 = {1};
+ A_5 a2_5 = {2};
+ 
+ int bar_5 (int i)
+ {
+   return i++;
+ }
diff -Nrcpad gcc-15-20251115/gcc/testsuite/gcc.dg/lto/pr122515_6.c gcc-15-20251122/gcc/testsuite/gcc.dg/lto/pr122515_6.c
*** gcc-15-20251115/gcc/testsuite/gcc.dg/lto/pr122515_6.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/gcc.dg/lto/pr122515_6.c	Sat Nov 22 22:32:27 2025
***************
*** 0 ****
--- 1,12 ----
+ typedef struct {
+   int num;
+   int foo[40000000];
+ } A_6;
+ 
+ A_6 a1_6 = {1};
+ A_6 a2_6 = {2};
+ 
+ int bar_6 (int i)
+ {
+   return i++;
+ }
diff -Nrcpad gcc-15-20251115/gcc/testsuite/gcc.dg/lto/pr122515_7.c gcc-15-20251122/gcc/testsuite/gcc.dg/lto/pr122515_7.c
*** gcc-15-20251115/gcc/testsuite/gcc.dg/lto/pr122515_7.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/gcc.dg/lto/pr122515_7.c	Sat Nov 22 22:32:27 2025
***************
*** 0 ****
--- 1,12 ----
+ typedef struct {
+   int num;
+   int foo[40000000];
+ } A_7;
+ 
+ A_7 a1_7 = {1};
+ A_7 a2_7 = {2};
+ 
+ int bar_7 (int i)
+ {
+   return i++;
+ }
diff -Nrcpad gcc-15-20251115/gcc/testsuite/gcc.dg/lto/pr122515_8.c gcc-15-20251122/gcc/testsuite/gcc.dg/lto/pr122515_8.c
*** gcc-15-20251115/gcc/testsuite/gcc.dg/lto/pr122515_8.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/gcc.dg/lto/pr122515_8.c	Sat Nov 22 22:32:27 2025
***************
*** 0 ****
--- 1,12 ----
+ typedef struct {
+   int num;
+   int foo[40000000];
+ } A_8;
+ 
+ A_8 a1_8 = {1};
+ A_8 a2_8 = {2};
+ 
+ int bar_8 (int i)
+ {
+   return i++;
+ }
diff -Nrcpad gcc-15-20251115/gcc/testsuite/gcc.dg/lto/pr122515_9.c gcc-15-20251122/gcc/testsuite/gcc.dg/lto/pr122515_9.c
*** gcc-15-20251115/gcc/testsuite/gcc.dg/lto/pr122515_9.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/gcc.dg/lto/pr122515_9.c	Sat Nov 22 22:32:27 2025
***************
*** 0 ****
--- 1,12 ----
+ typedef struct {
+   int num;
+   int foo[40000000];
+ } A_9;
+ 
+ A_9 a1_9 = {1};
+ A_9 a2_9 = {2};
+ 
+ int bar_9 (int i)
+ {
+   return i++;
+ }
diff -Nrcpad gcc-15-20251115/gcc/testsuite/gcc.dg/plugin/location-overflow-test-3.c gcc-15-20251122/gcc/testsuite/gcc.dg/plugin/location-overflow-test-3.c
*** gcc-15-20251115/gcc/testsuite/gcc.dg/plugin/location-overflow-test-3.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/gcc.dg/plugin/location-overflow-test-3.c	Sat Nov 22 22:32:27 2025
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fplugin-arg-location_overflow_plugin-value=1024 -fdump-internal-locations" } */
+ 
+ /* The plugin arranges for location_t values to exceed 32 bits; verify the
+    internal dump routines don't crash. The exact output depends on the system
+    and on absolute path names, and this output is only meant for internal
+    purposes, so don't demand an exact form of the output.  */
+ 
+ /* { dg-allow-blank-lines-in-output 1 } */
+ /* { dg-prune-output ".*" } */
diff -Nrcpad gcc-15-20251115/gcc/testsuite/gcc.dg/plugin/plugin.exp gcc-15-20251122/gcc/testsuite/gcc.dg/plugin/plugin.exp
*** gcc-15-20251115/gcc/testsuite/gcc.dg/plugin/plugin.exp	Sat Nov 15 22:33:05 2025
--- gcc-15-20251122/gcc/testsuite/gcc.dg/plugin/plugin.exp	Sat Nov 22 22:32:27 2025
*************** set plugin_test_list [list \
*** 138,143 ****
--- 138,144 ----
      { location_overflow_plugin.cc \
  	  location-overflow-test-1.c \
  	  location-overflow-test-2.c \
+ 	  location-overflow-test-3.c \
  	  location-overflow-test-pr83173.c \
  	  location-overflow-test-pr116047.c \
  	  location-overflow-test-pr120061.c } \
diff -Nrcpad gcc-15-20251115/gcc/testsuite/gcc.target/aarch64/pr121853_1.c gcc-15-20251122/gcc/testsuite/gcc.target/aarch64/pr121853_1.c
*** gcc-15-20251115/gcc/testsuite/gcc.target/aarch64/pr121853_1.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/gcc.target/aarch64/pr121853_1.c	Sat Nov 22 22:32:28 2025
***************
*** 0 ****
--- 1,64 ----
+ /* { dg-do run } */
+ /* { dg-additional-options "-O2 -std=c99" } */
+ 
+ #include <stdint.h>
+ #include <stdio.h>
+ #include <string.h>
+ 
+ __attribute__ ((noipa))
+ float convert(__bf16 value) {
+     return (float)value;
+ }
+ 
+ static inline uint32_t f32_bits(float f) {
+     uint32_t u; memcpy(&u, &f, sizeof u); return u;
+ }
+ static inline __bf16 bf16_from_bits(uint16_t u) {
+     __bf16 b;  memcpy(&b, &u, sizeof b); return b;
+ }
+ 
+ /* Fixed bf16 inputs (as raw 16-bit payloads) covering edge cases.  */
+ static const uint16_t inputs[] = {
+     0x0000, // +0
+     0x8000, // -0
+     0x7F80, // +inf
+     0xFF80, // -inf
+     0x7FC0, // qNaN (+)  (quiet bit set in bf16)
+     0xFFC0, // qNaN (-)
+     0x7F01, // sNaN (+)  (will be quieted by conversion)
+     0xFF01, // sNaN (-)
+     0x0001, // smallest +subnormal
+     0x007F, // largest  +subnormal
+     0x8001, // smallest -subnormal
+     0x807F, // largest  -subnormal
+     0x0080, // smallest +normal
+     0x3F80, // +1.0
+     0xBF80, // -1.0
+     0x3F00, // +0.5
+     0xBF00, // -0.5
+     0x3FC0, // +1.5
+     0x7F7F, // max finite +
+     0xFF7F, // max finite -
+ };
+ 
+ int main(void) {
+     const size_t N = sizeof(inputs)/sizeof(inputs[0]);
+     size_t fails = 0;
+ 
+     for (size_t i = 0; i < N; ++i) {
+         __bf16 in = bf16_from_bits(inputs[i]);
+         float out = convert(in);
+         uint32_t got = f32_bits(out);
+         uint32_t exp = inputs[i] << 16;
+ 
+         if (got != exp) {
+             printf("FAIL[%zu]: in_bf16=0x%04X  exp_f32=0x%08X  got_f32=0x%08X\n",
+                    i, inputs[i], exp, got);
+             ++fails;
+         }
+     }
+ 
+     if (fails != 0)
+       __builtin_abort ();
+ }
+ 
diff -Nrcpad gcc-15-20251115/gcc/testsuite/gcc.target/aarch64/pr121853_2.c gcc-15-20251122/gcc/testsuite/gcc.target/aarch64/pr121853_2.c
*** gcc-15-20251115/gcc/testsuite/gcc.target/aarch64/pr121853_2.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/gcc.target/aarch64/pr121853_2.c	Sat Nov 22 22:32:28 2025
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-O1" } */
+ /* { dg-final { check-function-bodies "**" "" } } */
+ 
+ float convert(__bf16 value) {
+     return (float)value;
+ }
+ 
+ /*
+ ** convert:
+ **	movi	v[0-9]+.4s, 0
+ **	ext	v[0-9]+.16b, v[0-9]+.16b, v[0-9]+.16b, #14
+ **	ret
+ */
diff -Nrcpad gcc-15-20251115/gcc/testsuite/gcc.target/arm/cmse/baseline/union-3.c gcc-15-20251122/gcc/testsuite/gcc.target/arm/cmse/baseline/union-3.c
*** gcc-15-20251115/gcc/testsuite/gcc.target/arm/cmse/baseline/union-3.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/gcc.target/arm/cmse/baseline/union-3.c	Sat Nov 22 22:32:30 2025
***************
*** 0 ****
--- 1,29 ----
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-mcmse" } */
+ /* { dg-final { check-function-bodies "**" "" } } */
+ 
+ #include "../union-3.x"
+ 
+ /*
+ ** fn_caller_0:
+ ** ...
+ **	lsrs	r4, r4, #1
+ **	lsls	r4, r4, #1
+ **	movs	r2, r4
+ **	movs	r3, r4
+ **	bl	__gnu_cmse_nonsecure_call
+ ** ...
+ */
+ 
+ /*
+ ** fn_caller_1:
+ ** ...
+ **	lsrs	r4, r4, #1
+ **	lsls	r4, r4, #1
+ **	movs	r1, r4
+ **	movs	r2, r4
+ **	movs	r3, r4
+ **	bl	__gnu_cmse_nonsecure_call
+ ** ...
+ */
diff -Nrcpad gcc-15-20251115/gcc/testsuite/gcc.target/arm/cmse/baseline/union-4.c gcc-15-20251122/gcc/testsuite/gcc.target/arm/cmse/baseline/union-4.c
*** gcc-15-20251115/gcc/testsuite/gcc.target/arm/cmse/baseline/union-4.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/gcc.target/arm/cmse/baseline/union-4.c	Sat Nov 22 22:32:30 2025
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile } */
+ /* { dg-options "-mcmse" } */
+ /* { dg-final { check-function-bodies "**" "" } } */
+ 
+ #include "../union-4.x"
+ 
+ /*
+ ** fn:
+ ** ...
+ **	lsrs	r4, r4, #1
+ **	lsls	r4, r4, #1
+ **	mov	ip, r4
+ **	movw	r4, #7939
+ **	ands	r0, r4
+ **	mov	r4, ip
+ **	movs	r2, r4
+ **	movs	r3, r4
+ **	bl	__gnu_cmse_nonsecure_call
+ ** ...
+ */
diff -Nrcpad gcc-15-20251115/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/union-3.c gcc-15-20251122/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/union-3.c
*** gcc-15-20251115/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/union-3.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/union-3.c	Sat Nov 22 22:32:30 2025
***************
*** 0 ****
--- 1,32 ----
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-mcmse" } */
+ /* { dg-final { check-function-bodies "**" "" } } */
+ 
+ #include "../../union-3.x"
+ 
+ /*
+ ** fn_caller_0:
+ ** ...
+ **	lsrs	r3, r3, #1
+ **	lsls	r3, r3, #1
+ **	push	{r4, r5, r6, r7, r8, r9, r10, fp}
+ This test is not meant to be to test the FP clearing, so accept any, preventing
+ the need to specialize the test further for different float-abi's
+ ** ...
+ **	clrm	{r2, r4, r5, r6, r7, r8, r9, r10, fp, ip, APSR}
+ **	blxns	r3
+ ** ...
+ */
+ 
+ /*
+ ** fn_caller_1:
+ ** ...
+ **	lsrs	r3, r3, #1
+ **	lsls	r3, r3, #1
+ **	push	{r4, r5, r6, r7, r8, r9, r10, fp}
+ ** ...
+ **	clrm	{r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, ip, APSR}
+ **	blxns	r3
+ ** ...
+ */
diff -Nrcpad gcc-15-20251115/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard/union-4.c gcc-15-20251122/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard/union-4.c
*** gcc-15-20251115/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard/union-4.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard/union-4.c	Sat Nov 22 22:32:30 2025
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-do compile } */
+ /* { dg-options "-mcmse -mfloat-abi=hard -mfpu=fpv5-d16" }  */
+ /* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=hard" } } */
+ /* { dg-final { check-function-bodies "**" "" } } */
+ 
+ #include "../../../union-4.x"
+ 
+ /*
+ ** fn:
+ ** ...
+ **	lsrs	r4, r4, #1
+ **	lsls	r4, r4, #1
+ **	movw	ip, #7939
+ **	and	r0, r0, ip
+ **	mov	r2, r4
+ **	mov	r3, r4
+ **	vmov.f64	d0, #1.0e\+0
+ **	vmov.f64	d1, #1.0e\+0
+ **	vmov.f64	d2, #1.0e\+0
+ **	vmov.f64	d3, #1.0e\+0
+ **	vmov.f64	d4, #1.0e\+0
+ **	vmov.f64	d5, #1.0e\+0
+ **	vmov.f64	d6, #1.0e\+0
+ **	vmov.f64	d7, #1.0e\+0
+ **	bl	__gnu_cmse_nonsecure_call
+ ** ...
+ */
diff -Nrcpad gcc-15-20251115/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard/union-fp.c gcc-15-20251122/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard/union-fp.c
*** gcc-15-20251115/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard/union-fp.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard/union-fp.c	Sat Nov 22 22:32:30 2025
***************
*** 0 ****
--- 1,66 ----
+ /* { dg-do compile } */
+ /* { dg-options "-mcmse -mfloat-abi=hard -mfpu=fpv5-d16" }  */
+ /* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=hard" } } */
+ /* { dg-skip-if "Skip these if testing single precision" {*-*-*} {"-mfpu=*-sp-*"} {""} } */
+ /* { dg-final { check-function-bodies "**" "" } } */
+ 
+ union u_t_0 {
+     float f;
+ };
+ union u_t_1 {
+     double d;
+ };
+ 
+ typedef void (__attribute__ ((cmse_nonsecure_call)) fn_t_0)(union u_t_0);
+ typedef void (__attribute__ ((cmse_nonsecure_call)) fn_t_1)(union u_t_1);
+ 
+ void fn_caller_0 (fn_t_0 *f_ptr) {
+     union u_t_0 x = {0.0f};
+     f_ptr (x);
+ }
+ 
+ /*
+ ** fn_caller_0:
+ ** ...
+ **	lsrs	r4, r4, #1
+ **	lsls	r4, r4, #1
+ **	mov	r0, r4
+ **	mov	r1, r4
+ **	mov	r2, r4
+ **	mov	r3, r4
+ **	vmov.f32	s1, #1.0e\+0
+ **	vmov.f64	d1, #1.0e\+0
+ **	vmov.f64	d2, #1.0e\+0
+ **	vmov.f64	d3, #1.0e\+0
+ **	vmov.f64	d4, #1.0e\+0
+ **	vmov.f64	d5, #1.0e\+0
+ **	vmov.f64	d6, #1.0e\+0
+ **	vmov.f64	d7, #1.0e\+0
+ **	bl	__gnu_cmse_nonsecure_call
+ ** ...
+ */
+ 
+ void fn_caller_1 (fn_t_1 *f_ptr) {
+     union u_t_1 x = {0.0};
+     f_ptr (x);
+ }
+ 
+ /*
+ ** fn_caller_1:
+ ** ...
+ **	lsrs	r4, r4, #1
+ **	lsls	r4, r4, #1
+ **	mov	r0, r4
+ **	mov	r1, r4
+ **	mov	r2, r4
+ **	mov	r3, r4
+ **	vmov.f64	d1, #1.0e\+0
+ **	vmov.f64	d2, #1.0e\+0
+ **	vmov.f64	d3, #1.0e\+0
+ **	vmov.f64	d4, #1.0e\+0
+ **	vmov.f64	d5, #1.0e\+0
+ **	vmov.f64	d6, #1.0e\+0
+ **	vmov.f64	d7, #1.0e\+0
+ **	bl	__gnu_cmse_nonsecure_call
+ ** ...
+ */
diff -Nrcpad gcc-15-20251115/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/soft/union-4.c gcc-15-20251122/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/soft/union-4.c
*** gcc-15-20251115/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/soft/union-4.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/soft/union-4.c	Sat Nov 22 22:32:30 2025
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-do compile } */
+ /* { dg-options "-mcmse" } */
+ /* { dg-final { check-function-bodies "**" "" } } */
+ 
+ #include "../../../union-4.x"
+ 
+ /*
+ ** fn:
+ ** ...
+ **	lsrs	r4, r4, #1
+ **	lsls	r4, r4, #1
+ **	movw	ip, #7939
+ **	and	r0, r0, ip
+ **	mov	r2, r4
+ **	mov	r3, r4
+ **	bl	__gnu_cmse_nonsecure_call
+ ** ...
+ */
diff -Nrcpad gcc-15-20251115/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp/union-4.c gcc-15-20251122/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp/union-4.c
*** gcc-15-20251115/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp/union-4.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp/union-4.c	Sat Nov 22 22:32:30 2025
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-do compile } */
+ /* { dg-options "-mcmse -mfloat-abi=softfp -mfpu=fpv5-d16" }  */
+ /* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=softfp" } } */
+ /* { dg-final { check-function-bodies "**" "" } } */
+ 
+ #include "../../../union-4.x"
+ 
+ /*
+ ** fn:
+ ** ...
+ **	lsrs	r4, r4, #1
+ **	lsls	r4, r4, #1
+ **	movw	ip, #7939
+ **	and	r0, r0, ip
+ **	mov	r2, r4
+ **	mov	r3, r4
+ **	bl	__gnu_cmse_nonsecure_call
+ ** ...
+ */
diff -Nrcpad gcc-15-20251115/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/union-3.c gcc-15-20251122/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/union-3.c
*** gcc-15-20251115/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/union-3.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/gcc.target/arm/cmse/mainline/8m/union-3.c	Sat Nov 22 22:32:30 2025
***************
*** 0 ****
--- 1,33 ----
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-mcmse" } */
+ /* { dg-final { check-function-bodies "**" "" } } */
+ 
+ #include "../../union-3.x"
+ 
+ /*
+ ** fn_caller_0:
+ ** ...
+ **	lsrs	r4, r4, #1
+ **	lsls	r4, r4, #1
+ **	mov	r2, r4
+ **	mov	r3, r4
+ This test is not meant to be to test the FP clearing, so accept any, preventing
+ the need to specialize the test further for different float-abi's
+ ** ...
+ **	bl	__gnu_cmse_nonsecure_call
+ ** ...
+ */
+ 
+ /*
+ ** fn_caller_1:
+ ** ...
+ **	lsrs	r4, r4, #1
+ **	lsls	r4, r4, #1
+ **	mov	r1, r4
+ **	mov	r2, r4
+ **	mov	r3, r4
+ ** ...
+ **	bl	__gnu_cmse_nonsecure_call
+ ** ...
+ */
diff -Nrcpad gcc-15-20251115/gcc/testsuite/gcc.target/arm/cmse/union-3.x gcc-15-20251122/gcc/testsuite/gcc.target/arm/cmse/union-3.x
*** gcc-15-20251115/gcc/testsuite/gcc.target/arm/cmse/union-3.x	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/gcc.target/arm/cmse/union-3.x	Sat Nov 22 22:32:30 2025
***************
*** 0 ****
--- 1,23 ----
+ #include <arm_cmse.h>
+ 
+ union u_t_0 {
+   long long ll;
+ };
+ 
+ typedef void(__attribute__((cmse_nonsecure_call)) fn_t_0)(union u_t_0);
+ 
+ void fn_caller_0(fn_t_0 *f_ptr) {
+   union u_t_0 x = {1234};
+   f_ptr(x);
+ }
+ 
+ union u_t_1 {
+   long int l;
+ };
+ 
+ typedef void(__attribute__((cmse_nonsecure_call)) fn_t_1)(union u_t_1);
+ 
+ void fn_caller_1(fn_t_1 *f_ptr) {
+   union u_t_1 x = {1234};
+   f_ptr(x);
+ }
diff -Nrcpad gcc-15-20251115/gcc/testsuite/gcc.target/arm/cmse/union-4.x gcc-15-20251122/gcc/testsuite/gcc.target/arm/cmse/union-4.x
*** gcc-15-20251115/gcc/testsuite/gcc.target/arm/cmse/union-4.x	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/gcc.target/arm/cmse/union-4.x	Sat Nov 22 22:32:30 2025
***************
*** 0 ****
--- 1,41 ----
+ typedef struct
+ {
+   unsigned char	  a :2;
+   unsigned char	    :0;
+   unsigned short  b :5;
+   float		  f;
+ } test_st_1;
+ 
+ typedef union
+ {
+   test_st_1 st_1;
+ }test_un;
+ 
+ typedef union
+ {
+   test_un un;
+   struct
+     {
+       unsigned int v1;
+       unsigned int v2;
+       unsigned int v3;
+       unsigned int v4;
+     }values;
+ } read_un;
+ 
+ 
+ typedef void __attribute__ ((cmse_nonsecure_call)) (*foo_ns) (test_un);
+ 
+ int
+ fn (foo_ns fptr)
+ {
+   read_un r;
+ 
+   r.values.v1 = 0xFFFFFFFF;
+   r.values.v2 = 0xFFFFFFFF;
+   r.values.v3 = 0xFFFFFFFF;
+   r.values.v4 = 0xFFFFFFFF;
+ 
+   fptr (r.un);
+   return 0;
+ }
diff -Nrcpad gcc-15-20251115/gcc/testsuite/gcc.target/loongarch/pr122695-1.c gcc-15-20251122/gcc/testsuite/gcc.target/loongarch/pr122695-1.c
*** gcc-15-20251115/gcc/testsuite/gcc.target/loongarch/pr122695-1.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/gcc.target/loongarch/pr122695-1.c	Sat Nov 22 22:32:32 2025
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do run } */
+ /* { dg-options "-O2 -mlasx" } */
+ /* { dg-require-effective-target loongarch_asx_hw } */
+ 
+ [[gnu::vector_size (32)]] char a, b, c;
+ 
+ [[gnu::noipa]] void
+ test (void)
+ {
+   a = __builtin_shuffle (a, b, c);
+ }
+ 
+ int
+ main (void)
+ {
+   a = (typeof (a)){} + 5;
+   b = (typeof (a)){} + 6;
+   c = (typeof (a)){} + 64;
+   test ();
+   if (a[0] != 5)
+     __builtin_trap ();
+ }
diff -Nrcpad gcc-15-20251115/gcc/testsuite/gcc.target/loongarch/pr122695-2.c gcc-15-20251122/gcc/testsuite/gcc.target/loongarch/pr122695-2.c
*** gcc-15-20251115/gcc/testsuite/gcc.target/loongarch/pr122695-2.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/gcc.target/loongarch/pr122695-2.c	Sat Nov 22 22:32:32 2025
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do run } */
+ /* { dg-options "-O2 -mlasx" } */
+ /* { dg-require-effective-target loongarch_asx_hw } */
+ 
+ [[gnu::vector_size(32)]] short a, b, c;
+ 
+ [[gnu::noipa]] void
+ test (void)
+ {
+   a = __builtin_shuffle(a, b, c) + c;
+ }
+ 
+ int
+ main (void)
+ {
+   a = (typeof (a)){} + 1;
+   b = (typeof (b)){} + 2;
+   c = (typeof (c)){} + 128;
+   test ();
+   if (a[0] != 129)
+     __builtin_trap ();
+ }
diff -Nrcpad gcc-15-20251115/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr122627.c gcc-15-20251122/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr122627.c
*** gcc-15-20251115/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr122627.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr122627.c	Sat Nov 22 22:32:33 2025
***************
*** 0 ****
--- 1,196 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d -w -O0" { target rv64 } } */
+ /* { dg-options "-march=rv32gcv -mabi=ilp32 -w -O0" { target rv32 } } */
+ 
+ 
+ typedef signed char int8_t;
+ typedef short int16_t;
+ typedef int int32_t;
+ typedef long int64_t;
+ typedef char uint8_t;
+ typedef unsigned short uint16_t;
+ typedef unsigned long uint64_t;
+ uint64_t BS_CHECKSUM_ARR_7;
+ struct S0 {
+   unsigned f0 : 9;
+   signed : 26
+ } * g_108, g_148, g_150;
+ int32_t g_8[];
+ int32_t g_44, g_130_0;
+ uint16_t g_76_0;
+ int64_t g_158[];
+ int64_t g_158_1_0_3;
+ uint8_t *func_56_l_165;
+ __attribute__((always_inline)) int32_t
+ backsmith_snippet_544(int16_t __attribute__((vector_size(32 * sizeof(int16_t))))
+                       BS_ARG_0) {
+   BS_ARG_0 = BS_ARG_0 =
+       (int16_t __attribute__((vector_size(32 * sizeof(int16_t))))) -
+       __builtin_convertvector(
+           (int16_t __attribute__((vector_size(32 *sizeof(int16_t))))){
+               ~BS_ARG_0[3], ~BS_ARG_0[3], ~BS_ARG_0[3], ~BS_ARG_0[3],
+               ~BS_ARG_0[3], ~BS_ARG_0[3], ~BS_ARG_0[3], ~BS_ARG_0[3],
+               ~BS_ARG_0[3], ~BS_ARG_0[3], ~BS_ARG_0[3], ~BS_ARG_0[3],
+               ~BS_ARG_0[3], ~BS_ARG_0[3], ~BS_ARG_0[3], ~BS_ARG_0[3],
+               ~BS_ARG_0[3], ~BS_ARG_0[3], ~BS_ARG_0[3], ~BS_ARG_0[3],
+               ~BS_ARG_0[3], ~BS_ARG_0[3], ~BS_ARG_0[3], ~BS_ARG_0[3],
+               ~BS_ARG_0[3], ~BS_ARG_0[3], ~BS_ARG_0[3], ~BS_ARG_0[3],
+               ~BS_ARG_0[3], ~BS_ARG_0[3], ~BS_ARG_0[3], ~BS_ARG_0[3]},
+           uint16_t __attribute__((vector_size(32 * sizeof(uint16_t)))));
+   return ((union {
+            int16_t __attribute__((vector_size(2 * sizeof(int16_t)))) src;
+            int32_t dst
+          })__builtin_shufflevector(BS_ARG_0, BS_ARG_0, 43, 7))
+       .dst;
+ }
+ int8_t(safe_add_func_int8_t_s_s)(int8_t);
+ uint8_t(safe_lshift_func_uint8_t_u_s)(uint8_t);
+ unsigned safe_mul_func_uint32_t_u_u(int, int);
+ uint8_t func_56(uint64_t p_57, int32_t *, int8_t p_59, uint16_t p_60,
+                 int32_t *p_61) {
+   int64_t __attribute__((vector_size(8 * sizeof(int64_t))))
+   BS_VAR_0 = {30330355581};
+   int8_t __attribute__((vector_size(2))) BS_VAR_1 = {7};
+   int64_t __attribute__((vector_size(32 * sizeof(int64_t)))) BS_VAR_2[33] = {};
+   int64_t BS_VAR_2_3_0;
+   int16_t __attribute__((vector_size(32 * sizeof(int16_t)))) BS_VAR_3 = {};
+   int volatile BS_COND_18 = BS_COND_18, BS_COND_19 = 2046083389,
+                BS_COND_20 = BS_COND_20;
+   int64_t __attribute__((vector_size(32 * sizeof(int64_t)))) BS_VAR_5 = {};
+   int16_t __attribute__((vector_size(sizeof(int16_t))))
+   BS_VAR_6 = {90173011178118114616913331460};
+   int64_t __attribute__((vector_size(16))) BS_VAR_7 = {20385270170872471};
+   switch (BS_COND_19)
+   case 4044:
+   case 6463:
+   case 7825:
+   case 40964:
+   case 71504:
+   case 50913903:
+   case 3624:
+   case 3379:
+   case 80451787:
+   case 4004383:
+   case 4133:
+   case 2098801:
+   case 2000071388:
+   case 400611:
+   case 4155:
+   case 6888:
+   case 3506:
+   case 9734:
+   case 100094276:
+   case 3121:
+   case 9659:
+   case 5892:
+   case 9507:
+   case 1067596166:
+   case 2099438381:
+   case 2406:
+   case 5442:
+   case 60746:
+   case 31236:
+   case 3574:
+   case 42025:
+   case 3315:
+   case 2096976873:
+   case 6082416:
+   case 909667:
+   case 5535:
+   case 2554:
+   case 31179:
+   case 2046083389:
+   case 7309:
+   case 4706:
+   case 6816:
+   case 7189:
+   case 3402:
+   case 706316781:
+   case 3570:
+   case 4376:
+   case 9698:
+   case 4190:
+   case 6195:
+   case 6714:
+   case 7540:
+   case 2145:
+   case 61108:
+   case 2442:
+   case 1049158:
+   case 60055:
+   case 4302:
+     break;
+   int64_t __attribute__((vector_size(2 * sizeof(int64_t))))
+   BS_VAR_8[] = {52623717371,
+                 908827026188589,
+                 3253451771131199467,
+                 3253451771131199467,
+                 8379,
+                 1,
+                 500143520836,
+                 0,
+                 5884817202404184392,
+                 5884817202404184392,
+                 (int64_t __attribute__((vector_size(2 * sizeof(int64_t))))){
+                     8741271462101646089, 8741271462101646089}};
+   int BS_VAR_9 = 2177;
+   int64_t __attribute__((vector_size(32 * sizeof(int64_t)))) BS_VAR_10[37] = {};
+   int16_t __attribute__((vector_size(8 * sizeof(int16_t)))) BS_VAR_11[5] = {};
+   uint8_t __attribute__((vector_size(2))) BS_VAR_12 = {4};
+   uint64_t LOCAL_CHECKSUM = BS_CHECKSUM_ARR_7;
+   struct S0 **l_160 = &g_108;
+   int32_t l_161 = 3842;
+   int64_t *l_162[] = {&g_158_1_0_3, &g_158_1_0_3, &g_158_1_0_3, &g_158_1_0_3};
+   struct S0 ***l_176 = &l_160;
+   int32_t l_181 = g_44;
+   int32_t *l_180 = &l_181;
+   *func_56_l_165 = p_60;
+   l_162[7] == g_158 != safe_lshift_func_uint8_t_u_s(*func_56_l_165);
+   g_130_0 |= l_160 != (g_148.f0 & 1 < l_161 >= ((g_76_0 = 0) < g_8[5]), l_160);
+   if (g_148.f0)
+     BS_VAR_8[p_57 < 7 ? p_57 : 0] = __builtin_shufflevector(
+         __builtin_shufflevector(BS_VAR_8[0], BS_VAR_8[0], 1, 0, 1, 2),
+         __builtin_convertvector(
+             (uint64_t __attribute__((vector_size(4 *sizeof(uint64_t))))){
+                 p_57, p_57, p_57, p_57},
+             int64_t __attribute__((vector_size(4 * sizeof(int64_t))))),
+         6, 0);
+   l_161 = safe_add_func_int8_t_s_s(l_161);
+   for (; l_161 != 20;)
+     p_57 = 9;
+   p_57 = safe_add_func_int8_t_s_s(p_57);
+   for (; p_57 > 2;) {
+     int BS_TEMP_89 = 7760,
+         BS_TEMP_90 = backsmith_snippet_544(__builtin_convertvector(
+             __builtin_shufflevector(BS_VAR_8[4], BS_VAR_8[4], 3, 2, 1, 2, 2, 2,
+                                     0, 0, 0, 2, 3, 0, 2, 0, 1, 3, 3, 1, 1, 2, 2,
+                                     0, 2, 3, 3, 0, 1, 3, 0, 1, 3, 3),
+             int16_t __attribute__((vector_size(32 * sizeof(int16_t))))));
+     BS_VAR_2[__builtin_bswap32(BS_TEMP_89 < 2 ? (unsigned)l_161 << BS_TEMP_89
+                                               : BS_VAR_2_3_0) < 3
+                  ? __builtin_bswap32(BS_TEMP_89 < 2
+                                          ? (unsigned)l_161 << BS_TEMP_89
+                                          : BS_VAR_2_3_0)
+                  : 0] =
+         __builtin_convertvector(
+             (int32_t __attribute__((vector_size(32 *sizeof(int32_t))))){
+                 BS_TEMP_90, BS_TEMP_90, BS_TEMP_90, BS_TEMP_90, BS_TEMP_90,
+                 BS_TEMP_90, BS_TEMP_90, BS_TEMP_90, BS_TEMP_90, BS_TEMP_90,
+                 BS_TEMP_90, BS_TEMP_90, BS_TEMP_90, BS_TEMP_90, BS_TEMP_90,
+                 BS_TEMP_90, BS_TEMP_90, BS_TEMP_90, BS_TEMP_90, BS_TEMP_90,
+                 BS_TEMP_90, BS_TEMP_90, BS_TEMP_90, BS_TEMP_90, BS_TEMP_90,
+                 BS_TEMP_90, BS_TEMP_90, BS_TEMP_90, BS_TEMP_90, BS_TEMP_90,
+                 BS_TEMP_90, BS_TEMP_90},
+             int64_t __attribute__((vector_size(32 * sizeof(int64_t)))));
+   }
+   *p_61 &= l_161 >=
+            safe_mul_func_uint32_t_u_u(
+                g_150.f0, ((*l_176 = l_160) != g_108) > l_160 == 0 == g_148.f0);
+   *l_180 = 0;
+   BS_VAR_3 = __builtin_shufflevector(
+       BS_VAR_11[p_59 < (uint64_t)5 ? (uint64_t)p_59 : 0],
+       BS_VAR_11[p_59 < (uint64_t)5 ? (uint64_t)p_59 : 0], 0, 4, 5, 4, 0, 3, 3,
+       2, 5, 4, 3, 0, 4, 3, 9, 1, 8, 8, 4, 3, 4, 0, 1, 9, 0, 0, 0, 1, 5, 2, 0,
+       9);
+   return p_57;
+ }
diff -Nrcpad gcc-15-20251115/gcc/testsuite/gfortran.dg/select_contiguous.f90 gcc-15-20251122/gcc/testsuite/gfortran.dg/select_contiguous.f90
*** gcc-15-20251115/gcc/testsuite/gfortran.dg/select_contiguous.f90	Thu Jan  1 00:00:00 1970
--- gcc-15-20251122/gcc/testsuite/gfortran.dg/select_contiguous.f90	Sat Nov 22 22:32:37 2025
***************
*** 0 ****
--- 1,51 ----
+ ! { dg-do compile }
+ ! { dg-options "-O2 -Wextra -fdump-tree-optimized" }
+ !
+ ! PR fortran/122709 - bogus warning for contiguous pointer assignment
+ !                     to select type target
+ !
+ ! Contributed by <mscfd at gmx dot net>
+ 
+ module sc_mod
+   implicit none
+   public
+ 
+   type :: t
+      integer :: i = 0
+   end type t
+ 
+   type :: s
+      class(t), dimension(:), contiguous, pointer :: p => null()
+   end type s
+ 
+ contains
+ 
+   subroutine foo(x)
+     class(s), intent(in) :: x
+     type(t), dimension(:), contiguous, pointer :: q
+     select type (p_ => x%p)
+     type is (t)
+        q => p_
+        if (.not. is_contiguous(x%p)) stop 1
+        if (.not. is_contiguous(p_))  stop 2     ! Should get optimized out
+        if (.not. is_contiguous(q))   stop 3
+        write(*,*) 'is contiguous: ', is_contiguous(x%p), &
+             is_contiguous(p_), is_contiguous(q)
+     end select
+   end subroutine foo
+ 
+ end module sc_mod
+ 
+ program select_contiguous
+   use sc_mod
+   implicit none
+ 
+   type(s) :: x
+ 
+   allocate(t :: x%p(1:10))
+   call foo(x)
+   deallocate(x%p)
+ 
+ end program select_contiguous
+ 
+ ! { dg-final { scan-tree-dump-not "_gfortran_stop_numeric" "optimized" } }
diff -Nrcpad gcc-15-20251115/gcc/testsuite/lib/lto.exp gcc-15-20251122/gcc/testsuite/lib/lto.exp
*** gcc-15-20251115/gcc/testsuite/lib/lto.exp	Sat Nov 15 22:33:26 2025
--- gcc-15-20251122/gcc/testsuite/lib/lto.exp	Sat Nov 22 22:32:57 2025
*************** proc lto-obj { source dest optall optfil
*** 309,314 ****
--- 309,351 ----
      ${tool}_check_compile "$testcase $dest assemble" $optstr $dest $comp_output
  }
  
+ proc lto-build-archive { testname objlist dest } {
+     global testcase
+     global tool
+     global GCC_UNDER_TEST
+ 
+     upvar dg-messages-by-file dg-messages-by-file
+ 
+     verbose "lto-build-archive" 2
+     file_on_host delete $dest
+ 
+     # Check that all of the objects were built successfully.
+     foreach obj [split $objlist] {
+ 	if ![file_on_host exists $obj] then {
+ 	    unresolved "$testcase $testname build-archive"
+ 	    return
+ 	}
+     }
+ 
+     # Hack up the gcc-ar command from $GCC_UNDER_TEST.
+     set ar_cmd [file dirname [lindex $GCC_UNDER_TEST 0]]
+     set ar_cmd "$ar_cmd/gcc-ar [lrange $GCC_UNDER_TEST 1 end]"
+     set ar_output [remote_exec host "$ar_cmd rcs $dest $objlist"]
+     set retval [lindex $ar_output 0]
+     set retmsg [lindex $ar_output 1]
+ 
+     # If any message remains, we fail.  Don't bother overriding tool since
+     # we're not really looking to match any specific error or warning patterns
+     # here.
+     if ![string match "0" $retval] then {
+ 	${tool}_fail $testcase "ar returned $retval: $retmsg"
+ 	return 0
+     } else {
+ 	${tool}_pass $testcase "archive"
+ 	return 0
+     }
+ }
+ 
  # lto-link-and-maybe-run -- link the object files and run the executable
  # if compile_type is set to "run"
  #
*************** proc lto-link-and-maybe-run { testname o
*** 379,385 ****
      }
  
      # Return if we only needed to link.
!     if { ![string compare "link" $compile_type] } {
  	return
      }
  
--- 416,423 ----
      }
  
      # Return if we only needed to link.
!     if { ![string compare "link" $compile_type] \
!         || ![string compare "ar-link" $compile_type] } {
  	return
      }
  
*************** proc lto-get-options-main { src } {
*** 510,515 ****
--- 548,555 ----
  		set compile_type "run"
  	    } elseif { ![string compare "link" $dgdo] } {
  		set compile_type "link"
+ 	    } elseif { ![string compare "ar-link" $dgdo] } {
+ 		set compile_type "ar-link"
  	    } else {
  		warning "lto.exp does not support dg-lto-do $dgdo"
  	    }
*************** proc lto-execute-1 { src1 sid } {
*** 691,696 ****
--- 731,742 ----
      # Get the base name of this test, for use in messages.
      set testcase [lindex ${src_list} 0]
  
+     # The test needs to build all but the main file into an archive and then
+     # link them all together.
+     if { ![string compare "ar-link" $compile_type] } {
+         set arname "${sid}_${base}.a"
+     }
+ 
      # Remove the $srcdir and $tmpdir prefixes from $src1.  (It would
      # be possible to use "regsub" here, if we were careful to escape
      # all regular expression characters in $srcdir and $tmpdir, but
*************** proc lto-execute-1 { src1 sid } {
*** 755,762 ****
--- 801,824 ----
  	    incr i
  	}
  
+ 	# Bundle all but the main file into an archive. Update objlist to only
+ 	# have the archive and the last file.
+ 	if { ![string compare "ar-link" $compile_type] } {
+ 	    set mainsrc [lindex $obj_list 0]
+ 	    set obj_list [lrange $obj_list 1 end]
+ 	    lto-build-archive \
+ 		"[lindex $obj_list 1]-[lindex $obj_list end]" \
+ 		$obj_list $arname
+ 
+ 	    set obj_list ""
+ 	    lappend obj_list $mainsrc
+ 	    lappend obj_list $arname
+ 	    set num_srcs 2
+ 	}
+ 
  	# Link (using the compiler under test), run, and clean up tests.
  	if { ![string compare "run" $compile_type] \
+ 	     || ![string compare "ar-link" $compile_type] \
  	     || ![string compare "link" $compile_type] } {
  
  	    # Filter out any link options we were asked to suppress.
*************** proc lto-execute-1 { src1 sid } {
*** 772,777 ****
--- 834,843 ----
  		    "[lindex $obj_list 0]-[lindex $obj_list end]" \
  		    $obj_list $execname $filtered ${dg-extra-ld-options} \
  		    $filtered
+ 
+ 	    if (![string compare "ar-link" $compile_type]) {
+ 		file_on_host delete $arname
+ 	      }
  	}
  
  
*************** proc lto-execute-1 { src1 sid } {
*** 818,823 ****
--- 884,890 ----
  	unset testname_with_flags
  	
  	if { ![string compare "run" $compile_type] \
+ 	     || ![string compare "ar-link" $compile_type] \
  	     || ![string compare "link" $compile_type] } {
  	    file_on_host delete $execname
  	}
diff -Nrcpad gcc-15-20251115/gcc/tree-cfg.cc gcc-15-20251122/gcc/tree-cfg.cc
*** gcc-15-20251115/gcc/tree-cfg.cc	Sat Nov 15 22:33:26 2025
--- gcc-15-20251122/gcc/tree-cfg.cc	Sat Nov 22 22:32:59 2025
*************** verify_gimple_return (greturn *stmt)
*** 4878,4883 ****
--- 4878,4884 ----
  {
    tree op = gimple_return_retval (stmt);
    tree restype = TREE_TYPE (TREE_TYPE (cfun->decl));
+   tree resdecl = DECL_RESULT (cfun->decl);
  
    /* We cannot test for present return values as we do not fix up missing
       return values from the original source.  */
*************** verify_gimple_return (greturn *stmt)
*** 4892,4903 ****
        return true;
      }
  
!   if ((TREE_CODE (op) == RESULT_DECL
!        && DECL_BY_REFERENCE (op))
!       || (TREE_CODE (op) == SSA_NAME
! 	  && SSA_NAME_VAR (op)
! 	  && TREE_CODE (SSA_NAME_VAR (op)) == RESULT_DECL
! 	  && DECL_BY_REFERENCE (SSA_NAME_VAR (op))))
      op = TREE_TYPE (op);
  
    if (!useless_type_conversion_p (restype, TREE_TYPE (op)))
--- 4893,4899 ----
        return true;
      }
  
!   if (resdecl && DECL_BY_REFERENCE (resdecl))
      op = TREE_TYPE (op);
  
    if (!useless_type_conversion_p (restype, TREE_TYPE (op)))
diff -Nrcpad gcc-15-20251115/gcc/tree-ssa-strlen.cc gcc-15-20251122/gcc/tree-ssa-strlen.cc
*** gcc-15-20251115/gcc/tree-ssa-strlen.cc	Sat Nov 15 22:33:26 2025
--- gcc-15-20251122/gcc/tree-ssa-strlen.cc	Sat Nov 22 22:32:59 2025
*************** strlen_pass::handle_builtin_memcmp ()
*** 4009,4016 ****
  	  tree ptrtype = build_pointer_type_for_mode (char_type_node,
  						      ptr_mode, true);
  	  off = build_int_cst (ptrtype, 0);
! 	  arg1 = build2_loc (loc, MEM_REF, type, arg1, off);
! 	  arg2 = build2_loc (loc, MEM_REF, type, arg2, off);
  	  tree tem1 = fold_const_aggregate_ref (arg1);
  	  if (tem1)
  	    arg1 = tem1;
--- 4009,4024 ----
  	  tree ptrtype = build_pointer_type_for_mode (char_type_node,
  						      ptr_mode, true);
  	  off = build_int_cst (ptrtype, 0);
! 
! 	  /* Create unaligned types if needed. */
! 	  tree type1 = type, type2 = type;
! 	  if (TYPE_ALIGN (type1) > align1)
! 	    type1 = build_aligned_type (type1, align1);
! 	  if (TYPE_ALIGN (type2) > align2)
! 	    type2 = build_aligned_type (type2, align2);
! 
! 	  arg1 = build2_loc (loc, MEM_REF, type1, arg1, off);
! 	  arg2 = build2_loc (loc, MEM_REF, type2, arg2, off);
  	  tree tem1 = fold_const_aggregate_ref (arg1);
  	  if (tem1)
  	    arg1 = tem1;
diff -Nrcpad gcc-15-20251115/libstdc++-v3/ChangeLog gcc-15-20251122/libstdc++-v3/ChangeLog
*** gcc-15-20251115/libstdc++-v3/ChangeLog	Sat Nov 15 22:33:51 2025
--- gcc-15-20251122/libstdc++-v3/ChangeLog	Sat Nov 22 22:33:08 2025
***************
*** 1,3 ****
--- 1,59 ----
+ 2025-11-19  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-11-19  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/122743
+ 	* doc/xml/manual/abi.xml: Add versions for GCC 15.
+ 	* doc/html/manual/abi.html: Regenerate.
+ 
+ 2025-11-19  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-11-19  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/xml/faq.xml: Remove unwanted whitespace inside
+ 	programlisting elements.
+ 	* doc/xml/manual/allocator.xml: Likewise.
+ 	* doc/xml/manual/auto_ptr.xml: Likewise.
+ 	* doc/xml/manual/backwards_compatibility.xml: Likewise.
+ 	* doc/xml/manual/build_hacking.xml: Likewise.
+ 	* doc/xml/manual/containers.xml: Likewise.
+ 	* doc/xml/manual/diagnostics.xml: Likewise.
+ 	* doc/xml/manual/extensions.xml: Likewise.
+ 	* doc/xml/manual/intro.xml: Likewise.
+ 	* doc/xml/manual/io.xml: Likewise.
+ 	* doc/xml/manual/iterators.xml: Likewise.
+ 	* doc/xml/manual/numerics.xml: Likewise.
+ 	* doc/xml/manual/policy_data_structures.xml: Likewise.
+ 	* doc/xml/manual/strings.xml: Likewise.
+ 	* doc/xml/manual/support.xml: Likewise.
+ 	* doc/xml/manual/test.xml: Likewise.
+ 	* doc/xml/manual/using.xml: Likewise.
+ 	* doc/xml/manual/utilities.xml: Likewise.
+ 	* doc/html/*: Regenerate.
+ 
+ 2025-11-18  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-11-17  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/122726
+ 	* src/filesystem/ops-common.h [_GLIBCXX_FILESYSTEM_IS_WINDOWS]
+ 	(rename): Use __last_system_error to set errno accurately.
+ 	* testsuite/27_io/filesystem/operations/rename.cc: Test
+ 	error_code matches errc::no_such_file_or_directory.
+ 
+ 2025-11-17  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-11-17  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* src/c++23/std.cc.in [!__cpp_lib_syncbuf]: Disable exports for
+ 	<syncstream> contents when not defined.
+ 	[!_GLIBCXX_USE_CXX11_ABI]: Disable exports for pmr aliases in
+ 	<string> when not defined.
+ 
  2025-11-14  Jonathan Wakely  <jwakely@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/html/faq.html gcc-15-20251122/libstdc++-v3/doc/html/faq.html
*** gcc-15-20251115/libstdc++-v3/doc/html/faq.html	Sat Nov 15 22:33:51 2025
--- gcc-15-20251122/libstdc++-v3/doc/html/faq.html	Sat Nov 22 22:33:09 2025
***************
*** 597,603 ****
      // .
      fs.close();
      fs.open("a_new_file");
!     </pre><p>
      All operations on the re-opened <code class="varname">fs</code> would fail, or at
      least act very strangely, especially if <code class="varname">fs</code> reached the
      EOF state on the previous file.
--- 597,603 ----
      // .
      fs.close();
      fs.open("a_new_file");
! </pre><p>
      All operations on the re-opened <code class="varname">fs</code> would fail, or at
      least act very strangely, especially if <code class="varname">fs</code> reached the
      EOF state on the previous file.
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/html/manual/abi.html gcc-15-20251122/libstdc++-v3/doc/html/manual/abi.html
*** gcc-15-20251115/libstdc++-v3/doc/html/manual/abi.html	Sat Nov 15 22:33:51 2025
--- gcc-15-20251122/libstdc++-v3/doc/html/manual/abi.html	Sat Nov 22 22:33:09 2025
*************** compatible.
*** 110,116 ****
  	has the same filename and <code class="constant">DT_SONAME</code> as the
  	preceding release.
        </p><p>It is versioned as follows:
!     </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>GCC 3.0.0: libstdc++.so.3.0.0</p></li><li class="listitem"><p>GCC 3.0.1: libstdc++.so.3.0.1</p></li><li class="listitem"><p>GCC 3.0.2: libstdc++.so.3.0.2</p></li><li class="listitem"><p>GCC 3.0.3: libstdc++.so.3.0.2 (See Note 1)</p></li><li class="listitem"><p>GCC 3.0.4: libstdc++.so.3.0.4</p></li><li class="listitem"><p>GCC 3.1.0: libstdc++.so.4.0.0 <span class="emphasis"><em>(Incompatible with previous)</em></span></p></li><li class="listitem"><p>GCC 3.1.1: libstdc++.so.4.0.1</p></li><li class="listitem"><p>GCC 3.2.0: libstdc++.so.5.0.0 <span class="emphasis"><em>(Incompatible with previous)</em></span></p></li><li class="listitem"><p>GCC 3.2.1: libstdc++.so.5.0.1</p></li><li class="listitem"><p>GCC 3.2.2: libstdc++.so.5.0.2</p></li><li class="listitem"><p>GCC 3.2.3: libstdc++.so.5.0.3 (See Note 2)</p></li><li class="listitem"><p>GCC 3.3.0: libstdc++.so.5.0.4</p></li><li class="listitem"><p>GCC 3.3.1: libstdc++.so.5.0.5</p></li><li class="listitem"><p>GCC 3.4.0: libstdc++.so.6.0.0 <span class="emphasis"><em>(Incompatible with previous)</em></span></p></li><li class="listitem"><p>GCC 3.4.1: libstdc++.so.6.0.1</p></li><li class="listitem"><p>GCC 3.4.2: libstdc++.so.6.0.2</p></li><li class="listitem"><p>GCC 3.4.3: libstdc++.so.6.0.3</p></li><li class="listitem"><p>GCC 4.0.0: libstdc++.so.6.0.4</p></li><li class="listitem"><p>GCC 4.0.1: libstdc++.so.6.0.5</p></li><li class="listitem"><p>GCC 4.0.2: libstdc++.so.6.0.6</p></li><li class="listitem"><p>GCC 4.0.3: libstdc++.so.6.0.7</p></li><li class="listitem"><p>GCC 4.1.0: libstdc++.so.6.0.7</p></li><li class="listitem"><p>GCC 4.1.1: libstdc++.so.6.0.8</p></li><li class="listitem"><p>GCC 4.2.0: libstdc++.so.6.0.9</p></li><li class="listitem"><p>GCC 4.2.1: libstdc++.so.6.0.9 (See Note 3)</p></li><li class="listitem"><p>GCC 4.2.2: libstdc++.so.6.0.9</p></li><li class="listitem"><p>GCC 4.3.0: libstdc++.so.6.0.10</p></li><li class="listitem"><p>GCC 4.4.0: libstdc++.so.6.0.11</p></li><li class="listitem"><p>GCC 4.4.1: libstdc++.so.6.0.12</p></li><li class="listitem"><p>GCC 4.4.2: libstdc++.so.6.0.13</p></li><li class="listitem"><p>GCC 4.5.0: libstdc++.so.6.0.14</p></li><li class="listitem"><p>GCC 4.6.0: libstdc++.so.6.0.15</p></li><li class="listitem"><p>GCC 4.6.1: libstdc++.so.6.0.16</p></li><li class="listitem"><p>GCC 4.7.0: libstdc++.so.6.0.17</p></li><li class="listitem"><p>GCC 4.8.0: libstdc++.so.6.0.18</p></li><li class="listitem"><p>GCC 4.8.3: libstdc++.so.6.0.19</p></li><li class="listitem"><p>GCC 4.9.0: libstdc++.so.6.0.20</p></li><li class="listitem"><p>GCC 5.1.0: libstdc++.so.6.0.21</p></li><li class="listitem"><p>GCC 6.1.0: libstdc++.so.6.0.22</p></li><li class="listitem"><p>GCC 7.1.0: libstdc++.so.6.0.23</p></li><li class="listitem"><p>GCC 7.2.0: libstdc++.so.6.0.24</p></li><li class="listitem"><p>GCC 8.1.0: libstdc++.so.6.0.25</p></li><li class="listitem"><p>GCC 9.1.0: libstdc++.so.6.0.26</p></li><li class="listitem"><p>GCC 9.2.0: libstdc++.so.6.0.27</p></li><li class="listitem"><p>GCC 9.3.0: libstdc++.so.6.0.28</p></li><li class="listitem"><p>GCC 10.1.0: libstdc++.so.6.0.28</p></li><li class="listitem"><p>GCC 11.1.0: libstdc++.so.6.0.29</p></li><li class="listitem"><p>GCC 12.1.0: libstdc++.so.6.0.30</p></li><li class="listitem"><p>GCC 13.1.0: libstdc++.so.6.0.31</p></li><li class="listitem"><p>GCC 13.2.0: libstdc++.so.6.0.32</p></li><li class="listitem"><p>GCC 14.1.0: libstdc++.so.6.0.33</p></li></ul></div><p>
        Note 1: Error should be libstdc++.so.3.0.3.
      </p><p>
        Note 2: Not strictly required.
--- 110,116 ----
  	has the same filename and <code class="constant">DT_SONAME</code> as the
  	preceding release.
        </p><p>It is versioned as follows:
!     </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>GCC 3.0.0: libstdc++.so.3.0.0</p></li><li class="listitem"><p>GCC 3.0.1: libstdc++.so.3.0.1</p></li><li class="listitem"><p>GCC 3.0.2: libstdc++.so.3.0.2</p></li><li class="listitem"><p>GCC 3.0.3: libstdc++.so.3.0.2 (See Note 1)</p></li><li class="listitem"><p>GCC 3.0.4: libstdc++.so.3.0.4</p></li><li class="listitem"><p>GCC 3.1.0: libstdc++.so.4.0.0 <span class="emphasis"><em>(Incompatible with previous)</em></span></p></li><li class="listitem"><p>GCC 3.1.1: libstdc++.so.4.0.1</p></li><li class="listitem"><p>GCC 3.2.0: libstdc++.so.5.0.0 <span class="emphasis"><em>(Incompatible with previous)</em></span></p></li><li class="listitem"><p>GCC 3.2.1: libstdc++.so.5.0.1</p></li><li class="listitem"><p>GCC 3.2.2: libstdc++.so.5.0.2</p></li><li class="listitem"><p>GCC 3.2.3: libstdc++.so.5.0.3 (See Note 2)</p></li><li class="listitem"><p>GCC 3.3.0: libstdc++.so.5.0.4</p></li><li class="listitem"><p>GCC 3.3.1: libstdc++.so.5.0.5</p></li><li class="listitem"><p>GCC 3.4.0: libstdc++.so.6.0.0 <span class="emphasis"><em>(Incompatible with previous)</em></span></p></li><li class="listitem"><p>GCC 3.4.1: libstdc++.so.6.0.1</p></li><li class="listitem"><p>GCC 3.4.2: libstdc++.so.6.0.2</p></li><li class="listitem"><p>GCC 3.4.3: libstdc++.so.6.0.3</p></li><li class="listitem"><p>GCC 4.0.0: libstdc++.so.6.0.4</p></li><li class="listitem"><p>GCC 4.0.1: libstdc++.so.6.0.5</p></li><li class="listitem"><p>GCC 4.0.2: libstdc++.so.6.0.6</p></li><li class="listitem"><p>GCC 4.0.3: libstdc++.so.6.0.7</p></li><li class="listitem"><p>GCC 4.1.0: libstdc++.so.6.0.7</p></li><li class="listitem"><p>GCC 4.1.1: libstdc++.so.6.0.8</p></li><li class="listitem"><p>GCC 4.2.0: libstdc++.so.6.0.9</p></li><li class="listitem"><p>GCC 4.2.1: libstdc++.so.6.0.9 (See Note 3)</p></li><li class="listitem"><p>GCC 4.2.2: libstdc++.so.6.0.9</p></li><li class="listitem"><p>GCC 4.3.0: libstdc++.so.6.0.10</p></li><li class="listitem"><p>GCC 4.4.0: libstdc++.so.6.0.11</p></li><li class="listitem"><p>GCC 4.4.1: libstdc++.so.6.0.12</p></li><li class="listitem"><p>GCC 4.4.2: libstdc++.so.6.0.13</p></li><li class="listitem"><p>GCC 4.5.0: libstdc++.so.6.0.14</p></li><li class="listitem"><p>GCC 4.6.0: libstdc++.so.6.0.15</p></li><li class="listitem"><p>GCC 4.6.1: libstdc++.so.6.0.16</p></li><li class="listitem"><p>GCC 4.7.0: libstdc++.so.6.0.17</p></li><li class="listitem"><p>GCC 4.8.0: libstdc++.so.6.0.18</p></li><li class="listitem"><p>GCC 4.8.3: libstdc++.so.6.0.19</p></li><li class="listitem"><p>GCC 4.9.0: libstdc++.so.6.0.20</p></li><li class="listitem"><p>GCC 5.1.0: libstdc++.so.6.0.21</p></li><li class="listitem"><p>GCC 6.1.0: libstdc++.so.6.0.22</p></li><li class="listitem"><p>GCC 7.1.0: libstdc++.so.6.0.23</p></li><li class="listitem"><p>GCC 7.2.0: libstdc++.so.6.0.24</p></li><li class="listitem"><p>GCC 8.1.0: libstdc++.so.6.0.25</p></li><li class="listitem"><p>GCC 9.1.0: libstdc++.so.6.0.26</p></li><li class="listitem"><p>GCC 9.2.0: libstdc++.so.6.0.27</p></li><li class="listitem"><p>GCC 9.3.0: libstdc++.so.6.0.28</p></li><li class="listitem"><p>GCC 10.1.0: libstdc++.so.6.0.28</p></li><li class="listitem"><p>GCC 11.1.0: libstdc++.so.6.0.29</p></li><li class="listitem"><p>GCC 12.1.0: libstdc++.so.6.0.30</p></li><li class="listitem"><p>GCC 13.1.0: libstdc++.so.6.0.31</p></li><li class="listitem"><p>GCC 13.2.0: libstdc++.so.6.0.32</p></li><li class="listitem"><p>GCC 14.1.0: libstdc++.so.6.0.33</p></li><li class="listitem"><p>GCC 15.1.0: libstdc++.so.6.0.34</p></li></ul></div><p>
        Note 1: Error should be libstdc++.so.3.0.3.
      </p><p>
        Note 2: Not strictly required.
*************** compatible.
*** 128,134 ****
     GLIBCPP_3.2 for symbols that were introduced in the GCC 3.2.0
     release.) If a particular release is not listed, it has the same
     version labels as the preceding release.
!    </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>GCC 3.0.0: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.1: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.2: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.3: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.4: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.1.0: GLIBCPP_3.1, CXXABI_1</p></li><li class="listitem"><p>GCC 3.1.1: GLIBCPP_3.1, CXXABI_1</p></li><li class="listitem"><p>GCC 3.2.0: GLIBCPP_3.2, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.2.1: GLIBCPP_3.2.1, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.2.2: GLIBCPP_3.2.2, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.2.3: GLIBCPP_3.2.2, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.3.0: GLIBCPP_3.2.2, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.3.1: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.3.2: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.3.3: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.4.0: GLIBCXX_3.4, CXXABI_1.3</p></li><li class="listitem"><p>GCC 3.4.1: GLIBCXX_3.4.1, CXXABI_1.3</p></li><li class="listitem"><p>GCC 3.4.2: GLIBCXX_3.4.2</p></li><li class="listitem"><p>GCC 3.4.3: GLIBCXX_3.4.3</p></li><li class="listitem"><p>GCC 4.0.0: GLIBCXX_3.4.4, CXXABI_1.3.1</p></li><li class="listitem"><p>GCC 4.0.1: GLIBCXX_3.4.5</p></li><li class="listitem"><p>GCC 4.0.2: GLIBCXX_3.4.6</p></li><li class="listitem"><p>GCC 4.0.3: GLIBCXX_3.4.7</p></li><li class="listitem"><p>GCC 4.1.1: GLIBCXX_3.4.8</p></li><li class="listitem"><p>GCC 4.2.0: GLIBCXX_3.4.9</p></li><li class="listitem"><p>GCC 4.3.0: GLIBCXX_3.4.10, CXXABI_1.3.2</p></li><li class="listitem"><p>GCC 4.4.0: GLIBCXX_3.4.11, CXXABI_1.3.3</p></li><li class="listitem"><p>GCC 4.4.1: GLIBCXX_3.4.12, CXXABI_1.3.3</p></li><li class="listitem"><p>GCC 4.4.2: GLIBCXX_3.4.13, CXXABI_1.3.3</p></li><li class="listitem"><p>GCC 4.5.0: GLIBCXX_3.4.14, CXXABI_1.3.4</p></li><li class="listitem"><p>GCC 4.6.0: GLIBCXX_3.4.15, CXXABI_1.3.5</p></li><li class="listitem"><p>GCC 4.6.1: GLIBCXX_3.4.16, CXXABI_1.3.5</p></li><li class="listitem"><p>GCC 4.7.0: GLIBCXX_3.4.17, CXXABI_1.3.6</p></li><li class="listitem"><p>GCC 4.8.0: GLIBCXX_3.4.18, CXXABI_1.3.7</p></li><li class="listitem"><p>GCC 4.8.3: GLIBCXX_3.4.19, CXXABI_1.3.7</p></li><li class="listitem"><p>GCC 4.9.0: GLIBCXX_3.4.20, CXXABI_1.3.8</p></li><li class="listitem"><p>GCC 5.1.0: GLIBCXX_3.4.21, CXXABI_1.3.9</p></li><li class="listitem"><p>GCC 6.1.0: GLIBCXX_3.4.22, CXXABI_1.3.10</p></li><li class="listitem"><p>GCC 7.1.0: GLIBCXX_3.4.23, CXXABI_1.3.11</p></li><li class="listitem"><p>GCC 7.2.0: GLIBCXX_3.4.24, CXXABI_1.3.11</p></li><li class="listitem"><p>GCC 8.1.0: GLIBCXX_3.4.25, CXXABI_1.3.11</p></li><li class="listitem"><p>GCC 9.1.0: GLIBCXX_3.4.26, CXXABI_1.3.12</p></li><li class="listitem"><p>GCC 9.2.0: GLIBCXX_3.4.27, CXXABI_1.3.12</p></li><li class="listitem"><p>GCC 9.3.0: GLIBCXX_3.4.28, CXXABI_1.3.12</p></li><li class="listitem"><p>GCC 10.1.0: GLIBCXX_3.4.28, CXXABI_1.3.12</p></li><li class="listitem"><p>GCC 11.1.0: GLIBCXX_3.4.29, CXXABI_1.3.13</p></li><li class="listitem"><p>GCC 12.1.0: GLIBCXX_3.4.30, CXXABI_1.3.13</p></li><li class="listitem"><p>GCC 13.1.0: GLIBCXX_3.4.31, CXXABI_1.3.14</p></li><li class="listitem"><p>GCC 13.2.0: GLIBCXX_3.4.32, CXXABI_1.3.14</p></li><li class="listitem"><p>GCC 14.1.0: GLIBCXX_3.4.33, CXXABI_1.3.15</p></li></ul></div></li><li class="listitem"><p>Incremental bumping of a compiler pre-defined macro,
      __GXX_ABI_VERSION. This macro is defined as the version of the
      compiler v3 ABI, with g++ 3.0 being version 100. This macro will
      be automatically defined whenever g++ is used (the curious can
--- 128,134 ----
     GLIBCPP_3.2 for symbols that were introduced in the GCC 3.2.0
     release.) If a particular release is not listed, it has the same
     version labels as the preceding release.
!    </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>GCC 3.0.0: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.1: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.2: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.3: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.0.4: (Error, not versioned)</p></li><li class="listitem"><p>GCC 3.1.0: GLIBCPP_3.1, CXXABI_1</p></li><li class="listitem"><p>GCC 3.1.1: GLIBCPP_3.1, CXXABI_1</p></li><li class="listitem"><p>GCC 3.2.0: GLIBCPP_3.2, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.2.1: GLIBCPP_3.2.1, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.2.2: GLIBCPP_3.2.2, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.2.3: GLIBCPP_3.2.2, CXXABI_1.2</p></li><li class="listitem"><p>GCC 3.3.0: GLIBCPP_3.2.2, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.3.1: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.3.2: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.3.3: GLIBCPP_3.2.3, CXXABI_1.2.1</p></li><li class="listitem"><p>GCC 3.4.0: GLIBCXX_3.4, CXXABI_1.3</p></li><li class="listitem"><p>GCC 3.4.1: GLIBCXX_3.4.1, CXXABI_1.3</p></li><li class="listitem"><p>GCC 3.4.2: GLIBCXX_3.4.2</p></li><li class="listitem"><p>GCC 3.4.3: GLIBCXX_3.4.3</p></li><li class="listitem"><p>GCC 4.0.0: GLIBCXX_3.4.4, CXXABI_1.3.1</p></li><li class="listitem"><p>GCC 4.0.1: GLIBCXX_3.4.5</p></li><li class="listitem"><p>GCC 4.0.2: GLIBCXX_3.4.6</p></li><li class="listitem"><p>GCC 4.0.3: GLIBCXX_3.4.7</p></li><li class="listitem"><p>GCC 4.1.1: GLIBCXX_3.4.8</p></li><li class="listitem"><p>GCC 4.2.0: GLIBCXX_3.4.9</p></li><li class="listitem"><p>GCC 4.3.0: GLIBCXX_3.4.10, CXXABI_1.3.2</p></li><li class="listitem"><p>GCC 4.4.0: GLIBCXX_3.4.11, CXXABI_1.3.3</p></li><li class="listitem"><p>GCC 4.4.1: GLIBCXX_3.4.12, CXXABI_1.3.3</p></li><li class="listitem"><p>GCC 4.4.2: GLIBCXX_3.4.13, CXXABI_1.3.3</p></li><li class="listitem"><p>GCC 4.5.0: GLIBCXX_3.4.14, CXXABI_1.3.4</p></li><li class="listitem"><p>GCC 4.6.0: GLIBCXX_3.4.15, CXXABI_1.3.5</p></li><li class="listitem"><p>GCC 4.6.1: GLIBCXX_3.4.16, CXXABI_1.3.5</p></li><li class="listitem"><p>GCC 4.7.0: GLIBCXX_3.4.17, CXXABI_1.3.6</p></li><li class="listitem"><p>GCC 4.8.0: GLIBCXX_3.4.18, CXXABI_1.3.7</p></li><li class="listitem"><p>GCC 4.8.3: GLIBCXX_3.4.19, CXXABI_1.3.7</p></li><li class="listitem"><p>GCC 4.9.0: GLIBCXX_3.4.20, CXXABI_1.3.8</p></li><li class="listitem"><p>GCC 5.1.0: GLIBCXX_3.4.21, CXXABI_1.3.9</p></li><li class="listitem"><p>GCC 6.1.0: GLIBCXX_3.4.22, CXXABI_1.3.10</p></li><li class="listitem"><p>GCC 7.1.0: GLIBCXX_3.4.23, CXXABI_1.3.11</p></li><li class="listitem"><p>GCC 7.2.0: GLIBCXX_3.4.24, CXXABI_1.3.11</p></li><li class="listitem"><p>GCC 8.1.0: GLIBCXX_3.4.25, CXXABI_1.3.11</p></li><li class="listitem"><p>GCC 9.1.0: GLIBCXX_3.4.26, CXXABI_1.3.12</p></li><li class="listitem"><p>GCC 9.2.0: GLIBCXX_3.4.27, CXXABI_1.3.12</p></li><li class="listitem"><p>GCC 9.3.0: GLIBCXX_3.4.28, CXXABI_1.3.12</p></li><li class="listitem"><p>GCC 10.1.0: GLIBCXX_3.4.28, CXXABI_1.3.12</p></li><li class="listitem"><p>GCC 11.1.0: GLIBCXX_3.4.29, CXXABI_1.3.13</p></li><li class="listitem"><p>GCC 12.1.0: GLIBCXX_3.4.30, CXXABI_1.3.13</p></li><li class="listitem"><p>GCC 13.1.0: GLIBCXX_3.4.31, CXXABI_1.3.14</p></li><li class="listitem"><p>GCC 13.2.0: GLIBCXX_3.4.32, CXXABI_1.3.14</p></li><li class="listitem"><p>GCC 14.1.0: GLIBCXX_3.4.33, CXXABI_1.3.15</p></li><li class="listitem"><p>GCC 15.1.0: GLIBCXX_3.4.34, CXXABI_1.3.15 (CXXABI_1.3.16 for RISC-V only)</p></li></ul></div></li><li class="listitem"><p>Incremental bumping of a compiler pre-defined macro,
      __GXX_ABI_VERSION. This macro is defined as the version of the
      compiler v3 ABI, with g++ 3.0 being version 100. This macro will
      be automatically defined whenever g++ is used (the curious can
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/html/manual/appendix_porting.html gcc-15-20251122/libstdc++-v3/doc/html/manual/appendix_porting.html
*** gcc-15-20251115/libstdc++-v3/doc/html/manual/appendix_porting.html	Sat Nov 15 22:33:51 2025
--- gcc-15-20251122/libstdc++-v3/doc/html/manual/appendix_porting.html	Sat Nov 22 22:33:09 2025
*************** in the build directory starts the build
*** 113,125 ****
      GLIBCXX_CHECK_HOST
      GLIBCXX_TOPREL_CONFIGURE
      GLIBCXX_CONFIGURE
!   </pre><p>
      All the major variable "discovery" is done here.
      <code class="varname">CXX</code>, multilibs,
      etc.
    </p><pre class="programlisting">
      fragments included from elsewhere
!   </pre><p>
      Right now, "fragments" == "the math/linkage bits".
    </p><pre class="programlisting">
      GLIBCXX_CHECK_COMPILER_FEATURES
--- 113,125 ----
      GLIBCXX_CHECK_HOST
      GLIBCXX_TOPREL_CONFIGURE
      GLIBCXX_CONFIGURE
! </pre><p>
      All the major variable "discovery" is done here.
      <code class="varname">CXX</code>, multilibs,
      etc.
    </p><pre class="programlisting">
      fragments included from elsewhere
! </pre><p>
      Right now, "fragments" == "the math/linkage bits".
    </p><pre class="programlisting">
      GLIBCXX_CHECK_COMPILER_FEATURES
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/html/manual/associative.html gcc-15-20251122/libstdc++-v3/doc/html/manual/associative.html
*** gcc-15-20251115/libstdc++-v3/doc/html/manual/associative.html	Sat Nov 15 22:33:51 2025
--- gcc-15-20251122/libstdc++-v3/doc/html/manual/associative.html	Sat Nov 22 22:33:09 2025
***************
*** 7,13 ****
       function for all of the associative containers (map, set, etc):
     </p><pre class="programlisting">
        a.insert(p,t);
!    </pre><p>
       where 'p' is an iterator into the container 'a', and 't' is the
       item to insert.  The standard says that <span class="quote">“<span class="quote"><code class="code">t</code> is
       inserted as close as possible to the position just prior to
--- 7,13 ----
       function for all of the associative containers (map, set, etc):
     </p><pre class="programlisting">
        a.insert(p,t);
! </pre><p>
       where 'p' is an iterator into the container 'a', and 't' is the
       item to insert.  The standard says that <span class="quote">“<span class="quote"><code class="code">t</code> is
       inserted as close as possible to the position just prior to
***************
*** 93,99 ****
  	  std::bitset&lt;n&gt;   bits;
  	  ....
        }
!    </pre><p>
       because <code class="code">n</code> must be known at compile time.  Your
       compiler is correct; it is not a bug.  That's the way templates
       work.  (Yes, it <span class="emphasis"><em>is</em></span> a feature.)
--- 93,99 ----
  	  std::bitset&lt;n&gt;   bits;
  	  ....
        }
! </pre><p>
       because <code class="code">n</code> must be known at compile time.  Your
       compiler is correct; it is not a bug.  That's the way templates
       work.  (Yes, it <span class="emphasis"><em>is</em></span> a feature.)
***************
*** 181,191 ****
       constructor expression:
     </p><pre class="programlisting">
        std::bitset&lt;5&gt; b ( std::string("10110") );
!    </pre><p>
       instead of
     </p><pre class="programlisting">
        std::bitset&lt;5&gt; b ( "10110" );    // invalid
!     </pre></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="containers.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="containers.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="unordered_associative.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 9. 
    Containers
    
   </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Unordered Associative</td></tr></table></div></body></html>
\ No newline at end of file
--- 181,191 ----
       constructor expression:
     </p><pre class="programlisting">
        std::bitset&lt;5&gt; b ( std::string("10110") );
! </pre><p>
       instead of
     </p><pre class="programlisting">
        std::bitset&lt;5&gt; b ( "10110" );    // invalid
! </pre></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="containers.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="containers.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="unordered_associative.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 9. 
    Containers
    
   </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Unordered Associative</td></tr></table></div></body></html>
\ No newline at end of file
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/html/manual/backwards.html gcc-15-20251122/libstdc++-v3/doc/html/manual/backwards.html
*** gcc-15-20251115/libstdc++-v3/doc/html/manual/backwards.html	Sat Nov 15 22:33:51 2025
--- gcc-15-20251122/libstdc++-v3/doc/html/manual/backwards.html	Sat Nov 22 22:33:09 2025
*************** and  <code class="filename">&lt;unordere
*** 85,91 ****
        #endif
  
        extension::hash_map&lt;int,int&gt; my_map;
!       </pre><p>This is a bit cleaner than defining typedefs for all the
  	 instantiations you might need.
        </p><p>The following autoconf tests check for working HP/SGI hash containers.
  </p><pre class="programlisting">
--- 85,91 ----
        #endif
  
        extension::hash_map&lt;int,int&gt; my_map;
! </pre><p>This is a bit cleaner than defining typedefs for all the
  	 instantiations you might need.
        </p><p>The following autoconf tests check for working HP/SGI hash containers.
  </p><pre class="programlisting">
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/html/manual/containers_and_c.html gcc-15-20251122/libstdc++-v3/doc/html/manual/containers_and_c.html
*** gcc-15-20251115/libstdc++-v3/doc/html/manual/containers_and_c.html	Sat Nov 15 22:33:51 2025
--- gcc-15-20251122/libstdc++-v3/doc/html/manual/containers_and_c.html	Sat Nov 22 22:33:09 2025
***************
*** 35,41 ****
       The result is that if all your algorithm calls look like
     </p><pre class="programlisting">
     std::transform(beginof(foo), endof(foo), beginof(foo), SomeFunction);
!    </pre><p>
       then the type of foo can change from an array of ints to a vector
       of ints to a deque of ints and back again, without ever changing
       any client code.
--- 35,41 ----
       The result is that if all your algorithm calls look like
     </p><pre class="programlisting">
     std::transform(beginof(foo), endof(foo), beginof(foo), SomeFunction);
! </pre><p>
       then the type of foo can change from an array of ints to a vector
       of ints to a deque of ints and back again, without ever changing
       any client code.
*************** template&lt;typename T, unsigned int sz&
*** 81,87 ****
       Second, the line
     </p><pre class="programlisting">
      inline unsigned int lengthof (T (&amp;)[sz]) { return sz; }
!    </pre><p>
       looks just weird!  Hint:  unused parameters can be left nameless.
     </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="unordered_associative.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="containers.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="iterators.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Unordered Associative </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 10. 
    Iterators
--- 81,87 ----
       Second, the line
     </p><pre class="programlisting">
      inline unsigned int lengthof (T (&amp;)[sz]) { return sz; }
! </pre><p>
       looks just weird!  Hint:  unused parameters can be left nameless.
     </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="unordered_associative.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="containers.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="iterators.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Unordered Associative </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 10. 
    Iterators
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/html/manual/diagnostics.html gcc-15-20251122/libstdc++-v3/doc/html/manual/diagnostics.html
*** gcc-15-20251115/libstdc++-v3/doc/html/manual/diagnostics.html	Sat Nov 15 22:33:51 2025
--- gcc-15-20251122/libstdc++-v3/doc/html/manual/diagnostics.html	Sat Nov 22 22:33:09 2025
***************
*** 51,54 ****
         int    e;
         DBID   id;     // some user-defined type
     };
!    </pre></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="termination.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="std_contents.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="errno.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Termination </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Use of errno by the library</td></tr></table></div></body></html>
\ No newline at end of file
--- 51,54 ----
         int    e;
         DBID   id;     // some user-defined type
     };
! </pre></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="termination.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="std_contents.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="errno.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Termination </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Use of errno by the library</td></tr></table></div></body></html>
\ No newline at end of file
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/html/manual/dynamic_memory.html gcc-15-20251122/libstdc++-v3/doc/html/manual/dynamic_memory.html
*** gcc-15-20251115/libstdc++-v3/doc/html/manual/dynamic_memory.html	Sat Nov 15 22:33:51 2025
--- gcc-15-20251122/libstdc++-v3/doc/html/manual/dynamic_memory.html	Sat Nov 22 22:33:09 2025
***************
*** 111,117 ****
        else
          throw bad_alloc{};
      }
!    </pre><p>
       This means you can influence what happens on allocation failure by
       writing your own new-handler and then registering it with
       <code class="function">std::set_new_handler</code>:
--- 111,117 ----
        else
          throw bad_alloc{};
      }
! </pre><p>
       This means you can influence what happens on allocation failure by
       writing your own new-handler and then registering it with
       <code class="function">std::set_new_handler</code>:
***************
*** 138,144 ****
         old_handler = set_new_handler (&amp;my_new_handler);
         ...
     }
!    </pre><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="std.support.memory.notes"></a>Additional Notes</h3></div></div></div><p>
       Remember that it is perfectly okay to <code class="function">delete</code> a
       null pointer!  Nothing happens, by definition.  That is not the
       same thing as deleting a pointer twice.
--- 138,144 ----
         old_handler = set_new_handler (&amp;my_new_handler);
         ...
     }
! </pre><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="std.support.memory.notes"></a>Additional Notes</h3></div></div></div><p>
       Remember that it is perfectly okay to <code class="function">delete</code> a
       null pointer!  Nothing happens, by definition.  That is not the
       same thing as deleting a pointer twice.
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/html/manual/ext_containers.html gcc-15-20251122/libstdc++-v3/doc/html/manual/ext_containers.html
*** gcc-15-20251115/libstdc++-v3/doc/html/manual/ext_containers.html	Sat Nov 15 22:33:51 2025
--- gcc-15-20251122/libstdc++-v3/doc/html/manual/ext_containers.html	Sat Nov 22 22:33:09 2025
***************
*** 25,31 ****
     bitset&lt;N&gt;&amp;   _Unchecked_reset (size_t pos);
     bitset&lt;N&gt;&amp;   _Unchecked_flip  (size_t pos);
     bool         _Unchecked_test  (size_t pos);
!    </pre><p>Note that these may in fact be removed in the future, although we have
     no present plans to do so (and there doesn't seem to be any immediate
     reason to).
  </p><p>The member function <code class="code">operator[]</code> on a const bitset returns
--- 25,31 ----
     bitset&lt;N&gt;&amp;   _Unchecked_reset (size_t pos);
     bitset&lt;N&gt;&amp;   _Unchecked_flip  (size_t pos);
     bool         _Unchecked_test  (size_t pos);
! </pre><p>Note that these may in fact be removed in the future, although we have
     no present plans to do so (and there doesn't seem to be any immediate
     reason to).
  </p><p>The member function <code class="code">operator[]</code> on a const bitset returns
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/html/manual/ext_demangling.html gcc-15-20251122/libstdc++-v3/doc/html/manual/ext_demangling.html
*** gcc-15-20251115/libstdc++-v3/doc/html/manual/ext_demangling.html	Sat Nov 15 22:33:51 2025
--- gcc-15-20251122/libstdc++-v3/doc/html/manual/ext_demangling.html	Sat Nov 22 22:33:09 2025
*************** int main()
*** 45,51 ****
    std::cout &lt;&lt; ti.name() &lt;&lt; "\t=&gt; " &lt;&lt; realname &lt;&lt; "\t: " &lt;&lt; status &lt;&lt; '\n';
    std::free(realname);
  }
!    </pre><p>
       This prints
     </p><pre class="screen">
     <code class="computeroutput">
--- 45,51 ----
    std::cout &lt;&lt; ti.name() &lt;&lt; "\t=&gt; " &lt;&lt; realname &lt;&lt; "\t: " &lt;&lt; status &lt;&lt; '\n';
    std::free(realname);
  }
! </pre><p>
       This prints
     </p><pre class="screen">
     <code class="computeroutput">
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/html/manual/ext_sgi.html gcc-15-20251122/libstdc++-v3/doc/html/manual/ext_sgi.html
*** gcc-15-20251115/libstdc++-v3/doc/html/manual/ext_sgi.html	Sat Nov 15 22:33:51 2025
--- gcc-15-20251122/libstdc++-v3/doc/html/manual/ext_sgi.html	Sat Nov 22 22:33:09 2025
***************
*** 11,17 ****
       &lt;rope&gt;
       &lt;slist&gt;
       &lt;rb_tree&gt;
!    </pre><p>are all here;
        <code class="filename">&lt;backwards/hash_map&gt;</code> and
        <code class="filename">&lt;backwards/hash_set&gt;</code>
        are deprecated but available as backwards-compatible extensions,
--- 11,17 ----
       &lt;rope&gt;
       &lt;slist&gt;
       &lt;rb_tree&gt;
! </pre><p>are all here;
        <code class="filename">&lt;backwards/hash_map&gt;</code> and
        <code class="filename">&lt;backwards/hash_set&gt;</code>
        are deprecated but available as backwards-compatible extensions,
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/html/manual/generalized_numeric_operations.html gcc-15-20251122/libstdc++-v3/doc/html/manual/generalized_numeric_operations.html
*** gcc-15-20251115/libstdc++-v3/doc/html/manual/generalized_numeric_operations.html	Sat Nov 15 22:33:51 2025
--- gcc-15-20251122/libstdc++-v3/doc/html/manual/generalized_numeric_operations.html	Sat Nov 22 22:33:09 2025
***************
*** 18,24 ****
     int  sum       = std::accumulate(ar,ar+50,0);
     int  sum_stuff = std::accumulate(ar,ar+50,someval);
     int  product   = std::accumulate(ar,ar+50,1,std::multiplies&lt;int&gt;());
!    </pre><p>The first call adds all the members of the array, using zero as an
        initial value for <code class="code">sum</code>.  The second does the same, but uses
        <code class="code">someval</code> as the starting value (thus, <code class="code">sum_stuff == sum +
        someval</code>).  The final call uses the second of the two signatures,
--- 18,24 ----
     int  sum       = std::accumulate(ar,ar+50,0);
     int  sum_stuff = std::accumulate(ar,ar+50,someval);
     int  product   = std::accumulate(ar,ar+50,1,std::multiplies&lt;int&gt;());
! </pre><p>The first call adds all the members of the array, using zero as an
        initial value for <code class="code">sum</code>.  The second does the same, but uses
        <code class="code">someval</code> as the starting value (thus, <code class="code">sum_stuff == sum +
        someval</code>).  The final call uses the second of the two signatures,
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/html/manual/io.html gcc-15-20251122/libstdc++-v3/doc/html/manual/io.html
*** gcc-15-20251115/libstdc++-v3/doc/html/manual/io.html	Sat Nov 15 22:33:51 2025
--- gcc-15-20251122/libstdc++-v3/doc/html/manual/io.html	Sat Nov 22 22:33:09 2025
***************
*** 33,39 ****
      };
  
      extern std::ostream&amp; operator&lt;&lt; (std::ostream&amp;, MyClass&amp;);
!    </pre><p><span class="emphasis"><em><code class="filename">&lt;ios&gt;</code></em></span>
        declares the base classes for the entire I/O stream hierarchy,
        <code class="classname">std::ios_base</code> and <code class="classname">std::basic_ios&lt;charT&gt;</code>,
        the counting types <span class="type">std::streamoff</span> and <span class="type">std::streamsize</span>,
--- 33,39 ----
      };
  
      extern std::ostream&amp; operator&lt;&lt; (std::ostream&amp;, MyClass&amp;);
! </pre><p><span class="emphasis"><em><code class="filename">&lt;ios&gt;</code></em></span>
        declares the base classes for the entire I/O stream hierarchy,
        <code class="classname">std::ios_base</code> and <code class="classname">std::basic_ios&lt;charT&gt;</code>,
        the counting types <span class="type">std::streamoff</span> and <span class="type">std::streamsize</span>,
***************
*** 74,80 ****
      {
         return os &lt;&lt; c.data1() &lt;&lt; c.data2();
      }
!    </pre><p>The <span class="type">std::istream</span> and <span class="type">std::ostream</span> classes
        are the abstract parents of
        the various concrete implementations.  If you are only using the
        interfaces, then you only need to use the appropriate interface header.
--- 74,80 ----
      {
         return os &lt;&lt; c.data1() &lt;&lt; c.data2();
      }
! </pre><p>The <span class="type">std::istream</span> and <span class="type">std::ostream</span> classes
        are the abstract parents of
        the various concrete implementations.  If you are only using the
        interfaces, then you only need to use the appropriate interface header.
***************
*** 111,117 ****
  	// this is explained below
  	<span class="emphasis"><em>static ios_base::Init __foo;</em></span>    // not its real name
      }
!    </pre><p>Now, the runtime penalty mentioned previously:  the global objects
        must be initialized before any of your own code uses them; this is
        guaranteed by the standard.  Like any other global object, they must
        be initialized once and only once.  This is typically done with a
--- 111,117 ----
  	// this is explained below
  	<span class="emphasis"><em>static ios_base::Init __foo;</em></span>    // not its real name
      }
! </pre><p>Now, the runtime penalty mentioned previously:  the global objects
        must be initialized before any of your own code uses them; this is
        guaranteed by the standard.  Like any other global object, they must
        be initialized once and only once.  This is typically done with a
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/html/manual/io_and_c.html gcc-15-20251122/libstdc++-v3/doc/html/manual/io_and_c.html
*** gcc-15-20251115/libstdc++-v3/doc/html/manual/io_and_c.html	Sat Nov 15 22:33:51 2025
--- gcc-15-20251122/libstdc++-v3/doc/html/manual/io_and_c.html	Sat Nov 22 22:33:09 2025
***************
*** 20,26 ****
       std::cout &lt;&lt; "Hel";
       std::printf ("lo, worl");
       std::cout &lt;&lt; "d!\n";
!    </pre><p>This must do what you think it does.
     </p><p>Alert members of the audience will immediately notice that buffering
        is going to make a hash of the output unless special steps are taken.
     </p><p>The special steps taken by libstdc++, at least for version 3.0,
--- 20,26 ----
       std::cout &lt;&lt; "Hel";
       std::printf ("lo, worl");
       std::cout &lt;&lt; "d!\n";
! </pre><p>This must do what you think it does.
     </p><p>Alert members of the audience will immediately notice that buffering
        is going to make a hash of the output unless special steps are taken.
     </p><p>The special steps taken by libstdc++, at least for version 3.0,
***************
*** 40,46 ****
       #include <span class="emphasis"><em>any of the I/O headers such as ios, iostream, etc</em></span>
  
       std::ios::sync_with_stdio(false);
!    </pre><p>You must do this before performing any I/O via the C++ stream objects.
        Once you call this, the C++ streams will operate independently of the
        (unused) C streams.  For GCC 3.x, this means that <code class="code">cout</code> and
        company will become fully buffered on their own.
--- 40,46 ----
       #include <span class="emphasis"><em>any of the I/O headers such as ios, iostream, etc</em></span>
  
       std::ios::sync_with_stdio(false);
! </pre><p>You must do this before performing any I/O via the C++ stream objects.
        Once you call this, the C++ streams will operate independently of the
        (unused) C streams.  For GCC 3.x, this means that <code class="code">cout</code> and
        company will become fully buffered on their own.
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/html/manual/iterators.html gcc-15-20251122/libstdc++-v3/doc/html/manual/iterators.html
*** gcc-15-20251115/libstdc++-v3/doc/html/manual/iterators.html	Sat Nov 15 22:33:51 2025
--- gcc-15-20251122/libstdc++-v3/doc/html/manual/iterators.html	Sat Nov 22 22:33:09 2025
*************** classes.
*** 90,96 ****
       |                       |           dereference 'end'.
     beginning                end
  
!    </pre><p>See?  Everything between the boundary markers is chapter of the array.
        Simple.
     </p><p>Now think back to your junior-high school algebra course, when you
        were learning how to draw graphs.  Remember that a graph terminating
--- 90,96 ----
       |                       |           dereference 'end'.
     beginning                end
  
! </pre><p>See?  Everything between the boundary markers is chapter of the array.
        Simple.
     </p><p>Now think back to your junior-high school algebra course, when you
        were learning how to draw graphs.  Remember that a graph terminating
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/html/manual/memory.html gcc-15-20251122/libstdc++-v3/doc/html/manual/memory.html
*** gcc-15-20251115/libstdc++-v3/doc/html/manual/memory.html	Sat Nov 15 22:33:51 2025
--- gcc-15-20251122/libstdc++-v3/doc/html/manual/memory.html	Sat Nov 22 22:33:09 2025
***************
*** 37,43 ****
         </p><pre class="programlisting">
  	 T*    allocate   (size_type n, const void* hint = 0);
  	 void  deallocate (T* p, size_type n);
!        </pre><p>
  	 The <code class="varname">n</code> arguments in both those
  	 functions is a <span class="emphasis"><em>count</em></span> of the number of
  	 <span class="type">T</span>'s to allocate space for, <span class="emphasis"><em>not their
--- 37,43 ----
         </p><pre class="programlisting">
  	 T*    allocate   (size_type n, const void* hint = 0);
  	 void  deallocate (T* p, size_type n);
! </pre><p>
  	 The <code class="varname">n</code> arguments in both those
  	 functions is a <span class="emphasis"><em>count</em></span> of the number of
  	 <span class="type">T</span>'s to allocate space for, <span class="emphasis"><em>not their
***************
*** 192,198 ****
        Likewise, a debugging form of whichever allocator is currently in use:
      </p><pre class="programlisting">
      std::deque &lt;int, __gnu_cxx::debug_allocator&lt;std::allocator&lt;int&gt; &gt; &gt;  debug_deque;
!       </pre></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.custom"></a>Custom Allocators</h4></div></div></div><p>
      Writing a portable C++ allocator would dictate that the interface
      would look much like the one specified for
      <code class="classname">allocator</code>. Additional member functions, but
--- 192,198 ----
        Likewise, a debugging form of whichever allocator is currently in use:
      </p><pre class="programlisting">
      std::deque &lt;int, __gnu_cxx::debug_allocator&lt;std::allocator&lt;int&gt; &gt; &gt;  debug_deque;
! </pre></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.custom"></a>Custom Allocators</h4></div></div></div><p>
      Writing a portable C++ allocator would dictate that the interface
      would look much like the one specified for
      <code class="classname">allocator</code>. Additional member functions, but
***************
*** 336,354 ****
  
  	function_taking_MyClass_pointer (ap.get());
      }
!    </pre><p>When an exception gets thrown, the instance of MyClass that's
        been created on the heap will be <code class="function">delete</code>'d as the stack is
        unwound past <code class="function">func()</code>.
     </p><p>Changing that code as follows is not <acronym class="acronym">AP</acronym>-friendly:
     </p><pre class="programlisting">
  	APMC  ap (new MyClass[22]);
!    </pre><p>You will get the same problems as you would without the use
        of <acronym class="acronym">AP</acronym>:
     </p><pre class="programlisting">
  	char*  array = new char[10];       // array new...
  	...
  	delete array;                      // ...but single-object delete
!    </pre><p>
       AP cannot tell whether the pointer you've passed at creation points
        to one or many things.  If it points to many things, you are about
        to die.  AP is trivial to write, however, so you could write your
--- 336,354 ----
  
  	function_taking_MyClass_pointer (ap.get());
      }
! </pre><p>When an exception gets thrown, the instance of MyClass that's
        been created on the heap will be <code class="function">delete</code>'d as the stack is
        unwound past <code class="function">func()</code>.
     </p><p>Changing that code as follows is not <acronym class="acronym">AP</acronym>-friendly:
     </p><pre class="programlisting">
  	APMC  ap (new MyClass[22]);
! </pre><p>You will get the same problems as you would without the use
        of <acronym class="acronym">AP</acronym>:
     </p><pre class="programlisting">
  	char*  array = new char[10];       // array new...
  	...
  	delete array;                      // ...but single-object delete
! </pre><p>
       AP cannot tell whether the pointer you've passed at creation points
        to one or many things.  If it points to many things, you are about
        to die.  AP is trivial to write, however, so you could write your
***************
*** 363,369 ****
      {
  	My_Type (My_Type const&amp;);
      };
!    </pre><p>
       Note the const keyword; the object being copied shouldn't change.
       The template class <code class="code">auto_ptr</code> (called AP here) does not
       meet this requirement.  Creating a new AP by copying an existing
--- 363,369 ----
      {
  	My_Type (My_Type const&amp;);
      };
! </pre><p>
       Note the const keyword; the object being copied shouldn't change.
       The template class <code class="code">auto_ptr</code> (called AP here) does not
       meet this requirement.  Creating a new AP by copying an existing
***************
*** 388,394 ****
      {
  	std::vector&lt; std::auto_ptr&lt;int&gt; &gt;   vec_ap_int;
      }
!    </pre><p>
  Should you try this with the checks enabled, you will see an error.
     </p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="std.util.memory.shared_ptr"></a>shared_ptr</h3></div></div></div><p>
  The shared_ptr class template stores a pointer, usually obtained via new,
--- 388,394 ----
      {
  	std::vector&lt; std::auto_ptr&lt;int&gt; &gt;   vec_ap_int;
      }
! </pre><p>
  Should you try this with the checks enabled, you will see an error.
     </p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="std.util.memory.shared_ptr"></a>shared_ptr</h3></div></div></div><p>
  The shared_ptr class template stores a pointer, usually obtained via new,
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/html/manual/pairs.html gcc-15-20251122/libstdc++-v3/doc/html/manual/pairs.html
*** gcc-15-20251115/libstdc++-v3/doc/html/manual/pairs.html	Sat Nov 15 22:33:51 2025
--- gcc-15-20251122/libstdc++-v3/doc/html/manual/pairs.html	Sat Nov 22 22:33:09 2025
***************
*** 11,22 ****
        with its respective default ctor.  The other simple ctor,
     </p><pre class="programlisting">
      pair (const T1&amp; x, const T2&amp; y);
!    </pre><p>does what you think it does, <code class="code">first</code> getting <code class="code">x</code>
        and <code class="code">second</code> getting <code class="code">y</code>.
     </p><p>There is a constructor template for copying pairs of other types:
     </p><pre class="programlisting">
      template &lt;class U, class V&gt; pair (const pair&lt;U,V&gt;&amp; p);
!    </pre><p>The compiler will convert as necessary from U to T1 and from
        V to T2 in order to perform the respective initializations.
     </p><p>The comparison operators are done for you.  Equality
        of two <code class="code">pair&lt;T1,T2&gt;</code>s is defined as both <code class="code">first</code>
--- 11,22 ----
        with its respective default ctor.  The other simple ctor,
     </p><pre class="programlisting">
      pair (const T1&amp; x, const T2&amp; y);
! </pre><p>does what you think it does, <code class="code">first</code> getting <code class="code">x</code>
        and <code class="code">second</code> getting <code class="code">y</code>.
     </p><p>There is a constructor template for copying pairs of other types:
     </p><pre class="programlisting">
      template &lt;class U, class V&gt; pair (const pair&lt;U,V&gt;&amp; p);
! </pre><p>The compiler will convert as necessary from U to T1 and from
        V to T2 in order to perform the respective initializations.
     </p><p>The comparison operators are done for you.  Equality
        of two <code class="code">pair&lt;T1,T2&gt;</code>s is defined as both <code class="code">first</code>
***************
*** 30,43 ****
     </p><pre class="programlisting">
      x.first  &lt;  y.first  ||
  	( !(y.first  &lt;  x.first)  &amp;&amp;  x.second  &lt;  y.second )
!    </pre><p>The other operators are not defined using the <code class="code">rel_ops</code>
        functions above, but their semantics are the same.
     </p><p>Finally, there is a template function called <code class="function">make_pair</code>
        that takes two references-to-const objects and returns an
        instance of a pair instantiated on their respective types:
     </p><pre class="programlisting">
      pair&lt;int,MyClass&gt; p = make_pair(4,myobject);
!    </pre></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="utilities.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="utilities.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="memory.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 6. 
    Utilities
    
   </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Memory</td></tr></table></div></body></html>
\ No newline at end of file
--- 30,43 ----
     </p><pre class="programlisting">
      x.first  &lt;  y.first  ||
  	( !(y.first  &lt;  x.first)  &amp;&amp;  x.second  &lt;  y.second )
! </pre><p>The other operators are not defined using the <code class="code">rel_ops</code>
        functions above, but their semantics are the same.
     </p><p>Finally, there is a template function called <code class="function">make_pair</code>
        that takes two references-to-const objects and returns an
        instance of a pair instantiated on their respective types:
     </p><pre class="programlisting">
      pair&lt;int,MyClass&gt; p = make_pair(4,myobject);
! </pre></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="utilities.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="utilities.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="memory.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 6. 
    Utilities
    
   </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Memory</td></tr></table></div></body></html>
\ No newline at end of file
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/html/manual/policy_data_structures_design.html gcc-15-20251122/libstdc++-v3/doc/html/manual/policy_data_structures_design.html
*** gcc-15-20251115/libstdc++-v3/doc/html/manual/policy_data_structures_design.html	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/doc/html/manual/policy_data_structures_design.html	Sat Nov 22 22:33:09 2025
***************
*** 387,393 ****
  	{
  	...
  	}
!       </pre><p>
  	then one needs to address the following questions in the body
  	of <code class="function">some_op_sequence</code>:
        </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
--- 387,393 ----
  	{
  	...
  	}
! </pre><p>
  	then one needs to address the following questions in the body
  	of <code class="function">some_op_sequence</code>:
        </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/html/manual/setup.html gcc-15-20251122/libstdc++-v3/doc/html/manual/setup.html
*** gcc-15-20251115/libstdc++-v3/doc/html/manual/setup.html	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/doc/html/manual/setup.html	Sat Nov 22 22:33:09 2025
***************
*** 16,22 ****
     make
     make check
     make install
!    </pre><p>
       Each step is described in more detail in the following sections.
     </p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.setup.prereq"></a>Prerequisites</h2></div></div></div><p>
    Because libstdc++ is part of GCC, the primary source for
--- 16,22 ----
     make
     make check
     make install
! </pre><p>
       Each step is described in more detail in the following sections.
     </p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.setup.prereq"></a>Prerequisites</h2></div></div></div><p>
    Because libstdc++ is part of GCC, the primary source for
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/html/manual/streambufs.html gcc-15-20251122/libstdc++-v3/doc/html/manual/streambufs.html
*** gcc-15-20251115/libstdc++-v3/doc/html/manual/streambufs.html	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/doc/html/manual/streambufs.html	Sat Nov 22 22:33:09 2025
***************
*** 52,58 ****
  	    &lt;&lt; std::hex &lt;&lt; 31 &lt;&lt; std::endl;
  	return 0;
      }
!    </pre><p>Try it yourself!  More examples can be found in 3.1.x code, in
        <code class="filename">include/ext/*_filebuf.h</code>, and in the article
        <a class="link" href="http://gabisoft.free.fr/articles/fltrsbf1.html" target="_top">Filtering
        Streambufs</a>
--- 52,58 ----
  	    &lt;&lt; std::hex &lt;&lt; 31 &lt;&lt; std::endl;
  	return 0;
      }
! </pre><p>Try it yourself!  More examples can be found in 3.1.x code, in
        <code class="filename">include/ext/*_filebuf.h</code>, and in the article
        <a class="link" href="http://gabisoft.free.fr/articles/fltrsbf1.html" target="_top">Filtering
        Streambufs</a>
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/html/manual/strings.html gcc-15-20251122/libstdc++-v3/doc/html/manual/strings.html
*** gcc-15-20251115/libstdc++-v3/doc/html/manual/strings.html	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/doc/html/manual/strings.html	Sat Nov 22 22:33:09 2025
***************
*** 47,53 ****
       capital_s.resize(s.size());
       std::transform (s.begin(), s.end(), capital_s.begin(), ToUpper());
     }
!    </pre><p>
       <span class="emphasis"><em>Note</em></span> that these calls all
        involve the global C locale through the use of the C functions
        <code class="code">toupper</code>/<code class="code">tolower</code>.
--- 47,53 ----
       capital_s.resize(s.size());
       std::transform (s.begin(), s.end(), capital_s.begin(), ToUpper());
     }
! </pre><p>
       <span class="emphasis"><em>Note</em></span> that these calls all
        involve the global C locale through the use of the C functions
        <code class="code">toupper</code>/<code class="code">tolower</code>.
***************
*** 82,88 ****
     </p><pre class="programlisting">
       std::transform (s.begin(), s.end(), capital_s.begin(),
                       [](unsigned char c) { return std::tolower(c); });
!    </pre><p>Another common operation is trimming off excess whitespace.  Much
        like transformations, this task is trivial with the use of string's
        <code class="code">find</code> family.  These examples are broken into multiple
        statements for readability:
--- 82,88 ----
     </p><pre class="programlisting">
       std::transform (s.begin(), s.end(), capital_s.begin(),
                       [](unsigned char c) { return std::tolower(c); });
! </pre><p>Another common operation is trimming off excess whitespace.  Much
        like transformations, this task is trivial with the use of string's
        <code class="code">find</code> family.  These examples are broken into multiple
        statements for readability:
*************** stringtok(Container &amp;container, stri
*** 273,279 ****
        to GCC 3.4 the following alternative can be used instead
     </p><pre class="programlisting">
        std::string(str.data(), str.size()).swap(str);
!    </pre><p>This is similar to the idiom for reducing
        a <code class="code">vector</code>'s memory usage
        (see <a class="link" href="../faq.html#faq.size_equals_capacity" title="7.8.">this FAQ
        entry</a>) but the regular copy constructor cannot be used
--- 273,279 ----
        to GCC 3.4 the following alternative can be used instead
     </p><pre class="programlisting">
        std::string(str.data(), str.size()).swap(str);
! </pre><p>This is similar to the idiom for reducing
        a <code class="code">vector</code>'s memory usage
        (see <a class="link" href="../faq.html#faq.size_equals_capacity" title="7.8.">this FAQ
        entry</a>) but the regular copy constructor cannot be used
*************** stringtok(Container &amp;container, stri
*** 347,353 ****
  
     If you replace CString with string in the above function, the
     performance is O(n).
!    </pre><p>Joe Buck also pointed out some other things to keep in mind when
        comparing CString and the Standard string class:
     </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>CString permits access to its internal representation; coders
  	     who exploited that may have problems moving to <code class="code">string</code>.
--- 347,353 ----
  
     If you replace CString with string in the above function, the
     performance is O(n).
! </pre><p>Joe Buck also pointed out some other things to keep in mind when
        comparing CString and the Standard string class:
     </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>CString permits access to its internal representation; coders
  	     who exploited that may have problems moving to <code class="code">string</code>.
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/html/manual/support.html gcc-15-20251122/libstdc++-v3/doc/html/manual/support.html
*** gcc-15-20251115/libstdc++-v3/doc/html/manual/support.html	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/doc/html/manual/support.html	Sat Nov 22 22:33:09 2025
***************
*** 98,104 ****
         static const bool tinyness_before;
         static const float_round_style round_style;
       };
!    </pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="std.support.types.null"></a>NULL</h3></div></div></div><p>
       The only change that might affect people is the type of
       <code class="constant">NULL</code>: while it is required to be a macro,
       the definition of that macro is <span class="emphasis"><em>not</em></span> allowed
--- 98,104 ----
         static const bool tinyness_before;
         static const float_round_style round_style;
       };
! </pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="std.support.types.null"></a>NULL</h3></div></div></div><p>
       The only change that might affect people is the type of
       <code class="constant">NULL</code>: while it is required to be a macro,
       the definition of that macro is <span class="emphasis"><em>not</em></span> allowed
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/html/manual/termination.html gcc-15-20251122/libstdc++-v3/doc/html/manual/termination.html
*** gcc-15-20251115/libstdc++-v3/doc/html/manual/termination.html	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/doc/html/manual/termination.html	Sat Nov 22 22:33:09 2025
*************** int main(int argc)
*** 121,127 ****
       <code class="filename">&lt;cstdlib&gt;</code>, and call
     </p><pre class="programlisting">
       std::set_terminate(std::abort);
!    </pre><p>
       After this, all calls to <code class="function">terminate</code> will use
       <code class="function">abort</code> as the terminate handler.
     </p><p>
--- 121,127 ----
       <code class="filename">&lt;cstdlib&gt;</code>, and call
     </p><pre class="programlisting">
       std::set_terminate(std::abort);
! </pre><p>
       After this, all calls to <code class="function">terminate</code> will use
       <code class="function">abort</code> as the terminate handler.
     </p><p>
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/html/manual/test.html gcc-15-20251122/libstdc++-v3/doc/html/manual/test.html
*** gcc-15-20251115/libstdc++-v3/doc/html/manual/test.html	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/doc/html/manual/test.html	Sat Nov 22 22:33:09 2025
*************** regressions, ABI, and performance.
*** 17,23 ****
    of the C++ standard (ISO 14882) are files within the following
    directories:
  
!    </p><pre class="programlisting">
      17_intro
      18_support
      19_diagnostics
--- 17,23 ----
    of the C++ standard (ISO 14882) are files within the following
    directories:
  
! </p><pre class="programlisting">
      17_intro
      18_support
      19_diagnostics
*************** regressions, ABI, and performance.
*** 32,38 ****
      28_regex
      29_atomics
      30_threads
!    </pre><p>
  </p><p>
        In addition, the following directories include test files:
  
--- 32,38 ----
      28_regex
      29_atomics
      30_threads
! </pre><p>
  </p><p>
        In addition, the following directories include test files:
  
*************** regressions, ABI, and performance.
*** 83,89 ****
        This test case expects some kind of interactive input in order
        to finish or pass. At the moment, the interactive tests are not
        run by default. Instead, they are run by hand, like:
!       <pre class="programlisting">
  g++ 27_io/objects/char/3_xin.cc
  cat 27_io/objects/char/3_xin.in | a.out</pre></dd><dt><span class="term"><code class="filename">.in</code></span></dt><dd>
        This file contains the expected input for the corresponding <span class="emphasis"><em>
--- 83,89 ----
        This test case expects some kind of interactive input in order
        to finish or pass. At the moment, the interactive tests are not
        run by default. Instead, they are run by hand, like:
! <pre class="programlisting">
  g++ 27_io/objects/char/3_xin.cc
  cat 27_io/objects/char/3_xin.in | a.out</pre></dd><dt><span class="term"><code class="filename">.in</code></span></dt><dd>
        This file contains the expected input for the corresponding <span class="emphasis"><em>
*************** cat 27_io/objects/char/3_xin.in | a.out<
*** 198,204 ****
        Also, here is an example of how to run the libstdc++ testsuite
        for a multilibed build directory with different ABI settings:
  
!  </p><pre class="programlisting">
      make check-target-libstdc++-v3 RUNTESTFLAGS='--target_board \"unix{-mabi=32,,-mabi=64}\"'
  </pre><p>
      </p><p>
--- 198,204 ----
        Also, here is an example of how to run the libstdc++ testsuite
        for a multilibed build directory with different ABI settings:
  
! </p><pre class="programlisting">
      make check-target-libstdc++-v3 RUNTESTFLAGS='--target_board \"unix{-mabi=32,,-mabi=64}\"'
  </pre><p>
      </p><p>
*************** cat 27_io/objects/char/3_xin.in | a.out<
*** 210,218 ****
        run programs on, e.g. <code class="code">x86_64-pc-linux-gnu</code>, as a few tests
        still execute the code they build.  Here's an example of how to run the
        testsuite with libstdc++ in freestanding mode:
!       </p><pre class="programlisting">
      make check-target-libstdc++-v3 RUNTESTFLAGS='--target_board=unix/-ffreestanding'
!       </pre><p>
      </p><p>
        You can run the tests with a compiler and library that have
        already been installed.  Make sure that the compiler (e.g.,
--- 210,218 ----
        run programs on, e.g. <code class="code">x86_64-pc-linux-gnu</code>, as a few tests
        still execute the code they build.  Here's an example of how to run the
        testsuite with libstdc++ in freestanding mode:
! </p><pre class="programlisting">
      make check-target-libstdc++-v3 RUNTESTFLAGS='--target_board=unix/-ffreestanding'
! </pre><p>
      </p><p>
        You can run the tests with a compiler and library that have
        already been installed.  Make sure that the compiler (e.g.,
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/html/manual/unordered_associative.html gcc-15-20251122/libstdc++-v3/doc/html/manual/unordered_associative.html
*** gcc-15-20251115/libstdc++-v3/doc/html/manual/unordered_associative.html	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/doc/html/manual/unordered_associative.html	Sat Nov 22 22:33:09 2025
***************
*** 90,93 ****
            struct __is_fast_hash&lt;hasher&gt; : std::false_type
            { };
        }
!     </pre></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="associative.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="containers.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="containers_and_c.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Associative </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Interacting with C</td></tr></table></div></body></html>
\ No newline at end of file
--- 90,93 ----
            struct __is_fast_hash&lt;hasher&gt; : std::false_type
            { };
        }
! </pre></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="associative.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="containers.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="containers_and_c.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Associative </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Interacting with C</td></tr></table></div></body></html>
\ No newline at end of file
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/html/manual/using_concurrency.html gcc-15-20251122/libstdc++-v3/doc/html/manual/using_concurrency.html
*** gcc-15-20251115/libstdc++-v3/doc/html/manual/using_concurrency.html	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/doc/html/manual/using_concurrency.html	Sat Nov 22 22:33:09 2025
*************** gcc version 4.1.2 20070925 (Red Hat 4.1.
*** 166,172 ****
        t1.join();
        t2.join();
      }
!       </pre><p>For further details of the C++11 memory model see Hans-J. Boehm's
        <a class="link" href="https://www.hboehm.info/c++mm/" target="_top">Threads
        and memory model for C++</a> pages, particularly the <a class="link" href="https://www.hboehm.info/c++mm/threadsintro.html" target="_top">introduction</a>
        and <a class="link" href="https://www.hboehm.info/c++mm/user-faq.html" target="_top">FAQ</a>.
--- 166,172 ----
        t1.join();
        t2.join();
      }
! </pre><p>For further details of the C++11 memory model see Hans-J. Boehm's
        <a class="link" href="https://www.hboehm.info/c++mm/" target="_top">Threads
        and memory model for C++</a> pages, particularly the <a class="link" href="https://www.hboehm.info/c++mm/threadsintro.html" target="_top">introduction</a>
        and <a class="link" href="https://www.hboehm.info/c++mm/user-faq.html" target="_top">FAQ</a>.
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/xml/faq.xml gcc-15-20251122/libstdc++-v3/doc/xml/faq.xml
*** gcc-15-20251115/libstdc++-v3/doc/xml/faq.xml	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/doc/xml/faq.xml	Sat Nov 22 22:33:09 2025
***************
*** 813,819 ****
      Executing a sequence like this would fail:
      </para>
  
!     <programlisting>
      #include &lt;fstream&gt;
      ...
      std::fstream  fs("a_file");
--- 813,819 ----
      Executing a sequence like this would fail:
      </para>
  
! <programlisting>
      #include &lt;fstream&gt;
      ...
      std::fstream  fs("a_file");
***************
*** 822,828 ****
      // .
      fs.close();
      fs.open("a_new_file");
!     </programlisting>
  
      <para>
      All operations on the re-opened <varname>fs</varname> would fail, or at
--- 822,828 ----
      // .
      fs.close();
      fs.open("a_new_file");
! </programlisting>
  
      <para>
      All operations on the re-opened <varname>fs</varname> would fail, or at
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/xml/manual/abi.xml gcc-15-20251122/libstdc++-v3/doc/xml/manual/abi.xml
*** gcc-15-20251115/libstdc++-v3/doc/xml/manual/abi.xml	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/doc/xml/manual/abi.xml	Sat Nov 22 22:33:09 2025
*************** compatible.
*** 282,287 ****
--- 282,288 ----
      <listitem><para>GCC 13.1.0: libstdc++.so.6.0.31</para></listitem>
      <listitem><para>GCC 13.2.0: libstdc++.so.6.0.32</para></listitem>
      <listitem><para>GCC 14.1.0: libstdc++.so.6.0.33</para></listitem>
+     <listitem><para>GCC 15.1.0: libstdc++.so.6.0.34</para></listitem>
      </itemizedlist>
      <para>
        Note 1: Error should be libstdc++.so.3.0.3.
*************** compatible.
*** 361,366 ****
--- 362,368 ----
      <listitem><para>GCC 13.1.0: GLIBCXX_3.4.31, CXXABI_1.3.14</para></listitem>
      <listitem><para>GCC 13.2.0: GLIBCXX_3.4.32, CXXABI_1.3.14</para></listitem>
      <listitem><para>GCC 14.1.0: GLIBCXX_3.4.33, CXXABI_1.3.15</para></listitem>
+     <listitem><para>GCC 15.1.0: GLIBCXX_3.4.34, CXXABI_1.3.15 (CXXABI_1.3.16 for RISC-V only)</para></listitem>
  
      </itemizedlist>
      </listitem>
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/xml/manual/allocator.xml gcc-15-20251122/libstdc++-v3/doc/xml/manual/allocator.xml
*** gcc-15-20251115/libstdc++-v3/doc/xml/manual/allocator.xml	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/doc/xml/manual/allocator.xml	Sat Nov 22 22:33:09 2025
***************
*** 52,61 ****
  	 typedefs, member functions, etc), but the two which concern us most
  	 are:
         </para>
!        <programlisting>
  	 T*    allocate   (size_type n, const void* hint = 0);
  	 void  deallocate (T* p, size_type n);
!        </programlisting>
  
         <para>
  	 The <varname>n</varname> arguments in both those
--- 52,61 ----
  	 typedefs, member functions, etc), but the two which concern us most
  	 are:
         </para>
! <programlisting>
  	 T*    allocate   (size_type n, const void* hint = 0);
  	 void  deallocate (T* p, size_type n);
! </programlisting>
  
         <para>
  	 The <varname>n</varname> arguments in both those
***************
*** 291,304 ****
        (but non-portable) method of specifying that only <function>malloc</function> or <function>free</function>
        should be used instead of the default node allocator is:
     </para>
!    <programlisting>
      std::list &lt;int, __gnu_cxx::malloc_allocator&lt;int&gt; &gt;  malloc_list;</programlisting>
      <para>
        Likewise, a debugging form of whichever allocator is currently in use:
      </para>
!       <programlisting>
      std::deque &lt;int, __gnu_cxx::debug_allocator&lt;std::allocator&lt;int&gt; &gt; &gt;  debug_deque;
!       </programlisting>
  </section>
  
  <section xml:id="allocator.custom"><info><title>Custom Allocators</title></info>
--- 291,304 ----
        (but non-portable) method of specifying that only <function>malloc</function> or <function>free</function>
        should be used instead of the default node allocator is:
     </para>
! <programlisting>
      std::list &lt;int, __gnu_cxx::malloc_allocator&lt;int&gt; &gt;  malloc_list;</programlisting>
      <para>
        Likewise, a debugging form of whichever allocator is currently in use:
      </para>
! <programlisting>
      std::deque &lt;int, __gnu_cxx::debug_allocator&lt;std::allocator&lt;int&gt; &gt; &gt;  debug_deque;
! </programlisting>
  </section>
  
  <section xml:id="allocator.custom"><info><title>Custom Allocators</title></info>
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/xml/manual/auto_ptr.xml gcc-15-20251122/libstdc++-v3/doc/xml/manual/auto_ptr.xml
*** gcc-15-20251115/libstdc++-v3/doc/xml/manual/auto_ptr.xml	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/doc/xml/manual/auto_ptr.xml	Sat Nov 22 22:33:09 2025
***************
*** 36,42 ****
       presence of exceptions.  That's <emphasis>all</emphasis>.  This
       code is AP-friendly:
     </para>
!    <programlisting>
      // Not a recommend naming scheme, but good for web-based FAQs.
      typedef std::auto_ptr&lt;MyClass&gt;  APMC;
  
--- 36,42 ----
       presence of exceptions.  That's <emphasis>all</emphasis>.  This
       code is AP-friendly:
     </para>
! <programlisting>
      // Not a recommend naming scheme, but good for web-based FAQs.
      typedef std::auto_ptr&lt;MyClass&gt;  APMC;
  
***************
*** 51,74 ****
  
  	function_taking_MyClass_pointer (ap.get());
      }
!    </programlisting>
     <para>When an exception gets thrown, the instance of MyClass that's
        been created on the heap will be <function>delete</function>'d as the stack is
        unwound past <function>func()</function>.
     </para>
     <para>Changing that code as follows is not <acronym>AP</acronym>-friendly:
     </para>
!    <programlisting>
  	APMC  ap (new MyClass[22]);
!    </programlisting>
     <para>You will get the same problems as you would without the use
        of <acronym>AP</acronym>:
     </para>
!    <programlisting>
  	char*  array = new char[10];       // array new...
  	...
  	delete array;                      // ...but single-object delete
!    </programlisting>
     <para>
       AP cannot tell whether the pointer you've passed at creation points
        to one or many things.  If it points to many things, you are about
--- 51,74 ----
  
  	function_taking_MyClass_pointer (ap.get());
      }
! </programlisting>
     <para>When an exception gets thrown, the instance of MyClass that's
        been created on the heap will be <function>delete</function>'d as the stack is
        unwound past <function>func()</function>.
     </para>
     <para>Changing that code as follows is not <acronym>AP</acronym>-friendly:
     </para>
! <programlisting>
  	APMC  ap (new MyClass[22]);
! </programlisting>
     <para>You will get the same problems as you would without the use
        of <acronym>AP</acronym>:
     </para>
! <programlisting>
  	char*  array = new char[10];       // array new...
  	...
  	delete array;                      // ...but single-object delete
! </programlisting>
     <para>
       AP cannot tell whether the pointer you've passed at creation points
        to one or many things.  If it points to many things, you are about
***************
*** 87,98 ****
        described in the standard library require their contained types
        to have, among other things, a copy constructor like this:
    </para>
!    <programlisting>
      struct My_Type
      {
  	My_Type (My_Type const&amp;);
      };
!    </programlisting>
     <para>
       Note the const keyword; the object being copied shouldn't change.
       The template class <code>auto_ptr</code> (called AP here) does not
--- 87,98 ----
        described in the standard library require their contained types
        to have, among other things, a copy constructor like this:
    </para>
! <programlisting>
      struct My_Type
      {
  	My_Type (My_Type const&amp;);
      };
! </programlisting>
     <para>
       Note the const keyword; the object being copied shouldn't change.
       The template class <code>auto_ptr</code> (called AP here) does not
***************
*** 113,119 ****
        in to this implementation will issue an error if you try to
        compile code like this:
     </para>
!    <programlisting>
      #include &lt;vector&gt;
      #include &lt;memory&gt;
  
--- 113,119 ----
        in to this implementation will issue an error if you try to
        compile code like this:
     </para>
! <programlisting>
      #include &lt;vector&gt;
      #include &lt;memory&gt;
  
***************
*** 121,127 ****
      {
  	std::vector&lt; std::auto_ptr&lt;int&gt; &gt;   vec_ap_int;
      }
!    </programlisting>
     <para>
  Should you try this with the checks enabled, you will see an error.
     </para>
--- 121,127 ----
      {
  	std::vector&lt; std::auto_ptr&lt;int&gt; &gt;   vec_ap_int;
      }
! </programlisting>
     <para>
  Should you try this with the checks enabled, you will see an error.
     </para>
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/xml/manual/backwards_compatibility.xml gcc-15-20251122/libstdc++-v3/doc/xml/manual/backwards_compatibility.xml
*** gcc-15-20251115/libstdc++-v3/doc/xml/manual/backwards_compatibility.xml	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/doc/xml/manual/backwards_compatibility.xml	Sat Nov 22 22:33:09 2025
*************** and  <filename class="headerfile">&lt;un
*** 127,133 ****
  	 namespace. For maximum portability, consider defining a namespace
  	 alias to use to talk about extensions, e.g.:
        </para>
!       <programlisting>
        #ifdef __GNUC__
        #if __GNUC__ &lt; 3
  	#include &lt;hash_map.h&gt;
--- 127,133 ----
  	 namespace. For maximum portability, consider defining a namespace
  	 alias to use to talk about extensions, e.g.:
        </para>
! <programlisting>
        #ifdef __GNUC__
        #if __GNUC__ &lt; 3
  	#include &lt;hash_map.h&gt;
*************** and  <filename class="headerfile">&lt;un
*** 145,151 ****
        #endif
  
        extension::hash_map&lt;int,int&gt; my_map;
!       </programlisting>
        <para>This is a bit cleaner than defining typedefs for all the
  	 instantiations you might need.
        </para>
--- 145,151 ----
        #endif
  
        extension::hash_map&lt;int,int&gt; my_map;
! </programlisting>
        <para>This is a bit cleaner than defining typedefs for all the
  	 instantiations you might need.
        </para>
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/xml/manual/build_hacking.xml gcc-15-20251122/libstdc++-v3/doc/xml/manual/build_hacking.xml
*** gcc-15-20251115/libstdc++-v3/doc/xml/manual/build_hacking.xml	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/doc/xml/manual/build_hacking.xml	Sat Nov 22 22:33:09 2025
*************** in the build directory starts the build
*** 173,191 ****
      we can arrange the contents however we like.  As of this writing,
      <filename>acinclude.m4</filename> is arranged as follows:
    </para>
!   <programlisting>
      GLIBCXX_CHECK_HOST
      GLIBCXX_TOPREL_CONFIGURE
      GLIBCXX_CONFIGURE
!   </programlisting>
    <para>
      All the major variable "discovery" is done here.
      <varname>CXX</varname>, multilibs,
      etc.
    </para>
!   <programlisting>
      fragments included from elsewhere
!   </programlisting>
    <para>
      Right now, "fragments" == "the math/linkage bits".
    </para>
--- 173,191 ----
      we can arrange the contents however we like.  As of this writing,
      <filename>acinclude.m4</filename> is arranged as follows:
    </para>
! <programlisting>
      GLIBCXX_CHECK_HOST
      GLIBCXX_TOPREL_CONFIGURE
      GLIBCXX_CONFIGURE
! </programlisting>
    <para>
      All the major variable "discovery" is done here.
      <varname>CXX</varname>, multilibs,
      etc.
    </para>
! <programlisting>
      fragments included from elsewhere
! </programlisting>
    <para>
      Right now, "fragments" == "the math/linkage bits".
    </para>
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/xml/manual/containers.xml gcc-15-20251122/libstdc++-v3/doc/xml/manual/containers.xml
*** gcc-15-20251115/libstdc++-v3/doc/xml/manual/containers.xml	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/doc/xml/manual/containers.xml	Sat Nov 22 22:33:09 2025
***************
*** 86,94 ****
       Section [23.1.2], Table 69, of the C++ standard lists this
       function for all of the associative containers (map, set, etc):
     </para>
!    <programlisting>
        a.insert(p,t);
!    </programlisting>
     <para>
       where 'p' is an iterator into the container 'a', and 't' is the
       item to insert.  The standard says that <quote><code>t</code> is
--- 86,94 ----
       Section [23.1.2], Table 69, of the C++ standard lists this
       function for all of the associative containers (map, set, etc):
     </para>
! <programlisting>
        a.insert(p,t);
! </programlisting>
     <para>
       where 'p' is an iterator into the container 'a', and 't' is the
       item to insert.  The standard says that <quote><code>t</code> is
***************
*** 196,202 ****
  	No, you cannot write code of the form
        </para>
        <!-- Careful, the leading spaces in PRE show up directly. -->
!    <programlisting>
        #include &lt;bitset&gt;
  
        void foo (size_t n)
--- 196,202 ----
  	No, you cannot write code of the form
        </para>
        <!-- Careful, the leading spaces in PRE show up directly. -->
! <programlisting>
        #include &lt;bitset&gt;
  
        void foo (size_t n)
***************
*** 204,210 ****
  	  std::bitset&lt;n&gt;   bits;
  	  ....
        }
!    </programlisting>
     <para>
       because <code>n</code> must be known at compile time.  Your
       compiler is correct; it is not a bug.  That's the way templates
--- 204,210 ----
  	  std::bitset&lt;n&gt;   bits;
  	  ....
        }
! </programlisting>
     <para>
       because <code>n</code> must be known at compile time.  Your
       compiler is correct; it is not a bug.  That's the way templates
***************
*** 314,330 ****
       For now you can simply make a temporary string object using the
       constructor expression:
     </para>
!    <programlisting>
        std::bitset&lt;5&gt; b ( std::string("10110") );
!    </programlisting>
  
     <para>
       instead of
     </para>
  
!     <programlisting>
        std::bitset&lt;5&gt; b ( "10110" );    // invalid
!     </programlisting>
      </section>
    </section>
  
--- 314,330 ----
       For now you can simply make a temporary string object using the
       constructor expression:
     </para>
! <programlisting>
        std::bitset&lt;5&gt; b ( std::string("10110") );
! </programlisting>
  
     <para>
       instead of
     </para>
  
! <programlisting>
        std::bitset&lt;5&gt; b ( "10110" );    // invalid
! </programlisting>
      </section>
    </section>
  
***************
*** 425,431 ****
        cached.
        The trait can be specialized for user-defined hash functions like so:
      </para>
!     <programlisting>
        #include &lt;unordered_set&gt;
  
        struct hasher
--- 425,431 ----
        cached.
        The trait can be specialized for user-defined hash functions like so:
      </para>
! <programlisting>
        #include &lt;unordered_set&gt;
  
        struct hasher
***************
*** 443,449 ****
            struct __is_fast_hash&lt;hasher&gt; : std::false_type
            { };
        }
!     </programlisting>
    </section>
  </section>
  
--- 443,449 ----
            struct __is_fast_hash&lt;hasher&gt; : std::false_type
            { };
        }
! </programlisting>
    </section>
  </section>
  
***************
*** 492,500 ****
     <para>
       The result is that if all your algorithm calls look like
     </para>
!    <programlisting>
     std::transform(beginof(foo), endof(foo), beginof(foo), SomeFunction);
!    </programlisting>
     <para>
       then the type of foo can change from an array of ints to a vector
       of ints to a deque of ints and back again, without ever changing
--- 492,500 ----
     <para>
       The result is that if all your algorithm calls look like
     </para>
! <programlisting>
     std::transform(beginof(foo), endof(foo), beginof(foo), SomeFunction);
! </programlisting>
     <para>
       then the type of foo can change from an array of ints to a vector
       of ints to a deque of ints and back again, without ever changing
*************** template&lt;typename T, unsigned int sz&
*** 545,553 ****
     <para>
       Second, the line
     </para>
!    <programlisting>
      inline unsigned int lengthof (T (&amp;)[sz]) { return sz; }
!    </programlisting>
     <para>
       looks just weird!  Hint:  unused parameters can be left nameless.
     </para>
--- 545,553 ----
     <para>
       Second, the line
     </para>
! <programlisting>
      inline unsigned int lengthof (T (&amp;)[sz]) { return sz; }
! </programlisting>
     <para>
       looks just weird!  Hint:  unused parameters can be left nameless.
     </para>
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/xml/manual/diagnostics.xml gcc-15-20251122/libstdc++-v3/doc/xml/manual/diagnostics.xml
*** gcc-15-20251115/libstdc++-v3/doc/xml/manual/diagnostics.xml	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/doc/xml/manual/diagnostics.xml	Sat Nov 22 22:33:09 2025
***************
*** 64,70 ****
      place).  It's good to remember that you can add your own data to
      these exceptions when extending the hierarchy:
     </para>
!    <programlisting>
     struct My_Exception : public std::runtime_error
     {
       public:
--- 64,70 ----
      place).  It's good to remember that you can add your own data to
      these exceptions when extending the hierarchy:
     </para>
! <programlisting>
     struct My_Exception : public std::runtime_error
     {
       public:
***************
*** 76,82 ****
         int    e;
         DBID   id;     // some user-defined type
     };
!    </programlisting>
  
    </section>
  </section>
--- 76,82 ----
         int    e;
         DBID   id;     // some user-defined type
     };
! </programlisting>
  
    </section>
  </section>
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/xml/manual/extensions.xml gcc-15-20251122/libstdc++-v3/doc/xml/manual/extensions.xml
*** gcc-15-20251115/libstdc++-v3/doc/xml/manual/extensions.xml	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/doc/xml/manual/extensions.xml	Sat Nov 22 22:33:09 2025
*************** extensions, be aware of two things:
*** 161,173 ****
     do no range-checking.  If we call them member functions of an instantiation
     of <code>bitset&lt;N&gt;</code>, then their names and signatures are:
  </para>
!    <programlisting>
     bitset&lt;N&gt;&amp;   _Unchecked_set   (size_t pos);
     bitset&lt;N&gt;&amp;   _Unchecked_set   (size_t pos, int val);
     bitset&lt;N&gt;&amp;   _Unchecked_reset (size_t pos);
     bitset&lt;N&gt;&amp;   _Unchecked_flip  (size_t pos);
     bool         _Unchecked_test  (size_t pos);
!    </programlisting>
     <para>Note that these may in fact be removed in the future, although we have
     no present plans to do so (and there doesn't seem to be any immediate
     reason to).
--- 161,173 ----
     do no range-checking.  If we call them member functions of an instantiation
     of <code>bitset&lt;N&gt;</code>, then their names and signatures are:
  </para>
! <programlisting>
     bitset&lt;N&gt;&amp;   _Unchecked_set   (size_t pos);
     bitset&lt;N&gt;&amp;   _Unchecked_set   (size_t pos, int val);
     bitset&lt;N&gt;&amp;   _Unchecked_reset (size_t pos);
     bitset&lt;N&gt;&amp;   _Unchecked_flip  (size_t pos);
     bool         _Unchecked_test  (size_t pos);
! </programlisting>
     <para>Note that these may in fact be removed in the future, although we have
     no present plans to do so (and there doesn't seem to be any immediate
     reason to).
*************** extensions, be aware of two things:
*** 181,187 ****
     the index of the first "on" bit, and the index of the first
     "on" bit that is after <code>prev</code>, respectively:
  </para>
!    <programlisting>
     size_t _Find_first() const;
     size_t _Find_next (size_t prev) const;</programlisting>
  <para>The same caveat given for the _Unchecked_* functions applies here also.
--- 181,187 ----
     the index of the first "on" bit, and the index of the first
     "on" bit that is after <code>prev</code>, respectively:
  </para>
! <programlisting>
     size_t _Find_first() const;
     size_t _Find_next (size_t prev) const;</programlisting>
  <para>The same caveat given for the _Unchecked_* functions applies here also.
*************** extensions, be aware of two things:
*** 202,214 ****
     </para>
  
     <para>The SGI headers</para>
!    <programlisting>
       &lt;hash_map&gt;
       &lt;hash_set&gt;
       &lt;rope&gt;
       &lt;slist&gt;
       &lt;rb_tree&gt;
!    </programlisting>
     <para>are all here;
        <filename class="headerfile">&lt;backwards/hash_map&gt;</filename> and
        <filename class="headerfile">&lt;backwards/hash_set&gt;</filename>
--- 202,214 ----
     </para>
  
     <para>The SGI headers</para>
! <programlisting>
       &lt;hash_map&gt;
       &lt;hash_set&gt;
       &lt;rope&gt;
       &lt;slist&gt;
       &lt;rb_tree&gt;
! </programlisting>
     <para>are all here;
        <filename class="headerfile">&lt;backwards/hash_map&gt;</filename> and
        <filename class="headerfile">&lt;backwards/hash_set&gt;</filename>
*************** get_temporary_buffer(5, (int*)0);
*** 346,359 ****
     additional signatures return void, but take a final parameter by
     reference to which they assign their results, e.g.,
  </para>
!    <programlisting>
     void count (first, last, value, n);</programlisting>
  <para>25.2 (mutating algorithms) is extended with two families of signatures,
     random_sample and random_sample_n.
  </para>
  <para>25.2.1 (copy) is extended with
  </para>
!    <programlisting>
     copy_n (_InputIter first, _Size count, _OutputIter result);</programlisting>
  <para>which copies the first 'count' elements at 'first' into 'result'.
  </para>
--- 346,359 ----
     additional signatures return void, but take a final parameter by
     reference to which they assign their results, e.g.,
  </para>
! <programlisting>
     void count (first, last, value, n);</programlisting>
  <para>25.2 (mutating algorithms) is extended with two families of signatures,
     random_sample and random_sample_n.
  </para>
  <para>25.2.1 (copy) is extended with
  </para>
! <programlisting>
     copy_n (_InputIter first, _Size count, _OutputIter result);</programlisting>
  <para>which copies the first 'count' elements at 'first' into 'result'.
  </para>
*************** get_temporary_buffer(5, (int*)0);
*** 367,373 ****
     </itemizedlist>
  <para>25.3.8 (lexicographical_compare) is extended with
  </para>
!    <programlisting>
     lexicographical_compare_3way(_InputIter1 first1, _InputIter1 last1,
  				 _InputIter2 first2, _InputIter2 last2)</programlisting>
  <para>which does... what?
--- 367,373 ----
     </itemizedlist>
  <para>25.3.8 (lexicographical_compare) is extended with
  </para>
! <programlisting>
     lexicographical_compare_3way(_InputIter1 first1, _InputIter1 last1,
  				 _InputIter2 first2, _InputIter2 last2)</programlisting>
  <para>which does... what?
*************** get_temporary_buffer(5, (int*)0);
*** 382,388 ****
  <para>26.4, the generalized numeric operations such as <code>accumulate</code>,
     are extended with the following functions:
  </para>
!    <programlisting>
     power (x, n);
     power (x, n, monoid_operation);</programlisting>
  <para>Returns, in FORTRAN syntax, "<code>x ** n</code>" where
--- 382,388 ----
  <para>26.4, the generalized numeric operations such as <code>accumulate</code>,
     are extended with the following functions:
  </para>
! <programlisting>
     power (x, n);
     power (x, n, monoid_operation);</programlisting>
  <para>Returns, in FORTRAN syntax, "<code>x ** n</code>" where
*************** get_temporary_buffer(5, (int*)0);
*** 399,405 ****
     That is, it assigns <code>value</code> to <code>*first</code>,
     <code>value + 1</code> to<code> *(first + 1)</code> and so on."
  </para>
!    <programlisting>
     void iota(_ForwardIter first, _ForwardIter last, _Tp value);</programlisting>
  <para>The <code>iota</code> function is included in the ISO C++ 2011 standard.
  </para>
--- 399,405 ----
     That is, it assigns <code>value</code> to <code>*first</code>,
     <code>value + 1</code> to<code> *(first + 1)</code> and so on."
  </para>
! <programlisting>
     void iota(_ForwardIter first, _ForwardIter last, _Tp value);</programlisting>
  <para>The <code>iota</code> function is included in the ISO C++ 2011 standard.
  </para>
*************** get_temporary_buffer(5, (int*)0);
*** 523,529 ****
      Probably the only time you'll be interested in demangling at runtime
      is when you're seeing <code>typeid</code> strings in RTTI.  For example:
    </para>
!    <programlisting>
  #include &lt;iostream&gt;
  #include &lt;cstdlib&gt;
  #include &lt;cxxabi.h&gt;
--- 523,529 ----
      Probably the only time you'll be interested in demangling at runtime
      is when you're seeing <code>typeid</code> strings in RTTI.  For example:
    </para>
! <programlisting>
  #include &lt;iostream&gt;
  #include &lt;cstdlib&gt;
  #include &lt;cxxabi.h&gt;
*************** int main()
*** 546,552 ****
    std::cout &lt;&lt; ti.name() &lt;&lt; "\t=&gt; " &lt;&lt; realname &lt;&lt; "\t: " &lt;&lt; status &lt;&lt; '\n';
    std::free(realname);
  }
!    </programlisting>
     <para>
       This prints
     </para>
--- 546,552 ----
    std::cout &lt;&lt; ti.name() &lt;&lt; "\t=&gt; " &lt;&lt; realname &lt;&lt; "\t: " &lt;&lt; status &lt;&lt; '\n';
    std::free(realname);
  }
! </programlisting>
     <para>
       This prints
     </para>
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/xml/manual/intro.xml gcc-15-20251122/libstdc++-v3/doc/xml/manual/intro.xml
*** gcc-15-20251115/libstdc++-v3/doc/xml/manual/intro.xml	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/doc/xml/manual/intro.xml	Sat Nov 22 22:33:09 2025
*************** requirements of the license of GCC.
*** 1336,1342 ****
     <para>The general outline of commands to build GCC is something like:
     </para>
  
!    <programlisting>
     <replaceable>get gcc sources</replaceable>
     <replaceable>extract into gccsrcdir</replaceable>
     mkdir <replaceable>gccbuilddir</replaceable>
--- 1336,1342 ----
     <para>The general outline of commands to build GCC is something like:
     </para>
  
! <programlisting>
     <replaceable>get gcc sources</replaceable>
     <replaceable>extract into gccsrcdir</replaceable>
     mkdir <replaceable>gccbuilddir</replaceable>
*************** requirements of the license of GCC.
*** 1345,1351 ****
     make
     make check
     make install
!    </programlisting>
  
     <para>
       Each step is described in more detail in the following sections.
--- 1345,1351 ----
     make
     make check
     make install
! </programlisting>
  
     <para>
       Each step is described in more detail in the following sections.
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/xml/manual/io.xml gcc-15-20251122/libstdc++-v3/doc/xml/manual/io.xml
*** gcc-15-20251115/libstdc++-v3/doc/xml/manual/io.xml	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/doc/xml/manual/io.xml	Sat Nov 22 22:33:09 2025
***************
*** 37,43 ****
        Look in the <filename class="headerfile">&lt;iosfwd&gt;</filename> header
        if you'd like to know why.)  For example,
     </para>
!    <programlisting>
      #include &lt;iosfwd&gt;
  
      class MyClass
--- 37,43 ----
        Look in the <filename class="headerfile">&lt;iosfwd&gt;</filename> header
        if you'd like to know why.)  For example,
     </para>
! <programlisting>
      #include &lt;iosfwd&gt;
  
      class MyClass
***************
*** 47,53 ****
      };
  
      extern std::ostream&amp; operator&lt;&lt; (std::ostream&amp;, MyClass&amp;);
!    </programlisting>
     <para><emphasis><filename class="headerfile">&lt;ios&gt;</filename></emphasis>
        declares the base classes for the entire I/O stream hierarchy,
        <classname>std::ios_base</classname> and <classname>std::basic_ios&lt;charT&gt;</classname>,
--- 47,53 ----
      };
  
      extern std::ostream&amp; operator&lt;&lt; (std::ostream&amp;, MyClass&amp;);
! </programlisting>
     <para><emphasis><filename class="headerfile">&lt;ios&gt;</filename></emphasis>
        declares the base classes for the entire I/O stream hierarchy,
        <classname>std::ios_base</classname> and <classname>std::basic_ios&lt;charT&gt;</classname>,
***************
*** 87,100 ****
        or any of the other abstract stream formatting functions.
        For example,
     </para>
!    <programlisting>
      #include &lt;istream&gt;
  
      std::ostream&amp; operator&lt;&lt; (std::ostream&amp; os, MyClass&amp; c)
      {
         return os &lt;&lt; c.data1() &lt;&lt; c.data2();
      }
!    </programlisting>
     <para>The <type>std::istream</type> and <type>std::ostream</type> classes
        are the abstract parents of
        the various concrete implementations.  If you are only using the
--- 87,100 ----
        or any of the other abstract stream formatting functions.
        For example,
     </para>
! <programlisting>
      #include &lt;istream&gt;
  
      std::ostream&amp; operator&lt;&lt; (std::ostream&amp; os, MyClass&amp; c)
      {
         return os &lt;&lt; c.data1() &lt;&lt; c.data2();
      }
! </programlisting>
     <para>The <type>std::istream</type> and <type>std::ostream</type> classes
        are the abstract parents of
        the various concrete implementations.  If you are only using the
***************
*** 123,129 ****
        <filename class="headerfile">&lt;ostream&gt;</filename>
        headers, but nothing else.  The contents of this header look like:
     </para>
!    <programlisting>
      #include &lt;ostream&gt;
      #include &lt;istream&gt;
  
--- 123,129 ----
        <filename class="headerfile">&lt;ostream&gt;</filename>
        headers, but nothing else.  The contents of this header look like:
     </para>
! <programlisting>
      #include &lt;ostream&gt;
      #include &lt;istream&gt;
  
***************
*** 136,142 ****
  	// this is explained below
  	<emphasis>static ios_base::Init __foo;</emphasis>    // not its real name
      }
!    </programlisting>
     <para>Now, the runtime penalty mentioned previously:  the global objects
        must be initialized before any of your own code uses them; this is
        guaranteed by the standard.  Like any other global object, they must
--- 136,142 ----
  	// this is explained below
  	<emphasis>static ios_base::Init __foo;</emphasis>    // not its real name
      }
! </programlisting>
     <para>Now, the runtime penalty mentioned previously:  the global objects
        must be initialized before any of your own code uses them; this is
        guaranteed by the standard.  Like any other global object, they must
***************
*** 201,207 ****
        assumes many things about the nature of the character type being
        used (for more information, read the books or the newsgroups):
     </para>
!    <programlisting>
      #include &lt;iostream&gt;
      #include &lt;streambuf&gt;
      #include &lt;locale&gt;
--- 201,207 ----
        assumes many things about the nature of the character type being
        used (for more information, read the books or the newsgroups):
     </para>
! <programlisting>
      #include &lt;iostream&gt;
      #include &lt;streambuf&gt;
      #include &lt;locale&gt;
***************
*** 238,244 ****
  	    &lt;&lt; std::hex &lt;&lt; 31 &lt;&lt; std::endl;
  	return 0;
      }
!    </programlisting>
     <para>Try it yourself!  More examples can be found in 3.1.x code, in
        <filename>include/ext/*_filebuf.h</filename>, and in the article
        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://gabisoft.free.fr/articles/fltrsbf1.html">Filtering
--- 238,244 ----
  	    &lt;&lt; std::hex &lt;&lt; 31 &lt;&lt; std::endl;
  	return 0;
      }
! </programlisting>
     <para>Try it yourself!  More examples can be found in 3.1.x code, in
        <filename>include/ext/*_filebuf.h</filename>, and in the article
        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://gabisoft.free.fr/articles/fltrsbf1.html">Filtering
***************
*** 270,276 ****
        out as soon as possible, etc -- but the buffering is largely
        wasted when doing this to a file:
     </para>
!    <programlisting>
     output &lt;&lt; "a line of text" &lt;&lt; endl;
     output &lt;&lt; some_data_variable &lt;&lt; endl;
     output &lt;&lt; "another line of text" &lt;&lt; endl; </programlisting>
--- 270,276 ----
        out as soon as possible, etc -- but the buffering is largely
        wasted when doing this to a file:
     </para>
! <programlisting>
     output &lt;&lt; "a line of text" &lt;&lt; endl;
     output &lt;&lt; some_data_variable &lt;&lt; endl;
     output &lt;&lt; "another line of text" &lt;&lt; endl; </programlisting>
***************
*** 278,284 ****
        and let the libraries and the system worry about the buffering.
        If you need a newline, just write a newline:
     </para>
!    <programlisting>
     output &lt;&lt; "a line of text\n"
  	  &lt;&lt; some_data_variable &lt;&lt; '\n'
  	  &lt;&lt; "another line of text\n"; </programlisting>
--- 278,284 ----
        and let the libraries and the system worry about the buffering.
        If you need a newline, just write a newline:
     </para>
! <programlisting>
     output &lt;&lt; "a line of text\n"
  	  &lt;&lt; some_data_variable &lt;&lt; '\n'
  	  &lt;&lt; "another line of text\n"; </programlisting>
***************
*** 290,296 ****
        <code>endl</code> if you also need a newline, or just flush the buffer
        yourself:
     </para>
!    <programlisting>
     output &lt;&lt; ...... &lt;&lt; flush;    // can use std::flush manipulator
     output.flush();               // or call a member fn </programlisting>
     <para>On the other hand, there are times when writing to a file should
--- 290,296 ----
        <code>endl</code> if you also need a newline, or just flush the buffer
        yourself:
     </para>
! <programlisting>
     output &lt;&lt; ...... &lt;&lt; flush;    // can use std::flush manipulator
     output.flush();               // or call a member fn </programlisting>
     <para>On the other hand, there are times when writing to a file should
***************
*** 300,306 ****
        just to turn off the buffering <emphasis>before any I/O operations at
        all</emphasis> have been done (note that opening counts as an I/O operation):
     </para>
!    <programlisting>
     std::ofstream    os;
     std::ifstream    is;
     int   i;
--- 300,306 ----
        just to turn off the buffering <emphasis>before any I/O operations at
        all</emphasis> have been done (note that opening counts as an I/O operation):
     </para>
! <programlisting>
     std::ofstream    os;
     std::ifstream    is;
     int   i;
***************
*** 403,423 ****
        completely portably.  And since this is C++, you have an open
        ifstream (call it IN) and an open ofstream (call it OUT):
     </para>
!    <programlisting>
     #include &lt;fstream&gt;
  
     std::ifstream  IN ("input_file");
     std::ofstream  OUT ("output_file"); </programlisting>
     <para>Here's the easiest way to get it completely wrong:
     </para>
!    <programlisting>
     OUT &lt;&lt; IN;</programlisting>
     <para>For those of you who don't already know why this doesn't work
        (probably from having done it before), I invite you to quickly
        create a simple text file called "input_file" containing
        the sentence
     </para>
!       <programlisting>
        The quick brown fox jumped over the lazy dog.</programlisting>
     <para>surrounded by blank lines.  Code it up and try it.  The contents
        of "output_file" may surprise you.
--- 403,423 ----
        completely portably.  And since this is C++, you have an open
        ifstream (call it IN) and an open ofstream (call it OUT):
     </para>
! <programlisting>
     #include &lt;fstream&gt;
  
     std::ifstream  IN ("input_file");
     std::ofstream  OUT ("output_file"); </programlisting>
     <para>Here's the easiest way to get it completely wrong:
     </para>
! <programlisting>
     OUT &lt;&lt; IN;</programlisting>
     <para>For those of you who don't already know why this doesn't work
        (probably from having done it before), I invite you to quickly
        create a simple text file called "input_file" containing
        the sentence
     </para>
! <programlisting>
        The quick brown fox jumped over the lazy dog.</programlisting>
     <para>surrounded by blank lines.  Code it up and try it.  The contents
        of "output_file" may surprise you.
***************
*** 440,446 ****
        using the <code>rdbuf()</code> member function.  Therefore, the easiest
        way to copy the file is:
     </para>
!    <programlisting>
     OUT &lt;&lt; IN.rdbuf();</programlisting>
     <para>So what <emphasis>was</emphasis> happening with OUT&lt;&lt;IN?  Undefined
        behavior, since that particular &lt;&lt; isn't defined by the Standard.
--- 440,446 ----
        using the <code>rdbuf()</code> member function.  Therefore, the easiest
        way to copy the file is:
     </para>
! <programlisting>
     OUT &lt;&lt; IN.rdbuf();</programlisting>
     <para>So what <emphasis>was</emphasis> happening with OUT&lt;&lt;IN?  Undefined
        behavior, since that particular &lt;&lt; isn't defined by the Standard.
***************
*** 619,632 ****
     <para>Because the C++ library includes the C library, both C-style and
        C++-style I/O have to work at the same time.  For example:
     </para>
!    <programlisting>
       #include &lt;iostream&gt;
       #include &lt;cstdio&gt;
  
       std::cout &lt;&lt; "Hel";
       std::printf ("lo, worl");
       std::cout &lt;&lt; "d!\n";
!    </programlisting>
     <para>This must do what you think it does.
     </para>
     <para>Alert members of the audience will immediately notice that buffering
--- 619,632 ----
     <para>Because the C++ library includes the C library, both C-style and
        C++-style I/O have to work at the same time.  For example:
     </para>
! <programlisting>
       #include &lt;iostream&gt;
       #include &lt;cstdio&gt;
  
       std::cout &lt;&lt; "Hel";
       std::printf ("lo, worl");
       std::cout &lt;&lt; "d!\n";
! </programlisting>
     <para>This must do what you think it does.
     </para>
     <para>Alert members of the audience will immediately notice that buffering
***************
*** 647,657 ****
        C++ I/O, then there's no need to sync with the C streams.  The right
        thing to do in this case is to call
     </para>
!    <programlisting>
       #include <emphasis>any of the I/O headers such as ios, iostream, etc</emphasis>
  
       std::ios::sync_with_stdio(false);
!    </programlisting>
     <para>You must do this before performing any I/O via the C++ stream objects.
        Once you call this, the C++ streams will operate independently of the
        (unused) C streams.  For GCC 3.x, this means that <code>cout</code> and
--- 647,657 ----
        C++ I/O, then there's no need to sync with the C streams.  The right
        thing to do in this case is to call
     </para>
! <programlisting>
       #include <emphasis>any of the I/O headers such as ios, iostream, etc</emphasis>
  
       std::ios::sync_with_stdio(false);
! </programlisting>
     <para>You must do this before performing any I/O via the C++ stream objects.
        Once you call this, the C++ streams will operate independently of the
        (unused) C streams.  For GCC 3.x, this means that <code>cout</code> and
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/xml/manual/iterators.xml gcc-15-20251122/libstdc++-v3/doc/xml/manual/iterators.xml
*** gcc-15-20251115/libstdc++-v3/doc/xml/manual/iterators.xml	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/doc/xml/manual/iterators.xml	Sat Nov 22 22:33:09 2025
*************** classes.
*** 111,117 ****
        of them as indexing 0 through n-1.  Think of them as <emphasis>boundary
        markers</emphasis>:
     </para>
!    <programlisting>
  
     beginning            end
       |                   |
--- 111,117 ----
        of them as indexing 0 through n-1.  Think of them as <emphasis>boundary
        markers</emphasis>:
     </para>
! <programlisting>
  
     beginning            end
       |                   |
*************** classes.
*** 131,137 ****
       |                       |           dereference 'end'.
     beginning                end
  
!    </programlisting>
     <para>See?  Everything between the boundary markers is chapter of the array.
        Simple.
     </para>
--- 131,137 ----
       |                       |           dereference 'end'.
     beginning                end
  
! </programlisting>
     <para>See?  Everything between the boundary markers is chapter of the array.
        Simple.
     </para>
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/xml/manual/numerics.xml gcc-15-20251122/libstdc++-v3/doc/xml/manual/numerics.xml
*** gcc-15-20251115/libstdc++-v3/doc/xml/manual/numerics.xml	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/doc/xml/manual/numerics.xml	Sat Nov 22 22:33:09 2025
***************
*** 70,76 ****
     </itemizedlist>
     <para>Here is a simple example of the two forms of <code>accumulate</code>.
     </para>
!    <programlisting>
     int   ar[50];
     int   someval = somefunction();
  
--- 70,76 ----
     </itemizedlist>
     <para>Here is a simple example of the two forms of <code>accumulate</code>.
     </para>
! <programlisting>
     int   ar[50];
     int   someval = somefunction();
  
***************
*** 79,85 ****
     int  sum       = std::accumulate(ar,ar+50,0);
     int  sum_stuff = std::accumulate(ar,ar+50,someval);
     int  product   = std::accumulate(ar,ar+50,1,std::multiplies&lt;int&gt;());
!    </programlisting>
     <para>The first call adds all the members of the array, using zero as an
        initial value for <code>sum</code>.  The second does the same, but uses
        <code>someval</code> as the starting value (thus, <code>sum_stuff == sum +
--- 79,85 ----
     int  sum       = std::accumulate(ar,ar+50,0);
     int  sum_stuff = std::accumulate(ar,ar+50,someval);
     int  product   = std::accumulate(ar,ar+50,1,std::multiplies&lt;int&gt;());
! </programlisting>
     <para>The first call adds all the members of the array, using zero as an
        initial value for <code>sum</code>.  The second does the same, but uses
        <code>someval</code> as the starting value (thus, <code>sum_stuff == sum +
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/xml/manual/policy_data_structures.xml gcc-15-20251122/libstdc++-v3/doc/xml/manual/policy_data_structures.xml
*** gcc-15-20251115/libstdc++-v3/doc/xml/manual/policy_data_structures.xml	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/doc/xml/manual/policy_data_structures.xml	Sat Nov 22 22:33:09 2025
***************
*** 2735,2748 ****
  	a generic container object, what is the behavior of the object?
  	Suppose one writes
        </para>
!       <programlisting>
  	template&lt;typename Cntnr&gt;
  	void
  	some_op_sequence(Cntnr &amp;r_container)
  	{
  	...
  	}
!       </programlisting>
  
        <para>
  	then one needs to address the following questions in the body
--- 2735,2748 ----
  	a generic container object, what is the behavior of the object?
  	Suppose one writes
        </para>
! <programlisting>
  	template&lt;typename Cntnr&gt;
  	void
  	some_op_sequence(Cntnr &amp;r_container)
  	{
  	...
  	}
! </programlisting>
  
        <para>
  	then one needs to address the following questions in the body
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/xml/manual/strings.xml gcc-15-20251122/libstdc++-v3/doc/xml/manual/strings.xml
*** gcc-15-20251115/libstdc++-v3/doc/xml/manual/strings.xml	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/doc/xml/manual/strings.xml	Sat Nov 22 22:33:09 2025
***************
*** 31,37 ****
       This code will go through some iterations.  Here's a simple
       version:
     </para>
!    <programlisting>
     #include &lt;string&gt;
     #include &lt;algorithm&gt;
     #include &lt;cctype&gt;      // old &lt;ctype.h&gt;
--- 31,37 ----
       This code will go through some iterations.  Here's a simple
       version:
     </para>
! <programlisting>
     #include &lt;string&gt;
     #include &lt;algorithm&gt;
     #include &lt;cctype&gt;      // old &lt;ctype.h&gt;
***************
*** 62,68 ****
       capital_s.resize(s.size());
       std::transform (s.begin(), s.end(), capital_s.begin(), ToUpper());
     }
!    </programlisting>
     <para>
       <emphasis>Note</emphasis> that these calls all
        involve the global C locale through the use of the C functions
--- 62,68 ----
       capital_s.resize(s.size());
       std::transform (s.begin(), s.end(), capital_s.begin(), ToUpper());
     }
! </programlisting>
     <para>
       <emphasis>Note</emphasis> that these calls all
        involve the global C locale through the use of the C functions
***************
*** 87,93 ****
        <!-- section 14.8.2.4 clause 16 in ISO 14882:1998  -->
        At minimum, you can write short wrappers like
     </para>
!    <programlisting>
     char toLower (char c)
     {
        // std::tolower(c) is undefined if c &lt; 0 so cast to unsigned char.
--- 87,93 ----
        <!-- section 14.8.2.4 clause 16 in ISO 14882:1998  -->
        At minimum, you can write short wrappers like
     </para>
! <programlisting>
     char toLower (char c)
     {
        // std::tolower(c) is undefined if c &lt; 0 so cast to unsigned char.
***************
*** 100,115 ****
       which can perform the conversion to <code>unsigned char</code> and
       also ensure the single-argument form of <code>std::lower</code> is used:
     </para>
!    <programlisting>
       std::transform (s.begin(), s.end(), capital_s.begin(),
                       [](unsigned char c) { return std::tolower(c); });
!    </programlisting>
     <para>Another common operation is trimming off excess whitespace.  Much
        like transformations, this task is trivial with the use of string's
        <code>find</code> family.  These examples are broken into multiple
        statements for readability:
     </para>
!    <programlisting>
     std::string  str (" \t blah blah blah    \n ");
  
     // trim leading whitespace
--- 100,115 ----
       which can perform the conversion to <code>unsigned char</code> and
       also ensure the single-argument form of <code>std::lower</code> is used:
     </para>
! <programlisting>
       std::transform (s.begin(), s.end(), capital_s.begin(),
                       [](unsigned char c) { return std::tolower(c); });
! </programlisting>
     <para>Another common operation is trimming off excess whitespace.  Much
        like transformations, this task is trivial with the use of string's
        <code>find</code> family.  These examples are broken into multiple
        statements for readability:
     </para>
! <programlisting>
     std::string  str (" \t blah blah blah    \n ");
  
     // trim leading whitespace
***************
*** 138,144 ****
        case-insensitive in the same way as the (common but nonstandard)
        C function stricmp()</quote>.
     </para>
!    <programlisting>
     ci_string s( "AbCdE" );
  
     // case insensitive
--- 138,144 ----
        case-insensitive in the same way as the (common but nonstandard)
        C function stricmp()</quote>.
     </para>
! <programlisting>
     ci_string s( "AbCdE" );
  
     // case insensitive
***************
*** 192,198 ****
        type parameters, which take default arguments based on the character
        type (called <code>CharT</code> here):
     </para>
!    <programlisting>
        template &lt;typename CharT,
  		typename Traits = char_traits&lt;CharT&gt;,
  		typename Alloc = allocator&lt;CharT&gt; &gt;
--- 192,198 ----
        type parameters, which take default arguments based on the character
        type (called <code>CharT</code> here):
     </para>
! <programlisting>
        template &lt;typename CharT,
  		typename Traits = char_traits&lt;CharT&gt;,
  		typename Alloc = allocator&lt;CharT&gt; &gt;
***************
*** 205,211 ****
        template is <emphasis>declared</emphasis> but not <emphasis>defined</emphasis>.
        That means there is only
     </para>
!    <programlisting>
        template &lt;typename CharT&gt;
  	struct char_traits
  	{
--- 205,211 ----
        template is <emphasis>declared</emphasis> but not <emphasis>defined</emphasis>.
        That means there is only
     </para>
! <programlisting>
        template &lt;typename CharT&gt;
  	struct char_traits
  	{
*************** stringtok(Container &amp;container, stri
*** 314,320 ****
     </para>
  
  
!    <programlisting>
     std::list&lt;string&gt;  ls;
     stringtok (ls, " this  \t is\t\n  a test  ");
     for (std::list&lt;string&gt;const_iterator i = ls.begin();
--- 314,320 ----
     </para>
  
  
! <programlisting>
     std::list&lt;string&gt;  ls;
     stringtok (ls, " this  \t is\t\n  a test  ");
     for (std::list&lt;string&gt;const_iterator i = ls.begin();
*************** stringtok(Container &amp;container, stri
*** 324,330 ****
     } </programlisting>
     <para>You would see this as output:
     </para>
!    <programlisting>
     :this:
     :is:
     :a:
--- 324,330 ----
     } </programlisting>
     <para>You would see this as output:
     </para>
! <programlisting>
     :this:
     :is:
     :a:
*************** stringtok(Container &amp;container, stri
*** 358,366 ****
     <para>This behaviour is suggested, but not required by the standard. Prior
        to GCC 3.4 the following alternative can be used instead
     </para>
!    <programlisting>
        std::string(str.data(), str.size()).swap(str);
!    </programlisting>
     <para>This is similar to the idiom for reducing
        a <code>vector</code>'s memory usage
        (see <link linkend="faq.size_equals_capacity">this FAQ
--- 358,366 ----
     <para>This behaviour is suggested, but not required by the standard. Prior
        to GCC 3.4 the following alternative can be used instead
     </para>
! <programlisting>
        std::string(str.data(), str.size()).swap(str);
! </programlisting>
     <para>This is similar to the idiom for reducing
        a <code>vector</code>'s memory usage
        (see <link linkend="faq.size_equals_capacity">this FAQ
*************** stringtok(Container &amp;container, stri
*** 411,417 ****
        streams seamlessly because they inherit from the iostream
        hierarchy.  An quick example:
     </para>
!    <programlisting>
     #include &lt;iostream&gt;
     #include &lt;string&gt;
     #include &lt;sstream&gt;
--- 411,417 ----
        streams seamlessly because they inherit from the iostream
        hierarchy.  An quick example:
     </para>
! <programlisting>
     #include &lt;iostream&gt;
     #include &lt;string&gt;
     #include &lt;sstream&gt;
*************** stringtok(Container &amp;container, stri
*** 434,440 ****
     <para>A serious problem with CString is a design bug in its memory
        allocation.  Specifically, quoting from that same message:
     </para>
!    <programlisting>
     CString suffers from a common programming error that results in
     poor performance.  Consider the following code:
  
--- 434,440 ----
     <para>A serious problem with CString is a design bug in its memory
        allocation.  Specifically, quoting from that same message:
     </para>
! <programlisting>
     CString suffers from a common programming error that results in
     poor performance.  Consider the following code:
  
*************** stringtok(Container &amp;container, stri
*** 455,461 ****
  
     If you replace CString with string in the above function, the
     performance is O(n).
!    </programlisting>
     <para>Joe Buck also pointed out some other things to keep in mind when
        comparing CString and the Standard string class:
     </para>
--- 455,461 ----
  
     If you replace CString with string in the above function, the
     performance is O(n).
! </programlisting>
     <para>Joe Buck also pointed out some other things to keep in mind when
        comparing CString and the Standard string class:
     </para>
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/xml/manual/support.xml gcc-15-20251122/libstdc++-v3/doc/xml/manual/support.xml
*** gcc-15-20251115/libstdc++-v3/doc/xml/manual/support.xml	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/doc/xml/manual/support.xml	Sat Nov 22 22:33:09 2025
***************
*** 100,106 ****
      and defined as follows:
      </para>
  
!    <programlisting>
     template&lt;typename T&gt;
       struct class
       {
--- 100,106 ----
      and defined as follows:
      </para>
  
! <programlisting>
     template&lt;typename T&gt;
       struct class
       {
***************
*** 139,145 ****
         static const bool tinyness_before;
         static const float_round_style round_style;
       };
!    </programlisting>
    </section>
  
    <section xml:id="std.support.types.null" xreflabel="NULL"><info><title>NULL</title></info>
--- 139,145 ----
         static const bool tinyness_before;
         static const float_round_style round_style;
       };
! </programlisting>
    </section>
  
    <section xml:id="std.support.types.null" xreflabel="NULL"><info><title>NULL</title></info>
***************
*** 327,333 ****
       by registering a <quote>new-handler</quote>, because what
       <function>operator new</function> actually does is something like:
     </para>
!    <programlisting>
      while (true)
      {
        if (void* p = /* try to allocate memory */)
--- 327,333 ----
       by registering a <quote>new-handler</quote>, because what
       <function>operator new</function> actually does is something like:
     </para>
! <programlisting>
      while (true)
      {
        if (void* p = /* try to allocate memory */)
***************
*** 337,349 ****
        else
          throw bad_alloc{};
      }
!    </programlisting>
     <para>
       This means you can influence what happens on allocation failure by
       writing your own new-handler and then registering it with
       <function>std::set_new_handler</function>:
     </para>
!    <programlisting>
     typedef void (*PFV)();
  
     static char*  safety;
--- 337,349 ----
        else
          throw bad_alloc{};
      }
! </programlisting>
     <para>
       This means you can influence what happens on allocation failure by
       writing your own new-handler and then registering it with
       <function>std::set_new_handler</function>:
     </para>
! <programlisting>
     typedef void (*PFV)();
  
     static char*  safety;
***************
*** 366,372 ****
         old_handler = set_new_handler (&amp;my_new_handler);
         ...
     }
!    </programlisting>
  
     <section xml:id="std.support.memory.notes" xreflabel="Dynamic Memory Notes"><info><title>Additional Notes</title></info>
  
--- 366,372 ----
         old_handler = set_new_handler (&amp;my_new_handler);
         ...
     }
! </programlisting>
  
     <section xml:id="std.support.memory.notes" xreflabel="Dynamic Memory Notes"><info><title>Additional Notes</title></info>
  
*************** int main(int argc)
*** 549,557 ****
       <filename class="headerfile">&lt;cstdlib&gt;</filename>, and call
     </para>
  
!    <programlisting>
       std::set_terminate(std::abort);
!    </programlisting>
  
     <para>
       After this, all calls to <function>terminate</function> will use
--- 549,557 ----
       <filename class="headerfile">&lt;cstdlib&gt;</filename>, and call
     </para>
  
! <programlisting>
       std::set_terminate(std::abort);
! </programlisting>
  
     <para>
       After this, all calls to <function>terminate</function> will use
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/xml/manual/test.xml gcc-15-20251122/libstdc++-v3/doc/xml/manual/test.xml
*** gcc-15-20251115/libstdc++-v3/doc/xml/manual/test.xml	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/doc/xml/manual/test.xml	Sat Nov 22 22:33:09 2025
*************** regressions, ABI, and performance.
*** 39,45 ****
    of the C++ standard (ISO 14882) are files within the following
    directories:
  
!    <programlisting>
      17_intro
      18_support
      19_diagnostics
--- 39,45 ----
    of the C++ standard (ISO 14882) are files within the following
    directories:
  
! <programlisting>
      17_intro
      18_support
      19_diagnostics
*************** regressions, ABI, and performance.
*** 54,60 ****
      28_regex
      29_atomics
      30_threads
!    </programlisting>
  </para>
  
     <para>
--- 54,60 ----
      28_regex
      29_atomics
      30_threads
! </programlisting>
  </para>
  
     <para>
*************** regressions, ABI, and performance.
*** 167,173 ****
        This test case expects some kind of interactive input in order
        to finish or pass. At the moment, the interactive tests are not
        run by default. Instead, they are run by hand, like:
!       <programlisting>
  g++ 27_io/objects/char/3_xin.cc
  cat 27_io/objects/char/3_xin.in | a.out</programlisting>
    </listitem>
--- 167,173 ----
        This test case expects some kind of interactive input in order
        to finish or pass. At the moment, the interactive tests are not
        run by default. Instead, they are run by hand, like:
! <programlisting>
  g++ 27_io/objects/char/3_xin.cc
  cat 27_io/objects/char/3_xin.in | a.out</programlisting>
    </listitem>
*************** cat 27_io/objects/char/3_xin.in | a.out<
*** 343,349 ****
        Also, here is an example of how to run the libstdc++ testsuite
        for a multilibed build directory with different ABI settings:
  
!  <programlisting>
      make check-target-libstdc++-v3 RUNTESTFLAGS='--target_board \"unix{-mabi=32,,-mabi=64}\"'
  </programlisting>
      </para>
--- 343,349 ----
        Also, here is an example of how to run the libstdc++ testsuite
        for a multilibed build directory with different ABI settings:
  
! <programlisting>
      make check-target-libstdc++-v3 RUNTESTFLAGS='--target_board \"unix{-mabi=32,,-mabi=64}\"'
  </programlisting>
      </para>
*************** cat 27_io/objects/char/3_xin.in | a.out<
*** 357,365 ****
        run programs on, e.g. <code>x86_64-pc-linux-gnu</code>, as a few tests
        still execute the code they build.  Here's an example of how to run the
        testsuite with libstdc++ in freestanding mode:
!       <programlisting>
      make check-target-libstdc++-v3 RUNTESTFLAGS='--target_board=unix/-ffreestanding'
!       </programlisting>
      </para>
  
      <para>
--- 357,365 ----
        run programs on, e.g. <code>x86_64-pc-linux-gnu</code>, as a few tests
        still execute the code they build.  Here's an example of how to run the
        testsuite with libstdc++ in freestanding mode:
! <programlisting>
      make check-target-libstdc++-v3 RUNTESTFLAGS='--target_board=unix/-ffreestanding'
! </programlisting>
      </para>
  
      <para>
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/xml/manual/using.xml gcc-15-20251122/libstdc++-v3/doc/xml/manual/using.xml
*** gcc-15-20251115/libstdc++-v3/doc/xml/manual/using.xml	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/doc/xml/manual/using.xml	Sat Nov 22 22:33:09 2025
*************** gcc version 4.1.2 20070925 (Red Hat 4.1.
*** 2018,2024 ****
  	 into great detail, here is an example which requires user-level
  	 locks:
        </para>
!       <programlisting>
       library_class_a shared_object_a;
  
       void thread_main () {
--- 2018,2024 ----
  	 into great detail, here is an example which requires user-level
  	 locks:
        </para>
! <programlisting>
       library_class_a shared_object_a;
  
       void thread_main () {
*************** gcc version 4.1.2 20070925 (Red Hat 4.1.
*** 2032,2038 ****
  	 another thread, here is an example that does not require any
  	 user-level locks:
        </para>
!       <programlisting>
       void thread_main () {
         library_class_a object_a;
         library_class_b *object_b = new library_class_b;
--- 2032,2038 ----
  	 another thread, here is an example that does not require any
  	 user-level locks:
        </para>
! <programlisting>
       void thread_main () {
         library_class_a object_a;
         library_class_b *object_b = new library_class_b;
*************** gcc version 4.1.2 20070925 (Red Hat 4.1.
*** 2089,2095 ****
           globally-visible object, the library ensures that the reference
           count updates are atomic and do not introduce data races:
        </para>
!       <programlisting>
      std::shared_ptr&lt;int&gt; global_sp;
  
      void thread_main() {
--- 2089,2095 ----
           globally-visible object, the library ensures that the reference
           count updates are atomic and do not introduce data races:
        </para>
! <programlisting>
      std::shared_ptr&lt;int&gt; global_sp;
  
      void thread_main() {
*************** gcc version 4.1.2 20070925 (Red Hat 4.1.
*** 2112,2118 ****
        t1.join();
        t2.join();
      }
!       </programlisting>
  
        <para>For further details of the C++11 memory model see Hans-J. Boehm's
        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.hboehm.info/c++mm/">Threads
--- 2112,2118 ----
        t1.join();
        t2.join();
      }
! </programlisting>
  
        <para>For further details of the C++11 memory model see Hans-J. Boehm's
        <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.hboehm.info/c++mm/">Threads
diff -Nrcpad gcc-15-20251115/libstdc++-v3/doc/xml/manual/utilities.xml gcc-15-20251122/libstdc++-v3/doc/xml/manual/utilities.xml
*** gcc-15-20251115/libstdc++-v3/doc/xml/manual/utilities.xml	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/doc/xml/manual/utilities.xml	Sat Nov 22 22:33:09 2025
***************
*** 40,56 ****
     <para>Construction is simple.  The default ctor initializes each member
        with its respective default ctor.  The other simple ctor,
     </para>
!    <programlisting>
      pair (const T1&amp; x, const T2&amp; y);
!    </programlisting>
     <para>does what you think it does, <code>first</code> getting <code>x</code>
        and <code>second</code> getting <code>y</code>.
     </para>
     <para>There is a constructor template for copying pairs of other types:
     </para>
!    <programlisting>
      template &lt;class U, class V&gt; pair (const pair&lt;U,V&gt;&amp; p);
!    </programlisting>
     <para>The compiler will convert as necessary from U to T1 and from
        V to T2 in order to perform the respective initializations.
     </para>
--- 40,56 ----
     <para>Construction is simple.  The default ctor initializes each member
        with its respective default ctor.  The other simple ctor,
     </para>
! <programlisting>
      pair (const T1&amp; x, const T2&amp; y);
! </programlisting>
     <para>does what you think it does, <code>first</code> getting <code>x</code>
        and <code>second</code> getting <code>y</code>.
     </para>
     <para>There is a constructor template for copying pairs of other types:
     </para>
! <programlisting>
      template &lt;class U, class V&gt; pair (const pair&lt;U,V&gt;&amp; p);
! </programlisting>
     <para>The compiler will convert as necessary from U to T1 and from
        V to T2 in order to perform the respective initializations.
     </para>
***************
*** 65,74 ****
        The less-than operator is a bit odd the first time you see it.  It
        is defined as evaluating to:
     </para>
!    <programlisting>
      x.first  &lt;  y.first  ||
  	( !(y.first  &lt;  x.first)  &amp;&amp;  x.second  &lt;  y.second )
!    </programlisting>
     <para>The other operators are not defined using the <code>rel_ops</code>
        functions above, but their semantics are the same.
     </para>
--- 65,74 ----
        The less-than operator is a bit odd the first time you see it.  It
        is defined as evaluating to:
     </para>
! <programlisting>
      x.first  &lt;  y.first  ||
  	( !(y.first  &lt;  x.first)  &amp;&amp;  x.second  &lt;  y.second )
! </programlisting>
     <para>The other operators are not defined using the <code>rel_ops</code>
        functions above, but their semantics are the same.
     </para>
***************
*** 76,84 ****
        that takes two references-to-const objects and returns an
        instance of a pair instantiated on their respective types:
     </para>
!    <programlisting>
      pair&lt;int,MyClass&gt; p = make_pair(4,myobject);
!    </programlisting>
  
  </section>
  
--- 76,84 ----
        that takes two references-to-const objects and returns an
        instance of a pair instantiated on their respective types:
     </para>
! <programlisting>
      pair&lt;int,MyClass&gt; p = make_pair(4,myobject);
! </programlisting>
  
  </section>
  
diff -Nrcpad gcc-15-20251115/libstdc++-v3/src/c++23/std.cc.in gcc-15-20251122/libstdc++-v3/src/c++23/std.cc.in
*** gcc-15-20251115/libstdc++-v3/src/c++23/std.cc.in	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/src/c++23/std.cc.in	Sat Nov 22 22:33:10 2025
*************** export namespace std
*** 1575,1589 ****
    using std::u32streampos;
    using std::u8streampos;
    using std::wstreampos;
-   using std::basic_osyncstream;
-   using std::basic_syncbuf;
    using std::istreambuf_iterator;
    using std::ostreambuf_iterator;
    using std::osyncstream;
    using std::syncbuf;
    using std::wosyncstream;
    using std::wsyncbuf;
!   using std::fpos;
  }
  
  // <iostream>
--- 1575,1591 ----
    using std::u32streampos;
    using std::u8streampos;
    using std::wstreampos;
    using std::istreambuf_iterator;
    using std::ostreambuf_iterator;
+   using std::fpos;
+ #ifdef __cpp_lib_syncbuf
+   using std::basic_osyncstream;
+   using std::basic_syncbuf;
    using std::osyncstream;
    using std::syncbuf;
    using std::wosyncstream;
    using std::wsyncbuf;
! #endif
  }
  
  // <iostream>
*************** export namespace std
*** 2116,2124 ****
--- 2118,2128 ----
    using std::ostream;
    using std::wostream;
    using std::operator<<;
+ #ifdef __cpp_lib_syncbuf
    using std::emit_on_flush;
    using std::noemit_on_flush;
    using std::flush_emit;
+ #endif
  }
  
  // <print>
*************** export namespace std
*** 2559,2569 ****
--- 2563,2575 ----
    using std::wsregex_token_iterator;
    namespace pmr
    {
+ #if _GLIBCXX_USE_CXX11_ABI
      using std::pmr::cmatch;
      using std::pmr::match_results;
      using std::pmr::smatch;
      using std::pmr::wcmatch;
      using std::pmr::wsmatch;
+ #endif
    }
  }
  
*************** export namespace std
*** 2789,2800 ****
--- 2795,2808 ----
    using std::wstring;
    namespace pmr
    {
+ #if _GLIBCXX_USE_CXX11_ABI
      using std::pmr::basic_string;
      using std::pmr::string;
      using std::pmr::u16string;
      using std::pmr::u32string;
      using std::pmr::u8string;
      using std::pmr::wstring;
+ #endif
    }
    using std::hash;
  }
*************** export namespace std
*** 2839,2844 ****
--- 2847,2853 ----
  // <syncstream>
  export namespace std
  {
+ #ifdef __cpp_lib_syncbuf
    using std::basic_syncbuf;
    using std::swap;
    using std::basic_osyncstream;
*************** export namespace std
*** 2846,2851 ****
--- 2855,2861 ----
    using std::syncbuf;
    using std::wosyncstream;
    using std::wsyncbuf;
+ #endif
  }
  
  // 19.5 <system_error>
diff -Nrcpad gcc-15-20251115/libstdc++-v3/src/filesystem/ops-common.h gcc-15-20251122/libstdc++-v3/src/filesystem/ops-common.h
*** gcc-15-20251115/libstdc++-v3/src/filesystem/ops-common.h	Sat Nov 15 22:33:52 2025
--- gcc-15-20251122/libstdc++-v3/src/filesystem/ops-common.h	Sat Nov 22 22:33:10 2025
*************** namespace __gnu_posix
*** 159,168 ****
      if (MoveFileExW(oldname, newname,
  		    MOVEFILE_REPLACE_EXISTING | MOVEFILE_COPY_ALLOWED))
        return 0;
!     if (GetLastError() == ERROR_ACCESS_DENIED)
!       errno = EACCES;
!     else
!       errno = EIO;
      return -1;
    }
  
--- 159,165 ----
      if (MoveFileExW(oldname, newname,
  		    MOVEFILE_REPLACE_EXISTING | MOVEFILE_COPY_ALLOWED))
        return 0;
!     errno = std::__last_system_error().default_error_condition().value();
      return -1;
    }
  
diff -Nrcpad gcc-15-20251115/libstdc++-v3/testsuite/27_io/filesystem/operations/rename.cc gcc-15-20251122/libstdc++-v3/testsuite/27_io/filesystem/operations/rename.cc
*** gcc-15-20251115/libstdc++-v3/testsuite/27_io/filesystem/operations/rename.cc	Sat Nov 15 22:33:56 2025
--- gcc-15-20251122/libstdc++-v3/testsuite/27_io/filesystem/operations/rename.cc	Sat Nov 22 22:33:22 2025
*************** test_directories()
*** 170,179 ****
--- 170,189 ----
    fs::remove_all(dir, ec);
  }
  
+ void
+ test_pr122726()
+ {
+   std::error_code ec;
+   const auto nonesuch = __gnu_test::nonexistent_path();
+   fs::rename(nonesuch, "new-name", ec);
+   VERIFY( ec == std::make_error_code(std::errc::no_such_file_or_directory) );
+ }
+ 
  int
  main()
  {
    test01();
    test_symlinks();
    test_directories();
+   test_pr122726();
  }
