diff -Nrcpad gcc-16-20260815/LAST_UPDATED gcc-16-20260822/LAST_UPDATED
*** gcc-16-20260815/LAST_UPDATED	Sat Aug 15 22:32:22 2026
--- gcc-16-20260822/LAST_UPDATED	Sat Aug 22 22:32:23 2026
***************
*** 1 ****
! Obtained from git: releases/gcc-16 revision 71b50793e1e2b12b36baff23c1211e43b8c86ecd
--- 1 ----
! Obtained from git: releases/gcc-16 revision 7821eb2d69c6bab2d32d6b5d306ce35ef7666452
diff -Nrcpad gcc-16-20260815/MD5SUMS gcc-16-20260822/MD5SUMS
*** gcc-16-20260815/MD5SUMS	Sat Aug 15 22:32:27 2026
--- gcc-16-20260822/MD5SUMS	Sat Aug 22 22:32:29 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-16-20260815.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-16-20260822.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
*************** fa545d9998e75904fe41de9878d5bb13  Change
*** 28,34 ****
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! e6d0e2d59b46b697a03c3e464030ef87  LAST_UPDATED
  935427ff8c5edd363349721844f7ba49  MAINTAINERS
  af43617880b3cd9c10627c97e639d29e  Makefile.def
  734342371d8ccc2c81cb2d8b3d040f33  Makefile.in
--- 28,34 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 862459f16bc2aa6a527415d7b66d7151  LAST_UPDATED
  935427ff8c5edd363349721844f7ba49  MAINTAINERS
  af43617880b3cd9c10627c97e639d29e  Makefile.def
  734342371d8ccc2c81cb2d8b3d040f33  Makefile.in
*************** f15bc3c5de22eac0bdd4f611502139a0  gcc/AB
*** 530,536 ****
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 17e243dcdbd67f8a42f3e3a7819b03cc  gcc/ChangeLog
  51281e73aa07fb62394bd72f3c9299ba  gcc/ChangeLog-1997
  f77af8c9ac412064886b00c5506123b5  gcc/ChangeLog-1998
  00a2e4ead1b289bf69bca0196fed6f9f  gcc/ChangeLog-1999
--- 530,536 ----
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 7bc3119bb61ba7eeb4f5ba12ccd71706  gcc/ChangeLog
  51281e73aa07fb62394bd72f3c9299ba  gcc/ChangeLog-1997
  f77af8c9ac412064886b00c5506123b5  gcc/ChangeLog-1998
  00a2e4ead1b289bf69bca0196fed6f9f  gcc/ChangeLog-1999
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 568,574 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 1d9c307b6aecc5728a35394afd1ea577  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
--- 568,574 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 92a2bf1199e115bccb6c0f0e3b6659b4  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** c8c9dd1eaee4ffd4d5d9f3ab70fddd4b  gcc/RE
*** 580,586 ****
  fb2b1a055860b8822b54eb8a42801c44  gcc/acinclude.m4
  e74733ebf762151e601c9e0aa1461a20  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 146164c7ac9cdf2f82e933a75725bfb6  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
--- 580,586 ----
  fb2b1a055860b8822b54eb8a42801c44  gcc/acinclude.m4
  e74733ebf762151e601c9e0aa1461a20  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 3283dc59f72d2d6314bbbfbac1229d98  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
*************** b97a33153fe52398767059622469c244  gcc/ad
*** 2907,2913 ****
  89b33a894fb8d623c05d39f93b53e357  gcc/ada/sem.ads
  4829571ce4047ba742e576ced875e69e  gcc/ada/sem_aggr.adb
  d5ddab4fcf440bf2f49a9a190fd12829  gcc/ada/sem_aggr.ads
! 4f6d94073ebd8a02121b2e59d629b854  gcc/ada/sem_attr.adb
  f5a25d26b815f5d376e2873f3ab69359  gcc/ada/sem_attr.ads
  5a8f21b4d2e896659887ea4fb7fce369  gcc/ada/sem_aux.adb
  416380c1ed0ef199b48f1e73080b5db3  gcc/ada/sem_aux.ads
--- 2907,2913 ----
  89b33a894fb8d623c05d39f93b53e357  gcc/ada/sem.ads
  4829571ce4047ba742e576ced875e69e  gcc/ada/sem_aggr.adb
  d5ddab4fcf440bf2f49a9a190fd12829  gcc/ada/sem_aggr.ads
! cbb4e4ed8ea3a881a3ac029cb2671e0e  gcc/ada/sem_attr.adb
  f5a25d26b815f5d376e2873f3ab69359  gcc/ada/sem_attr.ads
  5a8f21b4d2e896659887ea4fb7fce369  gcc/ada/sem_aux.adb
  416380c1ed0ef199b48f1e73080b5db3  gcc/ada/sem_aux.ads
*************** bd02733d13b54612fc6d4cd0e340b3ea  gcc/ad
*** 2919,2925 ****
  ad2bb60b9c4c67653f4da4b0e70277d7  gcc/ada/sem_ch10.ads
  e3dc2d270994bba222e70ec02479ac37  gcc/ada/sem_ch11.adb
  7efb6a0f371113d8b55b421ee56dd1dd  gcc/ada/sem_ch11.ads
! 15dadf0127ed5d5f06b0dda296ebce35  gcc/ada/sem_ch12.adb
  2622dbf1c1774a89ada3cba34f1da316  gcc/ada/sem_ch12.ads
  5533ccb1f2838a7975fedac6dc3e6227  gcc/ada/sem_ch13.adb
  2da037307178ba05a1a24b52d1b3115e  gcc/ada/sem_ch13.ads
--- 2919,2925 ----
  ad2bb60b9c4c67653f4da4b0e70277d7  gcc/ada/sem_ch10.ads
  e3dc2d270994bba222e70ec02479ac37  gcc/ada/sem_ch11.adb
  7efb6a0f371113d8b55b421ee56dd1dd  gcc/ada/sem_ch11.ads
! dbf9d4328f236dbf82ed136b506cd924  gcc/ada/sem_ch12.adb
  2622dbf1c1774a89ada3cba34f1da316  gcc/ada/sem_ch12.ads
  5533ccb1f2838a7975fedac6dc3e6227  gcc/ada/sem_ch13.adb
  2da037307178ba05a1a24b52d1b3115e  gcc/ada/sem_ch13.ads
*************** eb03dfcd266d8fc8f127a62e436447db  gcc/co
*** 3602,3608 ****
  73b78efd3b80c813fe75cc2b519996be  gcc/config/aarch64/constraints.md
  3c41ca007a195244b101219701a3bcb0  gcc/config/aarch64/cortex-a57-fma-steering.cc
  dc252994bb63e3b3bb9aa44e233b100d  gcc/config/aarch64/cygming.h
! b6d18d11750027a9e7159f7100cbc2df  gcc/config/aarch64/driver-aarch64.cc
  f16190eb3167c87740aaff80ebc646b5  gcc/config/aarch64/fractional-cost.h
  651bbb7890869a090e394b18403b9f44  gcc/config/aarch64/gcc-auto-profile
  190b8ad2102cd90ce935883b736ff024  gcc/config/aarch64/geniterators.sh
--- 3602,3608 ----
  73b78efd3b80c813fe75cc2b519996be  gcc/config/aarch64/constraints.md
  3c41ca007a195244b101219701a3bcb0  gcc/config/aarch64/cortex-a57-fma-steering.cc
  dc252994bb63e3b3bb9aa44e233b100d  gcc/config/aarch64/cygming.h
! 60c10561f0fce26c7488f1361a2d524f  gcc/config/aarch64/driver-aarch64.cc
  f16190eb3167c87740aaff80ebc646b5  gcc/config/aarch64/fractional-cost.h
  651bbb7890869a090e394b18403b9f44  gcc/config/aarch64/gcc-auto-profile
  190b8ad2102cd90ce935883b736ff024  gcc/config/aarch64/geniterators.sh
*************** db114ac74c87743a142214fddaad2687  gcc/co
*** 4371,4377 ****
  92210572b9f9f6481e4649a42d9ac3b0  gcc/config/i386/sm4intrin.h
  5298b8261e081859bbf068b710158e8f  gcc/config/i386/smmintrin.h
  5b7a5d6bd6f2cbb1ca44a113b598ee56  gcc/config/i386/sol2.h
! a03dd9aeda89184319ef906b5cc0ea06  gcc/config/i386/sse.md
  52e0114cb9ab8d55aac3c17d06657d71  gcc/config/i386/ssemath.h
  8a6ab9e02097018bc9f1c2b347d29cfa  gcc/config/i386/stringop.def
  5f43766786949a63c9cee6967e7b4cd7  gcc/config/i386/subst.md
--- 4371,4377 ----
  92210572b9f9f6481e4649a42d9ac3b0  gcc/config/i386/sm4intrin.h
  5298b8261e081859bbf068b710158e8f  gcc/config/i386/smmintrin.h
  5b7a5d6bd6f2cbb1ca44a113b598ee56  gcc/config/i386/sol2.h
! e58723517af31f12372a69d8c4e7f1f8  gcc/config/i386/sse.md
  52e0114cb9ab8d55aac3c17d06657d71  gcc/config/i386/ssemath.h
  8a6ab9e02097018bc9f1c2b347d29cfa  gcc/config/i386/stringop.def
  5f43766786949a63c9cee6967e7b4cd7  gcc/config/i386/subst.md
*************** d074a00b74c8d59607883f2f8c168c98  gcc/co
*** 4651,4657 ****
  2c6829b33f8e390156576657ae870f00  gcc/config/microblaze/microblaze-c.cc
  d9acafef244dad41d6608fcd8d0fc913  gcc/config/microblaze/microblaze-protos.h
  f7bed44c80aaefbbda5efbce9514615a  gcc/config/microblaze/microblaze.cc
! 416e7e40813d736926bb6a4f4b386070  gcc/config/microblaze/microblaze.h
  c1c22de89195665e34ef0c62df06069a  gcc/config/microblaze/microblaze.md
  1bfdc8ff504b1a00dc9e86930fd88313  gcc/config/microblaze/microblaze.opt
  b068232199fc8154ef950e53bf98f53d  gcc/config/microblaze/microblaze.opt.urls
--- 4651,4657 ----
  2c6829b33f8e390156576657ae870f00  gcc/config/microblaze/microblaze-c.cc
  d9acafef244dad41d6608fcd8d0fc913  gcc/config/microblaze/microblaze-protos.h
  f7bed44c80aaefbbda5efbce9514615a  gcc/config/microblaze/microblaze.cc
! d01b889e0aadd471b48cb9cb6023890a  gcc/config/microblaze/microblaze.h
  c1c22de89195665e34ef0c62df06069a  gcc/config/microblaze/microblaze.md
  1bfdc8ff504b1a00dc9e86930fd88313  gcc/config/microblaze/microblaze.opt
  b068232199fc8154ef950e53bf98f53d  gcc/config/microblaze/microblaze.opt.urls
*************** db237fc1717a4075e7b9480205a32fd5  gcc/co
*** 5244,5252 ****
  16b3a369f03769ad607ae5158f6b5f90  gcc/config/rs6000/predicates.md
  63ccc96ff2cef948c080eac4455d02b1  gcc/config/rs6000/rbtree.cc
  8ece9ca8167f5056fa411488a97c6131  gcc/config/rs6000/rbtree.h
! 8275080016745dd2af0c33dfabb02c9c  gcc/config/rs6000/rs6000-builtin.cc
  a279505199952377f52557bce5be1325  gcc/config/rs6000/rs6000-builtins.def
! bb710aa9f6e98d46357a2a10104dda23  gcc/config/rs6000/rs6000-c.cc
  7c9a1176a2e08f0e5427b62d9b9742e8  gcc/config/rs6000/rs6000-call.cc
  52e2359f2b2a12d4d3f78e6f22da4e2c  gcc/config/rs6000/rs6000-cpus.def
  7b860836fdc33cdfdd29f6348a553096  gcc/config/rs6000/rs6000-d.cc
--- 5244,5252 ----
  16b3a369f03769ad607ae5158f6b5f90  gcc/config/rs6000/predicates.md
  63ccc96ff2cef948c080eac4455d02b1  gcc/config/rs6000/rbtree.cc
  8ece9ca8167f5056fa411488a97c6131  gcc/config/rs6000/rbtree.h
! 86402342f6ed6ab468cb6e1be746b9d0  gcc/config/rs6000/rs6000-builtin.cc
  a279505199952377f52557bce5be1325  gcc/config/rs6000/rs6000-builtins.def
! 577fc739593a5c933b13e4dc37e2c774  gcc/config/rs6000/rs6000-c.cc
  7c9a1176a2e08f0e5427b62d9b9742e8  gcc/config/rs6000/rs6000-call.cc
  52e2359f2b2a12d4d3f78e6f22da4e2c  gcc/config/rs6000/rs6000-cpus.def
  7b860836fdc33cdfdd29f6348a553096  gcc/config/rs6000/rs6000-d.cc
*************** d19ed9ef1a788e81cff50106a06c6236  gcc/co
*** 5510,5516 ****
  b8ba776d5b2f46cbc54fa5140207dd1f  gcc/config/t-lynx
  5dad674732908a1c6e62e627e047929e  gcc/config/t-musl
  3879bac7c165db857737f25e4f1dfbe9  gcc/config/t-netbsd
! 1aacff07575e71ba693f03e992cf4e49  gcc/config/t-openbsd
  d798d80089e236fd6882e69f3253e858  gcc/config/t-pnt16-warn
  501751f2be56698ed1c9cf18358b67ac  gcc/config/t-rtems
  51d3678acb41d4448cc332f7a8e8cb2e  gcc/config/t-slibgcc
--- 5510,5516 ----
  b8ba776d5b2f46cbc54fa5140207dd1f  gcc/config/t-lynx
  5dad674732908a1c6e62e627e047929e  gcc/config/t-musl
  3879bac7c165db857737f25e4f1dfbe9  gcc/config/t-netbsd
! a56ec642c661a3d01f69451ba90b5fc4  gcc/config/t-openbsd
  d798d80089e236fd6882e69f3253e858  gcc/config/t-pnt16-warn
  501751f2be56698ed1c9cf18358b67ac  gcc/config/t-rtems
  51d3678acb41d4448cc332f7a8e8cb2e  gcc/config/t-slibgcc
*************** c5ad0142a191862e3e81ecd3573754b3  gcc/co
*** 5646,5652 ****
  55a33ae415bde0fd2e36ba584894e50b  gcc/coroutine-passes.cc
  c10700723a41c720aada0096f369147e  gcc/coverage.cc
  d27317cee558d7c78afbdb6529e36649  gcc/coverage.h
! 2d502067c499dcd56a6e00a8888ab0a6  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
--- 5646,5652 ----
  55a33ae415bde0fd2e36ba584894e50b  gcc/coroutine-passes.cc
  c10700723a41c720aada0096f369147e  gcc/coverage.cc
  d27317cee558d7c78afbdb6529e36649  gcc/coverage.h
! 3735366839c15dc03354fd11a07fd41d  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
*************** f39635970f98bbc4591f6363fe70504b  gcc/cp
*** 5683,5694 ****
  c1c7801b9b0f379e702a4f6cb83972e7  gcc/cp/ChangeLog.ptr
  9aa3cd9f75c785de9f51446e3f295515  gcc/cp/ChangeLog.tree-ssa
  d9b8a76735523ab737e8778b90397d97  gcc/cp/Make-lang.in
! bf755ca8b4c945e1d268045000b75b8c  gcc/cp/call.cc
  144dd1ae510a7436b569b007470b62da  gcc/cp/cfns.gperf
  39dd4c5a96c7ea132eb3c7ed039a065e  gcc/cp/cfns.h
  454f3c75a5a8d9c0a8b425ca72add469  gcc/cp/class.cc
  e51f295e858583af5f9cf88b9530adf7  gcc/cp/config-lang.in
! aecce55f3d6f4f008a64e2678a857196  gcc/cp/constexpr.cc
  44493039c741da0cbddb5a8d6d93701a  gcc/cp/constraint.cc
  ab81cc984e2b72c49098e64c4e798924  gcc/cp/contracts.cc
  e77a681f560f3e9500f126febdc67ef6  gcc/cp/contracts.h
--- 5683,5694 ----
  c1c7801b9b0f379e702a4f6cb83972e7  gcc/cp/ChangeLog.ptr
  9aa3cd9f75c785de9f51446e3f295515  gcc/cp/ChangeLog.tree-ssa
  d9b8a76735523ab737e8778b90397d97  gcc/cp/Make-lang.in
! 671b00546eee7478e7e8134b9801e11d  gcc/cp/call.cc
  144dd1ae510a7436b569b007470b62da  gcc/cp/cfns.gperf
  39dd4c5a96c7ea132eb3c7ed039a065e  gcc/cp/cfns.h
  454f3c75a5a8d9c0a8b425ca72add469  gcc/cp/class.cc
  e51f295e858583af5f9cf88b9530adf7  gcc/cp/config-lang.in
! 902fdfe217d70c6ec4f1f35370b0d636  gcc/cp/constexpr.cc
  44493039c741da0cbddb5a8d6d93701a  gcc/cp/constraint.cc
  ab81cc984e2b72c49098e64c4e798924  gcc/cp/contracts.cc
  e77a681f560f3e9500f126febdc67ef6  gcc/cp/contracts.h
*************** eba8d8a1725223519fba5d4d69afd5c9  gcc/cp
*** 5701,5713 ****
  370b42bcdf211125186c37665052c30c  gcc/cp/cp-objcp-common.h
  ffdd05782c93c0567486bb7ed7eee65a  gcc/cp/cp-trait.def
  bc9b29434f2e35fa68caf656161b5c0f  gcc/cp/cp-tree.def
! f53ddf06036f74142c61f4a8ef1b994d  gcc/cp/cp-tree.h
  13d136a72a2aff80be380103d1c27ed5  gcc/cp/cp-ubsan.cc
  0f660920514d4f51007f6841a25e3af6  gcc/cp/cvt.cc
  f067718cf3d629084d8347c4e017afd4  gcc/cp/cxx-pretty-print.cc
  1d04eec9859d91686ca501e9221f30ac  gcc/cp/cxx-pretty-print.h
  82a41d873e1c90067158c89e6c1bd4bb  gcc/cp/cxxapi-data.csv
! b13bc9745e11fa4877ebc0838b251e53  gcc/cp/decl.cc
  6b0c9433f7d3f129a44b59d54babb4eb  gcc/cp/decl.h
  480696ad09d3c6330dccc983d9ddb7e2  gcc/cp/decl2.cc
  12ccd5244973d74a0536adf58261b416  gcc/cp/dump.cc
--- 5701,5713 ----
  370b42bcdf211125186c37665052c30c  gcc/cp/cp-objcp-common.h
  ffdd05782c93c0567486bb7ed7eee65a  gcc/cp/cp-trait.def
  bc9b29434f2e35fa68caf656161b5c0f  gcc/cp/cp-tree.def
! 579937ba14b29921d3c910c10c8ac3c6  gcc/cp/cp-tree.h
  13d136a72a2aff80be380103d1c27ed5  gcc/cp/cp-ubsan.cc
  0f660920514d4f51007f6841a25e3af6  gcc/cp/cvt.cc
  f067718cf3d629084d8347c4e017afd4  gcc/cp/cxx-pretty-print.cc
  1d04eec9859d91686ca501e9221f30ac  gcc/cp/cxx-pretty-print.h
  82a41d873e1c90067158c89e6c1bd4bb  gcc/cp/cxxapi-data.csv
! 44f5980e39379ff40d2561e3fe9e9604  gcc/cp/decl.cc
  6b0c9433f7d3f129a44b59d54babb4eb  gcc/cp/decl.h
  480696ad09d3c6330dccc983d9ddb7e2  gcc/cp/decl2.cc
  12ccd5244973d74a0536adf58261b416  gcc/cp/dump.cc
*************** f4c33376dcbcbb2b49c9a11ec2911ad9  gcc/cp
*** 5717,5728 ****
  447ddbe59eba62b9a389b9ba11701cfc  gcc/cp/friend.cc
  014d3891b4172014c0ad5386223c4f4c  gcc/cp/g++spec.cc
  a29b3e9192657e81a1574fb99466348d  gcc/cp/gen-cxxapi-file.py
! b9032a113a137533247a90fda508e897  gcc/cp/init.cc
  3cc97a4224ad8d5294fa1a55f8777b44  gcc/cp/lambda.cc
  bc388fb8287f2de7cdf4d78eb8f5d998  gcc/cp/lang-specs.h
  ae7c1d49c3ae546f4a980c3ebc22690d  gcc/cp/lex.cc
  e4ccdd9cbe95dde4cce27394a7613dd9  gcc/cp/logic.cc
! c13dcb7b2a8cbd880a465369063de8c3  gcc/cp/mangle.cc
  3d68343c4a9d614bb00b91ad53e79a0b  gcc/cp/mapper-client.cc
  27465babcaf6195d4f438ed36bdd6aff  gcc/cp/mapper-client.h
  4be7487ea09330ba02fb0695bc32c905  gcc/cp/mapper-resolver.cc
--- 5717,5728 ----
  447ddbe59eba62b9a389b9ba11701cfc  gcc/cp/friend.cc
  014d3891b4172014c0ad5386223c4f4c  gcc/cp/g++spec.cc
  a29b3e9192657e81a1574fb99466348d  gcc/cp/gen-cxxapi-file.py
! 9f6d1c246b30c4c9cdb022d260f3bc64  gcc/cp/init.cc
  3cc97a4224ad8d5294fa1a55f8777b44  gcc/cp/lambda.cc
  bc388fb8287f2de7cdf4d78eb8f5d998  gcc/cp/lang-specs.h
  ae7c1d49c3ae546f4a980c3ebc22690d  gcc/cp/lex.cc
  e4ccdd9cbe95dde4cce27394a7613dd9  gcc/cp/logic.cc
! c3c45a5af5857bb855462b9faaa58dad  gcc/cp/mangle.cc
  3d68343c4a9d614bb00b91ad53e79a0b  gcc/cp/mapper-client.cc
  27465babcaf6195d4f438ed36bdd6aff  gcc/cp/mapper-client.h
  4be7487ea09330ba02fb0695bc32c905  gcc/cp/mapper-resolver.cc
*************** a3b349edf69f16f317d6111ba94d8a89  gcc/cp
*** 5734,5753 ****
  b166c2ce3d5ccd4de4e0c5910947ae41  gcc/cp/name-lookup.h
  b98d31c57aa038618db60991b17e0d35  gcc/cp/operators.def
  9efebf39da56d681d4405dfb9e55e3f5  gcc/cp/optimize.cc
! 2cdede02ebb704cf1f307c2e7da70e25  gcc/cp/parser.cc
  7973a34c47e3d3c580832655a3a5c3c2  gcc/cp/parser.h
  1295dc1ecc7ca8863a6434871b9e6449  gcc/cp/pt.cc
  25322928eaff39cf167372554c639e02  gcc/cp/ptree.cc
! 41e4fbff51a33381b04e4b5cb489a201  gcc/cp/reflect.cc
  6ae3f1ff3ba804579da14445501f9181  gcc/cp/rtti.cc
  ed044462caa5bbab93e33fd297bc5d7c  gcc/cp/search.cc
! 4180146cbda2606eeb09a1b7ecb7eb34  gcc/cp/semantics.cc
  64c36b2ea66c9f8f477b19d24e06a2cb  gcc/cp/std-name-hint.gperf
  15cc409f13a8952feb90e94d99ecefa2  gcc/cp/std-name-hint.h
! baf68d7d41385eb343012f597c7cae76  gcc/cp/tree.cc
  01e9a381e6fcf3d016d0170ee0ad71d7  gcc/cp/type-utils.h
  8acc25440b191d6f1e933ff35b007828  gcc/cp/typeck.cc
! a505bec4ac0753eb3168d1ca1731dd2e  gcc/cp/typeck2.cc
  12d19e5abc1e436004b8885cde4765f0  gcc/cp/vtable-class-hierarchy.cc
  556f791fb43a25890d32717884f67cd1  gcc/cppbuiltin.cc
  51b40c4eab2c9321ddb49d1acb80edc3  gcc/cppbuiltin.h
--- 5734,5753 ----
  b166c2ce3d5ccd4de4e0c5910947ae41  gcc/cp/name-lookup.h
  b98d31c57aa038618db60991b17e0d35  gcc/cp/operators.def
  9efebf39da56d681d4405dfb9e55e3f5  gcc/cp/optimize.cc
! 77bf772b9207f2cd8ad20cb922ad4b9b  gcc/cp/parser.cc
  7973a34c47e3d3c580832655a3a5c3c2  gcc/cp/parser.h
  1295dc1ecc7ca8863a6434871b9e6449  gcc/cp/pt.cc
  25322928eaff39cf167372554c639e02  gcc/cp/ptree.cc
! 2cbf7a5ccd915a7df00ff5a38701f81d  gcc/cp/reflect.cc
  6ae3f1ff3ba804579da14445501f9181  gcc/cp/rtti.cc
  ed044462caa5bbab93e33fd297bc5d7c  gcc/cp/search.cc
! 7dba5fdda2dc085d8a73f2ce4a34c24d  gcc/cp/semantics.cc
  64c36b2ea66c9f8f477b19d24e06a2cb  gcc/cp/std-name-hint.gperf
  15cc409f13a8952feb90e94d99ecefa2  gcc/cp/std-name-hint.h
! b5ddc46965c1cb6a2788fb4b569dd3d6  gcc/cp/tree.cc
  01e9a381e6fcf3d016d0170ee0ad71d7  gcc/cp/type-utils.h
  8acc25440b191d6f1e933ff35b007828  gcc/cp/typeck.cc
! 20dd243b11f0404bd1e87c7cd908c35d  gcc/cp/typeck2.cc
  12d19e5abc1e436004b8885cde4765f0  gcc/cp/vtable-class-hierarchy.cc
  556f791fb43a25890d32717884f67cd1  gcc/cppbuiltin.cc
  51b40c4eab2c9321ddb49d1acb80edc3  gcc/cppbuiltin.h
*************** f80b38c70a85f9aeae9688b937b028ba  gcc/fi
*** 6271,6277 ****
  50b999b375e3a5a95a002f592e6d4514  gcc/fold-const.cc
  0ec02a37dbbe9cb267f0ea1263085ed3  gcc/fold-const.h
  a0df3d274ac009d203209a191738cec6  gcc/fold-mem-offsets.cc
! 1f070f99b6e700df886994fbce9150c1  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
--- 6271,6277 ----
  50b999b375e3a5a95a002f592e6d4514  gcc/fold-const.cc
  0ec02a37dbbe9cb267f0ea1263085ed3  gcc/fold-const.h
  a0df3d274ac009d203209a191738cec6  gcc/fold-mem-offsets.cc
! 0f50cb1fe9965d66d9f832d94ef64f43  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
*************** b62b50b99bed88d9380317afd0268ac9  gcc/fo
*** 6323,6329 ****
  04eb6f3ad94201531c69e635a606f362  gcc/fortran/frontend-passes.cc
  c85c9309a4274609c6ff6466621c90f6  gcc/fortran/gfc-diagnostic.def
  afb07146daad7f36a59c52e053f6772f  gcc/fortran/gfc-internals.texi
! 3ec5fc89032841fae7366aaa6d5b46d5  gcc/fortran/gfortran.h
  8fe0c8cc43e7ed982c602f58b4086351  gcc/fortran/gfortran.texi
  9da0114ccf35340d3035f21f8a0f3325  gcc/fortran/gfortranspec.cc
  57a7b0248a50e8931f48c864800d4ec9  gcc/fortran/interface.cc
--- 6323,6329 ----
  04eb6f3ad94201531c69e635a606f362  gcc/fortran/frontend-passes.cc
  c85c9309a4274609c6ff6466621c90f6  gcc/fortran/gfc-diagnostic.def
  afb07146daad7f36a59c52e053f6772f  gcc/fortran/gfc-internals.texi
! 55d4ea188e49b739a1f9364c1ee01301  gcc/fortran/gfortran.h
  8fe0c8cc43e7ed982c602f58b4086351  gcc/fortran/gfortran.texi
  9da0114ccf35340d3035f21f8a0f3325  gcc/fortran/gfortranspec.cc
  57a7b0248a50e8931f48c864800d4ec9  gcc/fortran/interface.cc
*************** f2d1ba26cdd272c08e7647dfefdddb86  gcc/fo
*** 6351,6357 ****
  21660f9a357047be01ae3e75065aab0a  gcc/fortran/parse.cc
  c97a1f016de974126c688bb9c805f323  gcc/fortran/parse.h
  652dece8c45124ac6ad49d39f2b67df1  gcc/fortran/primary.cc
! 025f9b4be39154db1c3d36be5cc4f521  gcc/fortran/resolve.cc
  e23f6eefa51bb3b4caa3d75c0409cfcd  gcc/fortran/scanner.cc
  18963b3f6aacca960fd6aa72b429a9d2  gcc/fortran/scanner.h
  664f19f5a29de9abc4642568f758c47c  gcc/fortran/simplify.cc
--- 6351,6357 ----
  21660f9a357047be01ae3e75065aab0a  gcc/fortran/parse.cc
  c97a1f016de974126c688bb9c805f323  gcc/fortran/parse.h
  652dece8c45124ac6ad49d39f2b67df1  gcc/fortran/primary.cc
! c98a8fbc9ac21d0d087006b576f81000  gcc/fortran/resolve.cc
  e23f6eefa51bb3b4caa3d75c0409cfcd  gcc/fortran/scanner.cc
  18963b3f6aacca960fd6aa72b429a9d2  gcc/fortran/scanner.h
  664f19f5a29de9abc4642568f758c47c  gcc/fortran/simplify.cc
*************** a0c40b654df0b5c5213047d26e48e97a  gcc/fo
*** 6364,6371 ****
  5c567026f9fbc4fea9b59c22743687c4  gcc/fortran/trans-common.cc
  98960d7450a15e1ecc9789bd0bde16a7  gcc/fortran/trans-const.cc
  0d5cf4117521dba2aea9c8fd7ac67888  gcc/fortran/trans-const.h
! 5317303d0d4bfd00e93033c7f0a3d789  gcc/fortran/trans-decl.cc
! 6f4bdb7fbaf32614b369686394c4f4e8  gcc/fortran/trans-expr.cc
  825e35b29e341127f4e490bba5b317e3  gcc/fortran/trans-intrinsic.cc
  269d2b121570a82898b133a3274071a7  gcc/fortran/trans-io.cc
  5aae8344983c76e250d5a9804f13e0ad  gcc/fortran/trans-openmp.cc
--- 6364,6371 ----
  5c567026f9fbc4fea9b59c22743687c4  gcc/fortran/trans-common.cc
  98960d7450a15e1ecc9789bd0bde16a7  gcc/fortran/trans-const.cc
  0d5cf4117521dba2aea9c8fd7ac67888  gcc/fortran/trans-const.h
! c7f3b3eb7ed582cb379b26a0dda16534  gcc/fortran/trans-decl.cc
! bd823ebd6a057aabd7d4978826fbcfcc  gcc/fortran/trans-expr.cc
  825e35b29e341127f4e490bba5b317e3  gcc/fortran/trans-intrinsic.cc
  269d2b121570a82898b133a3274071a7  gcc/fortran/trans-io.cc
  5aae8344983c76e250d5a9804f13e0ad  gcc/fortran/trans-openmp.cc
*************** f1824ea9d0d35fb768daabd8649d44b3  gcc/gi
*** 6477,6483 ****
  b829ca99c85ee53d8741a9e6bd0842cc  gcc/gimple-loop-versioning.cc
  3c3cd33fb8d571f0cf6646b95fd1a87d  gcc/gimple-low.cc
  a6a5de8424eee65e836bba5b21f32a6b  gcc/gimple-low.h
! 48e97edfc58be8b25911105463104dc1  gcc/gimple-lower-bitint.cc
  0ad30ecd31f0473de43171e203bbed3e  gcc/gimple-lower-bitint.h
  e34c444c462ee07d9e772cc076c6ad83  gcc/gimple-match-exports.cc
  95ab37dd8c1b67f025a463e428c5f21b  gcc/gimple-match-head.cc
--- 6477,6483 ----
  b829ca99c85ee53d8741a9e6bd0842cc  gcc/gimple-loop-versioning.cc
  3c3cd33fb8d571f0cf6646b95fd1a87d  gcc/gimple-low.cc
  a6a5de8424eee65e836bba5b21f32a6b  gcc/gimple-low.h
! 654a71c0590c0c4bd084b280012dafa3  gcc/gimple-lower-bitint.cc
  0ad30ecd31f0473de43171e203bbed3e  gcc/gimple-lower-bitint.h
  e34c444c462ee07d9e772cc076c6ad83  gcc/gimple-match-exports.cc
  95ab37dd8c1b67f025a463e428c5f21b  gcc/gimple-match-head.cc
*************** c84294b3bbebf60858449ae953fae160  gcc/gi
*** 6497,6503 ****
  3f397ecbcf642d6d782fe5e774680054  gcc/gimple-range-gori.h
  871f906e172004d8ff9ab02c90b303c7  gcc/gimple-range-infer.cc
  7b22b6e89d46ee067b182629fcb97a4d  gcc/gimple-range-infer.h
! 7a817f9363ddd6ca4c1690866d425d29  gcc/gimple-range-op.cc
  2b35447fc9805b1aa9b1c06450e44a9e  gcc/gimple-range-op.h
  ef9ab4f8d42dd43ff48744090edb54b3  gcc/gimple-range-path.cc
  fd93abee2584b401c93735ddd00e75d1  gcc/gimple-range-path.h
--- 6497,6503 ----
  3f397ecbcf642d6d782fe5e774680054  gcc/gimple-range-gori.h
  871f906e172004d8ff9ab02c90b303c7  gcc/gimple-range-infer.cc
  7b22b6e89d46ee067b182629fcb97a4d  gcc/gimple-range-infer.h
! d74f90b82e31d5736c71a61a2f4f242f  gcc/gimple-range-op.cc
  2b35447fc9805b1aa9b1c06450e44a9e  gcc/gimple-range-op.h
  ef9ab4f8d42dd43ff48744090edb54b3  gcc/gimple-range-path.cc
  fd93abee2584b401c93735ddd00e75d1  gcc/gimple-range-path.h
*************** db24d9f938cefb2027e91a5068f5f1d0  gcc/pr
*** 8039,8045 ****
  bea702966301b6b7e6294ef33ec8b443  gcc/pta-andersen.h
  706c6f6185e00db6f945b89759097531  gcc/pub-sub.cc
  f72a1e84c9facd65dc1c42ee67f21583  gcc/pub-sub.h
! e0bcbcfcb3453350b984e32fb56ce138  gcc/range-op-float.cc
  5b7facbc76df7d457131d6ab875c3b62  gcc/range-op-mixed.h
  f4cba1bfd3b506f536d929e22e20525d  gcc/range-op-ptr.cc
  cf65d64ae38adb74e74e34c58cf68528  gcc/range-op.cc
--- 8039,8045 ----
  bea702966301b6b7e6294ef33ec8b443  gcc/pta-andersen.h
  706c6f6185e00db6f945b89759097531  gcc/pub-sub.cc
  f72a1e84c9facd65dc1c42ee67f21583  gcc/pub-sub.h
! 93962c09bf35db17adea1e782d8991e1  gcc/range-op-float.cc
  5b7facbc76df7d457131d6ab875c3b62  gcc/range-op-mixed.h
  f4cba1bfd3b506f536d929e22e20525d  gcc/range-op-ptr.cc
  cf65d64ae38adb74e74e34c58cf68528  gcc/range-op.cc
*************** f24751f278bee1ac8dc861467d9f96a3  gcc/ta
*** 8726,8732 ****
  bf20a6542e361b29f15f9f2b47d47e2f  gcc/targhooks.cc
  b1068b0d3d77d5a55802a29a9f8a08d7  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 023f7742c042d14d74a144a8a02613c1  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
--- 8726,8732 ----
  bf20a6542e361b29f15f9f2b47d47e2f  gcc/targhooks.cc
  b1068b0d3d77d5a55802a29a9f8a08d7  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 41e30f92738d3787f9073c78e8999b7e  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
*************** d3992440eed37bacf3c1b2c2075afeca  gcc/te
*** 24821,24826 ****
--- 24821,24827 ----
  25f21baa02838e20e7b1cb692e279e2f  gcc/testsuite/g++.dg/cpp0x/initlist-array22.C
  b8d0d7227f1835ae94108da2b2b1d06d  gcc/testsuite/g++.dg/cpp0x/initlist-array23.C
  4812e08c472dcdea2ca5a5c09dd6d4fc  gcc/testsuite/g++.dg/cpp0x/initlist-array24.C
+ f1c869265be7444c4a6c2cfcb9d16874  gcc/testsuite/g++.dg/cpp0x/initlist-array25.C
  8c888f7ab5cc44480801a14718225380  gcc/testsuite/g++.dg/cpp0x/initlist-array3.C
  6c1907913d332611dd16d03002d759f9  gcc/testsuite/g++.dg/cpp0x/initlist-array4.C
  8758d8464674d29f4276f8d3ebc899c3  gcc/testsuite/g++.dg/cpp0x/initlist-array5.C
*************** ac9f13854ea3e455a1371aaa819ee22a  gcc/te
*** 27687,27692 ****
--- 27688,27694 ----
  9f9fa73c4ae67e4de5904663c140998d  gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations3.C
  5c459c469bb0c88af36817ae049e53f3  gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations4.C
  6859dea5dbfe2133d0fd69cfd29b9164  gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations5.C
+ 2cdac7b49796c47ed37cf44db24b507e  gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations6.C
  712e0c3f886fdb90e5e03d39bd877f92  gcc/testsuite/g++.dg/cpp1z/inh-ctor1.C
  a5a039fe3394138160509efa1a2212c5  gcc/testsuite/g++.dg/cpp1z/inh-ctor22.C
  08e66730eb666f41f2d9476748d3745f  gcc/testsuite/g++.dg/cpp1z/inh-ctor23.C
*************** a6073e074c44b5f830037756b9110934  gcc/te
*** 28203,28208 ****
--- 28205,28212 ----
  43355f1cc013294de9951388e4f152fa  gcc/testsuite/g++.dg/cpp26/constexpr-eh21.C
  db870387b6079e42b01add3955155ce3  gcc/testsuite/g++.dg/cpp26/constexpr-eh22.C
  33742bb3c4bdff65ad4424d6965b75d6  gcc/testsuite/g++.dg/cpp26/constexpr-eh23.C
+ e6437545427b43a672d790f6788654b8  gcc/testsuite/g++.dg/cpp26/constexpr-eh24.C
+ f6ba830f5d4ced2653d01179e84d8502  gcc/testsuite/g++.dg/cpp26/constexpr-eh25.C
  26c369ca53153ae946088791d0790fa5  gcc/testsuite/g++.dg/cpp26/constexpr-eh3.C
  6ef0a812fa0528be79afea3ada17a5eb  gcc/testsuite/g++.dg/cpp26/constexpr-eh4.C
  1c0a703bddf109fe81f458c23001dcc2  gcc/testsuite/g++.dg/cpp26/constexpr-eh5.C
