diff -Nrcpad gcc-16-20260620/LAST_UPDATED gcc-16-20260627/LAST_UPDATED
*** gcc-16-20260620/LAST_UPDATED	Sat Jun 20 22:32:18 2026
--- gcc-16-20260627/LAST_UPDATED	Sat Jun 27 22:32:22 2026
***************
*** 1 ****
! Obtained from git: releases/gcc-16 revision 6ced2eede75b046b16c732b146a1d7803828a012
--- 1 ----
! Obtained from git: releases/gcc-16 revision 32c1d1988cc7f56f1a7a9e550936267de6b152c2
diff -Nrcpad gcc-16-20260620/MD5SUMS gcc-16-20260627/MD5SUMS
*** gcc-16-20260620/MD5SUMS	Sat Jun 20 22:32:23 2026
--- gcc-16-20260627/MD5SUMS	Sat Jun 27 22:32:27 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-16-20260620.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-20260627.tar.xz tarball.
  #
  # Besides verifying that all files in the tarball were correctly expanded,
  # it also can be used to determine if any files have changed since the
*************** d32239bcb673463ab874e80d47fae504  COPYIN
*** 28,34 ****
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 9a4376f475c2ef8fee76720f407c393b  LAST_UPDATED
  935427ff8c5edd363349721844f7ba49  MAINTAINERS
  af43617880b3cd9c10627c97e639d29e  Makefile.def
  734342371d8ccc2c81cb2d8b3d040f33  Makefile.in
--- 28,34 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 24eecd4c2c518255d5db592ce23bf7d0  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
! cbeebc15b01be7da9966cdab4be3dc84  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
! 3f65d1c6af87a863e0bb59cdbb3248a3  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
! c026c910b8329849b3d84ca7feaca545  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
! ecc4b700e97485a655b11121c7eb2c04  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** efcac12e876ea7fc2018badafb6fddb5  gcc/cf
*** 3363,3369 ****
  1759b500ef3ebaa71f165d1004be0c28  gcc/cfgbuild.h
  7204450de7c4cc506ca7b77a17060d34  gcc/cfgcleanup.cc
  19b842f671a6c6284b654d712d52e513  gcc/cfgcleanup.h
! cc705d06a0d769debf1c9afca112eff6  gcc/cfgexpand.cc
  7bcce78536f3bff0e046d9a3ece5ea9a  gcc/cfgexpand.h
  7574fabaac9f09b71e48110e0f7eb1e6  gcc/cfghooks.cc
  7331a5536e5d2c3be4ee9196f8b90a90  gcc/cfghooks.h
--- 3363,3369 ----
  1759b500ef3ebaa71f165d1004be0c28  gcc/cfgbuild.h
  7204450de7c4cc506ca7b77a17060d34  gcc/cfgcleanup.cc
  19b842f671a6c6284b654d712d52e513  gcc/cfgcleanup.h
! 556de63a8bf0199e275b877b6a7f1152  gcc/cfgexpand.cc
  7bcce78536f3bff0e046d9a3ece5ea9a  gcc/cfgexpand.h
  7574fabaac9f09b71e48110e0f7eb1e6  gcc/cfghooks.cc
  7331a5536e5d2c3be4ee9196f8b90a90  gcc/cfghooks.h
*************** e3a5e8aba8408fe534c82a5f831ac343  gcc/co
*** 4355,4361 ****
  0d9fe20f90097f2260c0d3dd226004b1  gcc/config/i386/ppro.md
  6a771115ad999d3a84f994bce8926008  gcc/config/i386/predicates.md
  49c1e916a421c63ab688a51702818f36  gcc/config/i386/prfchiintrin.h
! 2c409488751db6ad5078dd4951efbd09  gcc/config/i386/prfchwintrin.h
  ae0d15567f15a04257774556b0d4dab6  gcc/config/i386/raointintrin.h
  be5a1341757e73ebb9004398fc5687ea  gcc/config/i386/rdos.h
  81d4402adf95b7a118c98cc3e5796495  gcc/config/i386/rdos64.h
--- 4355,4361 ----
  0d9fe20f90097f2260c0d3dd226004b1  gcc/config/i386/ppro.md
  6a771115ad999d3a84f994bce8926008  gcc/config/i386/predicates.md
  49c1e916a421c63ab688a51702818f36  gcc/config/i386/prfchiintrin.h
! 868a894ab62c112487f47c41c273b276  gcc/config/i386/prfchwintrin.h
  ae0d15567f15a04257774556b0d4dab6  gcc/config/i386/raointintrin.h
  be5a1341757e73ebb9004398fc5687ea  gcc/config/i386/rdos.h
  81d4402adf95b7a118c98cc3e5796495  gcc/config/i386/rdos64.h
*************** f913aafadf901518cfbd1709bf303845  gcc/co
*** 5018,5025 ****
  ccf120397e978f8cd4ed98cbe2c0d4f5  gcc/config/riscv/andes.def
  3781b6037a5c704d1ff44bb98a38265e  gcc/config/riscv/andes.md
  f4143eaeb6de99083ec3a0020c13454c  gcc/config/riscv/andes_vector.h
! 3a8a73bef77551ee151fb28603e3a02a  gcc/config/riscv/arch-canonicalize
! e210fc922126036076267892b159c6e3  gcc/config/riscv/autovec-opt.md
  49d1bc6364b4c8e48fa9de0f145a0997  gcc/config/riscv/autovec.md
  098363f130229da2a5e56c9c7e7ace93  gcc/config/riscv/bitmanip.md
  9a8c3c567d897ebcb2cfe1b14c449222  gcc/config/riscv/constraints.md
--- 5018,5025 ----
  ccf120397e978f8cd4ed98cbe2c0d4f5  gcc/config/riscv/andes.def
  3781b6037a5c704d1ff44bb98a38265e  gcc/config/riscv/andes.md
  f4143eaeb6de99083ec3a0020c13454c  gcc/config/riscv/andes_vector.h
! d0d6d98b21b9aa7a3fe468662ebd6e63  gcc/config/riscv/arch-canonicalize
! 417b8618e28f5898a9ed47930254d68f  gcc/config/riscv/autovec-opt.md
  49d1bc6364b4c8e48fa9de0f145a0997  gcc/config/riscv/autovec.md
  098363f130229da2a5e56c9c7e7ace93  gcc/config/riscv/bitmanip.md
  9a8c3c567d897ebcb2cfe1b14c449222  gcc/config/riscv/constraints.md
*************** fbba4e9f3f0e00cdc072f9a3d399d0d1  gcc/co
*** 5051,5057 ****
  7f7d3639030a4672597f5ffcc2083cd0  gcc/config/riscv/riscv-builtins.cc
  5cb39713c38f481ef65328ccacfc067e  gcc/config/riscv/riscv-c.cc
  3b7012a7d47b9aaf163e890d3e29013e  gcc/config/riscv/riscv-cmo.def
! 84bf4f3e3dd8352b0c98c731547841d9  gcc/config/riscv/riscv-cores.def
  165a5d0020971e2616fa7c9198c56338  gcc/config/riscv/riscv-d.cc
  c5d537324bd78e2ade1cf59d04fc1f54  gcc/config/riscv/riscv-d.h
  6078aa631d1c71fd215d51e4edcec963  gcc/config/riscv/riscv-ext-andes.def
--- 5051,5057 ----
  7f7d3639030a4672597f5ffcc2083cd0  gcc/config/riscv/riscv-builtins.cc
  5cb39713c38f481ef65328ccacfc067e  gcc/config/riscv/riscv-c.cc
  3b7012a7d47b9aaf163e890d3e29013e  gcc/config/riscv/riscv-cmo.def
! 563b38b03398052f2a0d7c38d4aee9b9  gcc/config/riscv/riscv-cores.def
  165a5d0020971e2616fa7c9198c56338  gcc/config/riscv/riscv-d.cc
  c5d537324bd78e2ade1cf59d04fc1f54  gcc/config/riscv/riscv-d.h
  6078aa631d1c71fd215d51e4edcec963  gcc/config/riscv/riscv-ext-andes.def
*************** a95321fbec5a4da32a9ee8145b8b0c6d  gcc/co
*** 5136,5142 ****
  dcbac9d3c6831ff1cd18effca9c7bb28  gcc/config/riscv/vector-bfloat16.md
  1efc7e76b1f8a6c41de01fba7e0d33b9  gcc/config/riscv/vector-crypto.md
  604805ea8530b1a6391150e8388a63fb  gcc/config/riscv/vector-iterators.md
! 9602776b7d6d61285df5eaa5f40f4b53  gcc/config/riscv/vector.md
  18d213c106fe52eebc74017d5ff892ce  gcc/config/riscv/xiangshan.md
  39ba96197510d4ac114a827d7ffbf806  gcc/config/riscv/zc.md
  01b0a0b8876ac0a4e6f9f00711ab8cc6  gcc/config/riscv/zicond.md
--- 5136,5142 ----
  dcbac9d3c6831ff1cd18effca9c7bb28  gcc/config/riscv/vector-bfloat16.md
  1efc7e76b1f8a6c41de01fba7e0d33b9  gcc/config/riscv/vector-crypto.md
  604805ea8530b1a6391150e8388a63fb  gcc/config/riscv/vector-iterators.md
! 83f003ac64e6f4d106d9ad5080748c11  gcc/config/riscv/vector.md
  18d213c106fe52eebc74017d5ff892ce  gcc/config/riscv/xiangshan.md
  39ba96197510d4ac114a827d7ffbf806  gcc/config/riscv/zc.md
  01b0a0b8876ac0a4e6f9f00711ab8cc6  gcc/config/riscv/zicond.md
*************** efc4d9cc6fcf24af7ea6e89c0c82127f  gcc/co
*** 5178,5184 ****
  1d313bdc511e984bdf559d61807bde14  gcc/config/rs6000/aix73.h
  ae4bd752599ffdd2833c6e78d03d39f0  gcc/config/rs6000/altivec.h
  f03bdef1224a610cfb7130f3c687b87f  gcc/config/rs6000/altivec.md
! 059307efbb31814d946437a40ade09c1  gcc/config/rs6000/amo.h
  2b409a82a1747675112a04705e01d157  gcc/config/rs6000/biarch64.h
  f83fd3bf0d9fbc30c9401eec549fdc2c  gcc/config/rs6000/bmi2intrin.h
  161814e9f6f10782769302881ac26227  gcc/config/rs6000/bmiintrin.h
--- 5178,5184 ----
  1d313bdc511e984bdf559d61807bde14  gcc/config/rs6000/aix73.h
  ae4bd752599ffdd2833c6e78d03d39f0  gcc/config/rs6000/altivec.h
  f03bdef1224a610cfb7130f3c687b87f  gcc/config/rs6000/altivec.md
! 505a3f0e71f54fbea2fbd87b1c032185  gcc/config/rs6000/amo.h
  2b409a82a1747675112a04705e01d157  gcc/config/rs6000/biarch64.h
  f83fd3bf0d9fbc30c9401eec549fdc2c  gcc/config/rs6000/bmi2intrin.h
  161814e9f6f10782769302881ac26227  gcc/config/rs6000/bmiintrin.h
*************** db237fc1717a4075e7b9480205a32fd5  gcc/co
*** 5244,5250 ****
  25ea383c1f398321c28d21896c9d79db  gcc/config/rs6000/predicates.md
  63ccc96ff2cef948c080eac4455d02b1  gcc/config/rs6000/rbtree.cc
  8ece9ca8167f5056fa411488a97c6131  gcc/config/rs6000/rbtree.h
! 63d5e60d2087274a3edb3f6b7b726b0a  gcc/config/rs6000/rs6000-builtin.cc
  5f55438b54e629713ba06eeb9a75bd37  gcc/config/rs6000/rs6000-builtins.def
  15e52baa355b0c3b725c3e6e55524af0  gcc/config/rs6000/rs6000-c.cc
  c97babd518212b16f2837b9b1d5d8359  gcc/config/rs6000/rs6000-call.cc
--- 5244,5250 ----
  25ea383c1f398321c28d21896c9d79db  gcc/config/rs6000/predicates.md
  63ccc96ff2cef948c080eac4455d02b1  gcc/config/rs6000/rbtree.cc
  8ece9ca8167f5056fa411488a97c6131  gcc/config/rs6000/rbtree.h
! 952a15095d55ed13cac7857cfcd12d7e  gcc/config/rs6000/rs6000-builtin.cc
  5f55438b54e629713ba06eeb9a75bd37  gcc/config/rs6000/rs6000-builtins.def
  15e52baa355b0c3b725c3e6e55524af0  gcc/config/rs6000/rs6000-c.cc
  c97babd518212b16f2837b9b1d5d8359  gcc/config/rs6000/rs6000-call.cc
*************** d3a1c98fd13be04e1250b073cb8dcef2  gcc/co
*** 5266,5272 ****
  835f22c956cc4deb83970ee9a9b5b79b  gcc/config/rs6000/rs6000-tables.opt
  ce8de9a27f36b759a69194616c02eb38  gcc/config/rs6000/rs6000-tables.opt.urls
  133c7cb4fcb84c2a55999c792301652f  gcc/config/rs6000/rs6000.cc
! 59b4ee08f651c3f48e6a52091e6911f0  gcc/config/rs6000/rs6000.h
  a575dd5c5592c7d23a9b53b985c01120  gcc/config/rs6000/rs6000.md
  e407423336f12658b509205c3e8f7130  gcc/config/rs6000/rs6000.opt
  80708ca71755b0d8d354f113f0617617  gcc/config/rs6000/rs6000.opt.urls
--- 5266,5272 ----
  835f22c956cc4deb83970ee9a9b5b79b  gcc/config/rs6000/rs6000-tables.opt
  ce8de9a27f36b759a69194616c02eb38  gcc/config/rs6000/rs6000-tables.opt.urls
  133c7cb4fcb84c2a55999c792301652f  gcc/config/rs6000/rs6000.cc
! 022807cee92311bbde8050337f5e7efb  gcc/config/rs6000/rs6000.h
  a575dd5c5592c7d23a9b53b985c01120  gcc/config/rs6000/rs6000.md
  e407423336f12658b509205c3e8f7130  gcc/config/rs6000/rs6000.opt
  80708ca71755b0d8d354f113f0617617  gcc/config/rs6000/rs6000.opt.urls
*************** d57d0eb0a8e2193f5cef2aaf1ad6d722  gcc/co
*** 5276,5282 ****
  0a803e7432938644d0614c5d9ee60670  gcc/config/rs6000/si2vmx.h
  b1a1f1ea8636fe96381989b926619397  gcc/config/rs6000/smmintrin.h
  016514c870054ecd799330bad9520a9d  gcc/config/rs6000/spu2vmx.h
! 0955c6a2d639cf6eaade88aa538b81b8  gcc/config/rs6000/sync.md
  e8c76038df323d77e90f69c78138b1fd  gcc/config/rs6000/sysv4.h
  e51499a69ac94adadb730c6c5491b97d  gcc/config/rs6000/sysv4.opt
  b1ed936b1a3e7303c34f1e54ec933230  gcc/config/rs6000/sysv4.opt.urls
--- 5276,5282 ----
  0a803e7432938644d0614c5d9ee60670  gcc/config/rs6000/si2vmx.h
  b1a1f1ea8636fe96381989b926619397  gcc/config/rs6000/smmintrin.h
  016514c870054ecd799330bad9520a9d  gcc/config/rs6000/spu2vmx.h
! 1e29cb9165b1e69aa36190a9d528b27e  gcc/config/rs6000/sync.md
  e8c76038df323d77e90f69c78138b1fd  gcc/config/rs6000/sysv4.h
  e51499a69ac94adadb730c6c5491b97d  gcc/config/rs6000/sysv4.opt
  b1ed936b1a3e7303c34f1e54ec933230  gcc/config/rs6000/sysv4.opt.urls
*************** f11925c88524d2fd457bf77944da1302  gcc/co
*** 5307,5313 ****
  da79297ad0c4c71553a67c1c8659d7f0  gcc/config/rs6000/tmmintrin.h
  88417b4d808d053378108ca755b5e5ce  gcc/config/rs6000/vec_types.h
  d25d99ecfc5b7d30303b228b0b6b2b9d  gcc/config/rs6000/vector.md
! a8c5b69d2174a02ec5fceaf382d995f4  gcc/config/rs6000/vsx.md
  e01b246a8cdac36ad716112dbba238f9  gcc/config/rs6000/vxworks.h
  879b35d5e026800c40c13e663df8c5f9  gcc/config/rs6000/vxworksae.h
  aa45c89828fac6551d8d57309cf26ec0  gcc/config/rs6000/vxworksmils.h
--- 5307,5313 ----
  da79297ad0c4c71553a67c1c8659d7f0  gcc/config/rs6000/tmmintrin.h
  88417b4d808d053378108ca755b5e5ce  gcc/config/rs6000/vec_types.h
  d25d99ecfc5b7d30303b228b0b6b2b9d  gcc/config/rs6000/vector.md
! be8468d388318201cc9599b2a617425e  gcc/config/rs6000/vsx.md
  e01b246a8cdac36ad716112dbba238f9  gcc/config/rs6000/vxworks.h
  879b35d5e026800c40c13e663df8c5f9  gcc/config/rs6000/vxworksae.h
  aa45c89828fac6551d8d57309cf26ec0  gcc/config/rs6000/vxworksmils.h
*************** aa396b24681954cbcd0cd64bf19d469c  gcc/co
*** 5366,5372 ****
  4a9d0190b77f29fbb14fa9706732f297  gcc/config/s390/s390-protos.h
  20f3b2de8a42040bfaa0b0e10128f9a1  gcc/config/s390/s390.cc
  c945413f70f4d804e12812f916b8d87b  gcc/config/s390/s390.h
! 5dfce09ce6b607fae082f3f41a419c7b  gcc/config/s390/s390.md
  ae1754efd7785ad08c6cc930dd08c7ae  gcc/config/s390/s390.opt
  90a97a731513f3119bb12e022497e9ab  gcc/config/s390/s390.opt.urls
  07efe01a921b4fb261d6e59abf21a268  gcc/config/s390/s390intrin.h
--- 5366,5372 ----
  4a9d0190b77f29fbb14fa9706732f297  gcc/config/s390/s390-protos.h
  20f3b2de8a42040bfaa0b0e10128f9a1  gcc/config/s390/s390.cc
  c945413f70f4d804e12812f916b8d87b  gcc/config/s390/s390.h
! c92001b6aaf6112d8ac33bb2a91f4e1a  gcc/config/s390/s390.md
  ae1754efd7785ad08c6cc930dd08c7ae  gcc/config/s390/s390.opt
  90a97a731513f3119bb12e022497e9ab  gcc/config/s390/s390.opt.urls
  07efe01a921b4fb261d6e59abf21a268  gcc/config/s390/s390intrin.h
*************** c5ad0142a191862e3e81ecd3573754b3  gcc/co
*** 5646,5652 ****
  55a33ae415bde0fd2e36ba584894e50b  gcc/coroutine-passes.cc
  c10700723a41c720aada0096f369147e  gcc/coverage.cc
  d27317cee558d7c78afbdb6529e36649  gcc/coverage.h
! f8861e0f91678e63068ff73ff436749e  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
! 3a1f4167ad36c4792ebdcb7136216344  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
*************** eba8d8a1725223519fba5d4d69afd5c9  gcc/cp
*** 5702,5708 ****
  ffdd05782c93c0567486bb7ed7eee65a  gcc/cp/cp-trait.def
  bc9b29434f2e35fa68caf656161b5c0f  gcc/cp/cp-tree.def
  8834ab19ae1a50cbe6a3df82d93e3092  gcc/cp/cp-tree.h
! e2854dfa428fab45fc41bf58fef71e61  gcc/cp/cp-ubsan.cc
  0f660920514d4f51007f6841a25e3af6  gcc/cp/cvt.cc
  f067718cf3d629084d8347c4e017afd4  gcc/cp/cxx-pretty-print.cc
  1d04eec9859d91686ca501e9221f30ac  gcc/cp/cxx-pretty-print.h
--- 5702,5708 ----
  ffdd05782c93c0567486bb7ed7eee65a  gcc/cp/cp-trait.def
  bc9b29434f2e35fa68caf656161b5c0f  gcc/cp/cp-tree.def
  8834ab19ae1a50cbe6a3df82d93e3092  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
*************** f067718cf3d629084d8347c4e017afd4  gcc/cp
*** 5713,5719 ****
  12ccd5244973d74a0536adf58261b416  gcc/cp/dump.cc
  c10df0d30e8f843cb78677c106cff141  gcc/cp/error.cc
  59d3d272a504a462c1f7081637e7f3e5  gcc/cp/except.cc
! 70f36ac126d5a18ee7be5d40cf58c2c9  gcc/cp/expr.cc
  447ddbe59eba62b9a389b9ba11701cfc  gcc/cp/friend.cc
  014d3891b4172014c0ad5386223c4f4c  gcc/cp/g++spec.cc
  a29b3e9192657e81a1574fb99466348d  gcc/cp/gen-cxxapi-file.py
--- 5713,5719 ----
  12ccd5244973d74a0536adf58261b416  gcc/cp/dump.cc
  c10df0d30e8f843cb78677c106cff141  gcc/cp/error.cc
  59d3d272a504a462c1f7081637e7f3e5  gcc/cp/except.cc
! f4c33376dcbcbb2b49c9a11ec2911ad9  gcc/cp/expr.cc
  447ddbe59eba62b9a389b9ba11701cfc  gcc/cp/friend.cc
  014d3891b4172014c0ad5386223c4f4c  gcc/cp/g++spec.cc
  a29b3e9192657e81a1574fb99466348d  gcc/cp/gen-cxxapi-file.py
*************** d455c75e448458ad6e3f404cca3456ec  gcc/cp
*** 5728,5735 ****
  4be7487ea09330ba02fb0695bc32c905  gcc/cp/mapper-resolver.cc
  54609938d396496c7c5bf3f4cbfddaec  gcc/cp/metafns.gperf
  04fe5bec0bf79fcb3680aec9913ebc29  gcc/cp/metafns.h
! db73ab5285dd3810cd91cb42aa475df5  gcc/cp/method.cc
! 690373d69d31ed7f49b9cdc063c8f309  gcc/cp/module.cc
  90e00cc732f785e5f72589239f04f596  gcc/cp/name-lookup.cc
  b166c2ce3d5ccd4de4e0c5910947ae41  gcc/cp/name-lookup.h
  b98d31c57aa038618db60991b17e0d35  gcc/cp/operators.def
--- 5728,5735 ----
  4be7487ea09330ba02fb0695bc32c905  gcc/cp/mapper-resolver.cc
  54609938d396496c7c5bf3f4cbfddaec  gcc/cp/metafns.gperf
  04fe5bec0bf79fcb3680aec9913ebc29  gcc/cp/metafns.h
! a3b349edf69f16f317d6111ba94d8a89  gcc/cp/method.cc
! 1da479953b14ac6ae18e6e0d00339a22  gcc/cp/module.cc
  90e00cc732f785e5f72589239f04f596  gcc/cp/name-lookup.cc
  b166c2ce3d5ccd4de4e0c5910947ae41  gcc/cp/name-lookup.h
  b98d31c57aa038618db60991b17e0d35  gcc/cp/operators.def
*************** a623e932155ebd343ebda5f7f54e7eb4  gcc/cp
*** 5738,5750 ****
  7973a34c47e3d3c580832655a3a5c3c2  gcc/cp/parser.h
  4410c287a91ef7a1513038254d1918d4  gcc/cp/pt.cc
  25322928eaff39cf167372554c639e02  gcc/cp/ptree.cc
! da74f57cd5fc80c21948148b9758bd11  gcc/cp/reflect.cc
  6ae3f1ff3ba804579da14445501f9181  gcc/cp/rtti.cc
  ed044462caa5bbab93e33fd297bc5d7c  gcc/cp/search.cc
! 3674a29587a15f07988d823cdf6945cf  gcc/cp/semantics.cc
  64c36b2ea66c9f8f477b19d24e06a2cb  gcc/cp/std-name-hint.gperf
  15cc409f13a8952feb90e94d99ecefa2  gcc/cp/std-name-hint.h
! 6ecdcfacb8bcbfefc43ac515e340651b  gcc/cp/tree.cc
  01e9a381e6fcf3d016d0170ee0ad71d7  gcc/cp/type-utils.h
  df4ddf4dc6c7bba71dd087265ece4ff7  gcc/cp/typeck.cc
  40eb09924b1139e6f7994869420c0c98  gcc/cp/typeck2.cc
--- 5738,5750 ----
  7973a34c47e3d3c580832655a3a5c3c2  gcc/cp/parser.h
  4410c287a91ef7a1513038254d1918d4  gcc/cp/pt.cc
  25322928eaff39cf167372554c639e02  gcc/cp/ptree.cc
! 576554b2faad7e50b2a9eaf9400ce372  gcc/cp/reflect.cc
  6ae3f1ff3ba804579da14445501f9181  gcc/cp/rtti.cc
  ed044462caa5bbab93e33fd297bc5d7c  gcc/cp/search.cc
! d26754421eef253a9b5a2bb8a277babb  gcc/cp/semantics.cc
  64c36b2ea66c9f8f477b19d24e06a2cb  gcc/cp/std-name-hint.gperf
  15cc409f13a8952feb90e94d99ecefa2  gcc/cp/std-name-hint.h
! 170e68fe35a2d8e6f4e3685a5fbba9cb  gcc/cp/tree.cc
  01e9a381e6fcf3d016d0170ee0ad71d7  gcc/cp/type-utils.h
  df4ddf4dc6c7bba71dd087265ece4ff7  gcc/cp/typeck.cc
  40eb09924b1139e6f7994869420c0c98  gcc/cp/typeck2.cc
*************** ee65c9e3e7c3fb1fd0128c23f4130e51  gcc/do
*** 6131,6137 ****
  301ed7e567732d1f0d5899a624068bdd  gcc/doc/cppinternals.texi
  421cc3b7d98386e0eb0abba4242dd54a  gcc/doc/cppopts.texi
  d8b2becdc7d9c570f256e19e1b1ac4f1  gcc/doc/cppwarnopts.texi
! 905779d9b11d60aafccab11fdc6d4475  gcc/doc/extend.texi
  483a7b956113f0370528460e842ff7b0  gcc/doc/fragments.texi
  7fb1e4199b2e70228fda69b8065d83c4  gcc/doc/frontends.texi
  66d5868616d429f3e34b575b3efc6ccc  gcc/doc/gcc.texi
--- 6131,6137 ----
  301ed7e567732d1f0d5899a624068bdd  gcc/doc/cppinternals.texi
  421cc3b7d98386e0eb0abba4242dd54a  gcc/doc/cppopts.texi
  d8b2becdc7d9c570f256e19e1b1ac4f1  gcc/doc/cppwarnopts.texi
! 250ecada82cf2c6a364ccf95098964f0  gcc/doc/extend.texi
  483a7b956113f0370528460e842ff7b0  gcc/doc/fragments.texi
  7fb1e4199b2e70228fda69b8065d83c4  gcc/doc/frontends.texi
  66d5868616d429f3e34b575b3efc6ccc  gcc/doc/gcc.texi
*************** dc4ccd9843d88bc01c909438dabfd6ab  gcc/do
*** 6146,6152 ****
  5f2ceccace2ed8e79100ae9c90d97753  gcc/doc/gty.texi
  16bc58e98e83e3a41c9417ad0738c650  gcc/doc/headerdirs.texi
  cb2462af7cefb9323958455da8bb29f8  gcc/doc/hostconfig.texi
! bde53a0a190c3a74b047eb2b53c080eb  gcc/doc/ifn.texi
  27f346799737382c572e0b085fa46374  gcc/doc/implement-c.texi
  750c860cd31bb47133ca5da76d82247d  gcc/doc/implement-cxx.texi
  8bed7c13f2521176c0f9f4f79c920551  gcc/doc/include/fdl.texi
--- 6146,6152 ----
  5f2ceccace2ed8e79100ae9c90d97753  gcc/doc/gty.texi
  16bc58e98e83e3a41c9417ad0738c650  gcc/doc/headerdirs.texi
  cb2462af7cefb9323958455da8bb29f8  gcc/doc/hostconfig.texi
! c34291177d871e1c1ab8e9ceb62e52ad  gcc/doc/ifn.texi
  27f346799737382c572e0b085fa46374  gcc/doc/implement-c.texi
  750c860cd31bb47133ca5da76d82247d  gcc/doc/implement-cxx.texi
  8bed7c13f2521176c0f9f4f79c920551  gcc/doc/include/fdl.texi
*************** e54937e427a2584ac4045286c725fab1  gcc/do
*** 6204,6211 ****
  88abde052db83cafaf5aaa6be0471613  gcc/doc/poly-int.texi
  213ccf5a355e5d07fc0dcef29825d6dd  gcc/doc/portability.texi
  1b0bb6e47b9321945dac2c2eb8b7c12b  gcc/doc/riscv-ext.texi
! 223ad6aa09ad7d9a5bdba4f529e06349  gcc/doc/riscv-mcpu.texi
! e5c04f2c02ba7e9b9b88758cda8b8da2  gcc/doc/riscv-mtune.texi
  ee1dc9bba1241ba6755d90ce32847e63  gcc/doc/rtl.texi
  b12261ad56bcabd07b4a1b739f271527  gcc/doc/service.texi
  608710da1e1e5372df976d0ec68d8035  gcc/doc/sourcebuild.texi
--- 6204,6211 ----
  88abde052db83cafaf5aaa6be0471613  gcc/doc/poly-int.texi
  213ccf5a355e5d07fc0dcef29825d6dd  gcc/doc/portability.texi
  1b0bb6e47b9321945dac2c2eb8b7c12b  gcc/doc/riscv-ext.texi
! 2d4ffd79938427c5ab83641203460665  gcc/doc/riscv-mcpu.texi
! f9e8c3f3f521ccb531572ed4189b13b6  gcc/doc/riscv-mtune.texi
  ee1dc9bba1241ba6755d90ce32847e63  gcc/doc/rtl.texi
  b12261ad56bcabd07b4a1b739f271527  gcc/doc/service.texi
  608710da1e1e5372df976d0ec68d8035  gcc/doc/sourcebuild.texi
*************** f80b38c70a85f9aeae9688b937b028ba  gcc/fi
*** 6271,6277 ****
  50b999b375e3a5a95a002f592e6d4514  gcc/fold-const.cc
  0ec02a37dbbe9cb267f0ea1263085ed3  gcc/fold-const.h
  a0df3d274ac009d203209a191738cec6  gcc/fold-mem-offsets.cc
! c66369717cb02b643e26294bbe78a032  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
! 92027a341231163b9910e126c2753f59  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
*************** ac7321680382b23989a6637e02dfb80e  gcc/fo
*** 6316,6322 ****
  17e7c9d20aa9003fd449b2da10b063a5  gcc/fortran/decl.cc
  92ac8b7c0f5e7976d4cd1297e9eb18c1  gcc/fortran/dependency.cc
  b66b99368e3cd17573ae64a38e36c1de  gcc/fortran/dependency.h
! e283736ab05f6a2dfaa58bd5bf0d27ce  gcc/fortran/dump-parse-tree.cc
  65aa25da09bdeee948cdad39cfc4d960  gcc/fortran/error.cc
  8b02343f75ef7cf3f9a4b9e0599abadc  gcc/fortran/expr.cc
  354927f6cb797cd538c0ab8ab0e552bb  gcc/fortran/f95-lang.cc
--- 6316,6322 ----
  17e7c9d20aa9003fd449b2da10b063a5  gcc/fortran/decl.cc
  92ac8b7c0f5e7976d4cd1297e9eb18c1  gcc/fortran/dependency.cc
  b66b99368e3cd17573ae64a38e36c1de  gcc/fortran/dependency.h
! 92eabba856b28ff0e94dd74e8655cfc1  gcc/fortran/dump-parse-tree.cc
  65aa25da09bdeee948cdad39cfc4d960  gcc/fortran/error.cc
  8b02343f75ef7cf3f9a4b9e0599abadc  gcc/fortran/expr.cc
  354927f6cb797cd538c0ab8ab0e552bb  gcc/fortran/f95-lang.cc
*************** cbdc87ddd4ad5837f1771e93f704a33e  gcc/fo
*** 6359,6371 ****
  4b2b2875fbf208dea82ae5e9aa96a2c1  gcc/fortran/symbol.cc
  4fa06f769be3f1b439a574ee842c82ca  gcc/fortran/target-memory.cc
  ea8837444e2a08a95a3ea747c94b8106  gcc/fortran/target-memory.h
! b6b7ef9764b7f6913a25e14e82ed1050  gcc/fortran/trans-array.cc
  a0c40b654df0b5c5213047d26e48e97a  gcc/fortran/trans-array.h
  5c567026f9fbc4fea9b59c22743687c4  gcc/fortran/trans-common.cc
  98960d7450a15e1ecc9789bd0bde16a7  gcc/fortran/trans-const.cc
  0d5cf4117521dba2aea9c8fd7ac67888  gcc/fortran/trans-const.h
  67daeb99f62e235f8a2fad457d4edddf  gcc/fortran/trans-decl.cc
! 7fabaf27cebada3e05f8522da9501205  gcc/fortran/trans-expr.cc
  de9776eb0040908b850cefeecd7a6f63  gcc/fortran/trans-intrinsic.cc
  269d2b121570a82898b133a3274071a7  gcc/fortran/trans-io.cc
  a7dd5c301725a5395b938c4328a5e0d3  gcc/fortran/trans-openmp.cc
--- 6359,6371 ----
  4b2b2875fbf208dea82ae5e9aa96a2c1  gcc/fortran/symbol.cc
  4fa06f769be3f1b439a574ee842c82ca  gcc/fortran/target-memory.cc
  ea8837444e2a08a95a3ea747c94b8106  gcc/fortran/target-memory.h
! 460fff2b0ca339433b581302c66aa736  gcc/fortran/trans-array.cc
  a0c40b654df0b5c5213047d26e48e97a  gcc/fortran/trans-array.h
  5c567026f9fbc4fea9b59c22743687c4  gcc/fortran/trans-common.cc
  98960d7450a15e1ecc9789bd0bde16a7  gcc/fortran/trans-const.cc
  0d5cf4117521dba2aea9c8fd7ac67888  gcc/fortran/trans-const.h
  67daeb99f62e235f8a2fad457d4edddf  gcc/fortran/trans-decl.cc
! a1229fa6a038d76d44a8b61348c8f7e0  gcc/fortran/trans-expr.cc
  de9776eb0040908b850cefeecd7a6f63  gcc/fortran/trans-intrinsic.cc
  269d2b121570a82898b133a3274071a7  gcc/fortran/trans-io.cc
  a7dd5c301725a5395b938c4328a5e0d3  gcc/fortran/trans-openmp.cc
*************** f24751f278bee1ac8dc861467d9f96a3  gcc/ta
*** 8726,8732 ****
  bf20a6542e361b29f15f9f2b47d47e2f  gcc/targhooks.cc
  b1068b0d3d77d5a55802a29a9f8a08d7  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 8ba10180b4d83ec4e0b5a45fd0008a52  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
! fa0e71f207d2a9b88870a261a3fe1061  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
*************** c9c401dee234950a35f6baa7697a4559  gcc/te
*** 29309,29314 ****
--- 29309,29316 ----
  4df914202d094298eb4ac77045f4eae2  gcc/testsuite/g++.dg/cpp2a/lambda-targ25.C
  d948ecca981f7c5de5ca48afc987ea36  gcc/testsuite/g++.dg/cpp2a/lambda-targ2a.C
  096118fef57f992a05319e3b6f8ba6a7  gcc/testsuite/g++.dg/cpp2a/lambda-targ3.C
+ 8897fc1f192d0bf595cbfac633150e95  gcc/testsuite/g++.dg/cpp2a/lambda-targ33.C
+ a91eacc6ac45340bd8e3cae62088b172  gcc/testsuite/g++.dg/cpp2a/lambda-targ34.C
  21c4749dcabd9a286db03db935f9cd86  gcc/testsuite/g++.dg/cpp2a/lambda-targ4.C
  1bdabd816102bfabb23374bf0d68c1c1  gcc/testsuite/g++.dg/cpp2a/lambda-targ5.C
  0c3e8d283c44c1ced955539b772c1c69  gcc/testsuite/g++.dg/cpp2a/lambda-targ6.C
*************** c78f774590fd68025c389ab4361f5714  gcc/te
*** 29465,29470 ****
--- 29467,29473 ----
  506f070d3467e5b0df571bcdbd69aad8  gcc/testsuite/g++.dg/cpp2a/nontype-class71.C
  4a2f2d8385e6b854507e3edd81bfde1e  gcc/testsuite/g++.dg/cpp2a/nontype-class72.C
  5026844e08700f623ba7b14a5b49f436  gcc/testsuite/g++.dg/cpp2a/nontype-class73.C
+ 8ba6c2ac06a8e542e052a9d8cf502646  gcc/testsuite/g++.dg/cpp2a/nontype-class74.C
  f0748d73651336110f1e32c48320d24e  gcc/testsuite/g++.dg/cpp2a/nontype-class75.C
  44a04e768668501da12fed78805a7d70  gcc/testsuite/g++.dg/cpp2a/nontype-class8.C
  bae1c36e9d9dcb762070154c47a6b3c3  gcc/testsuite/g++.dg/cpp2a/nontype-class9.C
*************** d975bcfcc66f10d16ed8c046fec4ba04  gcc/te
*** 33553,33559 ****
  314ee1208d31d73f6b8581612ceea903  gcc/testsuite/g++.dg/modules/adl-11_a.C
  d5e6364be38f2a4bd3ffc35aed9b8edd  gcc/testsuite/g++.dg/modules/adl-11_b.C
  098dcbc5ef632f9258da5c6fdbafb2ff  gcc/testsuite/g++.dg/modules/adl-12_a.C
! 3deaf8eb226b5b7cd4060737c498ff45  gcc/testsuite/g++.dg/modules/adl-12_b.C
  9c824c1a28f6bcf79fd72186d79fe93c  gcc/testsuite/g++.dg/modules/adl-1_a.C
  3bb31e23ac383185d41cda2c5fcbdaf3  gcc/testsuite/g++.dg/modules/adl-1_b.C
  46103f57f3287176308fc33634d7da8e  gcc/testsuite/g++.dg/modules/adl-1_c.C
--- 33556,33562 ----
  314ee1208d31d73f6b8581612ceea903  gcc/testsuite/g++.dg/modules/adl-11_a.C
  d5e6364be38f2a4bd3ffc35aed9b8edd  gcc/testsuite/g++.dg/modules/adl-11_b.C
  098dcbc5ef632f9258da5c6fdbafb2ff  gcc/testsuite/g++.dg/modules/adl-12_a.C
! e8d660897f929581199c7c069a83bc09  gcc/testsuite/g++.dg/modules/adl-12_b.C
  9c824c1a28f6bcf79fd72186d79fe93c  gcc/testsuite/g++.dg/modules/adl-1_a.C
  3bb31e23ac383185d41cda2c5fcbdaf3  gcc/testsuite/g++.dg/modules/adl-1_b.C
  46103f57f3287176308fc33634d7da8e  gcc/testsuite/g++.dg/modules/adl-1_c.C
*************** e5d48a6cbbf612860c500056802a4d9e  gcc/te
*** 33587,33592 ****
--- 33590,33598 ----
  654613de755592f8dd0461cb5d964619  gcc/testsuite/g++.dg/modules/alias-1_e.C
  ee26e1d91d2d28c7c7d21ab7516186d1  gcc/testsuite/g++.dg/modules/alias-1_f.C
  ef2bca1fe28aab857ad570bb97dfa565  gcc/testsuite/g++.dg/modules/alias-2_b.C
+ b10ad4025842e29dd24c0e314687fbee  gcc/testsuite/g++.dg/modules/alias-3_a.C
+ 6b72457b5059747d81059b8d784c9c36  gcc/testsuite/g++.dg/modules/alias-3_b.C
+ 3c9338bc26f9875b5700ea8f3026961e  gcc/testsuite/g++.dg/modules/alias-3_c.C
  fba23da3f9ec6a6b93d60f4ef252481e  gcc/testsuite/g++.dg/modules/align-type-1_a.C
  0f37e2e98366e55c9539dfead51cb028  gcc/testsuite/g++.dg/modules/align-type-1_b.C
  6e36c74fc6da256a9a69d602eaf80799  gcc/testsuite/g++.dg/modules/ambig-1_a.C
*************** cb62b6f411eaa0edabe6a10520d7652c  gcc/te
*** 37655,37660 ****
--- 37661,37667 ----
  7d931bd0fd71d114fa6a17dce607e802  gcc/testsuite/g++.dg/reflect/expr15.C
  f3f33f49043a48d1ae3edf4ed1f5e2f3  gcc/testsuite/g++.dg/reflect/expr16.C
  4febd7db9b876282dd12662957bcdf0c  gcc/testsuite/g++.dg/reflect/expr17.C
+ 60e714fc582583e18e913d4539696f8d  gcc/testsuite/g++.dg/reflect/expr18.C
  8a9b940805893540797936869da281d7  gcc/testsuite/g++.dg/reflect/expr2.C
  4b1fb75674597a85fb0234f3b45e8f9e  gcc/testsuite/g++.dg/reflect/expr3.C
  6db5cf1cb9ce8e043687a3df14680bc3  gcc/testsuite/g++.dg/reflect/expr4.C
*************** c44e1d6dfaecfb4f263c78b17ed1b8c7  gcc/te
*** 37844,37849 ****
--- 37851,37857 ----
  a2c5daff71c5cc0345db4bd0e912e669  gcc/testsuite/g++.dg/reflect/members_of13.C
  07a4631eea7fe0c6bdb296ca77c1d3a2  gcc/testsuite/g++.dg/reflect/members_of14.C
  6a2f357760584b04cfa1a4685abd70a0  gcc/testsuite/g++.dg/reflect/members_of15.C
+ 0b728e20e7f8de90f291700373ee27f7  gcc/testsuite/g++.dg/reflect/members_of16.C
  689453102e4425f8d2c4ff89cb939595  gcc/testsuite/g++.dg/reflect/members_of2.C
  80a032eb31d0998f2d288e303356773a  gcc/testsuite/g++.dg/reflect/members_of3.C
  5ececa99994de569abffae1671b71870  gcc/testsuite/g++.dg/reflect/members_of4.C
*************** a66e1dc9964c7702e9ecdb5be8553fb5  gcc/te
*** 38036,38041 ****
--- 38044,38050 ----
  9b33e0cb088a6815bc1f1c4cb74a8aa5  gcc/testsuite/g++.dg/reflect/type_trait12.C
  485cae337b48a98f34af212dc8b5ceb5  gcc/testsuite/g++.dg/reflect/type_trait13.C
  bc0bf40e9258e25c6c46ff13963f154e  gcc/testsuite/g++.dg/reflect/type_trait14.C
+ a83cc3892e30ad8d151bdc1664d00e8a  gcc/testsuite/g++.dg/reflect/type_trait15.C
  06a1343d9aeb1caa65048fdecda31245  gcc/testsuite/g++.dg/reflect/type_trait2.C
  c957460ae45089ece9b5352a7de1f5fc  gcc/testsuite/g++.dg/reflect/type_trait3.C
  6a48574284311a70358d27e1b45595b3  gcc/testsuite/g++.dg/reflect/type_trait4.C
*************** f36d3df10de7d616fdeaf6bd08060535  gcc/te
*** 41014,41019 ****
--- 41023,41029 ----
  dcd9726dc8b4e6083387751cc9d6254d  gcc/testsuite/g++.dg/ubsan/vptr-16.C
  7e7bbb42c768722416820e592f65ca97  gcc/testsuite/g++.dg/ubsan/vptr-17.C
  1968a8f982e5990a850fcae723fa33cc  gcc/testsuite/g++.dg/ubsan/vptr-18.C
+ e6e764403c85bf8db61424fee57410bc  gcc/testsuite/g++.dg/ubsan/vptr-19.C
  cef046f562c0a23eb331cea94cd5b44f  gcc/testsuite/g++.dg/ubsan/vptr-2.C
  729147822cd9bf5bf718456c1dbff28d  gcc/testsuite/g++.dg/ubsan/vptr-3.C
  c56c0a2d56d1483bfcbff6562ca6a84a  gcc/testsuite/g++.dg/ubsan/vptr-4.C
*************** aeb341ec372b4ad17f7d946f744a6d78  gcc/te
*** 92584,92589 ****
--- 92594,92600 ----
  192f3b1fb9a6904f97a6c55cb3648351  gcc/testsuite/gcc.target/i386/preserve-none-7.c
  46ee3b21d6fbb4874e2cc387dc76894f  gcc/testsuite/gcc.target/i386/preserve-none-8.c
  dbaa3ccce2e7bd8e259f97b2d272cf9c  gcc/testsuite/gcc.target/i386/preserve-none-9.c
+ 0a07ad1959a1b8b5b90dfd47f4cdd1db  gcc/testsuite/gcc.target/i386/prfchw-Wcast-qual-1.c
  4561455bd0f6ca8ce0b0f477f2897ee2  gcc/testsuite/gcc.target/i386/ptwrite1.c
  90a00e0f61849345a274cd1b4f96c029  gcc/testsuite/gcc.target/i386/ptwrite2.c
  1c20da95e9e947694dd009c5a701a628  gcc/testsuite/gcc.target/i386/quad-sse.c
*************** b26d289b049a7ec0f9c609e457ff9d92  gcc/te
*** 95842,95847 ****
--- 95853,95865 ----
  702fff490ab3a8d9a47f188cff688e7c  gcc/testsuite/gcc.target/powerpc/altivec_vld_vst_addr-2.c
  ed343c63973b66c0e986170ee496a1bd  gcc/testsuite/gcc.target/powerpc/amo1.c
  523510347699205aba59cb836c38573b  gcc/testsuite/gcc.target/powerpc/amo2.c
+ d03dd931aa8e5dbd17e37ae33d9e3a99  gcc/testsuite/gcc.target/powerpc/amo3.c
+ 2ac88062aeb8265673fe43586beb0ec2  gcc/testsuite/gcc.target/powerpc/amo4.c
+ 3451ae43cce0fb6c42cdb403ba6bd949  gcc/testsuite/gcc.target/powerpc/amo5.c
+ 190f865d5df3758c51189d9bbd731026  gcc/testsuite/gcc.target/powerpc/amo6.c
+ 6566dd501fb781aab01889cda5d1db4c  gcc/testsuite/gcc.target/powerpc/amo7.c
+ 92ab07921a22d880623704978c36c37c  gcc/testsuite/gcc.target/powerpc/amo8.c
+ 3aed12a81bb695500fa7463d4c392608  gcc/testsuite/gcc.target/powerpc/amo9.c
  f92704c5f7f462e7f0b0f7a56209b9c1  gcc/testsuite/gcc.target/powerpc/asm-es-1.c
  ab233b59d18c7aa71a26292124ceae27  gcc/testsuite/gcc.target/powerpc/asm-es-2.c
  6ab0c2c5c17e69db0ab917861a4fc5cc  gcc/testsuite/gcc.target/powerpc/asm-hard-reg-1.c
*************** b628655d5e6da478a0338b6a99c2b547  gcc/te
*** 96972,96977 ****
--- 96990,96997 ----
  7ec712d12c713ee380709b1ec03b395d  gcc/testsuite/gcc.target/powerpc/pr106769-p9.c
  0963f14ccd4877c21a47d1a3bd7eb59e  gcc/testsuite/gcc.target/powerpc/pr106769.h
  cc371da54f8baaffe7810cf7f4a388f7  gcc/testsuite/gcc.target/powerpc/pr106833.c
+ 439dfed057478eb39589fad7adcaa1d7  gcc/testsuite/gcc.target/powerpc/pr106895-1.c
+ 4c3b06b36d8622937b64d64259da54f6  gcc/testsuite/gcc.target/powerpc/pr106895-2.c
  c7290ae4c5b6c919339124b4be070eb8  gcc/testsuite/gcc.target/powerpc/pr107412.c
  cf6fc6f2cd4ce40de4bfcae2384bc88d  gcc/testsuite/gcc.target/powerpc/pr108272-1.c
  f50d5d85d2fd6cdb2c24ba2f99c5ed50  gcc/testsuite/gcc.target/powerpc/pr108272-2.c
*************** c10f8db5df2b65c9fba341cccb30fe9c  gcc/te
*** 100542,100547 ****
--- 100562,100569 ----
  081d884e59fdb4543c2fe6b2860dada3  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr123925.c
  7d8cbc2b37ba78b4c9e24546d49e35a9  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr123940.c
  7efbbc8153da873eb1b0fe1ac3321b7e  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr125215.c
+ 455f4d6d561c03a39a904e17bbb00820  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr125478.c
+ cfd8a75e04799147b00e32b4c36ce0e7  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr125670.c
  ee8bcba5f6876f2027f0f263f81465aa  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last-1.c
  7ff884bfa2e6cf9bc4c6172466538515  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last-10.c
  b2792e9264dcd6fa2e88f495d51677e6  gcc/testsuite/gcc.target/riscv/rvv/autovec/reduc/extract_last-11.c
*************** ddd06bb7aa032539e1d7f788e2ddb31f  gcc/te
*** 105784,105789 ****
--- 105806,105812 ----
  8e924805f1a0bbe1a1a2871be67a0970  gcc/testsuite/gcc.target/s390/pr119873-4.c
  c5b09d072962be55a3b282895afe41d6  gcc/testsuite/gcc.target/s390/pr119873-5.c
  d49455031d1c0b8c6740f90cf831720a  gcc/testsuite/gcc.target/s390/pr124079.c
+ 86e19acef61e2b484623df454673168e  gcc/testsuite/gcc.target/s390/pr125992.c
  765307a040de72f2f4376b7068d68018  gcc/testsuite/gcc.target/s390/pr20927.c
  85f31fb9b4b15529205376d3f6fa385c  gcc/testsuite/gcc.target/s390/pr24624.c
  7adacbd67601dc0845e556e5632cd718  gcc/testsuite/gcc.target/s390/pr27661.c
*************** bc053b737dfa9b94047dc769c31f6a67  gcc/te
*** 112486,112491 ****
--- 112509,112515 ----
  cbd03f59c658425aa443e870f7904e76  gcc/testsuite/gfortran.dg/asan/asan.exp
  3b8425a2f59699b47aac6da29c11aba9  gcc/testsuite/gfortran.dg/asan/associate_58.f90
  e9f58df1de071d2b106b16b3af8f6764  gcc/testsuite/gfortran.dg/asan/associate_59.f90
+ f3a2f2d532dfb58980122e4734146c0d  gcc/testsuite/gfortran.dg/asan/assumed_rank_26.f90
  32f63bfc5a1fd9dda988b63c860b03bd  gcc/testsuite/gfortran.dg/asan/finalize_1.f90
  4cd8fda64b6eb93b45b8eb2694e85b22  gcc/testsuite/gfortran.dg/asan/implied_do_alloc_comp_leak_1.f90
  66de6cb3bf07d14487491fac7d1ee72f  gcc/testsuite/gfortran.dg/asan/pointer_assign_16.f90
*************** ab1680fba79a3e8495b3b46064f1a59f  gcc/te
*** 113228,113233 ****
--- 113252,113259 ----
  8c7f6dde1eea44cf8af5e581897328fa  gcc/testsuite/gfortran.dg/c-interop/ubound-bindc.f90
  137d881d0a8857a78cdb9126e2217371  gcc/testsuite/gfortran.dg/c-interop/ubound-poly.f90
  37ab8568bd215c1d33b0c69042924b38  gcc/testsuite/gfortran.dg/c-interop/ubound.f90
+ 99fff7184577ed79359139f978263ef7  gcc/testsuite/gfortran.dg/c-prototypes_1.F90
+ 026b67e86fde91d40eba8cecaa285500  gcc/testsuite/gfortran.dg/c-prototypes_2.F90
  1b401bdae1b8b765397b10aa78d39feb  gcc/testsuite/gfortran.dg/c_assoc.f90
  836175653a8d0cef54e1b053f6226dfa  gcc/testsuite/gfortran.dg/c_assoc_2.f03
  0c01f4864b877d36b3d6e539f521f58b  gcc/testsuite/gfortran.dg/c_assoc_3.f90
*************** de9eeadec9703aff96169206e31a3a22  gcc/te
*** 128244,128250 ****
  275f7eb9618e6b097a58c1fba25cdb9c  gcc/testsuite/lib/scanwpaipa.exp
  9bc4cbcf0cb4f1aa30a8cf3142d157eb  gcc/testsuite/lib/target-libpath.exp
  6f6a566231f79b409eb113cf2e7f5132  gcc/testsuite/lib/target-supports-dg.exp
! 9f1789763d5a170fe966d2fc22b021d5  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
--- 128270,128276 ----
  275f7eb9618e6b097a58c1fba25cdb9c  gcc/testsuite/lib/scanwpaipa.exp
  9bc4cbcf0cb4f1aa30a8cf3142d157eb  gcc/testsuite/lib/target-libpath.exp
  6f6a566231f79b409eb113cf2e7f5132  gcc/testsuite/lib/target-supports-dg.exp
! bc501c0cd1b56f167be7f2ca7329a568  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
*************** a73d560a3ba317c5ad0a7919d87b4b6d  libssp
*** 145929,145935 ****
  7d75fa0d30318408fe4cd91d9cbe3ac7  libssp/vsnprintf-chk.c
  e9ff0f4bdd1be75a507480ed1267459d  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! cceca80a403fd87523ee81b78bad149d  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 145955,145961 ----
  7d75fa0d30318408fe4cd91d9cbe3ac7  libssp/vsnprintf-chk.c
  e9ff0f4bdd1be75a507480ed1267459d  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! 9da740139c12a3ba1f66d7e36fa8b800  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
*************** f3a54a6315d716742603d33f454f2c19  libstd
*** 146276,146282 ****
  f66b4b01119c005cf471450613fc105b  libstdc++-v3/doc/html/manual/containers_and_c.html
  5905f8be24ae69bb804c3d5a6a4abf7d  libstdc++-v3/doc/html/manual/debug.html
  1bd34529d162b6f3a08d5f2ea4943c6a  libstdc++-v3/doc/html/manual/debug_mode.html
! 90b457b0d4240ee5b826a815bcd90912  libstdc++-v3/doc/html/manual/debug_mode_design.html
  397ce9357678670b7c451c92eab7cb57  libstdc++-v3/doc/html/manual/debug_mode_semantics.html
  1fe03067a558eb3fd4b3a8c1337db0d1  libstdc++-v3/doc/html/manual/debug_mode_using.html
  ac31629383ea02b6f9d9689f5dd5494c  libstdc++-v3/doc/html/manual/diagnostics.html
--- 146302,146308 ----
  f66b4b01119c005cf471450613fc105b  libstdc++-v3/doc/html/manual/containers_and_c.html
  5905f8be24ae69bb804c3d5a6a4abf7d  libstdc++-v3/doc/html/manual/debug.html
  1bd34529d162b6f3a08d5f2ea4943c6a  libstdc++-v3/doc/html/manual/debug_mode.html
! b58c9f1877e0fad06fcb855c15431dfc  libstdc++-v3/doc/html/manual/debug_mode_design.html
  397ce9357678670b7c451c92eab7cb57  libstdc++-v3/doc/html/manual/debug_mode_semantics.html
  1fe03067a558eb3fd4b3a8c1337db0d1  libstdc++-v3/doc/html/manual/debug_mode_using.html
  ac31629383ea02b6f9d9689f5dd5494c  libstdc++-v3/doc/html/manual/diagnostics.html
*************** af3361d0d0af961859ec0346c38ac8c8  libstd
*** 146554,146560 ****
  8fb8db51febba73cfb5456272d1dcb7a  libstdc++-v3/doc/xml/manual/containers.xml
  d08c687d9520b2f9d8dd6d973cca9e6a  libstdc++-v3/doc/xml/manual/ctype.xml
  0423695ef5d72eb026dfccb3b68e16ac  libstdc++-v3/doc/xml/manual/debug.xml
! a972c915c47573572139ea9161dec244  libstdc++-v3/doc/xml/manual/debug_mode.xml
  90361f264f5edc899c47c155c4106f24  libstdc++-v3/doc/xml/manual/diagnostics.xml
  3680906036c20b1ccc54e2d06b5a3a24  libstdc++-v3/doc/xml/manual/documentation_hacking.xml
  a428ca9e1e1a450b765156e74924d806  libstdc++-v3/doc/xml/manual/evolution.xml
--- 146580,146586 ----
  8fb8db51febba73cfb5456272d1dcb7a  libstdc++-v3/doc/xml/manual/containers.xml
  d08c687d9520b2f9d8dd6d973cca9e6a  libstdc++-v3/doc/xml/manual/ctype.xml
  0423695ef5d72eb026dfccb3b68e16ac  libstdc++-v3/doc/xml/manual/debug.xml
! f23396d370a73693fc3a9b59b5cff3ef  libstdc++-v3/doc/xml/manual/debug_mode.xml
  90361f264f5edc899c47c155c4106f24  libstdc++-v3/doc/xml/manual/diagnostics.xml
  3680906036c20b1ccc54e2d06b5a3a24  libstdc++-v3/doc/xml/manual/documentation_hacking.xml
  a428ca9e1e1a450b765156e74924d806  libstdc++-v3/doc/xml/manual/evolution.xml
*************** abf1c74de0fb52f696034bd48432d075  libstd
*** 146622,146628 ****
  34446381e4c4746a62681665aebf236a  libstdc++-v3/include/bits/c++config
  5cbbd0fafb904f86c9ddce3fc54380f1  libstdc++-v3/include/bits/char_traits.h
  9a3227d14b324832ae22b4c7ec6979e2  libstdc++-v3/include/bits/charconv.h
! 3805f7d806c699a7daa19e8ad048c2cf  libstdc++-v3/include/bits/chrono.h
  9c32c72531ca78037c316602cefb201b  libstdc++-v3/include/bits/chrono_io.h
  1f26067336c4957237db887ab1ce6b55  libstdc++-v3/include/bits/codecvt.h
  53f7e45e350f1bb99b3d67e27f914b61  libstdc++-v3/include/bits/concept_check.h
--- 146648,146654 ----
  34446381e4c4746a62681665aebf236a  libstdc++-v3/include/bits/c++config
  5cbbd0fafb904f86c9ddce3fc54380f1  libstdc++-v3/include/bits/char_traits.h
  9a3227d14b324832ae22b4c7ec6979e2  libstdc++-v3/include/bits/charconv.h
! cbdafb6161aa6c30e8a276ad56c5cfac  libstdc++-v3/include/bits/chrono.h
  9c32c72531ca78037c316602cefb201b  libstdc++-v3/include/bits/chrono_io.h
  1f26067336c4957237db887ab1ce6b55  libstdc++-v3/include/bits/codecvt.h
  53f7e45e350f1bb99b3d67e27f914b61  libstdc++-v3/include/bits/concept_check.h
*************** f053b22f5819f7ed1f6ed5ffe14dc5a3  libstd
*** 146641,146650 ****
  3ef9bc83cb8c079eb15ebfb1a50ab14b  libstdc++-v3/include/bits/fs_ops.h
  7fe100acd8acdc1ac9bb10e1dadb50b8  libstdc++-v3/include/bits/fs_path.h
  c2f893fbd3fb2e778cc648a1e309d2f5  libstdc++-v3/include/bits/fstream.tcc
! 9547508e00b1750d4db06a7bc8f112bd  libstdc++-v3/include/bits/funcref_impl.h
  e77032281bd301430e499d5bb46db4a1  libstdc++-v3/include/bits/functexcept.h
  31bdc727f2eaf8eda1ab45fb88577c00  libstdc++-v3/include/bits/functional_hash.h
! 2d704693130242bf3c1c9fbf9bfa98cf  libstdc++-v3/include/bits/funcwrap.h
  a437a10ba7525a3935bec765a5604a4f  libstdc++-v3/include/bits/gslice.h
  39aca2727a08f07f0043ee164eaa09a4  libstdc++-v3/include/bits/gslice_array.h
  4fb739d7e430219a766af6d620d6b853  libstdc++-v3/include/bits/hashtable.h
--- 146667,146676 ----
  3ef9bc83cb8c079eb15ebfb1a50ab14b  libstdc++-v3/include/bits/fs_ops.h
  7fe100acd8acdc1ac9bb10e1dadb50b8  libstdc++-v3/include/bits/fs_path.h
  c2f893fbd3fb2e778cc648a1e309d2f5  libstdc++-v3/include/bits/fstream.tcc
! 2bde87af758c9c99f635a312ac1eb796  libstdc++-v3/include/bits/funcref_impl.h
  e77032281bd301430e499d5bb46db4a1  libstdc++-v3/include/bits/functexcept.h
  31bdc727f2eaf8eda1ab45fb88577c00  libstdc++-v3/include/bits/functional_hash.h
! 0da56f7596c6ef2e7ad5527eced85a04  libstdc++-v3/include/bits/funcwrap.h
  a437a10ba7525a3935bec765a5604a4f  libstdc++-v3/include/bits/gslice.h
  39aca2727a08f07f0043ee164eaa09a4  libstdc++-v3/include/bits/gslice_array.h
  4fb739d7e430219a766af6d620d6b853  libstdc++-v3/include/bits/hashtable.h
*************** f69aa477afbbb88f2ee81c3b9aa8d777  libstd
*** 146667,146673 ****
  ba88833f52a0518e73f3f865cd474fcd  libstdc++-v3/include/bits/localefwd.h
  7d421045a2c29aed04d8138049f30a0f  libstdc++-v3/include/bits/mask_array.h
  3acac12c52dd020e88e494e9005a4e9f  libstdc++-v3/include/bits/max_size_type.h
! 132af6fa95001b1f22942660000c3734  libstdc++-v3/include/bits/memory_resource.h
  d8251691b710967c63f24ecf3e8cad75  libstdc++-v3/include/bits/memoryfwd.h
  3cdf6345e89c49a55bd7c9be035d3729  libstdc++-v3/include/bits/mofunc_impl.h
  4169d644c2ef24f0668b2a257a0a5e54  libstdc++-v3/include/bits/monostate.h
--- 146693,146699 ----
  ba88833f52a0518e73f3f865cd474fcd  libstdc++-v3/include/bits/localefwd.h
  7d421045a2c29aed04d8138049f30a0f  libstdc++-v3/include/bits/mask_array.h
  3acac12c52dd020e88e494e9005a4e9f  libstdc++-v3/include/bits/max_size_type.h
! c2a37a4d261aa6aa543de47ce2a11603  libstdc++-v3/include/bits/memory_resource.h
  d8251691b710967c63f24ecf3e8cad75  libstdc++-v3/include/bits/memoryfwd.h
  3cdf6345e89c49a55bd7c9be035d3729  libstdc++-v3/include/bits/mofunc_impl.h
  4169d644c2ef24f0668b2a257a0a5e54  libstdc++-v3/include/bits/monostate.h