*************** a6ad805aa4ca927da605193ee132e4c9  gcc/te
*** 32353,32358 ****
--- 32357,32363 ----
  94a7e987319d08f023e937de3e12d0d8  gcc/testsuite/g++.dg/init/array65.C
  6dacb8601d29390665707d5d3244c16d  gcc/testsuite/g++.dg/init/array66.C
  565294bed4047ecbc96e954cfc86f9cf  gcc/testsuite/g++.dg/init/array67.C
+ b6e503af7930bbb87c18e65129b23fdd  gcc/testsuite/g++.dg/init/array68.C
  02cf876b0b0d2594118addc046b9112a  gcc/testsuite/g++.dg/init/array7.C
  4ab5bb9dc38b78d749ba584adefbdc33  gcc/testsuite/g++.dg/init/array8.C
  b1c2a3438d19ab4734ef026ce6aba7fa  gcc/testsuite/g++.dg/init/array9.C
*************** bcbfe7a6746a7cf5019e4beb91dfc6e1  gcc/te
*** 37865,37871 ****
  75564b7e49fd2ca4aec72df58d4ce257  gcc/testsuite/g++.dg/reflect/lex1.C
  5047184a71ebc4613c16d57f58d02456  gcc/testsuite/g++.dg/reflect/lex2.C
  f6803b822ccb79238b24868d977699f4  gcc/testsuite/g++.dg/reflect/lwg4556.C
! 2c01ee658b468464c7b062651e5ac9cc  gcc/testsuite/g++.dg/reflect/mangle1.C
  8adb63c51e98fb1692e89416e0887655  gcc/testsuite/g++.dg/reflect/mangle2.C
  ea720c7f072506efc4d68f19c28f450d  gcc/testsuite/g++.dg/reflect/mangle3.C
  96900c06aa6df121875dd7f2ecc5b7a3  gcc/testsuite/g++.dg/reflect/mangle4.C
--- 37870,37876 ----
  75564b7e49fd2ca4aec72df58d4ce257  gcc/testsuite/g++.dg/reflect/lex1.C
  5047184a71ebc4613c16d57f58d02456  gcc/testsuite/g++.dg/reflect/lex2.C
  f6803b822ccb79238b24868d977699f4  gcc/testsuite/g++.dg/reflect/lwg4556.C
! 25f71cde3b88f13b0129cc46ec7ac317  gcc/testsuite/g++.dg/reflect/mangle1.C
  8adb63c51e98fb1692e89416e0887655  gcc/testsuite/g++.dg/reflect/mangle2.C
  ea720c7f072506efc4d68f19c28f450d  gcc/testsuite/g++.dg/reflect/mangle3.C
  96900c06aa6df121875dd7f2ecc5b7a3  gcc/testsuite/g++.dg/reflect/mangle4.C
*************** a50a28893edab692cde4895922fbf011  gcc/te
*** 37965,37971 ****
  f634f671906a4dd818a3550429747fcf  gcc/testsuite/g++.dg/reflect/p3491-1.C
  4b19aace4fcf0826ec6564807f25c8ea  gcc/testsuite/g++.dg/reflect/p3491-2.C
  2113071ef107b79c5882a0afe32e9a9b  gcc/testsuite/g++.dg/reflect/p3491-3.C
! 9534bbaaa9101abab94bc5ffa3a293f6  gcc/testsuite/g++.dg/reflect/pack-index1.C
  d769c20d76953f9e88aaec8b648608d2  gcc/testsuite/g++.dg/reflect/parameters_of1.C
  157793e98058b0e2274b5549412cd0a5  gcc/testsuite/g++.dg/reflect/parameters_of2.C
  85f420fd03c5ea1a6d9590d66abccd31  gcc/testsuite/g++.dg/reflect/parameters_of3.C
--- 37970,37977 ----
  f634f671906a4dd818a3550429747fcf  gcc/testsuite/g++.dg/reflect/p3491-1.C
  4b19aace4fcf0826ec6564807f25c8ea  gcc/testsuite/g++.dg/reflect/p3491-2.C
  2113071ef107b79c5882a0afe32e9a9b  gcc/testsuite/g++.dg/reflect/p3491-3.C
! f71d27059d5eb3eba5bcb9e4787e3ac2  gcc/testsuite/g++.dg/reflect/pack-index1.C
! 5cf52e313ce73101ad5d84f72fffc259  gcc/testsuite/g++.dg/reflect/pack-index2.C
  d769c20d76953f9e88aaec8b648608d2  gcc/testsuite/g++.dg/reflect/parameters_of1.C
  157793e98058b0e2274b5549412cd0a5  gcc/testsuite/g++.dg/reflect/parameters_of2.C
  85f420fd03c5ea1a6d9590d66abccd31  gcc/testsuite/g++.dg/reflect/parameters_of3.C
*************** d20c15bde9b075e8a72181fbeddab319  gcc/te
*** 38047,38052 ****
--- 38053,38059 ----
  72689e6800e3d32f9204809856f50e61  gcc/testsuite/g++.dg/reflect/splice14.C
  eed060fced704207ab824b985f080663  gcc/testsuite/g++.dg/reflect/splice15.C
  4c6fba1d0167be5817fed114a0627b89  gcc/testsuite/g++.dg/reflect/splice16.C
+ 4938de60b6b0a54069126c88e3200608  gcc/testsuite/g++.dg/reflect/splice17.C
  c80b1bac424d9304fac93754834f224e  gcc/testsuite/g++.dg/reflect/splice2.C
  e0d01c0d72438804b2438e81debbc181  gcc/testsuite/g++.dg/reflect/splice3.C
  c900182698e22d48583b4bbd611fe1fb  gcc/testsuite/g++.dg/reflect/splice4.C
*************** ba5b967dcab5d2013a4e339db765537e  gcc/te
*** 58889,58894 ****
--- 58896,58902 ----
  80a660d63f731dcfb059b481a0a629ad  gcc/testsuite/gcc.dg/pr126405-2.c
  041741cee155bdd0ba85ca7e66ce9551  gcc/testsuite/gcc.dg/pr126405-3.c
  fdb2036892a5d4d268eb67a8a000644c  gcc/testsuite/gcc.dg/pr126464.c
+ d0daddff69ce2a043bb9b98f92be76e3  gcc/testsuite/gcc.dg/pr126534.c
  4cac82a4bb8865a31e0564aeae4b029c  gcc/testsuite/gcc.dg/pr126667.c
  6f0ef61e5a12db5f11da839b2988c5e1  gcc/testsuite/gcc.dg/pr13519-1.c
  86dc5cfaafafc79e11d0559d71baea6b  gcc/testsuite/gcc.dg/pr13804-1.c
*************** e6132b99fe49e5ef626b8a5c49e9670a  gcc/te
*** 62793,62798 ****
--- 62801,62808 ----
  930e9da2ce427d9141e0e47bf069cbd2  gcc/testsuite/gcc.dg/torture/pr126549.c
  736e87c77f1f1665b5c1e6d96c002b57  gcc/testsuite/gcc.dg/torture/pr126564.c
  f80e9f48f86c757f3f37f34e4c8e4f8c  gcc/testsuite/gcc.dg/torture/pr126576.c
+ 3be74d126fd8d19b7c23404e503083de  gcc/testsuite/gcc.dg/torture/pr126650.c
+ 4be4065d432251aa12d90e44344176ee  gcc/testsuite/gcc.dg/torture/pr126925.c
  ded4330fd1cd52783bd9b1761db038ef  gcc/testsuite/gcc.dg/torture/pr16104-1.c
  fc265ee05da2f29f0e92804661cd1f28  gcc/testsuite/gcc.dg/torture/pr17526.c
  01c583edb41b632b835aa892b9c1cb14  gcc/testsuite/gcc.dg/torture/pr17933-1.c
*************** be86bc81622216478087ebb0eb3b5c80  gcc/te
*** 67161,67166 ****
--- 67171,67177 ----
  536ff3716470f738cfa7ae45d07e10f8  gcc/testsuite/gcc.dg/vect/bb-slp-pr119181.c
  7985ca78d6f56c0a2c1475513068be88  gcc/testsuite/gcc.dg/vect/bb-slp-pr119960-1.c
  63bead846dcbd7cde9d80df1101fda79  gcc/testsuite/gcc.dg/vect/bb-slp-pr120808.c
+ 775fac435121742a0754aa19ac63de40  gcc/testsuite/gcc.dg/vect/bb-slp-pr126926.c
  c7ebf5ca82162d225346ddd17f7cd2e2  gcc/testsuite/gcc.dg/vect/bb-slp-pr50730.c
  d46400927215059ca9b31c5b97f6e386  gcc/testsuite/gcc.dg/vect/bb-slp-pr54400.c
  5472e7bf338627077f4e6ce8cce9944e  gcc/testsuite/gcc.dg/vect/bb-slp-pr58135.c
*************** e2924fddfdd2c711249ddbfae0b12b7f  gcc/te
*** 70892,70897 ****
--- 70903,70909 ----
  0695758275f51f6218cf195f3db50076  gcc/testsuite/gcc.target/aarch64/cpunative/info_33
  d7c6ea3e81a5b70c38883962d2efd8ee  gcc/testsuite/gcc.target/aarch64/cpunative/info_34
  d7c6ea3e81a5b70c38883962d2efd8ee  gcc/testsuite/gcc.target/aarch64/cpunative/info_35
+ 18a6f5935390f2dcfad26b80665b4c02  gcc/testsuite/gcc.target/aarch64/cpunative/info_36
  d8a7caffcc99feff5312001aed51cd38  gcc/testsuite/gcc.target/aarch64/cpunative/info_4
  195bf754aeaf6d4fa8426e8fb4a553ce  gcc/testsuite/gcc.target/aarch64/cpunative/info_5
  73a2f048b60d92f4c6f8167c05bbd47c  gcc/testsuite/gcc.target/aarch64/cpunative/info_6
*************** d399731376ae66ea072cb82782bf310a  gcc/te
*** 70925,70930 ****
--- 70937,70943 ----
  af6fba003ac74318b57ecd22c5ae3b7b  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_33.c
  7954e20457fa36fc88b8233fbfd02de6  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_34.c
  ed6c20b66e7487d804e92b9c34f85aa5  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_35.c
+ a1187a95c840252f3c77a8ad50920229  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_36.c
  d1af08d975410370c6fd940a45ef218c  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_4.c
  37f85a7eaba0054155c050334e383421  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_5.c
  63c5b23fb80b8ec12cc3c65027436fde  gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_6.c
*************** ebdb15be89bef0e9c175a92e85f05897  gcc/te
*** 79616,79623 ****
  025ddb61ae05cb8eff987c8cec961244  gcc/testsuite/gcc.target/arm/cmse/cmse-15.c
  5ff0a15a5a399d7d0fafcad196691899  gcc/testsuite/gcc.target/arm/cmse/cmse-16.c
  ec0c70b5899b431b52c53aba7a25843f  gcc/testsuite/gcc.target/arm/cmse/cmse-17.c
! 2b929af00dad162524dec248d1b72aa3  gcc/testsuite/gcc.target/arm/cmse/cmse-18.c
! a5e3d47fdebe7e5dea4aaa5a6dbfbfa6  gcc/testsuite/gcc.target/arm/cmse/cmse-19.c
  d307e00dde7714d2f353a08b08451b57  gcc/testsuite/gcc.target/arm/cmse/cmse-1c99.c
  aee7e08137af9ad5cb0dc780a0c319de  gcc/testsuite/gcc.target/arm/cmse/cmse-20.c
  266f2af407dee9fa3bf85b781282684c  gcc/testsuite/gcc.target/arm/cmse/cmse-3.c
--- 79629,79636 ----
  025ddb61ae05cb8eff987c8cec961244  gcc/testsuite/gcc.target/arm/cmse/cmse-15.c
  5ff0a15a5a399d7d0fafcad196691899  gcc/testsuite/gcc.target/arm/cmse/cmse-16.c
  ec0c70b5899b431b52c53aba7a25843f  gcc/testsuite/gcc.target/arm/cmse/cmse-17.c
! 165cc381037a92d184421422a33e7640  gcc/testsuite/gcc.target/arm/cmse/cmse-18.c
! a89e7658851acc0da1dfc8a4f3291bb6  gcc/testsuite/gcc.target/arm/cmse/cmse-19.c
  d307e00dde7714d2f353a08b08451b57  gcc/testsuite/gcc.target/arm/cmse/cmse-1c99.c
  aee7e08137af9ad5cb0dc780a0c319de  gcc/testsuite/gcc.target/arm/cmse/cmse-20.c
  266f2af407dee9fa3bf85b781282684c  gcc/testsuite/gcc.target/arm/cmse/cmse-3.c
*************** e3b5c6ca766a8337cc508a92b7f86586  gcc/te
*** 90777,90782 ****
--- 90790,90796 ----
  e11eed97001c00f6578dd361ce88c5fa  gcc/testsuite/gcc.target/i386/pr126529-4.c
  9f7ebb52583e7997f49bc9e24a5f230a  gcc/testsuite/gcc.target/i386/pr126581-1.c
  6a37cd46787901480538583943da1a5b  gcc/testsuite/gcc.target/i386/pr126676.c
+ 2ef1c5dd4b9ec4c9fdcf23ba50eede72  gcc/testsuite/gcc.target/i386/pr126787.c
  8951a1fa31f2d45ef9eacfff6a733f77  gcc/testsuite/gcc.target/i386/pr13366.c
  9a752a4b3b77930d91d3c8b0c8897b90  gcc/testsuite/gcc.target/i386/pr13685.c
  31ead0ee84b382ba03e3561931bc6e40  gcc/testsuite/gcc.target/i386/pr14289-1.c
*************** deb12224fed195721b2ddc8b70e46a23  gcc/te
*** 97289,97294 ****
--- 97303,97311 ----
  da26cb6383a24e6a94a6c247d777f6b8  gcc/testsuite/gcc.target/powerpc/pr118663.c
  800df636a3d7634e8c0d66c59de11951  gcc/testsuite/gcc.target/powerpc/pr121007.c
  5dc8065d72c427b79c75ffd95b743639  gcc/testsuite/gcc.target/powerpc/pr124637.c
+ 059fa3f6c58e73b7eb349ff628b2e844  gcc/testsuite/gcc.target/powerpc/pr126513-acmp-tst-1.c
+ c6b26c7724ebb9cc3e22a696915d2ed8  gcc/testsuite/gcc.target/powerpc/pr126513-acmp-tst-2.c
+ 43b6052bd91664fcfa4b854e6d9a9151  gcc/testsuite/gcc.target/powerpc/pr126513-acmp-tst-3.c
  f0441edf54193f1b965b7d96e3ad8f52  gcc/testsuite/gcc.target/powerpc/pr16155.c
  6f5ca156bb125cbf24502221226bb56e  gcc/testsuite/gcc.target/powerpc/pr16286.c
  198d8a69d2887e8fadcb050d90e21aa6  gcc/testsuite/gcc.target/powerpc/pr16458-1.c
*************** cb9ccf001da2d7d1cf77a7d2e9ebeed2  gcc/te
*** 113084,113089 ****
--- 113101,113107 ----
  8a7966d3a124002e000afedcfc5dfc1f  gcc/testsuite/gfortran.dg/bind_c_module_proc.f90
  74a4370d67a610f90e4eed4db0901687  gcc/testsuite/gfortran.dg/bind_c_optional-1.f90
  65e0bb83cbf49d5a78d319d060fe4102  gcc/testsuite/gfortran.dg/bind_c_optional-2.f90
+ d921faef070751d3f9ebcf9cab0d25bc  gcc/testsuite/gfortran.dg/bind_c_private_1.f90
  fe8c5e542693077295c21e4aaab6c998  gcc/testsuite/gfortran.dg/bind_c_procs.f03
  55687585265263f1b2e68929e4c12de3  gcc/testsuite/gfortran.dg/bind_c_procs_2.f90
  67f38e9de2f12b98af2d4078c0fbac44  gcc/testsuite/gfortran.dg/bind_c_procs_3.f90
*************** e3f8979302c39ffbf6c7c03d08fc1562  gcc/te
*** 115237,115242 ****
--- 115255,115261 ----
  00394d3b18b9e094a6751225fef04a51  gcc/testsuite/gfortran.dg/finalize_6.f90
  cccfd4eb98b07f30fc6a43462ae1078b  gcc/testsuite/gfortran.dg/finalize_60.f90
  51e31db84f6ad06fd2677048b3bc3292  gcc/testsuite/gfortran.dg/finalize_61.f90
+ d8f0228c94bdb00c8738708fcadfe950  gcc/testsuite/gfortran.dg/finalize_62.f90
  520ae6cd723f43e02411aa72bb807bb5  gcc/testsuite/gfortran.dg/finalize_7.f03
  4f05943427a26d27e44b21078aec46fe  gcc/testsuite/gfortran.dg/finalize_8.f03
  2127f420195e5f6cdb58fe18800b4c33  gcc/testsuite/gfortran.dg/finalize_9.f90
*************** cc69f06d5cf4cbc8c70e417d3db3148b  gcc/te
*** 125370,125375 ****
--- 125389,125395 ----
  5870b8cebdd6ce91693a485c5a6854d5  gcc/testsuite/gnat.dg/reduce4.adb
  001425eca43e1ece9e65dd7929459079  gcc/testsuite/gnat.dg/reduce5.adb
  4bfff26122d5903178ba10ce7dc12f6c  gcc/testsuite/gnat.dg/reduce6.adb
+ 300aebdec53772ab208fc7f21d3a64ff  gcc/testsuite/gnat.dg/reduce7.adb
  50be8d98f4f9ac99d64926a10596a2df  gcc/testsuite/gnat.dg/ref_type.adb
  5457827e708b7bfc92ffe5610655a443  gcc/testsuite/gnat.dg/ref_type.ads
  222b5d10f23a2e8e8a5e4d41e86e66ed  gcc/testsuite/gnat.dg/regpat1.adb
*************** bc790bd930f8c4f971b8268bdda83659  gcc/te
*** 125594,125599 ****
--- 125614,125624 ----
  b605c919a473b8d6808dd232aa7eaf49  gcc/testsuite/gnat.dg/specs/gen_interface.ads
  4830454a8335e61b1876284f60de9782  gcc/testsuite/gnat.dg/specs/gen_interface_p.ads
  c3d551a8416dc4b2870263e10877307e  gcc/testsuite/gnat.dg/specs/generic_inst1.ads
+ 29717aba143fcc96f1b938c32ca64c95  gcc/testsuite/gnat.dg/specs/generic_inst10.ads
+ ff61e2dc1682c4e2296ccb140d4ef20c  gcc/testsuite/gnat.dg/specs/generic_inst10_g1.ads
+ 8a04425940326cf69fe99422b9ca68e7  gcc/testsuite/gnat.dg/specs/generic_inst10_g2.ads
+ bba010393fa4e393cf7b1fe8bea36862  gcc/testsuite/gnat.dg/specs/generic_inst10_g3.ads
+ 714a84f9e9342b8ec4cbfa37a8c54855  gcc/testsuite/gnat.dg/specs/generic_inst10_pkg.ads
  84bbd54b835597ff50d8d9c0c1ed6128  gcc/testsuite/gnat.dg/specs/generic_inst2-child1.ads
  acb50fb5dcaeadfaa1d06f3a291ad5ac  gcc/testsuite/gnat.dg/specs/generic_inst2-child2.ads
  26c02326292bb6ec71f4f8278f140bff  gcc/testsuite/gnat.dg/specs/generic_inst2.ads
*************** de9eeadec9703aff96169206e31a3a22  gcc/te
*** 128555,128561 ****
  275f7eb9618e6b097a58c1fba25cdb9c  gcc/testsuite/lib/scanwpaipa.exp
  9bc4cbcf0cb4f1aa30a8cf3142d157eb  gcc/testsuite/lib/target-libpath.exp
  6f6a566231f79b409eb113cf2e7f5132  gcc/testsuite/lib/target-supports-dg.exp
! 2ca2d2f61c57ecfec6588c14ebe97d22  gcc/testsuite/lib/target-supports.exp
  b1eb2edcf4941bfb00c200eb000a0a7b  gcc/testsuite/lib/target-utils.exp
  98b890f6c455deafd6ca241993fc5d67  gcc/testsuite/lib/timeout-dg.exp
  0afb0c69501fa44908d13017be208db3  gcc/testsuite/lib/timeout.exp
--- 128580,128586 ----
  275f7eb9618e6b097a58c1fba25cdb9c  gcc/testsuite/lib/scanwpaipa.exp
  9bc4cbcf0cb4f1aa30a8cf3142d157eb  gcc/testsuite/lib/target-libpath.exp
  6f6a566231f79b409eb113cf2e7f5132  gcc/testsuite/lib/target-supports-dg.exp
! cb0a543c19c127e925de36ac41a90b0b  gcc/testsuite/lib/target-supports.exp
  b1eb2edcf4941bfb00c200eb000a0a7b  gcc/testsuite/lib/target-utils.exp
  98b890f6c455deafd6ca241993fc5d67  gcc/testsuite/lib/timeout-dg.exp
  0afb0c69501fa44908d13017be208db3  gcc/testsuite/lib/timeout.exp
*************** af430d420eee56a4d869b7421ddb08b9  gcc/to
*** 131327,131333 ****
  461d12af5a299c303884d0d07511a6a9  gcc/tracer.h
  993a97b28cca7c2e5421ec297455f2ce  gcc/trans-mem.cc
  a4340dde4019e28f9fad54b2a7770c74  gcc/trans-mem.h
! 330c89392efb47062df1e82fff7ef01d  gcc/tree-affine.cc
  ed70c897fa5690940494f2b8b6e27f21  gcc/tree-affine.h
  bc74f92323ee5636997f0c03aec16115  gcc/tree-assume.cc
  a0c02d542dbd50cb44704b2ffce2739c  gcc/tree-call-cdce.cc
--- 131352,131358 ----
  461d12af5a299c303884d0d07511a6a9  gcc/tracer.h
  993a97b28cca7c2e5421ec297455f2ce  gcc/trans-mem.cc
  a4340dde4019e28f9fad54b2a7770c74  gcc/trans-mem.h
! a1bea0f648aed43aeb17a807ccc15133  gcc/tree-affine.cc
  ed70c897fa5690940494f2b8b6e27f21  gcc/tree-affine.h
  bc74f92323ee5636997f0c03aec16115  gcc/tree-assume.cc
  a0c02d542dbd50cb44704b2ffce2739c  gcc/tree-call-cdce.cc
*************** bb90d30f7c6176fd9edf8b10cc7803b6  gcc/tr
*** 131410,131416 ****
  dcaeaaad1469ccb53d09d0c3975284d7  gcc/tree-ssa-loop-ch.cc
  2b00d0f0fd67365a2e05a25f3a784111  gcc/tree-ssa-loop-im.cc
  f8b96abb98adf78d9bf9645ec4529541  gcc/tree-ssa-loop-ivcanon.cc
! 0352f316ce735254fc0a8394edd81dc6  gcc/tree-ssa-loop-ivopts.cc
  73db7c26eb3c2afa63524b388a9849fd  gcc/tree-ssa-loop-ivopts.h
  3b019867aefd4f962c260256d5bed88e  gcc/tree-ssa-loop-manip.cc
  d6013c7f2ea70d40b0d82c53eacccd45  gcc/tree-ssa-loop-manip.h
--- 131435,131441 ----
  dcaeaaad1469ccb53d09d0c3975284d7  gcc/tree-ssa-loop-ch.cc
  2b00d0f0fd67365a2e05a25f3a784111  gcc/tree-ssa-loop-im.cc
  f8b96abb98adf78d9bf9645ec4529541  gcc/tree-ssa-loop-ivcanon.cc
! c77246ae8bc4c85f3dd6725b084270bf  gcc/tree-ssa-loop-ivopts.cc
  73db7c26eb3c2afa63524b388a9849fd  gcc/tree-ssa-loop-ivopts.h
  3b019867aefd4f962c260256d5bed88e  gcc/tree-ssa-loop-manip.cc
  d6013c7f2ea70d40b0d82c53eacccd45  gcc/tree-ssa-loop-manip.h
*************** f4b6293b33ff0a7b939e7fda4a1f995e  gcc/tr
*** 131470,131476 ****
  ce7d396549ec55b9c0083aabea823bc1  gcc/tree-vect-loop.cc
  69397aeb279891dfd9b22e70d3705be0  gcc/tree-vect-patterns.cc
  28492f085ab589b35caa61bf83cbc03b  gcc/tree-vect-slp-patterns.cc
! f1d64bed2d9e1199237b3119de364117  gcc/tree-vect-slp.cc
  3bc7371e6f4ab47505d67eb482be09df  gcc/tree-vect-stmts.cc
  42032e04f389a2e0f43fbb46ac091dac  gcc/tree-vector-builder.cc
  4a1b4947e64a076fdca46d14aab2181f  gcc/tree-vector-builder.h
--- 131495,131501 ----
  ce7d396549ec55b9c0083aabea823bc1  gcc/tree-vect-loop.cc
  69397aeb279891dfd9b22e70d3705be0  gcc/tree-vect-patterns.cc
  28492f085ab589b35caa61bf83cbc03b  gcc/tree-vect-slp-patterns.cc
! 78a9d6411f64680064089d6172a2ca8d  gcc/tree-vect-slp.cc
  3bc7371e6f4ab47505d67eb482be09df  gcc/tree-vect-stmts.cc
  42032e04f389a2e0f43fbb46ac091dac  gcc/tree-vector-builder.cc
  4a1b4947e64a076fdca46d14aab2181f  gcc/tree-vector-builder.h
*************** fc49680d0c6e77e437523ea496a6b8c4  libga6
*** 132362,132370 ****
  095aff369c31681c96b933fbedd8e05f  libga68/posix.a68
  b0d017b83148520411f1c1ebdbf28b58  libga68/sppp.awk
  2fa97828e3e0465a81a613f3f4173bdd  libga68/standard.a68.in
! 43879a62f22ac70b32ae0e23400e823d  libgcc/ChangeLog
  9ce0b8c50fec68eb0555ae800e4e457e  libgcc/Makefile.in
! 71d0f27da0d8bbe096136dc304bdb11f  libgcc/config.host
  46412830a2ee8a02503ccc921912c3cf  libgcc/config.in
  453dd2d1f5f7e9b0683ae1c960ef7eac  libgcc/config/aarch64/__aarch64_have_sme.c
  aee2000eefb98b188a6cd051fd4e1e72  libgcc/config/aarch64/__arm_get_current_vg.S
--- 132387,132395 ----
  095aff369c31681c96b933fbedd8e05f  libga68/posix.a68
  b0d017b83148520411f1c1ebdbf28b58  libga68/sppp.awk
  2fa97828e3e0465a81a613f3f4173bdd  libga68/standard.a68.in
! f6ac09f79ccda8ee5aa209a95eb1af05  libgcc/ChangeLog
  9ce0b8c50fec68eb0555ae800e4e457e  libgcc/Makefile.in
! 9997f2500c9a8d8937981f0d63cc0c16  libgcc/config.host
  46412830a2ee8a02503ccc921912c3cf  libgcc/config.in
  453dd2d1f5f7e9b0683ae1c960ef7eac  libgcc/config/aarch64/__aarch64_have_sme.c
  aee2000eefb98b188a6cd051fd4e1e72  libgcc/config/aarch64/__arm_get_current_vg.S
*************** ef74fd63202d842bfe7120864186128c  libgcc
*** 133022,133027 ****
--- 133047,133053 ----
  6fb1bd6c61eb074b4e006e0a355751bb  libgcc/config/microblaze/crtn.S
  428ae7322663562f4b5d110c906ab8cf  libgcc/config/microblaze/divsi3.S
  92819b96fc94be1d22fee6e049f8bf50  libgcc/config/microblaze/divsi3_table.c
+ 6a42da17fe0aa00bc498948eeec6d616  libgcc/config/microblaze/linux-unwind.h
  c5ad57c021373a85cc3f32946d140d23  libgcc/config/microblaze/moddi3.S
  06900d0735d411c82a00bd31c96ea484  libgcc/config/microblaze/modsi3.S
  95652262bac1a0e085ce27e8c4e67b6d  libgcc/config/microblaze/muldi3_hard.S
*************** a73d560a3ba317c5ad0a7919d87b4b6d  libssp
*** 146240,146246 ****
  7d75fa0d30318408fe4cd91d9cbe3ac7  libssp/vsnprintf-chk.c
  e9ff0f4bdd1be75a507480ed1267459d  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! 544ae7651b7ddba47483057bf1be6167  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 146266,146272 ----
  7d75fa0d30318408fe4cd91d9cbe3ac7  libssp/vsnprintf-chk.c
  e9ff0f4bdd1be75a507480ed1267459d  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! 636761daa54baa8c5854f14996e99cd6  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
*************** a94321c8d0dbbc71741ebf0f1cc9828c  libstd
*** 146272,146278 ****
  9161085c79a8bf8d60641b5525f28bd7  libstdc++-v3/Makefile.am
  dbe6646c8cac125dd885d66a4fd4ce40  libstdc++-v3/Makefile.in
  f372af73db4ac0ad88e43199e1f29e08  libstdc++-v3/README
! 3ada7a35277d92dd77e1b8461d3b389e  libstdc++-v3/acinclude.m4
  66d9ad645fa12cd3028e72df3375d9a6  libstdc++-v3/aclocal.m4
  99a3cff2df96180120774fefa11f050e  libstdc++-v3/config.h.in
  2345fca717fc01f8c1494241d6a88e94  libstdc++-v3/config/abi/compatibility.h
--- 146298,146304 ----
  9161085c79a8bf8d60641b5525f28bd7  libstdc++-v3/Makefile.am
  dbe6646c8cac125dd885d66a4fd4ce40  libstdc++-v3/Makefile.in
  f372af73db4ac0ad88e43199e1f29e08  libstdc++-v3/README
! 1975ef7939a17600acb1513849c64bed  libstdc++-v3/acinclude.m4
  66d9ad645fa12cd3028e72df3375d9a6  libstdc++-v3/aclocal.m4
  99a3cff2df96180120774fefa11f050e  libstdc++-v3/config.h.in
  2345fca717fc01f8c1494241d6a88e94  libstdc++-v3/config/abi/compatibility.h
*************** c0c7c8e43d693e3f89c938bb151b0717  libstd
*** 146405,146411 ****
  f298b616865e5fe00d050bee98304ae2  libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc
  9bc43ac98a94981e3d0a503f2fb3c582  libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h
  46756953e7a2d602e3f18f2d1f8efcb8  libstdc++-v3/config/os/bsd/netbsd/os_defines.h
! ca7d83a2690050e19c0dc7ff0d85885d  libstdc++-v3/config/os/bsd/openbsd/ctype_base.h
  881fc2091c4266e0e9be93a446c3f35b  libstdc++-v3/config/os/bsd/openbsd/ctype_configure_char.cc
  7a7880baa568e9b7ffc33bb78ab9efe5  libstdc++-v3/config/os/bsd/openbsd/ctype_inline.h
  7bc82752164f943480a015890f520e78  libstdc++-v3/config/os/bsd/openbsd/os_defines.h
--- 146431,146437 ----
  f298b616865e5fe00d050bee98304ae2  libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc
  9bc43ac98a94981e3d0a503f2fb3c582  libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h
  46756953e7a2d602e3f18f2d1f8efcb8  libstdc++-v3/config/os/bsd/netbsd/os_defines.h
! 57d5e65ad4f1bc9b96ad56dad0937b3c  libstdc++-v3/config/os/bsd/openbsd/ctype_base.h
  881fc2091c4266e0e9be93a446c3f35b  libstdc++-v3/config/os/bsd/openbsd/ctype_configure_char.cc
  7a7880baa568e9b7ffc33bb78ab9efe5  libstdc++-v3/config/os/bsd/openbsd/ctype_inline.h
  7bc82752164f943480a015890f520e78  libstdc++-v3/config/os/bsd/openbsd/os_defines.h
*************** a144795bdde388f89eb6222f0c2e4932  libstd
*** 146468,146474 ****
  53df82982400fd3d426f3fd0e0c37b54  libstdc++-v3/config/os/vxworks/ctype_configure_char.cc
  a3f907fa7f71dc9eb08755c9c438accc  libstdc++-v3/config/os/vxworks/ctype_inline.h
  309bdcfd61ec9ca44671057524c081f1  libstdc++-v3/config/os/vxworks/os_defines.h
! 1345e6ec30d23cefeb6c0207a2b07c2b  libstdc++-v3/configure
  ef7d4ee8dfc656b2511fdab05020e10d  libstdc++-v3/configure.ac
  bfcbc1fdbf99aa57e07470ca81fd7627  libstdc++-v3/configure.host
  450cc52f6f6f0abf59940662504c450e  libstdc++-v3/crossconfig.m4
--- 146494,146500 ----
  53df82982400fd3d426f3fd0e0c37b54  libstdc++-v3/config/os/vxworks/ctype_configure_char.cc
  a3f907fa7f71dc9eb08755c9c438accc  libstdc++-v3/config/os/vxworks/ctype_inline.h
  309bdcfd61ec9ca44671057524c081f1  libstdc++-v3/config/os/vxworks/os_defines.h
! 70af5c10d6082647181ac0049d62a803  libstdc++-v3/configure
  ef7d4ee8dfc656b2511fdab05020e10d  libstdc++-v3/configure.ac
  bfcbc1fdbf99aa57e07470ca81fd7627  libstdc++-v3/configure.host
  450cc52f6f6f0abf59940662504c450e  libstdc++-v3/crossconfig.m4
*************** ad86ba065860cc280af4d463bd5ac78e  libstd
*** 146995,147001 ****
  70fb2f8fab4692fafd8fa11d91d01edd  libstdc++-v3/include/bits/parse_numbers.h
  6a72ede97c52245c80e7794718ee0021  libstdc++-v3/include/bits/postypes.h
  244c55c9dbbe4afb3b877765deccda78  libstdc++-v3/include/bits/predefined_ops.h
! b07bdc6c6cec90e9cf7a74c52af0e9fc  libstdc++-v3/include/bits/print.h
  075f43aeeb1c6dd2ab940ff22b8bd93c  libstdc++-v3/include/bits/ptr_traits.h
  e9057d3a64660954bf7134e2fb721b51  libstdc++-v3/include/bits/quoted_string.h
  b745abd5614b31045999aba98b3d30c4  libstdc++-v3/include/bits/random.h
--- 147021,147027 ----
  70fb2f8fab4692fafd8fa11d91d01edd  libstdc++-v3/include/bits/parse_numbers.h
  6a72ede97c52245c80e7794718ee0021  libstdc++-v3/include/bits/postypes.h
  244c55c9dbbe4afb3b877765deccda78  libstdc++-v3/include/bits/predefined_ops.h
! bc61e9d072feef1fd64ba89df95c44fb  libstdc++-v3/include/bits/print.h
  075f43aeeb1c6dd2ab940ff22b8bd93c  libstdc++-v3/include/bits/ptr_traits.h
  e9057d3a64660954bf7134e2fb721b51  libstdc++-v3/include/bits/quoted_string.h
  b745abd5614b31045999aba98b3d30c4  libstdc++-v3/include/bits/random.h
*************** b136a78972f27620821fe613b75e98f4  libstd
*** 147034,147040 ****
  080a83da180318d4fad98edf12e5c689  libstdc++-v3/include/bits/simd_mask.h
  55677796a9d03b2fcab6c8eb9866efcb  libstdc++-v3/include/bits/simd_mask_reductions.h
  fce0564b07dd0ef981a64c683bfadc5a  libstdc++-v3/include/bits/simd_reductions.h
! 63e3d93b3a79446635a1c88ee41576f5  libstdc++-v3/include/bits/simd_vec.h
  86eb307e0886ccc75570d22c33f78b3a  libstdc++-v3/include/bits/simd_x86.h
  c7864edd44ec162778d0cb89b0129937  libstdc++-v3/include/bits/slice_array.h
  78e195bd62ca638897505b698c3193de  libstdc++-v3/include/bits/specfun.h
--- 147060,147066 ----
  080a83da180318d4fad98edf12e5c689  libstdc++-v3/include/bits/simd_mask.h
  55677796a9d03b2fcab6c8eb9866efcb  libstdc++-v3/include/bits/simd_mask_reductions.h
  fce0564b07dd0ef981a64c683bfadc5a  libstdc++-v3/include/bits/simd_reductions.h
! 2cf658254115b2550b467a01ccb8f830  libstdc++-v3/include/bits/simd_vec.h
  86eb307e0886ccc75570d22c33f78b3a  libstdc++-v3/include/bits/simd_x86.h
  c7864edd44ec162778d0cb89b0129937  libstdc++-v3/include/bits/slice_array.h
  78e195bd62ca638897505b698c3193de  libstdc++-v3/include/bits/specfun.h
*************** f9e306b8cee74f13390d2c91f994d69f  libstd
*** 147048,147059 ****
  4ebc2f0739aa489c68b54dccba9f2290  libstdc++-v3/include/bits/stdexcept_throwdef.h
  9414705c520a817ae3b22dec29912b18  libstdc++-v3/include/bits/stdexcept_throwfwd.h
  17332362c7ba0c7b2b3d14f656324b1b  libstdc++-v3/include/bits/stl_algo.h
! bb3f76482179ec4ebe183284d0d69874  libstdc++-v3/include/bits/stl_algobase.h
  4e5a06e505381e0b1af562ff59670f89  libstdc++-v3/include/bits/stl_bvector.h
  c53878727e94c56c0b362d17dfe0fca2  libstdc++-v3/include/bits/stl_construct.h
  7ff5badcdf0331f820bb5c635a0c2352  libstdc++-v3/include/bits/stl_deque.h
  dad6f36c0bb9a2b5c5cfe42d6904e350  libstdc++-v3/include/bits/stl_function.h
! 4af65d6cfcd3e9943b1da341c9fa26ad  libstdc++-v3/include/bits/stl_heap.h
  bd2e27c602ee02023df28ac89c0ad816  libstdc++-v3/include/bits/stl_iterator.h
  30a80fd43b03c9e9bd8e65998464377f  libstdc++-v3/include/bits/stl_iterator_base_funcs.h
  e8556ffa25de8ce12d02235826b7f595  libstdc++-v3/include/bits/stl_iterator_base_types.h
--- 147074,147085 ----
  4ebc2f0739aa489c68b54dccba9f2290  libstdc++-v3/include/bits/stdexcept_throwdef.h
  9414705c520a817ae3b22dec29912b18  libstdc++-v3/include/bits/stdexcept_throwfwd.h
  17332362c7ba0c7b2b3d14f656324b1b  libstdc++-v3/include/bits/stl_algo.h
! 67a3769f143eec167c37d2842987f547  libstdc++-v3/include/bits/stl_algobase.h
  4e5a06e505381e0b1af562ff59670f89  libstdc++-v3/include/bits/stl_bvector.h
  c53878727e94c56c0b362d17dfe0fca2  libstdc++-v3/include/bits/stl_construct.h
  7ff5badcdf0331f820bb5c635a0c2352  libstdc++-v3/include/bits/stl_deque.h
  dad6f36c0bb9a2b5c5cfe42d6904e350  libstdc++-v3/include/bits/stl_function.h