*************** b1052f564f9839906c0d1f1f7a3296ea  libstd
*** 146777,146791 ****
  3e95bc3dafd1a579438226ba448f80e4  libstdc++-v3/include/bits/unordered_set.h
  4fbbeaf99e17abfaf62cec53ac3c9193  libstdc++-v3/include/bits/uses_allocator.h
  9d01cfbd90824dde5e36d65c0c160ad5  libstdc++-v3/include/bits/uses_allocator_args.h
! 6c46656b0e1510bafbc3560eb85608e0  libstdc++-v3/include/bits/utility.h
  3c8c91dc88f2ee1e4b68dcc3f3aaa5e5  libstdc++-v3/include/bits/valarray_after.h
  d1cf5a35c4ad3820cb023d8f84762cc7  libstdc++-v3/include/bits/valarray_array.h
  ddd4bdc2fa29f8f2aa3386cead9ebcb2  libstdc++-v3/include/bits/valarray_array.tcc
  16c6db3f5b1e7b3e37c3febbf4dc4e8c  libstdc++-v3/include/bits/valarray_before.h
  682dec8d9b388681bc1f171ba0c5590e  libstdc++-v3/include/bits/vec_ops.h
  5a7dd3eca21d4650e654ea51da466c59  libstdc++-v3/include/bits/vector.tcc
! 5a5dd0ed823659996e4360c6c38fb907  libstdc++-v3/include/bits/version.def
! 0d79b109350695d124c0055425622d50  libstdc++-v3/include/bits/version.h
  f92789aa59d1ed5207e13c936667059d  libstdc++-v3/include/bits/version.tpl
  d99b1b69e5f87e5a631c8a881d053766  libstdc++-v3/include/c/cassert
  7f5b12607c4d7cbbcf705b672613447b  libstdc++-v3/include/c/cctype
--- 146803,146817 ----
  3e95bc3dafd1a579438226ba448f80e4  libstdc++-v3/include/bits/unordered_set.h
  4fbbeaf99e17abfaf62cec53ac3c9193  libstdc++-v3/include/bits/uses_allocator.h
  9d01cfbd90824dde5e36d65c0c160ad5  libstdc++-v3/include/bits/uses_allocator_args.h
! 84ada8040a2804613f2e65cf79127295  libstdc++-v3/include/bits/utility.h
  3c8c91dc88f2ee1e4b68dcc3f3aaa5e5  libstdc++-v3/include/bits/valarray_after.h
  d1cf5a35c4ad3820cb023d8f84762cc7  libstdc++-v3/include/bits/valarray_array.h
  ddd4bdc2fa29f8f2aa3386cead9ebcb2  libstdc++-v3/include/bits/valarray_array.tcc
  16c6db3f5b1e7b3e37c3febbf4dc4e8c  libstdc++-v3/include/bits/valarray_before.h
  682dec8d9b388681bc1f171ba0c5590e  libstdc++-v3/include/bits/vec_ops.h
  5a7dd3eca21d4650e654ea51da466c59  libstdc++-v3/include/bits/vector.tcc
! abac927b8807fe390d74e01b430dd2c6  libstdc++-v3/include/bits/version.def
! bf44ce3d4d35c1e5a26060498f27e77a  libstdc++-v3/include/bits/version.h
  f92789aa59d1ed5207e13c936667059d  libstdc++-v3/include/bits/version.tpl
  d99b1b69e5f87e5a631c8a881d053766  libstdc++-v3/include/c/cassert
  7f5b12607c4d7cbbcf705b672613447b  libstdc++-v3/include/c/cctype
*************** be169e901166777d5be3e557682b7af2  libstd
*** 147371,147377 ****
  2f3eb4865a149d33afc45095dfd51d15  libstdc++-v3/include/std/list
  979d756bd9149a01a697b92c921e75a0  libstdc++-v3/include/std/locale
  b9368104d884bddd988db2b9e69ab485  libstdc++-v3/include/std/map
! dffffd1ba6b41132b330ab33dabc080e  libstdc++-v3/include/std/mdspan
  5439ce157f7c11ab4eddd8c04799fea4  libstdc++-v3/include/std/memory
  ea0d67f29f1a73f1ccdade0115646a1c  libstdc++-v3/include/std/memory_resource
  567571e5d45a92d724eb13976d8d825d  libstdc++-v3/include/std/meta
--- 147397,147403 ----
  2f3eb4865a149d33afc45095dfd51d15  libstdc++-v3/include/std/list
  979d756bd9149a01a697b92c921e75a0  libstdc++-v3/include/std/locale
  b9368104d884bddd988db2b9e69ab485  libstdc++-v3/include/std/map
! 1a1dcf610fe6b8ddf11481fa6138a628  libstdc++-v3/include/std/mdspan
  5439ce157f7c11ab4eddd8c04799fea4  libstdc++-v3/include/std/memory
  ea0d67f29f1a73f1ccdade0115646a1c  libstdc++-v3/include/std/memory_resource
  567571e5d45a92d724eb13976d8d825d  libstdc++-v3/include/std/meta
*************** c2bd27af25e57adce5807e0f01a2d0dc  libstd
*** 147718,147725 ****
  0dfa4a770289b4e926b8281770732d5a  libstdc++-v3/src/c++20/tzdata.zi
  d73167acef44648f9b3bbfe18e4d1b8b  libstdc++-v3/src/c++20/tzdb.cc
  ac7b7a080d5f7aa8fe6a26188631fc18  libstdc++-v3/src/c++20/windows_zones-map.h
! 7c8cb4e8c454557197d2d63ced1992bb  libstdc++-v3/src/c++23/Makefile.am
! b00f9570f9f027f375c731351ae64403  libstdc++-v3/src/c++23/Makefile.in
  3c95970ad4fd23117b63a99dd3241ebe  libstdc++-v3/src/c++23/libstdc++.modules.json.in
  9d2dc72c1a96e4af02d5f86278cb705b  libstdc++-v3/src/c++23/print.cc
  15f6b28b71ad24bc5b6d33c21048e59a  libstdc++-v3/src/c++23/stacktrace.cc
--- 147744,147751 ----
  0dfa4a770289b4e926b8281770732d5a  libstdc++-v3/src/c++20/tzdata.zi
  d73167acef44648f9b3bbfe18e4d1b8b  libstdc++-v3/src/c++20/tzdb.cc
  ac7b7a080d5f7aa8fe6a26188631fc18  libstdc++-v3/src/c++20/windows_zones-map.h
! 863fc49f52a3a3665416a7c88fc4f3e7  libstdc++-v3/src/c++23/Makefile.am
! 0d7332606e5b7973ac0d4398f18cfd17  libstdc++-v3/src/c++23/Makefile.in
  3c95970ad4fd23117b63a99dd3241ebe  libstdc++-v3/src/c++23/libstdc++.modules.json.in
  9d2dc72c1a96e4af02d5f86278cb705b  libstdc++-v3/src/c++23/print.cc
  15f6b28b71ad24bc5b6d33c21048e59a  libstdc++-v3/src/c++23/stacktrace.cc
*************** c5c26a31e7b679312f2784a6392935ea  libstd
*** 148286,148295 ****
  e133eccc1a4734a3ac88d1a656706378  libstdc++-v3/testsuite/20_util/conditional/requirements/typedefs.cc
  95bad06156644b850b0d0628cde39ee6  libstdc++-v3/testsuite/20_util/constant_wrapper/adl.cc
  f4c5fb9b9eef76cf55a1f3d4e0727f82  libstdc++-v3/testsuite/20_util/constant_wrapper/ex.cc
! 7355d91818a4103ae0d02ed116ca8469  libstdc++-v3/testsuite/20_util/constant_wrapper/generic.cc
  f6c5689f1a0dfdba8a8ba54d684306c4  libstdc++-v3/testsuite/20_util/constant_wrapper/instantiate.cc
  f132f2bcc484293fa32563cb7cdab8f9  libstdc++-v3/testsuite/20_util/constant_wrapper/op_comma_neg.cc
! 33f234999aa59db9cbf70db59b5481c4  libstdc++-v3/testsuite/20_util/constant_wrapper/other_wrappers.cc
  40b819222eee937a9063c9e962829b5f  libstdc++-v3/testsuite/20_util/constant_wrapper/version.cc
  404eb18749ec930755e24ae928ae99ee  libstdc++-v3/testsuite/20_util/copyable_function/call.cc
  09520df3df90b586a3cb13556948faa3  libstdc++-v3/testsuite/20_util/copyable_function/cons.cc
--- 148312,148322 ----
  e133eccc1a4734a3ac88d1a656706378  libstdc++-v3/testsuite/20_util/conditional/requirements/typedefs.cc
  95bad06156644b850b0d0628cde39ee6  libstdc++-v3/testsuite/20_util/constant_wrapper/adl.cc
  f4c5fb9b9eef76cf55a1f3d4e0727f82  libstdc++-v3/testsuite/20_util/constant_wrapper/ex.cc
! 037b7b5fd56bdbde848ba3c9608079d7  libstdc++-v3/testsuite/20_util/constant_wrapper/generic.cc
  f6c5689f1a0dfdba8a8ba54d684306c4  libstdc++-v3/testsuite/20_util/constant_wrapper/instantiate.cc
  f132f2bcc484293fa32563cb7cdab8f9  libstdc++-v3/testsuite/20_util/constant_wrapper/op_comma_neg.cc
! 6d50979bcc332cceb4a8fd4193864265  libstdc++-v3/testsuite/20_util/constant_wrapper/other_wrappers.cc
! e4cab1c509061008841126983273bd20  libstdc++-v3/testsuite/20_util/constant_wrapper/type_param_neg.cc
  40b819222eee937a9063c9e962829b5f  libstdc++-v3/testsuite/20_util/constant_wrapper/version.cc
  404eb18749ec930755e24ae928ae99ee  libstdc++-v3/testsuite/20_util/copyable_function/call.cc
  09520df3df90b586a3cb13556948faa3  libstdc++-v3/testsuite/20_util/copyable_function/cons.cc
*************** df7be4683e3a26a290854738516c5111  libstd
*** 149109,149114 ****
--- 149136,149142 ----
  73a667577bedc64786c6f5d7f6a5b955  libstdc++-v3/testsuite/20_util/pointer_traits/requirements/typedefs.cc
  3d4d1cdd09a11b7a212ba28fd15c2f0e  libstdc++-v3/testsuite/20_util/polymorphic_allocator/1.cc
  921ab22ad1c8b959803b45c60c3e92b5  libstdc++-v3/testsuite/20_util/polymorphic_allocator/allocate_object.cc
+ c1b1eaeee3bc0da509305f299c2de1f2  libstdc++-v3/testsuite/20_util/polymorphic_allocator/at_least.cc
  157477fb697b0e84f4f36c4449264c45  libstdc++-v3/testsuite/20_util/polymorphic_allocator/construct_c++2a.cc
  b26d23b5080d9f7b8062a627e6d9d355  libstdc++-v3/testsuite/20_util/polymorphic_allocator/construct_pair.cc
  6226f7e617116802ee9168dcfe8d3905  libstdc++-v3/testsuite/20_util/polymorphic_allocator/lwg3237.cc
diff -Nrcpad gcc-16-20260620/gcc/ChangeLog gcc-16-20260627/gcc/ChangeLog
*** gcc-16-20260620/gcc/ChangeLog	Sat Jun 20 22:32:04 2026
--- gcc-16-20260627/gcc/ChangeLog	Sat Jun 27 22:32:04 2026
***************
*** 1,3 ****
--- 1,131 ----
+ 2026-06-25  Peter Bergner  <bergner@tenstorrent.com>
+ 
+ 	* config/riscv/riscv-cores.def (RISCV_TUNE): Add tt-ascalon-x.
+ 	(RISCV_CORE): Likewise.
+ 	* doc/riscv-mcpu.texi: Regenerate.
+ 	* doc/riscv-mtune.texi: Likewise.
+ 
+ 2026-06-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-06-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/125977
+ 	* cfgexpand.cc (pass_expand::execute): Guard ranger use
+ 	on optimize.
+ 
+ 2026-06-25  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	Backported from master:
+ 	2026-06-25  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/125628
+ 	* config/mips/sync.md (sync_old_<optab><mode>): Fix
+ 	uninitialized operand use.
+ 	(sync_new_<optab><mode>): Fix uninitialized operand use, use the
+ 	same expression for the set source of operand 0 and 1.
+ 
+ 2026-06-25  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	* config/riscv/arch-canonicalize: Avoid f"..." strings.
+ 
+ 2026-06-25  Oleg Tolmatcev  <oleg.tolmatcev@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-06-24  Oleg Tolmatcev  <oleg.tolmatcev@gmail.com>
+ 
+ 	* config/i386/prfchwintrin.h (_m_prefetchw): Take
+ 	volatile const void * instead of void *.
+ 
+ 2026-06-24  Jan Beulich  <jbeulich@suse.com>
+ 
+ 	* doc/ifn.texi: Drop blanks after @code.
+ 
+ 2026-06-23  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	Revert:
+ 	2026-06-09  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/mips/sync.md (sync_old_<optab><mode>): Fix
+ 	uninitialized operand use.
+ 	(sync_new_<optab><mode>): Fix uninitialized operand use, use the
+ 	same expression for the set source of operand 0 and 1.
+ 
+ 2026-06-22  Robin Dapp  <rdapp.gcc@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-06-17  Robin Dapp  <rdapp.gcc@gmail.com>
+ 
+ 	PR target/125478
+ 	* config/riscv/vector.md: Set widen-alu mode_idx to 3.
+ 
+ 2026-06-22  Jeevitha  <jeevitha@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2026-06-09  Jeevitha Palanisamy  <jeevitha@linux.ibm.com>
+ 
+ 	* config/rs6000/amo.h (_AMO_LD): Add _AMO_LD_CS_EQ enumerator, gated on
+ 	_ARCH_FUTURE.
+ 	(amo_lwat_cas_eq, amo_lwat_scas_eq, amo_ldat_cas_eq,
+ 	amo_ldat_scas_eq): New compare-and-swap equal helper functions.
+ 	(_AMO_ERR_CMPSWP): New macro for error-attribute stubs on non-Future
+ 	targets.
+ 	* doc/extend.texi (PowerPC Atomic Memory Operation Functions): Document
+ 	new functions.
+ 
+ 2026-06-22  Jeevitha  <jeevitha@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2026-06-04  Jeevitha Palanisamy  <jeevitha@linux.ibm.com>
+ 
+ 	PR target/106895
+ 	* config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Add
+ 	RS6000_BTI_INTPTI and RS6000_BTI_UINTPTI.
+ 	(intPTI_type_internal_node, uintPTI_type_internal_node): New
+ 	PTImode type macros.
+ 	* config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Register
+ 	signed and unsigned PTImode internal builtin types.
+ 	* config/rs6000/sync.md (trunctipti2): New splitter.
+ 	(extendptiti2): Likewise.
+ 	(zero_extendptiti2): Likewise.
+ 
+ 2026-06-22  Jeevitha  <jeevitha@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2026-05-13  Jeevitha Palanisamy  <jeevitha@linux.ibm.com>
+ 
+ 	PR target/122665
+ 	* config/rs6000/vsx.md (smul<mode>3_highpart, umul<mode>3_highpart):
+ 	Replace shift-based patterns with smul_highpart and umul_highpart RTL
+ 	codes and use altivec_register_operand.
+ 
+ 2026-06-22  Jeevitha  <jeevitha@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2026-05-19  Peter Bergner  <bergner@linux.ibm.com>
+ 		    Jeevitha Palanisamy  <jeevitha@linux.ibm.com>
+ 
+ 	* config/rs6000/amo.h: Add missing atomic memory operations.
+ 	* doc/extend.texi (PowerPC Atomic Memory Operation Functions): Document
+ 	new functions.
+ 
+ 2026-06-22  Robin Dapp  <rdapp.gcc@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-06-16  Robin Dapp  <rdapp.gcc@gmail.com>
+ 
+ 	PR target/125670
+ 	* config/riscv/autovec-opt.md: Use avl_type operand number.
+ 
+ 2026-06-20  Arsen Arsenović  <aarsenovic@baylibre.com>
+ 
+ 	Backported from master:
+ 	2026-06-19  Arsen Arsenović  <aarsenovic@baylibre.com>
+ 
+ 	* doc/extend.texi: Move @anchor-s referring to tops of nodes
+ 	after their corresponding @node lines.
+ 	* doc/invoke.texi: Ditto.
+ 
  2026-06-19  Eric Botcazou  <ebotcazou@adacore.com>
  
  	* acinclude.m4 (gcc_GAS_FLAGS): Set to --32 for abi32 targets.
diff -Nrcpad gcc-16-20260620/gcc/DATESTAMP gcc-16-20260627/gcc/DATESTAMP
*** gcc-16-20260620/gcc/DATESTAMP	Sat Jun 20 22:32:04 2026
--- gcc-16-20260627/gcc/DATESTAMP	Sat Jun 27 22:32:05 2026
***************
*** 1 ****
! 20260620
--- 1 ----
! 20260627
diff -Nrcpad gcc-16-20260620/gcc/cfgexpand.cc gcc-16-20260627/gcc/cfgexpand.cc
*** gcc-16-20260620/gcc/cfgexpand.cc	Sat Jun 20 22:32:05 2026
--- gcc-16-20260627/gcc/cfgexpand.cc	Sat Jun 27 22:32:06 2026
*************** pass_expand::execute (function *fun)
*** 7246,7258 ****
        >= param_max_debug_marker_count)
      cfun->debug_nonbind_markers = false;
  
!   enable_ranger (fun);
    lab_rtx_for_bb = new hash_map<basic_block, rtx_code_label *>;
    head_end_for_bb.create (last_basic_block_for_fn (fun));
    FOR_BB_BETWEEN (bb, init_block->next_bb, EXIT_BLOCK_PTR_FOR_FN (fun),
  		  next_bb)
      bb = expand_gimple_basic_block (bb, var_ret_seq);
!   disable_ranger (fun);
    FOR_BB_BETWEEN (bb, init_block->next_bb, EXIT_BLOCK_PTR_FOR_FN (fun),
  		  next_bb)
      {
--- 7246,7260 ----
        >= param_max_debug_marker_count)
      cfun->debug_nonbind_markers = false;
  
!   if (optimize)
!     enable_ranger (fun);
    lab_rtx_for_bb = new hash_map<basic_block, rtx_code_label *>;
    head_end_for_bb.create (last_basic_block_for_fn (fun));
    FOR_BB_BETWEEN (bb, init_block->next_bb, EXIT_BLOCK_PTR_FOR_FN (fun),
  		  next_bb)
      bb = expand_gimple_basic_block (bb, var_ret_seq);
!   if (optimize)
!     disable_ranger (fun);
    FOR_BB_BETWEEN (bb, init_block->next_bb, EXIT_BLOCK_PTR_FOR_FN (fun),
  		  next_bb)
      {
diff -Nrcpad gcc-16-20260620/gcc/config/i386/prfchwintrin.h gcc-16-20260627/gcc/config/i386/prfchwintrin.h
*** gcc-16-20260620/gcc/config/i386/prfchwintrin.h	Sat Jun 20 22:32:05 2026
--- gcc-16-20260627/gcc/config/i386/prfchwintrin.h	Sat Jun 27 22:32:06 2026
***************
*** 29,37 ****
  #define _PRFCHWINTRIN_H_INCLUDED
  
  extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
! _m_prefetchw (void *__P)
  {
!   __builtin_prefetch (__P, 1, 3 /* _MM_HINT_T0 */);
  }
  
  #endif /* _PRFCHWINTRIN_H_INCLUDED */
--- 29,37 ----
  #define _PRFCHWINTRIN_H_INCLUDED
  
  extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
! _m_prefetchw (volatile const void *__P)
  {
!   __builtin_prefetch ((const void *) __P, 1, 3 /* _MM_HINT_T0 */);
  }
  
  #endif /* _PRFCHWINTRIN_H_INCLUDED */
diff -Nrcpad gcc-16-20260620/gcc/config/riscv/arch-canonicalize gcc-16-20260627/gcc/config/riscv/arch-canonicalize
*** gcc-16-20260620/gcc/config/riscv/arch-canonicalize	Sat Jun 20 22:32:05 2026
--- gcc-16-20260627/gcc/config/riscv/arch-canonicalize	Sat Jun 27 22:32:06 2026
*************** def evaluate_conditional_dependency(ext,
*** 226,234 ****
    else:
      # Report error for unhandled conditional dependencies
      import sys
!     print(f"ERROR: Unhandled conditional dependency: '{ext_name}' with condition:", file=sys.stderr)
!     print(f"  Condition code: {condition[:100]}...", file=sys.stderr)
!     print(f"  Current context: xlen={xlen}, exts={sorted(current_exts)}", file=sys.stderr)
      # For now, return False to be safe
      return False
  
--- 226,234 ----
    else:
      # Report error for unhandled conditional dependencies
      import sys
!     print("ERROR: Unhandled conditional dependency: '%s' with condition:" % (ext_name,), file=sys.stderr)
!     print("  Condition code: %s..." % (condition[:100],), file=sys.stderr)
!     print("  Current context: xlen=%s, exts=%s" % (xlen, sorted(current_exts)), file=sys.stderr)
      # For now, return False to be safe
      return False
  
*************** def dump_all_extensions():
*** 479,492 ****
          if dep['type'] == 'simple':
            dep_strs.append(dep['ext'])
          else:
!           dep_strs.append(f"{dep['ext']}*")  # Mark conditional deps with *
!       print(f"{ext_name:15} -> {', '.join(dep_strs)}")
      else:
!       print(f"{ext_name:15} -> (no dependencies)")
  
!   print(f"\nTotal extensions: {len(all_extensions)}")
!   print(f"Extensions with dependencies: {len(implied_ext)}")
!   print(f"Extensions without dependencies: {len(all_extensions) - len(implied_ext)}")
  
  def run_unit_tests():
    """Run unit tests using pytest dynamically imported."""
--- 479,492 ----
          if dep['type'] == 'simple':
            dep_strs.append(dep['ext'])
          else:
!           dep_strs.append("%s*" % (dep['ext'],))  # Mark conditional deps with *
!       print("%s -> %s" % (ext_name[:15], ', '.join(dep_strs)))
      else:
!       print("%s -> (no dependencies)" % (ext_name[:15],))
  
!   print("\nTotal extensions: %s" % (len(all_extensions),))
!   print("Extensions with dependencies: %s" % (len(implied_ext),))
!   print("Extensions without dependencies: %s" % (len(all_extensions) - len(implied_ext),))
  
  def run_unit_tests():
    """Run unit tests using pytest dynamically imported."""
*************** def run_unit_tests():
*** 589,609 ****
  
    for i, test_func in enumerate(test_functions):
      try:
!       print(f"  Running {test_func.__name__}...", end=" ")
        test_func()
        print("PASSED")
        passed += 1
      except Exception as e:
!       print(f"FAILED: {e}")
        failed += 1
  
!   print(f"\nTest Summary: {passed} passed, {failed} failed")
  
    if failed == 0:
      print("\nAll tests passed!")
      return 0
    else:
!     print(f"\n{failed} test(s) failed!")
      return 1
  
  if __name__ == "__main__":
--- 589,609 ----
  
    for i, test_func in enumerate(test_functions):
      try:
!       print("  Running %s..." % (test_func.__name__,), end=" ")
        test_func()
        print("PASSED")
        passed += 1
      except Exception as e:
!       print("FAILED: %s" % (e,))
        failed += 1
  
!   print("\nTest Summary: %s passed, %s failed" % (passed, failed))
  
    if failed == 0:
      print("\nAll tests passed!")
      return 0
    else:
!     print("\n%s test(s) failed!" % (failed,))
      return 1
  
  if __name__ == "__main__":
diff -Nrcpad gcc-16-20260620/gcc/config/riscv/autovec-opt.md gcc-16-20260627/gcc/config/riscv/autovec-opt.md
*** gcc-16-20260620/gcc/config/riscv/autovec-opt.md	Sat Jun 20 22:32:05 2026
--- gcc-16-20260627/gcc/config/riscv/autovec-opt.md	Sat Jun 27 22:32:06 2026
***************
*** 53,59 ****
    {
      emit_insn (gen_pred_mov (<MODE>mode, operands[0], CONST1_RTX (<MODE>mode),
  			     RVV_VUNDEF (<MODE>mode), operands[3],
! 			     operands[4], operands[5]));
      DONE;
    }
  )
--- 53,59 ----
    {
      emit_insn (gen_pred_mov (<MODE>mode, operands[0], CONST1_RTX (<MODE>mode),
  			     RVV_VUNDEF (<MODE>mode), operands[3],
! 			     operands[4], operands[6]));
      DONE;
    }
  )
diff -Nrcpad gcc-16-20260620/gcc/config/riscv/riscv-cores.def gcc-16-20260627/gcc/config/riscv/riscv-cores.def
*** gcc-16-20260620/gcc/config/riscv/riscv-cores.def	Sat Jun 20 22:32:05 2026
--- gcc-16-20260627/gcc/config/riscv/riscv-cores.def	Sat Jun 27 22:32:06 2026
*************** RISCV_TUNE("sifive-5-series", generic, r
*** 40,45 ****
--- 40,46 ----
  RISCV_TUNE("sifive-7-series", sifive_7, sifive_7_tune_info)
  RISCV_TUNE("sifive-p400-series", sifive_p400, sifive_p400_tune_info)
  RISCV_TUNE("sifive-p600-series", sifive_p600, sifive_p600_tune_info)
+ RISCV_TUNE("tt-ascalon-x", tt_ascalon_d8, tt_ascalon_d8_tune_info)
  RISCV_TUNE("tt-ascalon-d8", tt_ascalon_d8, tt_ascalon_d8_tune_info)
  RISCV_TUNE("thead-c906", generic, thead_c906_tune_info)
  RISCV_TUNE("xt-c908", generic, generic_ooo_tune_info)
*************** RISCV_CORE("xt-c920v2",       "rv64imafd
*** 148,153 ****
--- 149,158 ----
  			      "xtheadsync",
  			       "xt-c920v2")
  
+ RISCV_CORE("tt-ascalon-x",    "rva23s64_zfbfmin_zfh_zkr_zvbc_zvfbfmin_zvfbfwma_"
+ 			      "zvfh_zvkng_zvl256b_smaia_smmpm_smnpm_smrnmi_"
+ 			      "smstateen_ssaia_ssstrict_svadu",
+ 			      "tt-ascalon-x")
  RISCV_CORE("tt-ascalon-d8",   "rva23s64_zfbfmin_zfh_zkr_zvbc_zvfbfmin_zvfbfwma_"
  			      "zvfh_zvkng_zvl256b_smaia_smmpm_smnpm_smrnmi_"
  			      "smstateen_ssaia_ssstrict_svadu",
diff -Nrcpad gcc-16-20260620/gcc/config/riscv/vector.md gcc-16-20260627/gcc/config/riscv/vector.md
*** gcc-16-20260620/gcc/config/riscv/vector.md	Sat Jun 20 22:32:05 2026
--- gcc-16-20260627/gcc/config/riscv/vector.md	Sat Jun 27 22:32:06 2026
***************
*** 852,861 ****
  	       (const_int 2)
  
  	       (eq_attr "type" "vstux,vstox,vssegts,vssegtux,vssegtox,vfcvtftoi,vfwcvtitof,vfwcvtftoi,
! 				vfwcvtftof,vmsfs,vired,viwred,vfredu,vfredo,vfwredu,vfwredo,vwsll")
  	       (const_int 3)
  
! 	       (eq_attr "type" "viwalu,viwmul,viwmuladd,vfwalu,vfwmul,vfwmuladd")
  	       (const_int 4)]
  	(const_int INVALID_ATTRIBUTE)))
  
--- 852,861 ----
  	       (const_int 2)
  
  	       (eq_attr "type" "vstux,vstox,vssegts,vssegtux,vssegtox,vfcvtftoi,vfwcvtitof,vfwcvtftoi,
! 				vfwcvtftof,vmsfs,vired,viwred,vfredu,vfredo,vfwredu,vfwredo,vwsll,viwalu,vfwalu,viwmul,vfwmul")
  	       (const_int 3)
  
! 	       (eq_attr "type" "viwmuladd,vfwmuladd")
  	       (const_int 4)]
  	(const_int INVALID_ATTRIBUTE)))
  
***************
*** 4201,4207 ****
    "TARGET_VECTOR"
    "vw<plus_minus:insn><any_extend:u>.wx\t%0,%3,%z4%p1"
    [(set_attr "type" "vi<widen_binop_insn_type>")
-    (set_attr "mode_idx" "3")
     (set_attr "mode" "<V_DOUBLE_TRUNC>")])
  
  (define_insn "@pred_single_widen_add<any_extend:su><mode>_extended_scalar"
--- 4201,4206 ----
***************
*** 4224,4230 ****
    "TARGET_VECTOR"
    "vwadd<any_extend:u>.wx\t%0,%3,%z4%p1"
    [(set_attr "type" "viwalu")
-    (set_attr "mode_idx" "3")
     (set_attr "mode" "<V_DOUBLE_TRUNC>")])
  
  (define_insn "@pred_single_widen_sub<any_extend:su><mode>_extended_scalar"
--- 4223,4228 ----
***************
*** 4247,4253 ****
    "TARGET_VECTOR"
    "vwsub<any_extend:u>.wx\t%0,%3,%z4%p1"
    [(set_attr "type" "viwalu")
-    (set_attr "mode_idx" "3")
     (set_attr "mode" "<V_DOUBLE_TRUNC>")])
  
  (define_insn "@pred_widen_mulsu<mode>"
--- 4245,4250 ----
***************
*** 4468,4474 ****
    "TARGET_VECTOR"
    "v<insn>.vx\t%0,%3,%4%p1"
    [(set_attr "type" "<int_binop_insn_type>")
-    (set_attr "mode_idx" "3")
     (set_attr "mode" "<MODE>")])
  
  (define_insn "@pred_<optab><mode>_scalar"
--- 4465,4470 ----
***************
*** 4490,4496 ****
    "TARGET_VECTOR"
    "v<insn>.vx\t%0,%3,%4%p1"
    [(set_attr "type" "<int_binop_insn_type>")
-    (set_attr "mode_idx" "3")
     (set_attr "mode" "<MODE>")])
  
  (define_expand "@pred_<optab><mode>_scalar"
--- 4486,4491 ----
***************
*** 4545,4551 ****
    "TARGET_VECTOR"
    "v<insn>.vx\t%0,%3,%4%p1"
    [(set_attr "type" "<int_binop_insn_type>")
-    (set_attr "mode_idx" "3")
     (set_attr "mode" "<MODE>")])
  
  (define_insn "*pred_<optab><mode>_extended_scalar"
--- 4540,4545 ----
***************
*** 4568,4574 ****
    "TARGET_VECTOR && !TARGET_64BIT"
    "v<insn>.vx\t%0,%3,%4%p1"
    [(set_attr "type" "<int_binop_insn_type>")
-    (set_attr "mode_idx" "3")
     (set_attr "mode" "<MODE>")])
  
  (define_expand "@pred_<optab><mode>_scalar"
--- 4562,4567 ----
***************
*** 4623,4629 ****
    "TARGET_VECTOR"
    "v<insn>.vx\t%0,%3,%z4%p1"
    [(set_attr "type" "<int_binop_insn_type>")
-    (set_attr "mode_idx" "3")
     (set_attr "mode" "<MODE>")])
  
  (define_insn "*pred_<optab><mode>_extended_scalar"
--- 4616,4621 ----
***************
*** 4646,4652 ****
    "TARGET_VECTOR && !TARGET_64BIT"
    "v<insn>.vx\t%0,%3,%z4%p1"
    [(set_attr "type" "<int_binop_insn_type>")
-    (set_attr "mode_idx" "3")
     (set_attr "mode" "<MODE>")])
  
  (define_insn "@pred_<sat_op><mode>"
--- 4638,4643 ----
***************
*** 4692,4698 ****
    "TARGET_VECTOR"
    "v<sat_op>.vx\t%0,%3,%z4%p1"
    [(set_attr "type" "<sat_insn_type>")
-    (set_attr "mode_idx" "3")
     (set_attr "mode" "<MODE>")])
  
  (define_insn "@pred_<sat_op><mode>_scalar"
--- 4683,4688 ----
***************
*** 7297,7303 ****
    [(set_attr "type" "vf<widen_binop_insn_type>")
     (set_attr "mode" "<V_DOUBLE_TRUNC>")
     (set (attr "frm_mode")
! 	(symbol_ref "riscv_vector::get_frm_mode (operands[9])"))])
  
  (define_insn "@pred_single_widen_add<mode>"
    [(set (match_operand:VWEXTF 0 "register_operand"                  "=&vr,  &vr")
--- 7287,7293 ----
    [(set_attr "type" "vf<widen_binop_insn_type>")
     (set_attr "mode" "<V_DOUBLE_TRUNC>")
     (set (attr "frm_mode")
!    (symbol_ref "riscv_vector::get_frm_mode (operands[9])"))])
  
  (define_insn "@pred_single_widen_add<mode>"
    [(set (match_operand:VWEXTF 0 "register_operand"                  "=&vr,  &vr")
diff -Nrcpad gcc-16-20260620/gcc/config/rs6000/amo.h gcc-16-20260627/gcc/config/rs6000/amo.h
*** gcc-16-20260620/gcc/config/rs6000/amo.h	Sat Jun 20 22:32:05 2026
--- gcc-16-20260627/gcc/config/rs6000/amo.h	Sat Jun 27 22:32:06 2026
*************** enum _AMO_LD {
*** 43,49 ****
    _AMO_LD_UMIN		= 0x06,		/* Fetch and Unsigned Minimum.  */
    _AMO_LD_SMIN		= 0x07,		/* Fetch and Signed Minimum.  */
    _AMO_LD_SWAP		= 0x08,		/* Swap.  */
!   _AMO_LD_CS_NE		= 0x10,		/* Compare and Swap Not Equal.  */
    _AMO_LD_INC_BOUNDED	= 0x18,		/* Fetch and Increment Bounded.  */
    _AMO_LD_INC_EQUAL	= 0x19,		/* Fetch and Increment Equal.  */
    _AMO_LD_DEC_BOUNDED	= 0x1C		/* Fetch and Decrement Bounded.  */
--- 43,52 ----
    _AMO_LD_UMIN		= 0x06,		/* Fetch and Unsigned Minimum.  */
    _AMO_LD_SMIN		= 0x07,		/* Fetch and Signed Minimum.  */
    _AMO_LD_SWAP		= 0x08,		/* Swap.  */
!   _AMO_LD_CS_NE 	= 0x10,         /* Compare and Swap Not Equal.  */
! #ifdef _ARCH_FUTURE
!   _AMO_LD_CS_EQ 	= 0x11,         /* Compare and Swap Equal.  */
! #endif
    _AMO_LD_INC_BOUNDED	= 0x18,		/* Fetch and Increment Bounded.  */
    _AMO_LD_INC_EQUAL	= 0x19,		/* Fetch and Increment Equal.  */
    _AMO_LD_DEC_BOUNDED	= 0x1C		/* Fetch and Decrement Bounded.  */
*************** NAME (TYPE *_PTR, TYPE _VALUE)						\
*** 71,76 ****
--- 74,125 ----
    return _RET;								\
  }
  
+ /* Implementation of the LWAT/LDAT operations that take two input registers
+    and modify one word or double-word of memory and return the value that was
+    previously in the memory location.  The destination and two source
+    registers are encoded with only one register number, so we need three
+    consecutive GPR registers and there is no C/C++ type that will give
+    us that, so we have to use register asm variables to achieve that.
+ 
+    The LWAT/LDAT opcode requires the address to be a single register,
+    and that points to a suitably aligned memory location. Load atomic
+    instructions have side effects, so the asm is marked as volatile.  */
+ 
+ #define _AMO_LD_CMPSWP(NAME, TYPE, OPCODE, FC)				\
+ static __inline__ TYPE							\
+ NAME (TYPE *_ADDR, TYPE _COND, TYPE _VALUE)				\
+ {									\
+   register TYPE _ret asm ("r8");					\
+   register TYPE _cond asm ("r9") = _COND;				\
+   register TYPE _value asm ("r10") = _VALUE;				\
+   __asm__ volatile (OPCODE " %0,%P1,%4\n"				\
+ 			: "=r" (_ret), "+Q" (*_ADDR)			\
+ 			: "r" (_cond), "r" (_value), "n" (FC));		\
+   return _ret;								\
+ }
+ 
+ #define _AMO_LD_INCREMENT(NAME, TYPE, OPCODE, FC)			\
+ static __inline__ TYPE							\
+ NAME (TYPE *_ADDR)							\
+ {									\
+   TYPE _RET;								\
+   __asm__ volatile (OPCODE " %0,%P1,%3\n"				\
+ 			: "=r" (_RET), "+Q" (_ADDR[0])			\
+ 			: "Q" (_ADDR[1]), "n" (FC));			\
+   return _RET;								\
+ }
+ 
+ #define _AMO_LD_DECREMENT(NAME, TYPE, OPCODE, FC)			\
+ static __inline__ TYPE							\
+ NAME (TYPE *_ADDR)							\
+ {									\
+   TYPE _RET;								\
+   __asm__ volatile (OPCODE " %0,%P1,%3\n"				\
+ 			: "=r" (_RET), "+Q" (_ADDR[1])			\
+ 			: "Q" (_ADDR[0]), "n" (FC));			\
+   return _RET;								\
+ }
+ 
  _AMO_LD_SIMPLE (amo_lwat_add,   uint32_t, "lwat", _AMO_LD_ADD)
  _AMO_LD_SIMPLE (amo_lwat_xor,   uint32_t, "lwat", _AMO_LD_XOR)
  _AMO_LD_SIMPLE (amo_lwat_ior,   uint32_t, "lwat", _AMO_LD_IOR)
*************** _AMO_LD_SIMPLE (amo_lwat_and,   uint32_t
*** 78,88 ****
--- 127,145 ----
  _AMO_LD_SIMPLE (amo_lwat_umax,  uint32_t, "lwat", _AMO_LD_UMAX)
  _AMO_LD_SIMPLE (amo_lwat_umin,  uint32_t, "lwat", _AMO_LD_UMIN)
  _AMO_LD_SIMPLE (amo_lwat_swap,  uint32_t, "lwat", _AMO_LD_SWAP)
+ _AMO_LD_CMPSWP    (amo_lwat_cas_neq,     uint32_t, "lwat", _AMO_LD_CS_NE)
+ _AMO_LD_INCREMENT (amo_lwat_inc_eq,      uint32_t, "lwat", _AMO_LD_INC_EQUAL)
+ _AMO_LD_INCREMENT (amo_lwat_inc_bounded, uint32_t, "lwat", _AMO_LD_INC_BOUNDED)
+ _AMO_LD_DECREMENT (amo_lwat_dec_bounded, uint32_t, "lwat", _AMO_LD_DEC_BOUNDED)
  
  _AMO_LD_SIMPLE (amo_lwat_sadd,  int32_t,  "lwat", _AMO_LD_ADD)
  _AMO_LD_SIMPLE (amo_lwat_smax,  int32_t,  "lwat", _AMO_LD_SMAX)
  _AMO_LD_SIMPLE (amo_lwat_smin,  int32_t,  "lwat", _AMO_LD_SMIN)
  _AMO_LD_SIMPLE (amo_lwat_sswap, int32_t,  "lwat", _AMO_LD_SWAP)
+ _AMO_LD_CMPSWP    (amo_lwat_scas_neq,     int32_t, "lwat", _AMO_LD_CS_NE)
+ _AMO_LD_INCREMENT (amo_lwat_sinc_eq,      int32_t, "lwat", _AMO_LD_INC_EQUAL)
+ _AMO_LD_INCREMENT (amo_lwat_sinc_bounded, int32_t, "lwat", _AMO_LD_INC_BOUNDED)
+ _AMO_LD_DECREMENT (amo_lwat_sdec_bounded, int32_t, "lwat", _AMO_LD_DEC_BOUNDED)
  
  _AMO_LD_SIMPLE (amo_ldat_add,   uint64_t, "ldat", _AMO_LD_ADD)
  _AMO_LD_SIMPLE (amo_ldat_xor,   uint64_t, "ldat", _AMO_LD_XOR)
*************** _AMO_LD_SIMPLE (amo_ldat_and,   uint64_t
*** 91,101 ****
--- 148,186 ----
  _AMO_LD_SIMPLE (amo_ldat_umax,  uint64_t, "ldat", _AMO_LD_UMAX)
  _AMO_LD_SIMPLE (amo_ldat_umin,  uint64_t, "ldat", _AMO_LD_UMIN)
  _AMO_LD_SIMPLE (amo_ldat_swap,  uint64_t, "ldat", _AMO_LD_SWAP)
+ _AMO_LD_CMPSWP    (amo_ldat_cas_neq,     uint64_t, "ldat", _AMO_LD_CS_NE)
+ _AMO_LD_INCREMENT (amo_ldat_inc_eq,      uint64_t, "ldat", _AMO_LD_INC_EQUAL)
+ _AMO_LD_INCREMENT (amo_ldat_inc_bounded, uint64_t, "ldat", _AMO_LD_INC_BOUNDED)
+ _AMO_LD_DECREMENT (amo_ldat_dec_bounded, uint64_t, "ldat", _AMO_LD_DEC_BOUNDED)
  
  _AMO_LD_SIMPLE (amo_ldat_sadd,  int64_t,  "ldat", _AMO_LD_ADD)
  _AMO_LD_SIMPLE (amo_ldat_smax,  int64_t,  "ldat", _AMO_LD_SMAX)
  _AMO_LD_SIMPLE (amo_ldat_smin,  int64_t,  "ldat", _AMO_LD_SMIN)
  _AMO_LD_SIMPLE (amo_ldat_sswap, int64_t,  "ldat", _AMO_LD_SWAP)
+ _AMO_LD_CMPSWP    (amo_ldat_scas_neq,     int64_t, "ldat", _AMO_LD_CS_NE)
+ _AMO_LD_INCREMENT (amo_ldat_sinc_eq,      int64_t, "ldat", _AMO_LD_INC_EQUAL)
+ _AMO_LD_INCREMENT (amo_ldat_sinc_bounded, int64_t, "ldat", _AMO_LD_INC_BOUNDED)
+ _AMO_LD_DECREMENT (amo_ldat_sdec_bounded, int64_t, "ldat", _AMO_LD_DEC_BOUNDED)
+ 
+ /* Future specific compare-and-swap equal operations.  */
+ #ifdef _ARCH_FUTURE
+ _AMO_LD_CMPSWP (amo_lwat_cas_eq,  uint32_t, "lwat", _AMO_LD_CS_EQ)
+ _AMO_LD_CMPSWP (amo_lwat_scas_eq, int32_t,  "lwat", _AMO_LD_CS_EQ)
+ _AMO_LD_CMPSWP (amo_ldat_cas_eq,  uint64_t, "ldat", _AMO_LD_CS_EQ)
+ _AMO_LD_CMPSWP (amo_ldat_scas_eq, int64_t,  "ldat", _AMO_LD_CS_EQ)
+ #else /* ! _ARCH_FUTURE */
+ /* Dummy declarations with GCC error attribute: Triggers error on use.  */
+ #define _AMO_ERR_CMPSWP(NAME, TYPE)					 \
+ extern TYPE								 \
+ NAME (TYPE *_ADDR, TYPE _COND, TYPE _VALUE)				 \
+   __attribute__ ((error (#NAME " requires ISA<future>; not available on" \
+ 			       " ISA 3.1 or earlier")));
+ _AMO_ERR_CMPSWP (amo_lwat_cas_eq,  uint32_t)
+ _AMO_ERR_CMPSWP (amo_lwat_scas_eq, int32_t)
+ _AMO_ERR_CMPSWP (amo_ldat_cas_eq,  uint64_t)
+ _AMO_ERR_CMPSWP (amo_ldat_scas_eq, int64_t)
+ #undef _AMO_ERR_CMPSWP
+ #endif
  
  /* Enumeration of the STWAT/STDAT sub-opcodes.  */
  enum _AMO_ST {
*************** NAME (TYPE *_PTR, TYPE _VALUE)						\
*** 127,142 ****
--- 212,247 ----
    return;								\
  }
  
+ /* Implementation of the STWAT/STDAT store twin operation that takes
+    one register and modifies two words or double-words of memory.
+    No value is returned.
+ 
+    The STWAT/STDAT opcode requires the address to be a single register
+    that points to a suitably aligned memory location. Store atomic
+    instructions have side effects, so the asm is marked as volatile.  */
+ 
+ #define _AMO_ST_TWIN(NAME, TYPE, OPCODE, FC)				\
+ static __inline__ void							\
+ NAME (TYPE *_ADDR, TYPE _VALUE)						\
+ {									\
+   __asm__ volatile (OPCODE " %2,%P0,%3"					\
+ 		    : "+Q" (_ADDR[0]), "+Q" (_ADDR[1])			\
+ 		    : "r" (_VALUE),  "n" (FC));				\
+   return;								\
+ }
+ 
  _AMO_ST_SIMPLE (amo_stwat_add,  uint32_t, "stwat", _AMO_ST_ADD)
  _AMO_ST_SIMPLE (amo_stwat_xor,  uint32_t, "stwat", _AMO_ST_XOR)
  _AMO_ST_SIMPLE (amo_stwat_ior,  uint32_t, "stwat", _AMO_ST_IOR)
  _AMO_ST_SIMPLE (amo_stwat_and,  uint32_t, "stwat", _AMO_ST_AND)
  _AMO_ST_SIMPLE (amo_stwat_umax, uint32_t, "stwat", _AMO_ST_UMAX)
  _AMO_ST_SIMPLE (amo_stwat_umin, uint32_t, "stwat", _AMO_ST_UMIN)
+ _AMO_ST_TWIN (amo_stwat_twin, uint32_t, "stwat", _AMO_ST_TWIN)
  
  _AMO_ST_SIMPLE (amo_stwat_sadd, int32_t,  "stwat", _AMO_ST_ADD)
  _AMO_ST_SIMPLE (amo_stwat_smax, int32_t,  "stwat", _AMO_ST_SMAX)
  _AMO_ST_SIMPLE (amo_stwat_smin, int32_t,  "stwat", _AMO_ST_SMIN)
+ _AMO_ST_TWIN (amo_stwat_stwin, int32_t, "stwat", _AMO_ST_TWIN)
  
  _AMO_ST_SIMPLE (amo_stdat_add,  uint64_t, "stdat", _AMO_ST_ADD)
  _AMO_ST_SIMPLE (amo_stdat_xor,  uint64_t, "stdat", _AMO_ST_XOR)
*************** _AMO_ST_SIMPLE (amo_stdat_ior,  uint64_t
*** 144,152 ****
--- 249,259 ----
  _AMO_ST_SIMPLE (amo_stdat_and,  uint64_t, "stdat", _AMO_ST_AND)
  _AMO_ST_SIMPLE (amo_stdat_umax, uint64_t, "stdat", _AMO_ST_UMAX)
  _AMO_ST_SIMPLE (amo_stdat_umin, uint64_t, "stdat", _AMO_ST_UMIN)
+ _AMO_ST_TWIN (amo_stdat_twin, uint64_t, "stdat", _AMO_ST_TWIN)
  
  _AMO_ST_SIMPLE (amo_stdat_sadd, int64_t,  "stdat", _AMO_ST_ADD)
  _AMO_ST_SIMPLE (amo_stdat_smax, int64_t,  "stdat", _AMO_ST_SMAX)
  _AMO_ST_SIMPLE (amo_stdat_smin, int64_t,  "stdat", _AMO_ST_SMIN)
+ _AMO_ST_TWIN (amo_stdat_stwin, int64_t, "stdat", _AMO_ST_TWIN)
  #endif	/* _ARCH_PWR9 && _ARCH_PPC64.  */
  #endif	/* _POWERPC_AMO_H.  */
diff -Nrcpad gcc-16-20260620/gcc/config/rs6000/rs6000-builtin.cc gcc-16-20260627/gcc/config/rs6000/rs6000-builtin.cc
*** gcc-16-20260620/gcc/config/rs6000/rs6000-builtin.cc	Sat Jun 20 22:32:05 2026
--- gcc-16-20260627/gcc/config/rs6000/rs6000-builtin.cc	Sat Jun 27 22:32:06 2026
*************** rs6000_init_builtins (void)
*** 761,766 ****
--- 761,781 ----
    else
      ieee128_float_type_node = NULL_TREE;
  
+   /* PTImode to get even/odd register pairs.  */
+   if (TARGET_POWERPC64)
+     {
+       intPTI_type_internal_node = make_signed_type (GET_MODE_BITSIZE (PTImode));
+       SET_TYPE_MODE (intPTI_type_internal_node, PTImode);
+       t = build_qualified_type (intPTI_type_internal_node, TYPE_QUAL_CONST);
+       lang_hooks.types.register_builtin_type (intPTI_type_internal_node,
+ 					      "__pti_internal");
+ 
+       uintPTI_type_internal_node = make_unsigned_type (GET_MODE_BITSIZE (PTImode));
+       SET_TYPE_MODE (uintPTI_type_internal_node, PTImode);
+       t = build_qualified_type (uintPTI_type_internal_node, TYPE_QUAL_CONST);
+       lang_hooks.types.register_builtin_type (uintPTI_type_internal_node,
+ 					      "__upti_internal");
+     }
    /* Vector pair and vector quad support.  */
    vector_pair_type_node = make_node (OPAQUE_TYPE);
    SET_TYPE_MODE (vector_pair_type_node, OOmode);
diff -Nrcpad gcc-16-20260620/gcc/config/rs6000/rs6000.h gcc-16-20260627/gcc/config/rs6000/rs6000.h
*** gcc-16-20260620/gcc/config/rs6000/rs6000.h	Sat Jun 20 22:32:05 2026
--- gcc-16-20260627/gcc/config/rs6000/rs6000.h	Sat Jun 27 22:32:06 2026
*************** enum rs6000_builtin_type_index
*** 2290,2295 ****
--- 2290,2297 ----
    RS6000_BTI_ptr_vector_quad,
    RS6000_BTI_ptr_long_long,
    RS6000_BTI_ptr_long_long_unsigned,
+   RS6000_BTI_INTPTI,
+   RS6000_BTI_UINTPTI,
    RS6000_BTI_MAX
  };
  
*************** enum rs6000_builtin_type_index
*** 2334,2339 ****
--- 2336,2343 ----
  #define uintDI_type_internal_node	 (rs6000_builtin_types[RS6000_BTI_UINTDI])
  #define intTI_type_internal_node	 (rs6000_builtin_types[RS6000_BTI_INTTI])
  #define uintTI_type_internal_node	 (rs6000_builtin_types[RS6000_BTI_UINTTI])
+ #define intPTI_type_internal_node	 (rs6000_builtin_types[RS6000_BTI_INTPTI])
+ #define uintPTI_type_internal_node	 (rs6000_builtin_types[RS6000_BTI_UINTPTI])
  #define float_type_internal_node	 (rs6000_builtin_types[RS6000_BTI_float])
  #define double_type_internal_node	 (rs6000_builtin_types[RS6000_BTI_double])
  #define long_double_type_internal_node	 (rs6000_builtin_types[RS6000_BTI_long_double])
diff -Nrcpad gcc-16-20260620/gcc/config/rs6000/sync.md gcc-16-20260627/gcc/config/rs6000/sync.md
*** gcc-16-20260620/gcc/config/rs6000/sync.md	Sat Jun 20 22:32:05 2026
--- gcc-16-20260627/gcc/config/rs6000/sync.md	Sat Jun 27 22:32:06 2026
***************
*** 198,203 ****
--- 198,254 ----
    DONE;
  })
  
+ ;; PTI and TI are both 128-bit modes; the following conversions are
+ ;; register-class changes only, no actual truncation, sign or zero
+ ;; extension occurs.
+ (define_insn_and_split "trunctipti2"
+   [(set (match_operand:PTI 0 "register_operand" "=r,r")
+         (truncate:PTI (match_operand:TI 1 "register_operand" "0,r")))]
+   "TARGET_POWERPC64"
+   "#"
+   "&& reload_completed"
+   [(set (match_dup 2) (match_dup 4))
+    (set (match_dup 3) (match_dup 5))]
+ {
+   operands[2] = gen_lowpart (DImode, operands[0]);
+   operands[3] = gen_highpart (DImode, operands[0]);
+   operands[4] = gen_lowpart (DImode, operands[1]);
+   operands[5] = gen_highpart (DImode, operands[1]);
+ }
+ [(set_attr "length" "0,8")])
+ 
+ (define_insn_and_split "extendptiti2"
+   [(set (match_operand:TI 0 "register_operand" "=r,r")
+         (sign_extend:TI (match_operand:PTI 1 "register_operand" "0,r")))]
+   "TARGET_POWERPC64"
+   "#"
+   "&& reload_completed"
+   [(set (match_dup 2) (match_dup 4))
+    (set (match_dup 3) (match_dup 5))]
+ {
+   operands[2] = gen_lowpart (DImode, operands[0]);
+   operands[3] = gen_highpart (DImode, operands[0]);
+   operands[4] = gen_lowpart (DImode, operands[1]);
+   operands[5] = gen_highpart (DImode, operands[1]);
+ }
+ [(set_attr "length" "0,8")])
+ 
+ (define_insn_and_split "zero_extendptiti2"
+   [(set (match_operand:TI 0 "register_operand" "=r,r")
+         (zero_extend:TI (match_operand:PTI 1 "register_operand" "0,r")))]
+   "TARGET_POWERPC64"
+   "#"
+   "&& reload_completed"
+   [(set (match_dup 2) (match_dup 4))
+    (set (match_dup 3) (match_dup 5))]
+ {
+   operands[2] = gen_lowpart (DImode, operands[0]);
+   operands[3] = gen_highpart (DImode, operands[0]);
+   operands[4] = gen_lowpart (DImode, operands[1]);
+   operands[5] = gen_highpart (DImode, operands[1]);
+ }
+ [(set_attr "length" "0,8")])
+ 
  ;; If TARGET_PREFIXED, always use pstq rather than stq.
  (define_insn "store_quadpti"
    [(set (match_operand:PTI 0 "quad_memory_operand" "=wQ")
diff -Nrcpad gcc-16-20260620/gcc/config/rs6000/vsx.md gcc-16-20260627/gcc/config/rs6000/vsx.md
*** gcc-16-20260620/gcc/config/rs6000/vsx.md	Sat Jun 20 22:32:05 2026
--- gcc-16-20260627/gcc/config/rs6000/vsx.md	Sat Jun 27 22:32:07 2026
***************
*** 6547,6571 ****
     (set_attr "size" "<bits>")])
  
  (define_insn "smul<mode>3_highpart"
!   [(set (match_operand:VIlong 0 "vsx_register_operand" "=v")
! 	(mult:VIlong (ashiftrt
! 		       (match_operand:VIlong 1 "vsx_register_operand" "v")
! 		       (const_int 32))
! 		     (ashiftrt
! 		       (match_operand:VIlong 2 "vsx_register_operand" "v")
! 		       (const_int 32))))]
    "TARGET_POWER10"
    "vmulhs<wd> %0,%1,%2"
    [(set_attr "type" "veccomplex")])
  
  (define_insn "umul<mode>3_highpart"
!   [(set (match_operand:VIlong 0 "vsx_register_operand" "=v")
! 	(us_mult:VIlong (ashiftrt
! 			  (match_operand:VIlong 1 "vsx_register_operand" "v")
! 			  (const_int 32))
! 			(ashiftrt
! 			  (match_operand:VIlong 2 "vsx_register_operand" "v")
! 			  (const_int 32))))]
    "TARGET_POWER10"
    "vmulhu<wd> %0,%1,%2"
    [(set_attr "type" "veccomplex")])
--- 6547,6565 ----
     (set_attr "size" "<bits>")])
  
  (define_insn "smul<mode>3_highpart"
!   [(set (match_operand:VIlong 0 "altivec_register_operand" "=v")
! 	(smul_highpart:VIlong
! 	  (match_operand:VIlong 1 "altivec_register_operand" "v")
! 	  (match_operand:VIlong 2 "altivec_register_operand" "v")))]
    "TARGET_POWER10"
    "vmulhs<wd> %0,%1,%2"
    [(set_attr "type" "veccomplex")])
  
  (define_insn "umul<mode>3_highpart"
!   [(set (match_operand:VIlong 0 "altivec_register_operand" "=v")
! 	(umul_highpart:VIlong
! 	  (match_operand:VIlong 1 "altivec_register_operand" "v")
! 	  (match_operand:VIlong 2 "altivec_register_operand" "v")))]
    "TARGET_POWER10"
    "vmulhu<wd> %0,%1,%2"
    [(set_attr "type" "veccomplex")])
diff -Nrcpad gcc-16-20260620/gcc/config/s390/s390.md gcc-16-20260627/gcc/config/s390/s390.md
*** gcc-16-20260620/gcc/config/s390/s390.md	Sat Jun 20 22:32:05 2026
--- gcc-16-20260627/gcc/config/s390/s390.md	Sat Jun 27 22:32:07 2026
***************
*** 10256,10261 ****
--- 10256,10262 ----
  	 (pc)))
     (set (match_operand:GPR 4 "nonimmediate_operand" "")
          (plus:GPR (match_dup 1) (match_dup 2)))
+    (clobber (reg:CC CC_REGNUM))
     (clobber (match_scratch:GPR 5 ""))]
    ""
    "#"
diff -Nrcpad gcc-16-20260620/gcc/cp/ChangeLog gcc-16-20260627/gcc/cp/ChangeLog
*** gcc-16-20260620/gcc/cp/ChangeLog	Sat Jun 20 22:32:05 2026
--- gcc-16-20260627/gcc/cp/ChangeLog	Sat Jun 27 22:32:07 2026
***************
*** 1,3 ****
--- 1,80 ----
+ 2026-06-26  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-06-26  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/125900
+ 	* reflect.cc (check_out_of_consteval_use_r): Don't walk
+ 	SPLICE_EXPR.
+ 
+ 2026-06-25  Jason Merrill  <jason@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-06-23  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/125334
+ 	* module.cc (depset::hash::find_dependencies): Don't add_dependency
+ 	dependent ADL functions.
+ 
+ 2026-06-25  Jason Merrill  <jason@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-06-23  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/125768
+ 	* module.cc (trees_out::decl_node): When not streaming,
+ 	recurse into DECL_ORIGINAL_TYPE of an imported typedef.
+ 
+ 2026-06-24  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/125939
+ 	* method.cc (build_stub_type): Pass tf_ignore_bad_quals to
+ 	cp_build_qualified_type.
+ 
+ 2026-06-23  Jason Merrill  <jason@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-06-23  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/125745
+ 	* cp-ubsan.cc (cp_ubsan_instrument_vptr): Use build_vfield_ref.
+ 
+ 2026-06-23  Jason Merrill  <jason@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-06-21  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/125408
+ 	* expr.cc (mark_use): Fix condition for changing rvalue to lvalue.
+ 
+ 2026-06-23  Jason Merrill  <jason@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-06-21  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/125408
+ 	* tree.cc (cp_walk_subtrees): Walk into the DECL_ORIGINAL_TYPE of a
+ 	typedef DECL_EXPR.
+ 
+ 2026-06-22  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-04-27  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/124978
+ 	PR c++/115314
+ 	* semantics.cc (finish_decltype_type): Check REFERENCE_REF_P
+ 	instead of INDIRECT_REF_P before stripping implicit dereferences.
+ 
+ 2026-06-22  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-06-22  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/125889
+ 	* reflect.cc (class_members_of): Also append LAMBDA_FUNCTION_P
+ 	from the implicitly_declared vector.
+ 
  2026-06-17  Marek Polacek  <polacek@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-16-20260620/gcc/cp/cp-ubsan.cc gcc-16-20260627/gcc/cp/cp-ubsan.cc
*** gcc-16-20260620/gcc/cp/cp-ubsan.cc	Sat Jun 20 22:32:05 2026
--- gcc-16-20260627/gcc/cp/cp-ubsan.cc	Sat Jun 27 22:32:07 2026
*************** cp_ubsan_instrument_vptr (location_t loc
*** 69,78 ****
    if (!is_addr)
      op = build_fold_addr_expr_loc (loc, op);
    op = save_expr (op);
!   tree vptr = fold_build3_loc (loc, COMPONENT_REF,
! 			       TREE_TYPE (TYPE_VFIELD (type)),
! 			       build_fold_indirect_ref_loc (loc, op),
! 			       TYPE_VFIELD (type), NULL_TREE);
    vptr = fold_convert_loc (loc, pointer_sized_int_node, vptr);
    vptr = fold_convert_loc (loc, uint64_type_node, vptr);
    if (ckind == UBSAN_DOWNCAST_POINTER)
--- 69,75 ----
    if (!is_addr)
      op = build_fold_addr_expr_loc (loc, op);
    op = save_expr (op);
!   tree vptr = build_vfield_ref (build_fold_indirect_ref_loc (loc, op), type);
    vptr = fold_convert_loc (loc, pointer_sized_int_node, vptr);
    vptr = fold_convert_loc (loc, uint64_type_node, vptr);
    if (ckind == UBSAN_DOWNCAST_POINTER)
diff -Nrcpad gcc-16-20260620/gcc/cp/expr.cc gcc-16-20260627/gcc/cp/expr.cc
*** gcc-16-20260620/gcc/cp/expr.cc	Sat Jun 20 22:32:05 2026
--- gcc-16-20260627/gcc/cp/expr.cc	Sat Jun 27 22:32:07 2026
*************** mark_use (tree expr, bool rvalue_p, bool
*** 182,190 ****
  		}
  	    }
  	  tree r = mark_rvalue_use (ref, loc, reject_builtin);
  	  if (r != ref)
  	    {
! 	      if (!rvalue_p)
  		{
  		  /* Make sure we still return an lvalue.  */
  		  gcc_assert (TREE_CODE (r) == NOP_EXPR);
--- 182,192 ----
  		}
  	    }
  	  tree r = mark_rvalue_use (ref, loc, reject_builtin);
+ 	  if (r == error_mark_node)
+ 	    return error_mark_node;
  	  if (r != ref)
  	    {
! 	      if (DECL_P (ref) && !lvalue_p (r))
  		{
  		  /* Make sure we still return an lvalue.  */
  		  gcc_assert (TREE_CODE (r) == NOP_EXPR);
diff -Nrcpad gcc-16-20260620/gcc/cp/method.cc gcc-16-20260627/gcc/cp/method.cc
*** gcc-16-20260620/gcc/cp/method.cc	Sat Jun 20 22:32:05 2026
--- gcc-16-20260627/gcc/cp/method.cc	Sat Jun 27 22:32:07 2026
*************** maybe_synthesize_method (tree fndecl)
*** 1902,1908 ****
  tree
  build_stub_type (tree type, int quals, bool rvalue)
  {
!   tree argtype = cp_build_qualified_type (type, quals);
    return cp_build_reference_type (argtype, rvalue);
  }
  
--- 1902,1910 ----
  tree
  build_stub_type (tree type, int quals, bool rvalue)
  {
!   tree argtype
!     = cp_build_qualified_type (type, quals,
! 			       tf_warning_or_error | tf_ignore_bad_quals);
    return cp_build_reference_type (argtype, rvalue);
  }
  
diff -Nrcpad gcc-16-20260620/gcc/cp/module.cc gcc-16-20260627/gcc/cp/module.cc
*** gcc-16-20260620/gcc/cp/module.cc	Sat Jun 20 22:32:05 2026
--- gcc-16-20260627/gcc/cp/module.cc	Sat Jun 27 22:32:07 2026
*************** trees_out::decl_node (tree decl, walk_ki
*** 9434,9439 ****
--- 9434,9444 ----
      case TYPE_DECL:
        if (DECL_TINFO_P (decl))
  	goto tinfo;
+       /* c++/125768: For an imported typedef, also mark the original type
+ 	 reachable in case it was instantiated here.  */
+       if (!streaming_p () && DECL_ORIGINAL_TYPE (decl)
+ 	  && (DECL_LANG_SPECIFIC (decl) && DECL_MODULE_IMPORT_P (decl)))
+ 	tree_node (DECL_ORIGINAL_TYPE (decl));
        break;
      }
  
*************** depset::hash::find_dependencies (module_
*** 15725,15731 ****
  		      tree lookup = lookup_arg_dependent (info.name, NULL_TREE,
  							  info.args, true);
  		      for (tree fn : lkp_range (lookup))
! 			add_dependency (make_dependency (fn, EK_DECL));
  
  		      if (info.rewrite)
  			{
--- 15730,15738 ----
  		      tree lookup = lookup_arg_dependent (info.name, NULL_TREE,
  							  info.args, true);
  		      for (tree fn : lkp_range (lookup))
! 			/* We don't need to add_dependency, just have
! 			   make_dependency build an ADL binding.  */
! 			make_dependency (fn, EK_DECL);
  
  		      if (info.rewrite)
  			{
*************** depset::hash::find_dependencies (module_
*** 15733,15739 ****
  			  lookup = lookup_arg_dependent (rewrite_name, NULL_TREE,
  							 info.args, true);
  			  for (tree fn : lkp_range (lookup))
! 			    add_dependency (make_dependency (fn, EK_DECL));
  			}
  		      release_tree_vector (info.args);
  		    }
--- 15740,15746 ----
  			  lookup = lookup_arg_dependent (rewrite_name, NULL_TREE,
  							 info.args, true);
  			  for (tree fn : lkp_range (lookup))
! 			    make_dependency (fn, EK_DECL);
  			}
  		      release_tree_vector (info.args);
  		    }
diff -Nrcpad gcc-16-20260620/gcc/cp/reflect.cc gcc-16-20260627/gcc/cp/reflect.cc
*** gcc-16-20260620/gcc/cp/reflect.cc	Sat Jun 20 22:32:05 2026
--- gcc-16-20260627/gcc/cp/reflect.cc	Sat Jun 27 22:32:07 2026
*************** class_members_of (location_t loc, const
*** 7067,7072 ****
--- 7067,7079 ----
  				    get_reflection_raw (loc, m));
  	    break;
  	  }
+       for (tree m : implicitly_declared)
+ 	if (LAMBDA_FUNCTION_P (m))
+ 	  {
+ 	    CONSTRUCTOR_APPEND_ELT (elts, NULL_TREE,
+ 				    get_reflection_raw (loc, m));
+ 	    break;
+ 	  }
      }
    return elts;
  }