! c0f29373700aa4d52ef22cddc3975b26  libstdc++-v3/include/bits/stl_heap.h
  bd2e27c602ee02023df28ac89c0ad816  libstdc++-v3/include/bits/stl_iterator.h
  30a80fd43b03c9e9bd8e65998464377f  libstdc++-v3/include/bits/stl_iterator_base_funcs.h
  e8556ffa25de8ce12d02235826b7f595  libstdc++-v3/include/bits/stl_iterator_base_types.h
*************** a8e79cb6c591611cd6113eed355c3de6  libstd
*** 147664,147670 ****
  d1dc8325fc8c069a07bab71a935bced3  libstdc++-v3/include/std/filesystem
  5f6d1d543aa97204300a7a76284f8775  libstdc++-v3/include/std/flat_map
  c3b66598ccd8ea2009de9b04433b7dcf  libstdc++-v3/include/std/flat_set
! 0c76c296d41d277176c9ef76bd285c62  libstdc++-v3/include/std/format
  7e1c7765d1205d0a0571065e7e1f111d  libstdc++-v3/include/std/forward_list
  c85826e5073be733076e4825a96a991c  libstdc++-v3/include/std/fstream
  5907213253b81e40fd9101e5d092fc82  libstdc++-v3/include/std/functional
--- 147690,147696 ----
  d1dc8325fc8c069a07bab71a935bced3  libstdc++-v3/include/std/filesystem
  5f6d1d543aa97204300a7a76284f8775  libstdc++-v3/include/std/flat_map
  c3b66598ccd8ea2009de9b04433b7dcf  libstdc++-v3/include/std/flat_set
! 67406c8f0f2ed5e580d8fa6e626af588  libstdc++-v3/include/std/format
  7e1c7765d1205d0a0571065e7e1f111d  libstdc++-v3/include/std/forward_list
  c85826e5073be733076e4825a96a991c  libstdc++-v3/include/std/fstream
  5907213253b81e40fd9101e5d092fc82  libstdc++-v3/include/std/functional
*************** eef1550aec0449a7252754780992ef6a  libstd
*** 147687,147693 ****
  ea0d67f29f1a73f1ccdade0115646a1c  libstdc++-v3/include/std/memory_resource
  567571e5d45a92d724eb13976d8d825d  libstdc++-v3/include/std/meta
  6042ceb95043702de02a8354f2507317  libstdc++-v3/include/std/mutex
! 98a3e25011c5fb2383b3824b1c349d43  libstdc++-v3/include/std/numbers
  6a44514a47e24df75405dc1d397afc69  libstdc++-v3/include/std/numeric
  cb706beeda8a5831cae48dc9595d456c  libstdc++-v3/include/std/optional
  bcf1c0b79e2efd9cd34763d368f40966  libstdc++-v3/include/std/ostream
--- 147713,147719 ----
  ea0d67f29f1a73f1ccdade0115646a1c  libstdc++-v3/include/std/memory_resource
  567571e5d45a92d724eb13976d8d825d  libstdc++-v3/include/std/meta
  6042ceb95043702de02a8354f2507317  libstdc++-v3/include/std/mutex
! 7235332847d63e07816e2413bfeb06b0  libstdc++-v3/include/std/numbers
  6a44514a47e24df75405dc1d397afc69  libstdc++-v3/include/std/numeric
  cb706beeda8a5831cae48dc9595d456c  libstdc++-v3/include/std/optional
  bcf1c0b79e2efd9cd34763d368f40966  libstdc++-v3/include/std/ostream
*************** ff13c54f5ff0b31a92c1377b847aa7cd  libstd
*** 153290,153295 ****
--- 153316,153322 ----
  8d6758d7ccb3a9314a6b76abfbb1349f  libstdc++-v3/testsuite/25_algorithms/find_if/check_type.cc
  88c73b85ddc28f6bc105c7343534e127  libstdc++-v3/testsuite/25_algorithms/find_if/constexpr.cc
  2bda84a1581fc4c417de6210038acbb5  libstdc++-v3/testsuite/25_algorithms/find_if/constrained.cc
+ 5b6e72d8a85503dde761e914b586172f  libstdc++-v3/testsuite/25_algorithms/find_if/overloaded_logical_ops.cc
  1c6e66cc9a68b3033fd1c7252c55af84  libstdc++-v3/testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc
  a597532e8836bf4878211fff4fc8c60d  libstdc++-v3/testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc
  fc527693214b21518359dccefd675e1f  libstdc++-v3/testsuite/25_algorithms/find_if/vectorbool.cc
*************** f934273bae394b0465338209c9da4bb9  libstd
*** 153493,153498 ****
--- 153520,153526 ----
  0f7f46c296b784550931c6ef8c57dfd9  libstdc++-v3/testsuite/25_algorithms/mismatch/check_type2.cc
  ad3de0336e537cc695a236c0e95bad5c  libstdc++-v3/testsuite/25_algorithms/mismatch/constexpr.cc
  0de20b1846553d2c3995fa6f6c9e521f  libstdc++-v3/testsuite/25_algorithms/mismatch/constrained.cc
+ 5acbeaa3a6ea2ef3fb4e410f696c0d15  libstdc++-v3/testsuite/25_algorithms/mismatch/overloaded_logical_ops.cc
  049fed64ce1c8f5d9ff648435e216815  libstdc++-v3/testsuite/25_algorithms/move/1.cc
  2c569f31dfe379911229d187a44ffca6  libstdc++-v3/testsuite/25_algorithms/move/105609.cc
  aace0cdd5e42f11fdd7c78151e077cda  libstdc++-v3/testsuite/25_algorithms/move/108846.cc
*************** d1265fa86fa3f51c1a8c48f6ce054cec  libstd
*** 155604,155610 ****
  884f9924d63cda85d563691777b17daf  libstdc++-v3/testsuite/27_io/objects/wchar_t/9_xin.cc
  b715c45a6677f269807dab0bbcf0ee1d  libstdc++-v3/testsuite/27_io/objects/wchar_t/9_xin.in
  bedb4787180de48850b9d3e93b069289  libstdc++-v3/testsuite/27_io/objects/wchar_t/dr455.cc
! 9411c3470699cb8b6c41dca62d32aa88  libstdc++-v3/testsuite/27_io/print/1.cc
  a439eaf7ea52a89548ecd3344bd3c08d  libstdc++-v3/testsuite/27_io/print/2.cc
  f6c79e469ea2b0dddd1990749fa4b787  libstdc++-v3/testsuite/27_io/print/3.cc
  1fcb896c44256929a07977ca21fe5196  libstdc++-v3/testsuite/27_io/rvalue_streams-2.cc
--- 155632,155638 ----
  884f9924d63cda85d563691777b17daf  libstdc++-v3/testsuite/27_io/objects/wchar_t/9_xin.cc
  b715c45a6677f269807dab0bbcf0ee1d  libstdc++-v3/testsuite/27_io/objects/wchar_t/9_xin.in
  bedb4787180de48850b9d3e93b069289  libstdc++-v3/testsuite/27_io/objects/wchar_t/dr455.cc
! 196b79291ea20dfb1dc7eab55a5f4ce1  libstdc++-v3/testsuite/27_io/print/1.cc
  a439eaf7ea52a89548ecd3344bd3c08d  libstdc++-v3/testsuite/27_io/print/2.cc
  f6c79e469ea2b0dddd1990749fa4b787  libstdc++-v3/testsuite/27_io/print/3.cc
  1fcb896c44256929a07977ca21fe5196  libstdc++-v3/testsuite/27_io/rvalue_streams-2.cc
*************** a228a2340ca9de5350db67f736edcd0b  libstd
*** 157519,157525 ****
  45280a2212e6fb520cb8b7465d640540  libstdc++-v3/testsuite/std/format/formatter/120625.cc
  6dfab89727d04a1035aba73afcf4d6a8  libstdc++-v3/testsuite/std/format/formatter/basic.cc
  ded8934ce957f586a60f8704fba49c77  libstdc++-v3/testsuite/std/format/formatter/concept.cc
! 43cc21b94d247227b33bbccce8e28b07  libstdc++-v3/testsuite/std/format/formatter/ext_float.cc
  e7d2a20ce851bd6197787606fcea68bd  libstdc++-v3/testsuite/std/format/formatter/lwg3944.cc
  11f82ceaf331c2e9766021ff63ac7ac5  libstdc++-v3/testsuite/std/format/formatter/nonlocking.cc
  9da8b451d80f7ce437c2c7f6cfcee138  libstdc++-v3/testsuite/std/format/formatter/requirements.cc
--- 157547,157553 ----
  45280a2212e6fb520cb8b7465d640540  libstdc++-v3/testsuite/std/format/formatter/120625.cc
  6dfab89727d04a1035aba73afcf4d6a8  libstdc++-v3/testsuite/std/format/formatter/basic.cc
  ded8934ce957f586a60f8704fba49c77  libstdc++-v3/testsuite/std/format/formatter/concept.cc
! 531302025ace30ade332f68708a43843  libstdc++-v3/testsuite/std/format/formatter/ext_float.cc
  e7d2a20ce851bd6197787606fcea68bd  libstdc++-v3/testsuite/std/format/formatter/lwg3944.cc
  11f82ceaf331c2e9766021ff63ac7ac5  libstdc++-v3/testsuite/std/format/formatter/nonlocking.cc
  9da8b451d80f7ce437c2c7f6cfcee138  libstdc++-v3/testsuite/std/format/formatter/requirements.cc
*************** b3cda48993495a5d2ff69f7f1ad2c695  libstd
*** 157715,157721 ****
  a87e1152f6bc2804b93ce070a51eeb54  libstdc++-v3/testsuite/std/time/clock/tai/io.cc
  33b0f61f2113641c61ba5cd53d9a52a3  libstdc++-v3/testsuite/std/time/clock/utc/1.cc
  91c1a13a9f62d24541dc87bd44c15db4  libstdc++-v3/testsuite/std/time/clock/utc/io.cc
! 8207a230fceb4f378b286a04d4911dde  libstdc++-v3/testsuite/std/time/clock/utc/leap_second_info-2.cc
  01f8f5b7e0644716179c7a0f95af5d9d  libstdc++-v3/testsuite/std/time/clock/utc/leap_second_info.cc
  225275a54c046285affc36a80ea7383b  libstdc++-v3/testsuite/std/time/day/1.cc
  9b5b79c912b11d4f48e1fb35fb111742  libstdc++-v3/testsuite/std/time/day/io.cc
--- 157743,157749 ----
  a87e1152f6bc2804b93ce070a51eeb54  libstdc++-v3/testsuite/std/time/clock/tai/io.cc
  33b0f61f2113641c61ba5cd53d9a52a3  libstdc++-v3/testsuite/std/time/clock/utc/1.cc
  91c1a13a9f62d24541dc87bd44c15db4  libstdc++-v3/testsuite/std/time/clock/utc/io.cc
! bd79900f50a9bef26b837fa507786135  libstdc++-v3/testsuite/std/time/clock/utc/leap_second_info-2.cc
  01f8f5b7e0644716179c7a0f95af5d9d  libstdc++-v3/testsuite/std/time/clock/utc/leap_second_info.cc
  225275a54c046285affc36a80ea7383b  libstdc++-v3/testsuite/std/time/day/1.cc
  9b5b79c912b11d4f48e1fb35fb111742  libstdc++-v3/testsuite/std/time/day/io.cc
diff -Nrcpad gcc-16-20260815/gcc/ChangeLog gcc-16-20260822/gcc/ChangeLog
*** gcc-16-20260815/gcc/ChangeLog	Sat Aug 15 22:32:05 2026
--- gcc-16-20260822/gcc/ChangeLog	Sat Aug 22 22:32:06 2026
***************
*** 1,3 ****
--- 1,124 ----
+ 2026-08-20  Pietro Monteiro  <pietro@sociotechnical.xyz>
+ 
+ 	Backported from master:
+ 	2026-08-15  Pietro Monteiro  <pietro@sociotechnical.xyz>
+ 
+ 	* config/t-openbsd (USER_H): Add $(srcdir)/ginclude/stdatomic.h.
+ 
+ 2026-08-20  Manjunath Matti  <mmatti@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2026-08-20  Manjunath Matti  <mmatti@linux.ibm.com>
+ 
+ 	PR middle-end/126939
+ 	* gimple-lower-bitint.cc (bitint_large_huge::finish_arith_overflow):
+ 	Take the address of the memmove source operand.
+ 
+ 2026-08-20  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	Backported from master:
+ 	2026-08-12  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	PR target/126787
+ 	* config/i386/sse.md (*fma_fmadd_<mode>): Use the "jm" to replace
+ 	"m" constraint and set addr attribute to "gpr16" for vex only
+ 	alternatives.
+ 	(*fma_fmsub_<mode>): Likewise.
+ 	(*fma_fnmadd_<mode>): Likewise.
+ 	(*fma_fnmsub_<mode>): Likewise.
+ 	(*fma_fmaddsub_<mode>): Likewise.
+ 	(*fma_fmsubadd_<mode>): Likewise.
+ 	(xop_p<macs><ssemodesuffix><ssemodesuffix>): Likewise.
+ 	(xop_p<macs>dql): Likewise.
+ 	(xop_p<macs>dqh): Likewise.
+ 	(xop_p<macs>wd): Likewise.
+ 	(xop_p<madcs>wd): Likewise.
+ 	(xop_pcmov_<mode><avxsizesuffix>): Likewise.
+ 	(xop_phadd<u>bw): Likewise.
+ 	(xop_phadd<u>bd): Likewise.
+ 	(xop_phadd<u>bq): Likewise.
+ 	(xop_phadd<u>wd): Likewise.
+ 	(xop_phadd<u>wq): Likewise.
+ 	(xop_phadd<u>dq): Likewise.
+ 	(xop_phsubbw): Likewise.
+ 	(xop_phsubwd): Likewise.
+ 	(xop_phsubdq): Likewise.
+ 	(xop_pperm): Likewise.
+ 	(xop_pperm_pack_v2di_v4si): Likewise.
+ 	(xop_pperm_pack_v4si_v8hi): Likewise.
+ 	(xop_pperm_pack_v8hi_v16qi): Likewise.
+ 	(xop_rotl<mode>3): Likewise.
+ 	(xop_rotr<mode>3): Likewise.
+ 	(xop_vrotl<mode>3): Likewise.
+ 	(xop_sha<mode>3): Likewise.
+ 	(xop_shl<mode>3): Likewise.
+ 	(xop_frcz<mode>2): Likewise.
+ 	(*xop_vmfrcz<mode>2): Likewise.
+ 	(xop_maskcmp<mode>3): Likewise.
+ 	(xop_maskcmp_uns<mode>3): Likewise.
+ 	(xop_maskcmp_uns2<mode>3): Likewise.
+ 	(xop_pcom_tf<mode>3): Likewise.
+ 	(xop_vpermil2<mode>3): Likewise.
+ 
+ 2026-08-20  Avinash Jayakar  <avinashd@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2026-08-10  Avinash Jayakar  <avinashd@linux.ibm.com>
+ 
+ 	PR target/126513
+ 	* config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Allocate reg
+ 	if target is null or const0_rtx.
+ 	* config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin): Add
+ 	error handling for c1, c2 and c3 described in this commit.
+ 
+ 2026-08-19  Alice Carlotti  <alice.carlotti@arm.com>
+ 
+ 	PR target/124629
+ 	* config/aarch64/driver-aarch64.cc (AARCH64_ARCH):
+ 	Don't skip first character of #ARCH_IDENT.
+ 
+ 2026-08-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-08-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/126925
+ 	* tree-ssa-loop-ivopts.cc (create_new_iv): Avoid crashing
+ 	if the use IV is invariant.
+ 
+ 2026-08-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-08-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/126650
+ 	* tree-affine.cc (get_inner_reference_aff): Fixup rounding
+ 	of size.
+ 
+ 2026-08-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-08-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/126926
+ 	* tree-vect-slp.cc (vectorize_slp_instance_root_stmt): Only
+ 	replace the RHS of the vector constructing scalar stmt.
+ 
+ 2026-08-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-08-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/126534
+ 	* gimple-range-op.cc (cfn_sqrt::op1_range): Widen lb or ub
+ 	by further 0.5ulp or 1ulp before squaring it.
+ 	* range-op-float.cc (float_widen_lhs_range): No longer static.
+ 
+ 2026-08-17  Ramin Moussavi  <lordrasmus@gmail.com>
+ 
+ 	* config/microblaze/microblaze.h (DWARF_ALT_FRAME_RETURN_COLUMN):
+ 	Define.
+ 
  2026-08-14  Kito Cheng  <kito.cheng@sifive.com>
  
  	Backported from master:
diff -Nrcpad gcc-16-20260815/gcc/DATESTAMP gcc-16-20260822/gcc/DATESTAMP
*** gcc-16-20260815/gcc/DATESTAMP	Sat Aug 15 22:32:06 2026
--- gcc-16-20260822/gcc/DATESTAMP	Sat Aug 22 22:32:06 2026
***************
*** 1 ****
! 20260815
--- 1 ----
! 20260822
diff -Nrcpad gcc-16-20260815/gcc/ada/ChangeLog gcc-16-20260822/gcc/ada/ChangeLog
*** gcc-16-20260815/gcc/ada/ChangeLog	Sat Aug 15 22:32:06 2026
--- gcc-16-20260822/gcc/ada/ChangeLog	Sat Aug 22 22:32:06 2026
***************
*** 1,3 ****
--- 1,17 ----
+ 2026-08-19  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/126928
+ 	* sem_ch12.adb (In_Local_Package_Of_Formal_Package): New predicate.
+ 	(Analyze_Package_Instantiation): Do not register the instantiation
+ 	of the body if it is present in the local package of a formal one.
+ 	(Need_Subprogram_Instance_Body): Likewise.
+ 
+ 2026-08-19  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/126907
+ 	* sem_attr.adb (Resolve_Attribute) <Attribute_Reduce>: Do not call
+ 	Relocate_Node on nodes of the original unanalyzed tree.
+ 
  2026-08-07  Release Manager
  
  	* GCC 16.2.0 released.
diff -Nrcpad gcc-16-20260815/gcc/ada/sem_attr.adb gcc-16-20260822/gcc/ada/sem_attr.adb
*** gcc-16-20260815/gcc/ada/sem_attr.adb	Sat Aug 15 22:32:06 2026
--- gcc-16-20260822/gcc/ada/sem_attr.adb	Sat Aug 22 22:32:07 2026
*************** package body Sem_Attr is
*** 13007,13013 ****
                    Copy_Reducer_N : constant Node_Id :=
                                       Copy_Separate_Tree (Reducer_N);
  
!                   Copy_Aggr_Expr : Node_Id;
                    Loop_Var       : Entity_Id;
                    Reducer_Call   : Node_Id;
  
--- 13007,13013 ----
                    Copy_Reducer_N : constant Node_Id :=
                                       Copy_Separate_Tree (Reducer_N);
  
!                   Expr           : Node_Id;
                    Loop_Var       : Entity_Id;
                    Reducer_Call   : Node_Id;
  
*************** package body Sem_Attr is
*** 13058,13064 ****
                       Init_Var : constant Entity_Id :=
                                    Make_Temporary (Loc, 'B');
  
-                      Aggr_Expr  : Node_Id;
                       Dummy_Loop : Node_Id;
                       Init_Nam   : Node_Id;
                       Iter_Spec  : Node_Id;
--- 13058,13063 ----
*************** package body Sem_Attr is
*** 13079,13117 ****
  
                       if Nkind (P) = N_Aggregate then
                          declare
!                            Stream, Stream_It : Node_Id;
                          begin
!                            Stream := First (Component_Associations (P));
!                            Stream_It := Iterator_Specification (Stream);
!                            Aggr_Expr := Expression (Stream);
  
!                            --  Case [for I of It => Aggr_Expr]
  
!                            if Nkind (Stream) = N_Iterated_Component_Association
!                              and then Present (Stream_It)
!                              and then Of_Present (Stream_It)
                             then
                                Iter_Spec :=
                                  Make_Iteration_Scheme (Loc,
                                    Iterator_Specification =>
!                                     Relocate_Node (Stream_It));
                                Loop_Var :=
                                  Defining_Identifier
                                    (Iterator_Specification (Iter_Spec));
  
!                            --  Case [for I in Range => Aggr_Expr]
  
                             else
                                Iter_Spec :=
                                  Make_Iteration_Scheme (Loc,
                                    Loop_Parameter_Specification =>
                                      Make_Loop_Parameter_Specification  (Loc,
                                        Defining_Identifier =>
!                                         Defining_Identifier
!                                           (Copy_Separate_Tree (Stream)),
                                        Discrete_Subtype_Definition =>
!                                         Relocate_Node (First (Discrete_Choices
!                                                                (Stream)))));
                                Loop_Var :=
                                  Defining_Identifier
                                    (Loop_Parameter_Specification (Iter_Spec));
--- 13078,13117 ----
  
                       if Nkind (P) = N_Aggregate then
                          declare
!                            Assoc, Spec : Node_Id;
! 
                          begin
!                            Assoc := First (Component_Associations (P));
!                            Spec := Iterator_Specification (Assoc);
!                            Expr := Copy_Separate_Tree (Expression (Assoc));
  
!                            --  Case [for I of It => Expr]
  
!                            if Nkind (Assoc) = N_Iterated_Component_Association
!                              and then Present (Spec)
!                              and then Of_Present (Spec)
                             then
                                Iter_Spec :=
                                  Make_Iteration_Scheme (Loc,
                                    Iterator_Specification =>
!                                     Copy_Separate_Tree (Spec));
                                Loop_Var :=
                                  Defining_Identifier
                                    (Iterator_Specification (Iter_Spec));
  
!                            --  Case [for I in Range => Expr]
  
                             else
+                               Assoc := Copy_Separate_Tree (Assoc);
                                Iter_Spec :=
                                  Make_Iteration_Scheme (Loc,
                                    Loop_Parameter_Specification =>
                                      Make_Loop_Parameter_Specification  (Loc,
                                        Defining_Identifier =>
!                                         Defining_Identifier (Assoc),
                                        Discrete_Subtype_Definition =>
!                                         Relocate_Node
!                                           (First (Discrete_Choices (Assoc)))));
                                Loop_Var :=
                                  Defining_Identifier
                                    (Loop_Parameter_Specification (Iter_Spec));
*************** package body Sem_Attr is
*** 13122,13128 ****
  
                       else
                          Loop_Var := Make_Temporary (Loc, 'I');
!                         Aggr_Expr := Make_Identifier (Loc, Chars (Loop_Var));
                          Iter_Spec := Make_Iteration_Scheme (Loc,
                            Iterator_Specification =>
                              Make_Iterator_Specification (Loc,
--- 13122,13128 ----
  
                       else
                          Loop_Var := Make_Temporary (Loc, 'I');
!                         Expr := Make_Identifier (Loc, Chars (Loop_Var));
                          Iter_Spec := Make_Iteration_Scheme (Loc,
                            Iterator_Specification =>
                              Make_Iterator_Specification (Loc,
*************** package body Sem_Attr is
*** 13146,13167 ****
                       pragma Assert (Present (Etype (Loop_Var)));
                       pragma Assert (Etype (Loop_Var) /= Any_Type);
  
-                      Copy_Aggr_Expr := Copy_Separate_Tree (Aggr_Expr);
- 
                       case Reducer_Call_Statement_Kind is
                          when E_Procedure =>
                             Reducer_Call :=
                               Make_Procedure_Call_Statement (Sloc (Reducer_N),
                                 Name => Copy_Reducer_N,
                                 Parameter_Associations =>
!                                  New_List (Init_Nam, Copy_Aggr_Expr));
  
                          when E_Function | E_Operator =>
                             Reducer_Call :=
                               Make_Function_Call (Sloc (Reducer_N),
                                 Name => Copy_Reducer_N,
                                 Parameter_Associations =>
!                                  New_List (Init_Nam, Copy_Aggr_Expr));
                             Set_Etype (Reducer_Call, Accum_Typ);
  
                          when others =>
--- 13146,13165 ----
                       pragma Assert (Present (Etype (Loop_Var)));
                       pragma Assert (Etype (Loop_Var) /= Any_Type);
  
                       case Reducer_Call_Statement_Kind is
                          when E_Procedure =>
                             Reducer_Call :=
                               Make_Procedure_Call_Statement (Sloc (Reducer_N),
                                 Name => Copy_Reducer_N,
                                 Parameter_Associations =>
!                                  New_List (Init_Nam, Expr));
  
                          when E_Function | E_Operator =>
                             Reducer_Call :=
                               Make_Function_Call (Sloc (Reducer_N),
                                 Name => Copy_Reducer_N,
                                 Parameter_Associations =>
!                                  New_List (Init_Nam, Expr));
                             Set_Etype (Reducer_Call, Accum_Typ);
  
                          when others =>
*************** package body Sem_Attr is
*** 13201,13213 ****
  
                    elsif not Is_Overloaded (Reducer_Call) then
                       pragma Assert (Present (Entity (Copy_Reducer_N)));
!                      pragma Assert (Present (Etype (Copy_Aggr_Expr)));
  
                       --  Set the correct reducer entity and then return the
                       --  value subtype.
  
                       Set_Entity (Reducer_N, Entity (Copy_Reducer_N));
!                      return Etype (Copy_Aggr_Expr);
                    end if;
  
                    return Empty;
--- 13199,13211 ----
  
                    elsif not Is_Overloaded (Reducer_Call) then
                       pragma Assert (Present (Entity (Copy_Reducer_N)));
!                      pragma Assert (Present (Etype (Expr)));
  
                       --  Set the correct reducer entity and then return the
                       --  value subtype.
  
                       Set_Entity (Reducer_N, Entity (Copy_Reducer_N));
!                      return Etype (Expr);
                    end if;
  
                    return Empty;
diff -Nrcpad gcc-16-20260815/gcc/ada/sem_ch12.adb gcc-16-20260822/gcc/ada/sem_ch12.adb
*** gcc-16-20260815/gcc/ada/sem_ch12.adb	Sat Aug 15 22:32:06 2026
--- gcc-16-20260822/gcc/ada/sem_ch12.adb	Sat Aug 22 22:32:07 2026
*************** package body Sem_Ch12 is
*** 761,766 ****
--- 761,771 ----
     --  not done for the instantiation of the bodies, which only require the
     --  instances of the generic parents to be in scope.
  
+    function In_Local_Package_Of_Formal_Package (N : Node_Id) return Boolean;
+    --  Return whether N is present in the local package created during the
+    --  analysis of a formal package (see Analyze_Formal_Package_Declaration).
+    --  Used to avoid instantiating generic bodies in such a local package.
+ 
     function In_Main_Context (E : Entity_Id) return Boolean;
     --  Check whether an instantiation is in the context of the main unit.
     --  Used to determine whether its body should be elaborated to allow
*************** package body Sem_Ch12 is
*** 5424,5429 ****
--- 5429,5435 ----
                 and then Needs_Body_Instantiated (Gen_Unit)
                 and then not Is_Abbrev
                 and then not Inline_Now
+                and then not In_Local_Package_Of_Formal_Package (N)
                 and then (Operating_Mode = Generate_Code
                            or else (Operating_Mode = Check_Semantics
                                      and then GNATprove_Mode));
*************** package body Sem_Ch12 is
*** 6578,6583 ****
--- 6584,6593 ----
          and then (not Is_Generic_Unit (Cunit_Entity (Main_Unit))
                     or else Parent (N) = Aux_Decls_Node (Cunit (Main_Unit)))
  
+         --  Likewise in the local package built for formal packages
+ 
+         and then not In_Local_Package_Of_Formal_Package (N)
+ 
          --  Must be generating code or analyzing code in GNATprove mode
  
          and then (Operating_Mode = Generate_Code
*************** package body Sem_Ch12 is
*** 11255,11260 ****
--- 11265,11290 ----
          (Current_Scope, Current_Scope, Assoc_Null);
     end Init_Env;
  
+    ----------------------------------------
+    -- In_Local_Package_Of_Formal_Package --
+    ----------------------------------------
+ 
+    function In_Local_Package_Of_Formal_Package (N : Node_Id) return Boolean is
+       Par : Node_Id;
+ 
+    begin
+       Par := Parent (N);
+       while Present (Par) and then Nkind (Par) /= N_Compilation_Unit loop
+          if Nkind (Original_Node (Par)) = N_Formal_Package_Declaration then
+             return True;
+          end if;
+ 
+          Par := Parent (Par);
+       end loop;
+ 
+       return False;
+    end In_Local_Package_Of_Formal_Package;
+ 
     ---------------------
     -- In_Main_Context --
     ---------------------
diff -Nrcpad gcc-16-20260815/gcc/config/aarch64/driver-aarch64.cc gcc-16-20260822/gcc/config/aarch64/driver-aarch64.cc
*** gcc-16-20260815/gcc/config/aarch64/driver-aarch64.cc	Sat Aug 15 22:32:07 2026
--- gcc-16-20260822/gcc/config/aarch64/driver-aarch64.cc	Sat Aug 22 22:32:07 2026
*************** struct aarch64_arch_driver_info
*** 79,87 ****
    aarch64_feature_flags flags;
  };
  
- /* Skip the leading "V" in the architecture name.  */
  #define AARCH64_ARCH(NAME, CORE, ARCH_IDENT, ARCH_REV, FLAGS) \
!   { #ARCH_IDENT + 1, NAME, feature_deps::ARCH_IDENT ().enable },
  
  static CONSTEXPR const aarch64_arch_driver_info aarch64_arches[] =
  {
--- 79,86 ----
    aarch64_feature_flags flags;
  };
  
  #define AARCH64_ARCH(NAME, CORE, ARCH_IDENT, ARCH_REV, FLAGS) \
!   { #ARCH_IDENT, NAME, feature_deps::ARCH_IDENT ().enable },
  
  static CONSTEXPR const aarch64_arch_driver_info aarch64_arches[] =
  {
diff -Nrcpad gcc-16-20260815/gcc/config/i386/sse.md gcc-16-20260822/gcc/config/i386/sse.md
*** gcc-16-20260815/gcc/config/i386/sse.md	Sat Aug 15 22:32:07 2026
--- gcc-16-20260822/gcc/config/i386/sse.md	Sat Aug 22 22:32:08 2026
***************
*** 6288,6295 ****
    [(set (match_operand:FMAMODE 0 "register_operand" "=v,v,v,x,x")
  	(fma:FMAMODE
  	  (match_operand:FMAMODE 1 "nonimmediate_operand" "%0,0,v,x,x")
! 	  (match_operand:FMAMODE 2 "nonimmediate_operand" "vm,v,vm,x,m")
! 	  (match_operand:FMAMODE 3 "nonimmediate_operand" "v,vm,0,xm,x")))]
    "TARGET_FMA || TARGET_FMA4"
    "@
     vfmadd132<ssemodesuffix>\t{%2, %3, %0|%0, %3, %2}
--- 6288,6295 ----
    [(set (match_operand:FMAMODE 0 "register_operand" "=v,v,v,x,x")
  	(fma:FMAMODE
  	  (match_operand:FMAMODE 1 "nonimmediate_operand" "%0,0,v,x,x")
! 	  (match_operand:FMAMODE 2 "nonimmediate_operand" "vm,v,vm,x,jm")
! 	  (match_operand:FMAMODE 3 "nonimmediate_operand" "v,vm,0,xjm,x")))]
    "TARGET_FMA || TARGET_FMA4"
    "@
     vfmadd132<ssemodesuffix>\t{%2, %3, %0|%0, %3, %2}
***************
*** 6299,6304 ****
--- 6299,6305 ----
     vfmadd<ssemodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
    [(set_attr "isa" "fma,fma,fma,fma4,fma4")
     (set_attr "type" "ssemuladd")
+    (set_attr "addr" "*,*,*,gpr16,gpr16")
     (set_attr "mode" "<MODE>")])
  
  ;; Suppose AVX-512F as baseline
***************
*** 6384,6392 ****
    [(set (match_operand:FMAMODE 0 "register_operand" "=v,v,v,x,x")
  	(fma:FMAMODE
  	  (match_operand:FMAMODE   1 "nonimmediate_operand" "%0,0,v,x,x")
! 	  (match_operand:FMAMODE   2 "nonimmediate_operand" "vm,v,vm,x,m")
  	  (neg:FMAMODE
! 	    (match_operand:FMAMODE 3 "nonimmediate_operand" "v,vm,0,xm,x"))))]
    "TARGET_FMA || TARGET_FMA4"
    "@
     vfmsub132<ssemodesuffix>\t{%2, %3, %0|%0, %3, %2}
--- 6385,6393 ----
    [(set (match_operand:FMAMODE 0 "register_operand" "=v,v,v,x,x")
  	(fma:FMAMODE
  	  (match_operand:FMAMODE   1 "nonimmediate_operand" "%0,0,v,x,x")
! 	  (match_operand:FMAMODE   2 "nonimmediate_operand" "vm,v,vm,x,jm")
  	  (neg:FMAMODE
! 	    (match_operand:FMAMODE 3 "nonimmediate_operand" "v,vm,0,xjm,x"))))]
    "TARGET_FMA || TARGET_FMA4"
    "@
     vfmsub132<ssemodesuffix>\t{%2, %3, %0|%0, %3, %2}
***************
*** 6396,6401 ****
--- 6397,6403 ----
     vfmsub<ssemodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
    [(set_attr "isa" "fma,fma,fma,fma4,fma4")
     (set_attr "type" "ssemuladd")
+    (set_attr "addr" "*,*,*,gpr16,gpr16")
     (set_attr "mode" "<MODE>")])
  
  (define_expand "<avx512>_fmsub_<mode>_maskz<round_expand_name>"
***************
*** 6491,6498 ****
  	(fma:FMAMODE
  	  (neg:FMAMODE
  	    (match_operand:FMAMODE 1 "nonimmediate_operand" "%0,0,v,x,x"))
! 	  (match_operand:FMAMODE   2 "nonimmediate_operand" "vm,v,vm,x,m")
! 	  (match_operand:FMAMODE   3 "nonimmediate_operand" "v,vm,0,xm,x")))]
    "TARGET_FMA || TARGET_FMA4"
    "@
     vfnmadd132<ssemodesuffix>\t{%2, %3, %0|%0, %3, %2}
--- 6493,6500 ----
  	(fma:FMAMODE
  	  (neg:FMAMODE
  	    (match_operand:FMAMODE 1 "nonimmediate_operand" "%0,0,v,x,x"))
! 	  (match_operand:FMAMODE   2 "nonimmediate_operand" "vm,v,vm,x,jm")
! 	  (match_operand:FMAMODE   3 "nonimmediate_operand" "v,vm,0,xjm,x")))]
    "TARGET_FMA || TARGET_FMA4"
    "@
     vfnmadd132<ssemodesuffix>\t{%2, %3, %0|%0, %3, %2}
***************
*** 6502,6507 ****
--- 6504,6510 ----
     vfnmadd<ssemodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
    [(set_attr "isa" "fma,fma,fma,fma4,fma4")
     (set_attr "type" "ssemuladd")
+    (set_attr "addr" "*,*,*,gpr16,gpr16")
     (set_attr "mode" "<MODE>")])
  
  (define_expand "<avx512>_fnmadd_<mode>_maskz<round_expand_name>"
***************
*** 6597,6605 ****
  	(fma:FMAMODE
  	  (neg:FMAMODE
  	    (match_operand:FMAMODE 1 "nonimmediate_operand" "%0,0,v,x,x"))
! 	  (match_operand:FMAMODE   2 "nonimmediate_operand" "vm,v,vm,x,m")
  	  (neg:FMAMODE
! 	    (match_operand:FMAMODE 3 "nonimmediate_operand" "v,vm,0,xm,x"))))]
    "TARGET_FMA || TARGET_FMA4"
    "@
     vfnmsub132<ssemodesuffix>\t{<round_sd_mask_op4>%2, %3, %0<sd_mask_op4>|%0<sd_mask_op4>, %3, %2<round_sd_mask_op4>}
--- 6600,6608 ----
  	(fma:FMAMODE
  	  (neg:FMAMODE
  	    (match_operand:FMAMODE 1 "nonimmediate_operand" "%0,0,v,x,x"))
! 	  (match_operand:FMAMODE   2 "nonimmediate_operand" "vm,v,vm,x,jm")
  	  (neg:FMAMODE
! 	    (match_operand:FMAMODE 3 "nonimmediate_operand" "v,vm,0,xjm,x"))))]
    "TARGET_FMA || TARGET_FMA4"
    "@
     vfnmsub132<ssemodesuffix>\t{<round_sd_mask_op4>%2, %3, %0<sd_mask_op4>|%0<sd_mask_op4>, %3, %2<round_sd_mask_op4>}
***************
*** 6609,6614 ****
--- 6612,6618 ----
     vfnmsub<ssemodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
    [(set_attr "isa" "fma,fma,fma,fma4,fma4")
     (set_attr "type" "ssemuladd")
+    (set_attr "addr" "*,*,*,gpr16,gpr16")
     (set_attr "mode" "<MODE>")])
  
  (define_expand "<avx512>_fnmsub_<mode>_maskz<round_expand_name>"
***************
*** 6774,6781 ****
    [(set (match_operand:VF_128_256 0 "register_operand" "=v,v,v,x,x")
  	(unspec:VF_128_256
  	  [(match_operand:VF_128_256 1 "nonimmediate_operand" "%0,0,v,x,x")
! 	   (match_operand:VF_128_256 2 "nonimmediate_operand" "vm,v,vm,x,m")
! 	   (match_operand:VF_128_256 3 "nonimmediate_operand" "v,vm,0,xm,x")]
  	  UNSPEC_FMADDSUB))]
    "TARGET_FMA || TARGET_FMA4"
    "@
--- 6778,6785 ----
    [(set (match_operand:VF_128_256 0 "register_operand" "=v,v,v,x,x")
  	(unspec:VF_128_256
  	  [(match_operand:VF_128_256 1 "nonimmediate_operand" "%0,0,v,x,x")
! 	   (match_operand:VF_128_256 2 "nonimmediate_operand" "vm,v,vm,x,jm")
! 	   (match_operand:VF_128_256 3 "nonimmediate_operand" "v,vm,0,xjm,x")]
  	  UNSPEC_FMADDSUB))]
    "TARGET_FMA || TARGET_FMA4"
    "@
***************
*** 6786,6791 ****
--- 6790,6796 ----
     vfmaddsub<ssemodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
    [(set_attr "isa" "fma,fma,fma,fma4,fma4")
     (set_attr "type" "ssemuladd")
+    (set_attr "addr" "*,*,*,gpr16,gpr16")
     (set_attr "mode" "<MODE>")])
  
  (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"
***************
*** 6842,6850 ****
    [(set (match_operand:VF_128_256 0 "register_operand" "=v,v,v,x,x")
  	(unspec:VF_128_256
  	  [(match_operand:VF_128_256   1 "nonimmediate_operand" "%0,0,v,x,x")
! 	   (match_operand:VF_128_256   2 "nonimmediate_operand" "vm,v,vm,x,m")
  	   (neg:VF_128_256
! 	     (match_operand:VF_128_256 3 "nonimmediate_operand" "v,vm,0,xm,x"))]
  	  UNSPEC_FMADDSUB))]
    "TARGET_FMA || TARGET_FMA4"
    "@
--- 6847,6855 ----
    [(set (match_operand:VF_128_256 0 "register_operand" "=v,v,v,x,x")
  	(unspec:VF_128_256
  	  [(match_operand:VF_128_256   1 "nonimmediate_operand" "%0,0,v,x,x")
! 	   (match_operand:VF_128_256   2 "nonimmediate_operand" "vm,v,vm,x,jm")
  	   (neg:VF_128_256
! 	     (match_operand:VF_128_256 3 "nonimmediate_operand" "v,vm,0,xjm,x"))]
  	  UNSPEC_FMADDSUB))]
    "TARGET_FMA || TARGET_FMA4"
    "@
***************
*** 6855,6860 ****
--- 6860,6866 ----
     vfmsubadd<ssemodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
    [(set_attr "isa" "fma,fma,fma,fma4,fma4")
     (set_attr "type" "ssemuladd")
+    (set_attr "addr" "*,*,*,gpr16,gpr16")
     (set_attr "mode" "<MODE>")])
  
  (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"
***************
*** 26880,26891 ****
  	(xop_plus:VI24_128
  	 (mult:VI24_128
  	  (match_operand:VI24_128 1 "nonimmediate_operand" "%x")
! 	  (match_operand:VI24_128 2 "nonimmediate_operand" "xm"))
  	 (match_operand:VI24_128 3 "register_operand" "x")))]
    "TARGET_XOP"
    "vp<macs><ssemodesuffix><ssemodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
    [(set_attr "type" "ssemuladd")
     (set_attr "prefix" "vex")
     (set_attr "mode" "TI")])
  
  (define_insn "xop_p<macs>dql"
--- 26886,26898 ----
  	(xop_plus:VI24_128
  	 (mult:VI24_128
  	  (match_operand:VI24_128 1 "nonimmediate_operand" "%x")
! 	  (match_operand:VI24_128 2 "nonimmediate_operand" "xjm"))
  	 (match_operand:VI24_128 3 "register_operand" "x")))]
    "TARGET_XOP"
    "vp<macs><ssemodesuffix><ssemodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
    [(set_attr "type" "ssemuladd")
     (set_attr "prefix" "vex")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "TI")])
  
  (define_insn "xop_p<macs>dql"
***************
*** 26898,26910 ****
  	    (parallel [(const_int 0) (const_int 2)])))
  	  (sign_extend:V2DI
  	   (vec_select:V2SI
! 	    (match_operand:V4SI 2 "nonimmediate_operand" "xm")
  	    (parallel [(const_int 0) (const_int 2)]))))
  	 (match_operand:V2DI 3 "register_operand" "x")))]
    "TARGET_XOP"
    "vp<macs>dql\t{%3, %2, %1, %0|%0, %1, %2, %3}"
    [(set_attr "type" "ssemuladd")
     (set_attr "prefix" "vex")
     (set_attr "mode" "TI")])
  
  (define_insn "xop_p<macs>dqh"
--- 26905,26918 ----
  	    (parallel [(const_int 0) (const_int 2)])))
  	  (sign_extend:V2DI
  	   (vec_select:V2SI
! 	    (match_operand:V4SI 2 "nonimmediate_operand" "xjm")
  	    (parallel [(const_int 0) (const_int 2)]))))
  	 (match_operand:V2DI 3 "register_operand" "x")))]
    "TARGET_XOP"
    "vp<macs>dql\t{%3, %2, %1, %0|%0, %1, %2, %3}"
    [(set_attr "type" "ssemuladd")
     (set_attr "prefix" "vex")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "TI")])
  
  (define_insn "xop_p<macs>dqh"
***************
*** 26917,26929 ****
  	    (parallel [(const_int 1) (const_int 3)])))
  	  (sign_extend:V2DI
  	   (vec_select:V2SI
! 	    (match_operand:V4SI 2 "nonimmediate_operand" "xm")
  	    (parallel [(const_int 1) (const_int 3)]))))
  	 (match_operand:V2DI 3 "register_operand" "x")))]
    "TARGET_XOP"
    "vp<macs>dqh\t{%3, %2, %1, %0|%0, %1, %2, %3}"
    [(set_attr "type" "ssemuladd")
     (set_attr "prefix" "vex")
     (set_attr "mode" "TI")])
  
  ;; XOP parallel integer multiply/add instructions for the intrinisics
--- 26925,26938 ----
  	    (parallel [(const_int 1) (const_int 3)])))
  	  (sign_extend:V2DI
  	   (vec_select:V2SI
! 	    (match_operand:V4SI 2 "nonimmediate_operand" "xjm")
  	    (parallel [(const_int 1) (const_int 3)]))))
  	 (match_operand:V2DI 3 "register_operand" "x")))]
    "TARGET_XOP"
    "vp<macs>dqh\t{%3, %2, %1, %0|%0, %1, %2, %3}"
    [(set_attr "type" "ssemuladd")
     (set_attr "prefix" "vex")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "TI")])
  
  ;; XOP parallel integer multiply/add instructions for the intrinisics
***************
*** 26938,26944 ****
  		       (const_int 5) (const_int 7)])))
  	  (sign_extend:V4SI
  	   (vec_select:V4HI
! 	    (match_operand:V8HI 2 "nonimmediate_operand" "xm")
  	    (parallel [(const_int 1) (const_int 3)
  		       (const_int 5) (const_int 7)]))))
  	 (match_operand:V4SI 3 "register_operand" "x")))]
--- 26947,26953 ----
  		       (const_int 5) (const_int 7)])))
  	  (sign_extend:V4SI
  	   (vec_select:V4HI
! 	    (match_operand:V8HI 2 "nonimmediate_operand" "xjm")
  	    (parallel [(const_int 1) (const_int 3)
  		       (const_int 5) (const_int 7)]))))
  	 (match_operand:V4SI 3 "register_operand" "x")))]
***************
*** 26946,26951 ****
--- 26955,26961 ----
    "vp<macs>wd\t{%3, %2, %1, %0|%0, %1, %2, %3}"
    [(set_attr "type" "ssemuladd")
     (set_attr "prefix" "vex")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "TI")])
  
  (define_insn "xop_p<madcs>wd"
***************
*** 26960,26966 ****
  			(const_int 4) (const_int 6)])))
  	   (sign_extend:V4SI
  	    (vec_select:V4HI
! 	     (match_operand:V8HI 2 "nonimmediate_operand" "xm")
  	     (parallel [(const_int 0) (const_int 2)
  			(const_int 4) (const_int 6)]))))
  	  (mult:V4SI
--- 26970,26976 ----
  			(const_int 4) (const_int 6)])))
  	   (sign_extend:V4SI
  	    (vec_select:V4HI
! 	     (match_operand:V8HI 2 "nonimmediate_operand" "xjm")
  	     (parallel [(const_int 0) (const_int 2)
  			(const_int 4) (const_int 6)]))))
  	  (mult:V4SI
***************
*** 26979,26996 ****
    "vp<madcs>wd\t{%3, %2, %1, %0|%0, %1, %2, %3}"
    [(set_attr "type" "ssemuladd")
     (set_attr "prefix" "vex")
     (set_attr "mode" "TI")])
  
  ;; XOP parallel XMM conditional moves
  (define_insn "xop_pcmov_<mode><avxsizesuffix>"
    [(set (match_operand:V_128_256 0 "register_operand" "=x,x")
  	(if_then_else:V_128_256
! 	  (match_operand:V_128_256 3 "nonimmediate_operand" "x,m")
  	  (match_operand:V_128_256 1 "register_operand" "x,x")
! 	  (match_operand:V_128_256 2 "nonimmediate_operand" "xm,x")))]
    "TARGET_XOP"
    "vpcmov\t{%3, %2, %1, %0|%0, %1, %2, %3}"
    [(set_attr "type" "sse4arg")
     (set_attr "mode" "<sseinsnmode>")])
  
  ;; Recognize XOP's vpcmov from canonical (xor (and (xor t f) c) f)
--- 26989,27008 ----
    "vp<madcs>wd\t{%3, %2, %1, %0|%0, %1, %2, %3}"
    [(set_attr "type" "ssemuladd")
     (set_attr "prefix" "vex")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "TI")])
  
  ;; XOP parallel XMM conditional moves
  (define_insn "xop_pcmov_<mode><avxsizesuffix>"
    [(set (match_operand:V_128_256 0 "register_operand" "=x,x")
  	(if_then_else:V_128_256
! 	  (match_operand:V_128_256 3 "nonimmediate_operand" "x,jm")
  	  (match_operand:V_128_256 1 "register_operand" "x,x")
! 	  (match_operand:V_128_256 2 "nonimmediate_operand" "xjm,x")))]
    "TARGET_XOP"
    "vpcmov\t{%3, %2, %1, %0|%0, %1, %2, %3}"
    [(set_attr "type" "sse4arg")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "<sseinsnmode>")])
  
  ;; Recognize XOP's vpcmov from canonical (xor (and (xor t f) c) f)