*************** check_out_of_consteval_use_r (tree *tp,
*** 8745,8750 ****
--- 8752,8761 ----
        || TREE_CODE (t) == DECL_EXPR
        /* Neither into USING_STMT.  */
        || TREE_CODE (t) == USING_STMT
+       /* The operand of a splice is a constant-expression, thus
+ 	 manifestly constant-evaluated, so consteval-only types are permitted
+ 	 here.  */
+       || TREE_CODE (t) == SPLICE_EXPR
        /* Blocks can appear in the TREE_VEC operand of OpenMP
  	 depend/affinity/map/to/from OMP_CLAUSEs when using iterators.  */
        || TREE_CODE (t) == BLOCK)
diff -Nrcpad gcc-16-20260620/gcc/cp/semantics.cc gcc-16-20260627/gcc/cp/semantics.cc
*** gcc-16-20260620/gcc/cp/semantics.cc	Sat Jun 20 22:32:06 2026
--- gcc-16-20260627/gcc/cp/semantics.cc	Sat Jun 27 22:32:07 2026
*************** finish_decltype_type (tree expr, bool id
*** 13253,13259 ****
  	 is T , and decltype((r)) is const T&."  */
        expr = strip_contract_const_wrapper (expr);
  
!       if (INDIRECT_REF_P (expr)
  	  || TREE_CODE (expr) == VIEW_CONVERT_EXPR)
          /* This can happen when the expression is, e.g., "a.b". Just
             look at the underlying operand.  */
--- 13253,13259 ----
  	 is T , and decltype((r)) is const T&."  */
        expr = strip_contract_const_wrapper (expr);
  
!       if (REFERENCE_REF_P (expr)
  	  || TREE_CODE (expr) == VIEW_CONVERT_EXPR)
          /* This can happen when the expression is, e.g., "a.b". Just
             look at the underlying operand.  */
diff -Nrcpad gcc-16-20260620/gcc/cp/tree.cc gcc-16-20260627/gcc/cp/tree.cc
*** gcc-16-20260620/gcc/cp/tree.cc	Sat Jun 20 22:32:06 2026
--- gcc-16-20260627/gcc/cp/tree.cc	Sat Jun 27 22:32:07 2026
*************** cp_walk_subtrees (tree *tp, int *walk_su
*** 6246,6251 ****
--- 6246,6255 ----
  	  WALK_SUBTREE (DECL_SIZE (decl));
  	  WALK_SUBTREE (DECL_SIZE_UNIT (decl));
  	}
+       if (is_typedef_decl (TREE_OPERAND (t, 0)))
+ 	/* We avoid walking into typedefs above, but we do want to walk
+ 	   into them if we're looking at the actual declaration.  */
+ 	WALK_SUBTREE (DECL_ORIGINAL_TYPE (TREE_OPERAND (t, 0)));
        break;
  
      case LAMBDA_EXPR:
diff -Nrcpad gcc-16-20260620/gcc/doc/extend.texi gcc-16-20260627/gcc/doc/extend.texi
*** gcc-16-20260620/gcc/doc/extend.texi	Sat Jun 20 22:32:06 2026
--- gcc-16-20260627/gcc/doc/extend.texi	Sat Jun 27 22:32:07 2026
*************** uint32_t amo_lwat_and (uint32_t *, uint3
*** 26965,26975 ****
--- 26965,26983 ----
  uint32_t amo_lwat_umax (uint32_t *, uint32_t);
  uint32_t amo_lwat_umin (uint32_t *, uint32_t);
  uint32_t amo_lwat_swap (uint32_t *, uint32_t);
+ uint32_t amo_lwat_cas_neq (uint32_t *, uint32_t, uint32_t);
+ uint32_t amo_lwat_inc_eq (uint32_t *);
+ uint32_t amo_lwat_inc_bounded (uint32_t *);
+ uint32_t amo_lwat_dec_bounded (uint32_t *);
  
  int32_t amo_lwat_sadd (int32_t *, int32_t);
  int32_t amo_lwat_smax (int32_t *, int32_t);
  int32_t amo_lwat_smin (int32_t *, int32_t);
  int32_t amo_lwat_sswap (int32_t *, int32_t);
+ int32_t amo_lwat_scas_neq (int32_t *, int32_t, int32_t);
+ int32_t amo_lwat_sinc_eq (int32_t *);
+ int32_t amo_lwat_sinc_bounded (int32_t *);
+ int32_t amo_lwat_sdec_bounded (int32_t *);
  
  uint64_t amo_ldat_add (uint64_t *, uint64_t);
  uint64_t amo_ldat_xor (uint64_t *, uint64_t);
*************** uint64_t amo_ldat_and (uint64_t *, uint6
*** 26978,26988 ****
--- 26986,27004 ----
  uint64_t amo_ldat_umax (uint64_t *, uint64_t);
  uint64_t amo_ldat_umin (uint64_t *, uint64_t);
  uint64_t amo_ldat_swap (uint64_t *, uint64_t);
+ uint64_t amo_ldat_cas_neq (uint64_t *, uint64_t, uint64_t);
+ uint64_t amo_ldat_inc_eq (uint64_t *);
+ uint64_t amo_ldat_inc_bounded (uint64_t *);
+ uint64_t amo_ldat_dec_bounded (uint64_t *);
  
  int64_t amo_ldat_sadd (int64_t *, int64_t);
  int64_t amo_ldat_smax (int64_t *, int64_t);
  int64_t amo_ldat_smin (int64_t *, int64_t);
  int64_t amo_ldat_sswap (int64_t *, int64_t);
+ int64_t amo_ldat_scas_neq (int64_t *, int64_t, int64_t);
+ int64_t amo_ldat_sinc_eq (int64_t *);
+ int64_t amo_ldat_sinc_bounded (int64_t *);
+ int64_t amo_ldat_sdec_bounded (int64_t *);
  
  void amo_stwat_add (uint32_t *, uint32_t);
  void amo_stwat_xor (uint32_t *, uint32_t);
*************** void amo_stwat_ior (uint32_t *, uint32_t
*** 26990,26999 ****
--- 27006,27017 ----
  void amo_stwat_and (uint32_t *, uint32_t);
  void amo_stwat_umax (uint32_t *, uint32_t);
  void amo_stwat_umin (uint32_t *, uint32_t);
+ void amo_stwat_twin (uint32_t *, uint32_t);
  
  void amo_stwat_sadd (int32_t *, int32_t);
  void amo_stwat_smax (int32_t *, int32_t);
  void amo_stwat_smin (int32_t *, int32_t);
+ void amo_stwat_stwin (int32_t *, int32_t);
  
  void amo_stdat_add (uint64_t *, uint64_t);
  void amo_stdat_xor (uint64_t *, uint64_t);
*************** void amo_stdat_ior (uint64_t *, uint64_t
*** 27001,27010 ****
--- 27019,27048 ----
  void amo_stdat_and (uint64_t *, uint64_t);
  void amo_stdat_umax (uint64_t *, uint64_t);
  void amo_stdat_umin (uint64_t *, uint64_t);
+ void amo_stdat_twin (uint64_t *, uint64_t);
  
  void amo_stdat_sadd (int64_t *, int64_t);
  void amo_stdat_smax (int64_t *, int64_t);
  void amo_stdat_smin (int64_t *, int64_t);
+ void amo_stdat_stwin (int64_t *, int64_t);
+ @end smallexample
+ 
+ Future ISA of the PowerPC added new atomic memory operation (AMO) instructions.
+ 
+ The AMO functions described in this section may be available on future PowerPC
+ processors. At present, these functions exist to allow testing of new
+ instructions. There is no guarantee that these instructions will actually be
+ implemented.
+ 
+ The functions supported are:
+ 
+ @smallexample
+ #include <amo.h>
+ 
+ uint32_t amo_lwat_cas_eq  (uint32_t *, uint32_t, uint32_t);
+ int32_t  amo_lwat_scas_eq (int32_t *, int32_t, int32_t);
+ uint64_t amo_ldat_cas_eq  (uint64_t *, uint64_t, uint64_t);
+ int64_t  amo_ldat_scas_eq (int64_t *, int64_t, int64_t);
  @end smallexample
  
  @node PowerPC Matrix-Multiply Assist Built-in Functions
diff -Nrcpad gcc-16-20260620/gcc/doc/ifn.texi gcc-16-20260627/gcc/doc/ifn.texi
*** gcc-16-20260620/gcc/doc/ifn.texi	Sat Jun 20 22:32:06 2026
--- gcc-16-20260627/gcc/doc/ifn.texi	Sat Jun 27 22:32:07 2026
*************** The @code{IFN_VEC_WIDEN_PLUS} set of int
*** 743,749 ****
  the @code{vec_widen_sadd} and @code{vec_widen_uadd} instruction patterns,
  depending on the sign of the first argument. The @code{IFN_VEC_WIDEN_PLUS_LO}
  and @code{IFN_VEC_WIDEN_PLUS_HI} work on the low and high parts of a vector,
! the @code{IFN_VEC_WIDEN_PLUS_EVEN} and @code {IFN_VEC_WIDEN_PLUS_ODD}
  functions work on the even and odd elements of a vector.
  
  @cindex @code{IFN_VEC_WIDEN_MINUS} internal function
--- 743,749 ----
  the @code{vec_widen_sadd} and @code{vec_widen_uadd} instruction patterns,
  depending on the sign of the first argument. The @code{IFN_VEC_WIDEN_PLUS_LO}
  and @code{IFN_VEC_WIDEN_PLUS_HI} work on the low and high parts of a vector,
! the @code{IFN_VEC_WIDEN_PLUS_EVEN} and @code{IFN_VEC_WIDEN_PLUS_ODD}
  functions work on the even and odd elements of a vector.
  
  @cindex @code{IFN_VEC_WIDEN_MINUS} internal function
*************** The @code{IFN_VEC_WIDEN_MINUS} set of in
*** 756,762 ****
  @code{vec_widen_ssub} and @code{vec_widen_usub} instruction patterns,
  depending on the sign of the first argument. The @code{IFN_VEC_WIDEN_MINUS_LO}
  and @code{IFN_VEC_WIDEN_MINUS_HI} work on the low and high parts of a vector,
! the @code{IFN_VEC_WIDEN_MINUS_EVEN} and @code {IFN_VEC_WIDEN_MINUS_ODD}
  functions work on the even and odd elements of a vector.
  
  @cindex @code{IFN_VEC_WIDEN_ABD} internal function
--- 756,762 ----
  @code{vec_widen_ssub} and @code{vec_widen_usub} instruction patterns,
  depending on the sign of the first argument. The @code{IFN_VEC_WIDEN_MINUS_LO}
  and @code{IFN_VEC_WIDEN_MINUS_HI} work on the low and high parts of a vector,
! the @code{IFN_VEC_WIDEN_MINUS_EVEN} and @code{IFN_VEC_WIDEN_MINUS_ODD}
  functions work on the even and odd elements of a vector.
  
  @cindex @code{IFN_VEC_WIDEN_ABD} internal function
*************** The @code{IFN_VEC_WIDEN_ABD} set of inte
*** 769,775 ****
  @code{vec_widen_sabd} and @code{vec_widen_uabd} instruction patterns,
  depending on the sign of the first argument. The @code{IFN_VEC_WIDEN_ABD_LO}
  and @code{IFN_VEC_WIDEN_ABD_HI} work on the low and high parts of a vector,
! the @code{IFN_VEC_WIDEN_ABD_EVEN} and @code {IFN_VEC_WIDEN_ABD_ODD} functions
  work on the even and odd elements of a vector.
  
  @end table
--- 769,775 ----
  @code{vec_widen_sabd} and @code{vec_widen_uabd} instruction patterns,
  depending on the sign of the first argument. The @code{IFN_VEC_WIDEN_ABD_LO}
  and @code{IFN_VEC_WIDEN_ABD_HI} work on the low and high parts of a vector,
! the @code{IFN_VEC_WIDEN_ABD_EVEN} and @code{IFN_VEC_WIDEN_ABD_ODD} functions
  work on the even and odd elements of a vector.
  
  @end table
diff -Nrcpad gcc-16-20260620/gcc/doc/riscv-mcpu.texi gcc-16-20260627/gcc/doc/riscv-mcpu.texi
*** gcc-16-20260620/gcc/doc/riscv-mcpu.texi	Sat Jun 20 22:32:06 2026
--- gcc-16-20260627/gcc/doc/riscv-mcpu.texi	Sat Jun 27 22:32:07 2026
*************** by particular CPU name. Permissible valu
*** 60,65 ****
--- 60,67 ----
  
  @samp{xt-c920v2},
  
+ @samp{tt-ascalon-x},
+ 
  @samp{tt-ascalon-d8},
  
  @samp{xiangshan-nanhu},
diff -Nrcpad gcc-16-20260620/gcc/doc/riscv-mtune.texi gcc-16-20260627/gcc/doc/riscv-mtune.texi
*** gcc-16-20260620/gcc/doc/riscv-mtune.texi	Sat Jun 20 22:32:06 2026
--- gcc-16-20260627/gcc/doc/riscv-mtune.texi	Sat Jun 27 22:32:07 2026
*************** particular CPU name.  Permissible values
*** 30,35 ****
--- 30,37 ----
  
  @samp{sifive-p600-series},
  
+ @samp{tt-ascalon-x},
+ 
  @samp{tt-ascalon-d8},
  
  @samp{thead-c906},
diff -Nrcpad gcc-16-20260620/gcc/fortran/ChangeLog gcc-16-20260627/gcc/fortran/ChangeLog
*** gcc-16-20260620/gcc/fortran/ChangeLog	Sat Jun 20 22:32:06 2026
--- gcc-16-20260627/gcc/fortran/ChangeLog	Sat Jun 27 22:32:07 2026
***************
*** 1,3 ****
--- 1,42 ----
+ 2026-06-26  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2026-06-26  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/125902
+ 	* dump-parse-tree.cc (needs_CFI_cdesc): New helper function to
+ 	determine when struct CFI_cdesc_t is used.
+ 	(has_cfi_cdesc): Use it here...
+ 	(get_c_type_name): ... and here.
+ 
+ 2026-06-24  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2026-06-23  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/125902
+ 	* dump-parse-tree.cc (get_c_type_name): Use CFI_cdesc_t also for
+ 	deferred shape and deferred length dummies, as well as for
+ 	assumed-length scalar character dummies.
+ 
+ 2026-06-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-06-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	PR fortran/60576
+ 	* trans-array.cc (gfc_conv_array_parameter): For an assumed-rank
+ 	actual argument passed to a CLASS assumed-rank formal, use a
+ 	runtime-sized memcpy for the dim[] entries instead of a full
+ 	GFC_MAX_DIMENSIONS static copy.  For a fixed-rank actual to a
+ 	CLASS assumed-rank formal, pass lhs_type=false to
+ 	gfc_class_array_data_assign so the dim[] copy is sized by the
+ 	RHS descriptor type (dim_t[rank]).  Fixed-rank class formals
+ 	retain lhs_type=true.
+ 	* trans-expr.cc (gfc_conv_derived_to_class): For an assumed-rank
+ 	actual, use a runtime-sized memcpy for the derived_array descriptor
+ 	dim[] copy instead of a full GFC_MAX_DIMENSIONS static copy.
+ 
  2026-06-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
  
  	Backported from master:
diff -Nrcpad gcc-16-20260620/gcc/fortran/dump-parse-tree.cc gcc-16-20260627/gcc/fortran/dump-parse-tree.cc
*** gcc-16-20260620/gcc/fortran/dump-parse-tree.cc	Sat Jun 20 22:32:06 2026
--- gcc-16-20260627/gcc/fortran/dump-parse-tree.cc	Sat Jun 27 22:32:07 2026
*************** static void show_external_symbol (gfc_gs
*** 4129,4134 ****
--- 4129,4147 ----
  static void write_type (gfc_symbol *sym);
  static void write_funptr_fcn (gfc_symbol *);
  
+ /* Helper function determining if the characteristics of a formal argument of a
+    bind(C) procedure is such that its C prototype needs struct CFI_cdesc_t.  */
+ 
+ static bool
+ needs_CFI_cdesc (gfc_typespec *ts, gfc_array_spec *as)
+ {
+   return ((as && (as->type == AS_ASSUMED_RANK
+ 		  || as->type == AS_ASSUMED_SHAPE
+ 		  || as->type == AS_DEFERRED))
+ 	  || (ts->type == BT_CHARACTER
+ 	      && (ts->deferred || ts->u.cl->length == NULL)));
+ }
+ 
  /* Do we need to write out an #include <ISO_Fortran_binding.h> or not?  */
  
  static void
*************** has_cfi_cdesc (gfc_gsymbol *gsym, void *
*** 4153,4159 ****
      {
        gfc_symbol *s;
        s = f->sym;
!       if (s->as && (s->as->type == AS_ASSUMED_RANK || s->as->type == AS_ASSUMED_SHAPE))
  	{
  	  *data_p = true;
  	  return;
--- 4166,4172 ----
      {
        gfc_symbol *s;
        s = f->sym;
!       if (needs_CFI_cdesc (&s->ts, s->as))
  	{
  	  *data_p = true;
  	  return;
*************** get_c_type_name (gfc_typespec *ts, gfc_a
*** 4286,4292 ****
    *post = "";
    *type_name = "<error>";
  
!   if (as && (as->type == AS_ASSUMED_RANK || as->type == AS_ASSUMED_SHAPE))
      {
        *asterisk = true;
        *post = "";
--- 4299,4305 ----
    *post = "";
    *type_name = "<error>";
  
!   if (needs_CFI_cdesc (ts, as))
      {
        *asterisk = true;
        *post = "";
diff -Nrcpad gcc-16-20260620/gcc/fortran/trans-array.cc gcc-16-20260627/gcc/fortran/trans-array.cc
*** gcc-16-20260620/gcc/fortran/trans-array.cc	Sat Jun 20 22:32:06 2026
--- gcc-16-20260627/gcc/fortran/trans-array.cc	Sat Jun 27 22:32:07 2026
*************** is_pointer (gfc_expr *e)
*** 9291,9296 ****
--- 9291,9324 ----
    return sym->attr.pointer || sym->attr.proc_pointer;
  }
  
+ /* Assumed-rank actual argument: the caller only allocates storage for dtype
+    rank dimensions. Copying GFC_MAX_DIMENSIONS dim entries would read past the
+    physical end of the descriptor. Copy the header fields explicitly and use a
+    runtime-sized memcpy for the dim[] entries.  */
+ void
+ gfc_resize_assumed_rank_dim_field (gfc_se *se, stmtblock_t *block, tree desc)
+ {
+   tree rank, dim_field, dim_size, copy_size, dst_ptr, src_ptr;
+ 
+   gfc_conv_descriptor_data_set (block, desc,
+ 				gfc_conv_descriptor_data_get (se->expr));
+   gfc_conv_descriptor_offset_set (block, desc,
+ 				  gfc_conv_descriptor_offset_get (se->expr));
+   gfc_add_modify (block, gfc_conv_descriptor_dtype (desc),
+ 		  gfc_conv_descriptor_dtype (se->expr));
+   rank = fold_convert (size_type_node, gfc_conv_descriptor_rank (se->expr));
+   dim_field = gfc_get_descriptor_dimension (se->expr);
+   dim_size = TYPE_SIZE_UNIT (TREE_TYPE (TREE_TYPE (dim_field)));
+   copy_size = fold_build2_loc (input_location, MULT_EXPR,
+ 			       size_type_node, rank, dim_size);
+   dst_ptr = gfc_build_addr_expr (pvoid_type_node,
+ 				 gfc_get_descriptor_dimension (desc));
+   src_ptr = gfc_build_addr_expr (pvoid_type_node, dim_field);
+   gfc_add_expr_to_block (block, build_call_expr_loc (input_location,
+ 			 builtin_decl_explicit (BUILT_IN_MEMCPY),
+ 			 3, dst_ptr, src_ptr, copy_size));
+ }
+ 
  /* Convert an array for passing as an actual parameter.  */
  
  void
*************** gfc_conv_array_parameter (gfc_se *se, gf
*** 9565,9571 ****
  	      gfc_conv_descriptor_offset_set (&block, arr, gfc_index_zero_node);
  	      se->expr = arr;
  	    }
! 	  gfc_class_array_data_assign (&block, tmp, se->expr, true);
  
  	  /* Handle optional.  */
  	  if (fsym && fsym->attr.optional && sym && sym->attr.optional)
--- 9593,9604 ----
  	      gfc_conv_descriptor_offset_set (&block, arr, gfc_index_zero_node);
  	      se->expr = arr;
  	    }
! 	  if (expr->rank == -1)
! 	    gfc_resize_assumed_rank_dim_field (se, &block, tmp);
! 	  else if (CLASS_DATA (fsym)->as->rank == -1)
! 	    gfc_class_array_data_assign (&block, tmp, se->expr, false);
! 	  else
! 	    gfc_class_array_data_assign (&block, tmp, se->expr, true);
  
  	  /* Handle optional.  */
  	  if (fsym && fsym->attr.optional && sym && sym->attr.optional)
diff -Nrcpad gcc-16-20260620/gcc/fortran/trans-expr.cc gcc-16-20260627/gcc/fortran/trans-expr.cc
*** gcc-16-20260620/gcc/fortran/trans-expr.cc	Sat Jun 20 22:32:06 2026
--- gcc-16-20260627/gcc/fortran/trans-expr.cc	Sat Jun 27 22:32:07 2026
*************** gfc_conv_derived_to_class (gfc_se *parms
*** 1028,1034 ****
  	    {
  	      *derived_array
  		= gfc_create_var (TREE_TYPE (parmse->expr), "array");
! 	      gfc_add_modify (&block, *derived_array, parmse->expr);
  	    }
  
  	  if (optional)
--- 1028,1066 ----
  	    {
  	      *derived_array
  		= gfc_create_var (TREE_TYPE (parmse->expr), "array");
! 	      if (e->rank == -1)
! 		{
! 		  /* Assumed-rank actual: parmse->expr physically holds only
! 		     dtype.rank dims; a full struct assign reads past the end.
! 		     Copy field-by-field with a runtime-sized dim[] memcpy.
! 		     PR fortran/60576.  */
! 		  tree rank, dim_field, dim_size, copy_size, dst_ptr, src_ptr;
! 
! 		  gfc_conv_descriptor_data_set
! 		    (&block, *derived_array,
! 		     gfc_conv_descriptor_data_get (parmse->expr));
! 		  gfc_conv_descriptor_offset_set
! 		    (&block, *derived_array,
! 		     gfc_conv_descriptor_offset_get (parmse->expr));
! 		  gfc_add_modify (&block,
! 				  gfc_conv_descriptor_dtype (*derived_array),
! 				  gfc_conv_descriptor_dtype (parmse->expr));
! 		  rank = fold_convert (size_type_node,
! 				       gfc_conv_descriptor_rank (parmse->expr));
! 		  dim_field = gfc_get_descriptor_dimension (parmse->expr);
! 		  dim_size = TYPE_SIZE_UNIT (TREE_TYPE (TREE_TYPE (dim_field)));
! 		  copy_size = fold_build2_loc (input_location, MULT_EXPR,
! 					       size_type_node, rank, dim_size);
! 		  dst_ptr = gfc_build_addr_expr
! 		    (pvoid_type_node, gfc_get_descriptor_dimension (*derived_array));
! 		  src_ptr = gfc_build_addr_expr (pvoid_type_node, dim_field);
! 		  gfc_add_expr_to_block (&block,
! 		      build_call_expr_loc (input_location,
! 					   builtin_decl_explicit (BUILT_IN_MEMCPY),
! 					   3, dst_ptr, src_ptr, copy_size));
! 		}
! 	      else
! 		gfc_add_modify (&block, *derived_array, parmse->expr);
  	    }
  
  	  if (optional)
diff -Nrcpad gcc-16-20260620/gcc/testsuite/ChangeLog gcc-16-20260627/gcc/testsuite/ChangeLog
*** gcc-16-20260620/gcc/testsuite/ChangeLog	Sat Jun 20 22:32:06 2026
--- gcc-16-20260627/gcc/testsuite/ChangeLog	Sat Jun 27 22:32:10 2026
***************
*** 1,3 ****
--- 1,166 ----
+ 2026-06-26  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-06-26  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/125900
+ 	* g++.dg/reflect/expr18.C: New test.
+ 
+ 2026-06-26  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2026-06-26  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/125902
+ 	* gfortran.dg/c-prototypes_2.F90: New test.
+ 
+ 2026-06-25  Jason Merrill  <jason@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-06-23  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/125334
+ 	* g++.dg/modules/adl-12_b.C: Check for lazy loading.
+ 
+ 2026-06-25  Jason Merrill  <jason@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-06-23  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/125768
+ 	* g++.dg/modules/alias-3_a.C: New test.
+ 	* g++.dg/modules/alias-3_b.C: New test.
+ 	* g++.dg/modules/alias-3_c.C: New test.
+ 
+ 2026-06-25  Oleg Tolmatcev  <oleg.tolmatcev@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-06-24  Oleg Tolmatcev  <oleg.tolmatcev@gmail.com>
+ 
+ 	* gcc.target/i386/prfchw-Wcast-qual-1.c: New test.
+ 
+ 2026-06-24  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2026-06-23  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/125902
+ 	* gfortran.dg/c-prototypes_1.F90: New test.
+ 
+ 2026-06-24  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/125939
+ 	* g++.dg/reflect/type_trait15.C: New test.
+ 
+ 2026-06-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-06-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	PR fortran/60576
+ 	* gfortran.dg/asan/assumed_rank_26.f90: New test covering both
+ 	assumed-rank and fixed-rank type actuals passed to a CLASS
+ 	assumed-rank dummy.
+ 
+ 2026-06-23  Jason Merrill  <jason@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-06-23  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/125745
+ 	* g++.dg/ubsan/vptr-19.C: New test.
+ 
+ 2026-06-23  Jason Merrill  <jason@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-06-21  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/125408
+ 	* g++.dg/cpp2a/lambda-targ34.C: New test.
+ 
+ 2026-06-23  Jason Merrill  <jason@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-06-21  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/125408
+ 	* g++.dg/cpp2a/lambda-targ33.C: New test.
+ 
+ 2026-06-22  Robin Dapp  <rdapp.gcc@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-06-17  Robin Dapp  <rdapp.gcc@gmail.com>
+ 
+ 	PR target/125478
+ 	* gcc.target/riscv/rvv/autovec/pr125478.c: New test.
+ 
+ 2026-06-22  Jeevitha  <jeevitha@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2026-06-09  Jeevitha Palanisamy  <jeevitha@linux.ibm.com>
+ 
+ 	* gcc.target/powerpc/amo8.c: New test.
+ 	* gcc.target/powerpc/amo9.c: New test.
+ 
+ 2026-06-22  Jeevitha  <jeevitha@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2026-06-04  Jeevitha Palanisamy  <jeevitha@linux.ibm.com>
+ 
+ 	* lib/target-supports.exp
+ 	(check_effective_target_powerpc_future_compile_ok): New target support
+ 	procedure.
+ 	(check_effective_target_powerpc_future_assemble_ok): Likewise.
+ 	(check_powerpc_future_hw_available): Likewise.
+ 	(is-effective-target): Register powerpc_future_hw.
+ 	(is-effective-target-keyword): Likewise.
+ 
+ 2026-06-22  Jeevitha  <jeevitha@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2026-06-04  Jeevitha Palanisamy  <jeevitha@linux.ibm.com>
+ 
+ 	PR target/106895
+ 	* gcc.target/powerpc/pr106895-1.c: New test.
+ 	* gcc.target/powerpc/pr106895-2.c: New test.
+ 
+ 2026-06-22  Jeevitha  <jeevitha@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2026-05-19  Peter Bergner  <bergner@linux.ibm.com>
+ 		    Jeevitha Palanisamy  <jeevitha@linux.ibm.com>
+ 
+ 	* gcc.target/powerpc/amo3.c: New test.
+ 	* gcc.target/powerpc/amo4.c: Likewise.
+ 	* gcc.target/powerpc/amo5.c: Likewise.
+ 	* gcc.target/powerpc/amo6.c: Likewise.
+ 	* gcc.target/powerpc/amo7.c: Likewise.
+ 
+ 2026-06-22  Robin Dapp  <rdapp.gcc@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-06-16  Robin Dapp  <rdapp.gcc@gmail.com>
+ 
+ 	PR target/125670
+ 	* gcc.target/riscv/rvv/autovec/pr125670.c: New test.
+ 
+ 2026-06-22  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-04-27  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/124978
+ 	PR c++/115314
+ 	* g++.dg/cpp2a/nontype-class74.C: New test.
+ 
+ 2026-06-22  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-06-22  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/125889
+ 	* g++.dg/reflect/members_of16.C: New test.
+ 
  2026-06-17  Marek Polacek  <polacek@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-16-20260620/gcc/testsuite/g++.dg/cpp2a/lambda-targ33.C gcc-16-20260627/gcc/testsuite/g++.dg/cpp2a/lambda-targ33.C
*** gcc-16-20260620/gcc/testsuite/g++.dg/cpp2a/lambda-targ33.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260627/gcc/testsuite/g++.dg/cpp2a/lambda-targ33.C	Sat Jun 27 22:32:11 2026
***************
*** 0 ****
--- 1,24 ----
+ // PR c++/125408
+ // { dg-do compile { target c++20 } }
+ 
+ struct Role {
+     long id;
+ };
+ 
+ template <typename T> T Obj;
+ template<int... I> struct A { };
+ void sink(...);
+ 
+ template <auto Ptr, typename Table>
+ constexpr int find_member_index() {
+   constexpr auto& t = Obj<Table>;
+   []<int... Idx>(A<Idx...>) {
+     sink([]() {
+       using T1 = decltype(&(t.*Ptr));
+       return Idx;
+     }() ...);
+   }(A<1,2>{});
+   return 42;
+ }
+ 
+ auto i = find_member_index<&Role::id, Role>();
diff -Nrcpad gcc-16-20260620/gcc/testsuite/g++.dg/cpp2a/lambda-targ34.C gcc-16-20260627/gcc/testsuite/g++.dg/cpp2a/lambda-targ34.C
*** gcc-16-20260620/gcc/testsuite/g++.dg/cpp2a/lambda-targ34.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260627/gcc/testsuite/g++.dg/cpp2a/lambda-targ34.C	Sat Jun 27 22:32:11 2026
***************
*** 0 ****
--- 1,31 ----
+ // PR c++/125408
+ // { dg-do compile { target c++20 } }
+ 
+ struct Role {
+   long id;
+ };
+ 
+ template <typename T>
+ struct StaticObj {
+   inline static T obj;
+ };
+ 
+ template<int... I> struct A { };
+ 
+ template <auto Ptr, typename Table>
+ constexpr int find_member_index() {
+   constexpr auto& t = StaticObj<Table>::obj;
+ 
+   [&]<int... Idx>(A<Idx...>) {
+     ([&]{
+       using T1 = decltype(&(t.*Ptr));
+       auto p = &(t.*Ptr);
+       return Idx;
+     }(), ...);
+   }(A<0,1>{});
+   return 42;
+ }
+ 
+ auto p = find_member_index<&Role::id, Role>();
+ 
+ int main() {}
diff -Nrcpad gcc-16-20260620/gcc/testsuite/g++.dg/cpp2a/nontype-class74.C gcc-16-20260627/gcc/testsuite/g++.dg/cpp2a/nontype-class74.C
*** gcc-16-20260620/gcc/testsuite/g++.dg/cpp2a/nontype-class74.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260627/gcc/testsuite/g++.dg/cpp2a/nontype-class74.C	Sat Jun 27 22:32:11 2026
***************
*** 0 ****
--- 1,15 ----
+ // PR c++/124978
+ // { dg-do compile { target c++20 } }
+ 
+ template<auto X, class = decltype(X)>
+ struct cw { static constexpr const auto& value = X; };
+ 
+ template<class L, class R>
+ auto f(L, R) -> cw<(L::value ->* R::value)>;
+ 
+ struct Divide { int value; };
+ auto co = cw<&cw<Divide{42}>::value>{};
+ auto cm = cw<&Divide::value>{};
+ 
+ using type = decltype(f(co, cm));
+ using type = cw<42, const int>; // FIXME PR115314, unexpected 'const'
diff -Nrcpad gcc-16-20260620/gcc/testsuite/g++.dg/modules/adl-12_b.C gcc-16-20260627/gcc/testsuite/g++.dg/modules/adl-12_b.C
*** gcc-16-20260620/gcc/testsuite/g++.dg/modules/adl-12_b.C	Sat Jun 20 22:32:08 2026
--- gcc-16-20260627/gcc/testsuite/g++.dg/modules/adl-12_b.C	Sat Jun 27 22:32:11 2026
***************
*** 1,4 ****
! // { dg-additional-options "-fmodules" }
  // Example from [temp.dep.candidate]
  
  namespace Q {
--- 1,4 ----
! // { dg-additional-options "-fmodules -fdump-lang-module" }
  // Example from [temp.dep.candidate]
  
  namespace Q {
*************** import M;
*** 12,19 ****
--- 12,23 ----
  
  void test(Q::X x) {
    g(x);  // OK
+   // { dg-final { scan-lang-dump "Lazily binding '::Q::g_impl'" module } }
+   // { dg-final { scan-lang-dump "Lazily binding '::Q::operator-'" module } }
    Partial<Q::X>::f<int>();
+   // { dg-final { scan-lang-dump "Lazily binding '::Q::go_partial'" module } }
    Partial<Q::X>::o<int>();
+   // { dg-final { scan-lang-dump "Lazily binding '::Q::operator/'" module } }
    incomplete(0);  // OK
    needs_completion(0);  // { dg-bogus "required from here" "PR123235" { xfail *-*-* } }
    // { dg-prune-output "not declared in this scope" }
*************** void test(Q::X x) {
*** 22,26 ****
--- 26,32 ----
    rewrite_ops(0);  // OK
    rewrite_ops_error(0);  // { dg-message "required from here" "" { target c++20 } }
    // { dg-prune-output "no match for" }
+   // { dg-final { scan-lang-dump {Lazily binding '::ops1::operator<=>'} module { target c++20 } } }
+   // { dg-final { scan-lang-dump {Lazily binding '::ops1::operator=='} module { target c++20 } } }
  #endif
  }
diff -Nrcpad gcc-16-20260620/gcc/testsuite/g++.dg/modules/alias-3_a.C gcc-16-20260627/gcc/testsuite/g++.dg/modules/alias-3_a.C
*** gcc-16-20260620/gcc/testsuite/g++.dg/modules/alias-3_a.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260627/gcc/testsuite/g++.dg/modules/alias-3_a.C	Sat Jun 27 22:32:11 2026
***************
*** 0 ****
--- 1,7 ----
+ // PR c++/125768
+ // { dg-additional-options -fmodules }
+ 
+ export module api;
+ export struct S { };
+ export template <class T> struct A { };
+ export using a_s = A<S>;
diff -Nrcpad gcc-16-20260620/gcc/testsuite/g++.dg/modules/alias-3_b.C gcc-16-20260627/gcc/testsuite/g++.dg/modules/alias-3_b.C
*** gcc-16-20260620/gcc/testsuite/g++.dg/modules/alias-3_b.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260627/gcc/testsuite/g++.dg/modules/alias-3_b.C	Sat Jun 27 22:32:11 2026
***************
*** 0 ****
--- 1,9 ----
+ // PR c++/125768
+ // { dg-additional-options -fmodules }
+ 
+ export module outer;
+ import api;
+ struct Outer {
+   a_s sub;
+   Outer();
+ };
diff -Nrcpad gcc-16-20260620/gcc/testsuite/g++.dg/modules/alias-3_c.C gcc-16-20260627/gcc/testsuite/g++.dg/modules/alias-3_c.C
*** gcc-16-20260620/gcc/testsuite/g++.dg/modules/alias-3_c.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260627/gcc/testsuite/g++.dg/modules/alias-3_c.C	Sat Jun 27 22:32:11 2026
***************
*** 0 ****
--- 1,5 ----
+ // PR c++/125768
+ // { dg-additional-options -fmodules }
+ 
+ module outer;
+ Outer::Outer() {}
diff -Nrcpad gcc-16-20260620/gcc/testsuite/g++.dg/reflect/expr18.C gcc-16-20260627/gcc/testsuite/g++.dg/reflect/expr18.C
*** gcc-16-20260620/gcc/testsuite/g++.dg/reflect/expr18.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260627/gcc/testsuite/g++.dg/reflect/expr18.C	Sat Jun 27 22:32:11 2026
***************
*** 0 ****
--- 1,25 ----
+ // PR c++/125900
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <meta>
+ #include <print>
+ 
+ struct S {
+     float f;
+ };
+ 
+ int main() {
+     S s{.f = 1.5f};
+ 
+     constexpr auto member{^^S::f};
+     std::println("{}", s.[:member:]);
+     std::println("{}", static_cast<int>(s.[:member:]));
+ 
+     constexpr auto access_context{std::meta::access_context::current()};
+     template for (constexpr auto member :
+                   std::define_static_array(nonstatic_data_members_of(^^S, access_context))) {
+         std::println("{}", s.[:member:]);
+         std::println("{}", static_cast<int>(s.[:member:]));
+     }
+ }
diff -Nrcpad gcc-16-20260620/gcc/testsuite/g++.dg/reflect/members_of16.C gcc-16-20260627/gcc/testsuite/g++.dg/reflect/members_of16.C
*** gcc-16-20260620/gcc/testsuite/g++.dg/reflect/members_of16.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260627/gcc/testsuite/g++.dg/reflect/members_of16.C	Sat Jun 27 22:32:11 2026
***************
*** 0 ****
--- 1,14 ----
+ // PR c++/125889
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <meta>
+ 
+ using L = decltype([]{});
+ /* There should be at least operator().  */
+ static_assert(members_of(^^L, std::meta::access_context::unchecked()).size() > 0);
+ /* This is lazy; there can be more members than the call operator:
+    "It is implementation-defined whether declarations of other members of
+    a closure type Q are Q-members-of-eligible."  At least we'll know when
+    something changes, though.  */
+ static_assert(is_operator_function(members_of(^^L, std::meta::access_context::unchecked())[0]));
diff -Nrcpad gcc-16-20260620/gcc/testsuite/g++.dg/reflect/type_trait15.C gcc-16-20260627/gcc/testsuite/g++.dg/reflect/type_trait15.C
*** gcc-16-20260620/gcc/testsuite/g++.dg/reflect/type_trait15.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260627/gcc/testsuite/g++.dg/reflect/type_trait15.C	Sat Jun 27 22:32:11 2026
***************
*** 0 ****
--- 1,133 ----
+ // PR c++/125939
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <meta>
+ 
+ template<typename T>
+ constexpr bool cct = std::meta::is_copy_constructible_type(^^T);
+ 
+ int main() {
+     using T = int&;
+     static_assert(std::meta::is_copy_constructible_type(^^T));
+     static_assert(cct<int&>);
+ }
+ 
+ static_assert (is_copy_constructible_type (^^int));
+ static_assert (std::is_copy_constructible_v<int>);
+ static_assert (is_copy_constructible_type (^^const int));
+ static_assert (std::is_copy_constructible_v<const int>);
+ static_assert (is_copy_constructible_type (^^int &));
+ static_assert (std::is_copy_constructible_v<int &>);
+ static_assert (is_copy_constructible_type (^^const int &));
+ static_assert (std::is_copy_constructible_v<const int &>);
+ static_assert (!is_copy_constructible_type (^^int &&));
+ static_assert (!std::is_copy_constructible_v<int &&>);
+ static_assert (!is_copy_constructible_type (^^const int &&));
+ static_assert (!std::is_copy_constructible_v<const int &&>);
+ static_assert (!is_copy_constructible_type (^^void));
+ static_assert (!std::is_copy_constructible_v<void>);
+ static_assert (!is_copy_constructible_type (^^int() const &));
+ static_assert (!std::is_copy_constructible_v<int() const &>);
+ 
+ static_assert (is_trivially_copy_constructible_type (^^int));
+ static_assert (std::is_trivially_copy_constructible_v<int>);
+ static_assert (is_trivially_copy_constructible_type (^^const int));
+ static_assert (std::is_trivially_copy_constructible_v<const int>);
+ static_assert (is_trivially_copy_constructible_type (^^int &));
+ static_assert (std::is_trivially_copy_constructible_v<int &>);
+ static_assert (is_trivially_copy_constructible_type (^^const int &));
+ static_assert (std::is_trivially_copy_constructible_v<const int &>);
+ static_assert (!is_trivially_copy_constructible_type (^^int &&));
+ static_assert (!std::is_trivially_copy_constructible_v<int &&>);
+ static_assert (!is_trivially_copy_constructible_type (^^const int &&));
+ static_assert (!std::is_trivially_copy_constructible_v<const int &&>);
+ static_assert (!is_trivially_copy_constructible_type (^^void));
+ static_assert (!std::is_trivially_copy_constructible_v<void>);
+ static_assert (!is_trivially_copy_constructible_type (^^int() const &));
+ static_assert (!std::is_trivially_copy_constructible_v<int() const &>);
+ 
+ static_assert (is_nothrow_copy_constructible_type (^^int));
+ static_assert (std::is_nothrow_copy_constructible_v<int>);
+ static_assert (is_nothrow_copy_constructible_type (^^const int));
+ static_assert (std::is_nothrow_copy_constructible_v<const int>);
+ static_assert (is_nothrow_copy_constructible_type (^^int &));
+ static_assert (std::is_nothrow_copy_constructible_v<int &>);
+ static_assert (is_nothrow_copy_constructible_type (^^const int &));
+ static_assert (std::is_nothrow_copy_constructible_v<const int &>);
+ static_assert (!is_nothrow_copy_constructible_type (^^int &&));
+ static_assert (!std::is_nothrow_copy_constructible_v<int &&>);
+ static_assert (!is_nothrow_copy_constructible_type (^^const int &&));
+ static_assert (!std::is_nothrow_copy_constructible_v<const int &&>);
+ static_assert (!is_nothrow_copy_constructible_type (^^void));
+ static_assert (!std::is_nothrow_copy_constructible_v<void>);
+ static_assert (!is_nothrow_copy_constructible_type (^^int() const &));
+ static_assert (!std::is_nothrow_copy_constructible_v<int() const &>);
+ 
+ static_assert (!is_assignable_type (^^int, ^^int));
+ static_assert (!std::is_assignable_v<int, int>);
+ static_assert (!is_assignable_type (^^const int, ^^int));
+ static_assert (!std::is_assignable_v<const int, int>);
+ static_assert (is_assignable_type (^^int &, ^^int));
+ static_assert (std::is_assignable_v<int &, int>);
+ static_assert (!is_assignable_type (^^const int &, ^^int));
+ static_assert (!std::is_assignable_v<const int &, int>);
+ static_assert (!is_assignable_type (^^int &&, ^^int));
+ static_assert (!std::is_assignable_v<int &&, int>);
+ static_assert (!is_assignable_type (^^const int &&, ^^int));
+ static_assert (!std::is_assignable_v<const int &&, int>);
+ static_assert (!is_assignable_type (^^void, ^^int));
+ static_assert (!std::is_assignable_v<void, int>);
+ static_assert (!is_assignable_type (^^int() const &, ^^int));
+ static_assert (!std::is_assignable_v<int() const &, int>);
+ 
+ static_assert (is_copy_assignable_type (^^int));
+ static_assert (std::is_copy_assignable_v<int>);
+ static_assert (!is_copy_assignable_type (^^const int));
+ static_assert (!std::is_copy_assignable_v<const int>);
+ static_assert (is_copy_assignable_type (^^int &));
+ static_assert (std::is_copy_assignable_v<int &>);
+ static_assert (!is_copy_assignable_type (^^const int &));
+ static_assert (!std::is_copy_assignable_v<const int &>);
+ static_assert (is_copy_assignable_type (^^int &&));
+ static_assert (std::is_copy_assignable_v<int &&>);
+ static_assert (!is_copy_assignable_type (^^const int &&));
+ static_assert (!std::is_copy_assignable_v<const int &&>);
+ static_assert (!is_copy_assignable_type (^^void));
+ static_assert (!std::is_copy_assignable_v<void>);
+ static_assert (!is_copy_assignable_type (^^int() const &));
+ static_assert (!std::is_copy_assignable_v<int() const &>);
+ 
+ static_assert (is_trivially_copy_assignable_type (^^int));
+ static_assert (std::is_trivially_copy_assignable_v<int>);
+ static_assert (!is_trivially_copy_assignable_type (^^const int));
+ static_assert (!std::is_trivially_copy_assignable_v<const int>);
+ static_assert (is_trivially_copy_assignable_type (^^int &));
+ static_assert (std::is_trivially_copy_assignable_v<int &>);
+ static_assert (!is_trivially_copy_assignable_type (^^const int &));
+ static_assert (!std::is_trivially_copy_assignable_v<const int &>);
+ static_assert (is_trivially_copy_assignable_type (^^int &&));
+ static_assert (std::is_trivially_copy_assignable_v<int &&>);
+ static_assert (!is_trivially_copy_assignable_type (^^const int &&));
+ static_assert (!std::is_trivially_copy_assignable_v<const int &&>);
+ static_assert (!is_trivially_copy_assignable_type (^^void));
+ static_assert (!std::is_trivially_copy_assignable_v<void>);
+ static_assert (!is_trivially_copy_assignable_type (^^int() const &));
+ static_assert (!std::is_trivially_copy_assignable_v<int() const &>);
+ 
+ static_assert (is_nothrow_copy_assignable_type (^^int));
+ static_assert (std::is_nothrow_copy_assignable_v<int>);
+ static_assert (!is_nothrow_copy_assignable_type (^^const int));
+ static_assert (!std::is_nothrow_copy_assignable_v<const int>);
+ static_assert (is_nothrow_copy_assignable_type (^^int &));
+ static_assert (std::is_nothrow_copy_assignable_v<int &>);
+ static_assert (!is_nothrow_copy_assignable_type (^^const int &));
+ static_assert (!std::is_nothrow_copy_assignable_v<const int &>);
+ static_assert (is_nothrow_copy_assignable_type (^^int &&));
+ static_assert (std::is_nothrow_copy_assignable_v<int &&>);
+ static_assert (!is_nothrow_copy_assignable_type (^^const int &&));
+ static_assert (!std::is_nothrow_copy_assignable_v<const int &&>);
+ static_assert (!is_nothrow_copy_assignable_type (^^void));
+ static_assert (!std::is_nothrow_copy_assignable_v<void>);
+ static_assert (!is_nothrow_copy_assignable_type (^^int() const &));
+ static_assert (!std::is_nothrow_copy_assignable_v<int() const &>);
diff -Nrcpad gcc-16-20260620/gcc/testsuite/g++.dg/ubsan/vptr-19.C gcc-16-20260627/gcc/testsuite/g++.dg/ubsan/vptr-19.C
*** gcc-16-20260620/gcc/testsuite/g++.dg/ubsan/vptr-19.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260627/gcc/testsuite/g++.dg/ubsan/vptr-19.C	Sat Jun 27 22:32:12 2026
***************
*** 0 ****
--- 1,8 ----
+ // PR c++/125745
+ // { dg-do compile { target c++11 } }
+ // { dg-additional-options -fsanitize=undefined }
+ 
+ struct A { virtual void foo (); };
+ struct B : A { constexpr int foo () const { return 42; } };
+ constexpr B x;
+ struct C { int i; C () : i (x.foo ()) {} };
diff -Nrcpad gcc-16-20260620/gcc/testsuite/gcc.target/i386/prfchw-Wcast-qual-1.c gcc-16-20260627/gcc/testsuite/gcc.target/i386/prfchw-Wcast-qual-1.c
*** gcc-16-20260620/gcc/testsuite/gcc.target/i386/prfchw-Wcast-qual-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260627/gcc/testsuite/gcc.target/i386/prfchw-Wcast-qual-1.c	Sat Jun 27 22:32:14 2026
***************
*** 0 ****
--- 1,16 ----
+ /* Verify that _m_prefetchw does not produce -Wcast-qual warnings when
+    included as a system header.  The cast (const void *) drops volatile
+    from volatile const void *, which would trigger -Wcast-qual if not
+    in a system header.  */
+ /* { dg-do compile } */
+ /* { dg-options "-mprfchw -O2 -Wcast-qual" } */
+ 
+ #include <x86intrin.h>
+ 
+ void
+ prefetchw_cast_qual_test (volatile void *p)
+ {
+     _m_prefetchw (p);
+ }
+ 
+ /* { dg-bogus "cast discards .volatile. qualifier" "" { target *-*-* } 0 } */
diff -Nrcpad gcc-16-20260620/gcc/testsuite/gcc.target/powerpc/amo3.c gcc-16-20260627/gcc/testsuite/gcc.target/powerpc/amo3.c
*** gcc-16-20260620/gcc/testsuite/gcc.target/powerpc/amo3.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260627/gcc/testsuite/gcc.target/powerpc/amo3.c	Sat Jun 27 22:32:14 2026
***************
*** 0 ****
--- 1,133 ----
+ /* { dg-do compile { target { lp64 } } } */
+ /* { dg-options "-mdejagnu-cpu=power9 -O2" } */
+ 
+ /* Verify whether the compiler generates expected code for the ISA 3.0 amo
+    (atomic memory operations) functions  */
+ 
+ #include <amo.h>
+ #include <stdint.h>
+ 
+ uint32_t
+ do_lw_cs_ne (uint32_t *mem, uint32_t cond, uint32_t value)
+ {
+   return amo_lwat_cas_neq (mem, cond, value);
+ }
+ 
+ int32_t
+ do_lw_scs_ne (int32_t *mem, int32_t cond, int32_t value)
+ {
+   return amo_lwat_scas_neq (mem, cond, value);
+ }
+ 
+ uint32_t
+ do_lw_inc_equal (uint32_t *mem)
+ {
+   return amo_lwat_inc_eq (mem);
+ }
+ 
+ int32_t
+ do_lw_sinc_equal (int32_t *mem)
+ {
+   return amo_lwat_sinc_eq (mem);
+ }
+ 
+ uint32_t
+ do_lw_inc_bounded (uint32_t *mem)
+ {
+   return amo_lwat_inc_bounded (mem);
+ }
+ 
+ int32_t
+ do_lw_sinc_bounded (int32_t *mem)
+ {
+   return amo_lwat_sinc_bounded (mem);
+ }
+ 
+ uint32_t
+ do_lw_dec_bounded (uint32_t *mem)
+ {
+   return amo_lwat_dec_bounded (mem);
+ }
+ 
+ int32_t
+ do_lw_sdec_bounded (int32_t *mem)
+ {
+   return amo_lwat_sdec_bounded (mem);
+ }
+ 
+ uint64_t
+ do_ld_cs_ne (uint64_t *mem, uint64_t cond, uint64_t value)
+ {
+   return amo_ldat_cas_neq (mem, cond, value);
+ }
+ 
+ int64_t
+ do_ld_scs_ne (int64_t *mem, int64_t cond, int64_t value)
+ {
+   return amo_ldat_scas_neq (mem, cond, value);
+ }
+ 
+ uint64_t
+ do_ld_inc_equal (uint64_t *mem)
+ {
+   return amo_ldat_inc_eq (mem);
+ }
+ 
+ int64_t
+ do_ld_sinc_equal (int64_t *mem)
+ {
+   return amo_ldat_sinc_eq (mem);
+ }
+ 
+ uint64_t
+ do_ld_inc_bounded (uint64_t *mem)
+ {
+   return amo_ldat_inc_bounded (mem);
+ }
+ 
+ int64_t
+ do_ld_sinc_bounded (int64_t *mem)
+ {
+   return amo_ldat_sinc_bounded (mem);
+ }
+ 
+ uint64_t
+ do_ld_dec_bounded (uint64_t *mem)
+ {
+   return amo_ldat_dec_bounded (mem);
+ }
+ 
+ int64_t
+ do_ld_sdec_bounded (int64_t *mem)
+ {
+   return amo_ldat_sdec_bounded (mem);
+ }
+ 
+ void
+ do_sw_twin (uint32_t *mem, uint32_t value)
+ {
+   amo_stwat_twin (mem, value);
+ }
+ 
+ void
+ do_sw_stwin (int32_t *mem, int32_t value)
+ {
+   amo_stwat_stwin (mem, value);
+ }
+ 
+ void
+ do_sd_twin (uint64_t *mem, uint64_t value)
+ {
+   amo_stdat_twin (mem, value);
+ }
+ 
+ void
+ do_sd_stwin (int64_t *mem, int64_t value)
+ {
+   amo_stdat_stwin (mem, value);
+ }
+ 
+ /* { dg-final { scan-assembler-times {\mldat\M}  8 } } */
+ /* { dg-final { scan-assembler-times {\mlwat\M}  8 } } */
+ /* { dg-final { scan-assembler-times {\mstdat\M}  2 } } */
+ /* { dg-final { scan-assembler-times {\mstwat\M}  2 } } */
diff -Nrcpad gcc-16-20260620/gcc/testsuite/gcc.target/powerpc/amo4.c gcc-16-20260627/gcc/testsuite/gcc.target/powerpc/amo4.c
*** gcc-16-20260620/gcc/testsuite/gcc.target/powerpc/amo4.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260627/gcc/testsuite/gcc.target/powerpc/amo4.c	Sat Jun 27 22:32:14 2026
***************
*** 0 ****
--- 1,94 ----
+ /* { dg-do run { target { lp64 && p9vector_hw } } } */
+ /* { dg-options "-mdejagnu-cpu=power9 -O2" } */
+ 
+ /* This test uses uint64_t types. lp64 is added to avoid running it on 32-bit
+     target. The test is skipped on 32-bit systems. */
+ 
+ #include <amo.h>
+ #include <stdint.h>
+ #include <stdlib.h>
+ #include <limits.h>
+ 
+ /* Test whether the compiler generates expected code for the ISA 3.0 amo
+    (atomic memory operations) functions  */
+ 
+ /* 32-bit tests.  */
+ static uint32_t u32_ld[4][2] = {
+   { 10, 15 },			/* Increment Bounded */
+   { 10, 10 },			/* Increment Bounded */
+   { 10, 10 },			/* Increment Equal */
+   { 10, 15 }			/* Increment Equal */
+ };
+ 
+ static uint32_t u32_actual_result[4];
+ 
+ static uint32_t u32_update[4] = {
+   10 + 1,			/* Increment Bounded */
+   10,				/* Increment Bounded */
+   10 + 1,			/* Increment Equal */
+   10				/* Increment Equal */
+ };
+ 
+ static uint32_t u32_expected_result[4] = {
+   10,				/* Increment Bounded */
+   INT_MIN,			/* Increment Bounded */
+   10,				/* Increment Equal */
+   INT_MIN			/* Increment Equal */
+ };
+ 
+ /* 64-bit tests.  */
+ static uint64_t u64_ld[4][2] = {
+   { 10, 15 },			/* Increment Bounded */
+   { 10, 10 },			/* Increment Bounded */
+   { 10, 10 },			/* Increment Equal */
+   { 10, 15 }			/* Increment Equal */
+ };
+ 
+ static uint64_t u64_actual_result[4];
+ 
+ static uint64_t u64_update[4] = {
+   10 + 1,			/* Increment Bounded */
+   10,				/* Increment Bounded */
+   10 + 1,			/* Increment Equal */
+   10				/* Increment Equal */
+ };
+ 
+ static uint64_t u64_expected_result[4] = {
+   10,				/* Increment Bounded */
+   INT64_MIN,			/* Increment Bounded */
+   10,				/* Increment Equal */
+   INT64_MIN			/* Increment Equal */
+ };
+ 
+ int
+ main (void)
+ {
+   size_t i;
+ 
+   u32_actual_result[0] = amo_lwat_inc_bounded (&u32_ld[0][0]);
+   u32_actual_result[1] = amo_lwat_inc_bounded (&u32_ld[1][0]);
+   u32_actual_result[2] = amo_lwat_inc_eq (&u32_ld[2][0]);
+   u32_actual_result[3] = amo_lwat_inc_eq (&u32_ld[3][0]);
+ 
+   u64_actual_result[0] = amo_ldat_inc_bounded (&u64_ld[0][0]);
+   u64_actual_result[1] = amo_ldat_inc_bounded (&u64_ld[1][0]);
+   u64_actual_result[2] = amo_ldat_inc_eq (&u64_ld[2][0]);
+   u64_actual_result[3] = amo_ldat_inc_eq (&u64_ld[3][0]);
+ 
+   for (i = 0; i < 4; i++)
+     {
+       if (u32_actual_result[i] != u32_expected_result[i])
+ 	abort ();
+ 
+       if (u32_ld[i][0] != u32_update[i])
+ 	abort ();
+ 
+       if (u64_actual_result[i] != u64_expected_result[i])
+ 	abort ();
+ 
+       if (u64_ld[i][0] != u64_update[i])
+ 	abort ();
+     }
+ 
+   return 0;
+ }
diff -Nrcpad gcc-16-20260620/gcc/testsuite/gcc.target/powerpc/amo5.c gcc-16-20260627/gcc/testsuite/gcc.target/powerpc/amo5.c
*** gcc-16-20260620/gcc/testsuite/gcc.target/powerpc/amo5.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260627/gcc/testsuite/gcc.target/powerpc/amo5.c	Sat Jun 27 22:32:14 2026
***************
*** 0 ****
--- 1,61 ----
+ /* { dg-do run { target { lp64 && p9vector_hw } } } */
+ /* { dg-options "-mdejagnu-cpu=power9 -O2" } */
+ 
+ /* This test uses uint64_t types. lp64 is added to avoid running it on 32-bit
+     target. The test is skipped on 32-bit systems. */
+ 
+ #include <amo.h>
+ #include <stdint.h>
+ #include <stdlib.h>
+ #include <limits.h>
+ 
+ /* Test whether the compiler generates expected code for the ISA 3.0 amo
+    (atomic memory operations) functions  */
+ 
+ int
+ main (void)
+ {
+   static uint32_t u32_test1_mem = 100;
+   static uint32_t u32_test1_cond = 200;
+   static uint32_t u32_test1_value = 250;
+   static uint32_t u32_test1_expected_result = 100;
+   static uint32_t u32_test1_actual_result;
+ 
+   static uint32_t u32_test2_mem = 100;
+   static uint32_t u32_test2_cond = 100;
+   static uint32_t u32_test2_value = 250;
+   static uint32_t u32_test2_expected_result = 100;
+   static uint32_t u32_test2_actual_result;
+ 
+   static uint64_t u64_mem = 200;
+   static uint64_t u64_cond = 300;
+   static uint64_t u64_value = 250;
+   static uint64_t u64_expected_result = 200;
+   static uint64_t u64_actual_result;
+ 
+   u32_test1_actual_result = amo_lwat_cas_neq (&u32_test1_mem,
+ 					       u32_test1_cond, u32_test1_value);
+   u32_test2_actual_result = amo_lwat_cas_neq (&u32_test2_mem,
+ 					       u32_test2_cond, u32_test2_value);
+   u64_actual_result = amo_ldat_cas_neq (&u64_mem, u64_cond, u64_value);
+ 
+   if (u32_test1_mem != u32_test1_value)
+     abort ();
+ 
+   if (u32_test1_actual_result != u32_test1_expected_result)
+     abort ();
+ 
+   if (u32_test2_mem != u32_test2_expected_result)
+     abort ();
+ 
+   if (u32_test2_actual_result != u32_test2_expected_result)
+     abort ();
+ 
+   if (u64_mem != u64_value)
+     abort ();
+ 
+   if (u64_actual_result != u64_expected_result)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-16-20260620/gcc/testsuite/gcc.target/powerpc/amo6.c gcc-16-20260627/gcc/testsuite/gcc.target/powerpc/amo6.c
*** gcc-16-20260620/gcc/testsuite/gcc.target/powerpc/amo6.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260627/gcc/testsuite/gcc.target/powerpc/amo6.c	Sat Jun 27 22:32:14 2026
***************
*** 0 ****
--- 1,47 ----
+ /* { dg-do run { target { lp64 && p9vector_hw } } } */
+ /* { dg-options "-mdejagnu-cpu=power9 -O2" } */
+ 
+ /* This test uses uint64_t types. lp64 is added to avoid running it on 32-bit
+     target. The test is skipped on 32-bit systems. */
+ 
+ #include <amo.h>
+ #include <stdint.h>
+ #include <stdlib.h>
+ #include <limits.h>
+ 
+ /* Test whether the compiler generates expected code for the ISA 3.0 amo
+    (atomic memory operations) functions  */
+ 
+ int
+ main (void)
+ {
+   size_t i;
+   static uint32_t u32_test1_expected_result[2] = { 5, 5 };
+   static uint32_t u32_test1_mem[2] = { 3, 3 };
+   static uint32_t u32_value_to_store = 5;
+ 
+   static uint32_t u32_test2_mem[2] = { 3, 4 };
+   static uint32_t u32_test2_expected_result[2] = { 3, 4 };
+ 
+   static uint64_t u64_test_expected_result[2] = { 9, 9 };
+   static uint64_t u64_test_mem[2]  = { 7, 7 };
+   static uint64_t u64_value_to_store = 9;
+ 
+   amo_stwat_twin (u32_test1_mem, u32_value_to_store);
+   amo_stwat_twin (u32_test2_mem, u32_value_to_store);
+   amo_stdat_twin (u64_test_mem, u64_value_to_store);
+ 
+   for (i = 0; i < 2; i++)
+     {
+       if (u32_test1_mem[i] != u32_test1_expected_result[i])
+ 	abort ();
+ 
+       if (u32_test2_mem[i] != u32_test2_expected_result[i])
+ 	abort ();
+ 
+       if (u64_test_mem[i] != u64_test_expected_result[i])
+ 	abort ();
+     }
+ 
+   return 0;
+ }
diff -Nrcpad gcc-16-20260620/gcc/testsuite/gcc.target/powerpc/amo7.c gcc-16-20260627/gcc/testsuite/gcc.target/powerpc/amo7.c
*** gcc-16-20260620/gcc/testsuite/gcc.target/powerpc/amo7.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260627/gcc/testsuite/gcc.target/powerpc/amo7.c	Sat Jun 27 22:32:14 2026
***************
*** 0 ****
--- 1,78 ----
+ /* { dg-do run { target { lp64 && p9vector_hw } } } */
+ /* { dg-options "-mdejagnu-cpu=power9 -O2" } */
+ 
+ /* This test uses uint64_t types. lp64 is added to avoid running it on 32-bit
+     target. The test is skipped on 32-bit systems. */
+ 
+ #include <amo.h>
+ #include <stdint.h>
+ #include <stdlib.h>
+ #include <limits.h>
+ 
+ /* Test whether the compiler generates expected code for the ISA 3.0 amo
+    (atomic memory operations) functions  */
+ 
+ /* 32-bit tests.  */
+ static uint32_t u32_ld[2][2] = {
+   { 10, 15 },			/* Decrement Bounded */
+   { 10, 10 },			/* Decrement Bounded */
+ };
+ 
+ static uint32_t u32_actual_result[2];
+ 
+ static uint32_t u32_update[2] = {
+   15 - 1,			/* Decrement Bounded */
+   10,				/* Decrement Bounded */
+ };
+ 
+ static uint32_t u32_expected_result[2] = {
+   15,				/* Decrement Bounded */
+   INT_MIN,			/* Decrement Bounded */
+ };
+ 
+ /* 64-bit tests.  */
+ static uint64_t u64_ld[2][2] = {
+   { 10, 15 },                   /* Decrement Bounded */
+   { 10, 10 },                   /* Decrement Bounded */
+ };
+ 
+ static uint64_t u64_actual_result[2];
+ 
+ static uint64_t u64_update[2] = {
+   15 - 1,                       /* Decrement Bounded */
+   10,                           /* Decrement Bounded */
+ };
+ 
+ static uint64_t u64_expected_result[2] = {
+   15,                           /* Decrement Bounded */
+   INT64_MIN,                    /* Decrement Bounded */
+ };
+ 
+ int
+ main (void)
+ {
+   size_t i;
+ 
+   u32_actual_result[0] = amo_lwat_dec_bounded (&u32_ld[0][0]);
+   u32_actual_result[1] = amo_lwat_dec_bounded (&u32_ld[1][0]);
+ 
+   u64_actual_result[0] = amo_ldat_dec_bounded (&u64_ld[0][0]);
+   u64_actual_result[1] = amo_ldat_dec_bounded (&u64_ld[1][0]);
+  
+   for (i = 0; i < 2; i++)
+     {
+       if (u32_actual_result[i] != u32_expected_result[i])
+ 	abort ();
+ 
+       if (u32_ld[i][1] != u32_update[i])
+ 	abort ();
+ 
+       if (u64_actual_result[i] != u64_expected_result[i])
+ 	abort ();
+ 
+       if (u64_ld[i][1] != u64_update[i])
+ 	abort ();
+     }
+ 
+   return 0;
+ }
diff -Nrcpad gcc-16-20260620/gcc/testsuite/gcc.target/powerpc/amo8.c gcc-16-20260627/gcc/testsuite/gcc.target/powerpc/amo8.c
*** gcc-16-20260620/gcc/testsuite/gcc.target/powerpc/amo8.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260627/gcc/testsuite/gcc.target/powerpc/amo8.c	Sat Jun 27 22:32:14 2026
***************
*** 0 ****
--- 1,36 ----
+ /* { dg-do compile { target { lp64 } } } */
+ /* { dg-options "-mdejagnu-cpu=future -O2" } */
+ /* { dg-require-effective-target powerpc_future_compile_ok } */
+ 
+ #include <amo.h>
+ #include <stdint.h>
+ 
+ /* Test whether the compiler generates expected code for the ISA <future> AMO
+    (atomic memory operations) functions  */
+ 
+ uint32_t
+ do_lw_cs_eq (uint32_t *mem, uint32_t cond, uint32_t value)
+ {
+   return amo_lwat_cas_eq (mem, cond, value);
+ }
+ 
+ int32_t
+ do_lw_scs_eq (int32_t *mem, int32_t cond, int32_t value)
+ {
+   return amo_lwat_scas_eq (mem, cond, value);
+ }
+ 
+ uint64_t
+ do_ld_cs_eq (uint64_t *mem, uint64_t cond, uint64_t value)
+ {
+   return amo_ldat_cas_eq (mem, cond, value);
+ }
+ 
+ int64_t
+ do_ld_scs_eq (int64_t *mem, int64_t cond, int64_t value)
+ {
+   return amo_ldat_scas_eq (mem, cond, value);
+ }
+ 
+ /* { dg-final { scan-assembler-times {\mlwat\M}  2 } } */
+ /* { dg-final { scan-assembler-times {\mldat\M}  2 } } */
diff -Nrcpad gcc-16-20260620/gcc/testsuite/gcc.target/powerpc/amo9.c gcc-16-20260627/gcc/testsuite/gcc.target/powerpc/amo9.c
*** gcc-16-20260620/gcc/testsuite/gcc.target/powerpc/amo9.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260627/gcc/testsuite/gcc.target/powerpc/amo9.c	Sat Jun 27 22:32:14 2026
***************
*** 0 ****
--- 1,57 ----
+ /* { dg-do run { target { lp64 } } } */
+ /* { dg-options "-mdejagnu-cpu=future -O2" } */
+ /* { dg-require-effective-target powerpc_future_hw } */
+ 
+ #include <amo.h>
+ #include <stdint.h>
+ #include <stdlib.h>
+ #include <limits.h>
+ 
+ /* Test whether the compiler generates expected output for the Future ISA amo
+    (atomic memory operations) functions  */
+ 
+ int
+ main (void)
+ {
+   static uint32_t u32_test1_mem = 100;
+   static uint32_t u32_test1_cond = 100;
+   static uint32_t u32_test1_value = 250;
+   static uint32_t u32_test1_expected_result = 100;
+   static uint32_t u32_test1_actual_result;
+   static uint32_t u32_test2_mem = 100;
+   static uint32_t u32_test2_cond = 200;
+   static uint32_t u32_test2_value = 250;
+   static uint32_t u32_test2_expected_result = 100;
+   static uint32_t u32_test2_actual_result;
+   static uint64_t u64_mem = 300;
+   static uint64_t u64_cond = 300;
+   static uint64_t u64_value = 250;
+   static uint64_t u64_expected_result = 300;
+   static uint64_t u64_actual_result;
+ 
+   u32_test1_actual_result = amo_lwat_cas_eq (&u32_test1_mem,
+ 					     u32_test1_cond, u32_test1_value);
+   u32_test2_actual_result = amo_lwat_cas_eq (&u32_test2_mem,
+ 					     u32_test2_cond, u32_test2_value);
+   u64_actual_result = amo_ldat_cas_eq (&u64_mem, u64_cond, u64_value);
+ 
+   if (u32_test1_mem != u32_test1_value)
+     abort ();
+ 
+   if (u32_test1_actual_result != u32_test1_expected_result)
+     abort ();
+ 
+   if (u32_test2_mem != u32_test2_expected_result)
+     abort ();
+ 
+   if (u32_test2_actual_result != u32_test2_expected_result)
+     abort ();
+ 
+   if (u64_mem != u64_value)
+     abort ();
+ 
+   if (u64_actual_result != u64_expected_result)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-16-20260620/gcc/testsuite/gcc.target/powerpc/pr106895-1.c gcc-16-20260627/gcc/testsuite/gcc.target/powerpc/pr106895-1.c
*** gcc-16-20260620/gcc/testsuite/gcc.target/powerpc/pr106895-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260627/gcc/testsuite/gcc.target/powerpc/pr106895-1.c	Sat Jun 27 22:32:14 2026
***************
*** 0 ****
--- 1,16 ----
+ /* PR target/106895 */
+ /* { dg-do assemble } */
+ /* { dg-require-effective-target int128 } */
+ /* { dg-options "-O2 -save-temps" } */
+ 
+ /* Verify the following generates even/odd register pairs.  */
+ 
+ typedef __int128 pti __attribute__((mode(PTI)));
+ 
+ void
+ set128 (pti val, pti *mem)
+ {
+   asm ("stq %1,%0" : "=m" (*mem) : "r" (val));
+ }
+ 
+ /* { dg-final { scan-assembler {\mstq\M} } } */
diff -Nrcpad gcc-16-20260620/gcc/testsuite/gcc.target/powerpc/pr106895-2.c gcc-16-20260627/gcc/testsuite/gcc.target/powerpc/pr106895-2.c
*** gcc-16-20260620/gcc/testsuite/gcc.target/powerpc/pr106895-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260627/gcc/testsuite/gcc.target/powerpc/pr106895-2.c	Sat Jun 27 22:32:14 2026
***************
*** 0 ****
--- 1,24 ----
+ /* PR target/106895 */
+ /* { dg-do run } */
+ /* { dg-require-effective-target int128 } */
+ /* { dg-options "-O2" } */
+ 
+ #include <stdlib.h>
+ 
+ typedef __int128 ti;
+ typedef __int128 pti __attribute__((mode(PTI)));
+ 
+ volatile ti  a = 140;
+ volatile pti b;
+ volatile ti  c;
+ 
+ int main(void)
+ {
+   b = (pti) a;
+   c = (ti) b;
+ 
+   if (c != a)
+     abort();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-16-20260620/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr125478.c gcc-16-20260627/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr125478.c
*** gcc-16-20260620/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr125478.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260627/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr125478.c	Sat Jun 27 22:32:14 2026
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d -O3 -mrvv-vector-bits=zvl -fdump-rtl-avlprop-details" } */
+ 
+ long long a;
+ long b;
+ char c[169];
+ int d;
+ 
+ int main() {
+   for (long g=0; g<13; ++g)
+     for (long h=0; h<13; ++h)
+       c[g*13 +h] = 8;
+ 
+   for (unsigned g=0; g<13; g++)
+     for (int h=0; h<13; h +=3)
+       b += (c[g*13+h]) >> c[g*13 +9];
+ 
+   a = (int)b;
+   if (a != 0)
+     __builtin_abort ();
+ }
+ 
+ /* { dg-final { scan-rtl-dump-not "Propagating AVL: \\(const_int 1 \\\[0x1\\\]\\)" "avlprop" } } */
diff -Nrcpad gcc-16-20260620/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr125670.c gcc-16-20260627/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr125670.c
*** gcc-16-20260620/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr125670.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260627/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr125670.c	Sat Jun 27 22:32:14 2026
***************
*** 0 ****
--- 1,51 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O3  -mcpu=spacemit-x60 -mabi=lp64d -w -std=gnu89" } */
+ 
+ unsigned int
+ f1 (int diff)
+ {
+   return ((unsigned int) (diff < 0 ? -diff : diff));
+ }
+ 
+ unsigned int
+ f2 (unsigned int diff)
+ {
+   return ((unsigned int) ((signed int) diff < 0 ? -diff : diff));
+ }
+ 
+ unsigned long long
+ f3 (long long diff)
+ {
+   return ((unsigned long long) (diff < 0 ? -diff : diff));
+ }
+ 
+ unsigned long long
+ f4 (unsigned long long diff)
+ {
+   return ((unsigned long long) ((signed long long) diff < 0 ? -diff : diff));
+ }
+ 
+ main ()
+ {
+   int i;
+   for (i = 0; i <= 10; i++)
+     {
+       if (f1 (i) != i)
+ 	abort ();
+       if (f1 (-i) != i)
+ 	abort ();
+       if (f2 (i) != i)
+ 	abort ();
+       if (f2 (-i) != i)
+ 	abort ();
+       if (f3 ((long long) i) != i)
+ 	abort ();
+       if (f3 ((long long) -i) != i)
+ 	abort ();
+       if (f4 ((long long) i) != i)
+ 	abort ();
+       if (f4 ((long long) -i) != i)
+ 	abort ();
+     }
+   exit (0);
+ }
diff -Nrcpad gcc-16-20260620/gcc/testsuite/gcc.target/s390/pr125992.c gcc-16-20260627/gcc/testsuite/gcc.target/s390/pr125992.c
*** gcc-16-20260620/gcc/testsuite/gcc.target/s390/pr125992.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260627/gcc/testsuite/gcc.target/s390/pr125992.c	Sat Jun 27 22:32:15 2026
***************
*** 0 ****
--- 1,41 ----
+ /* PR target/125992 */
+ /* { dg-do run { target s390_useable_hw } } */
+ /* { dg-options "-O2 -march=z13" } */
+ 
+ long a, b, c, d[4];
+ 
+ [[gnu::noipa]] long
+ foo ()
+ {
+   return d[c++];
+ }
+ 
+ [[gnu::noipa]] void
+ bar ()
+ {
+   long e = 0;
+   for (;;)
+     {
+       e += a;
+       a = foo ();
+       if (b + a > e)
+ 	return;
+       if (a == 0)
+ 	break;
+       if (a > 0)
+ 	b += a;
+     }
+ }
+ 
+ int
+ main ()
+ {
+   a = 16;
+   b = -64;
+   c = 0;
+   d[0] = 64;
+   d[1] = 128;
+   bar ();
+   if (b != 0)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-16-20260620/gcc/testsuite/gfortran.dg/asan/assumed_rank_26.f90 gcc-16-20260627/gcc/testsuite/gfortran.dg/asan/assumed_rank_26.f90
*** gcc-16-20260620/gcc/testsuite/gfortran.dg/asan/assumed_rank_26.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260627/gcc/testsuite/gfortran.dg/asan/assumed_rank_26.f90	Sat Jun 27 22:32:15 2026
***************
*** 0 ****
--- 1,39 ----
+ ! { dg-do run }
+ !
+ ! PR fortran/60576
+ !
+ ! Stack buffer overflow when passing an assumed-rank type(T) dummy argument
+ ! to an assumed-rank class(T) dummy argument.  The caller only allocates
+ ! storage for dtype.rank dimensions in the descriptor; generating a full
+ ! GFC_MAX_DIMENSIONS copy caused a stack-buffer-overflow detected by ASan.
+ 
+ implicit none
+ type t
+   integer :: i
+ end type
+ 
+ type(T) :: at(2:3,2:4)
+ integer :: i = 0
+ 
+ call bar(at)
+ if (i /= 2) STOP 1
+ 
+ contains
+   subroutine bar(x)
+     type(t) :: x(..)
+     if (lbound(x,1) /= 1 .or. lbound(x,2) /= 1) STOP 2
+     if (size(x) /= 6) STOP 3
+     if (size(x,1) /= 2 .or. size(x,2) /= 3) STOP 4
+     if (ubound(x,1) /= 2 .or. ubound(x,2) /= 3) STOP 5
+     i = i + 1
+     call foo(x)
+   end subroutine
+   subroutine foo(x)
+     class(t) :: x(..)
+     if (lbound(x,1) /= 1 .or. lbound(x,2) /= 1) STOP 6
+     if (size(x) /= 6) STOP 7
+     if (size(x,1) /= 2 .or. size(x,2) /= 3) STOP 8
+     if (ubound(x,1) /= 2 .or. ubound(x,2) /= 3) STOP 9
+     i = i + 1
+   end subroutine
+ end
diff -Nrcpad gcc-16-20260620/gcc/testsuite/gfortran.dg/c-prototypes_1.F90 gcc-16-20260627/gcc/testsuite/gfortran.dg/c-prototypes_1.F90
*** gcc-16-20260620/gcc/testsuite/gfortran.dg/c-prototypes_1.F90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260627/gcc/testsuite/gfortran.dg/c-prototypes_1.F90	Sat Jun 27 22:32:15 2026
***************
*** 0 ****
--- 1,61 ----
+ ! { dg-do compile }
+ ! { dg-options "-fc-prototypes" }
+ !
+ ! PR fortran/125902
+ !
+ ! Test -fc-prototypes for deferred shape and deferred length dummies
+ 
+ module test_c_prototypes_module
+ 
+   use iso_c_binding
+   implicit none (type, external)
+ 
+   interface
+     subroutine testsub1(b, c, d, r, ier) bind(C)
+       import
+       character(kind=c_char,len=*),              intent(in)    :: b
+       real(c_float),  dimension(:),              intent(inout) :: c
+       real(c_double), dimension(:), allocatable, intent(inout) :: d
+       character(kind=c_char,len=:), allocatable, intent(inout) :: r
+       integer(c_int),                            intent(out)   :: ier
+     end subroutine testsub1
+   end interface
+ 
+   interface
+     subroutine testsub2(b, msg, c, d, r) bind(C)
+       import
+       character(kind=c_char),                intent(in)    :: b(:)
+       character(kind=c_char),                intent(out)   :: msg(*)
+       real(c_float),  dimension(*),          intent(inout) :: c
+       real(c_double), dimension(:), pointer, intent(inout) :: d
+       character(kind=c_char,len=:), pointer, intent(inout) :: r
+     end subroutine testsub2
+   end interface
+ 
+ end module test_c_prototypes_module 
+ 
+ #if 0
+ !{ dg-begin-multiline-output "" }
+ #include <stddef.h>
+ #ifdef __cplusplus
+ #include <complex>
+ #define __GFORTRAN_FLOAT_COMPLEX std::complex<float>
+ #define __GFORTRAN_DOUBLE_COMPLEX std::complex<double>
+ #define __GFORTRAN_LONG_DOUBLE_COMPLEX std::complex<long double>
+ extern "C" {
+ #else
+ #define __GFORTRAN_FLOAT_COMPLEX float _Complex
+ #define __GFORTRAN_DOUBLE_COMPLEX double _Complex
+ #define __GFORTRAN_LONG_DOUBLE_COMPLEX long double _Complex
+ #endif
+ 
+ #include <ISO_Fortran_binding.h>
+ 
+ void testsub1 (const CFI_cdesc_t *b, CFI_cdesc_t *c, CFI_cdesc_t *d, CFI_cdesc_t *r, int *ier);
+ void testsub2 (const CFI_cdesc_t *b, char *msg, float *c, CFI_cdesc_t *d, CFI_cdesc_t *r);
+ 
+ #ifdef __cplusplus
+ }
+ #endif
+ !{ dg-end-multiline-output "" }
+ #endif
diff -Nrcpad gcc-16-20260620/gcc/testsuite/gfortran.dg/c-prototypes_2.F90 gcc-16-20260627/gcc/testsuite/gfortran.dg/c-prototypes_2.F90
*** gcc-16-20260620/gcc/testsuite/gfortran.dg/c-prototypes_2.F90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260627/gcc/testsuite/gfortran.dg/c-prototypes_2.F90	Sat Jun 27 22:32:15 2026
***************
*** 0 ****
--- 1,35 ----
+ ! { dg-do compile }
+ ! { dg-options "-fc-prototypes" }
+ !
+ ! PR fortran/125902
+ !
+ ! Test -fc-prototypes for assumed length character dummy, header include
+ 
+ subroutine sub (b) bind(C)
+   character(*) :: b
+ end subroutine sub
+ 
+ #if 0
+ !{ dg-begin-multiline-output "" }
+ #include <stddef.h>
+ #ifdef __cplusplus
+ #include <complex>
+ #define __GFORTRAN_FLOAT_COMPLEX std::complex<float>
+ #define __GFORTRAN_DOUBLE_COMPLEX std::complex<double>
+ #define __GFORTRAN_LONG_DOUBLE_COMPLEX std::complex<long double>
+ extern "C" {
+ #else
+ #define __GFORTRAN_FLOAT_COMPLEX float _Complex
+ #define __GFORTRAN_DOUBLE_COMPLEX double _Complex
+ #define __GFORTRAN_LONG_DOUBLE_COMPLEX long double _Complex
+ #endif
+ 
+ #include <ISO_Fortran_binding.h>
+ 
+ void sub (CFI_cdesc_t *b);
+ 
+ #ifdef __cplusplus
+ }
+ #endif
+ !{ dg-end-multiline-output "" }
+ #endif
diff -Nrcpad gcc-16-20260620/gcc/testsuite/lib/target-supports.exp gcc-16-20260627/gcc/testsuite/lib/target-supports.exp
*** gcc-16-20260620/gcc/testsuite/lib/target-supports.exp	Sat Jun 20 22:32:12 2026
--- gcc-16-20260627/gcc/testsuite/lib/target-supports.exp	Sat Jun 27 22:32:16 2026
*************** proc check_effective_target_power10_ok {
*** 8029,8034 ****
--- 8029,8082 ----
      }
  }
  
+ # Return 1 if this is a PowerPC target where the compiler supports
+ # compiling with -mcpu=future (i.e., the compiler recognizes _ARCH_FUTURE),
+ # return 0 otherwise.
+ 
+ proc check_effective_target_powerpc_future_compile_ok { } {
+     return [check_no_compiler_messages_nocache powerpc_future_compile_ok assembly {
+ 	void test (void) {
+ 	    #ifndef _ARCH_FUTURE
+ 	      #error does not have powerpc future support.
+ 	    #else
+ 	      /* "has powerpc future support" */
+ 	    #endif
+ 	}
+     } "-mcpu=future"]
+ }
+ 
+ # Return 1 if this is a PowerPC target where the assembler supports
+ # assembling future instructions with -mcpu=future (i.e., the assembler
+ # can assemble the subwus instruction), return 0 otherwise.
+ 
+ proc check_effective_target_powerpc_future_assemble_ok { } {
+     return [check_no_compiler_messages_nocache powerpc_future_assemble_ok object {
+ 	unsigned int a, b, c;
+ 	int main (void) {
+ 	    asm ("subwus %0,%1,%2" : "=r" (a) : "r" (b), "r" (c));
+ 	    return 0;
+ 	}
+     } "-mcpu=future"]
+ }
+ 
+ # Return 1 if the target hardware supports executing PowerPC future
+ # instructions at runtime (i.e., the subwus instruction executes
+ # correctly), return 0 otherwise.
+ 
+ proc check_powerpc_future_hw_available { } {
+     return [check_cached_effective_target powerpc_future_hw_available {
+ 	check_runtime_nocache powerpc_future_hw_available {
+ 	    int main() {
+ 		unsigned int a = 5, b = 3, result = 0xDEADBEEF;
+ 		asm ("subwus %0,%1,%2" : "=r" (result) : "r" (a), "r" (b));
+ 		if (result == 0)
+ 		  return 0;
+ 		return 1;
+ 	    }
+ 	} "-mcpu=future"
+     }]
+ }
+ 
  # Return 1 if this is a PowerPC target supporting -mfloat128 via either
  # software emulation on power7/power8 systems or hardware support on power9.
  
*************** proc is-effective-target { arg } {
*** 10684,10689 ****
--- 10732,10738 ----
  	  "p9vector_hw"    { set selected [check_p9vector_hw_available] }
  	  "p9modulo_hw"    { set selected [check_p9modulo_hw_available] }
  	  "power10_hw"     { set selected [check_power10_hw_available] }
+ 	  "powerpc_future_hw" { set selected [check_powerpc_future_hw_available] }
  	  "ppc_float128_sw" { set selected [check_ppc_float128_sw_available] }
  	  "ppc_float128_hw" { set selected [check_ppc_float128_hw_available] }
  	  "ppc_recip_hw"   { set selected [check_ppc_recip_hw_available] }
*************** proc is-effective-target-keyword { arg }
*** 10717,10722 ****
--- 10766,10772 ----
  	  "p9vector_hw"    { return 1 }
  	  "p9modulo_hw"    { return 1 }
  	  "power10_hw"     { return 1 }
+ 	  "powerpc_future_hw" { return 1 }
  	  "ppc_float128_sw" { return 1 }
  	  "ppc_float128_hw" { return 1 }
  	  "ppc_recip_hw"   { return 1 }
diff -Nrcpad gcc-16-20260620/libstdc++-v3/ChangeLog gcc-16-20260627/libstdc++-v3/ChangeLog
*** gcc-16-20260620/libstdc++-v3/ChangeLog	Sat Jun 20 22:32:14 2026
--- gcc-16-20260627/libstdc++-v3/ChangeLog	Sat Jun 27 22:32:18 2026
***************
*** 1,3 ****
--- 1,69 ----
+ 2026-06-25  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-06-25  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* src/c++23/Makefile.am (stamp-modules-bits): Use abs_builddir instead
+ 	of abs_srcdir.
+ 	* src/c++23/Makefile.in: Regenerate.
+ 
+ 2026-06-24  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	Backported from master:
+ 	2026-06-24  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* src/c++23/Makefile.am (libstdc++.modules.json): Rewrite
+ 	without abspath make function.
+ 	(stamp-modules-bits): Likewise.
+ 	* src/c++23/Makefile.in: Rebuilt.
+ 
+ 2026-06-23  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-06-23  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/chrono.h (std::chrono_literals): Fix typo in
+ 	comment.
+ 
+ 2026-06-23  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-06-23  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/xml/manual/debug_mode.xml: Remove 404 link to stlport
+ 	website and modernise some text about debug modes in other
+ 	implementations.
+ 	* doc/html/manual/debug_mode_design.html: Regenerate.
+ 
+ 2026-06-23  Nathan Myers  <ncm@cantrip.org>
+ 
+ 	PR libstdc++/125890
+ 	* include/bits/memory_resource.h (allocate_at_least): Add to
+ 	allocator_traits<pmr::polymorphic_allocator> specialization.
+ 	* testsuite/20_util/polymorphic_allocator/at_least.cc: New test.
+ 
+ 2026-06-23  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-06-13  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* include/bits/version.def (constant_wrapper): Bump to 202606L.
+ 	* include/bits/version.h: Regenerate.
+ 	* include/bits/funcref_impl.h (function_ref::function_ref): Rename
+ 	template parameter from __cwfn to __fn and use it direclty.
+ 	* include/bits/funcwrap.h (function_ref): Rename template parameter
+ 	to __fn.
+ 	(std::constant_wrapper): Use auto as non-type template parameter,
+ 	and refeference it as value.
+ 	* include/bits/utility.h (__CwFixedValue): Remove.
+ 	* include/std/mdspan (__mdspan::__is_constant_wrapper):
+ 	Use auto as non-type template parameter.
+ 	* testsuite/20_util/constant_wrapper/generic.cc: Remove arrays
+ 	and string literal tests. Add test for address of value.
+ 	* testsuite/20_util/constant_wrapper/other_wrappers.cc:
+ 	Remove test_array.
+ 	* testsuite/20_util/constant_wrapper/type_param_neg.cc: New file.
+ 
  2026-06-04  Patrick Palka  <ppalka@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-16-20260620/libstdc++-v3/doc/html/manual/debug_mode_design.html gcc-16-20260627/libstdc++-v3/doc/html/manual/debug_mode_design.html
*** gcc-16-20260620/libstdc++-v3/doc/html/manual/debug_mode_design.html	Sat Jun 20 22:32:14 2026
--- gcc-16-20260627/libstdc++-v3/doc/html/manual/debug_mode_design.html	Sat Jun 27 22:32:18 2026
*************** test02()
*** 390,405 ****
    Library (STL), implemented by Cay S. Horstmann on top of the
    Hewlett-Packard STL. Though it inspired much work in this area, it
    has not been kept up-to-date for use with modern compilers or C++
!   standard library implementations.</p></li><li class="listitem"><p><a class="link" href="http://www.stlport.org/" target="_top">STLport</a>: STLport is a free
    implementation of the C++ standard library derived from the <a class="link" href="https://web.archive.org/web/20171225062613/http://www.sgi.com/tech/stl/" target="_top">SGI implementation</a>, and
!   ported to many other platforms. It includes a debug mode that uses a
    wrapper model (that in some ways inspired the libstdc++ debug mode
!   design), although at the time of this writing the debug mode is
!   somewhat incomplete and meets only the "Full user recompilation" (2)
    recompilation guarantee by requiring the user to link against a
    different library in debug mode vs. release mode.</p></li><li class="listitem"><p>Metrowerks CodeWarrior: The C++ standard library
!   that ships with Metrowerks CodeWarrior includes a debug mode. It is
    a full debug-mode implementation (including debugging for
!   CodeWarrior extensions) and is easy to use, although it meets only
    the "Full recompilation" (1) recompilation
!   guarantee.</p></li></ul></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="debug_mode_using.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="debug_mode.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="parallel_mode.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Using </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 18. Parallel Mode</td></tr></table></div></body></html>
\ No newline at end of file
--- 390,407 ----
    Library (STL), implemented by Cay S. Horstmann on top of the
    Hewlett-Packard STL. Though it inspired much work in this area, it
    has not been kept up-to-date for use with modern compilers or C++
!   standard library implementations.</p></li><li class="listitem"><p>STLport: STLport was a free
    implementation of the C++ standard library derived from the <a class="link" href="https://web.archive.org/web/20171225062613/http://www.sgi.com/tech/stl/" target="_top">SGI implementation</a>, and
!   ported to many other platforms. It included a debug mode that used a
    wrapper model (that in some ways inspired the libstdc++ debug mode
!   design), although its debug mode was
!   somewhat incomplete and met only the "Full user recompilation" (2)
    recompilation guarantee by requiring the user to link against a
    different library in debug mode vs. release mode.</p></li><li class="listitem"><p>Metrowerks CodeWarrior: The C++ standard library
!   that shipped with Metrowerks CodeWarrior included a debug mode. It was
    a full debug-mode implementation (including debugging for
!   CodeWarrior extensions) and was easy to use, although it met only
    the "Full recompilation" (1) recompilation
!   guarantee.</p></li><li class="listitem"><p>The MSVC STL and LLVM libc++ implementations of the
!   C++ Standard Library both include some form of debug mode.
!   </p></li></ul></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="debug_mode_using.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="debug_mode.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="parallel_mode.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Using </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 18. Parallel Mode</td></tr></table></div></body></html>
\ No newline at end of file
diff -Nrcpad gcc-16-20260620/libstdc++-v3/doc/xml/manual/debug_mode.xml gcc-16-20260627/libstdc++-v3/doc/xml/manual/debug_mode.xml
*** gcc-16-20260620/libstdc++-v3/doc/xml/manual/debug_mode.xml	Sat Jun 20 22:32:14 2026
--- gcc-16-20260627/libstdc++-v3/doc/xml/manual/debug_mode.xml	Sat Jun 27 22:32:18 2026
*************** test02()
*** 883,903 ****
    has not been kept up-to-date for use with modern compilers or C++
    standard library implementations.</para></listitem>
  
!   <listitem><para><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.stlport.org/">STLport</link>: STLport is a free
    implementation of the C++ standard library derived from the <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://web.archive.org/web/20171225062613/http://www.sgi.com/tech/stl/">SGI implementation</link>, and
!   ported to many other platforms. It includes a debug mode that uses a
    wrapper model (that in some ways inspired the libstdc++ debug mode
!   design), although at the time of this writing the debug mode is
!   somewhat incomplete and meets only the "Full user recompilation" (2)
    recompilation guarantee by requiring the user to link against a
    different library in debug mode vs. release mode.</para></listitem>
  
    <listitem><para>Metrowerks CodeWarrior: The C++ standard library
!   that ships with Metrowerks CodeWarrior includes a debug mode. It is
    a full debug-mode implementation (including debugging for
!   CodeWarrior extensions) and is easy to use, although it meets only
    the "Full recompilation" (1) recompilation
    guarantee.</para></listitem>
  </itemizedlist>
  
    </section>
--- 883,907 ----
    has not been kept up-to-date for use with modern compilers or C++
    standard library implementations.</para></listitem>
  
!   <listitem><para>STLport: STLport was a free
    implementation of the C++ standard library derived from the <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://web.archive.org/web/20171225062613/http://www.sgi.com/tech/stl/">SGI implementation</link>, and
!   ported to many other platforms. It included a debug mode that used a
    wrapper model (that in some ways inspired the libstdc++ debug mode
!   design), although its debug mode was
!   somewhat incomplete and met only the "Full user recompilation" (2)
    recompilation guarantee by requiring the user to link against a
    different library in debug mode vs. release mode.</para></listitem>
  
    <listitem><para>Metrowerks CodeWarrior: The C++ standard library
!   that shipped with Metrowerks CodeWarrior included a debug mode. It was
    a full debug-mode implementation (including debugging for
!   CodeWarrior extensions) and was easy to use, although it met only
    the "Full recompilation" (1) recompilation
    guarantee.</para></listitem>
+ 
+   <listitem><para>The MSVC STL and LLVM libc++ implementations of the
+   C++ Standard Library both include some form of debug mode.
+   </para></listitem>
  </itemizedlist>
  
    </section>
diff -Nrcpad gcc-16-20260620/libstdc++-v3/include/bits/chrono.h gcc-16-20260627/libstdc++-v3/include/bits/chrono.h
*** gcc-16-20260620/libstdc++-v3/include/bits/chrono.h	Sat Jun 20 22:32:14 2026
--- gcc-16-20260627/libstdc++-v3/include/bits/chrono.h	Sat Jun 27 22:32:18 2026
*************** _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
*** 1352,1358 ****
     * for example `1.5e2ms` might be equivalent to
     * `chrono::duration<long double, chrono::milli>(1.5e2)`.
     *
!    * @since C+14
     * @ingroup chrono
     */
    inline namespace chrono_literals
--- 1352,1358 ----
     * for example `1.5e2ms` might be equivalent to
     * `chrono::duration<long double, chrono::milli>(1.5e2)`.
     *
!    * @since C++14
     * @ingroup chrono
     */
    inline namespace chrono_literals
diff -Nrcpad gcc-16-20260620/libstdc++-v3/include/bits/funcref_impl.h gcc-16-20260627/libstdc++-v3/include/bits/funcref_impl.h
*** gcc-16-20260620/libstdc++-v3/include/bits/funcref_impl.h	Sat Jun 20 22:32:14 2026
--- gcc-16-20260627/libstdc++-v3/include/bits/funcref_impl.h	Sat Jun 27 22:32:18 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 129,140 ****
        // _GLIBCXX_RESOLVE_LIB_DEFECTS
        // 4256. Incorrect constrains for function_ref constructors from nontype
        /// Target object is __fn. There is no bound object.
!       template<auto __cwfn, typename _Fn>
  	requires __is_invocable_using<const _Fn&>
  	constexpr
! 	function_ref(constant_wrapper<__cwfn, _Fn>) noexcept
  	{
- 	  constexpr const _Fn& __fn = constant_wrapper<__cwfn, _Fn>::value;
  	  if constexpr (sizeof...(_ArgTypes) > 0)
  	    if constexpr ((... && _ConstExprParam<remove_cvref_t<_ArgTypes>>))
  	      static_assert(!requires {
--- 129,139 ----
        // _GLIBCXX_RESOLVE_LIB_DEFECTS
        // 4256. Incorrect constrains for function_ref constructors from nontype
        /// Target object is __fn. There is no bound object.
!       template<auto __fn, typename _Fn>
  	requires __is_invocable_using<const _Fn&>
  	constexpr
! 	function_ref(constant_wrapper<__fn, _Fn>) noexcept
  	{
  	  if constexpr (sizeof...(_ArgTypes) > 0)
  	    if constexpr ((... && _ConstExprParam<remove_cvref_t<_ArgTypes>>))
  	      static_assert(!requires {
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 151,164 ****
  
        /// Target object is equivalent to std::bind_front<_fn>(std::ref(__ref)).
        /// Bound object is object referenced by second parameter.
!       template<auto __cwfn, typename _Fn, typename _Up,
  	       typename _Td = remove_reference_t<_Up>>
  	requires (!is_rvalue_reference_v<_Up&&>)
  		 && __is_invocable_using<const _Fn&, _Td _GLIBCXX_MOF_CV&>
  	constexpr
! 	function_ref(constant_wrapper<__cwfn, _Fn>, _Up&& __ref) noexcept
  	{
- 	  constexpr const _Fn& __fn = constant_wrapper<__cwfn, _Fn>::value;
  	  if constexpr (is_pointer_v<_Fn> || is_member_pointer_v<_Fn>)
  	    static_assert(__fn != nullptr);
  
--- 150,162 ----
  
        /// Target object is equivalent to std::bind_front<_fn>(std::ref(__ref)).
        /// Bound object is object referenced by second parameter.
!       template<auto __fn, typename _Fn, typename _Up,
  	       typename _Td = remove_reference_t<_Up>>
  	requires (!is_rvalue_reference_v<_Up&&>)
  		 && __is_invocable_using<const _Fn&, _Td _GLIBCXX_MOF_CV&>
  	constexpr
! 	function_ref(constant_wrapper<__fn, _Fn>, _Up&& __ref) noexcept
  	{
  	  if constexpr (is_pointer_v<_Fn> || is_member_pointer_v<_Fn>)
  	    static_assert(__fn != nullptr);
  
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 174,185 ****
  
        /// Target object is equivalent to std::bind_front<_fn>(__ptr).
        /// Bound object is object pointed by second parameter (if any).
!       template< auto __cwfn, typename _Fn, typename _Td>
  	requires __is_invocable_using<const _Fn&, _Td _GLIBCXX_MOF_CV*>
  	constexpr
! 	function_ref(constant_wrapper<__cwfn, _Fn>, _Td _GLIBCXX_MOF_CV* __ptr) noexcept
  	{
- 	  constexpr const _Fn& __fn = constant_wrapper<__cwfn, _Fn>::value;
  	  if constexpr (is_pointer_v<_Fn> || is_member_pointer_v<_Fn>)
  	    static_assert(__fn != nullptr);
  	  if constexpr (is_member_pointer_v<_Fn>)
--- 172,182 ----
  
        /// Target object is equivalent to std::bind_front<_fn>(__ptr).
        /// Bound object is object pointed by second parameter (if any).
!       template<auto __fn, typename _Fn, typename _Td>
  	requires __is_invocable_using<const _Fn&, _Td _GLIBCXX_MOF_CV*>
  	constexpr
! 	function_ref(constant_wrapper<__fn, _Fn>, _Td _GLIBCXX_MOF_CV* __ptr) noexcept
  	{
  	  if constexpr (is_pointer_v<_Fn> || is_member_pointer_v<_Fn>)
  	    static_assert(__fn != nullptr);
  	  if constexpr (is_member_pointer_v<_Fn>)
diff -Nrcpad gcc-16-20260620/libstdc++-v3/include/bits/funcwrap.h gcc-16-20260627/libstdc++-v3/include/bits/funcwrap.h
*** gcc-16-20260620/libstdc++-v3/include/bits/funcwrap.h	Sat Jun 20 22:32:14 2026
--- gcc-16-20260627/libstdc++-v3/include/bits/funcwrap.h	Sat Jun 27 22:32:18 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 573,588 ****
      requires is_function_v<_Fn>
      function_ref(_Fn*) -> function_ref<_Fn>;
  
!   template<auto __cwfn, typename _Fn>
      requires is_function_v<remove_pointer_t<_Fn>>
!     function_ref(constant_wrapper<__cwfn, _Fn>)
        -> function_ref<remove_pointer_t<_Fn>>;
  
!   template<auto __cwfn, typename _Fn, typename _Tp,
  	   typename _SignaturePtr =
  	     decltype(__polyfunc::__deduce_funcref<_Fn, _Tp&>())>
      requires (!is_void_v<_SignaturePtr>)
!     function_ref(constant_wrapper<__cwfn, _Fn>, _Tp&&)
        -> function_ref<remove_pointer_t<_SignaturePtr>>;
  
  #endif // __glibcxx_function_ref
--- 573,588 ----
      requires is_function_v<_Fn>
      function_ref(_Fn*) -> function_ref<_Fn>;
  
!   template<auto __fn, typename _Fn>
      requires is_function_v<remove_pointer_t<_Fn>>
!     function_ref(constant_wrapper<__fn, _Fn>)
        -> function_ref<remove_pointer_t<_Fn>>;
  
!   template<auto __fn, typename _Fn, typename _Tp,
  	   typename _SignaturePtr =
  	     decltype(__polyfunc::__deduce_funcref<_Fn, _Tp&>())>
      requires (!is_void_v<_SignaturePtr>)
!     function_ref(constant_wrapper<__fn, _Fn>, _Tp&&)
        -> function_ref<remove_pointer_t<_SignaturePtr>>;
  
  #endif // __glibcxx_function_ref
diff -Nrcpad gcc-16-20260620/libstdc++-v3/include/bits/memory_resource.h gcc-16-20260627/libstdc++-v3/include/bits/memory_resource.h
*** gcc-16-20260620/libstdc++-v3/include/bits/memory_resource.h	Sat Jun 20 22:32:14 2026
--- gcc-16-20260627/libstdc++-v3/include/bits/memory_resource.h	Sat Jun 27 22:32:18 2026
***************
*** 48,53 ****
--- 48,54 ----
  # include <bits/utility.h>		// index_sequence
  # include <tuple>			// tuple, forward_as_tuple
  #endif
+ #include <bits/memoryfwd.h>
  
  namespace std _GLIBCXX_VISIBILITY(default)
  {
*************** namespace pmr
*** 468,473 ****
--- 469,490 ----
        allocate(allocator_type& __a, size_type __n, const_void_pointer)
        { return __a.allocate(__n); }
  
+ #ifdef __glibcxx_allocate_at_least
+       /**
+        *  @brief  Allocate memory.
+        *  @param  __a  An allocator.
+        *  @param  __n  The number of objects to allocate space for.
+        *  @return Memory of suitable size and alignment for `n` objects
+        *          of type `value_type`.
+        *
+        *  Just returns `{ a.allocate(n), n }`: `polymorphic_allocator`
+        *  cannot be extended without breaking ABI.
+       */
+       [[nodiscard]] static std::allocation_result<pointer, size_type>
+       allocate_at_least(allocator_type& __a, size_type __n)
+       { return { __a.allocate(__n), __n }; }
+ #endif
+ 
        /**
         *  @brief  Deallocate memory.
         *  @param  __a  An allocator.
diff -Nrcpad gcc-16-20260620/libstdc++-v3/include/bits/utility.h gcc-16-20260627/libstdc++-v3/include/bits/utility.h
*** gcc-16-20260620/libstdc++-v3/include/bits/utility.h	Sat Jun 20 22:32:14 2026
--- gcc-16-20260627/libstdc++-v3/include/bits/utility.h	Sat Jun 27 22:32:19 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 141,182 ****
  #endif
  
  #ifdef __glibcxx_constant_wrapper // C++ >= 26
!   template<typename _Tp>
!     struct _CwFixedValue
!     {
!       using __type = _Tp;
! 
!       constexpr
!       _CwFixedValue(__type __v) noexcept
!       : _M_data(__v) { }
! 
!       __type _M_data;
!     };
! 
!   template<typename _Tp, size_t _Extent>
!     struct _CwFixedValue<_Tp[_Extent]>
!     {
!       using __type = _Tp[_Extent];
! 
!       constexpr
!       _CwFixedValue(_Tp (&__arr)[_Extent]) noexcept
!         : _CwFixedValue(__arr, typename _Build_index_tuple<_Extent>::__type())
!       { }
! 
!       template<size_t... _Indices>
! 	constexpr
! 	_CwFixedValue(_Tp (&__arr)[_Extent], _Index_tuple<_Indices...>) noexcept
! 	  : _M_data{__arr[_Indices]...}
! 	{ }
! 
!       _Tp _M_data[_Extent];
!     };
! 
!   template<typename _Tp, size_t _Extent>
!     _CwFixedValue(_Tp (&)[_Extent]) -> _CwFixedValue<_Tp[_Extent]>;
! 
!   template<_CwFixedValue _Xv,
! 	   typename = typename decltype(_CwFixedValue(_Xv))::__type>
      struct constant_wrapper;
  
    template<typename _Tp>
--- 141,148 ----
  #endif
  
  #ifdef __glibcxx_constant_wrapper // C++ >= 26
!   // remove_cvref_t needed due PR115314
!   template<auto _Xv, typename _Vt = remove_cvref_t<decltype(_Xv)>>
      struct constant_wrapper;
  
    template<typename _Tp>
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 430,441 ****
        { return {}; }
    };
  
!   template<_CwFixedValue _Xv, typename>
    struct constant_wrapper : _CwOperators
    {
!     static constexpr const auto& value = _Xv._M_data;
      using type = constant_wrapper;
!     using value_type = typename decltype(_Xv)::__type;
  
      template<_ConstExprParam _Right>
        constexpr auto
--- 396,409 ----
        { return {}; }
    };
  
!   template<auto _Xv, typename _Vt>
    struct constant_wrapper : _CwOperators
    {
!     // Use decltype((_Xv)) instead of decltype(auto) due PR125188
!     static constexpr decltype((_Xv)) value = (_Xv);
      using type = constant_wrapper;
!     using value_type = decltype(_Xv);
!     static_assert(is_same_v<value_type, _Vt>);
  
      template<_ConstExprParam _Right>
        constexpr auto
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 490,497 ****
    template<auto __cw, typename _Fn>
      constexpr bool __is_constant_wrapper_v<constant_wrapper<__cw, _Fn>> = true;
  
!   template<_CwFixedValue _Tp>
!     constexpr auto cw = constant_wrapper<_Tp>{};
  #endif
  
  #ifdef __glibcxx_integer_sequence // C++ >= 14
--- 458,465 ----
    template<auto __cw, typename _Fn>
      constexpr bool __is_constant_wrapper_v<constant_wrapper<__cw, _Fn>> = true;
  
!   template<auto _Xv>
!     constexpr auto cw = constant_wrapper<_Xv>{};
  #endif
  
  #ifdef __glibcxx_integer_sequence // C++ >= 14
diff -Nrcpad gcc-16-20260620/libstdc++-v3/include/bits/version.def gcc-16-20260627/libstdc++-v3/include/bits/version.def
*** gcc-16-20260620/libstdc++-v3/include/bits/version.def	Sat Jun 20 22:32:14 2026
--- gcc-16-20260627/libstdc++-v3/include/bits/version.def	Sat Jun 27 22:32:19 2026
*************** ftms = {
*** 410,418 ****
    name = constant_wrapper;
    // 202506 P2781R9 std::constexpr_wrapper 
    // 202603 P3978R3 constant_wrapper should unwrap on call and subscript
    values = {
!     v = 202603;
!     cxxmin = 26;
    };
  };
  
--- 410,419 ----
    name = constant_wrapper;
    // 202506 P2781R9 std::constexpr_wrapper 
    // 202603 P3978R3 constant_wrapper should unwrap on call and subscript
+   // 202606 P4206R0 Revert string support in std::constant_wrapper
    values = {
!     v = 202606;
!     cxxmin = 26; // P4206R0 accepted as DR for C++26
    };
  };
  
diff -Nrcpad gcc-16-20260620/libstdc++-v3/include/bits/version.h gcc-16-20260627/libstdc++-v3/include/bits/version.h
*** gcc-16-20260620/libstdc++-v3/include/bits/version.h	Sat Jun 20 22:32:14 2026
--- gcc-16-20260627/libstdc++-v3/include/bits/version.h	Sat Jun 27 22:32:19 2026
***************
*** 447,455 ****
  
  #if !defined(__cpp_lib_constant_wrapper)
  # if (__cplusplus >  202302L)
! #  define __glibcxx_constant_wrapper 202603L
  #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constant_wrapper)
! #   define __cpp_lib_constant_wrapper 202603L
  #  endif
  # endif
  #endif /* !defined(__cpp_lib_constant_wrapper) */
--- 447,455 ----
  
  #if !defined(__cpp_lib_constant_wrapper)
  # if (__cplusplus >  202302L)
! #  define __glibcxx_constant_wrapper 202606L
  #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constant_wrapper)
! #   define __cpp_lib_constant_wrapper 202606L
  #  endif
  # endif
  #endif /* !defined(__cpp_lib_constant_wrapper) */
diff -Nrcpad gcc-16-20260620/libstdc++-v3/include/std/mdspan gcc-16-20260627/libstdc++-v3/include/std/mdspan
*** gcc-16-20260620/libstdc++-v3/include/std/mdspan	Sat Jun 20 22:32:14 2026
--- gcc-16-20260627/libstdc++-v3/include/std/mdspan	Sat Jun 27 22:32:19 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 907,913 ****
      template<typename _Tp>
        constexpr bool __is_constant_wrapper = false;
  
!     template<_CwFixedValue _Xv, typename _Tp>
        constexpr bool __is_constant_wrapper<constant_wrapper<_Xv, _Tp>>
  	= true;
  
--- 907,913 ----
      template<typename _Tp>
        constexpr bool __is_constant_wrapper = false;
  
!     template<auto _Xv, typename _Tp>
        constexpr bool __is_constant_wrapper<constant_wrapper<_Xv, _Tp>>
  	= true;
  
diff -Nrcpad gcc-16-20260620/libstdc++-v3/src/c++23/Makefile.am gcc-16-20260627/libstdc++-v3/src/c++23/Makefile.am
*** gcc-16-20260620/libstdc++-v3/src/c++23/Makefile.am	Sat Jun 20 22:32:14 2026
--- gcc-16-20260627/libstdc++-v3/src/c++23/Makefile.am	Sat Jun 27 22:32:19 2026
*************** includebits_DATA = std.cc std.compat.cc
*** 37,44 ****
  # The manifest to be installed uses the relative path between install dirs.
  libstdc++.modules.json: libstdc++.modules.json.in
  	relpath=$$($(toplevel_srcdir)/contrib/relpath.sh \
! 		   $(abspath $(toolexeclibdir)) \
! 		   $(abspath $(includebitsdir))) && \
  	sed "s,@MODPATH@,$$relpath," $< > $@
  
  # The uninstalled manifest uses the relative path to builddir.
--- 37,44 ----
  # The manifest to be installed uses the relative path between install dirs.
  libstdc++.modules.json: libstdc++.modules.json.in
  	relpath=$$($(toplevel_srcdir)/contrib/relpath.sh \
! 		    $(toolexeclibdir) \
! 		    $(includebitsdir)) && \
  	sed "s,@MODPATH@,$$relpath," $< > $@
  
  # The uninstalled manifest uses the relative path to builddir.
*************** std.compat.cc: std.compat.cc.in std-clib
*** 57,63 ****
  # Also put the interface units in the build-includes bits directory.
  stamp-modules-bits: $(includebits_DATA)
  	@-mkdir -p $(top_builddir)/include/bits
! 	-cd $(top_builddir)/include/bits && $(LN_S) $(abspath $?) . 2>/dev/null
  	@$(STAMP) $@
  
  all-local: stamp-module-manifest stamp-modules-bits
--- 57,65 ----
  # Also put the interface units in the build-includes bits directory.
  stamp-modules-bits: $(includebits_DATA)
  	@-mkdir -p $(top_builddir)/include/bits
! 	-for f in $(includebits_DATA); do \
! 	  $(LN_S) $(abs_builddir)/$$f $(top_builddir)/include/bits; \
! 	done 2>/dev/null
  	@$(STAMP) $@
  
  all-local: stamp-module-manifest stamp-modules-bits
diff -Nrcpad gcc-16-20260620/libstdc++-v3/src/c++23/Makefile.in gcc-16-20260627/libstdc++-v3/src/c++23/Makefile.in
*** gcc-16-20260620/libstdc++-v3/src/c++23/Makefile.in	Sat Jun 20 22:32:14 2026
--- gcc-16-20260627/libstdc++-v3/src/c++23/Makefile.in	Sat Jun 27 22:32:19 2026
*************** uninstall-am: uninstall-includebitsDATA
*** 845,852 ****
  # The manifest to be installed uses the relative path between install dirs.
  libstdc++.modules.json: libstdc++.modules.json.in
  	relpath=$$($(toplevel_srcdir)/contrib/relpath.sh \
! 		   $(abspath $(toolexeclibdir)) \
! 		   $(abspath $(includebitsdir))) && \
  	sed "s,@MODPATH@,$$relpath," $< > $@
  
  # The uninstalled manifest uses the relative path to builddir.
--- 845,852 ----
  # The manifest to be installed uses the relative path between install dirs.
  libstdc++.modules.json: libstdc++.modules.json.in
  	relpath=$$($(toplevel_srcdir)/contrib/relpath.sh \
! 		    $(toolexeclibdir) \
! 		    $(includebitsdir)) && \
  	sed "s,@MODPATH@,$$relpath," $< > $@
  
  # The uninstalled manifest uses the relative path to builddir.
*************** std.compat.cc: std.compat.cc.in std-clib
*** 865,871 ****
  # Also put the interface units in the build-includes bits directory.
  stamp-modules-bits: $(includebits_DATA)
  	@-mkdir -p $(top_builddir)/include/bits
! 	-cd $(top_builddir)/include/bits && $(LN_S) $(abspath $?) . 2>/dev/null
  	@$(STAMP) $@
  
  all-local: stamp-module-manifest stamp-modules-bits
--- 865,873 ----
  # Also put the interface units in the build-includes bits directory.
  stamp-modules-bits: $(includebits_DATA)
  	@-mkdir -p $(top_builddir)/include/bits
! 	-for f in $(includebits_DATA); do \
! 	  $(LN_S) $(abs_builddir)/$$f $(top_builddir)/include/bits; \
! 	done 2>/dev/null
  	@$(STAMP) $@
  
  all-local: stamp-module-manifest stamp-modules-bits
diff -Nrcpad gcc-16-20260620/libstdc++-v3/testsuite/20_util/constant_wrapper/generic.cc gcc-16-20260627/libstdc++-v3/testsuite/20_util/constant_wrapper/generic.cc
*** gcc-16-20260620/libstdc++-v3/testsuite/20_util/constant_wrapper/generic.cc	Sat Jun 20 22:32:15 2026
--- gcc-16-20260627/libstdc++-v3/testsuite/20_util/constant_wrapper/generic.cc	Sat Jun 27 22:32:19 2026
*************** check_same(auto actual, auto expected)
*** 12,65 ****
    static_assert(std::same_as<decltype(actual), decltype(expected)>);
  };
  
- 
- constexpr void
- test_c_arrays()
- {
-   constexpr double x[] = {1.1, 2.2, 3.3};
-   auto cx = std::cw<x>;
-   auto access = [](auto x, size_t i)
-   { return x[i]; };
- 
-   check_same(std::cw<x>[0], x[0]);
-   check_same(std::cw<x>[1], x[1]);
-   check_same(std::cw<x>[2], x[2]);
- 
-   check_same(cx[std::cw<0>], std::cw<x[0]>);
-   check_same(cx[std::cw<1>], std::cw<x[1]>);
-   check_same(cx[std::cw<2>], std::cw<x[2]>);
- }
- 
- constexpr size_t
- deduce_cstr_size(auto str)
- {
-   size_t sz = 0;
-   while(str[sz++] != '\0') { }
-   return sz;
- }
- 
- constexpr void
- test_string_literals()
- {
-   auto foo = std::cw<"foo">;
-   constexpr const typename decltype(foo)::value_type & cstr = foo;
-   constexpr size_t N = std::size(cstr);
-   constexpr auto foo_view = std::string_view(cstr, N-1);
- 
-   constexpr const char (&cstr1)[deduce_cstr_size(foo)] = foo;
-   constexpr size_t N1 = std::size(cstr);
- 
-   static_assert(static_cast<char const*>(cstr) ==
- 		static_cast<char const*>(cstr1));
-   static_assert(N1 == N);
- 
-   static_assert(foo[0] == 'f');
-   static_assert(foo[1] == 'o');
-   static_assert(foo[2] == 'o');
-   static_assert(foo[3] == '\0');
-   static_assert(static_cast<char const *>(foo) == foo_view);
- }
- 
  constexpr bool
  convert_constexpr(auto c)
  {
--- 12,17 ----
*************** test_ints()
*** 93,98 ****
--- 45,71 ----
    VERIFY(two + 3 == std::cw<5>);
  }
  
+ constexpr void
+ test_objects()
+ {
+   if consteval {
+     return;
+   }
+ 
+   auto check = []<auto V>
+   {
+     VERIFY(&V == &std::constant_wrapper<V>::value);
+     std::constant_wrapper<V> cw;
+     VERIFY(&V == &cw.value);
+   };
+ 
+   struct Obj
+   { int x; };
+ 
+   check.operator()<Obj{10}>();
+   check.operator()<Obj{20}>();
+ }
+ 
  constexpr int
  add(int i, int j)
  { return i + j; }
*************** test_assignment()
*** 586,597 ****
  	     std::cw<ConstAssignable{2}>);
  }
  
- 
  constexpr bool
  test_all()
  {
-   test_c_arrays();
    test_ints();
    test_function_object();
    test_function_pointer();
    test_indexable1();
--- 559,569 ----
  	     std::cw<ConstAssignable{2}>);
  }
  
  constexpr bool
  test_all()
  {
    test_ints();
+   test_objects();
    test_function_object();
    test_function_pointer();
    test_indexable1();
diff -Nrcpad gcc-16-20260620/libstdc++-v3/testsuite/20_util/constant_wrapper/other_wrappers.cc gcc-16-20260627/libstdc++-v3/testsuite/20_util/constant_wrapper/other_wrappers.cc
*** gcc-16-20260620/libstdc++-v3/testsuite/20_util/constant_wrapper/other_wrappers.cc	Sat Jun 20 22:32:15 2026
--- gcc-16-20260627/libstdc++-v3/testsuite/20_util/constant_wrapper/other_wrappers.cc	Sat Jun 27 22:32:19 2026
*************** test_mix_integer_constant()
*** 31,49 ****
  }
  
  constexpr void
- test_array()
- {
-   constexpr double x[] = {1.1, 2.2, 3.3};
-   auto cx = std::cw<x>;
-   auto i2 = std::integral_constant<int, 2>{};
-   auto w2 = ConstWrapper<int, 2>{};
- 
-   check_same(x[i2], x[2]);
-   check_same(cx[i2], std::cw<x[2]>);
-   check_same(cx[w2], std::cw<x[2]>);
- }
- 
- constexpr void
  test_function_object()
  {
    auto cadd = std::cw<[](int i, int j) { return i + j; }>;
--- 31,36 ----
*************** constexpr bool
*** 61,67 ****
  test_all()
  {
    test_mix_integer_constant();
-   test_array();
    test_function_object();
    return true;
  }
--- 48,53 ----
diff -Nrcpad gcc-16-20260620/libstdc++-v3/testsuite/20_util/constant_wrapper/type_param_neg.cc gcc-16-20260627/libstdc++-v3/testsuite/20_util/constant_wrapper/type_param_neg.cc
*** gcc-16-20260620/libstdc++-v3/testsuite/20_util/constant_wrapper/type_param_neg.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260627/libstdc++-v3/testsuite/20_util/constant_wrapper/type_param_neg.cc	Sat Jun 27 22:32:19 2026
***************
*** 0 ****
--- 1,9 ----
+ // { dg-do compile { target c++26 } }
+ #include <utility>
+ 
+ std::constant_wrapper<1, float> c1;      // { dg-error "from here" }
+ std::constant_wrapper<1.0, int> c2;      // { dg-error "from here" }
+ std::constant_wrapper<1, int const> c3;  // { dg-error "from here" }
+ std::constant_wrapper<1, int const&> c4; // { dg-error "from here" }
+ 
+ // { dg-prune-output "static assertion failed" }
diff -Nrcpad gcc-16-20260620/libstdc++-v3/testsuite/20_util/polymorphic_allocator/at_least.cc gcc-16-20260627/libstdc++-v3/testsuite/20_util/polymorphic_allocator/at_least.cc
*** gcc-16-20260620/libstdc++-v3/testsuite/20_util/polymorphic_allocator/at_least.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260627/libstdc++-v3/testsuite/20_util/polymorphic_allocator/at_least.cc	Sat Jun 27 22:32:19 2026
***************
*** 0 ****
--- 1,24 ----
+ // { dg-do run { target c++23 } }
+ 
+ #include <memory_resource>
+ #include <testsuite_hooks.h>
+ 
+ void
+ alloc_at_least()
+ {
+   struct A { char a; };
+   using alloc_A = std::pmr::polymorphic_allocator<A>;
+   using traits_A = std::allocator_traits<alloc_A>;
+   alloc_A alloc_a;
+   // This just forwards to alloc_a::allocate:
+   std::allocation_result result = traits_A::allocate_at_least(alloc_a, 1);
+   VERIFY(result.count == 1);
+   VERIFY(result.ptr != nullptr);
+   auto [pointer, count] = result;
+   traits_A::deallocate(alloc_a, pointer, count);
+ }
+ 
+ int main()
+ {
+   alloc_at_least();
+ }