***************
*** 27025,27031 ****
  	(plus:V8HI
  	 (any_extend:V8HI
  	  (vec_select:V8QI
! 	   (match_operand:V16QI 1 "nonimmediate_operand" "xm")
  	   (parallel [(const_int 0) (const_int 2)
  		      (const_int 4) (const_int 6)
  		      (const_int 8) (const_int 10)
--- 27037,27043 ----
  	(plus:V8HI
  	 (any_extend:V8HI
  	  (vec_select:V8QI
! 	   (match_operand:V16QI 1 "nonimmediate_operand" "xjm")
  	   (parallel [(const_int 0) (const_int 2)
  		      (const_int 4) (const_int 6)
  		      (const_int 8) (const_int 10)
***************
*** 27043,27048 ****
--- 27055,27061 ----
     (set_attr "c86_attr" "hplus")
     (set_attr "prefix" "vex")
     (set_attr "prefix_extra" "1")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "TI")])
  
  (define_insn "xop_phadd<u>bd"
***************
*** 27051,27057 ****
  	 (plus:V4SI
  	  (any_extend:V4SI
  	   (vec_select:V4QI
! 	    (match_operand:V16QI 1 "nonimmediate_operand" "xm")
  	    (parallel [(const_int 0) (const_int 4)
  		       (const_int 8) (const_int 12)])))
  	  (any_extend:V4SI
--- 27064,27070 ----
  	 (plus:V4SI
  	  (any_extend:V4SI
  	   (vec_select:V4QI
! 	    (match_operand:V16QI 1 "nonimmediate_operand" "xjm")
  	    (parallel [(const_int 0) (const_int 4)
  		       (const_int 8) (const_int 12)])))
  	  (any_extend:V4SI
***************
*** 27076,27081 ****
--- 27089,27095 ----
     (set_attr "c86_attr" "hplus")
     (set_attr "prefix" "vex")
     (set_attr "prefix_extra" "1")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "TI")])
  
  (define_insn "xop_phadd<u>bq"
***************
*** 27085,27091 ****
  	  (plus:V2DI
  	   (any_extend:V2DI
  	    (vec_select:V2QI
! 	     (match_operand:V16QI 1 "nonimmediate_operand" "xm")
  	     (parallel [(const_int 0) (const_int 8)])))
  	   (any_extend:V2DI
  	    (vec_select:V2QI
--- 27099,27105 ----
  	  (plus:V2DI
  	   (any_extend:V2DI
  	    (vec_select:V2QI
! 	     (match_operand:V16QI 1 "nonimmediate_operand" "xjm")
  	     (parallel [(const_int 0) (const_int 8)])))
  	   (any_extend:V2DI
  	    (vec_select:V2QI
***************
*** 27125,27130 ****
--- 27139,27145 ----
     (set_attr "c86_attr" "hplus")
     (set_attr "prefix" "vex")
     (set_attr "prefix_extra" "1")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "TI")])
  
  (define_insn "xop_phadd<u>wd"
***************
*** 27132,27138 ****
  	(plus:V4SI
  	 (any_extend:V4SI
  	  (vec_select:V4HI
! 	   (match_operand:V8HI 1 "nonimmediate_operand" "xm")
  	   (parallel [(const_int 0) (const_int 2)
  		      (const_int 4) (const_int 6)])))
  	 (any_extend:V4SI
--- 27147,27153 ----
  	(plus:V4SI
  	 (any_extend:V4SI
  	  (vec_select:V4HI
! 	   (match_operand:V8HI 1 "nonimmediate_operand" "xjm")
  	   (parallel [(const_int 0) (const_int 2)
  		      (const_int 4) (const_int 6)])))
  	 (any_extend:V4SI
***************
*** 27146,27151 ****
--- 27161,27167 ----
     (set_attr "c86_attr" "hplus")
     (set_attr "prefix" "vex")
     (set_attr "prefix_extra" "1")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "TI")])
  
  (define_insn "xop_phadd<u>wq"
***************
*** 27154,27160 ****
  	 (plus:V2DI
  	  (any_extend:V2DI
  	   (vec_select:V2HI
! 	    (match_operand:V8HI 1 "nonimmediate_operand" "xm")
  	    (parallel [(const_int 0) (const_int 4)])))
  	  (any_extend:V2DI
  	   (vec_select:V2HI
--- 27170,27176 ----
  	 (plus:V2DI
  	  (any_extend:V2DI
  	   (vec_select:V2HI
! 	    (match_operand:V8HI 1 "nonimmediate_operand" "xjm")
  	    (parallel [(const_int 0) (const_int 4)])))
  	  (any_extend:V2DI
  	   (vec_select:V2HI
***************
*** 27175,27180 ****
--- 27191,27197 ----
     (set_attr "c86_attr" "hplus")
     (set_attr "prefix" "vex")
     (set_attr "prefix_extra" "1")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "TI")])
  
  (define_insn "xop_phadd<u>dq"
***************
*** 27182,27188 ****
  	(plus:V2DI
  	 (any_extend:V2DI
  	  (vec_select:V2SI
! 	   (match_operand:V4SI 1 "nonimmediate_operand" "xm")
  	   (parallel [(const_int 0) (const_int 2)])))
  	 (any_extend:V2DI
  	  (vec_select:V2SI
--- 27199,27205 ----
  	(plus:V2DI
  	 (any_extend:V2DI
  	  (vec_select:V2SI
! 	   (match_operand:V4SI 1 "nonimmediate_operand" "xjm")
  	   (parallel [(const_int 0) (const_int 2)])))
  	 (any_extend:V2DI
  	  (vec_select:V2SI
***************
*** 27194,27199 ****
--- 27211,27217 ----
     (set_attr "c86_attr" "hplus")
     (set_attr "prefix" "vex")
     (set_attr "prefix_extra" "1")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "TI")])
  
  (define_insn "xop_phsubbw"
***************
*** 27201,27207 ****
  	(minus:V8HI
  	 (sign_extend:V8HI
  	  (vec_select:V8QI
! 	   (match_operand:V16QI 1 "nonimmediate_operand" "xm")
  	   (parallel [(const_int 0) (const_int 2)
  		      (const_int 4) (const_int 6)
  		      (const_int 8) (const_int 10)
--- 27219,27225 ----
  	(minus:V8HI
  	 (sign_extend:V8HI
  	  (vec_select:V8QI
! 	   (match_operand:V16QI 1 "nonimmediate_operand" "xjm")
  	   (parallel [(const_int 0) (const_int 2)
  		      (const_int 4) (const_int 6)
  		      (const_int 8) (const_int 10)
***************
*** 27219,27224 ****
--- 27237,27243 ----
     (set_attr "c86_attr" "hplus")
     (set_attr "prefix" "vex")
     (set_attr "prefix_extra" "1")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "TI")])
  
  (define_insn "xop_phsubwd"
***************
*** 27226,27232 ****
  	(minus:V4SI
  	 (sign_extend:V4SI
  	  (vec_select:V4HI
! 	   (match_operand:V8HI 1 "nonimmediate_operand" "xm")
  	   (parallel [(const_int 0) (const_int 2)
  		      (const_int 4) (const_int 6)])))
  	 (sign_extend:V4SI
--- 27245,27251 ----
  	(minus:V4SI
  	 (sign_extend:V4SI
  	  (vec_select:V4HI
! 	   (match_operand:V8HI 1 "nonimmediate_operand" "xjm")
  	   (parallel [(const_int 0) (const_int 2)
  		      (const_int 4) (const_int 6)])))
  	 (sign_extend:V4SI
***************
*** 27240,27245 ****
--- 27259,27265 ----
     (set_attr "c86_attr" "hplus")
     (set_attr "prefix" "vex")
     (set_attr "prefix_extra" "1")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "TI")])
  
  (define_insn "xop_phsubdq"
***************
*** 27247,27253 ****
  	(minus:V2DI
  	 (sign_extend:V2DI
  	  (vec_select:V2SI
! 	   (match_operand:V4SI 1 "nonimmediate_operand" "xm")
  	   (parallel [(const_int 0) (const_int 2)])))
  	 (sign_extend:V2DI
  	  (vec_select:V2SI
--- 27267,27273 ----
  	(minus:V2DI
  	 (sign_extend:V2DI
  	  (vec_select:V2SI
! 	   (match_operand:V4SI 1 "nonimmediate_operand" "xjm")
  	   (parallel [(const_int 0) (const_int 2)])))
  	 (sign_extend:V2DI
  	  (vec_select:V2SI
***************
*** 27259,27264 ****
--- 27279,27285 ----
     (set_attr "c86_attr" "hplus")
     (set_attr "prefix" "vex")
     (set_attr "prefix_extra" "1")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "TI")])
  
  ;; XOP permute instructions
***************
*** 27266,27277 ****
    [(set (match_operand:V16QI 0 "register_operand" "=x,x")
  	(unspec:V16QI
  	  [(match_operand:V16QI 1 "register_operand" "x,x")
! 	   (match_operand:V16QI 2 "nonimmediate_operand" "x,m")
! 	   (match_operand:V16QI 3 "nonimmediate_operand" "xm,x")]
  	  UNSPEC_XOP_PERMUTE))]
    "TARGET_XOP && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
    "vpperm\t{%3, %2, %1, %0|%0, %1, %2, %3}"
    [(set_attr "type" "sse4arg")
     (set_attr "mode" "TI")])
  
  ;; XOP pack instructions that combine two vectors into a smaller vector
--- 27287,27299 ----
    [(set (match_operand:V16QI 0 "register_operand" "=x,x")
  	(unspec:V16QI
  	  [(match_operand:V16QI 1 "register_operand" "x,x")
! 	   (match_operand:V16QI 2 "nonimmediate_operand" "x,jm")
! 	   (match_operand:V16QI 3 "nonimmediate_operand" "xjm,x")]
  	  UNSPEC_XOP_PERMUTE))]
    "TARGET_XOP && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
    "vpperm\t{%3, %2, %1, %0|%0, %1, %2, %3}"
    [(set_attr "type" "sse4arg")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "TI")])
  
  ;; XOP pack instructions that combine two vectors into a smaller vector
***************
*** 27281,27291 ****
  	 (truncate:V2SI
  	  (match_operand:V2DI 1 "register_operand" "x,x"))
  	 (truncate:V2SI
! 	  (match_operand:V2DI 2 "nonimmediate_operand" "x,m"))))
!    (use (match_operand:V16QI 3 "nonimmediate_operand" "xm,x"))]
    "TARGET_XOP && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
    "vpperm\t{%3, %2, %1, %0|%0, %1, %2, %3}"
    [(set_attr "type" "sse4arg")
     (set_attr "mode" "TI")])
  
  (define_insn "xop_pperm_pack_v4si_v8hi"
--- 27303,27314 ----
  	 (truncate:V2SI
  	  (match_operand:V2DI 1 "register_operand" "x,x"))
  	 (truncate:V2SI
! 	  (match_operand:V2DI 2 "nonimmediate_operand" "x,jm"))))
!    (use (match_operand:V16QI 3 "nonimmediate_operand" "xjm,x"))]
    "TARGET_XOP && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
    "vpperm\t{%3, %2, %1, %0|%0, %1, %2, %3}"
    [(set_attr "type" "sse4arg")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "TI")])
  
  (define_insn "xop_pperm_pack_v4si_v8hi"
***************
*** 27294,27304 ****
  	 (truncate:V4HI
  	  (match_operand:V4SI 1 "register_operand" "x,x"))
  	 (truncate:V4HI
! 	  (match_operand:V4SI 2 "nonimmediate_operand" "x,m"))))
!    (use (match_operand:V16QI 3 "nonimmediate_operand" "xm,x"))]
    "TARGET_XOP && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
    "vpperm\t{%3, %2, %1, %0|%0, %1, %2, %3}"
    [(set_attr "type" "sse4arg")
     (set_attr "mode" "TI")])
  
  (define_insn "xop_pperm_pack_v8hi_v16qi"
--- 27317,27328 ----
  	 (truncate:V4HI
  	  (match_operand:V4SI 1 "register_operand" "x,x"))
  	 (truncate:V4HI
! 	  (match_operand:V4SI 2 "nonimmediate_operand" "x,jm"))))
!    (use (match_operand:V16QI 3 "nonimmediate_operand" "xjm,x"))]
    "TARGET_XOP && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
    "vpperm\t{%3, %2, %1, %0|%0, %1, %2, %3}"
    [(set_attr "type" "sse4arg")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "TI")])
  
  (define_insn "xop_pperm_pack_v8hi_v16qi"
***************
*** 27307,27317 ****
  	 (truncate:V8QI
  	  (match_operand:V8HI 1 "register_operand" "x,x"))
  	 (truncate:V8QI
! 	  (match_operand:V8HI 2 "nonimmediate_operand" "x,m"))))
!    (use (match_operand:V16QI 3 "nonimmediate_operand" "xm,x"))]
    "TARGET_XOP && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
    "vpperm\t{%3, %2, %1, %0|%0, %1, %2, %3}"
    [(set_attr "type" "sse4arg")
     (set_attr "mode" "TI")])
  
  ;; XOP packed rotate instructions
--- 27331,27342 ----
  	 (truncate:V8QI
  	  (match_operand:V8HI 1 "register_operand" "x,x"))
  	 (truncate:V8QI
! 	  (match_operand:V8HI 2 "nonimmediate_operand" "x,jm"))))
!    (use (match_operand:V16QI 3 "nonimmediate_operand" "xjm,x"))]
    "TARGET_XOP && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
    "vpperm\t{%3, %2, %1, %0|%0, %1, %2, %3}"
    [(set_attr "type" "sse4arg")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "TI")])
  
  ;; XOP packed rotate instructions
***************
*** 27382,27388 ****
  (define_insn "xop_rotl<mode>3"
    [(set (match_operand:VI_128 0 "register_operand" "=x")
  	(rotate:VI_128
! 	 (match_operand:VI_128 1 "nonimmediate_operand" "xm")
  	 (match_operand:SI 2 "const_0_to_<sserotatemax>_operand")))]
    "TARGET_XOP"
    "vprot<ssemodesuffix>\t{%2, %1, %0|%0, %1, %2}"
--- 27407,27413 ----
  (define_insn "xop_rotl<mode>3"
    [(set (match_operand:VI_128 0 "register_operand" "=x")
  	(rotate:VI_128
! 	 (match_operand:VI_128 1 "nonimmediate_operand" "xjm")
  	 (match_operand:SI 2 "const_0_to_<sserotatemax>_operand")))]
    "TARGET_XOP"
    "vprot<ssemodesuffix>\t{%2, %1, %0|%0, %1, %2}"
***************
*** 27390,27401 ****
     (set_attr "prefix" "vex")
     (set_attr "prefix_extra" "1")
     (set_attr "length_immediate" "1")
     (set_attr "mode" "TI")])
  
  (define_insn "xop_rotr<mode>3"
    [(set (match_operand:VI_128 0 "register_operand" "=x")
  	(rotatert:VI_128
! 	 (match_operand:VI_128 1 "nonimmediate_operand" "xm")
  	 (match_operand:SI 2 "const_0_to_<sserotatemax>_operand")))]
    "TARGET_XOP"
  {
--- 27415,27427 ----
     (set_attr "prefix" "vex")
     (set_attr "prefix_extra" "1")
     (set_attr "length_immediate" "1")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "TI")])
  
  (define_insn "xop_rotr<mode>3"
    [(set (match_operand:VI_128 0 "register_operand" "=x")
  	(rotatert:VI_128
! 	 (match_operand:VI_128 1 "nonimmediate_operand" "xjm")
  	 (match_operand:SI 2 "const_0_to_<sserotatemax>_operand")))]
    "TARGET_XOP"
  {
***************
*** 27407,27412 ****
--- 27433,27439 ----
     (set_attr "prefix" "vex")
     (set_attr "prefix_extra" "1")
     (set_attr "length_immediate" "1")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "TI")])
  
  (define_expand "vrotr<mode>3"
***************
*** 27435,27444 ****
    [(set (match_operand:VI_128 0 "register_operand" "=x,x")
  	(if_then_else:VI_128
  	 (ge:VI_128
! 	  (match_operand:VI_128 2 "nonimmediate_operand" "x,m")
  	  (const_int 0))
  	 (rotate:VI_128
! 	  (match_operand:VI_128 1 "nonimmediate_operand" "xm,x")
  	  (match_dup 2))
  	 (rotatert:VI_128
  	  (match_dup 1)
--- 27462,27471 ----
    [(set (match_operand:VI_128 0 "register_operand" "=x,x")
  	(if_then_else:VI_128
  	 (ge:VI_128
! 	  (match_operand:VI_128 2 "nonimmediate_operand" "x,jm")
  	  (const_int 0))
  	 (rotate:VI_128
! 	  (match_operand:VI_128 1 "nonimmediate_operand" "xjm,x")
  	  (match_dup 2))
  	 (rotatert:VI_128
  	  (match_dup 1)
***************
*** 27448,27453 ****
--- 27475,27481 ----
    [(set_attr "type" "sseishft")
     (set_attr "prefix" "vex")
     (set_attr "prefix_extra" "1")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "TI")])
  
  ;; XOP packed shift instructions.
***************
*** 27672,27681 ****
    [(set (match_operand:VI_128 0 "register_operand" "=x,x")
  	(if_then_else:VI_128
  	 (ge:VI_128
! 	  (match_operand:VI_128 2 "nonimmediate_operand" "x,m")
  	  (const_int 0))
  	 (ashift:VI_128
! 	  (match_operand:VI_128 1 "nonimmediate_operand" "xm,x")
  	  (match_dup 2))
  	 (ashiftrt:VI_128
  	  (match_dup 1)
--- 27700,27709 ----
    [(set (match_operand:VI_128 0 "register_operand" "=x,x")
  	(if_then_else:VI_128
  	 (ge:VI_128
! 	  (match_operand:VI_128 2 "nonimmediate_operand" "x,jm")
  	  (const_int 0))
  	 (ashift:VI_128
! 	  (match_operand:VI_128 1 "nonimmediate_operand" "xjm,x")
  	  (match_dup 2))
  	 (ashiftrt:VI_128
  	  (match_dup 1)
***************
*** 27685,27700 ****
    [(set_attr "type" "sseishft")
     (set_attr "prefix" "vex")
     (set_attr "prefix_extra" "1")
     (set_attr "mode" "TI")])
  
  (define_insn "xop_shl<mode>3"
    [(set (match_operand:VI_128 0 "register_operand" "=x,x")
  	(if_then_else:VI_128
  	 (ge:VI_128
! 	  (match_operand:VI_128 2 "nonimmediate_operand" "x,m")
  	  (const_int 0))
  	 (ashift:VI_128
! 	  (match_operand:VI_128 1 "nonimmediate_operand" "xm,x")
  	  (match_dup 2))
  	 (lshiftrt:VI_128
  	  (match_dup 1)
--- 27713,27729 ----
    [(set_attr "type" "sseishft")
     (set_attr "prefix" "vex")
     (set_attr "prefix_extra" "1")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "TI")])
  
  (define_insn "xop_shl<mode>3"
    [(set (match_operand:VI_128 0 "register_operand" "=x,x")
  	(if_then_else:VI_128
  	 (ge:VI_128
! 	  (match_operand:VI_128 2 "nonimmediate_operand" "x,jm")
  	  (const_int 0))
  	 (ashift:VI_128
! 	  (match_operand:VI_128 1 "nonimmediate_operand" "xjm,x")
  	  (match_dup 2))
  	 (lshiftrt:VI_128
  	  (match_dup 1)
***************
*** 27704,27709 ****
--- 27733,27739 ----
    [(set_attr "type" "sseishft")
     (set_attr "prefix" "vex")
     (set_attr "prefix_extra" "1")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "TI")])
  
  (define_expand "<insn><mode>3"
***************
*** 27848,27860 ****
  (define_insn "xop_frcz<mode>2"
    [(set (match_operand:FMAMODE 0 "register_operand" "=x")
  	(unspec:FMAMODE
! 	 [(match_operand:FMAMODE 1 "nonimmediate_operand" "xm")]
  	 UNSPEC_FRCZ))]
    "TARGET_XOP"
    "vfrcz<ssemodesuffix>\t{%1, %0|%0, %1}"
    [(set_attr "type" "ssecvt1")
     (set_attr "prefix" "vex")
     (set_attr "prefix_extra" "1")
     (set_attr "mode" "<MODE>")])
  
  (define_expand "xop_vmfrcz<mode>2"
--- 27878,27891 ----
  (define_insn "xop_frcz<mode>2"
    [(set (match_operand:FMAMODE 0 "register_operand" "=x")
  	(unspec:FMAMODE
! 	 [(match_operand:FMAMODE 1 "nonimmediate_operand" "xjm")]
  	 UNSPEC_FRCZ))]
    "TARGET_XOP"
    "vfrcz<ssemodesuffix>\t{%1, %0|%0, %1}"
    [(set_attr "type" "ssecvt1")
     (set_attr "prefix" "vex")
     (set_attr "prefix_extra" "1")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "<MODE>")])
  
  (define_expand "xop_vmfrcz<mode>2"
***************
*** 27872,27878 ****
    [(set (match_operand:VF_128 0 "register_operand" "=x")
  	(vec_merge:VF_128
  	  (unspec:VF_128
! 	   [(match_operand:VF_128 1 "nonimmediate_operand" "xm")]
  	   UNSPEC_FRCZ)
  	  (match_operand:VF_128 2 "const0_operand")
  	  (const_int 1)))]
--- 27903,27909 ----
    [(set (match_operand:VF_128 0 "register_operand" "=x")
  	(vec_merge:VF_128
  	  (unspec:VF_128
! 	   [(match_operand:VF_128 1 "nonimmediate_operand" "xjm")]
  	   UNSPEC_FRCZ)
  	  (match_operand:VF_128 2 "const0_operand")
  	  (const_int 1)))]
***************
*** 27881,27906 ****
    [(set_attr "type" "ssecvt1")
     (set_attr "prefix" "vex")
     (set_attr "prefix_extra" "1")
     (set_attr "mode" "<MODE>")])
  
  (define_insn "xop_maskcmp<mode>3"
    [(set (match_operand:VI_128 0 "register_operand" "=x")
  	(match_operator:VI_128 1 "ix86_comparison_int_operator"
  	 [(match_operand:VI_128 2 "register_operand" "x")
! 	  (match_operand:VI_128 3 "nonimmediate_operand" "xm")]))]
    "TARGET_XOP"
    "vpcom%Y1<ssemodesuffix>\t{%3, %2, %0|%0, %2, %3}"
    [(set_attr "type" "sse4arg")
     (set_attr "mode" "TI")])
  
  (define_insn "xop_maskcmp_uns<mode>3"
    [(set (match_operand:VI_128 0 "register_operand" "=x")
  	(match_operator:VI_128 1 "ix86_comparison_uns_operator"
  	 [(match_operand:VI_128 2 "register_operand" "x")
! 	  (match_operand:VI_128 3 "nonimmediate_operand" "xm")]))]
    "TARGET_XOP"
    "vpcom%Y1u<ssemodesuffix>\t{%3, %2, %0|%0, %2, %3}"
    [(set_attr "type" "sse4arg")
     (set_attr "mode" "TI")])
  
  ;; Version of pcom*u* that is called from the intrinsics that allows pcomequ*
--- 27912,27940 ----
    [(set_attr "type" "ssecvt1")
     (set_attr "prefix" "vex")
     (set_attr "prefix_extra" "1")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "<MODE>")])
  
  (define_insn "xop_maskcmp<mode>3"
    [(set (match_operand:VI_128 0 "register_operand" "=x")
  	(match_operator:VI_128 1 "ix86_comparison_int_operator"
  	 [(match_operand:VI_128 2 "register_operand" "x")
! 	  (match_operand:VI_128 3 "nonimmediate_operand" "xjm")]))]
    "TARGET_XOP"
    "vpcom%Y1<ssemodesuffix>\t{%3, %2, %0|%0, %2, %3}"
    [(set_attr "type" "sse4arg")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "TI")])
  
  (define_insn "xop_maskcmp_uns<mode>3"
    [(set (match_operand:VI_128 0 "register_operand" "=x")
  	(match_operator:VI_128 1 "ix86_comparison_uns_operator"
  	 [(match_operand:VI_128 2 "register_operand" "x")
! 	  (match_operand:VI_128 3 "nonimmediate_operand" "xjm")]))]
    "TARGET_XOP"
    "vpcom%Y1u<ssemodesuffix>\t{%3, %2, %0|%0, %2, %3}"
    [(set_attr "type" "sse4arg")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "TI")])
  
  ;; Version of pcom*u* that is called from the intrinsics that allows pcomequ*
***************
*** 27911,27921 ****
  	(unspec:VI_128
  	 [(match_operator:VI_128 1 "ix86_comparison_uns_operator"
  	  [(match_operand:VI_128 2 "register_operand" "x")
! 	   (match_operand:VI_128 3 "nonimmediate_operand" "xm")])]
  	 UNSPEC_XOP_UNSIGNED_CMP))]
    "TARGET_XOP"
    "vpcom%Y1u<ssemodesuffix>\t{%3, %2, %0|%0, %2, %3}"
    [(set_attr "type" "sse4arg")
     (set_attr "mode" "TI")])
  
  ;; Pcomtrue and pcomfalse support.  These are useless instructions, but are
--- 27945,27956 ----
  	(unspec:VI_128
  	 [(match_operator:VI_128 1 "ix86_comparison_uns_operator"
  	  [(match_operand:VI_128 2 "register_operand" "x")
! 	   (match_operand:VI_128 3 "nonimmediate_operand" "xjm")])]
  	 UNSPEC_XOP_UNSIGNED_CMP))]
    "TARGET_XOP"
    "vpcom%Y1u<ssemodesuffix>\t{%3, %2, %0|%0, %2, %3}"
    [(set_attr "type" "sse4arg")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "TI")])
  
  ;; Pcomtrue and pcomfalse support.  These are useless instructions, but are
***************
*** 27924,27930 ****
    [(set (match_operand:VI_128 0 "register_operand" "=x")
  	(unspec:VI_128
  	  [(match_operand:VI_128 1 "register_operand" "x")
! 	   (match_operand:VI_128 2 "nonimmediate_operand" "xm")
  	   (match_operand:SI 3 "const_int_operand")]
  	  UNSPEC_XOP_TRUEFALSE))]
    "TARGET_XOP"
--- 27959,27965 ----
    [(set (match_operand:VI_128 0 "register_operand" "=x")
  	(unspec:VI_128
  	  [(match_operand:VI_128 1 "register_operand" "x")
! 	   (match_operand:VI_128 2 "nonimmediate_operand" "xjm")
  	   (match_operand:SI 3 "const_int_operand")]
  	  UNSPEC_XOP_TRUEFALSE))]
    "TARGET_XOP"
***************
*** 27934,27952 ****
  	  : "vpcomfalse<ssemodesuffix>\t{%2, %1, %0|%0, %1, %2}");
  }
    [(set_attr "type" "sse4arg")
     (set_attr "mode" "TI")])
  
  (define_insn "xop_vpermil2<mode>3"
    [(set (match_operand:VF_128_256 0 "register_operand" "=x,x")
  	(unspec:VF_128_256
  	  [(match_operand:VF_128_256 1 "register_operand" "x,x")
! 	   (match_operand:VF_128_256 2 "nonimmediate_operand" "x,m")
! 	   (match_operand:<sseintvecmode> 3 "nonimmediate_operand" "xm,x")
  	   (match_operand:SI 4 "const_0_to_3_operand")]
  	  UNSPEC_VPERMIL2))]
    "TARGET_XOP"
    "vpermil2<ssemodesuffix>\t{%4, %3, %2, %1, %0|%0, %1, %2, %3, %4}"
    [(set_attr "type" "sse4arg")
     (set_attr "mode" "<MODE>")])
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
--- 27969,27989 ----
  	  : "vpcomfalse<ssemodesuffix>\t{%2, %1, %0|%0, %1, %2}");
  }
    [(set_attr "type" "sse4arg")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "TI")])
  
  (define_insn "xop_vpermil2<mode>3"
    [(set (match_operand:VF_128_256 0 "register_operand" "=x,x")
  	(unspec:VF_128_256
  	  [(match_operand:VF_128_256 1 "register_operand" "x,x")
! 	   (match_operand:VF_128_256 2 "nonimmediate_operand" "x,jm")
! 	   (match_operand:<sseintvecmode> 3 "nonimmediate_operand" "xjm,x")
  	   (match_operand:SI 4 "const_0_to_3_operand")]
  	  UNSPEC_VPERMIL2))]
    "TARGET_XOP"
    "vpermil2<ssemodesuffix>\t{%4, %3, %2, %1, %0|%0, %1, %2, %3, %4}"
    [(set_attr "type" "sse4arg")
+    (set_attr "addr" "gpr16")
     (set_attr "mode" "<MODE>")])
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
diff -Nrcpad gcc-16-20260815/gcc/config/microblaze/microblaze.h gcc-16-20260822/gcc/config/microblaze/microblaze.h
*** gcc-16-20260815/gcc/config/microblaze/microblaze.h	Sat Aug 15 22:32:07 2026
--- gcc-16-20260822/gcc/config/microblaze/microblaze.h	Sat Aug 22 22:32:08 2026
*************** extern enum pipeline_type microblaze_pip
*** 176,181 ****
--- 176,189 ----
  #define DWARF_FRAME_RETURN_COLUMN \
  	(GP_REG_FIRST + MB_ABI_SUB_RETURN_ADDR_REGNUM)
  
+ /* Signal frames (config/microblaze/linux-unwind.h) record the
+    interrupted PC in DWARF column 36, one past the hard registers,
+    because column 15 must keep the interrupted r15.  Declaring it as
+    the alternate return column makes init_dwarf_reg_size_table size
+    it; otherwise _Unwind_GetGR aborts when unwinding through a signal
+    frame, such as during pthread cancellation.  */
+ #define DWARF_ALT_FRAME_RETURN_COLUMN 36
+ 
  /* Initial state of return address on entry to func = R15.
     Actually, the RA is at R15+8, but gcc doesn't know how
     to generate this.
diff -Nrcpad gcc-16-20260815/gcc/config/rs6000/rs6000-builtin.cc gcc-16-20260822/gcc/config/rs6000/rs6000-builtin.cc
*** gcc-16-20260815/gcc/config/rs6000/rs6000-builtin.cc	Sat Aug 15 22:32:07 2026
--- gcc-16-20260822/gcc/config/rs6000/rs6000-builtin.cc	Sat Aug 22 22:32:08 2026
*************** rs6000_expand_builtin (tree exp, rtx tar
*** 3504,3509 ****
--- 3504,3513 ----
  
        // 0: Boolean return (Output)
        struct expand_operand ops[8];
+       // Make sure we always have a place for bool operand.
+       if (target == const0_rtx || !target)
+ 	target = gen_reg_rtx (SImode);
+ 
        create_output_operand (&ops[0], target, SImode);
  
        // 1: Old value return (Output)
diff -Nrcpad gcc-16-20260815/gcc/config/rs6000/rs6000-c.cc gcc-16-20260822/gcc/config/rs6000/rs6000-c.cc
*** gcc-16-20260815/gcc/config/rs6000/rs6000-c.cc	Sat Aug 15 22:32:07 2026
--- gcc-16-20260822/gcc/config/rs6000/rs6000-c.cc	Sat Aug 22 22:32:08 2026
*************** altivec_resolve_overloaded_builtin (loca
*** 1734,1774 ****
  	    error_at (loc, "%qE requires 6 arguments", fndecl);
  	  return error_mark_node;
  	}
  
!       /* Get the first argument to determine the actual type.  */
!       tree arg0 = (*arglist)[0];
!       tree type0 = TREE_TYPE (arg0);
! 
!       /* Must be a pointer.  */
!       if (!POINTER_TYPE_P (type0))
! 	{
! 	  if (complain)
! 	    error_at (loc, "first argument to %qE must be a pointer", fndecl);
! 	  return error_mark_node;
! 	}
  
!       /* Get the pointee type.  */
!       tree pointee_type = TREE_TYPE (type0);
  
!       /* Must be a complete type.  */
!       if (!COMPLETE_TYPE_P (pointee_type))
! 	{
! 	  if (complain)
! 	    error_at (loc, "first argument to %qE must point to a complete"
! 		      " type", fndecl);
! 	  return error_mark_node;
! 	}
  
!       /* Get size in bytes.  */
!       tree size_tree = TYPE_SIZE_UNIT (pointee_type);
!       if (!tree_fits_uhwi_p (size_tree))
! 	{
  	  if (complain)
! 	    error_at (loc, "type size must be constant");
  	  return error_mark_node;
  	}
! 
!       unsigned HOST_WIDE_INT size = tree_to_uhwi (size_tree);
  
        /* Determine which size-specific builtin to use.  */
        rs6000_gen_builtins target_fcode;
--- 1734,1788 ----
  	    error_at (loc, "%qE requires 6 arguments", fndecl);
  	  return error_mark_node;
  	}
+       unsigned HOST_WIDE_INT size;
+       for (int i=0; i<3; i++) {
+ 	/* Get the first argument to determine the actual type.  */
+ 	tree arg0 = (*arglist)[i];
+ 	tree type0 = TREE_TYPE (arg0);
  
! 	/* Must be a pointer.  */
! 	if (!POINTER_TYPE_P (type0))
! 	  {
! 	    if (complain)
! 	      error_at (loc, "argument %d to %qE must be a pointer",
! 			i + 1, fndecl);
! 	    return error_mark_node;
! 	  }
  
! 	/* Get the pointee type.  */
! 	tree pointee_type = TREE_TYPE (type0);
  
! 	/* Must be a complete type.  */
! 	if (!COMPLETE_TYPE_P (pointee_type))
! 	  {
! 	    if (complain)
! 	      error_at (loc, "argument %d to %qE must point to a complete"
! 			" type", i + 1, fndecl);
! 	    return error_mark_node;
! 	  }
! 	if (FUNCTION_POINTER_TYPE_P (type0))
! 	  {
! 	    if (complain)
! 	      error_at (loc, "argument %d to %qE must not be a pointer to a"
! 			" function", i + 1, fndecl);
! 	    return error_mark_node;
! 	  }
  
! 	/* Get size in bytes.  */
! 	tree size_tree = TYPE_SIZE_UNIT (pointee_type);
! 	if (!tree_fits_uhwi_p (size_tree))
! 	  {
! 		if (complain)
! 		error_at (loc, "type size must be constant");
! 		return error_mark_node;
! 	  }
! 	if (i > 0 && size != tree_to_uhwi (size_tree)) {
  	  if (complain)
! 	    error_at(loc, "size mismatch in argument %d", i + 1);
  	  return error_mark_node;
  	}
! 	size = tree_to_uhwi (size_tree);
!       }
  
        /* Determine which size-specific builtin to use.  */
        rs6000_gen_builtins target_fcode;
*************** altivec_resolve_overloaded_builtin (loca
*** 1793,1798 ****
--- 1807,1819 ----
  	  int_type = long_long_unsigned_type_node;
  	  break;
  	case 16:
+ 	  if (!TARGET_QUAD_MEMORY_ATOMIC)
+ 	    {
+ 	      if (complain)
+ 		error_at (loc, "%qE requires the %qs option for 16-byte operands",
+ 			  fndecl, "-mquad-memory-atomic");
+ 	      return error_mark_node;
+ 	    }
  	  target_fcode = RS6000_BIF_PPC_ATOMIC_CAS_TI;
  	  int_type = unsigned_intTI_type_node;
  	  break;
diff -Nrcpad gcc-16-20260815/gcc/config/t-openbsd gcc-16-20260822/gcc/config/t-openbsd
*** gcc-16-20260815/gcc/config/t-openbsd	Sat Aug 15 22:32:07 2026
--- gcc-16-20260822/gcc/config/t-openbsd	Sat Aug 22 22:32:08 2026
***************
*** 1,5 ****
! # We don't need GCC's own include files.
! USER_H = $(EXTRA_HEADERS)
  
  # OpenBSD-specific D support.
  openbsd-d.o: $(srcdir)/config/openbsd-d.cc
--- 1,6 ----
! # We need stdatomic.h from GCC's include files.
! USER_H = $(srcdir)/ginclude/stdatomic.h \
! 	$(EXTRA_HEADERS)
  
  # OpenBSD-specific D support.
  openbsd-d.o: $(srcdir)/config/openbsd-d.cc
diff -Nrcpad gcc-16-20260815/gcc/cp/ChangeLog gcc-16-20260822/gcc/cp/ChangeLog
*** gcc-16-20260815/gcc/cp/ChangeLog	Sat Aug 15 22:32:07 2026
--- gcc-16-20260822/gcc/cp/ChangeLog	Sat Aug 22 22:32:08 2026
***************
*** 1,3 ****
--- 1,91 ----
+ 2026-08-20  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-07-30  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/126335
+ 	* typeck2.cc (split_nonconstant_init): Assert that DECL_INITIAL
+ 	is initially null.  Don't clear DECL_INITIAL if build_vec_init
+ 	set it.  Only clear TREE_READONLY if CODE has side-effects.
+ 
+ 2026-08-20  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-08-03  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/124794
+ 	* cp-tree.h (baselink_for_fns): Adjust declaration.
+ 	* parser.cc (cp_parser_reflect_expression): Adjust the call to
+ 	baselink_for_fns.
+ 	* reflect.cc (splice): Call baselink_for_fns.
+ 	* semantics.cc (baselink_for_fns): Add a bool parameter.  If
+ 	it's true, ignore currently_open_derived_class.
+ 
+ 2026-08-20  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-08-03  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/126546
+ 	* reflect.cc (get_reflection): Check PACK_INDEX_EXPR instead of
+ 	PACK_INDEX_P.
+ 
+ 2026-08-19  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-08-12  Patrick Palka  <ppalka@redhat.com>
+ 		    Bernhard M. Wiedemann  <bwiedemann@suse.de>
+ 
+ 	PR c++/124811
+ 	* decl.cc (typename_hasher::hash): Instead of pointer hashing,
+ 	hash TYPE_HASH of context and use iterative_hash_template_arg
+ 	to hash fullname.
+ 
+ 2026-08-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-08-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/126918
+ 	* constexpr.cc (class constexpr_global_ctx): Extend description of
+ 	caught_exceptions vector.
+ 	(cxx_eval_cxa_builtin_fn): When catching a pointer-to-member and
+ 	the current exception is nullptr or pointer-to-member with different
+ 	type, create a temporary, initialize it from the exception value and
+ 	return address of it.  Make sure to free these temporaries at
+ 	__cxa_end_catch time.
+ 	* call.cc (handler_match_for_exception_type): Allow NULLPTR_TYPE
+ 	exception type or different pointer-to-member type even for
+ 	TYPE_PTRMEMFUNC_P types, not just TYPE_PTRDATAMEM_P types.
+ 
+ 2026-08-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-08-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/126867
+ 	* tree.cc (record_has_unique_obj_representations): Use
+ 	location_of (const_cast <tree> (t)) rather than
+ 	DECL_SOURCE_LOCATION (t).
+ 
+ 2026-08-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-08-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/126752
+ 	* init.cc (build_vec_init): Assert TREE_PURPOSE of the
+ 	last *cleanup_flags element is rval rather than iterator.
+ 
+ 2026-08-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-08-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/126093
+ 	* mangle.cc (write_reflection): Call write_unqualified_name on
+ 	STRIP_TEMPLATE (arg) rather than just arg.
+ 
  2026-08-14  Patrick Palka  <ppalka@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-16-20260815/gcc/cp/call.cc gcc-16-20260822/gcc/cp/call.cc
*** gcc-16-20260815/gcc/cp/call.cc	Sat Aug 15 22:32:07 2026
--- gcc-16-20260822/gcc/cp/call.cc	Sat Aug 22 22:32:08 2026
*************** handler_match_for_exception_type (tree h
*** 1749,1761 ****
        if (binfo && binfo != error_mark_node)
  	return true;
      }
!   if (TYPE_PTR_P (handler_type) || TYPE_PTRDATAMEM_P (handler_type))
      {
        if (TREE_CODE (except_type) == NULLPTR_TYPE)
  	return true;
        if ((TYPE_PTR_P (handler_type) && TYPE_PTR_P (except_type))
  	  || (TYPE_PTRDATAMEM_P (handler_type)
! 	      && TYPE_PTRDATAMEM_P (except_type)))
  	{
  	  conversion *conv
  	    = standard_conversion (handler_type, except_type, NULL_TREE,
--- 1749,1763 ----
        if (binfo && binfo != error_mark_node)
  	return true;
      }
!   if (TYPE_PTR_P (handler_type) || TYPE_PTRMEM_P (handler_type))
      {
        if (TREE_CODE (except_type) == NULLPTR_TYPE)
  	return true;
        if ((TYPE_PTR_P (handler_type) && TYPE_PTR_P (except_type))
  	  || (TYPE_PTRDATAMEM_P (handler_type)
! 	      && TYPE_PTRDATAMEM_P (except_type))
! 	  || (TYPE_PTRMEMFUNC_P (handler_type)
!  	      && TYPE_PTRMEMFUNC_P (except_type)))
  	{
  	  conversion *conv
  	    = standard_conversion (handler_type, except_type, NULL_TREE,
diff -Nrcpad gcc-16-20260815/gcc/cp/constexpr.cc gcc-16-20260822/gcc/cp/constexpr.cc
*** gcc-16-20260815/gcc/cp/constexpr.cc	Sat Aug 15 22:32:07 2026
--- gcc-16-20260822/gcc/cp/constexpr.cc	Sat Aug 22 22:32:08 2026
*************** public:
*** 1193,1199 ****
    auto_vec<tree, 16> heap_vars;
    /* Vector of caught exceptions, including exceptions still not active at
       the start of a handler (those are immediately followed up by HANDLER_TYPE
!      until __cxa_begin_catch finishes).  */
    auto_vec<tree, 2> caught_exceptions;
    /* Cleanups that need to be evaluated at the end of CLEANUP_POINT_EXPR.  */
    vec<tree> *cleanups;
--- 1193,1203 ----
    auto_vec<tree, 16> heap_vars;
    /* Vector of caught exceptions, including exceptions still not active at
       the start of a handler (those are immediately followed up by HANDLER_TYPE
!      until __cxa_begin_catch finishes).  If __cxa_begin_catch or
!      __cxa_get_exception_ptr need to create temporaries, the VAR_DECL of the
!      exception object is wrapped in the vector into a TREE_LIST where
!      TREE_VALUE of it is the VAR_DECL of the exception object and TREE_PURPOSE
!      one of the temporaries, others chained through DECL_CHAIN.  */
    auto_vec<tree, 2> caught_exceptions;
    /* Cleanups that need to be evaluated at the end of CLEANUP_POINT_EXPR.  */
    vec<tree> *cleanups;
*************** cxx_eval_cxa_builtin_fn (const constexpr
*** 1939,1948 ****
  	     VAR_DECL after __cxa_begin_catch serves as the current exception
  	     and is then popped in __cxa_end_catch evaluation.  */
  	  tree handler_type = ctx->global->caught_exceptions.last ();
! 	  if (handler_type && VAR_P (handler_type))
  	    goto no_caught_exceptions;
  	  unsigned idx = ctx->global->caught_exceptions.length () - 2;
  	  arg = ctx->global->caught_exceptions[idx];
  	  gcc_assert (VAR_P (arg));
  	  if (kind == CXA_BEGIN_CATCH)
  	    {
--- 1943,1955 ----
  	     VAR_DECL after __cxa_begin_catch serves as the current exception
  	     and is then popped in __cxa_end_catch evaluation.  */
  	  tree handler_type = ctx->global->caught_exceptions.last ();
! 	  if (handler_type && (VAR_P (handler_type)
! 			       || TREE_CODE (handler_type) == TREE_LIST))
  	    goto no_caught_exceptions;
  	  unsigned idx = ctx->global->caught_exceptions.length () - 2;
  	  arg = ctx->global->caught_exceptions[idx];
+ 	  if (TREE_CODE (arg) == TREE_LIST)
+ 	    arg = TREE_VALUE (arg);
  	  gcc_assert (VAR_P (arg));
  	  if (kind == CXA_BEGIN_CATCH)
  	    {
*************** cxx_eval_cxa_builtin_fn (const constexpr
*** 1970,1981 ****
  	    {
  	      /* Used for catch of a non-pointer type.  */
  	      tree exc_type = strip_array_types (TREE_TYPE (arg));
! 	      tree exc_ptr_type = build_pointer_type (exc_type);
! 	      arg = build_fold_addr_expr_with_type (arg, exc_ptr_type);
! 	      if (CLASS_TYPE_P (handler_type))
  		{
! 		  tree ptr_type = build_pointer_type (handler_type);
! 		  arg = cp_convert (ptr_type, arg,
  				    ctx->quiet ? tf_none
  				    : tf_warning_or_error);
  		  if (arg == error_mark_node)
--- 1977,1990 ----
  	    {
  	      /* Used for catch of a non-pointer type.  */
  	      tree exc_type = strip_array_types (TREE_TYPE (arg));
! 	      if (TYPE_PTRMEM_P (handler_type)
! 		  && !same_type_ignoring_top_level_qualifiers_p
! 				(handler_type, exc_type))
  		{
! 		  if (TREE_CODE (TREE_TYPE (arg)) == ARRAY_TYPE)
! 		    arg = build4 (ARRAY_REF, TREE_TYPE (TREE_TYPE (arg)), arg,
! 				  size_zero_node, NULL_TREE, NULL_TREE);
! 		  arg = cp_convert (handler_type, arg,
  				    ctx->quiet ? tf_none
  				    : tf_warning_or_error);
  		  if (arg == error_mark_node)
*************** cxx_eval_cxa_builtin_fn (const constexpr
*** 1983,1988 ****
--- 1992,2033 ----
  		      *non_constant_p = true;
  		      return call;
  		    }
+ 		  tree var = build_decl (loc, VAR_DECL, heap_identifier,
+ 					 handler_type);
+ 		  DECL_ARTIFICIAL (var) = 1;
+ 		  ctx->global->heap_vars.safe_push (var);
+ 		  ctx->global->put_value (var, NULL_TREE);
+ 		  tree init = build2_loc (loc, INIT_EXPR, handler_type,
+ 					  var, arg);
+ 		  arg = ctx->global->caught_exceptions[idx];
+ 		  if (TREE_CODE (arg) == TREE_LIST)
+ 		    {
+ 		      DECL_CHAIN (var) = TREE_PURPOSE (arg);
+ 		      TREE_PURPOSE (arg) = var;
+ 		    }
+ 		  else
+ 		    ctx->global->caught_exceptions[idx]
+ 		      = build_tree_list (var, arg);
+ 		  arg = cp_build_addr_expr (var, tf_none);
+ 		  arg = build2_loc (loc, COMPOUND_EXPR, TREE_TYPE (arg),
+ 				    init, arg);
+ 		}
+ 	      else
+ 		{
+ 		  tree exc_ptr_type = build_pointer_type (exc_type);
+ 		  arg = build_fold_addr_expr_with_type (arg, exc_ptr_type);
+ 		  if (CLASS_TYPE_P (handler_type))
+ 		    {
+ 		      tree ptr_type = build_pointer_type (handler_type);
+ 		      arg = cp_convert (ptr_type, arg,
+ 					ctx->quiet ? tf_none
+ 					: tf_warning_or_error);
+ 		      if (arg == error_mark_node)
+ 			{
+ 			  *non_constant_p = true;
+ 			  return call;
+ 			}
+ 		    }
  		}
  	    }
  	  return cxx_eval_constant_expression (ctx, arg, vc_prvalue,
*************** cxx_eval_cxa_builtin_fn (const constexpr
*** 2066,2073 ****
        else
  	{
  	  arg = ctx->global->caught_exceptions.pop ();
! 	  if (arg == NULL_TREE || !VAR_P (arg))
  	    goto no_active_exc;
  	free_except:
  	  DECL_EXCEPTION_REFCOUNT (arg)
  	    = size_binop (MINUS_EXPR, DECL_EXCEPTION_REFCOUNT (arg),
--- 2111,2130 ----
        else
  	{
  	  arg = ctx->global->caught_exceptions.pop ();
! 	  if (arg == NULL_TREE
! 	      || (!VAR_P (arg) && TREE_CODE (arg) != TREE_LIST))
  	    goto no_active_exc;
+ 	  if (TREE_CODE (arg) == TREE_LIST)
+ 	    {
+ 	      for (tree aux = TREE_PURPOSE (arg); aux; aux = DECL_CHAIN (aux))
+ 		{
+ 		  DECL_NAME (aux) = heap_deleted_identifier;
+ 		  ctx->global->destroy_value (aux);
+ 		  ctx->global->heap_dealloc_count++;
+ 		}
+ 	      arg = TREE_VALUE (arg);
+ 	    }
+ 	  DECL_CHAIN (arg) = NULL_TREE;
  	free_except:
  	  DECL_EXCEPTION_REFCOUNT (arg)
  	    = size_binop (MINUS_EXPR, DECL_EXCEPTION_REFCOUNT (arg),
*************** cxx_eval_cxa_builtin_fn (const constexpr
*** 2103,2109 ****
  	goto invalid_nargs;
        unsigned idx;
        FOR_EACH_VEC_ELT_REVERSE (ctx->global->caught_exceptions, idx, arg)
! 	if (arg == NULL_TREE || !VAR_P (arg))
  	  --idx;
  	else
  	  break;
--- 2160,2166 ----
  	goto invalid_nargs;
        unsigned idx;
        FOR_EACH_VEC_ELT_REVERSE (ctx->global->caught_exceptions, idx, arg)
! 	if (arg == NULL_TREE || (!VAR_P (arg) && TREE_CODE (arg) != TREE_LIST))
  	  --idx;
  	else
  	  break;
*************** cxx_eval_cxa_builtin_fn (const constexpr
*** 2115,2120 ****
--- 2172,2179 ----
  	  *non_constant_p = true;
  	  return call;
  	}
+       if (TREE_CODE (arg) == TREE_LIST)
+ 	arg = TREE_VALUE (arg);
        DECL_EXCEPTION_REFCOUNT (arg)
  	= size_binop (PLUS_EXPR, DECL_EXCEPTION_REFCOUNT (arg), size_one_node);
        ++ctx->global->uncaught_exceptions;
*************** cxx_eval_cxa_builtin_fn (const constexpr
*** 2230,2236 ****
  	      return call;
  	    }
  	  FOR_EACH_VEC_ELT_REVERSE (ctx->global->caught_exceptions, idx, arg)
! 	    if (arg == NULL_TREE || !VAR_P (arg))
  	      --idx;
  	    else
  	      break;
--- 2289,2296 ----
  	      return call;
  	    }
  	  FOR_EACH_VEC_ELT_REVERSE (ctx->global->caught_exceptions, idx, arg)
! 	    if (arg == NULL_TREE
! 		|| (!VAR_P (arg) && TREE_CODE (arg) != TREE_LIST))
  	      --idx;
  	    else
  	      break;
*************** cxx_eval_cxa_builtin_fn (const constexpr
*** 2249,2254 ****
--- 2309,2316 ----
  	    arg = build_zero_cst (TREE_TYPE (fld));
  	  else
  	    {
+ 	      if (TREE_CODE (arg) == TREE_LIST)
+ 		arg = TREE_VALUE (arg);
  	      DECL_EXCEPTION_REFCOUNT (arg)
  		= size_binop (PLUS_EXPR, DECL_EXCEPTION_REFCOUNT (arg),
  			      size_one_node);
diff -Nrcpad gcc-16-20260815/gcc/cp/cp-tree.h gcc-16-20260822/gcc/cp/cp-tree.h
*** gcc-16-20260815/gcc/cp/cp-tree.h	Sat Aug 15 22:32:07 2026
--- gcc-16-20260822/gcc/cp/cp-tree.h	Sat Aug 22 22:32:08 2026
*************** extern void finish_transaction_stmt		(tr
*** 8653,8659 ****
  extern tree build_transaction_expr		(location_t, tree, int, tree);
  extern bool cxx_omp_create_clause_info		(tree, tree, bool, bool,
  						 bool, bool);
! extern tree baselink_for_fns                    (tree);
  extern void finish_static_assert                (tree, tree, location_t,
  						 bool, bool, bool = false);
  extern tree finish_decltype_type                (tree, bool, tsubst_flags_t);
--- 8653,8659 ----
  extern tree build_transaction_expr		(location_t, tree, int, tree);
  extern bool cxx_omp_create_clause_info		(tree, tree, bool, bool,
  						 bool, bool);
! extern tree baselink_for_fns                    (tree, bool = false);
  extern void finish_static_assert                (tree, tree, location_t,
  						 bool, bool, bool = false);
  extern tree finish_decltype_type                (tree, bool, tsubst_flags_t);
diff -Nrcpad gcc-16-20260815/gcc/cp/decl.cc gcc-16-20260822/gcc/cp/decl.cc
*** gcc-16-20260815/gcc/cp/decl.cc	Sat Aug 15 22:32:07 2026
--- gcc-16-20260822/gcc/cp/decl.cc	Sat Aug 22 22:32:08 2026
*************** struct typename_hasher : ggc_ptr_hash<tr
*** 4925,4932 ****
    hash (tree context, tree fullname)
    {
      hashval_t hash = 0;
!     hash = iterative_hash_object (context, hash);
!     hash = iterative_hash_object (fullname, hash);
      return hash;
    }
  
--- 4925,4936 ----
    hash (tree context, tree fullname)
    {
      hashval_t hash = 0;
!     hash = iterative_hash_hashval_t (TYPE_HASH (context), hash);
!     /* FULLNAME could be a template-id, so use iterative_hash_template_arg here.
!        And might as well set comparing_specializations for stronger hashing.  */
!     ++comparing_specializations;
!     hash = iterative_hash_template_arg (fullname, hash);
!     --comparing_specializations;
      return hash;
    }
  
diff -Nrcpad gcc-16-20260815/gcc/cp/init.cc gcc-16-20260822/gcc/cp/init.cc
*** gcc-16-20260815/gcc/cp/init.cc	Sat Aug 15 22:32:07 2026
--- gcc-16-20260822/gcc/cp/init.cc	Sat Aug 22 22:32:08 2026
*************** build_vec_init (tree base, tree maxindex
*** 5348,5354 ****
  	      && !vec_safe_is_empty (*cleanup_flags))
  	    {
  	      auto l = (*cleanup_flags)->last ();
! 	      gcc_assert (TREE_PURPOSE (l) == iterator);
  	      (*cleanup_flags)->pop ();
  	    }
  	  tree const_init = build_constructor (atype, const_vec);
--- 5348,5354 ----
  	      && !vec_safe_is_empty (*cleanup_flags))
  	    {
  	      auto l = (*cleanup_flags)->last ();
! 	      gcc_assert (TREE_PURPOSE (l) == rval);
  	      (*cleanup_flags)->pop ();
  	    }
  	  tree const_init = build_constructor (atype, const_vec);
diff -Nrcpad gcc-16-20260815/gcc/cp/mangle.cc gcc-16-20260822/gcc/cp/mangle.cc
*** gcc-16-20260815/gcc/cp/mangle.cc	Sat Aug 15 22:32:07 2026
--- gcc-16-20260822/gcc/cp/mangle.cc	Sat Aug 22 22:32:08 2026
*************** write_reflection (tree refl)
*** 4302,4308 ****
  	   || strcmp (prefix, "ns") == 0)
      {
        write_prefix (decl_mangling_context (arg));
!       write_unqualified_name (arg);
      }
    else if (strcmp (prefix, "ba") == 0)
      {
--- 4302,4308 ----
  	   || strcmp (prefix, "ns") == 0)
      {
        write_prefix (decl_mangling_context (arg));
!       write_unqualified_name (STRIP_TEMPLATE (arg));
      }
    else if (strcmp (prefix, "ba") == 0)
      {
diff -Nrcpad gcc-16-20260815/gcc/cp/parser.cc gcc-16-20260822/gcc/cp/parser.cc
*** gcc-16-20260815/gcc/cp/parser.cc	Sat Aug 15 22:32:07 2026
--- gcc-16-20260822/gcc/cp/parser.cc	Sat Aug 22 22:32:08 2026
*************** cp_parser_reflect_expression (cp_parser
*** 10183,10189 ****
  	&& !concept_check_p (t))
        t = finish_template_variable (t);
      else if (is_overloaded_fn (t))
!       t = baselink_for_fns (t);
      if (cp_parser_parse_definitely (parser))
        return get_reflection (loc, t);
    }
--- 10183,10189 ----
  	&& !concept_check_p (t))
        t = finish_template_variable (t);
      else if (is_overloaded_fn (t))
!       t = baselink_for_fns (t, /*ignore_current_class_p=*/true);
      if (cp_parser_parse_definitely (parser))
        return get_reflection (loc, t);
    }
diff -Nrcpad gcc-16-20260815/gcc/cp/reflect.cc gcc-16-20260822/gcc/cp/reflect.cc
*** gcc-16-20260815/gcc/cp/reflect.cc	Sat Aug 15 22:32:07 2026
--- gcc-16-20260822/gcc/cp/reflect.cc	Sat Aug 22 22:32:08 2026
*************** get_reflection (location_t loc, tree t,
*** 141,147 ****
  
    /* Constant template parameters and pack-index-expressions cannot
       appear as operands of the reflection operator.  */
!   if (PACK_INDEX_P (t))
      {
        error_at (loc, "%<^^%> cannot be applied to a pack index");
        return error_mark_node;
--- 141,147 ----
  
    /* Constant template parameters and pack-index-expressions cannot
       appear as operands of the reflection operator.  */
!   if (TREE_CODE (t) == PACK_INDEX_EXPR)
      {
        error_at (loc, "%<^^%> cannot be applied to a pack index");
        return error_mark_node;
*************** splice (tree refl)
*** 8778,8783 ****
--- 8778,8788 ----
       it comes from e.g. members_of it is not.  */
    if (DECL_FUNCTION_TEMPLATE_P (refl))
      refl = ovl_make (refl, NULL_TREE);
+   /* Also add a BASELINK so that we handle &[:R:].  Since R was already
+      resolved (e.g. via members_of), we don't want to consider the enclosing
+      class for the access path.  */
+   if (is_overloaded_fn (refl))
+     refl = baselink_for_fns (refl, /*ignore_current_class_p=*/true);
  
    return refl;
  }
diff -Nrcpad gcc-16-20260815/gcc/cp/semantics.cc gcc-16-20260822/gcc/cp/semantics.cc
*** gcc-16-20260815/gcc/cp/semantics.cc	Sat Aug 15 22:32:07 2026
--- gcc-16-20260822/gcc/cp/semantics.cc	Sat Aug 22 22:32:08 2026
*************** finish_base_specifier (tree base, tree a
*** 4505,4527 ****
  /* If FNS is a member function, a set of member functions, or a
     template-id referring to one or more member functions, return a
     BASELINK for FNS, incorporating the current access context.
!    Otherwise, return FNS unchanged.  */
  
  tree
! baselink_for_fns (tree fns)
  {
!   tree scope;
!   tree cl;
! 
!   if (BASELINK_P (fns)
!       || error_operand_p (fns))
      return fns;
  
!   scope = ovl_scope (fns);
    if (!CLASS_TYPE_P (scope))
      return fns;
  
!   cl = currently_open_derived_class (scope);
    if (!cl)
      cl = scope;
    tree access_path = TYPE_BINFO (cl);
--- 4505,4526 ----
  /* If FNS is a member function, a set of member functions, or a
     template-id referring to one or more member functions, return a
     BASELINK for FNS, incorporating the current access context.
!    Otherwise, return FNS unchanged.  If IGNORE_CURRENT_CLASS_P is
!    true, we do not consider the currently open derived class.  */
  
  tree
! baselink_for_fns (tree fns, bool ignore_current_class_p/*=false*/)
  {
!   if (BASELINK_P (fns) || error_operand_p (fns))
      return fns;
  
!   tree scope = ovl_scope (fns);
    if (!CLASS_TYPE_P (scope))
      return fns;
  
!   tree cl = (ignore_current_class_p
! 	     ? NULL_TREE
! 	     : currently_open_derived_class (scope));
    if (!cl)
      cl = scope;
    tree access_path = TYPE_BINFO (cl);
diff -Nrcpad gcc-16-20260815/gcc/cp/tree.cc gcc-16-20260822/gcc/cp/tree.cc
*** gcc-16-20260815/gcc/cp/tree.cc	Sat Aug 15 22:32:07 2026
--- gcc-16-20260822/gcc/cp/tree.cc	Sat Aug 22 22:32:08 2026
*************** record_has_unique_obj_representations (c
*** 5247,5253 ****
  	    inform (DECL_SOURCE_LOCATION (last_named_field),
  		    "padding occurs after %qD", last_named_field);
  	  else
! 	    inform (DECL_SOURCE_LOCATION (t),
  		    "%qT has padding and no data fields", t);
  	}
        return false;
--- 5247,5253 ----
  	    inform (DECL_SOURCE_LOCATION (last_named_field),
  		    "padding occurs after %qD", last_named_field);
  	  else
! 	    inform (location_of (const_cast <tree> (t)),
  		    "%qT has padding and no data fields", t);
  	}
        return false;
diff -Nrcpad gcc-16-20260815/gcc/cp/typeck2.cc gcc-16-20260822/gcc/cp/typeck2.cc
*** gcc-16-20260815/gcc/cp/typeck2.cc	Sat Aug 15 22:32:07 2026
--- gcc-16-20260822/gcc/cp/typeck2.cc	Sat Aug 22 22:32:08 2026
*************** build_disable_temp_cleanup (tree f)
*** 576,582 ****
  /* The recursive part of split_nonconstant_init.  DEST is an lvalue
     expression to which INIT should be assigned.  INIT is a CONSTRUCTOR.
     Return true if the whole of the value was initialized by the
!    generated statements.  */
  
  static bool
  split_nonconstant_init_1 (tree dest, tree init, bool last,
--- 576,582 ----
  /* The recursive part of split_nonconstant_init.  DEST is an lvalue
     expression to which INIT should be assigned.  INIT is a CONSTRUCTOR.
     Return true if the whole of the value was initialized by the
!    generated statements or modifying DECL_INITIAL.  */
  
  static bool
  split_nonconstant_init_1 (tree dest, tree init, bool last,
*************** split_nonconstant_init (tree dest, tree
*** 845,850 ****
--- 845,857 ----
        if (TREE_CODE (TREE_TYPE (dest)) != ARRAY_TYPE)
  	flags = make_tree_vector ();
  
+       /* We are about to call split_nonconstant_init_1 which might
+ 	 set DECL_INITIAL, so make sure we aren't overwriting an
+ 	 existing initializer.  Also, if we split out everything,
+ 	 we clear INIT so won't set DECL_INITIAL below.  Make
+ 	 sure it's null so that we're not forgetting to clear it.  */
+       gcc_assert (!(VAR_P (dest) && DECL_INITIAL (dest)));
+ 
        if (split_nonconstant_init_1 (dest, init, true, &flags))
  	init = NULL_TREE;
  
*************** split_nonconstant_init (tree dest, tree
*** 855,862 ****
        code = pop_stmt_list (code);
        if (VAR_P (dest) && !is_local_temp (dest))
  	{
! 	  DECL_INITIAL (dest) = init;
! 	  TREE_READONLY (dest) = 0;
  	}
        else if (init)
  	{
--- 862,877 ----
        code = pop_stmt_list (code);
        if (VAR_P (dest) && !is_local_temp (dest))
  	{
! 	  /* If we are initializing an array, split_nonconstant_init_1
! 	     might've delegated to build_vec_init in which case it always
! 	     returns true so we clear INIT.  But if we're initializing
! 	     a static array, build_vec_init can put constant initializers
! 	     into DECL_INITIAL.  Clearing it would mean losing some of the
! 	     initializers as in c++/126335.  */
! 	  if (init)
! 	    DECL_INITIAL (dest) = init;
! 	  if (TREE_SIDE_EFFECTS (code))
! 	    TREE_READONLY (dest) = 0;
  	}
        else if (init)
  	{
diff -Nrcpad gcc-16-20260815/gcc/fortran/ChangeLog gcc-16-20260822/gcc/fortran/ChangeLog
*** gcc-16-20260815/gcc/fortran/ChangeLog	Sat Aug 15 22:32:08 2026
--- gcc-16-20260822/gcc/fortran/ChangeLog	Sat Aug 22 22:32:08 2026
***************
*** 1,3 ****
--- 1,31 ----
+ 2026-08-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-08-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	PR fortran/126872
+ 	* trans-decl.cc (gfc_finish_var_decl): Drop the unreachable
+ 	hidden-visibility case in the BIND(C) block.  Do not give hidden
+ 	visibility to a PRIVATE module variable with a binding label.
+ 	(build_function_decl): Do not give hidden visibility to a PRIVATE
+ 	module procedure with a binding label.
+ 
+ 2026-08-16  Christopher Albert  <albert@tugraz.at>
+ 
+ 	Backported from master:
+ 	2026-08-16  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/110626
+ 	* gfortran.h : Add finalize_only bitfield to gfc_expr.
+ 	* resolve.cc (generate_component_assignments): If the lhs has
+ 	no pointer or allocatable components, set use_finalize_only to
+ 	false. Otherwise it equals finalizable_lhs. Use the value to
+ 	set the expr1 finalize_only field and add the assignment to the
+ 	chain. If use_finalize_only is false, free the statements and
+ 	transfer the value to the final result.
+ 	* trans-expr.cc (gfc_trans_assignment_1): If expr1 is finalize_
+ 	only emit an empty statement.
+ 
  2026-08-14  Paul Thomas  <pault@gcc.gnu.org>
  
  	Backported from master:
diff -Nrcpad gcc-16-20260815/gcc/fortran/gfortran.h gcc-16-20260822/gcc/fortran/gfortran.h
*** gcc-16-20260815/gcc/fortran/gfortran.h	Sat Aug 15 22:32:08 2026
--- gcc-16-20260822/gcc/fortran/gfortran.h	Sat Aug 22 22:32:08 2026
*************** typedef struct gfc_expr
*** 2742,2747 ****
--- 2742,2751 ----
    /* Will require finalization after use.  */
    unsigned int must_finalize : 1;
  
+   /* For a derived-type intrinsic assignment generated by
+      generate_component_assignments.  */
+   unsigned int finalize_only : 1;
+ 
    /* Set this if no range check should be performed on this expression.  */
  
    unsigned int no_bounds_check : 1;
diff -Nrcpad gcc-16-20260815/gcc/fortran/resolve.cc gcc-16-20260822/gcc/fortran/resolve.cc
*** gcc-16-20260815/gcc/fortran/resolve.cc	Sat Aug 15 22:32:08 2026
--- gcc-16-20260822/gcc/fortran/resolve.cc	Sat Aug 22 22:32:08 2026
*************** generate_component_assignments (gfc_code
*** 13754,13759 ****
--- 13754,13760 ----
    gfc_expr *tmp_expr = NULL;
    int error_count, depth;
    bool finalizable_lhs;
+   bool use_finalize_only;
  
    gfc_get_errors (NULL, &error_count);
  
*************** generate_component_assignments (gfc_code
*** 13797,13802 ****
--- 13798,13821 ----
  
    finalizable_lhs = is_finalizable_type ((*code)->expr1->ts);
  
+   /* When the lhs is finalized as a whole and none of its components needs the
+      structure copy to handle it (no pointer or allocatable components), the
+      copy can be done component by component.  The whole-derived-type assignment
+      then only finalizes the lhs and a component with a defined assignment keeps
+      its post-finalization value for the INTENT (OUT) finalization in that
+      defined assignment.  */
+   use_finalize_only = finalizable_lhs;
+   if (use_finalize_only)
+     for (comp1 = (*code)->expr1->ts.u.derived->components; comp1;
+ 	 comp1 = comp1->next)
+       if (comp1->attr.pointer || comp1->attr.allocatable
+ 	  || comp1->attr.proc_pointer_comp || comp1->attr.class_pointer
+ 	  || comp1->attr.proc_pointer)
+ 	{
+ 	  use_finalize_only = false;
+ 	  break;
+ 	}
+ 
    /* Create a temporary so that functions get called only once.  */
    if ((*code)->expr2->expr_type != EXPR_VARIABLE
        && (*code)->expr2->expr_type != EXPR_CONSTANT)
*************** generate_component_assignments (gfc_code
*** 13833,13838 ****
--- 13852,13859 ----
        this_code = build_assignment (EXEC_ASSIGN,
  				    (*code)->expr1, (*code)->expr2,
  				    NULL, NULL, (*code)->loc);
+       if (use_finalize_only)
+ 	this_code->expr1->finalize_only = 1;
        add_code_to_chain (&this_code, &head, &tail);
      }
  
*************** generate_component_assignments (gfc_code
*** 13852,13858 ****
  	  || comp1->attr.proc_pointer_comp
  	  || comp1->attr.class_pointer
  	  || comp1->attr.proc_pointer)
! 	continue;
  
        finalizable_comp = is_finalizable_type (comp1->ts)
  			 && !finalizable_lhs;
--- 13873,13892 ----
  	  || comp1->attr.proc_pointer_comp
  	  || comp1->attr.class_pointer
  	  || comp1->attr.proc_pointer)
! 	{
! 	  /* With finalize_only the whole-derived-type assignment does not copy
! 	     the components, so emit the copy for this one here.  Only plain
! 	     components reach this point, since use_finalize_only excludes
! 	     pointer and allocatable components.  */
! 	  if (use_finalize_only)
! 	    {
! 	      this_code = build_assignment (EXEC_ASSIGN,
! 					    (*code)->expr1, (*code)->expr2,
! 					    comp1, comp2, (*code)->loc);
! 	      add_code_to_chain (&this_code, &head, &tail);
! 	    }
! 	  continue;
! 	}
  
        finalizable_comp = is_finalizable_type (comp1->ts)
  			 && !finalizable_lhs;
*************** generate_component_assignments (gfc_code
*** 13894,13900 ****
  			    && dummy_args->sym->attr.intent == INTENT_OUT;
  	  inout = dummy_args
  		  && dummy_args->sym->attr.intent == INTENT_INOUT;
! 	  if ((inout || finalizable_out)
  	      && !comp1->attr.allocatable)
  	    {
  	      gfc_code *temp_code;
--- 13928,13937 ----
  			    && dummy_args->sym->attr.intent == INTENT_OUT;
  	  inout = dummy_args
  		  && dummy_args->sym->attr.intent == INTENT_INOUT;
! 	  /* With finalize_only the lhs component keeps its post-finalization
! 	     value, so the defined assignment can finalize it directly through
! 	     its INTENT (OUT) argument and no temporary is needed.  */
! 	  if ((inout || (finalizable_out && !use_finalize_only))
  	      && !comp1->attr.allocatable)
  	    {
  	      gfc_code *temp_code;
*************** generate_component_assignments (gfc_code
*** 13971,13980 ****
  	{
  	  /* Don't add intrinsic assignments since they are already
  	     effected by the intrinsic assignment of the structure, unless
! 	     finalization is required.  */
  	  if (finalizable_comp)
  	    this_code->expr1->must_finalize = 1;
! 	  else
  	    {
  	      gfc_free_statements (this_code);
  	      this_code = NULL;
--- 14008,14018 ----
  	{
  	  /* Don't add intrinsic assignments since they are already
  	     effected by the intrinsic assignment of the structure, unless
! 	     finalization is required or, with finalize_only, the structure
! 	     assignment does not copy the components.  */
  	  if (finalizable_comp)
  	    this_code->expr1->must_finalize = 1;
! 	  else if (!use_finalize_only)
  	    {
  	      gfc_free_statements (this_code);
  	      this_code = NULL;
*************** generate_component_assignments (gfc_code
*** 13995,14001 ****
  
        add_code_to_chain (&this_code, &head, &tail);
  
!       if (t1 && (inout || finalizable_out))
  	{
  	  /* Transfer the value to the final result.  */
  	  this_code = build_assignment (EXEC_ASSIGN,
--- 14033,14039 ----
  
        add_code_to_chain (&this_code, &head, &tail);
  
!       if (t1 && (inout || (finalizable_out && !use_finalize_only)))
  	{
  	  /* Transfer the value to the final result.  */
  	  this_code = build_assignment (EXEC_ASSIGN,
diff -Nrcpad gcc-16-20260815/gcc/fortran/trans-decl.cc gcc-16-20260822/gcc/fortran/trans-decl.cc
*** gcc-16-20260815/gcc/fortran/trans-decl.cc	Sat Aug 15 22:32:08 2026
--- gcc-16-20260822/gcc/fortran/trans-decl.cc	Sat Aug 22 22:32:08 2026
*************** gfc_finish_var_decl (tree decl, gfc_symb
*** 703,716 ****
  	 into common space, then C cannot initialize global Fortran
  	 variables that it interoperates with and the draft says that
  	 either Fortran or C should be able to initialize it (but not
! 	 both, of course.) (J3/04-007, section 15.3).  */
        TREE_PUBLIC(decl) = 1;
        DECL_COMMON(decl) = 1;
-       if (sym->attr.access == ACCESS_PRIVATE && !sym->attr.public_used)
- 	{
- 	  DECL_VISIBILITY (decl) = VISIBILITY_HIDDEN;
- 	  DECL_VISIBILITY_SPECIFIED (decl) = true;
- 	}
      }
  
    /* If a variable is USE associated, it's always external.  */
--- 703,713 ----
  	 into common space, then C cannot initialize global Fortran
  	 variables that it interoperates with and the draft says that
  	 either Fortran or C should be able to initialize it (but not
! 	 both, of course.) (J3/04-007, section 15.3).  A binding label has
! 	 external linkage, so PRIVATE hides only the Fortran name and must
! 	 not restrict the symbol's visibility.  */
        TREE_PUBLIC(decl) = 1;
        DECL_COMMON(decl) = 1;
      }
  
    /* If a variable is USE associated, it's always external.  */
*************** gfc_finish_var_decl (tree decl, gfc_symb
*** 736,742 ****
  
        TREE_PUBLIC (decl) = 1;
        TREE_STATIC (decl) = 1;
!       if (sym->attr.access == ACCESS_PRIVATE && !sym->attr.public_used)
  	{
  	  DECL_VISIBILITY (decl) = VISIBILITY_HIDDEN;
  	  DECL_VISIBILITY_SPECIFIED (decl) = true;
--- 733,740 ----
  
        TREE_PUBLIC (decl) = 1;
        TREE_STATIC (decl) = 1;
!       if (sym->attr.access == ACCESS_PRIVATE && !sym->attr.public_used
! 	  && !sym->binding_label)
  	{
  	  DECL_VISIBILITY (decl) = VISIBILITY_HIDDEN;
  	  DECL_VISIBILITY_SPECIFIED (decl) = true;
*************** build_function_decl (gfc_symbol * sym, b
*** 2593,2601 ****
        /* Mirror the variable treatment (see gfc_finish_var_decl): PRIVATE
  	 module procedures get global linkage but hidden visibility so the
  	 symbol is reachable from submodules in the same link without being
! 	 exported to external DSOs.  */
        if (in_module_contains && sym->attr.access == ACCESS_PRIVATE
! 	  && !sym->attr.public_used)
  	{
  	  DECL_VISIBILITY (fndecl) = VISIBILITY_HIDDEN;
  	  DECL_VISIBILITY_SPECIFIED (fndecl) = true;
--- 2591,2600 ----
        /* Mirror the variable treatment (see gfc_finish_var_decl): PRIVATE
  	 module procedures get global linkage but hidden visibility so the
  	 symbol is reachable from submodules in the same link without being
! 	 exported to external DSOs.  A binding label has external linkage,
! 	 so PRIVATE hides only the Fortran name.  */
        if (in_module_contains && sym->attr.access == ACCESS_PRIVATE
! 	  && !sym->attr.public_used && !sym->binding_label)
  	{
  	  DECL_VISIBILITY (fndecl) = VISIBILITY_HIDDEN;
  	  DECL_VISIBILITY_SPECIFIED (fndecl) = true;
diff -Nrcpad gcc-16-20260815/gcc/fortran/trans-expr.cc gcc-16-20260822/gcc/fortran/trans-expr.cc
*** gcc-16-20260815/gcc/fortran/trans-expr.cc	Sat Aug 15 22:32:08 2026
--- gcc-16-20260822/gcc/fortran/trans-expr.cc	Sat Aug 22 22:32:08 2026
*************** gfc_trans_assignment_1 (gfc_expr * expr1
*** 13669,13674 ****
--- 13669,13679 ----
        && assoc_assign)
      tmp = gfc_trans_pointer_assignment (expr1, expr2);
  
+   /* The finalization above is all that is wanted: the structure copy is done
+      component by component in generate_component_assignments.  */
+   if (expr1->finalize_only)
+     tmp = build_empty_stmt (input_location);
+ 
    /* If nothing else works, do it the old fashioned way!  */
    if (tmp == NULL_TREE)
      {
diff -Nrcpad gcc-16-20260815/gcc/gimple-lower-bitint.cc gcc-16-20260822/gcc/gimple-lower-bitint.cc
*** gcc-16-20260815/gcc/gimple-lower-bitint.cc	Sat Aug 15 22:32:08 2026
--- gcc-16-20260822/gcc/gimple-lower-bitint.cc	Sat Aug 22 22:32:08 2026
*************** bitint_large_huge::finish_arith_overflow
*** 4593,4600 ****
  			     build_fold_addr_expr (unshare_expr (obj)), off);
  	  g = gimple_build_call (fn, 3,
  				 build_fold_addr_expr (unshare_expr (obj)),
! 				 src, build_int_cst (size_type_node,
! 						     obj_nelts * m_limb_size));
  	  insert_before (g);
  	}
        if (orig_obj == NULL_TREE && obj)
--- 4593,4601 ----
  			     build_fold_addr_expr (unshare_expr (obj)), off);
  	  g = gimple_build_call (fn, 3,
  				 build_fold_addr_expr (unshare_expr (obj)),
! 				 build_fold_addr_expr (src),
! 				 build_int_cst (size_type_node,
! 						obj_nelts * m_limb_size));
  	  insert_before (g);
  	}
        if (orig_obj == NULL_TREE && obj)
diff -Nrcpad gcc-16-20260815/gcc/gimple-range-op.cc gcc-16-20260822/gcc/gimple-range-op.cc
*** gcc-16-20260815/gcc/gimple-range-op.cc	Sat Aug 15 22:32:08 2026
--- gcc-16-20260822/gcc/gimple-range-op.cc	Sat Aug 22 22:32:08 2026
*************** frange_mpfr_arg1 (REAL_VALUE_TYPE *res_l
*** 467,472 ****
--- 467,474 ----
    return true;
  }
  
+ extern frange float_widen_lhs_range (tree, const frange &);
+ 
  class cfn_sqrt : public range_operator
  {
  public:
*************** public:
*** 573,579 ****
  	  frange_nextafter (TYPE_MODE (type), lb, dconstninf);
  	if (real_less (&dconst0, &lb))
  	  {
! 	    REAL_VALUE_TYPE op = lb;
  	    frange_arithmetic (MULT_EXPR, type, lb, op, op, dconstninf);
  	  }
  	else
--- 575,584 ----
  	  frange_nextafter (TYPE_MODE (type), lb, dconstninf);
  	if (real_less (&dconst0, &lb))
  	  {
! 	    frange wlhs (type, lb, dconstinf);
! 	    wlhs.clear_nan ();
! 	    REAL_VALUE_TYPE op
! 	      = float_widen_lhs_range (type, wlhs).lower_bound ();
  	    frange_arithmetic (MULT_EXPR, type, lb, op, op, dconstninf);
  	  }
  	else
*************** public:
*** 587,593 ****
  	  frange_nextafter (TYPE_MODE (type), ub, dconstinf);
  	if (real_isfinite (&ub))
  	  {
! 	    REAL_VALUE_TYPE op = ub;
  	    frange_arithmetic (MULT_EXPR, type, ub, op, op, dconstinf);
  	  }
  	else
--- 592,601 ----
  	  frange_nextafter (TYPE_MODE (type), ub, dconstinf);
  	if (real_isfinite (&ub))
  	  {
! 	    frange wlhs (type, dconstninf, ub);
! 	    wlhs.clear_nan ();
! 	    REAL_VALUE_TYPE op
! 	      = float_widen_lhs_range (type, wlhs).upper_bound ();
  	    frange_arithmetic (MULT_EXPR, type, ub, op, op, dconstinf);
  	  }
  	else
diff -Nrcpad gcc-16-20260815/gcc/range-op-float.cc gcc-16-20260822/gcc/range-op-float.cc
*** gcc-16-20260815/gcc/range-op-float.cc	Sat Aug 15 22:32:09 2026
--- gcc-16-20260822/gcc/range-op-float.cc	Sat Aug 22 22:32:09 2026
*************** zero_to_inf_range (REAL_VALUE_TYPE &lb,
*** 2365,2371 ****
     So, for op1_range/op2_range extend the lhs range by 1ulp (or 0.5ulp)
     in each direction.  See PR109008 for more details.  */
  
! static frange
  float_widen_lhs_range (tree type, const frange &lhs)
  {
    frange ret = lhs;
--- 2365,2371 ----
     So, for op1_range/op2_range extend the lhs range by 1ulp (or 0.5ulp)
     in each direction.  See PR109008 for more details.  */
  
! frange
  float_widen_lhs_range (tree type, const frange &lhs)
  {
    frange ret = lhs;
diff -Nrcpad gcc-16-20260815/gcc/testsuite/ChangeLog gcc-16-20260822/gcc/testsuite/ChangeLog
*** gcc-16-20260815/gcc/testsuite/ChangeLog	Sat Aug 15 22:32:09 2026
--- gcc-16-20260822/gcc/testsuite/ChangeLog	Sat Aug 22 22:32:09 2026
***************
*** 1,3 ****
--- 1,160 ----
+ 2026-08-21  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	Backported from master:
+ 	2026-08-19  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	* gcc.target/arm/cmse/cmse-18.c: Use effective-target
+ 	arm_arch_v8m_main.
+ 	* gcc.target/arm/cmse/cmse-19.c: Use effective-target
+ 	arm_arch_v8_1m_mve.
+ 	* lib/target-supports.exp: Define effective-target
+ 	arm_arch_v8m_main.
+ 
+ 2026-08-20  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-07-30  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/126335
+ 	* g++.dg/init/array68.C: New test.
+ 
+ 2026-08-20  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-08-03  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/124794
+ 	* g++.dg/reflect/splice17.C: New test.
+ 
+ 2026-08-20  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-08-03  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/126546
+ 	* g++.dg/reflect/pack-index1.C: Accept a reflection of a
+ 	pack-index-specifier.  Reject a reflection of a
+ 	pack-index-expression.
+ 	* g++.dg/reflect/pack-index2.C: New test.
+ 
+ 2026-08-20  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	Backported from master:
+ 	2026-08-12  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	PR target/126787
+ 	* gcc.target/i386/pr126787.c: New test.
+ 
+ 2026-08-20  Avinash Jayakar  <avinashd@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2026-08-10  Avinash Jayakar  <avinashd@linux.ibm.com>
+ 
+ 	PR target/126513
+ 	* gcc.target/powerpc/pr126513-acmp-tst-1.c: New test.
+ 	* gcc.target/powerpc/pr126513-acmp-tst-2.c: New test.
+ 	* gcc.target/powerpc/pr126513-acmp-tst-3.c: New test.
+ 
+ 2026-08-19  Alice Carlotti  <alice.carlotti@arm.com>
+ 
+ 	PR target/124629
+ 	* gcc.target/aarch64/cpunative/info_36: New test file.
+ 	* gcc.target/aarch64/cpunative/native_cpu_36.c: New test.
+ 
+ 2026-08-19  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/specs/generic_inst10.ads: New test.
+ 	* gnat.dg/specs/generic_inst10_g1.ads: New helper.
+ 	* gnat.dg/specs/generic_inst10_g2.ads: Likewise.
+ 	* gnat.dg/specs/generic_inst10_g3.ads: Likewise.
+ 	* gnat.dg/specs/generic_inst10_pkg.ads: Likewise.
+ 
+ 2026-08-19  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/reduce7.adb: New test.
+ 
+ 2026-08-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-08-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/126925
+ 	* gcc.dg/torture/pr126925.c: New testcase.
+ 
+ 2026-08-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-08-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/126650
+ 	* gcc.dg/torture/pr126650.c: New testcase.
+ 
+ 2026-08-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-08-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/126926
+ 	* gcc.dg/vect/bb-slp-pr126926.c: New testcase.
+ 
+ 2026-08-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-08-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/126918
+ 	* g++.dg/cpp26/constexpr-eh24.C: New test.
+ 	* g++.dg/cpp26/constexpr-eh25.C: New test.
+ 
+ 2026-08-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-08-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/126867
+ 	* g++.dg/cpp1z/has-unique-obj-representations6.C: New test.
+ 
+ 2026-08-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-08-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/126752
+ 	* g++.dg/cpp0x/initlist-array25.C: New test.
+ 
+ 2026-08-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-08-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/126093
+ 	* g++.dg/reflect/mangle1.C: Add 2 new tests for reflections of
+ 	conversion templates.
+ 
+ 2026-08-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-08-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/126534
+ 	* gcc.dg/pr126534.c: New test.
+ 
+ 2026-08-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-08-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	PR fortran/126872
+ 	* gfortran.dg/bind_c_private_1.f90: New test.
+ 
+ 2026-08-16  Christopher Albert  <albert@tugraz.at>
+ 
+ 	Backported from master:
+ 	2026-08-16  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/110626
+ 	* gfortran.dg/finalize_62.f90: New test.
+ 
  2026-08-14  Patrick Palka  <ppalka@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-16-20260815/gcc/testsuite/g++.dg/cpp0x/initlist-array25.C gcc-16-20260822/gcc/testsuite/g++.dg/cpp0x/initlist-array25.C
*** gcc-16-20260815/gcc/testsuite/g++.dg/cpp0x/initlist-array25.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260822/gcc/testsuite/g++.dg/cpp0x/initlist-array25.C	Sat Aug 22 22:32:10 2026
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/126752
+ // { dg-do compile { target c++11 } }
+ 
+ struct A {
+   struct B { constexpr B () {} };
+   struct C { ~C (); B c; };
+   struct D : private C {};
+   struct E { E (); };
+   struct F { D f {}; };
+   struct G { F g[1] {}; E h; };
+   void foo () { G {}; }
+ };
diff -Nrcpad gcc-16-20260815/gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations6.C gcc-16-20260822/gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations6.C
*** gcc-16-20260815/gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations6.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260822/gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations6.C	Sat Aug 22 22:32:11 2026
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/126867
+ // { dg-do compile { target c++17 } }
+ 
+ template <class T>
+ constexpr bool U = __has_unique_object_representations (T);
+ 
+ struct S {};		// { dg-message "'S' does not have unique object representations, because" }
+ 			// { dg-message "'S' has padding and no data fields" "" { target *-*-* } .-1 }
+ 
+ static_assert (U <S>);	// { dg-error "static assertion failed" }
diff -Nrcpad gcc-16-20260815/gcc/testsuite/g++.dg/cpp26/constexpr-eh24.C gcc-16-20260822/gcc/testsuite/g++.dg/cpp26/constexpr-eh24.C
*** gcc-16-20260815/gcc/testsuite/g++.dg/cpp26/constexpr-eh24.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260822/gcc/testsuite/g++.dg/cpp26/constexpr-eh24.C	Sat Aug 22 22:32:11 2026
***************
*** 0 ****
--- 1,164 ----
+ // PR c++/126918
+ // { dg-do compile { target c++26 } }
+ 
+ struct S {
+   int m, n;
+   int foo (int x) { return x + 42; }
+   int bar (int x) noexcept { return x + 42; }
+ };
+ 
+ constexpr int S::*
+ foo (bool x)
+ {
+   if (x)
+     return nullptr;
+   try
+     {
+       throw nullptr;
+     }
+   catch (int S::*p)
+     {
+       return p;
+     }
+   return &S::m;
+ }
+ 
+ constexpr int S::*
+ bar (bool x)
+ {
+   if (x)
+     return nullptr;
+   try
+     {
+       throw nullptr;
+     }
+   catch (int S::*const &p)
+     {
+       return p;
+     }
+   return &S::m;
+ }
+ 
+ constexpr const int S::*
+ baz (bool x)
+ {
+   if (x)
+     return nullptr;
+   try
+     {
+       throw &S::m;
+     }
+   catch (const int S::*p)
+     {
+       return p;
+     }
+   return nullptr;
+ }
+ 
+ constexpr const int S::*
+ qux (bool x)
+ {
+   if (x)
+     return nullptr;
+   try
+     {
+       throw &S::m;
+     }
+   catch (const int S::*const &p)
+     {
+       return p;
+     }
+   return nullptr;
+ }
+ 
+ using F = int (S::*) (int);
+ using FNE = int (S::*) (int) noexcept;
+ 
+ constexpr F
+ corge (bool x)
+ {
+   if (x)
+     return nullptr;
+   try
+     {
+       throw nullptr;
+     }
+   catch (F p)
+     {
+       return p;
+     }
+   return &S::foo;
+ }
+ 
+ constexpr F
+ garply (bool x)
+ {
+   if (x)
+     return nullptr;
+   try
+     {
+       throw nullptr;
+     }
+   catch (F const &p)
+     {
+       return p;
+     }
+   return &S::foo;
+ }
+ 
+ constexpr F
+ fred (bool x)
+ {
+   if (x)
+     return nullptr;
+   try
+     {
+       FNE fne = &S::bar;
+       throw fne;
+     }
+   catch (F p)
+     {
+       return p;
+     }
+   return nullptr;
+ }
+ 
+ constexpr F
+ waldo (bool x)
+ {
+   if (x)
+     return nullptr;
+   try
+     {
+       FNE fne = &S::bar;
+       throw fne;
+     }
+   catch (F const &p)
+     {
+       return p;
+     }
+   return nullptr;
+ }
+ 
+ static_assert (foo (false) == nullptr);
+ static_assert (bar (false) == nullptr);
+ static_assert (baz (false) == &S::m);
+ static_assert (qux (false) == &S::m);
+ static_assert (corge (false) == nullptr);
+ static_assert (garply (false) == nullptr);
+ static_assert (fred (false) == F (&S::bar));
+ static_assert (waldo (false) == F (&S::bar));
+ 
+ int
+ main ()
+ {
+   if (foo (false) != nullptr
+       || bar (false) != nullptr
+       || baz (false) != &S::m
+       || qux (false) != &S::m
+       || corge (false) != nullptr
+       || garply (false) != nullptr
+       || fred (false) != F (&S::bar)
+       || waldo (false) != F (&S::bar))
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-16-20260815/gcc/testsuite/g++.dg/cpp26/constexpr-eh25.C gcc-16-20260822/gcc/testsuite/g++.dg/cpp26/constexpr-eh25.C
*** gcc-16-20260815/gcc/testsuite/g++.dg/cpp26/constexpr-eh25.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260822/gcc/testsuite/g++.dg/cpp26/constexpr-eh25.C	Sat Aug 22 22:32:11 2026
***************
*** 0 ****
--- 1,89 ----
+ // PR c++/126918
+ // { dg-do compile { target c++26 } }
+ 
+ struct S {
+   int m, n;
+   int foo (int x) { return x + 42; }
+   int bar (int x) noexcept { return x + 42; }
+ };
+ 
+ constexpr int S::*const &
+ foo (bool x)
+ {
+   static constexpr int S::*sm = &S::m;
+   if (x)
+     return sm;
+   try
+     {
+       throw nullptr;
+     }
+   catch (int S::*const &p)
+     {
+       return p;
+     }
+   return sm;
+ }
+ 
+ constexpr const int S::*const &
+ bar (bool x)
+ {
+   static constexpr const int S::*np = nullptr;
+   if (x)
+     return np;
+   try
+     {
+       throw &S::m;
+     }
+   catch (const int S::*const &p)
+     {
+       return p;
+     }
+   return np;
+ }
+ 
+ using F = int (S::*) (int);
+ using FNE = int (S::*) (int) noexcept;
+ 
+ constexpr F const &
+ baz (bool x)
+ {
+   static constexpr F f = &S::foo;
+   if (x)
+     return f;
+   try
+     {
+       throw nullptr;
+     }
+   catch (F const &p)
+     {
+       return p;
+     }
+   return f;
+ }
+ 
+ constexpr F const &
+ qux (bool x)
+ {
+   static constexpr F np = nullptr;
+   if (x)
+     return np;
+   try
+     {
+       FNE fne = &S::bar;
+       throw fne;
+     }
+   catch (F const &p)
+     {
+       return p;
+     }
+   return np;
+ }
+ 
+ static_assert (foo (false) == nullptr);		// { dg-error "non-constant condition for static assertion" }
+ 						// { dg-error "use of allocated storage after deallocation in a constant expression" "" { target *-*-* } .-1 }
+ static_assert (bar (false) == &S::m);		// { dg-error "non-constant condition for static assertion" }
+ 						// { dg-error "use of allocated storage after deallocation in a constant expression" "" { target *-*-* } .-1 }
+ static_assert (baz (false) == nullptr);		// { dg-error "non-constant condition for static assertion" }
+ 						// { dg-error "use of allocated storage after deallocation in a constant expression" "" { target *-*-* } .-1 }
+ static_assert (qux (false) == F (&S::bar));	// { dg-error "non-constant condition for static assertion" }
+ 						// { dg-error "use of allocated storage after deallocation in a constant expression" "" { target *-*-* } .-1 }
diff -Nrcpad gcc-16-20260815/gcc/testsuite/g++.dg/init/array68.C gcc-16-20260822/gcc/testsuite/g++.dg/init/array68.C
*** gcc-16-20260815/gcc/testsuite/g++.dg/init/array68.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260822/gcc/testsuite/g++.dg/init/array68.C	Sat Aug 22 22:32:11 2026
***************
*** 0 ****
--- 1,19 ----
+ // PR c++/126335
+ // { dg-do run { target c++20 } }
+ 
+ struct D {};
+ struct Lit {
+   constexpr Lit(char const *) {}
+   D str;
+ };
+ auto empty = Lit("");
+ struct S {
+   D * p;
+   constexpr S() { p = &empty.str; }
+   S(Lit) {}
+   ~S() {}
+ };
+ template<Lit L> S operator ""_s() { return L; }
+ struct M { S a, b; };
+ static M m[2]{{""_s, ""_s}, {}};
+ int main() { return m[1].a.p == nullptr; }
diff -Nrcpad gcc-16-20260815/gcc/testsuite/g++.dg/reflect/mangle1.C gcc-16-20260822/gcc/testsuite/g++.dg/reflect/mangle1.C
*** gcc-16-20260815/gcc/testsuite/g++.dg/reflect/mangle1.C	Sat Aug 15 22:32:10 2026
--- gcc-16-20260822/gcc/testsuite/g++.dg/reflect/mangle1.C	Sat Aug 22 22:32:11 2026
*************** struct S : B {
*** 15,20 ****
--- 15,24 ----
    int : 0;
    static int var;
  };
+ struct Q {
+   template <typename T>
+   operator T () { return T (); }
+ };
  struct W { union {}; union {}; union {}; union {}; };
  template <auto> struct TCls {};
  template <auto> void TFn ();
*************** namespace NS2 {
*** 65,70 ****
--- 69,78 ----
    struct Z {
    };
    struct AA { int a, b; };
+   struct Q {
+     template <int N>
+     operator int () { return N; }
+   };
  }
  
  constexpr auto ctx = std::meta::access_context::current ();
*************** baz (int x)
*** 147,152 ****
--- 155,162 ----
    bar <241, ^^NS2::TCls> (); // class template
    bar <250, ^^TFn> (); // function template
    bar <251, ^^NS2::TFn> (); // function template
+   bar <252, members_of (^^Q, ctx)[0]> (); // function template
+   bar <253, members_of (^^NS2::Q, ctx)[0]> (); // function template
    bar <260, ^^TVar> (); // variable template
    bar <261, ^^NS2::TVar> (); // variable template
    bar <270, ^^TAlias> (); // alias template
*************** baz (int x)
*** 239,244 ****
--- 249,256 ----
  // { dg-final { scan-assembler "_Z3barILi241ELDmct3NS24TClsEEvv" } }
  // { dg-final { scan-assembler "_Z3barILi250ELDmft3TFnEEvv" } }
  // { dg-final { scan-assembler "_Z3barILi251ELDmft3NS23TFnEEvv" } }
+ // { dg-final { scan-assembler "_Z3barILi252ELDmft1QcvT_EEvv" } }
+ // { dg-final { scan-assembler "_Z3barILi253ELDmft3NS21QcviEEvv" } }
  // { dg-final { scan-assembler "_Z3barILi260ELDmvt4TVarEEvv" } }
  // { dg-final { scan-assembler "_Z3barILi261ELDmvt3NS24TVarEEvv" } }
  // { dg-final { scan-assembler "_Z3barILi270ELDmat6TAliasEEvv" } }
diff -Nrcpad gcc-16-20260815/gcc/testsuite/g++.dg/reflect/pack-index1.C gcc-16-20260822/gcc/testsuite/g++.dg/reflect/pack-index1.C
*** gcc-16-20260815/gcc/testsuite/g++.dg/reflect/pack-index1.C	Sat Aug 15 22:32:10 2026
--- gcc-16-20260822/gcc/testsuite/g++.dg/reflect/pack-index1.C	Sat Aug 22 22:32:11 2026
*************** f ()
*** 14,23 ****
  {
    constexpr auto r1 = ^^Ts...[0]::sx;
    constexpr auto r2 = ^^typename Ts...[0]::type;
  
    // NTTPs and pack-index-expressions cannot appear as operands
    // of the reflection operator.
!   constexpr auto e = ^^Ts...[0]; // { dg-error "cannot be applied" }
  }
  
  
--- 14,29 ----
  {
    constexpr auto r1 = ^^Ts...[0]::sx;
    constexpr auto r2 = ^^typename Ts...[0]::type;
+   constexpr auto e = ^^Ts...[0];
+ }
  
+ template<int... Ns>
+ void
+ g ()
+ {
    // NTTPs and pack-index-expressions cannot appear as operands
    // of the reflection operator.
!   constexpr auto e = ^^Ns...[0];  // { dg-error "cannot be applied" }
  }
  
  
*************** void
*** 25,28 ****
--- 31,35 ----
  g ()
  {
    f<S>();
+   g<1, 2, 3>();
  }
diff -Nrcpad gcc-16-20260815/gcc/testsuite/g++.dg/reflect/pack-index2.C gcc-16-20260822/gcc/testsuite/g++.dg/reflect/pack-index2.C
*** gcc-16-20260815/gcc/testsuite/g++.dg/reflect/pack-index2.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260822/gcc/testsuite/g++.dg/reflect/pack-index2.C	Sat Aug 22 22:32:11 2026
***************
*** 0 ****
--- 1,8 ----
+ // PR c++/126546
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ template <class... Ts>
+ consteval auto first() { return ^^Ts...[0]; }
+ 
+ static_assert(first<int, double>() == ^^int);
diff -Nrcpad gcc-16-20260815/gcc/testsuite/g++.dg/reflect/splice17.C gcc-16-20260822/gcc/testsuite/g++.dg/reflect/splice17.C
*** gcc-16-20260815/gcc/testsuite/g++.dg/reflect/splice17.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260822/gcc/testsuite/g++.dg/reflect/splice17.C	Sat Aug 22 22:32:11 2026
***************
*** 0 ****
--- 1,72 ----
+ // PR c++/124794
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <meta>
+ 
+ struct C {
+   template <class T> void f(T);
+   void g (int);
+ 
+   static constexpr int val = 42;
+ };
+ 
+ constexpr auto ac = std::meta::access_context::current();
+ constexpr auto f1 = members_of(^^C, ac)[0];
+ constexpr auto f2 = ^^C::f;
+ void (C::*p1)(int) = &template [:f1:];
+ void (C::*p2)(int) = &template [:f2:];
+ 
+ constexpr auto g1 = members_of(^^C, ac)[1];
+ constexpr auto g2 = ^^C::g;
+ void (C::*p3)(int) = &[:g1:];
+ void (C::*p4)(int) = &[:g2:];
+ 
+ void
+ g (C *pc)
+ {
+   auto p = &pc->[: ^^C::val :];
+   auto q = &pc->C::val;
+ 
+   pc->f (42);
+   pc->template [:f1:](42);
+   pc->template [:f2:](42);
+   pc->g (42);
+   pc->[:g1:] (42);
+   pc->[:g2:] (42);
+ }
+ 
+ struct D1 : C {
+   void mfn (D1 *pd)
+   {
+     auto p = &pd->[: ^^C::val :];
+     auto q = &pd->C::val;
+ 
+     pd->f (42);
+     pd->template [:f1:](42);
+     pd->template [:f2:](42);
+     pd->g (42);
+     pd->[:g1:] (42);
+     pd->[:g2:] (42);
+   }
+ };
+ 
+ struct D2 : C {
+   void mfn (D1 *pd)
+   {
+     auto p = &pd->[: ^^C::val :];
+     auto q = &pd->C::val;
+ 
+     constexpr auto rg = ^^C::g;
+     pd->[:rg:] (42);
+     constexpr auto rf = ^^C::f;
+     pd->template [:rf:] (42);
+ 
+     pd->f (42);
+     pd->template [:f1:](42);
+     pd->template [:f2:](42);
+     pd->g (42);
+     pd->[:g1:] (42);
+     pd->[:g2:] (42);
+   }
+ };
diff -Nrcpad gcc-16-20260815/gcc/testsuite/gcc.dg/pr126534.c gcc-16-20260822/gcc/testsuite/gcc.dg/pr126534.c
*** gcc-16-20260815/gcc/testsuite/gcc.dg/pr126534.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260822/gcc/testsuite/gcc.dg/pr126534.c	Sat Aug 22 22:32:12 2026
***************
*** 0 ****
--- 1,45 ----
+ /* PR tree-optimization/126534 */
+ /* { dg-do run } */
+ /* { dg-options "-O2" } */
+ 
+ [[gnu::noipa]] int
+ foo (double x)
+ {
+   double y = __builtin_sqrt (x);
+   if (y <= 5.0)
+     {
+       if (x > 25.0)
+ 	return 1;
+       return 2;
+     }
+   return 3;
+ }
+ 
+ [[gnu::noipa]] int
+ bar (double x)
+ {
+   double y = __builtin_sqrt (x);
+   if (y >= 5.0)
+     {
+       if (x < 25.0)
+ 	return 1;
+       return 2;
+     }
+   return 3;
+ }
+ 
+ int
+ main ()
+ {
+ #if __DBL_MANT_DIG__ == 53 && __DBL_MAX_EXP__ == 1024 && __FLT_EVAL_METHOD__ == 0
+   volatile double x = 0x1.9000000000001p+4;
+   volatile double y = 0x1.8ffffffffffffp+4;
+   if (__builtin_sqrt (x) == 5.0 && __builtin_sqrt (y) == 5.0)
+     {
+       if (foo (0x1.9000000000001p+4) != 1)    /* 25.000000000000004 */
+ 	__builtin_abort ();
+       if (bar (0x1.8ffffffffffffp+4) != 1)    /* 24.999999999999996 */
+ 	__builtin_abort ();
+     }
+ #endif
+ }
diff -Nrcpad gcc-16-20260815/gcc/testsuite/gcc.dg/torture/pr126650.c gcc-16-20260822/gcc/testsuite/gcc.dg/torture/pr126650.c
*** gcc-16-20260815/gcc/testsuite/gcc.dg/torture/pr126650.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260822/gcc/testsuite/gcc.dg/torture/pr126650.c	Sat Aug 22 22:32:12 2026
***************
*** 0 ****
--- 1,35 ----
+ /* { dg-do run } */
+ 
+ #include <stdarg.h>
+ #include <stdlib.h>
+ 
+ long a;
+ 
+ void __attribute__((noipa)) foo (int n, ...)
+ {
+   va_list list;
+   va_start (list, n);
+   int val = va_arg (list, int);
+   if (val != -64)
+     abort ();
+   va_end (list);
+ }
+ 
+ int main()
+ {
+   struct b {
+     int : 7;
+     int : 2;
+     int : 6;
+     int : 3;
+     int c : 7;
+   };
+   union {
+     int d;
+     struct b bf;
+     char e[4];
+   } f;
+   f.d = a;
+   f.e[3] = 7;
+   foo (1, f.bf.c);
+ }
diff -Nrcpad gcc-16-20260815/gcc/testsuite/gcc.dg/torture/pr126925.c gcc-16-20260822/gcc/testsuite/gcc.dg/torture/pr126925.c
*** gcc-16-20260815/gcc/testsuite/gcc.dg/torture/pr126925.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260822/gcc/testsuite/gcc.dg/torture/pr126925.c	Sat Aug 22 22:32:12 2026
***************
*** 0 ****
--- 1,21 ----
+ /* { dg-do compile } */
+ 
+ int a;
+ long b;
+ int c(long d) {
+   for (;;)
+     if (d)
+       return b;
+ }
+ void e(int d) {
+   unsigned long f = 6;
+   int g;
+   while (c(f)) {
+     g = 0;
+     for (; g < 2; g++) {
+       a = 0;
+       short h = d;
+       f = d + f - (h + f + (a + 4 + f));
+     }
+   }
+ }
diff -Nrcpad gcc-16-20260815/gcc/testsuite/gcc.dg/vect/bb-slp-pr126926.c gcc-16-20260822/gcc/testsuite/gcc.dg/vect/bb-slp-pr126926.c
*** gcc-16-20260815/gcc/testsuite/gcc.dg/vect/bb-slp-pr126926.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260822/gcc/testsuite/gcc.dg/vect/bb-slp-pr126926.c	Sat Aug 22 22:32:13 2026
***************
*** 0 ****
--- 1,37 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-fgimple" } */
+ 
+ float a;
+ 
+ void __GIMPLE (ssa,guessed_local(1073741824),startwith("slp"))
+ b ()
+ {
+   float [[gnu::vector_size(8)]] c;
+   float _1;
+   float _2;
+   float _3;
+   float _4;
+   float _5;
+   float _6;
+   float _7;
+   float _8;
+   float _9;
+ 
+   __BB(2,guessed_local(1073741824)):
+   _1 = a;
+   _2 = _1 + _Literal (float) 0.0;
+   c_12 = __BIT_INSERT (c_11(D), _2, 32u);
+   _3 = a;
+   _4 = _3 + _Literal (float) 0.0;
+   c_13 = __BIT_INSERT (c_12, _4, 0u);
+   _5 = __BIT_FIELD_REF <float> (c_13, 32u, 32u);
+   _6 = _5 * _Literal (float) 0.0;
+   _7 = __BIT_FIELD_REF <float> (c_13, 32u, 32u);
+   _8 = _7 * _Literal (float) 2.0e+0;
+   _9 = _6 + _8;
+   a = _9;
+   return;
+ 
+ }
+ 
+ 
diff -Nrcpad gcc-16-20260815/gcc/testsuite/gcc.target/aarch64/cpunative/info_36 gcc-16-20260822/gcc/testsuite/gcc.target/aarch64/cpunative/info_36
*** gcc-16-20260815/gcc/testsuite/gcc.target/aarch64/cpunative/info_36	Thu Jan  1 00:00:00 1970
--- gcc-16-20260822/gcc/testsuite/gcc.target/aarch64/cpunative/info_36	Sat Aug 22 22:32:13 2026
***************
*** 0 ****
--- 1,9 ----
+ processor	: 0
+ BogoMIPS	: 100.00
+ Features	: fp asimd evtstrm aes pmull sha1 sha2 crc32 asimddp sve sve2 fphp asimdhp fcma
+ CPU implementer	: 0x41
+ CPU architecture: 8
+ CPU variant	: 0x0
+ CPU part	: 0xd08
+ CPU revision	: 2
+ 
diff -Nrcpad gcc-16-20260815/gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_36.c gcc-16-20260822/gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_36.c
*** gcc-16-20260815/gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_36.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260822/gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_36.c	Sat Aug 22 22:32:13 2026
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile { target { { aarch64*-*-linux*} && native } } } */
+ /* { dg-set-compiler-env-var GCC_CPUINFO "$srcdir/gcc.target/aarch64/cpunative/info_36" } */
+ /* { dg-additional-options "-march=native -mtune=cortex-a34" } */
+ 
+ int main()
+ {
+   return 0;
+ }
+ 
+ /* { dg-final { scan-assembler {\.arch armv8-a\+dotprod\+crc\+crypto\+sve2\n} } } */
diff -Nrcpad gcc-16-20260815/gcc/testsuite/gcc.target/arm/cmse/cmse-18.c gcc-16-20260822/gcc/testsuite/gcc.target/arm/cmse/cmse-18.c
*** gcc-16-20260815/gcc/testsuite/gcc.target/arm/cmse/cmse-18.c	Sat Aug 15 22:32:13 2026
--- gcc-16-20260822/gcc/testsuite/gcc.target/arm/cmse/cmse-18.c	Sat Aug 22 22:32:13 2026
***************
*** 1,6 ****
  /* { dg-do compile } */
  /* Make sure FPCXT is not enabled.  */
! /* { dg-options "-mcmse -fdump-rtl-final -march=armv8-m.main+fp" } */
  
  typedef void (*f)(int) __attribute__((cmse_nonsecure_call));
  
--- 1,8 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target arm_arch_v8m_main_ok } */
  /* Make sure FPCXT is not enabled.  */
! /* { dg-options "-mcmse -fdump-rtl-final" } */
! /* { dg-add-options arm_arch_v8m_main } */
  
  typedef void (*f)(int) __attribute__((cmse_nonsecure_call));
  
diff -Nrcpad gcc-16-20260815/gcc/testsuite/gcc.target/arm/cmse/cmse-19.c gcc-16-20260822/gcc/testsuite/gcc.target/arm/cmse/cmse-19.c
*** gcc-16-20260815/gcc/testsuite/gcc.target/arm/cmse/cmse-19.c	Sat Aug 15 22:32:13 2026
--- gcc-16-20260822/gcc/testsuite/gcc.target/arm/cmse/cmse-19.c	Sat Aug 22 22:32:13 2026
***************
*** 1,7 ****
  /* { dg-do compile } */
! /* This is a duplicate of cmse-18.c, targetting arm_v8_1m_mve, to make sure
!    FPCXT is enabled.  */
! /* { dg-options "-mcmse -fdump-rtl-final -march=armv8.1-m.main+mve" } */
  
  typedef void (*f)(int) __attribute__((cmse_nonsecure_call));
  
--- 1,9 ----
  /* { dg-do compile } */
! /* { dg-require-effective-target arm_arch_v8_1m_main_mve_ok } */
! /* This is a duplicate of cmse-18.c, targetting arm_v8_1m_main_mve, to make
!    sure FPCXT is enabled.  */
! /* { dg-options "-mcmse -fdump-rtl-final" } */
! /* { dg-add-options arm_arch_v8_1m_main_mve } */
  
  typedef void (*f)(int) __attribute__((cmse_nonsecure_call));
  
diff -Nrcpad gcc-16-20260815/gcc/testsuite/gcc.target/i386/pr126787.c gcc-16-20260822/gcc/testsuite/gcc.target/i386/pr126787.c
*** gcc-16-20260815/gcc/testsuite/gcc.target/i386/pr126787.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260822/gcc/testsuite/gcc.target/i386/pr126787.c	Sat Aug 22 22:32:14 2026
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do assemble { target { apxf && { ! ia32 } } } } */
+ /* { dg-options "-O2 -mapxf -mprefer-avx128 -funroll-loops --param max-unroll-times=4 -ffast-math -ftree-vectorize" } */
+ 
+ typedef float f4;
+ __attribute__((__target__("avx,fma4")))
+ void smm_avx128_fma4(f4 * restrict c, const f4 * restrict a,
+                      const f4 * restrict b, int m, int n, int k)
+ {
+     for (int j = 0; j < n; j++)
+         for (int l = 0; l < k; l++) {
+             f4 bl = b[l + j*k];
+             for (int i = 0; i < m; i++)
+                 c[i + j*m] += a[i + l*m] * bl;
+         }
+ }
diff -Nrcpad gcc-16-20260815/gcc/testsuite/gcc.target/powerpc/pr126513-acmp-tst-1.c gcc-16-20260822/gcc/testsuite/gcc.target/powerpc/pr126513-acmp-tst-1.c
*** gcc-16-20260815/gcc/testsuite/gcc.target/powerpc/pr126513-acmp-tst-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260822/gcc/testsuite/gcc.target/powerpc/pr126513-acmp-tst-1.c	Sat Aug 22 22:32:14 2026
***************
*** 0 ****
--- 1,25 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target lp64 } */
+ 
+ // Need power8 for l<b,h,q>arx
+ /* { dg-options "-O2 -mdejagnu-cpu=power8" } */
+ 
+ __int128 word_exchange_uti_ptr;
+ int word_exchange_uti_expected;
+ unsigned word_exchange_uti_desired() {
+   __builtin_ppc_atomic_cas_local( /* { dg-error "argument 2 to '__builtin_ppc_atomic_cas_local' must be a pointer" } */
+       &word_exchange_uti_ptr, word_exchange_uti_expected,
+       word_exchange_uti_desired, 0, __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
+ }
+ 
+ unsigned word_exchange_uti_desired_fptr() {
+   __builtin_ppc_atomic_cas_local( /* { dg-error "argument 1 to '__builtin_ppc_atomic_cas_local' must not be a pointer to a function" } */
+       &word_exchange_uti_desired_fptr, &word_exchange_uti_desired,
+       &word_exchange_uti_desired_fptr, 0, __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
+ }
+ 
+ unsigned word_exchange_uti_desired_mismatch() {
+   __builtin_ppc_atomic_cas_local( /* { dg-error "size mismatch in argument 2" } */
+       &word_exchange_uti_ptr, &word_exchange_uti_expected,
+       &word_exchange_uti_ptr, 0, __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
+ }
diff -Nrcpad gcc-16-20260815/gcc/testsuite/gcc.target/powerpc/pr126513-acmp-tst-2.c gcc-16-20260822/gcc/testsuite/gcc.target/powerpc/pr126513-acmp-tst-2.c
*** gcc-16-20260815/gcc/testsuite/gcc.target/powerpc/pr126513-acmp-tst-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260822/gcc/testsuite/gcc.target/powerpc/pr126513-acmp-tst-2.c	Sat Aug 22 22:32:14 2026
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target lp64 } */
+ 
+ // Need power8 for l<b,h,q>arx
+ /* { dg-options "-O2 -mdejagnu-cpu=power8 -mno-quad-memory-atomic" } */
+ 
+ __int128 word_exchange_uti_ptr;
+ __int128 word_exchange_uti_ptr_expected;
+ __int128 word_exchange_uti_ptr_desired;
+ 
+ unsigned word_exchange_uti_desired() {
+   __builtin_ppc_atomic_cas_local( /* { dg-error "'__builtin_ppc_atomic_cas_local' requires the '-mquad-memory-atomic' option for 16-byte operands" } */
+       &word_exchange_uti_ptr, &word_exchange_uti_ptr_expected,
+       &word_exchange_uti_ptr_desired, 0, __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
+ }
diff -Nrcpad gcc-16-20260815/gcc/testsuite/gcc.target/powerpc/pr126513-acmp-tst-3.c gcc-16-20260822/gcc/testsuite/gcc.target/powerpc/pr126513-acmp-tst-3.c
*** gcc-16-20260815/gcc/testsuite/gcc.target/powerpc/pr126513-acmp-tst-3.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260822/gcc/testsuite/gcc.target/powerpc/pr126513-acmp-tst-3.c	Sat Aug 22 22:32:14 2026
***************
*** 0 ****
--- 1,176 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target lp64 } */
+ 
+ // Need power8 for l<b,h,q>arx
+ /* { dg-options "-O2 -mdejagnu-cpu=power8" } */
+ 
+ typedef struct udt_1
+ {
+   char *a;
+ } udt_1t;
+ typedef struct udt_2
+ {
+   char a;
+   char b;
+ } udt_2t;
+ typedef struct udt_4
+ {
+   short a;
+   short b;
+ } udt_4t;
+ typedef struct udt_8
+ {
+   int a;
+   int b;
+ } udt_8t;
+ typedef struct udt_16
+ {
+   long long a;
+   long long b;
+ } udt_16t;
+ void
+ word_exchange_nqi (char *ptr, char *expected, char *desired)
+ {
+   __builtin_ppc_atomic_cas_local (ptr, expected, desired, 0,
+ 					 __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
+ }
+ void
+ word_exchange_qi (signed char *ptr, signed char *expected, signed char *desired)
+ {
+   __builtin_ppc_atomic_cas_local (ptr, expected, desired, 0,
+ 					 __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
+ }
+ void
+ word_exchange_uqi (unsigned char *ptr, unsigned char *expected,
+                    unsigned char *desired)
+ {
+   __builtin_ppc_atomic_cas_local (ptr, expected, desired, 0,
+ 					 __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
+ }
+ void
+ word_exchange_hi (short *ptr, short *expected, short *desired)
+ {
+   __builtin_ppc_atomic_cas_local (ptr, expected, desired, 0,
+ 					 __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
+ }
+ void
+ word_exchange_shi (signed short *ptr, signed short *expected,
+                    signed short *desired)
+ {
+   __builtin_ppc_atomic_cas_local (ptr, expected, desired, 0,
+ 					 __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
+ }
+ void
+ word_exchange_uhi (unsigned short *ptr, unsigned short *expected,
+                    unsigned short *desired)
+ {
+   __builtin_ppc_atomic_cas_local (ptr, expected, desired, 0,
+ 					 __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
+ }
+ void
+ word_exchange_si (int *ptr, int *expected, int *desired)
+ {
+   __builtin_ppc_atomic_cas_local (ptr, expected, desired, 0,
+ 					 __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
+ }
+ void
+ word_exchange_ssi (signed int *ptr, signed int *expected, signed int *desired)
+ {
+   __builtin_ppc_atomic_cas_local (ptr, expected, desired, 0,
+ 					 __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
+ }
+ void
+ word_exchange_usi (unsigned int *ptr, unsigned int *expected,
+                    unsigned int *desired)
+ {
+   __builtin_ppc_atomic_cas_local (ptr, expected, desired, 0,
+ 					 __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
+ }
+ void
+ word_exchange_di (long long *ptr, long long *expected, long long *desired)
+ {
+   __builtin_ppc_atomic_cas_local (ptr, expected, desired, 0,
+ 					 __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
+ }
+ void
+ word_exchange_sdi (signed long long *ptr, signed long long *expected,
+                    signed long long *desired)
+ {
+   __builtin_ppc_atomic_cas_local (ptr, expected, desired, 0,
+ 					 __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
+ }
+ void
+ word_exchange_udi (unsigned long long *ptr, unsigned long long *expected,
+                    unsigned long long *desired)
+ {
+   __builtin_ppc_atomic_cas_local (ptr, expected, desired, 0,
+ 					 __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
+ }
+ void
+ word_exchange_sti (signed __int128 *ptr, signed __int128 *expected,
+                    signed __int128 *desired)
+ {
+   __builtin_ppc_atomic_cas_local (ptr, expected, desired, 0,
+ 					 __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
+ }
+ void
+ word_exchange_uti (unsigned __int128 *ptr, unsigned __int128 *expected,
+                    unsigned __int128 *desired)
+ {
+   __builtin_ppc_atomic_cas_local (ptr, expected, desired, 0,
+ 					 __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
+ }
+ void
+ word_exchange_f32 (float *ptr, float *expected, float *desired)
+ {
+   __builtin_ppc_atomic_cas_local (ptr, expected, desired, 0,
+ 					 __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
+ }
+ void
+ word_exchange_f64 (double *ptr, double *expected, double *desired)
+ {
+   __builtin_ppc_atomic_cas_local (ptr, expected, desired, 0,
+ 					 __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
+ }
+ void
+ word_exchange_f128 (__ieee128 *ptr, __ieee128 *expected, __ieee128 *desired)
+ {
+   __builtin_ppc_atomic_cas_local (ptr, expected, desired, 0,
+ 					 __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
+ }
+ void
+ word_exchange_udt_1 (udt_1t *ptr, udt_1t *expected, udt_1t *desired)
+ {
+   __builtin_ppc_atomic_cas_local (ptr, expected, desired, 0,
+ 					 __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
+ }
+ void
+ word_exchange_udt_2 (udt_2t *ptr, udt_2t *expected, udt_2t *desired)
+ {
+   __builtin_ppc_atomic_cas_local (ptr, expected, desired, 0,
+ 					 __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
+ }
+ void
+ word_exchange_udt_4 (udt_4t *ptr, udt_4t *expected, udt_4t *desired)
+ {
+   __builtin_ppc_atomic_cas_local (ptr, expected, desired, 0,
+ 					 __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
+ }
+ void
+ word_exchange_udt_8 (udt_8t *ptr, udt_8t *expected, udt_8t *desired)
+ {
+   __builtin_ppc_atomic_cas_local (ptr, expected, desired, 0,
+ 					 __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
+ }
+ void
+ word_exchange_udt_16 (udt_16t *ptr, udt_16t *expected, udt_16t *desired)
+ {
+   __builtin_ppc_atomic_cas_local (ptr, expected, desired, 0,
+ 					 __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE);
+ }
+ 
+ /* { dg-final { scan-assembler-times {\mlbarx +[0-9]+,[0-9]+,[0-9]+,1} 3 } } */
+ /* { dg-final { scan-assembler-times {\mlharx +[0-9]+,[0-9]+,[0-9]+,1} 4 } } */
+ /* { dg-final { scan-assembler-times {\mlwarx +[0-9]+,[0-9]+,[0-9]+,1} 5 } } */
+ /* { dg-final { scan-assembler-times {\mldarx +[0-9]+,[0-9]+,[0-9]+,1} 6 } } */
+ /* { dg-final { scan-assembler-times {\mlqarx +[0-9]+,[0-9]+,[0-9]+,1} 4 } } */
diff -Nrcpad gcc-16-20260815/gcc/testsuite/gfortran.dg/bind_c_private_1.f90 gcc-16-20260822/gcc/testsuite/gfortran.dg/bind_c_private_1.f90
*** gcc-16-20260815/gcc/testsuite/gfortran.dg/bind_c_private_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260822/gcc/testsuite/gfortran.dg/bind_c_private_1.f90	Sat Aug 22 22:32:15 2026
***************
*** 0 ****
--- 1,30 ----
+ ! { dg-do compile }
+ ! { dg-require-visibility "" }
+ !
+ ! PR fortran/126872
+ !
+ ! A binding label gives external linkage, so PRIVATE must hide only the
+ ! Fortran name and must not give the symbol hidden ELF visibility.
+ ! Module entities without a binding label keep the hidden visibility
+ ! introduced by PR fortran/125430.
+ 
+ module m
+   use iso_c_binding
+   implicit none
+   private
+   integer(c_int), bind(C, name="bc_var") :: bc_var
+   integer :: plain_var
+ contains
+   subroutine bc_named() bind(C, name="bc_named")
+   end subroutine bc_named
+   subroutine bc_unnamed() bind(C)
+   end subroutine bc_unnamed
+   subroutine plain_sub()
+   end subroutine plain_sub
+ end module m
+ 
+ ! { dg-final { scan-assembler-not "\\.hidden\[ \t\]+bc_var" } }
+ ! { dg-final { scan-assembler-not "\\.hidden\[ \t\]+bc_named" } }
+ ! { dg-final { scan-assembler-not "\\.hidden\[ \t\]+bc_unnamed" } }
+ ! { dg-final { scan-assembler "\\.hidden\[ \t\]+__m_MOD_plain_var" } }
+ ! { dg-final { scan-assembler "\\.hidden\[ \t\]+__m_MOD_plain_sub" } }
diff -Nrcpad gcc-16-20260815/gcc/testsuite/gfortran.dg/finalize_62.f90 gcc-16-20260822/gcc/testsuite/gfortran.dg/finalize_62.f90
*** gcc-16-20260815/gcc/testsuite/gfortran.dg/finalize_62.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260822/gcc/testsuite/gfortran.dg/finalize_62.f90	Sat Aug 22 22:32:15 2026
***************
*** 0 ****
--- 1,65 ----
+ ! { dg-do run }
+ !
+ ! PR fortran/110626 - in a derived-type intrinsic assignment, a finalizable
+ ! component that has a defined assignment is finalized twice: once by the
+ ! whole-derived-type finalization of the lhs and once by the INTENT(OUT)
+ ! argument of the defined assignment.  The second finalization must see the
+ ! value left by the first one, not a stale copy, matching other compilers.
+ !
+ module pr110626
+   implicit none
+ 
+   type :: cell
+      integer :: tag = 0
+    contains
+      final     :: wipe
+      procedure :: copyinto
+      generic   :: assignment(=) => copyinto
+   end type
+ 
+   type :: box
+      type(cell) :: c
+   end type
+ 
+   integer :: nf = 0
+   integer :: ncopy = 0
+   integer :: seen_final(4) = 0
+   integer :: seen_copy = -99
+ 
+ contains
+ 
+   subroutine wipe (self)
+     type(cell), intent(inout) :: self
+     nf = nf + 1
+     if (nf <= size (seen_final)) seen_final(nf) = self%tag
+     self%tag = -1
+   end subroutine
+ 
+   subroutine copyinto (dst, src)
+     class(cell), intent(out) :: dst
+     type(cell),  intent(in)  :: src
+     ncopy = ncopy + 1
+     seen_copy = dst%tag
+     dst%tag = src%tag + 1
+   end subroutine
+ 
+ end module
+ 
+ program p
+   use pr110626
+   implicit none
+   type(box) :: src, dst
+ 
+   src%c%tag = 7
+   dst%c%tag = 42
+ 
+   nf = 0; ncopy = 0
+   dst = src
+ 
+   if (nf /= 2)            stop 1   ! two finalizations of the old component
+   if (seen_final(1) /= 42) stop 2  ! first sees the old value
+   if (seen_final(2) /= -1) stop 3  ! second sees the post-finalization value
+   if (ncopy /= 1)        stop 4    ! defined assignment runs once
+   if (seen_copy /= 0)    stop 5    ! INTENT(OUT) default-initialised before body
+   if (dst%c%tag /= 8)    stop 6    ! result is src + 1
+ end program
diff -Nrcpad gcc-16-20260815/gcc/testsuite/gnat.dg/reduce7.adb gcc-16-20260822/gcc/testsuite/gnat.dg/reduce7.adb
*** gcc-16-20260815/gcc/testsuite/gnat.dg/reduce7.adb	Thu Jan  1 00:00:00 1970
--- gcc-16-20260822/gcc/testsuite/gnat.dg/reduce7.adb	Sat Aug 22 22:32:16 2026
***************
*** 0 ****
--- 1,61 ----
+ -- { dg-do run }
+ -- { dg-options "-gnat2022 -gnatVa" }
+ 
+ with Ada.Text_IO;
+ 
+ procedure Reduce7 is
+ 
+    procedure Section_4_2_1_Paragraph_15 is
+       package Roman is
+          type Roman_Digit is ('I', 'V', 'X', 'L', 'C', 'D', 'M');
+          for Roman_Digit use ('I' => 1, 'V' => 5, 'X' => 10, 'L' => 50, 'C' => 100, 'D' => 500, 'M' => 1000);
+ 
+          subtype Roman_Character is Wide_Wide_Character with
+            Static_Predicate => Roman_Character in 'I' | 'V' | 'X' | 'L' | 'C' | 'D' | 'M';
+ 
+          Max_Roman_Number : constant := 3_999;  -- MMMCMXCIX
+ 
+          type Roman_Number is range 1 .. Max_Roman_Number
+            with String_Literal => To_Roman_Number;
+ 
+          function To_Roman_Number (S : Wide_Wide_String) return Roman_Number
+            with Pre => S'Length > 0 and then
+            (for all Char of S => Char in Roman_Character);
+ 
+          function To_Roman_Number (S : Wide_Wide_String) return Roman_Number is
+            (declare
+             R : constant array (Integer range <>) of Roman_Number :=
+             (for D in S'Range => Roman_Digit'Enum_Rep
+              (Roman_Digit'Wide_Wide_Value (''' & S (D) & '''))); -- See 3.5.2 and 13.4
+             begin
+               [for I in R'Range =>
+                 (if I < R'Last and then R (I) < R (I + 1) then -1 else 1) * R (I)]'
+                   Reduce("+", 0));
+       end Roman;
+ 
+    use type Roman.Roman_Number;
+    X : Roman.Roman_Number := "III" * "IV" * "XII"; -- 144 (that is, CXLIV)
+    Y : Roman.Roman_Number := 10;
+    begin
+       Ada.Text_IO.Put_Line ("III * IV * XII is" & X'Image);
+    end Section_4_2_1_Paragraph_15;
+ 
+    procedure Section_4_5_10_Paragraph_36 is
+       use Ada.Text_IO;
+       type Real is digits 8;
+       -- Example of a reduction expression used to compute the value of Pi:
+ 
+       --  See 3.5.7.
+       function Pi (Number_Of_Steps : Natural := 10_000) return Real is
+         (1.0 / Real (Number_Of_Steps) *
+           [for I in 1 .. Number_Of_Steps =>
+             (4.0 / (1.0 + ((Real (I) - 0.5) * (1.0 / Real (Number_Of_Steps)))**2))]'
+               Reduce("+", 0.0));
+    begin
+       Ada.Text_IO.Put_Line ("Pi =" & Pi (100)'Image);
+    end Section_4_5_10_Paragraph_36;
+ 
+ begin
+    Section_4_2_1_Paragraph_15;
+    Section_4_5_10_Paragraph_36;
+ end;
diff -Nrcpad gcc-16-20260815/gcc/testsuite/gnat.dg/specs/generic_inst10.ads gcc-16-20260822/gcc/testsuite/gnat.dg/specs/generic_inst10.ads
*** gcc-16-20260815/gcc/testsuite/gnat.dg/specs/generic_inst10.ads	Thu Jan  1 00:00:00 1970
--- gcc-16-20260822/gcc/testsuite/gnat.dg/specs/generic_inst10.ads	Sat Aug 22 22:32:16 2026
***************
*** 0 ****
--- 1,6 ----
+ -- { dg-do compile }
+ 
+ with Generic_Inst10_G3;
+ with Generic_Inst10_Pkg;
+ 
+ package Generic_Inst10 is new Generic_Inst10_G3 (Generic_Inst10_Pkg);
diff -Nrcpad gcc-16-20260815/gcc/testsuite/gnat.dg/specs/generic_inst10_g1.ads gcc-16-20260822/gcc/testsuite/gnat.dg/specs/generic_inst10_g1.ads
*** gcc-16-20260815/gcc/testsuite/gnat.dg/specs/generic_inst10_g1.ads	Thu Jan  1 00:00:00 1970
--- gcc-16-20260822/gcc/testsuite/gnat.dg/specs/generic_inst10_g1.ads	Sat Aug 22 22:32:16 2026
***************
*** 0 ****
--- 1,3 ----
+ generic
+ package Generic_Inst10_G1 is
+ end Generic_Inst10_G1;
diff -Nrcpad gcc-16-20260815/gcc/testsuite/gnat.dg/specs/generic_inst10_g2.ads gcc-16-20260822/gcc/testsuite/gnat.dg/specs/generic_inst10_g2.ads
*** gcc-16-20260815/gcc/testsuite/gnat.dg/specs/generic_inst10_g2.ads	Thu Jan  1 00:00:00 1970
--- gcc-16-20260822/gcc/testsuite/gnat.dg/specs/generic_inst10_g2.ads	Sat Aug 22 22:32:16 2026
***************
*** 0 ****
--- 1,28 ----
+ with Ada.Containers.Indefinite_Ordered_Maps;
+ with Generic_Inst10_G1;
+ 
+ generic
+ package Generic_Inst10_G2 is
+ 
+   generic
+     with package Actual_Types is new Generic_Inst10_G1;
+   package Holder is
+   private
+     package Maps is new Ada.Containers.Indefinite_Ordered_Maps
+       (Integer, Integer);
+   end Holder;
+ 
+   generic
+     with package Actual_Types is new Generic_Inst10_G1;
+     with package Actual_Holder is new Holder (Actual_Types);
+   package User is
+   end User;
+ 
+   generic
+     with package Actual_Types is new Generic_Inst10_G1;
+     with package Actual_User is
+       new User (Actual_Types => Actual_Types, others => <>);
+   package Final is
+   end Final;
+ 
+ end Generic_Inst10_G2;
diff -Nrcpad gcc-16-20260815/gcc/testsuite/gnat.dg/specs/generic_inst10_g3.ads gcc-16-20260822/gcc/testsuite/gnat.dg/specs/generic_inst10_g3.ads
*** gcc-16-20260815/gcc/testsuite/gnat.dg/specs/generic_inst10_g3.ads	Thu Jan  1 00:00:00 1970
--- gcc-16-20260822/gcc/testsuite/gnat.dg/specs/generic_inst10_g3.ads	Sat Aug 22 22:32:16 2026
***************
*** 0 ****
--- 1,13 ----
+ with Generic_Inst10_G1;
+ with Generic_Inst10_G2;
+ 
+ generic
+    with package Actual_Types is new Generic_Inst10_G1;
+ package Generic_Inst10_G3 is
+    package Actual_Root is new Generic_Inst10_G2;
+    package Actual_Holder is new Actual_Root.Holder (Actual_Types);
+    package Actual_User is new
+      Actual_Root.User (Actual_Types, Actual_Holder);
+    package Actual_Final is new
+      Actual_Root.Final (Actual_Types, Actual_User);
+ end Generic_Inst10_G3;
diff -Nrcpad gcc-16-20260815/gcc/testsuite/gnat.dg/specs/generic_inst10_pkg.ads gcc-16-20260822/gcc/testsuite/gnat.dg/specs/generic_inst10_pkg.ads
*** gcc-16-20260815/gcc/testsuite/gnat.dg/specs/generic_inst10_pkg.ads	Thu Jan  1 00:00:00 1970
--- gcc-16-20260822/gcc/testsuite/gnat.dg/specs/generic_inst10_pkg.ads	Sat Aug 22 22:32:16 2026
***************
*** 0 ****
--- 1,3 ----
+ with Generic_Inst10_G1;
+ 
+ package Generic_Inst10_Pkg is new Generic_Inst10_G1;
diff -Nrcpad gcc-16-20260815/gcc/testsuite/lib/target-supports.exp gcc-16-20260822/gcc/testsuite/lib/target-supports.exp
*** gcc-16-20260815/gcc/testsuite/lib/target-supports.exp	Sat Aug 15 22:32:15 2026
--- gcc-16-20260822/gcc/testsuite/lib/target-supports.exp	Sat Aug 22 22:32:16 2026
*************** foreach { armfunc armflag armdefs } {
*** 6305,6310 ****
--- 6305,6311 ----
  		__ARM_ARCH_8M_BASE__
  	v8m_main "-march=armv8-m.main+fp -mthumb" __ARM_ARCH_8M_MAIN__
  	v8_1m_main "-march=armv8.1-m.main+fp -mthumb" __ARM_ARCH_8M_MAIN__
+ 	v8_1m_main_mve "-march=armv8.1-m.main+mve -mthumb" __ARM_ARCH_8M_MAIN__
  	v8_1m_main_pacbti "-march=armv8.1-m.main+pacbti+fp -mthumb"
  		"__ARM_ARCH_8M_MAIN__ && __ARM_FEATURE_BTI && __ARM_FEATURE_PAUTH"
  	v8_1m_main_fp_hard "-march=armv8.1-m.main+pacbti+fp -mthumb -mfpu=auto -mfloat-abi=hard" "__ARM_ARCH_8M_MAIN__ && (__ARM_FP & 2)"
diff -Nrcpad gcc-16-20260815/gcc/tree-affine.cc gcc-16-20260822/gcc/tree-affine.cc
*** gcc-16-20260815/gcc/tree-affine.cc	Sat Aug 15 22:32:15 2026
--- gcc-16-20260822/gcc/tree-affine.cc	Sat Aug 22 22:32:16 2026
*************** get_inner_reference_aff (tree ref, aff_t
*** 1030,1039 ****
        aff_combination_add (addr, &tmp);
      }
  
!   aff_combination_const (&tmp, sizetype, bits_to_bytes_round_down (bitpos));
    aff_combination_add (addr, &tmp);
  
!   *size = bits_to_bytes_round_up (bitsize);
  
    return base;
  }
--- 1030,1040 ----
        aff_combination_add (addr, &tmp);
      }
  
!   poly_int64 bytepos = bits_to_bytes_round_down (bitpos);
!   aff_combination_const (&tmp, sizetype, bytepos);
    aff_combination_add (addr, &tmp);
  
!   *size = bits_to_bytes_round_up (bitpos + bitsize) - bytepos;
  
    return base;
  }
diff -Nrcpad gcc-16-20260815/gcc/tree-ssa-loop-ivopts.cc gcc-16-20260822/gcc/tree-ssa-loop-ivopts.cc
*** gcc-16-20260815/gcc/tree-ssa-loop-ivopts.cc	Sat Aug 15 22:32:15 2026
--- gcc-16-20260822/gcc/tree-ssa-loop-ivopts.cc	Sat Aug 22 22:32:16 2026
*************** create_new_iv (struct ivopts_data *data,
*** 7243,7252 ****
        name_info (data, cand->var_before)->preserve_biv = true;
        name_info (data, cand->var_after)->preserve_biv = true;
  
!       /* Rewrite the increment so that it uses var_before directly.  */
        use = find_interesting_uses_op (data, cand->var_after);
!       group = data->vgroups[use->group_id];
!       group->selected = cand;
        return;
      }
  
--- 7243,7257 ----
        name_info (data, cand->var_before)->preserve_biv = true;
        name_info (data, cand->var_after)->preserve_biv = true;
  
!       /* Rewrite the increment so that it uses var_before directly.  Missed
! 	 optimization can result in a use IV with zero step, avoid
! 	 crashing in that case.  */
        use = find_interesting_uses_op (data, cand->var_after);
!       if (use)
! 	{
! 	  group = data->vgroups[use->group_id];
! 	  group->selected = cand;
! 	}
        return;
      }
  
diff -Nrcpad gcc-16-20260815/gcc/tree-vect-slp.cc gcc-16-20260822/gcc/tree-vect-slp.cc
*** gcc-16-20260815/gcc/tree-vect-slp.cc	Sat Aug 15 22:32:15 2026
--- gcc-16-20260822/gcc/tree-vect-slp.cc	Sat Aug 22 22:32:16 2026
*************** vect_remove_slp_scalar_calls (vec_info *
*** 12198,12216 ****
  void
  vectorize_slp_instance_root_stmt (vec_info *vinfo, slp_tree node, slp_instance instance)
  {
-   gassign *rstmt = NULL;
- 
    if (instance->kind == slp_inst_kind_ctor)
      {
        if (SLP_TREE_VEC_DEFS (node).length () == 1)
  	{
! 	  tree vect_lhs = SLP_TREE_VEC_DEFS (node)[0];
  	  tree root_lhs = gimple_get_lhs (instance->root_stmts[0]->stmt);
  	  if (!useless_type_conversion_p (TREE_TYPE (root_lhs),
! 					  TREE_TYPE (vect_lhs)))
! 	    vect_lhs = build1 (VIEW_CONVERT_EXPR, TREE_TYPE (root_lhs),
! 			       vect_lhs);
! 	  rstmt = gimple_build_assign (root_lhs, vect_lhs);
  	}
        else
  	{
--- 12198,12214 ----
  void
  vectorize_slp_instance_root_stmt (vec_info *vinfo, slp_tree node, slp_instance instance)
  {
    if (instance->kind == slp_inst_kind_ctor)
      {
+       tree new_def;
        if (SLP_TREE_VEC_DEFS (node).length () == 1)
  	{
! 	  new_def = SLP_TREE_VEC_DEFS (node)[0];
  	  tree root_lhs = gimple_get_lhs (instance->root_stmts[0]->stmt);
  	  if (!useless_type_conversion_p (TREE_TYPE (root_lhs),
! 					  TREE_TYPE (new_def)))
! 	    new_def = build1 (VIEW_CONVERT_EXPR, TREE_TYPE (root_lhs),
! 			       new_def);
  	}
        else
  	{
*************** vectorize_slp_instance_root_stmt (vec_in
*** 12225,12236 ****
  	     do not match.  */
  	  FOR_EACH_VEC_ELT (SLP_TREE_VEC_DEFS (node), j, child_def)
  	    CONSTRUCTOR_APPEND_ELT (v, NULL_TREE, child_def);
- 	  tree lhs = gimple_get_lhs (instance->root_stmts[0]->stmt);
  	  tree rtype
  	    = TREE_TYPE (gimple_assign_rhs1 (instance->root_stmts[0]->stmt));
! 	  tree r_constructor = build_constructor (rtype, v);
! 	  rstmt = gimple_build_assign (lhs, r_constructor);
  	}
      }
    else if (instance->kind == slp_inst_kind_bb_reduc)
      {
--- 12223,12237 ----
  	     do not match.  */
  	  FOR_EACH_VEC_ELT (SLP_TREE_VEC_DEFS (node), j, child_def)
  	    CONSTRUCTOR_APPEND_ELT (v, NULL_TREE, child_def);
  	  tree rtype
  	    = TREE_TYPE (gimple_assign_rhs1 (instance->root_stmts[0]->stmt));
! 	  new_def = build_constructor (rtype, v);
  	}
+ 
+       gimple_stmt_iterator rgsi = gsi_for_stmt (instance->root_stmts[0]->stmt);
+       gimple_assign_set_rhs_from_tree (&rgsi, new_def);
+       update_stmt (gsi_stmt (rgsi));
+       return;
      }
    else if (instance->kind == slp_inst_kind_bb_reduc)
      {
*************** vectorize_slp_instance_root_stmt (vec_in
*** 12316,12326 ****
      }
    else
      gcc_unreachable ();
- 
-   gcc_assert (rstmt);
- 
-   gimple_stmt_iterator rgsi = gsi_for_stmt (instance->root_stmts[0]->stmt);
-   gsi_replace (&rgsi, rstmt, true);
  }
  
  struct slp_scc_info
--- 12317,12322 ----
diff -Nrcpad gcc-16-20260815/libgcc/ChangeLog gcc-16-20260822/libgcc/ChangeLog
*** gcc-16-20260815/libgcc/ChangeLog	Sat Aug 15 22:32:16 2026
--- gcc-16-20260822/libgcc/ChangeLog	Sat Aug 22 22:32:17 2026
***************
*** 1,3 ****
--- 1,8 ----
+ 2026-08-17  Ramin Moussavi  <lordrasmus@gmail.com>
+ 
+ 	* config.host (microblaze*-linux*): Set md_unwind_header.
+ 	* config/microblaze/linux-unwind.h: New file.
+ 
  2026-08-12  Piotr Kubaj  <pkubaj@FreeBSD.org>
  
  	PR target/125803
diff -Nrcpad gcc-16-20260815/libgcc/config/microblaze/linux-unwind.h gcc-16-20260822/libgcc/config/microblaze/linux-unwind.h
*** gcc-16-20260815/libgcc/config/microblaze/linux-unwind.h	Thu Jan  1 00:00:00 1970
--- gcc-16-20260822/libgcc/config/microblaze/linux-unwind.h	Sat Aug 22 22:32:17 2026
***************
*** 0 ****
--- 1,102 ----
+ /* DWARF2 EH unwinding support for MicroBlaze Linux.
+    Copyright (C) 2026 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+ 
+    Under Section 7 of GPL version 3, you are granted additional
+    permissions described in the GCC Runtime Library Exception, version
+    3.1, as published by the Free Software Foundation.
+ 
+    You should have received a copy of the GNU General Public License and
+    a copy of the GCC Runtime Library Exception along with this program;
+    see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef inhibit_libc
+ 
+ /* Do code reading to identify a signal frame, and set the frame state
+    data appropriately.  See unwind-dw2.c for the structs.  */
+ 
+ #include <signal.h>
+ #include <sys/ucontext.h>
+ #include <asm/unistd.h>
+ 
+ #define MD_FALLBACK_FRAME_STATE_FOR microblaze_fallback_frame_state
+ 
+ static _Unwind_Reason_Code
+ microblaze_fallback_frame_state (struct _Unwind_Context *context,
+ 				 _Unwind_FrameState *fs)
+ {
+   const unsigned int *pc = (const unsigned int *) context->ra;
+   struct sigcontext *sc;
+   _Unwind_Ptr new_cfa;
+   int i;
+ 
+   /* The outermost frame of a thread may leave a null or near-null
+      return address; do not dereference it looking for the
+      trampoline.  */
+   if ((unsigned long) pc < 4096)
+     return _URC_END_OF_STACK;
+ 
+   /* The kernel writes the signal trampoline onto the stack
+      (struct rt_sigframe.tramp):
+ 
+ 	addik r12, r0, __NR_rt_sigreturn
+ 	brki  r14, 0x8
+ 
+      and sets the saved r15 to the trampoline address minus 8 (the
+      handler returns with "rtsd r15, 8"), so the unwound return
+      address points 8 bytes before the trampoline.  */
+   if (pc[0] == (0x31800000 | __NR_rt_sigreturn) && pc[1] == 0xb9cc0008)
+     ;
+   else if (pc[2] == (0x31800000 | __NR_rt_sigreturn) && pc[3] == 0xb9cc0008)
+     pc += 2;
+   else
+     return _URC_END_OF_STACK;
+ 
+   /* The trampoline is the last member of the kernel's rt_sigframe and
+      the ucontext sits directly in front of it.  Anchor there rather
+      than at the CFA so the layout of the frame head does not matter
+      (the kernel may insert an ABI argument-home gap at the front).
+      uClibc's ucontext_t matches the kernel's struct ucontext.  */
+   ucontext_t *uc = (ucontext_t *) ((_Unwind_Ptr) pc - sizeof (ucontext_t));
+ 
+   sc = (struct sigcontext *) &uc->uc_mcontext;
+ 
+   new_cfa = sc->regs.r1;
+   fs->regs.cfa_how = CFA_REG_OFFSET;
+   fs->regs.cfa_reg = 1;		/* r1, the stack pointer.  */
+   fs->regs.cfa_offset = new_cfa - (_Unwind_Ptr) context->cfa;
+ 
+   /* pt_regs holds r0..r31 consecutively.  */
+   for (i = 0; i < 32; i++)
+     {
+       fs->regs.how[i] = REG_SAVED_OFFSET;
+       fs->regs.reg[i].loc.offset
+ 	= (_Unwind_Ptr) &sc->regs.r0 + i * sizeof (unsigned long) - new_cfa;
+     }
+ 
+   /* The interrupted PC goes into the alternate return column
+      (DWARF_ALT_FRAME_RETURN_COLUMN, defined as 36 in
+      gcc/config/microblaze/microblaze.h), one past the hard registers;
+      column 15 above keeps the interrupted r15.  */
+   fs->regs.how[__LIBGCC_DWARF_ALT_FRAME_RETURN_COLUMN__] = REG_SAVED_OFFSET;
+   fs->regs.reg[__LIBGCC_DWARF_ALT_FRAME_RETURN_COLUMN__].loc.offset
+     = (_Unwind_Ptr) &sc->regs.pc - new_cfa;
+   fs->retaddr_column = __LIBGCC_DWARF_ALT_FRAME_RETURN_COLUMN__;
+   fs->signal_frame = 1;
+ 
+   return _URC_NO_REASON;
+ }
+ 
+ #endif
diff -Nrcpad gcc-16-20260815/libgcc/config.host gcc-16-20260822/libgcc/config.host
*** gcc-16-20260815/libgcc/config.host	Sat Aug 15 22:32:16 2026
--- gcc-16-20260822/libgcc/config.host	Sat Aug 22 22:32:17 2026
*************** mcore-*-elf)
*** 1050,1055 ****
--- 1050,1056 ----
  	;;
  microblaze*-linux*)
  	tmake_file="${tmake_file} microblaze/t-microblaze t-fdpbit t-slibgcc-libgcc"
+ 	md_unwind_header=microblaze/linux-unwind.h
  	;;
  microblaze*-*-elf)
  	tmake_file="${tmake_file} microblaze/t-microblaze t-fdpbit"
diff -Nrcpad gcc-16-20260815/libstdc++-v3/ChangeLog gcc-16-20260822/libstdc++-v3/ChangeLog
*** gcc-16-20260815/libstdc++-v3/ChangeLog	Sat Aug 15 22:32:17 2026
--- gcc-16-20260822/libstdc++-v3/ChangeLog	Sat Aug 22 22:32:19 2026
***************
*** 1,3 ****
--- 1,100 ----
+ 2026-08-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-08-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* testsuite/std/time/clock/utc/leap_second_info-2.cc: Create
+ 	empty ./tzdata.zi file.
+ 
+ 2026-08-21  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	Backported from master:
+ 	2026-08-19  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	* include/bits/simd_vec.h (_M_elements_shifted_to_front): Remove
+ 	x86-specific implementation.
+ 
+ 2026-08-20  Anlai Lu  <agicy@qq.com>
+ 	    Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* include/bits/print.h (_File_sink::_File::_File)
+ 	[_GLIBCXX_USE_STDIO_LOCKING && _GLIBCXX_USE_GLIBC_STDIO_EXT]:
+ 	Move __overflow call to separate member function.
+ 	(_File_sink::_File::_M_init_write_buf)
+ 	[_GLIBCXX_USE_STDIO_LOCKING && _GLIBCXX_USE_GLIBC_STDIO_EXT]:
+ 	Extracted from constructor, call __overflow for null
+ 	_M_file->_IO_write_ptr.
+ 	(_File_sink::_File_sink)
+ 	[_GLIBCXX_USE_STDIO_LOCKING && _GLIBCXX_USE_GLIBC_STDIO_EXT]:
+ 	Call _M_init_write_buf instead of _M_write_buf.
+ 	* testsuite/27_io/print/1.cc: Add test_print_setvbuf.
+ 	(cherry picked from commits 4cb7258da9bd637ccce023693ae6a167d179784d)
+ 	(74b3180bb616fbc35d1b655da75d8f6d8b39d368)
+ 
+ 2026-08-20  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-08-20  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	PR libstdc++/126731
+ 	* include/std/format (std::formatter<_Float16, _CharT>)
+ 	(std::formatter<__format::__bflt16_t, _CharT>): Remove
+ 	partial specializations.
+ 	* testsuite/std/format/formatter/ext_float.cc: Test output
+ 	for closest value to 1/10.
+ 
+ 2026-08-20  Pietro Monteiro  <pietro@sociotechnical.xyz>
+ 
+ 	Backported from master:
+ 	2026-08-17  Pietro Monteiro  <pietro@sociotechnical.xyz>
+ 
+ 	* config/os/bsd/openbsd/ctype_base.h: Use static_cast when
+ 	setting the masks.
+ 
+ 2026-08-20  Pietro Monteiro  <pietro@sociotechnical.xyz>
+ 
+ 	Backported from master:
+ 	2026-08-15  Pietro Monteiro  <pietro@sociotechnical.xyz>
+ 
+ 	* config/os/bsd/openbsd/ctype_base.h: Use _CTYPE prefixed
+ 	macros if available.
+ 
+ 2026-08-18  Yan Churkin  <yanchurkin@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-07-23  Yan Churkin  <yanchurkin@gmail.com>
+ 
+ 	PR libstdc++/125981
+ 	* include/bits/stl_algobase.h (__find_if): Force the predicate
+ 	result to bool so that non-boolean_testable predicates cannot
+ 	cause a past-the-end iterator to be dereferenced.
+ 	(__mismatch): Likewise for both overloads.
+ 	* include/bits/stl_heap.h (__push_heap): Likewise for the
+ 	comparator result.
+ 	* testsuite/25_algorithms/find_if/overloaded_logical_ops.cc: New
+ 	test.
+ 	* testsuite/25_algorithms/mismatch/overloaded_logical_ops.cc:
+ 	New test.
+ 
+ 2026-08-18  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-07-29  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/126452
+ 	* acinclude.m4 (GLIBCXX_CHECK_LINKER_FEATURES): Use LC_ALL_C and
+ 	match both "Warning" and "warning" in ld output.
+ 	* configure: Regenerate.
+ 
+ 2026-08-17  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-08-17  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/126849
+ 	* include/std/numbers: Fix preprocessor check for
+ 	std::bfloat16_t support.
+ 
  2026-08-07  Release Manager
  
  	* GCC 16.2.0 released.
diff -Nrcpad gcc-16-20260815/libstdc++-v3/acinclude.m4 gcc-16-20260822/libstdc++-v3/acinclude.m4
*** gcc-16-20260815/libstdc++-v3/acinclude.m4	Sat Aug 15 22:32:17 2026
--- gcc-16-20260822/libstdc++-v3/acinclude.m4	Sat Aug 22 22:32:19 2026
*************** AC_DEFUN([GLIBCXX_CHECK_LINKER_FEATURES]
*** 261,268 ****
        rm -f conftest.c
        touch conftest.c
        if $CC -c conftest.c; then
! 	if $LD --gc-sections -o conftest conftest.o 2>&1 | \
! 	   grep "Warning: gc-sections option ignored" > /dev/null; then
  	  ac_gcsections=no
  	fi
        fi
--- 261,268 ----
        rm -f conftest.c
        touch conftest.c
        if $CC -c conftest.c; then
! 	if LC_ALL=C $LD --gc-sections -o conftest conftest.o 2>&1 | \
! 	   grep "[[Ww]]arning: gc-sections option ignored" > /dev/null; then
  	  ac_gcsections=no
  	fi
        fi
diff -Nrcpad gcc-16-20260815/libstdc++-v3/config/os/bsd/openbsd/ctype_base.h gcc-16-20260822/libstdc++-v3/config/os/bsd/openbsd/ctype_base.h
*** gcc-16-20260815/libstdc++-v3/config/os/bsd/openbsd/ctype_base.h	Sat Aug 15 22:32:18 2026
--- gcc-16-20260822/libstdc++-v3/config/os/bsd/openbsd/ctype_base.h	Sat Aug 22 22:32:19 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 42,58 ****
      // on the mask type. Because of this, we don't use an enum.
      typedef char		mask;
  
!     static const mask upper	= _U;
!     static const mask lower	= _L;
!     static const mask alpha	= _U | _L;
!     static const mask digit	= _N;
!     static const mask xdigit	= _N | _X;
!     static const mask space	= _S;
!     static const mask print	= _P | _U | _L | _N | _B;
!     static const mask graph	= _P | _U | _L | _N;
!     static const mask cntrl	= _C;
!     static const mask punct	= _P;
!     static const mask alnum	= _U | _L | _N;
  #if __cplusplus >= 201103L
      static const mask blank	= space;
  #endif
--- 42,74 ----
      // on the mask type. Because of this, we don't use an enum.
      typedef char		mask;
  
! #ifdef _CTYPE_S
!     // OpenBSD 7.5 uses this style of define.
!     static const mask upper	= static_cast<mask>(_CTYPE_U);
!     static const mask lower	= static_cast<mask>(_CTYPE_L);
!     static const mask alpha	= static_cast<mask>(_CTYPE_U | _CTYPE_L);
!     static const mask digit	= static_cast<mask>(_CTYPE_N);
!     static const mask xdigit	= static_cast<mask>(_CTYPE_N | _CTYPE_X);
!     static const mask space	= static_cast<mask>(_CTYPE_S);
!     static const mask print	= static_cast<mask>(_CTYPE_P | _CTYPE_U | _CTYPE_L | _CTYPE_N | _CTYPE_B);
!     static const mask graph	= static_cast<mask>(_CTYPE_P | _CTYPE_U | _CTYPE_L | _CTYPE_N);
!     static const mask cntrl	= static_cast<mask>(_CTYPE_C);
!     static const mask punct	= static_cast<mask>(_CTYPE_P);
!     static const mask alnum	= static_cast<mask>(_CTYPE_U | _CTYPE_L | _CTYPE_N);
! #else
!     // Older versions use this style.
!     static const mask upper	= static_cast<mask>(_U);
!     static const mask lower	= static_cast<mask>(_L);
!     static const mask alpha	= static_cast<mask>(_U | _L);
!     static const mask digit	= static_cast<mask>(_N);
!     static const mask xdigit	= static_cast<mask>(_N | _X);
!     static const mask space	= static_cast<mask>(_S);
!     static const mask print	= static_cast<mask>(_P | _U | _L | _N | _B);
!     static const mask graph	= static_cast<mask>(_P | _U | _L | _N);
!     static const mask cntrl	= static_cast<mask>(_C);
!     static const mask punct	= static_cast<mask>(_P);
!     static const mask alnum	= static_cast<mask>(_U | _L | _N);
! #endif
  #if __cplusplus >= 201103L
      static const mask blank	= space;
  #endif
diff -Nrcpad gcc-16-20260815/libstdc++-v3/configure gcc-16-20260822/libstdc++-v3/configure
*** gcc-16-20260815/libstdc++-v3/configure	Sat Aug 15 22:32:21 2026
--- gcc-16-20260822/libstdc++-v3/configure	Sat Aug 22 22:32:22 2026
*************** rm -f core conftest.err conftest.$ac_obj
*** 23198,23205 ****
        rm -f conftest.c
        touch conftest.c
        if $CC -c conftest.c; then
! 	if $LD --gc-sections -o conftest conftest.o 2>&1 | \
! 	   grep "Warning: gc-sections option ignored" > /dev/null; then
  	  ac_gcsections=no
  	fi
        fi
--- 23198,23205 ----
        rm -f conftest.c
        touch conftest.c
        if $CC -c conftest.c; then
! 	if LC_ALL=C $LD --gc-sections -o conftest conftest.o 2>&1 | \
! 	   grep "[Ww]arning: gc-sections option ignored" > /dev/null; then
  	  ac_gcsections=no
  	fi
        fi
*************** rm -f core conftest.err conftest.$ac_obj
*** 29199,29206 ****
        rm -f conftest.c
        touch conftest.c
        if $CC -c conftest.c; then
! 	if $LD --gc-sections -o conftest conftest.o 2>&1 | \
! 	   grep "Warning: gc-sections option ignored" > /dev/null; then
  	  ac_gcsections=no
  	fi
        fi
--- 29199,29206 ----
        rm -f conftest.c
        touch conftest.c
        if $CC -c conftest.c; then
! 	if LC_ALL=C $LD --gc-sections -o conftest conftest.o 2>&1 | \
! 	   grep "[Ww]arning: gc-sections option ignored" > /dev/null; then
  	  ac_gcsections=no
  	fi
        fi
*************** rm -f core conftest.err conftest.$ac_obj
*** 32381,32388 ****
        rm -f conftest.c
        touch conftest.c
        if $CC -c conftest.c; then
! 	if $LD --gc-sections -o conftest conftest.o 2>&1 | \
! 	   grep "Warning: gc-sections option ignored" > /dev/null; then
  	  ac_gcsections=no
  	fi
        fi
--- 32381,32388 ----
        rm -f conftest.c
        touch conftest.c
        if $CC -c conftest.c; then
! 	if LC_ALL=C $LD --gc-sections -o conftest conftest.o 2>&1 | \
! 	   grep "[Ww]arning: gc-sections option ignored" > /dev/null; then
  	  ac_gcsections=no
  	fi
        fi
*************** rm -f core conftest.err conftest.$ac_obj
*** 38602,38609 ****
        rm -f conftest.c
        touch conftest.c
        if $CC -c conftest.c; then
! 	if $LD --gc-sections -o conftest conftest.o 2>&1 | \
! 	   grep "Warning: gc-sections option ignored" > /dev/null; then
  	  ac_gcsections=no
  	fi
        fi
--- 38602,38609 ----
        rm -f conftest.c
        touch conftest.c
        if $CC -c conftest.c; then
! 	if LC_ALL=C $LD --gc-sections -o conftest conftest.o 2>&1 | \
! 	   grep "[Ww]arning: gc-sections option ignored" > /dev/null; then
  	  ac_gcsections=no
  	fi
        fi
*************** rm -f core conftest.err conftest.$ac_obj
*** 38893,38900 ****
        rm -f conftest.c
        touch conftest.c
        if $CC -c conftest.c; then
! 	if $LD --gc-sections -o conftest conftest.o 2>&1 | \
! 	   grep "Warning: gc-sections option ignored" > /dev/null; then
  	  ac_gcsections=no
  	fi
        fi
--- 38893,38900 ----
        rm -f conftest.c
        touch conftest.c
        if $CC -c conftest.c; then
! 	if LC_ALL=C $LD --gc-sections -o conftest conftest.o 2>&1 | \
! 	   grep "[Ww]arning: gc-sections option ignored" > /dev/null; then
  	  ac_gcsections=no
  	fi
        fi
*************** rm -f core conftest.err conftest.$ac_obj
*** 39361,39368 ****
        rm -f conftest.c
        touch conftest.c
        if $CC -c conftest.c; then
! 	if $LD --gc-sections -o conftest conftest.o 2>&1 | \
! 	   grep "Warning: gc-sections option ignored" > /dev/null; then
  	  ac_gcsections=no
  	fi
        fi
--- 39361,39368 ----
        rm -f conftest.c
        touch conftest.c
        if $CC -c conftest.c; then
! 	if LC_ALL=C $LD --gc-sections -o conftest conftest.o 2>&1 | \
! 	   grep "[Ww]arning: gc-sections option ignored" > /dev/null; then
  	  ac_gcsections=no
  	fi
        fi
*************** rm -f core conftest.err conftest.$ac_obj
*** 42806,42813 ****
        rm -f conftest.c
        touch conftest.c
        if $CC -c conftest.c; then
! 	if $LD --gc-sections -o conftest conftest.o 2>&1 | \
! 	   grep "Warning: gc-sections option ignored" > /dev/null; then
  	  ac_gcsections=no
  	fi
        fi
--- 42806,42813 ----
        rm -f conftest.c
        touch conftest.c
        if $CC -c conftest.c; then
! 	if LC_ALL=C $LD --gc-sections -o conftest conftest.o 2>&1 | \
! 	   grep "[Ww]arning: gc-sections option ignored" > /dev/null; then
  	  ac_gcsections=no
  	fi
        fi
*************** rm -f core conftest.err conftest.$ac_obj
*** 46204,46211 ****
        rm -f conftest.c
        touch conftest.c
        if $CC -c conftest.c; then
! 	if $LD --gc-sections -o conftest conftest.o 2>&1 | \
! 	   grep "Warning: gc-sections option ignored" > /dev/null; then
  	  ac_gcsections=no
  	fi
        fi
--- 46204,46211 ----
        rm -f conftest.c
        touch conftest.c
        if $CC -c conftest.c; then
! 	if LC_ALL=C $LD --gc-sections -o conftest conftest.o 2>&1 | \
! 	   grep "[Ww]arning: gc-sections option ignored" > /dev/null; then
  	  ac_gcsections=no
  	fi
        fi
*************** rm -f core conftest.err conftest.$ac_obj
*** 46420,46427 ****
        rm -f conftest.c
        touch conftest.c
        if $CC -c conftest.c; then
! 	if $LD --gc-sections -o conftest conftest.o 2>&1 | \
! 	   grep "Warning: gc-sections option ignored" > /dev/null; then
  	  ac_gcsections=no
  	fi
        fi
--- 46420,46427 ----
        rm -f conftest.c
        touch conftest.c
        if $CC -c conftest.c; then
! 	if LC_ALL=C $LD --gc-sections -o conftest conftest.o 2>&1 | \
! 	   grep "[Ww]arning: gc-sections option ignored" > /dev/null; then
  	  ac_gcsections=no
  	fi
        fi
diff -Nrcpad gcc-16-20260815/libstdc++-v3/include/bits/print.h gcc-16-20260822/libstdc++-v3/include/bits/print.h
*** gcc-16-20260815/libstdc++-v3/include/bits/print.h	Sat Aug 15 22:32:18 2026
--- gcc-16-20260822/libstdc++-v3/include/bits/print.h	Sat Aug 22 22:32:19 2026
*************** namespace __format
*** 80,99 ****
  	    ::funlockfile(__f);
  	    __throw_system_error(EACCES);
  	  }
- 	// Allocate buffer if needed:
- 	if (_M_write_buf().empty())
- 	  if (::__overflow(__f, EOF) == EOF)
- 	    {
- 	      const int __err = errno;
- 	      ::funlockfile(__f);
- 	      __throw_system_error(__err);
- 	    }
        }
  
        ~_File() { ::funlockfile(_M_file); }
  
        _File(_File&&) = delete;
  
        // A span viewing the unused portion of the stream's output buffer.
        std::span<char>
        _M_write_buf() noexcept
--- 80,104 ----
  	    ::funlockfile(__f);
  	    __throw_system_error(EACCES);
  	  }
        }
  
        ~_File() { ::funlockfile(_M_file); }
  
        _File(_File&&) = delete;
  
+       // Allocate FILE's output buffer if needed, and return a span
+       // viewing unused portion of it.
+       std::span<char>
+       _M_init_write_buf()
+       {
+ 	// After setvbuf glibc pre-allocates the buffer but _IO_write_ptr
+ 	// remains null until the first write.
+ 	if (!_M_file->_IO_write_ptr || _M_write_buf().empty())
+ 	  if (::__overflow(_M_file, EOF) == EOF)
+ 	    __throw_system_error(errno);
+ 	return _M_write_buf();
+       }
+ 
        // A span viewing the unused portion of the stream's output buffer.
        std::span<char>
        _M_write_buf() noexcept
*************** namespace __format
*** 158,165 ****
      : _M_file(__f), _M_add_newline(__add_newline)
      {
        if (!_M_file._M_unbuffered())
! 	// Write directly to the FILE's output buffer.
! 	this->_M_reset(_M_file._M_write_buf());
      }
  
      // This calls I/O functions which are cancellation points, so they
--- 163,170 ----
      : _M_file(__f), _M_add_newline(__add_newline)
      {
        if (!_M_file._M_unbuffered())
! 	// Allocate FILE's output buffer if needed, and write directly to it.
! 	this->_M_reset(_M_file._M_init_write_buf());
      }
  
      // This calls I/O functions which are cancellation points, so they
diff -Nrcpad gcc-16-20260815/libstdc++-v3/include/bits/simd_vec.h gcc-16-20260822/libstdc++-v3/include/bits/simd_vec.h
*** gcc-16-20260815/libstdc++-v3/include/bits/simd_vec.h	Sat Aug 15 22:32:18 2026
--- gcc-16-20260822/libstdc++-v3/include/bits/simd_vec.h	Sat Aug 22 22:32:19 2026
*************** namespace simd
*** 443,475 ****
  	  static_assert(_Shift < _S_size && -_Shift < _S_size);
  	  if constexpr (_Shift == 0)
  	    return *this;
! #ifdef __SSE2__
! 	  else if (!__is_const_known(*this))
! 	    {
! 	      if constexpr (sizeof(_M_data) == 16 && _Shift > 0)
! 		return reinterpret_cast<_DataType>(
! 			 __builtin_ia32_psrldqi128(__vec_bit_cast<long long>(_M_data),
! 						   _Shift * sizeof(value_type) * 8));
! 	      else if constexpr (sizeof(_M_data) == 16 && _Shift < 0)
! 		return reinterpret_cast<_DataType>(
! 			 __builtin_ia32_pslldqi128(__vec_bit_cast<long long>(_M_data),
! 						   -_Shift * sizeof(value_type) * 8));
! 	      else if constexpr (sizeof(_M_data) < 16)
! 		{
! 		  auto __x = reinterpret_cast<__vec_builtin_type_bytes<long long, 16>>(
! 			       __vec_zero_pad_to_16(_M_data));
! 		  if constexpr (_Shift > 0)
! 		    __x = __builtin_ia32_psrldqi128(__x, _Shift * sizeof(value_type) * 8);
! 		  else
! 		    __x = __builtin_ia32_pslldqi128(__x, -_Shift * sizeof(value_type) * 8);
! 		  return _VecOps<_DataType>::_S_extract(__vec_bit_cast<__canon_value_type>(__x));
! 		}
! 	    }
! #endif
! 	  return _S_static_permute(*this, [](int __i) consteval {
! 		   int __off = __i + _Shift;
! 		   return __off >= _S_size || __off < 0 ? zero_element : __off;
! 		 });
  	}
  
        /** @internal
--- 443,453 ----
  	  static_assert(_Shift < _S_size && -_Shift < _S_size);
  	  if constexpr (_Shift == 0)
  	    return *this;
! 	  else
! 	    return _S_static_permute(*this, [](int __i) consteval {
! 		     int __off = __i + _Shift;
! 		     return __off >= _S_size || __off < 0 ? zero_element : __off;
! 		   });
  	}
  
        /** @internal
diff -Nrcpad gcc-16-20260815/libstdc++-v3/include/bits/stl_algobase.h gcc-16-20260822/libstdc++-v3/include/bits/stl_algobase.h
*** gcc-16-20260815/libstdc++-v3/include/bits/stl_algobase.h	Sat Aug 15 22:32:18 2026
--- gcc-16-20260822/libstdc++-v3/include/bits/stl_algobase.h	Sat Aug 22 22:32:19 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_ALGO
*** 1930,1936 ****
      __mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
  	       _InputIterator2 __first2, _BinaryPredicate __binary_pred)
      {
!       while (__first1 != __last1 && __binary_pred(*__first1, *__first2))
  	{
  	  ++__first1;
  	  ++__first2;
--- 1930,1936 ----
      __mismatch(_InputIterator1 __first1, _InputIterator1 __last1,
  	       _InputIterator2 __first2, _BinaryPredicate __binary_pred)
      {
!       while (__first1 != __last1 && bool(__binary_pred(*__first1, *__first2)))
  	{
  	  ++__first1;
  	  ++__first2;
*************** _GLIBCXX_BEGIN_NAMESPACE_ALGO
*** 2011,2017 ****
  	       _BinaryPredicate __binary_pred)
      {
        while (__first1 != __last1 && __first2 != __last2
! 	     && __binary_pred(*__first1, *__first2))
  	{
  	  ++__first1;
  	  ++__first2;
--- 2011,2017 ----
  	       _BinaryPredicate __binary_pred)
      {
        while (__first1 != __last1 && __first2 != __last2
! 	     && bool(__binary_pred(*__first1, *__first2)))
  	{
  	  ++__first1;
  	  ++__first2;
*************** _GLIBCXX_END_NAMESPACE_ALGO
*** 2097,2103 ****
      __find_if(_Iterator __first, _Iterator __last, _Predicate __pred)
      {
  #pragma GCC unroll 4
!       while (__first != __last && !__pred(*__first))
  	++__first;
        return __first;
      }
--- 2097,2103 ----
      __find_if(_Iterator __first, _Iterator __last, _Predicate __pred)
      {
  #pragma GCC unroll 4
!       while (__first != __last && !bool(__pred(*__first)))
  	++__first;
        return __first;
      }
diff -Nrcpad gcc-16-20260815/libstdc++-v3/include/bits/stl_heap.h gcc-16-20260822/libstdc++-v3/include/bits/stl_heap.h
*** gcc-16-20260815/libstdc++-v3/include/bits/stl_heap.h	Sat Aug 15 22:32:18 2026
--- gcc-16-20260822/libstdc++-v3/include/bits/stl_heap.h	Sat Aug 22 22:32:19 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 143,149 ****
  		_Compare& __comp)
      {
        _Distance __parent = (__holeIndex - 1) / 2;
!       while (__holeIndex > __topIndex && __comp(*(__first + __parent), __value))
  	{
  	  *(__first + __holeIndex) = _GLIBCXX_MOVE(*(__first + __parent));
  	  __holeIndex = __parent;
--- 143,150 ----
  		_Compare& __comp)
      {
        _Distance __parent = (__holeIndex - 1) / 2;
!       while (__holeIndex > __topIndex
! 	     && bool(__comp(*(__first + __parent), __value)))
  	{
  	  *(__first + __holeIndex) = _GLIBCXX_MOVE(*(__first + __parent));
  	  __holeIndex = __parent;
diff -Nrcpad gcc-16-20260815/libstdc++-v3/include/std/format gcc-16-20260822/libstdc++-v3/include/std/format
*** gcc-16-20260815/libstdc++-v3/include/std/format	Sat Aug 15 22:32:18 2026
--- gcc-16-20260822/libstdc++-v3/include/std/format	Sat Aug 22 22:32:19 2026
*************** namespace __format
*** 2941,2968 ****
      };
  #endif
  
- #if defined(__STDCPP_FLOAT16_T__) && defined(_GLIBCXX_FLOAT_IS_IEEE_BINARY32)
-   // Reuse __formatter_fp<C>::format<float, Out> for _Float16.
-   template<__format::__char _CharT>
-     struct formatter<_Float16, _CharT>
-     {
-       formatter() = default;
- 
-       [[__gnu__::__always_inline__]]
-       constexpr typename basic_format_parse_context<_CharT>::iterator
-       parse(basic_format_parse_context<_CharT>& __pc)
-       { return _M_f.parse(__pc); }
- 
-       template<typename _Out>
- 	typename basic_format_context<_Out, _CharT>::iterator
- 	format(_Float16 __u, basic_format_context<_Out, _CharT>& __fc) const
- 	{ return _M_f.format((float)__u, __fc); }
- 
-     private:
-       __format::__formatter_fp<_CharT> _M_f;
-     };
- #endif
- 
  #if defined(__FLT32_DIG__) && defined(_GLIBCXX_FLOAT_IS_IEEE_BINARY32)
    // Reuse __formatter_fp<C>::format<float, Out> for _Float32.
    template<__format::__char _CharT>
--- 2941,2946 ----
*************** namespace __format
*** 3052,3079 ****
      };
  #endif
  
- #if defined(__STDCPP_BFLOAT16_T__) && defined(_GLIBCXX_FLOAT_IS_IEEE_BINARY32)
-   // Reuse __formatter_fp<C>::format<float, Out> for bfloat16_t.
-   template<__format::__char _CharT>
-     struct formatter<__format::__bflt16_t, _CharT>
-     {
-       formatter() = default;
- 
-       [[__gnu__::__always_inline__]]
-       constexpr typename basic_format_parse_context<_CharT>::iterator
-       parse(basic_format_parse_context<_CharT>& __pc)
-       { return _M_f.parse(__pc); }
- 
-       template<typename _Out>
- 	typename basic_format_context<_Out, _CharT>::iterator
- 	format(__gnu_cxx::__bfloat16_t __u,
- 	       basic_format_context<_Out, _CharT>& __fc) const
- 	{ return _M_f.format((float)__u, __fc); }
- 
-     private:
-       __format::__formatter_fp<_CharT> _M_f;
-     };
- #endif
  #endif // __cpp_lib_to_chars
  
    /** Format a pointer.
--- 3030,3035 ----
diff -Nrcpad gcc-16-20260815/libstdc++-v3/include/std/numbers gcc-16-20260822/libstdc++-v3/include/std/numbers
*** gcc-16-20260815/libstdc++-v3/include/std/numbers	Sat Aug 15 22:32:18 2026
--- gcc-16-20260822/libstdc++-v3/include/std/numbers	Sat Aug 22 22:32:19 2026
*************** __glibcxx_numbers (_Float64, F64);
*** 222,228 ****
  __glibcxx_numbers (_Float128, F128);
  #endif
  
! #ifdef __STDCPP_BFLOAT128_T__
  __glibcxx_numbers (__gnu_cxx::__bfloat16_t, BF16);
  #endif
  
--- 222,228 ----
  __glibcxx_numbers (_Float128, F128);
  #endif
  
! #ifdef __STDCPP_BFLOAT16_T__
  __glibcxx_numbers (__gnu_cxx::__bfloat16_t, BF16);
  #endif
  
diff -Nrcpad gcc-16-20260815/libstdc++-v3/testsuite/25_algorithms/find_if/overloaded_logical_ops.cc gcc-16-20260822/libstdc++-v3/testsuite/25_algorithms/find_if/overloaded_logical_ops.cc
*** gcc-16-20260815/libstdc++-v3/testsuite/25_algorithms/find_if/overloaded_logical_ops.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260822/libstdc++-v3/testsuite/25_algorithms/find_if/overloaded_logical_ops.cc	Sat Aug 22 22:32:20 2026
***************
*** 0 ****
--- 1,50 ----
+ // The predicate's result type does not model boolean-testable (it has an
+ // ADL-reachable operator&& and operator!), so this is undefined behaviour.
+ // libstdc++ supports it as a QoI extension: std::find_if does not evaluate
+ // the predicate on, or dereference, the past-the-end iterator.
+ 
+ #include <algorithm>
+ #include <testsuite_hooks.h>
+ #include <testsuite_iterators.h>
+ 
+ using __gnu_test::test_container;
+ using __gnu_test::forward_iterator_wrapper;
+ 
+ int truth = 0;
+ 
+ struct Logic
+ {
+   Logic operator!() const { return Logic(); }
+   operator bool() const { return truth != 0; }
+ };
+ 
+ struct Value
+ {
+   Logic operator>(Value) const { return Logic(); }
+ };
+ 
+ bool operator&&(bool, Logic) { return false; }
+ 
+ struct Pred
+ {
+   Logic operator()(Value v) const { return v > v; }
+ };
+ 
+ void
+ test01()
+ {
+   Value arr[1] = { };
+ 
+   test_container<Value, forward_iterator_wrapper> empty(arr, arr);
+   VERIFY( std::find_if(empty.begin(), empty.end(), Pred()).ptr == arr );
+ 
+   test_container<Value, forward_iterator_wrapper> con(arr, arr + 1);
+   VERIFY( std::find_if(con.begin(), con.end(), Pred()).ptr == arr + 1 );
+ }
+ 
+ int
+ main()
+ {
+   test01();
+   return 0;
+ }
diff -Nrcpad gcc-16-20260815/libstdc++-v3/testsuite/25_algorithms/mismatch/overloaded_logical_ops.cc gcc-16-20260822/libstdc++-v3/testsuite/25_algorithms/mismatch/overloaded_logical_ops.cc
*** gcc-16-20260815/libstdc++-v3/testsuite/25_algorithms/mismatch/overloaded_logical_ops.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260822/libstdc++-v3/testsuite/25_algorithms/mismatch/overloaded_logical_ops.cc	Sat Aug 22 22:32:20 2026
***************
*** 0 ****
--- 1,54 ----
+ // The predicate's result type does not model boolean-testable (it has an
+ // ADL-reachable operator&& and operator!), so this is undefined behaviour.
+ // libstdc++ supports it as a QoI extension: std::mismatch does not evaluate
+ // the predicate on, or dereference, the past-the-end iterator.
+ 
+ #include <algorithm>
+ #include <testsuite_hooks.h>
+ #include <testsuite_iterators.h>
+ 
+ using __gnu_test::test_container;
+ using __gnu_test::forward_iterator_wrapper;
+ 
+ int truth = 0;
+ 
+ struct Logic
+ {
+   Logic operator!() const { return Logic(); }
+   operator bool() const { return truth != 0; }
+ };
+ 
+ struct Value { };
+ 
+ bool operator&&(bool, Logic) { return false; }
+ 
+ struct Eq
+ {
+   Logic operator()(Value, Value) const { return Logic(); }
+ };
+ 
+ void
+ test01()
+ {
+   Value arr[1] = { };
+ 
+   test_container<Value, forward_iterator_wrapper> empty(arr, arr);
+   test_container<Value, forward_iterator_wrapper> other(arr, arr + 1);
+   forward_iterator_wrapper<Value> r
+     = std::mismatch(empty.begin(), empty.end(), other.begin(), Eq()).first;
+   VERIFY( r.ptr == arr );
+ 
+ #ifdef __cpp_lib_robust_nonmodifying_seq_ops  // C++ >= 14
+   test_container<Value, forward_iterator_wrapper> e2(arr, arr);
+   test_container<Value, forward_iterator_wrapper> o2(arr, arr + 1);
+   auto r2 = std::mismatch(e2.begin(), e2.end(), o2.begin(), o2.end(), Eq());
+   VERIFY( r2.first.ptr == arr );
+ #endif
+ }
+ 
+ int
+ main()
+ {
+   test01();
+   return 0;
+ }
diff -Nrcpad gcc-16-20260815/libstdc++-v3/testsuite/27_io/print/1.cc gcc-16-20260822/libstdc++-v3/testsuite/27_io/print/1.cc
*** gcc-16-20260815/libstdc++-v3/testsuite/27_io/print/1.cc	Sat Aug 15 22:32:18 2026
--- gcc-16-20260822/libstdc++-v3/testsuite/27_io/print/1.cc	Sat Aug 22 22:32:20 2026
*************** test_print_raw()
*** 66,71 ****
--- 66,87 ----
  }
  
  void
+ test_print_setvbuf()
+ {
+   __gnu_test::scoped_file f;
+   FILE* strm = std::fopen(f.path.string().c_str(), "w");
+   VERIFY( strm );
+   VERIFY( std::setvbuf(strm, nullptr, _IOFBF, 4096) == 0 );
+   std::string str{"Hello, World!"};
+   std::print(strm, "{}", str);
+   std::fclose(strm);
+ 
+   std::ifstream in(f.path);
+   std::string txt(std::istreambuf_iterator<char>(in), {});
+   VERIFY( txt == "Hello, World!" );
+ }
+ 
+ void
  test_vprint_nonunicode()
  {
    std::vprint_nonunicode_buffered("{0} in \xc0 {0} out\n",
*************** int main()
*** 140,145 ****
--- 156,162 ----
    test_print_file();
    test_println_file();
    test_print_raw();
+   test_print_setvbuf();
    test_vprint_nonunicode();
  #ifdef __cpp_exceptions
    test_errors();
diff -Nrcpad gcc-16-20260815/libstdc++-v3/testsuite/std/format/formatter/ext_float.cc gcc-16-20260822/libstdc++-v3/testsuite/std/format/formatter/ext_float.cc
*** gcc-16-20260815/libstdc++-v3/testsuite/std/format/formatter/ext_float.cc	Sat Aug 15 22:32:19 2026
--- gcc-16-20260822/libstdc++-v3/testsuite/std/format/formatter/ext_float.cc	Sat Aug 22 22:32:20 2026
***************
*** 4,13 ****
  #include <testsuite_hooks.h>
  
  template<typename T>
! bool format_float()
  {
!     auto s = std::format("{:#} != {:<+7.3f}", (T)-0.0, (T)0.5);
!     return s == "-0. != +0.500 ";
  }
  
  #if __cplusplus > 202002L
--- 4,17 ----
  #include <testsuite_hooks.h>
  
  template<typename T>
! void
! verify_output()
  {
!   auto s = std::format("{:#} != {:<+7.3f}", T(-0.0), T(0.5));
!   VERIFY( s == "-0. != +0.500 ");
! 
!   s = std::format("{}", T(1)/T(10));
!   VERIFY( s == "0.1");
  }
  
  #if __cplusplus > 202002L
*************** test_float16()
*** 23,29 ****
  {
  #if __FLT16_DIG__
    if constexpr (formattable<_Float16>)
!     VERIFY( format_float<_Float16>() );
    else
      std::puts("Cannot format _Float16 on this target");
  #endif
--- 27,33 ----
  {
  #if __FLT16_DIG__
    if constexpr (formattable<_Float16>)
!     verify_output<_Float16>();
    else
      std::puts("Cannot format _Float16 on this target");
  #endif
*************** test_float32()
*** 34,40 ****
  {
  #if __FLT32_DIG__
    if constexpr (formattable<_Float32>)
!     VERIFY( format_float<_Float32>() );
    else
      std::puts("Cannot format _Float32 on this target");
  #endif
--- 38,44 ----
  {
  #if __FLT32_DIG__
    if constexpr (formattable<_Float32>)
!     verify_output<_Float32>();
    else
      std::puts("Cannot format _Float32 on this target");
  #endif
*************** test_float64()
*** 45,51 ****
  {
  #if __FLT64_DIG__
    if constexpr (formattable<_Float64>)
!     VERIFY( format_float<_Float64>() );
    else
      std::puts("Cannot format _Float64 on this target");
  #endif
--- 49,55 ----
  {
  #if __FLT64_DIG__
    if constexpr (formattable<_Float64>)
!     verify_output<_Float64>();
    else
      std::puts("Cannot format _Float64 on this target");
  #endif
*************** test_float128()
*** 56,68 ****
  {
  #ifdef __SIZEOF_FLOAT128__
    if constexpr (formattable<__float128>)
!     VERIFY( format_float<__float128>() );
    else
      std::puts("Cannot format __float128 on this target");
  #endif
  #if __FLT128_DIG__
    if constexpr (formattable<_Float128>)
!     VERIFY( format_float<_Float128>() );
    else
      std::puts("Cannot format _Float128 on this target");
  #endif
--- 60,72 ----
  {
  #ifdef __SIZEOF_FLOAT128__
    if constexpr (formattable<__float128>)
!     verify_output<__float128>();
    else
      std::puts("Cannot format __float128 on this target");
  #endif
  #if __FLT128_DIG__
    if constexpr (formattable<_Float128>)
!     verify_output<_Float128>();
    else
      std::puts("Cannot format _Float128 on this target");
  #endif
*************** test_bfloat16()
*** 75,81 ****
    using bfloat16_t = decltype(0.0bf16);
  
    if constexpr (formattable<bfloat16_t>)
!     VERIFY( format_float<bfloat16_t>() );
    else
      std::puts("Cannot format bfloat16_t on this target");
  #endif
--- 79,85 ----
    using bfloat16_t = decltype(0.0bf16);
  
    if constexpr (formattable<bfloat16_t>)
!     verify_output<bfloat16_t>();
    else
      std::puts("Cannot format bfloat16_t on this target");
  #endif
diff -Nrcpad gcc-16-20260815/libstdc++-v3/testsuite/std/time/clock/utc/leap_second_info-2.cc gcc-16-20260822/libstdc++-v3/testsuite/std/time/clock/utc/leap_second_info-2.cc
*** gcc-16-20260815/libstdc++-v3/testsuite/std/time/clock/utc/leap_second_info-2.cc	Sat Aug 15 22:32:19 2026
--- gcc-16-20260822/libstdc++-v3/testsuite/std/time/clock/utc/leap_second_info-2.cc	Sat Aug 22 22:32:20 2026
*************** Leap	2120	Dec	30	23:59:59	-	S
*** 103,108 ****
--- 103,111 ----
  
  int main()
  {
+   // chrono::reload_tzdb() requires ./tzdata.zi to be present.
+   std::ofstream("tzdata.zi") << "# version empty\n";
+ 
    test_known_leaps();
    test_future_leaps();
  }
