diff -Nrcpad gcc-16-20260530/LAST_UPDATED gcc-16-20260606/LAST_UPDATED
*** gcc-16-20260530/LAST_UPDATED	Sat May 30 22:32:18 2026
--- gcc-16-20260606/LAST_UPDATED	Sat Jun  6 22:32:21 2026
***************
*** 1 ****
! Obtained from git: releases/gcc-16 revision 759b60830e3c3ac85a3484be3e94647ead268239
--- 1 ----
! Obtained from git: releases/gcc-16 revision 3b762dc6f04bf0f8613d7065267c6f2759330a61
diff -Nrcpad gcc-16-20260530/MD5SUMS gcc-16-20260606/MD5SUMS
*** gcc-16-20260530/MD5SUMS	Sat May 30 22:32:23 2026
--- gcc-16-20260606/MD5SUMS	Sat Jun  6 22:32:26 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-16-20260530.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-20260606.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
! 63a4636e9e9b210f508a34f5f5b66baa  LAST_UPDATED
  935427ff8c5edd363349721844f7ba49  MAINTAINERS
  af43617880b3cd9c10627c97e639d29e  Makefile.def
  734342371d8ccc2c81cb2d8b3d040f33  Makefile.in
--- 28,34 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 633f22f877818c8568062b97a756f9f5  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
! 4b675a5c9bdef5a2dfea9cb2e5028529  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
! bcbe57577ca0cf3aede0044e117846d7  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
! 19a779481c1db9007a38e5d0b0da1b82  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
! 35e5b002c0f21c6f27678761beac11b5  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** c8c9dd1eaee4ffd4d5d9f3ab70fddd4b  gcc/RE
*** 580,586 ****
  240f413bc297147f87eb799b32d54104  gcc/acinclude.m4
  e74733ebf762151e601c9e0aa1461a20  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! f279913855779cb4cb1e15d091de048f  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
--- 580,586 ----
  240f413bc297147f87eb799b32d54104  gcc/acinclude.m4
  e74733ebf762151e601c9e0aa1461a20  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! c42d878c037bd3fee581874e521ac001  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
*************** adb49f37416fce62d5759f9b4c733fe6  gcc/ad
*** 765,771 ****
  8d6933ec0ee945c50b4e8c114b1221b6  gcc/ada/exp_aggr.ads
  045a2ef4e4932ea2c0b17910db37af46  gcc/ada/exp_atag.adb
  2a027dfad5944cc346ee7c94c022d302  gcc/ada/exp_atag.ads
! 960fe586ad67141e254fc4a0d3cf2bf3  gcc/ada/exp_attr.adb
  4b748ed1db282b666860ed488c4ff28d  gcc/ada/exp_attr.ads
  cda4ccedf4fc1e7d7dbe6864ee5bf8ad  gcc/ada/exp_cg.adb
  a188d43ef2eb5780d4b7f98731302640  gcc/ada/exp_cg.ads
--- 765,771 ----
  8d6933ec0ee945c50b4e8c114b1221b6  gcc/ada/exp_aggr.ads
  045a2ef4e4932ea2c0b17910db37af46  gcc/ada/exp_atag.adb
  2a027dfad5944cc346ee7c94c022d302  gcc/ada/exp_atag.ads
! a3077504e4d67a9d567103c2d09841d7  gcc/ada/exp_attr.adb
  4b748ed1db282b666860ed488c4ff28d  gcc/ada/exp_attr.ads
  cda4ccedf4fc1e7d7dbe6864ee5bf8ad  gcc/ada/exp_cg.adb
  a188d43ef2eb5780d4b7f98731302640  gcc/ada/exp_cg.ads
*************** ace7dfdd53834601d964efef9557e0f4  gcc/ad
*** 780,792 ****
  aec86f795b370fca1379a25f37651fdf  gcc/ada/exp_ch2.ads
  d8a5243affdc193f524c6db3adb03b56  gcc/ada/exp_ch3.adb
  52ca7939bd6b0e1da9e20d902813d109  gcc/ada/exp_ch3.ads
! 12497d505c426b4ae8594019796769b4  gcc/ada/exp_ch4.adb
  2d9cf8b148fdc7a07edde2cf9fbb59f8  gcc/ada/exp_ch4.ads
  d581ce062c9cecbaa3f56a950f8620a3  gcc/ada/exp_ch5.adb
  962c51f1fad8395553b843179ba06b79  gcc/ada/exp_ch5.ads
! 331aa207fe1aab21bcfc71de473764cc  gcc/ada/exp_ch6.adb
  757670a84e9c01219a219c4bc68ea62b  gcc/ada/exp_ch6.ads
! b8cb3b82f2a68b211875181376e0de4b  gcc/ada/exp_ch7.adb
  0328c88aa1134f7af3891cb24a0b27c8  gcc/ada/exp_ch7.ads
  8801787aa12c6cff916c7659aa60ec45  gcc/ada/exp_ch8.adb
  9955bf7551ef5f537f9031c59fb73db8  gcc/ada/exp_ch8.ads
--- 780,792 ----
  aec86f795b370fca1379a25f37651fdf  gcc/ada/exp_ch2.ads
  d8a5243affdc193f524c6db3adb03b56  gcc/ada/exp_ch3.adb
  52ca7939bd6b0e1da9e20d902813d109  gcc/ada/exp_ch3.ads
! 047f22d2dd0e8a4af21817f8d4aec237  gcc/ada/exp_ch4.adb
  2d9cf8b148fdc7a07edde2cf9fbb59f8  gcc/ada/exp_ch4.ads
  d581ce062c9cecbaa3f56a950f8620a3  gcc/ada/exp_ch5.adb
  962c51f1fad8395553b843179ba06b79  gcc/ada/exp_ch5.ads
! 2921e5b1ccd608d231ee10b93849c20c  gcc/ada/exp_ch6.adb
  757670a84e9c01219a219c4bc68ea62b  gcc/ada/exp_ch6.ads
! ec6b54d7e3e6a54c5c0453e46eccee95  gcc/ada/exp_ch7.adb
  0328c88aa1134f7af3891cb24a0b27c8  gcc/ada/exp_ch7.ads
  8801787aa12c6cff916c7659aa60ec45  gcc/ada/exp_ch8.adb
  9955bf7551ef5f537f9031c59fb73db8  gcc/ada/exp_ch8.ads
*************** e4204795e682e9a19f2c26c4b2410fc3  gcc/ad
*** 852,858 ****
  8d951ad5f91f626d3cc7ba6585129d29  gcc/ada/gcc-interface/ada.h
  f3edeff30f2d71e01f705dbeeea40b77  gcc/ada/gcc-interface/config-lang.in
  61292b93aaa82b358b5b4e2310c77d5b  gcc/ada/gcc-interface/cuintp.cc
! 111b3cb638cd46517ca334f96f5e83c9  gcc/ada/gcc-interface/decl.cc
  07d1f164dc85932ebe1eab7ad2117218  gcc/ada/gcc-interface/gadaint.h
  1e2940d1ddb2a1e198a7dcd59b66ebfc  gcc/ada/gcc-interface/gigi.h
  89108e218f6b9e9f07550c3675c059a7  gcc/ada/gcc-interface/lang-specs.h
--- 852,858 ----
  8d951ad5f91f626d3cc7ba6585129d29  gcc/ada/gcc-interface/ada.h
  f3edeff30f2d71e01f705dbeeea40b77  gcc/ada/gcc-interface/config-lang.in
  61292b93aaa82b358b5b4e2310c77d5b  gcc/ada/gcc-interface/cuintp.cc
! b8b2087435e88db0f690c9f6af8cbf09  gcc/ada/gcc-interface/decl.cc
  07d1f164dc85932ebe1eab7ad2117218  gcc/ada/gcc-interface/gadaint.h
  1e2940d1ddb2a1e198a7dcd59b66ebfc  gcc/ada/gcc-interface/gigi.h
  89108e218f6b9e9f07550c3675c059a7  gcc/ada/gcc-interface/lang-specs.h
*************** f3edeff30f2d71e01f705dbeeea40b77  gcc/ad
*** 862,869 ****
  ec10f477ad1d3dba6056061ede6ff919  gcc/ada/gcc-interface/system.ads
  90cfb783f79abe4897a54ecd4d34f0a5  gcc/ada/gcc-interface/targtyps.cc
  c10afb784d01db96d3e446e834044dec  gcc/ada/gcc-interface/trans.cc
! a42ca7a70ecb27ca641d7e22801cdc56  gcc/ada/gcc-interface/utils.cc
! 5aa7aec67976f00fbfd0e838865ac865  gcc/ada/gcc-interface/utils2.cc
  a16cd448be7ed758165e986a68fe2678  gcc/ada/gen_il-fields.ads
  52478a5d862abbf16fda5d88b4959880  gcc/ada/gen_il-gen-gen_entities.adb
  ffe5d0127a5168f5277a256d917b6fcd  gcc/ada/gen_il-gen-gen_nodes.adb
--- 862,869 ----
  ec10f477ad1d3dba6056061ede6ff919  gcc/ada/gcc-interface/system.ads
  90cfb783f79abe4897a54ecd4d34f0a5  gcc/ada/gcc-interface/targtyps.cc
  c10afb784d01db96d3e446e834044dec  gcc/ada/gcc-interface/trans.cc
! 81134cff405279697a5e87bee02b9428  gcc/ada/gcc-interface/utils.cc
! 61f921a0b83e0276983ebc2cfb11dc05  gcc/ada/gcc-interface/utils2.cc
  a16cd448be7ed758165e986a68fe2678  gcc/ada/gen_il-fields.ads
  52478a5d862abbf16fda5d88b4959880  gcc/ada/gen_il-gen-gen_entities.adb
  ffe5d0127a5168f5277a256d917b6fcd  gcc/ada/gen_il-gen-gen_nodes.adb
*************** c4c82abff1dd8f6604582844f0db30a9  gcc/ad
*** 1595,1601 ****
  9c786b984bf0145479e5a8e011a5b611  gcc/ada/libgnat/a-tags.ads
  18a4c6eaf4a71398b19427182b133eca  gcc/ada/libgnat/a-teioed.adb
  557f2e82df4e73bea0ee43f6a2d6fbf6  gcc/ada/libgnat/a-teioed.ads
! 2a0ae500a53b6a6c97a57ecff16ffbed  gcc/ada/libgnat/a-textio.adb
  8ab0eabbc4678cba0583a700698d0847  gcc/ada/libgnat/a-textio.ads
  c74a673b222c3d0037a22fb766c67488  gcc/ada/libgnat/a-tgdico.ads
  fb39064662a6ab88ec4192b4d6340afd  gcc/ada/libgnat/a-tiboio.adb
--- 1595,1601 ----
  9c786b984bf0145479e5a8e011a5b611  gcc/ada/libgnat/a-tags.ads
  18a4c6eaf4a71398b19427182b133eca  gcc/ada/libgnat/a-teioed.adb
  557f2e82df4e73bea0ee43f6a2d6fbf6  gcc/ada/libgnat/a-teioed.ads
! 47142fa11e1e09097f9cb44bcd1a8caa  gcc/ada/libgnat/a-textio.adb
  8ab0eabbc4678cba0583a700698d0847  gcc/ada/libgnat/a-textio.ads
  c74a673b222c3d0037a22fb766c67488  gcc/ada/libgnat/a-tgdico.ads
  fb39064662a6ab88ec4192b4d6340afd  gcc/ada/libgnat/a-tiboio.adb
*************** bf52dfdb3b0ad7b46acd6b6ec476611c  gcc/ad
*** 2846,2854 ****
  ba0e112ae1cbefadd145a4e7c06f1642  gcc/ada/par-ch12.adb
  9f715bca934e45ee4db7bbd2858d54e1  gcc/ada/par-ch13.adb
  fc57966056b0077a0fadd4887212d6bd  gcc/ada/par-ch2.adb
! da1dbb86ed500fa6e4badb241ef8a926  gcc/ada/par-ch3.adb
  823a139fbf38c88a1f78f400fd49ca0d  gcc/ada/par-ch4.adb
! aef5a010a5223fe272ea08bce4ad4cbb  gcc/ada/par-ch5.adb
  b7e65797088047c28c917ce1878a68ba  gcc/ada/par-ch6.adb
  7487b885c869951f3e91c38a96428135  gcc/ada/par-ch7.adb
  8088c92c25aa6f8d485fa42b1326be8d  gcc/ada/par-ch8.adb
--- 2846,2854 ----
  ba0e112ae1cbefadd145a4e7c06f1642  gcc/ada/par-ch12.adb
  9f715bca934e45ee4db7bbd2858d54e1  gcc/ada/par-ch13.adb
  fc57966056b0077a0fadd4887212d6bd  gcc/ada/par-ch2.adb
! b1d4afc6808a25c1e061c645f6a9f98e  gcc/ada/par-ch3.adb
  823a139fbf38c88a1f78f400fd49ca0d  gcc/ada/par-ch4.adb
! c7b43abe1b9adb493043ca3fcc83a01f  gcc/ada/par-ch5.adb
  b7e65797088047c28c917ce1878a68ba  gcc/ada/par-ch6.adb
  7487b885c869951f3e91c38a96428135  gcc/ada/par-ch7.adb
  8088c92c25aa6f8d485fa42b1326be8d  gcc/ada/par-ch8.adb
*************** b7e65797088047c28c917ce1878a68ba  gcc/ad
*** 2859,2866 ****
  4abaf19deae7557fed7e768a03ef332a  gcc/ada/par-prag.adb
  4f0a80ae4dcac15e0ae11b61ce2a351a  gcc/ada/par-sync.adb
  fd52cb07f6816c9f989d767432353844  gcc/ada/par-tchk.adb
! 5e69c1f7ea9b79f9aee0eabafc5df492  gcc/ada/par-util.adb
! dd47008af47510af2c70609954d01947  gcc/ada/par.adb
  dec03d93846b2cf0f195f599e6ebe085  gcc/ada/par.ads
  397a8c4eaae8d55eb7e4accd4d09745f  gcc/ada/par_sco.adb
  a2fb0d304cec6a62b7a0096915bbacc4  gcc/ada/par_sco.ads
--- 2859,2866 ----
  4abaf19deae7557fed7e768a03ef332a  gcc/ada/par-prag.adb
  4f0a80ae4dcac15e0ae11b61ce2a351a  gcc/ada/par-sync.adb
  fd52cb07f6816c9f989d767432353844  gcc/ada/par-tchk.adb
! 6a85b390d0cf809f2acc202c41a1e295  gcc/ada/par-util.adb
! e73dae35669f0fc6454371455d0d5064  gcc/ada/par.adb
  dec03d93846b2cf0f195f599e6ebe085  gcc/ada/par.ads
  397a8c4eaae8d55eb7e4accd4d09745f  gcc/ada/par_sco.adb
  a2fb0d304cec6a62b7a0096915bbacc4  gcc/ada/par_sco.ads
*************** bd02733d13b54612fc6d4cd0e340b3ea  gcc/ad
*** 2919,2933 ****
  ad2bb60b9c4c67653f4da4b0e70277d7  gcc/ada/sem_ch10.ads
  e3dc2d270994bba222e70ec02479ac37  gcc/ada/sem_ch11.adb
  7efb6a0f371113d8b55b421ee56dd1dd  gcc/ada/sem_ch11.ads
! fa75822e620d43991064e909af7fde66  gcc/ada/sem_ch12.adb
  2622dbf1c1774a89ada3cba34f1da316  gcc/ada/sem_ch12.ads
  7f74e0afe4aecc2f3165c6b69079e1e8  gcc/ada/sem_ch13.adb
  2da037307178ba05a1a24b52d1b3115e  gcc/ada/sem_ch13.ads
  260948dd8c7af25b5acaa288032c9327  gcc/ada/sem_ch2.adb
  ea86a0345845800d7aaf07f22bb4bf6c  gcc/ada/sem_ch2.ads
! 1933e77c28f8abc608a5f91cce270ddd  gcc/ada/sem_ch3.adb
  2d8f83bc46638356bc311ccd50015b1f  gcc/ada/sem_ch3.ads
! 2c64d9e534a8e17dabfaa5aa45168f65  gcc/ada/sem_ch4.adb
  fdd750bd30c3186d912dfed4717a2c0c  gcc/ada/sem_ch4.ads
  80b1376b131f9bf3f1d9ec563f54f621  gcc/ada/sem_ch5.adb
  0851668baacc82a6125a6cdd3254a804  gcc/ada/sem_ch5.ads
--- 2919,2933 ----
  ad2bb60b9c4c67653f4da4b0e70277d7  gcc/ada/sem_ch10.ads
  e3dc2d270994bba222e70ec02479ac37  gcc/ada/sem_ch11.adb
  7efb6a0f371113d8b55b421ee56dd1dd  gcc/ada/sem_ch11.ads
! 96a54d933bfde91e309995d10f6972a2  gcc/ada/sem_ch12.adb
  2622dbf1c1774a89ada3cba34f1da316  gcc/ada/sem_ch12.ads
  7f74e0afe4aecc2f3165c6b69079e1e8  gcc/ada/sem_ch13.adb
  2da037307178ba05a1a24b52d1b3115e  gcc/ada/sem_ch13.ads
  260948dd8c7af25b5acaa288032c9327  gcc/ada/sem_ch2.adb
  ea86a0345845800d7aaf07f22bb4bf6c  gcc/ada/sem_ch2.ads
! 999a9c4bcc1db7ef93d88bc3cc35a57e  gcc/ada/sem_ch3.adb
  2d8f83bc46638356bc311ccd50015b1f  gcc/ada/sem_ch3.ads
! 6e54bf9fc5df2035c0fb4338d338dc7b  gcc/ada/sem_ch4.adb
  fdd750bd30c3186d912dfed4717a2c0c  gcc/ada/sem_ch4.ads
  80b1376b131f9bf3f1d9ec563f54f621  gcc/ada/sem_ch5.adb
  0851668baacc82a6125a6cdd3254a804  gcc/ada/sem_ch5.ads
*************** fdd750bd30c3186d912dfed4717a2c0c  gcc/ad
*** 2937,2943 ****
  fb1c349ef07024975dc745e7e7908a34  gcc/ada/sem_ch7.ads
  e01fa0b512e66e7e2317285a43157cb4  gcc/ada/sem_ch8.adb
  5bcf24e9f3725dd07ba44097469a5101  gcc/ada/sem_ch8.ads
! 0659b247bb1cacdb068574b879a6fd15  gcc/ada/sem_ch9.adb
  11764389473d404a17921f767d1eadd4  gcc/ada/sem_ch9.ads
  f3bd7a2465fe64a8cce43f75b64830f2  gcc/ada/sem_dim.adb
  620c52688fb31336b46194dd14b591c5  gcc/ada/sem_dim.ads
--- 2937,2943 ----
  fb1c349ef07024975dc745e7e7908a34  gcc/ada/sem_ch7.ads
  e01fa0b512e66e7e2317285a43157cb4  gcc/ada/sem_ch8.adb
  5bcf24e9f3725dd07ba44097469a5101  gcc/ada/sem_ch8.ads
! 705c86e7eb2e8956f7753dbcb1619557  gcc/ada/sem_ch9.adb
  11764389473d404a17921f767d1eadd4  gcc/ada/sem_ch9.ads
  f3bd7a2465fe64a8cce43f75b64830f2  gcc/ada/sem_dim.adb
  620c52688fb31336b46194dd14b591c5  gcc/ada/sem_dim.ads
*************** eb23a07f1fb62ed39d1053619d51487b  gcc/ad
*** 2957,2963 ****
  39b96f04803db97ae1f7376d30a0cfec  gcc/ada/sem_mech.ads
  da4fd90984f6f2859c5c232c8a19ecb8  gcc/ada/sem_prag.adb
  61f67b82bf0abfa83eb7e4927498285c  gcc/ada/sem_prag.ads
! 7bf8e111c72f92f71d79289c7dc6ac1f  gcc/ada/sem_res.adb
  e3b9f77c37497d7f7824085d3df8fde8  gcc/ada/sem_res.ads
  4e8a9bc2b398560942d0c08f4017fabb  gcc/ada/sem_scil.adb
  64ae38c93be63a67f143484eba77604b  gcc/ada/sem_scil.ads
--- 2957,2963 ----
  39b96f04803db97ae1f7376d30a0cfec  gcc/ada/sem_mech.ads
  da4fd90984f6f2859c5c232c8a19ecb8  gcc/ada/sem_prag.adb
  61f67b82bf0abfa83eb7e4927498285c  gcc/ada/sem_prag.ads
! efe2aae50a671ea53ee7849308aacd10  gcc/ada/sem_res.adb
  e3b9f77c37497d7f7824085d3df8fde8  gcc/ada/sem_res.ads
  4e8a9bc2b398560942d0c08f4017fabb  gcc/ada/sem_scil.adb
  64ae38c93be63a67f143484eba77604b  gcc/ada/sem_scil.ads
*************** e3b9f77c37497d7f7824085d3df8fde8  gcc/ad
*** 2965,2973 ****
  21afb93e10bb9446fcbf7577bbf39c7f  gcc/ada/sem_smem.ads
  1de99683c6514c34448d2bbc7ddb8856  gcc/ada/sem_type.adb
  65653b347d1d3f800e49cd916a551d1c  gcc/ada/sem_type.ads
! bd2bcaa31ba7c436fbf1c4e8f54dd33b  gcc/ada/sem_util.adb
! adad4a024c716f84aa20017b45528c30  gcc/ada/sem_util.ads
! c868ac4c94dbfe9518c3488598abecbb  gcc/ada/sem_warn.adb
  1952fbda97ea4c6506f452eac9934bb4  gcc/ada/sem_warn.ads
  75ee1e8bae201fd70d666856c4dbb8e5  gcc/ada/set_targ.adb
  9be350008098fd37edd51e4c3977c64d  gcc/ada/set_targ.ads
--- 2965,2973 ----
  21afb93e10bb9446fcbf7577bbf39c7f  gcc/ada/sem_smem.ads
  1de99683c6514c34448d2bbc7ddb8856  gcc/ada/sem_type.adb
  65653b347d1d3f800e49cd916a551d1c  gcc/ada/sem_type.ads
! cdd0c95553627963c28597dffd1f6cd9  gcc/ada/sem_util.adb
! 17940f8c0aebcc7b6329a41bf8f98069  gcc/ada/sem_util.ads
! 02525b4323e1a95b3cc0a2b21d4a5a3f  gcc/ada/sem_warn.adb
  1952fbda97ea4c6506f452eac9934bb4  gcc/ada/sem_warn.ads
  75ee1e8bae201fd70d666856c4dbb8e5  gcc/ada/set_targ.adb
  9be350008098fd37edd51e4c3977c64d  gcc/ada/set_targ.ads
*************** e401a5a5a7e802aea0c860de79cf4639  gcc/cf
*** 3372,3378 ****
  f18b9392122c866e0f6862690656ebd5  gcc/cfgloopanal.cc
  13dceaa9039328df68a470f515c67c3b  gcc/cfgloopmanip.cc
  83651ace7d1e40ee81b35f32a6a05179  gcc/cfgloopmanip.h
! 6efea778480901818ae74c1e5abf4f5f  gcc/cfgrtl.cc
  c41525a1de6e78cabd4414d6a8c3dac9  gcc/cfgrtl.h
  23b9aa75531c001cb377f7909d709c80  gcc/cgraph.cc
  d61fe81ae621d346985061a794ecfd03  gcc/cgraph.h
--- 3372,3378 ----
  f18b9392122c866e0f6862690656ebd5  gcc/cfgloopanal.cc
  13dceaa9039328df68a470f515c67c3b  gcc/cfgloopmanip.cc
  83651ace7d1e40ee81b35f32a6a05179  gcc/cfgloopmanip.h
! a0a1ef6bbf0b2b6031733a02c5f5537e  gcc/cfgrtl.cc
  c41525a1de6e78cabd4414d6a8c3dac9  gcc/cfgrtl.h
  23b9aa75531c001cb377f7909d709c80  gcc/cgraph.cc
  d61fe81ae621d346985061a794ecfd03  gcc/cgraph.h
*************** a1a7d26ecab3d6681a1d3f5c2cb77275  gcc/co
*** 3521,3527 ****
  cd1537928dd0fadfa53b88b278af0ed2  gcc/config/aarch64/aarch64-cost-tables.h
  5d9722001af118d5011d62beba0e3879  gcc/config/aarch64/aarch64-d.cc
  3d35dd7bbc8358248117e8edb6f6895f  gcc/config/aarch64/aarch64-d.h
! 9fe1a08700a99af1ed161e0634875bd2  gcc/config/aarch64/aarch64-early-ra.cc
  0f04d4db0b98d93d624f6bf49c0b2c61  gcc/config/aarch64/aarch64-elf-metadata.cc
  3d5c9a06fc3373401b1a496b0c2d812a  gcc/config/aarch64/aarch64-elf-metadata.h
  cfe06f94751bf9d5dc61fd5b0184ba2c  gcc/config/aarch64/aarch64-elf-raw.h
--- 3521,3527 ----
  cd1537928dd0fadfa53b88b278af0ed2  gcc/config/aarch64/aarch64-cost-tables.h
  5d9722001af118d5011d62beba0e3879  gcc/config/aarch64/aarch64-d.cc
  3d35dd7bbc8358248117e8edb6f6895f  gcc/config/aarch64/aarch64-d.h
! a0598a8d595ee9a5ab98ce05c46c365f  gcc/config/aarch64/aarch64-early-ra.cc
  0f04d4db0b98d93d624f6bf49c0b2c61  gcc/config/aarch64/aarch64-elf-metadata.cc
  3d5c9a06fc3373401b1a496b0c2d812a  gcc/config/aarch64/aarch64-elf-metadata.h
  cfe06f94751bf9d5dc61fd5b0184ba2c  gcc/config/aarch64/aarch64-elf-raw.h
*************** e101bed95b5d0264c364d8bcf1a7705f  gcc/co
*** 3581,3587 ****
  dec4c8fd03ac5636ba08d9523bee06be  gcc/config/aarch64/aarch64-tuning-enums.def
  45c6b1a7ca031f6a0af001317cc5e476  gcc/config/aarch64/aarch64-tuning-flags.def
  b2ed7b4c85a1fa71b919148f60e2984f  gcc/config/aarch64/aarch64-vxworks.h
! 9978f6531f3a4826223e96ebf5bb5ceb  gcc/config/aarch64/aarch64.cc
  643919d961f71a1bd5cc1df13bbd79f5  gcc/config/aarch64/aarch64.h
  bd813cb7dfa70cb6c970d78d27ead783  gcc/config/aarch64/aarch64.md
  473ca0d59415b61c8ee8e6c85d2ccb62  gcc/config/aarch64/aarch64.opt
--- 3581,3587 ----
  dec4c8fd03ac5636ba08d9523bee06be  gcc/config/aarch64/aarch64-tuning-enums.def
  45c6b1a7ca031f6a0af001317cc5e476  gcc/config/aarch64/aarch64-tuning-flags.def
  b2ed7b4c85a1fa71b919148f60e2984f  gcc/config/aarch64/aarch64-vxworks.h
! 989f483f4dbf18527be3bba5012b76ad  gcc/config/aarch64/aarch64.cc
  643919d961f71a1bd5cc1df13bbd79f5  gcc/config/aarch64/aarch64.h
  bd813cb7dfa70cb6c970d78d27ead783  gcc/config/aarch64/aarch64.md
  473ca0d59415b61c8ee8e6c85d2ccb62  gcc/config/aarch64/aarch64.opt
*************** ee1645bd7e049365c9b52b774f3e8324  gcc/co
*** 3649,3655 ****
  0e884947a64edcd1a0ab1c2d7f79ecc3  gcc/config/aarch64/tuning_models/neoversev2.h
  850f4e265f4d69a8db04fb6b9a509a73  gcc/config/aarch64/tuning_models/neoversev3.h
  da9eaf909c14d1ac8802b858a796dd0b  gcc/config/aarch64/tuning_models/neoversev3ae.h
! d697f4c32319e1c4a7bd9173bc45a0db  gcc/config/aarch64/tuning_models/olympus.h
  abe9f0139f34302abf43f42fc034f8a4  gcc/config/aarch64/tuning_models/qdf24xx.h
  f4bb7074b559d7a9ada65e9f1ea7e76e  gcc/config/aarch64/tuning_models/saphira.h
  79b67a066ee629e9a5d00e7dbc5da7b3  gcc/config/aarch64/tuning_models/thunderx.h
--- 3649,3655 ----
  0e884947a64edcd1a0ab1c2d7f79ecc3  gcc/config/aarch64/tuning_models/neoversev2.h
  850f4e265f4d69a8db04fb6b9a509a73  gcc/config/aarch64/tuning_models/neoversev3.h
  da9eaf909c14d1ac8802b858a796dd0b  gcc/config/aarch64/tuning_models/neoversev3ae.h
! 0760223fddfab5b7b146f30ec01c8ddb  gcc/config/aarch64/tuning_models/olympus.h
  abe9f0139f34302abf43f42fc034f8a4  gcc/config/aarch64/tuning_models/qdf24xx.h
  f4bb7074b559d7a9ada65e9f1ea7e76e  gcc/config/aarch64/tuning_models/saphira.h
  79b67a066ee629e9a5d00e7dbc5da7b3  gcc/config/aarch64/tuning_models/thunderx.h
*************** d58398b8674211171ea210f8d3f3883b  gcc/co
*** 3745,3751 ****
  357d99c16ccb55530e3c4bc802988cde  gcc/config/arm/arm-ldmstm.ml
  7550204b1316d145890d079b35b59fbd  gcc/config/arm/arm-mlib.h
  93f3f601901fb6c23a6f561427065cd1  gcc/config/arm/arm-modes.def
! 337902eda3308af81fa1302566cbfc2a  gcc/config/arm/arm-mve-builtins-base.cc
  dd68b000194684be096bab7e439eae6d  gcc/config/arm/arm-mve-builtins-base.def
  b89eb2d819ab7b39687f97a2e620112b  gcc/config/arm/arm-mve-builtins-base.h
  76c9ba52f5b1e8b2d2fe7e3750adbcbb  gcc/config/arm/arm-mve-builtins-functions.h
--- 3745,3751 ----
  357d99c16ccb55530e3c4bc802988cde  gcc/config/arm/arm-ldmstm.ml
  7550204b1316d145890d079b35b59fbd  gcc/config/arm/arm-mlib.h
  93f3f601901fb6c23a6f561427065cd1  gcc/config/arm/arm-modes.def
! 13b42fc7ece0708b0998dc41334477be  gcc/config/arm/arm-mve-builtins-base.cc
  dd68b000194684be096bab7e439eae6d  gcc/config/arm/arm-mve-builtins-base.def
  b89eb2d819ab7b39687f97a2e620112b  gcc/config/arm/arm-mve-builtins-base.h
  76c9ba52f5b1e8b2d2fe7e3750adbcbb  gcc/config/arm/arm-mve-builtins-functions.h
*************** b63569ecff9557acb7963f14a101bce1  gcc/co
*** 4305,4312 ****
  91b8b50cba997aef17a61929b5b55a87  gcc/config/i386/i386-rust.cc
  25b3947a11eb9ca52892133ddb36f3f2  gcc/config/i386/i386-rust.h
  abf774703818fb97d5522e038bb2f126  gcc/config/i386/i386.cc
! 483853f45756ffc10a3acbe55d2d0920  gcc/config/i386/i386.h
! 2e47c9bbf8c6b7103c2f5dc229a603a5  gcc/config/i386/i386.md
  f431cbff6410e63b4e2de0e11adf19fb  gcc/config/i386/i386.opt
  b9e680863ab278314c1f2990d2d04fcc  gcc/config/i386/i386.opt.urls
  7570cb8763bf53e7144db7d6cd97f846  gcc/config/i386/i386elf.h
--- 4305,4312 ----
  91b8b50cba997aef17a61929b5b55a87  gcc/config/i386/i386-rust.cc
  25b3947a11eb9ca52892133ddb36f3f2  gcc/config/i386/i386-rust.h
  abf774703818fb97d5522e038bb2f126  gcc/config/i386/i386.cc
! ae6be62f3c457525f773a8ddc3831575  gcc/config/i386/i386.h
! 1533afd0d0793ec761a22e68ea657eef  gcc/config/i386/i386.md
  f431cbff6410e63b4e2de0e11adf19fb  gcc/config/i386/i386.opt
  b9e680863ab278314c1f2990d2d04fcc  gcc/config/i386/i386.opt.urls
  7570cb8763bf53e7144db7d6cd97f846  gcc/config/i386/i386elf.h
*************** db114ac74c87743a142214fddaad2687  gcc/co
*** 4369,4375 ****
  92210572b9f9f6481e4649a42d9ac3b0  gcc/config/i386/sm4intrin.h
  5298b8261e081859bbf068b710158e8f  gcc/config/i386/smmintrin.h
  5b7a5d6bd6f2cbb1ca44a113b598ee56  gcc/config/i386/sol2.h
! 938b53a530cc188b4b883b04798198c7  gcc/config/i386/sse.md
  52e0114cb9ab8d55aac3c17d06657d71  gcc/config/i386/ssemath.h
  8a6ab9e02097018bc9f1c2b347d29cfa  gcc/config/i386/stringop.def
  a626b4e6cd3e15f4e9d5c769b6391243  gcc/config/i386/subst.md
--- 4369,4375 ----
  92210572b9f9f6481e4649a42d9ac3b0  gcc/config/i386/sm4intrin.h
  5298b8261e081859bbf068b710158e8f  gcc/config/i386/smmintrin.h
  5b7a5d6bd6f2cbb1ca44a113b598ee56  gcc/config/i386/sol2.h
! 86c3b1146d98f606f46600427b893650  gcc/config/i386/sse.md
  52e0114cb9ab8d55aac3c17d06657d71  gcc/config/i386/ssemath.h
  8a6ab9e02097018bc9f1c2b347d29cfa  gcc/config/i386/stringop.def
  a626b4e6cd3e15f4e9d5c769b6391243  gcc/config/i386/subst.md
*************** c22e895e5b7e6b98c7223b26982a5d20  gcc/co
*** 4422,4428 ****
  7bfce4f9fdee1dc1db1e668b10d9d8e2  gcc/config/i386/x86-tune-sched-bd.cc
  864e537089cc92c5002cefd76ede977a  gcc/config/i386/x86-tune-sched-core.cc
  67c586fe54bcfe3f719ae50164d063ca  gcc/config/i386/x86-tune-sched.cc
! 8db14dcf55267af67b190ebbf523495c  gcc/config/i386/x86-tune.def
  75b1f0e8f79cfd04f898a4099aff669d  gcc/config/i386/x86gprintrin.h
  e5335d55cec73bd3270862ccac7a02e8  gcc/config/i386/x86intrin.h
  76f88cf5ac857d392ddb81b244c5b9b0  gcc/config/i386/xm-cygwin.h
--- 4422,4428 ----
  7bfce4f9fdee1dc1db1e668b10d9d8e2  gcc/config/i386/x86-tune-sched-bd.cc
  864e537089cc92c5002cefd76ede977a  gcc/config/i386/x86-tune-sched-core.cc
  67c586fe54bcfe3f719ae50164d063ca  gcc/config/i386/x86-tune-sched.cc
! 6504c23bb902b8094e028b4145856f2f  gcc/config/i386/x86-tune.def
  75b1f0e8f79cfd04f898a4099aff669d  gcc/config/i386/x86gprintrin.h
  e5335d55cec73bd3270862ccac7a02e8  gcc/config/i386/x86intrin.h
  76f88cf5ac857d392ddb81b244c5b9b0  gcc/config/i386/xm-cygwin.h
*************** ed3f5ce2f7305137cb7981e5492f421d  gcc/co
*** 4957,4965 ****
  6b3e75529fdba1a40cb9febc136adf85  gcc/config/pa/pa-openbsd.h
  799a8f38f756018d977260ec4dd15af3  gcc/config/pa/pa-opts.h
  8476a9a8e5e9e1c37d95d447ec828c0d  gcc/config/pa/pa-protos.h
! d25f80bbb8de64bd134dc7f65040f919  gcc/config/pa/pa.cc
  aef195401230c3b69b934068b8407088  gcc/config/pa/pa.h
! 0280715850409a16b7fe3f8fc9b3bef2  gcc/config/pa/pa.md
  cb75df3acdd704487025273adaa58c9f  gcc/config/pa/pa.opt
  051ba40c6ad77aa43300a9282939c6ae  gcc/config/pa/pa.opt.urls
  4b94b51cd90f0fc78da329518825b169  gcc/config/pa/pa32-linux.h
--- 4957,4965 ----
  6b3e75529fdba1a40cb9febc136adf85  gcc/config/pa/pa-openbsd.h
  799a8f38f756018d977260ec4dd15af3  gcc/config/pa/pa-opts.h
  8476a9a8e5e9e1c37d95d447ec828c0d  gcc/config/pa/pa-protos.h
! f46d5bf296314c383b5c65e70f9377c7  gcc/config/pa/pa.cc
  aef195401230c3b69b934068b8407088  gcc/config/pa/pa.h
! 8e56a443cd5f22e6953f138a5f200b2c  gcc/config/pa/pa.md
  cb75df3acdd704487025273adaa58c9f  gcc/config/pa/pa.opt
  051ba40c6ad77aa43300a9282939c6ae  gcc/config/pa/pa.opt.urls
  4b94b51cd90f0fc78da329518825b169  gcc/config/pa/pa32-linux.h
*************** c171108cfab16c74097a841489b04298  gcc/co
*** 5077,5083 ****
  f57a4d1f0a5a49304e07ae38a6990bc8  gcc/config/riscv/riscv-string.cc
  83bc8b8b85874456078c4c683d82a3e6  gcc/config/riscv/riscv-subset.h
  da26032fa71bbdaccc0766633e3f86bb  gcc/config/riscv/riscv-target-attr.cc
! 9e0044f17d6e8aea3d9c29d1461fd3b1  gcc/config/riscv/riscv-v.cc
  23f9fe60c9f6f052bd55875310c01b0e  gcc/config/riscv/riscv-v.h
  3d17a86fd1ba10efb8809c613d1eb6cf  gcc/config/riscv/riscv-vect-permconst.cc
  5c3100beef34fe1879075f8cfb95e70e  gcc/config/riscv/riscv-vector-builtins-bases.cc
--- 5077,5083 ----
  f57a4d1f0a5a49304e07ae38a6990bc8  gcc/config/riscv/riscv-string.cc
  83bc8b8b85874456078c4c683d82a3e6  gcc/config/riscv/riscv-subset.h
  da26032fa71bbdaccc0766633e3f86bb  gcc/config/riscv/riscv-target-attr.cc
! 09086ff701cb2945ed1882c88aae8c62  gcc/config/riscv/riscv-v.cc
  23f9fe60c9f6f052bd55875310c01b0e  gcc/config/riscv/riscv-v.h
  3d17a86fd1ba10efb8809c613d1eb6cf  gcc/config/riscv/riscv-vect-permconst.cc
  5c3100beef34fe1879075f8cfb95e70e  gcc/config/riscv/riscv-vector-builtins-bases.cc
*************** c5ad0142a191862e3e81ecd3573754b3  gcc/co
*** 5644,5650 ****
  55a33ae415bde0fd2e36ba584894e50b  gcc/coroutine-passes.cc
  c10700723a41c720aada0096f369147e  gcc/coverage.cc
  d27317cee558d7c78afbdb6529e36649  gcc/coverage.h
! 1bf2473cf498e253ca3b6cc29cbf044e  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
--- 5644,5650 ----
  55a33ae415bde0fd2e36ba584894e50b  gcc/coroutine-passes.cc
  c10700723a41c720aada0096f369147e  gcc/coverage.cc
  d27317cee558d7c78afbdb6529e36649  gcc/coverage.h
! 4564a86b8ebfa7b02067621654cfd971  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
*************** e51f295e858583af5f9cf88b9530adf7  gcc/cp
*** 5690,5696 ****
  44493039c741da0cbddb5a8d6d93701a  gcc/cp/constraint.cc
  ab81cc984e2b72c49098e64c4e798924  gcc/cp/contracts.cc
  e77a681f560f3e9500f126febdc67ef6  gcc/cp/contracts.h
! 09f3bdbdbcddf3dc68d265ab0a59a38e  gcc/cp/coroutines.cc
  1817def94193f0cfabd4fa5b321af011  gcc/cp/coroutines.h
  e149e170a1e39253c161848d0dde21f9  gcc/cp/cp-gimplify.cc
  5deb6a9935508ca534b8ee8e84b2a1cc  gcc/cp/cp-lang.cc
--- 5690,5696 ----
  44493039c741da0cbddb5a8d6d93701a  gcc/cp/constraint.cc
  ab81cc984e2b72c49098e64c4e798924  gcc/cp/contracts.cc
  e77a681f560f3e9500f126febdc67ef6  gcc/cp/contracts.h
! 2c739bee3062dd41503bb96cf36f8028  gcc/cp/coroutines.cc
  1817def94193f0cfabd4fa5b321af011  gcc/cp/coroutines.h
  e149e170a1e39253c161848d0dde21f9  gcc/cp/cp-gimplify.cc
  5deb6a9935508ca534b8ee8e84b2a1cc  gcc/cp/cp-lang.cc
*************** e2854dfa428fab45fc41bf58fef71e61  gcc/cp
*** 5705,5711 ****
  f067718cf3d629084d8347c4e017afd4  gcc/cp/cxx-pretty-print.cc
  1d04eec9859d91686ca501e9221f30ac  gcc/cp/cxx-pretty-print.h
  82a41d873e1c90067158c89e6c1bd4bb  gcc/cp/cxxapi-data.csv
! 3155c27d2c38ab40a2768045ec5a0a11  gcc/cp/decl.cc
  6b0c9433f7d3f129a44b59d54babb4eb  gcc/cp/decl.h
  eb77bf90b77e8585aa773ccdf953c298  gcc/cp/decl2.cc
  12ccd5244973d74a0536adf58261b416  gcc/cp/dump.cc
--- 5705,5711 ----
  f067718cf3d629084d8347c4e017afd4  gcc/cp/cxx-pretty-print.cc
  1d04eec9859d91686ca501e9221f30ac  gcc/cp/cxx-pretty-print.h
  82a41d873e1c90067158c89e6c1bd4bb  gcc/cp/cxxapi-data.csv
! 1245427327e1090b84cc32cab7156133  gcc/cp/decl.cc
  6b0c9433f7d3f129a44b59d54babb4eb  gcc/cp/decl.h
  eb77bf90b77e8585aa773ccdf953c298  gcc/cp/decl2.cc
  12ccd5244973d74a0536adf58261b416  gcc/cp/dump.cc
*************** e4ccdd9cbe95dde4cce27394a7613dd9  gcc/cp
*** 5727,5748 ****
  54609938d396496c7c5bf3f4cbfddaec  gcc/cp/metafns.gperf
  04fe5bec0bf79fcb3680aec9913ebc29  gcc/cp/metafns.h
  db73ab5285dd3810cd91cb42aa475df5  gcc/cp/method.cc
! 72c10837c969d41a189d17d5027d9bbb  gcc/cp/module.cc
! 79b07b3ec2f0827645bcac2f0107f883  gcc/cp/name-lookup.cc
  b166c2ce3d5ccd4de4e0c5910947ae41  gcc/cp/name-lookup.h
  b98d31c57aa038618db60991b17e0d35  gcc/cp/operators.def
  9efebf39da56d681d4405dfb9e55e3f5  gcc/cp/optimize.cc
! e597ab171ad27c93ec4d074abe445c67  gcc/cp/parser.cc
  7973a34c47e3d3c580832655a3a5c3c2  gcc/cp/parser.h
! d582944d53aa3df999e8d938bc4171fe  gcc/cp/pt.cc
  25322928eaff39cf167372554c639e02  gcc/cp/ptree.cc
! 27b0f8e95aa4e38c0a2947cfd9838b7d  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
! 2f56cf596fc930fe29fe26279116d012  gcc/cp/tree.cc
  01e9a381e6fcf3d016d0170ee0ad71d7  gcc/cp/type-utils.h
  df4ddf4dc6c7bba71dd087265ece4ff7  gcc/cp/typeck.cc
  40eb09924b1139e6f7994869420c0c98  gcc/cp/typeck2.cc
--- 5727,5748 ----
  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
  9efebf39da56d681d4405dfb9e55e3f5  gcc/cp/optimize.cc
! bd5bdcb5d92dca9807f59ae64febcf94  gcc/cp/parser.cc
  7973a34c47e3d3c580832655a3a5c3c2  gcc/cp/parser.h
! f354506822182e4c46c44d24d5bc4fa9  gcc/cp/pt.cc
  25322928eaff39cf167372554c639e02  gcc/cp/ptree.cc
! 5a3f1ebdd9066d687e078d3aaef91fe0  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
*************** f80b38c70a85f9aeae9688b937b028ba  gcc/fi
*** 6269,6275 ****
  50b999b375e3a5a95a002f592e6d4514  gcc/fold-const.cc
  0ec02a37dbbe9cb267f0ea1263085ed3  gcc/fold-const.h
  a0df3d274ac009d203209a191738cec6  gcc/fold-mem-offsets.cc
! 522d4c261e7ff5cff728ab2609c8d4ea  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
--- 6269,6275 ----
  50b999b375e3a5a95a002f592e6d4514  gcc/fold-const.cc
  0ec02a37dbbe9cb267f0ea1263085ed3  gcc/fold-const.h
  a0df3d274ac009d203209a191738cec6  gcc/fold-mem-offsets.cc
! ba60571f8444853362be7258c5e17c44  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
*************** afb07146daad7f36a59c52e053f6772f  gcc/fo
*** 6324,6330 ****
  19f6b89e3aeb2bc4bd5df602aac79552  gcc/fortran/gfortran.h
  8fe0c8cc43e7ed982c602f58b4086351  gcc/fortran/gfortran.texi
  9da0114ccf35340d3035f21f8a0f3325  gcc/fortran/gfortranspec.cc
! 8cc7ef5f6337072e740ebd904093fcd4  gcc/fortran/interface.cc
  7e06cc5337aba27172fe64c673314c64  gcc/fortran/intrinsic.cc
  285cce3e348dd08fbaf339358ac57d51  gcc/fortran/intrinsic.h
  a1ee99c7b297b6d9d3face6f53d898e0  gcc/fortran/intrinsic.texi
--- 6324,6330 ----
  19f6b89e3aeb2bc4bd5df602aac79552  gcc/fortran/gfortran.h
  8fe0c8cc43e7ed982c602f58b4086351  gcc/fortran/gfortran.texi
  9da0114ccf35340d3035f21f8a0f3325  gcc/fortran/gfortranspec.cc
! 47b2522faad5795c8dcacc9417aed5a6  gcc/fortran/interface.cc
  7e06cc5337aba27172fe64c673314c64  gcc/fortran/intrinsic.cc
  285cce3e348dd08fbaf339358ac57d51  gcc/fortran/intrinsic.h
  a1ee99c7b297b6d9d3face6f53d898e0  gcc/fortran/intrinsic.texi
*************** f24751f278bee1ac8dc861467d9f96a3  gcc/ta
*** 8724,8730 ****
  bf20a6542e361b29f15f9f2b47d47e2f  gcc/targhooks.cc
  b1068b0d3d77d5a55802a29a9f8a08d7  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 0d6fc801f01836e1f48c9a4c4376e764  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
--- 8724,8730 ----
  bf20a6542e361b29f15f9f2b47d47e2f  gcc/targhooks.cc
  b1068b0d3d77d5a55802a29a9f8a08d7  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 8911a6e44bc553417258d286172f931c  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
*************** a086058df225e5fda842f4ebd12d6dbd  gcc/te
*** 23165,23170 ****
--- 23165,23171 ----
  5e0a6f554522f0537a21112c91d33895  gcc/testsuite/g++.dg/coroutines/pr120495.C
  cf70192c32f53d0ffe102b573d4080be  gcc/testsuite/g++.dg/coroutines/pr121643.C
  81dd0f7a2283cf853dddabb957fce0eb  gcc/testsuite/g++.dg/coroutines/pr123975.C
+ 0ca0846ef4e8c067a077207372df0fa3  gcc/testsuite/g++.dg/coroutines/pr125376.C
  cbb42d13b1660a8eb1d40a3d88308140  gcc/testsuite/g++.dg/coroutines/pr93458-1-missing-traits.C
  d9151fc224e4913ed7ffacd748769917  gcc/testsuite/g++.dg/coroutines/pr93458-2-bad-traits.C
  e9b715cb41c54f5b179b4725b788e338  gcc/testsuite/g++.dg/coroutines/pr93458-3-missing-handle.C
*************** fbaa97f955828122edb02abade5c00a5  gcc/te
*** 28267,28272 ****
--- 28268,28274 ----
  05972a123b20a66b9c7899c2bb0b5042  gcc/testsuite/g++.dg/cpp26/expansion-stmt4.C
  c52edd0a13ff5fb8338be44eb349b17c  gcc/testsuite/g++.dg/cpp26/expansion-stmt40.C
  9bf935574926cc3e4cd8cab9708f9ede  gcc/testsuite/g++.dg/cpp26/expansion-stmt41.C
+ 5cca76b98b9ab6de3265c4d30709010d  gcc/testsuite/g++.dg/cpp26/expansion-stmt42.C
  7cfc2afc603d55bfd66b320b3d190acd  gcc/testsuite/g++.dg/cpp26/expansion-stmt5.C
  8419176a2bf5898de53901daf6efe2a9  gcc/testsuite/g++.dg/cpp26/expansion-stmt6.C
  f3b34592f993c84838b0ef36dad5ed5e  gcc/testsuite/g++.dg/cpp26/expansion-stmt7.C
*************** bc013e85b03083defb9345b90c812b79  gcc/te
*** 28647,28652 ****
--- 28649,28656 ----
  24814124a2638795704cea1177c1d93c  gcc/testsuite/g++.dg/cpp2a/concepts-pr122494.C
  f5d0f986539b8cf3edb4d60aaa9e06d0  gcc/testsuite/g++.dg/cpp2a/concepts-pr123663.C
  c3a5a8ffeaedc47bb7c475c240bce1c2  gcc/testsuite/g++.dg/cpp2a/concepts-pr123814.C
+ 874cd7fa0112a7308d90c51f157becf0  gcc/testsuite/g++.dg/cpp2a/concepts-pr125490.C
+ dd2222c8cbe6cfb27b39393a46d50d4f  gcc/testsuite/g++.dg/cpp2a/concepts-pr125490a.C
  2e23f19968091d773a47c43a32a784ae  gcc/testsuite/g++.dg/cpp2a/concepts-pr58500.C
  07c6a4dff1357ef61c0d30b12db5c948  gcc/testsuite/g++.dg/cpp2a/concepts-pr58534.C
  b6ba42db630bfd3259d65662fc03aaa0  gcc/testsuite/g++.dg/cpp2a/concepts-pr58535.C
*************** f5603b028cb5e4f040fc3af7776ea00e  gcc/te
*** 33031,33037 ****
--- 33035,33045 ----
  60fb08261559503592bcae8f4f347885  gcc/testsuite/g++.dg/lookup/operator-7.C
  39473539be73f1fec8277d1351308d6a  gcc/testsuite/g++.dg/lookup/operator-8.C
  d4cc68c3b85ac22cfde7bacbae0bd6ce  gcc/testsuite/g++.dg/lookup/operator-8a.C
+ 682452a1fb8e4bea9eb372bb1af7f1a4  gcc/testsuite/g++.dg/lookup/operator-8b.C
+ d26a7a1591e9076a7145549e6589346a  gcc/testsuite/g++.dg/lookup/operator-8c.C
  41d2e17cc64d9181a14fce3cac8d35bd  gcc/testsuite/g++.dg/lookup/operator-9.C
+ e6f8a7c452c03ed95dab0d5189b53e06  gcc/testsuite/g++.dg/lookup/operator-9a.C
+ 070b568d2db1d2bfbadcb9422000c059  gcc/testsuite/g++.dg/lookup/operator-9b.C
  ed588fcfdd755a45d961e507c96ba9e2  gcc/testsuite/g++.dg/lookup/pr21802.C
  2378e813c805e961b5f594f4a76ec56d  gcc/testsuite/g++.dg/lookup/pr60994.C
  e8c219b570d08e589efca8f832a6b0b3  gcc/testsuite/g++.dg/lookup/pr67074.C
*************** bcea9ee60707a95dc9fe1a749981578a  gcc/te
*** 37915,37920 ****
--- 37923,37929 ----
  d1618ed5affc804f7f8cda302ecd3b2e  gcc/testsuite/g++.dg/reflect/pr124790.C
  121fa58431980b8ab5bd16473ccf8c21  gcc/testsuite/g++.dg/reflect/pr124792.C
  46ef5d1fe4f16ccc7109ecfe84f64b11  gcc/testsuite/g++.dg/reflect/pr125007.C
+ c35e7ee674a0e569c67e5b1b3a3dc568  gcc/testsuite/g++.dg/reflect/pr125412.C
  e6404856d4cc9cc02aa5ebec3e5ecb82  gcc/testsuite/g++.dg/reflect/qrn1.C
  4ef5fc49aed920d8bfc3bc57a9ddef71  gcc/testsuite/g++.dg/reflect/qrn2.C
  8a49e7b1ad0cad9ac48fdcf37ad900cf  gcc/testsuite/g++.dg/reflect/range_args.C
*************** d879ca69386462507d34baeeaac6ff87  gcc/te
*** 57352,57358 ****
  fce9b0e78881985f76e0dd77bf2834f2  gcc/testsuite/gcc.dg/lto/toplevel-extended-asm-2_1.c
  6ced18e2b5e01709247b972ac330e680  gcc/testsuite/gcc.dg/lto/toplevel-extended-asm-3_0.c
  db7afbef19e4085f817f6d5503e94797  gcc/testsuite/gcc.dg/lto/toplevel-extended-asm-3_1.c
! bb7cf904df61848bdf84886837612bb9  gcc/testsuite/gcc.dg/lto/toplevel-simple-asm-1_0.c
  06309190fd3e222a7f4615a1e35b909a  gcc/testsuite/gcc.dg/lto/toplevel-simple-asm-1_1.c
  fe37f244fa55d46efa4078f405290af2  gcc/testsuite/gcc.dg/lto/toplevel-simple-asm-2_0.c
  e37f3db6688d550dbb2243182e4579f0  gcc/testsuite/gcc.dg/lto/toplevel-simple-asm-2_1.c
--- 57361,57367 ----
  fce9b0e78881985f76e0dd77bf2834f2  gcc/testsuite/gcc.dg/lto/toplevel-extended-asm-2_1.c
  6ced18e2b5e01709247b972ac330e680  gcc/testsuite/gcc.dg/lto/toplevel-extended-asm-3_0.c
  db7afbef19e4085f817f6d5503e94797  gcc/testsuite/gcc.dg/lto/toplevel-extended-asm-3_1.c
! 9e08032370afd687ed010e4d9199e194  gcc/testsuite/gcc.dg/lto/toplevel-simple-asm-1_0.c
  06309190fd3e222a7f4615a1e35b909a  gcc/testsuite/gcc.dg/lto/toplevel-simple-asm-1_1.c
  fe37f244fa55d46efa4078f405290af2  gcc/testsuite/gcc.dg/lto/toplevel-simple-asm-2_0.c
  e37f3db6688d550dbb2243182e4579f0  gcc/testsuite/gcc.dg/lto/toplevel-simple-asm-2_1.c
*************** f733cdb22a88b058648393623d505a3f  gcc/te
*** 58751,58756 ****
--- 58760,58766 ----
  f85e3805a900aeb94e96e6ea1712a125  gcc/testsuite/gcc.dg/pr124809.c
  4ac96a747a32d5c51b5be5c05cdd21c5  gcc/testsuite/gcc.dg/pr125019.c
  192df6769f6f110bb8f33708a1ceeea9  gcc/testsuite/gcc.dg/pr125117.c
+ b9e821b448b2a7ca97d76e3b0edfe9cf  gcc/testsuite/gcc.dg/pr125375.c
  bc5ddfbbc46f4e0cce1629d1b58d3090  gcc/testsuite/gcc.dg/pr12603.c
  72a2fca76cb69617ae36bab93c7ec0d7  gcc/testsuite/gcc.dg/pr12625-1.c
  6f0ef61e5a12db5f11da839b2988c5e1  gcc/testsuite/gcc.dg/pr13519-1.c
*************** b569af91dd7275609d58f4469ba9e826  gcc/te
*** 62621,62627 ****
--- 62631,62639 ----
  c2d3ac4b0fce6da2e8aaeaf741803572  gcc/testsuite/gcc.dg/torture/pr124891.c
  fbe779467ae6f7cb7ee578922f1e8686  gcc/testsuite/gcc.dg/torture/pr125025.c
  a5b9e215eaee30cede04135bd18b6a59  gcc/testsuite/gcc.dg/torture/pr125153.c
+ 1380b111d91a82b39e2bcbae4eab1160  gcc/testsuite/gcc.dg/torture/pr125156.c
  f04a0ca1134a2f6b7f28283527f4394b  gcc/testsuite/gcc.dg/torture/pr125185.c
+ f4849047990250a3f9ee017d25b29b9a  gcc/testsuite/gcc.dg/torture/pr125250.c
  ded4330fd1cd52783bd9b1761db038ef  gcc/testsuite/gcc.dg/torture/pr16104-1.c
  fc265ee05da2f29f0e92804661cd1f28  gcc/testsuite/gcc.dg/torture/pr17526.c
  01c583edb41b632b835aa892b9c1cb14  gcc/testsuite/gcc.dg/torture/pr17933-1.c
*************** d42dd1ea70f8104be50f2b828342ef9a  gcc/te
*** 76490,76495 ****
--- 76502,76508 ----
  b88eab54dea3d3e5a60ff794d3268d8e  gcc/testsuite/gcc.target/aarch64/sve/pr122749_6.c
  d4ac7a84edd49408935038ba429c4a6d  gcc/testsuite/gcc.target/aarch64/sve/pr122749_8.c
  aab87b2d9daa75eaf07f2f4e47d63c11  gcc/testsuite/gcc.target/aarch64/sve/pr122749_9.c
+ cbe63b7384f92925c6e39116fe7f79c6  gcc/testsuite/gcc.target/aarch64/sve/pr122827.c
  806909efa49b7a7a797b079996626314  gcc/testsuite/gcc.target/aarch64/sve/pr123697.c
  8d516514d55b6987b8c79e9e3ce2bdb1  gcc/testsuite/gcc.target/aarch64/sve/pr123767.c
  777fa618dc2e814b8354442c6286d350  gcc/testsuite/gcc.target/aarch64/sve/pr123897.c
*************** bf378714d79fc87ae8d2ba5ba38abac9  gcc/te
*** 79795,79800 ****
--- 79808,79814 ----
  c6565beafc869833d2a6dd9484818c2d  gcc/testsuite/gcc.target/arm/mve/intrinsics/pr118332.c
  1073bc89c952fc9eb9cdb6a1efd78a78  gcc/testsuite/gcc.target/arm/mve/intrinsics/pr122175.c
  b52bd79f0b568c75adaa75c022b0e2a0  gcc/testsuite/gcc.target/arm/mve/intrinsics/pr122223.c
+ d7c212778ee5c316128a821b206740c1  gcc/testsuite/gcc.target/arm/mve/intrinsics/pr124870.c
  b64a60d68e969b641b8652c2bd4eef0d  gcc/testsuite/gcc.target/arm/mve/intrinsics/pr97327.c
  f1860ef4320f7f2a6a4791bdb0c063ba  gcc/testsuite/gcc.target/arm/mve/intrinsics/sqrshr.c
  5d7653e2d5007d0c5a0f2368f9b07c02  gcc/testsuite/gcc.target/arm/mve/intrinsics/sqrshrl_sat48.c
*************** a0087c60ab6914bc07a95e55747be0f6  gcc/te
*** 84264,84269 ****
--- 84278,84284 ----
  3247c637a4f9e8976b8bc48f0c8aea40  gcc/testsuite/gcc.target/i386/apx-zu-1.c
  28515ca55dda5aa1ef1a093bad3796fa  gcc/testsuite/gcc.target/i386/apx-zu-2.c
  dcf2a424ef2dff7b26c8b3f00c3e2cb3  gcc/testsuite/gcc.target/i386/apx-zu-3.c
+ 21d1f348030c6afbef2724a1b656cc2a  gcc/testsuite/gcc.target/i386/apx-zu-4.c
  1d9d11dcd88432f117e44c643ec90ad2  gcc/testsuite/gcc.target/i386/ashldi3-1.c
  0fe4c919ffa886428aea4dfbafae6152  gcc/testsuite/gcc.target/i386/ashldi3-2.c
  6b37f3af0f281a50739a4dabbfa5799a  gcc/testsuite/gcc.target/i386/ashlti3-1.c
*************** a0e47f84ef019a0c0609e9c44732ef14  gcc/te
*** 93352,93357 ****
--- 93367,93373 ----
  f09f84c085c0e194eb110e475ef95081  gcc/testsuite/gcc.target/i386/ssse3-phsubw.c
  e6a3ecb80a089c5e971a5a097701255d  gcc/testsuite/gcc.target/i386/ssse3-pmaddubsw.c
  9779e9b9b03ccba1bbd02aa8014a0c6e  gcc/testsuite/gcc.target/i386/ssse3-pmulhrsw.c
+ 7fe48df578c96c6992918e4881f43572  gcc/testsuite/gcc.target/i386/ssse3-pr125611.c
  15e3df89b9592d7a755e5107a4c6b718  gcc/testsuite/gcc.target/i386/ssse3-pshufb.c
  b3082251265483716a53827b31517936  gcc/testsuite/gcc.target/i386/ssse3-psignb.c
  5c58d5d7c2e35b22f6a4c28d124bde6f  gcc/testsuite/gcc.target/i386/ssse3-psignd.c
*************** c10f8db5df2b65c9fba341cccb30fe9c  gcc/te
*** 100491,100496 ****
--- 100507,100513 ----
  435f94201bb6109ed80f56efab255e18  gcc/testsuite/gcc.target/riscv/rvv/autovec/pr123916.c
  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
  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
*************** d64c9f6fe7344abd3299437c1ef4dfb7  gcc/te
*** 101065,101075 ****
  2ba53da72c8581d9539b778945f4cf48  gcc/testsuite/gcc.target/riscv/rvv/autovec/shuffle-slide-run.h
  f8dab1a5e995006acd7b3ef2dc4f2bcd  gcc/testsuite/gcc.target/riscv/rvv/autovec/shuffle-slidedown-run.c
  1663e10813b7026e0300785ca2de3ca6  gcc/testsuite/gcc.target/riscv/rvv/autovec/shuffle-slideup-run.c
- 8e40a987eb306df9e33adf3d96c885ad  gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-1.c
- e361b814d6c1a2db0378e33bb0f45a2d  gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-2.c
- 3576af7e98c5aa20081a56bb4b37c74d  gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-3.c
- 3d8ed1d2f663f89bdf3b5d3e429f27f7  gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-4.c
- 98f34d1492ede5a23aba03f93b18969b  gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-5.c
  a0280909abc5f9c752512011a8bb99d0  gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-mask-1.c
  7b06d48b2780f8f240246b297efe511f  gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-mask-run-1.c
  a42b2c8e5fe521d8703afdc69ca232a8  gcc/testsuite/gcc.target/riscv/rvv/autovec/strided/strided_ld_st-1-f16.c
--- 101082,101087 ----
*************** cb8920b39d43f8d36d7c87cd6ce3188a  gcc/te
*** 112276,112281 ****
--- 112288,112294 ----
  e96279b8586c27726b6d13e5aef5f5ce  gcc/testsuite/gfortran.dg/argument_checking_25.f90
  41fda9edc825e051657e0ef512854333  gcc/testsuite/gfortran.dg/argument_checking_26.f90
  c14ff6618ca60358eed38607ccf6e442  gcc/testsuite/gfortran.dg/argument_checking_27.f90
+ 1588b03554f28c8c20c602e73ef08894  gcc/testsuite/gfortran.dg/argument_checking_28.f90
  9420e2390509236501a51aceaffd8fec  gcc/testsuite/gfortran.dg/argument_checking_3.f90
  ca22fc708f8e1b6425943105c693f41e  gcc/testsuite/gfortran.dg/argument_checking_4.f90
  6ef91b131477d21bf8c75369daea1d04  gcc/testsuite/gfortran.dg/argument_checking_5.f90
*************** cd8ba5dd4250a5b2e05a86d17653003a  gcc/te
*** 123469,123475 ****
  dc0d018c7ef4988da05274a87a491db9  gcc/testsuite/gnat.dg/atomic7_pkg2.adb
  1e3f2b6f0d918e36ae539ab32f3a4b31  gcc/testsuite/gnat.dg/atomic7_pkg2.ads
  16c10ef2b56763079ce902fa8a6be517  gcc/testsuite/gnat.dg/atomic8.adb
! 9cf0427260327c8df6b99da823648ff4  gcc/testsuite/gnat.dg/atomic9.adb
  d0f41363293cf0ce8de4f15905ffba68  gcc/testsuite/gnat.dg/auto_var_init.adb
  3a29826c9a71b419b0c2323869c82f42  gcc/testsuite/gnat.dg/bad_array.adb
  8ed54c1eb565f97d5511a00d165ab799  gcc/testsuite/gnat.dg/bias1.adb
--- 123482,123488 ----
  dc0d018c7ef4988da05274a87a491db9  gcc/testsuite/gnat.dg/atomic7_pkg2.adb
  1e3f2b6f0d918e36ae539ab32f3a4b31  gcc/testsuite/gnat.dg/atomic7_pkg2.ads
  16c10ef2b56763079ce902fa8a6be517  gcc/testsuite/gnat.dg/atomic8.adb
! e5091ed1d302f492811c96f548859552  gcc/testsuite/gnat.dg/atomic9.adb
  d0f41363293cf0ce8de4f15905ffba68  gcc/testsuite/gnat.dg/auto_var_init.adb
  3a29826c9a71b419b0c2323869c82f42  gcc/testsuite/gnat.dg/bad_array.adb
  8ed54c1eb565f97d5511a00d165ab799  gcc/testsuite/gnat.dg/bias1.adb
*************** bc74f92323ee5636997f0c03aec16115  gcc/tr
*** 130955,130961 ****
  a0c02d542dbd50cb44704b2ffce2739c  gcc/tree-call-cdce.cc
  2bb5fd65b4dcb26760b786589ff6a903  gcc/tree-cfg.cc
  809e1f07de4be5a3fc990f66bd6d1105  gcc/tree-cfg.h
! 93710abe3578ad27dba111e1d3a1c795  gcc/tree-cfgcleanup.cc
  645c34c74323c655a1d20f8f76e64b27  gcc/tree-cfgcleanup.h
  447f46e51936add5de4aaa77a96039ba  gcc/tree-chrec.cc
  1cf760e3e7aab6f94a5e56897486623d  gcc/tree-chrec.h
--- 130968,130974 ----
  a0c02d542dbd50cb44704b2ffce2739c  gcc/tree-call-cdce.cc
  2bb5fd65b4dcb26760b786589ff6a903  gcc/tree-cfg.cc
  809e1f07de4be5a3fc990f66bd6d1105  gcc/tree-cfg.h
! e4268d258c67f33e0625d4eb1ca512f7  gcc/tree-cfgcleanup.cc
  645c34c74323c655a1d20f8f76e64b27  gcc/tree-cfgcleanup.h
  447f46e51936add5de4aaa77a96039ba  gcc/tree-chrec.cc
  1cf760e3e7aab6f94a5e56897486623d  gcc/tree-chrec.h
*************** bb90d30f7c6176fd9edf8b10cc7803b6  gcc/tr
*** 131030,131036 ****
  96b11e029c398aaecd1c642c41c88884  gcc/tree-ssa-live.cc
  7c36b95c9d109be3302936ceed49fb4f  gcc/tree-ssa-live.h
  dcaeaaad1469ccb53d09d0c3975284d7  gcc/tree-ssa-loop-ch.cc
! 2b7917b8cadbc3f3b3807f67ee57a48b  gcc/tree-ssa-loop-im.cc
  f8b96abb98adf78d9bf9645ec4529541  gcc/tree-ssa-loop-ivcanon.cc
  0352f316ce735254fc0a8394edd81dc6  gcc/tree-ssa-loop-ivopts.cc
  73db7c26eb3c2afa63524b388a9849fd  gcc/tree-ssa-loop-ivopts.h
--- 131043,131049 ----
  96b11e029c398aaecd1c642c41c88884  gcc/tree-ssa-live.cc
  7c36b95c9d109be3302936ceed49fb4f  gcc/tree-ssa-live.h
  dcaeaaad1469ccb53d09d0c3975284d7  gcc/tree-ssa-loop-ch.cc
! 2b00d0f0fd67365a2e05a25f3a784111  gcc/tree-ssa-loop-im.cc
  f8b96abb98adf78d9bf9645ec4529541  gcc/tree-ssa-loop-ivcanon.cc
  0352f316ce735254fc0a8394edd81dc6  gcc/tree-ssa-loop-ivopts.cc
  73db7c26eb3c2afa63524b388a9849fd  gcc/tree-ssa-loop-ivopts.h
*************** ddd4bdc2fa29f8f2aa3386cead9ebcb2  libstd
*** 146717,146724 ****
  16c6db3f5b1e7b3e37c3febbf4dc4e8c  libstdc++-v3/include/bits/valarray_before.h
  682dec8d9b388681bc1f171ba0c5590e  libstdc++-v3/include/bits/vec_ops.h
  5a7dd3eca21d4650e654ea51da466c59  libstdc++-v3/include/bits/vector.tcc
! 543cf57b6ede0865f0d6ded6ec5427cc  libstdc++-v3/include/bits/version.def
! 29fbc02e75371bf75aa0871428303686  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
--- 146730,146737 ----
  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
*************** d33f07a2c476cc45af97a78f4020e731  libstd
*** 146830,146836 ****
  86f440721d11a555ec97526d018eabf7  libstdc++-v3/include/debug/multiset.h
  05b2e599111f72660b0453d2350d1feb  libstdc++-v3/include/debug/safe_base.h
  b901bcac560763f13f4c3a3e076f8f7f  libstdc++-v3/include/debug/safe_container.h
! c623155558d82a21f1f31630a36eca85  libstdc++-v3/include/debug/safe_iterator.h
  732aac16ab9dafe9252686005236d0fd  libstdc++-v3/include/debug/safe_iterator.tcc
  3f09c53b38ff607ff8a2eff86c38b166  libstdc++-v3/include/debug/safe_local_iterator.h
  86b787ce43f8d75f10315d2c404c22e4  libstdc++-v3/include/debug/safe_local_iterator.tcc
--- 146843,146849 ----
  86f440721d11a555ec97526d018eabf7  libstdc++-v3/include/debug/multiset.h
  05b2e599111f72660b0453d2350d1feb  libstdc++-v3/include/debug/safe_base.h
  b901bcac560763f13f4c3a3e076f8f7f  libstdc++-v3/include/debug/safe_container.h
! ce286c5643cd4d6d257f6cb10d947f3f  libstdc++-v3/include/debug/safe_iterator.h
  732aac16ab9dafe9252686005236d0fd  libstdc++-v3/include/debug/safe_iterator.tcc
  3f09c53b38ff607ff8a2eff86c38b166  libstdc++-v3/include/debug/safe_local_iterator.h
  86b787ce43f8d75f10315d2c404c22e4  libstdc++-v3/include/debug/safe_local_iterator.tcc
*************** f945d16289e71c13744e7d9177de9ccc  libstd
*** 147284,147291 ****
  649d9183a0fa35d50371bb1bce3f70c2  libstdc++-v3/include/std/execution
  a8e79cb6c591611cd6113eed355c3de6  libstdc++-v3/include/std/expected
  d1dc8325fc8c069a07bab71a935bced3  libstdc++-v3/include/std/filesystem
! 2e6e28dfb5edb1fef43bb61a7cfa4f6d  libstdc++-v3/include/std/flat_map
! b384f6e8eb77f0d5747534b3ed9a89cb  libstdc++-v3/include/std/flat_set
  14fa0aceca3461a5dfbdd0084a7b5778  libstdc++-v3/include/std/format
  7e1c7765d1205d0a0571065e7e1f111d  libstdc++-v3/include/std/forward_list
  c85826e5073be733076e4825a96a991c  libstdc++-v3/include/std/fstream
--- 147297,147304 ----
  649d9183a0fa35d50371bb1bce3f70c2  libstdc++-v3/include/std/execution
  a8e79cb6c591611cd6113eed355c3de6  libstdc++-v3/include/std/expected
  d1dc8325fc8c069a07bab71a935bced3  libstdc++-v3/include/std/filesystem
! 5f6d1d543aa97204300a7a76284f8775  libstdc++-v3/include/std/flat_map
! c3b66598ccd8ea2009de9b04433b7dcf  libstdc++-v3/include/std/flat_set
  14fa0aceca3461a5dfbdd0084a7b5778  libstdc++-v3/include/std/format
  7e1c7765d1205d0a0571065e7e1f111d  libstdc++-v3/include/std/forward_list
  c85826e5073be733076e4825a96a991c  libstdc++-v3/include/std/fstream
*************** f0b8e57260744dc4dd54e9310150e92b  libstd
*** 150928,150937 ****
  f5b48dae8a0117e334adb810656e5c1e  libstdc++-v3/testsuite/23_containers/deque/types/pmr_typedefs.cc
  f18a580ead7e972f0c090a4027e9a983  libstdc++-v3/testsuite/23_containers/deque/types/pmr_typedefs_debug.cc
  ca98b78997105b8f93c1c653568b6095  libstdc++-v3/testsuite/23_containers/deque/version.cc
! e310ae393b8fe01de804bcfc323ce95f  libstdc++-v3/testsuite/23_containers/flat_map/1.cc
! 999168abb39b43b26234e06cd590acc2  libstdc++-v3/testsuite/23_containers/flat_multimap/1.cc
! 086ebf6be41c0011120859c1081060d2  libstdc++-v3/testsuite/23_containers/flat_multiset/1.cc
! 10bd36e295161b7839fff585fcf825af  libstdc++-v3/testsuite/23_containers/flat_set/1.cc
  476152c1b55bed61d5784f2c55391c4c  libstdc++-v3/testsuite/23_containers/forward_list/48101-2_neg.cc
  3a54e4ee9401f36ed66b31e6ef6c97f1  libstdc++-v3/testsuite/23_containers/forward_list/48101-3_neg.cc
  9a8ee3f804c017bdd7aec68a68f7b593  libstdc++-v3/testsuite/23_containers/forward_list/48101_neg.cc
--- 150941,150950 ----
  f5b48dae8a0117e334adb810656e5c1e  libstdc++-v3/testsuite/23_containers/deque/types/pmr_typedefs.cc
  f18a580ead7e972f0c090a4027e9a983  libstdc++-v3/testsuite/23_containers/deque/types/pmr_typedefs_debug.cc
  ca98b78997105b8f93c1c653568b6095  libstdc++-v3/testsuite/23_containers/deque/version.cc
! 1ebeb8568128761ada01c23ebe2b9869  libstdc++-v3/testsuite/23_containers/flat_map/1.cc
! fb1b6d0f20a7a6b74b6d18a6660462d6  libstdc++-v3/testsuite/23_containers/flat_multimap/1.cc
! 19d9c8a3fa76dd5b1015a8df7423ca56  libstdc++-v3/testsuite/23_containers/flat_multiset/1.cc
! d2d74a097abd54938674a6cfa63fe0d7  libstdc++-v3/testsuite/23_containers/flat_set/1.cc
  476152c1b55bed61d5784f2c55391c4c  libstdc++-v3/testsuite/23_containers/forward_list/48101-2_neg.cc
  3a54e4ee9401f36ed66b31e6ef6c97f1  libstdc++-v3/testsuite/23_containers/forward_list/48101-3_neg.cc
  9a8ee3f804c017bdd7aec68a68f7b593  libstdc++-v3/testsuite/23_containers/forward_list/48101_neg.cc
diff -Nrcpad gcc-16-20260530/gcc/ChangeLog gcc-16-20260606/gcc/ChangeLog
*** gcc-16-20260530/gcc/ChangeLog	Sat May 30 22:32:04 2026
--- gcc-16-20260606/gcc/ChangeLog	Sat Jun  6 22:32:04 2026
***************
*** 1,3 ****
--- 1,97 ----
+ 2026-06-03  Richard Sandiford  <rdsandiford@googlemail.com>
+ 
+ 	PR rtl-optimization/125375
+ 	* cfgrtl.cc (flow_active_insn_p): Return true for clobbers.
+ 
+ 2026-06-03  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	Backported from master:
+ 	2026-06-01  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* config/aarch64/tuning_models/olympus.h (olympus_scalar_issue_info,
+ 	olympus_advsimd_issue_info, olympus_sve_issue_info): Set
+ 	loads_stores_per_cycle to 6.
+ 
+ 2026-06-03  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	Backported from master:
+ 	2026-06-01  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	PR target/122827
+ 	* config/aarch64/aarch64.cc (aarch64_hard_regno_call_part_clobbered):
+ 	For SVE modes use BYTES_PER_SVE_VECTOR for the per-register size
+ 	rather than GET_MODE_SIZE.
+ 	* config/aarch64/aarch64-early-ra.cc (early_ra::get_allocno_subgroup):
+ 	Classify any SVE mode as FPR_Z.
+ 
+ 2026-06-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-05-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/125250
+ 	* tree-ssa-loop-im.cc (execute_sm): For modes that cannot
+ 	transfer bits, _Bool and bitfield accesses force the
+ 	multi-threaded model.
+ 
+ 2026-06-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-05-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/125156
+ 	* tree-cfgcleanup.cc (cleanup_control_expr_graph): Clear
+ 	EDGE_TRUE_VALUE and EDGE_FALSE_VALUE edge flags only.
+ 
+ 2026-06-01  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa.cc (pa_trampoline_init): Rework to use
+ 	clear_cache pattern.
+ 	* config/pa/pa.md (dcacheflush): Use "<<" condition instead
+ 	of "<<=".
+ 	(icacheflush): Remove.
+ 	(icacheflush1, icacheflush2, icacheflush3): New flush patterns
+ 	for PA 1.x targets, PA 2.0 targets, and PA 1.x no space
+ 	register targets.
+ 	(clear_cache): Rework to flush data and instruction caches.
+ 	Skip flush if the start address is greater than or equal to
+ 	the end address.  Don't align the end address to a cacheline
+ 	boundary.  Handle instruction flushes for PA 1.x targets,
+ 	PA 2.0 targets, and PA 1.x no space register targets.
+ 
+ 2026-06-01  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	Backported from master:
+ 	2026-05-19  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	PR target/124870
+ 	* config/arm/arm-mve-builtins-base.cc (vstrq_scatter_base_impl)
+ 	(vldrq_gather_base_impl): Fix call_properties.
+ 
+ 2026-06-01  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	Backported from master:
+ 	2026-06-01  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* config/i386/x86-tune.def (X86_TUNE_DISABLE_SETZUCC): New.
+ 	Enable for m_DIAMONDRAPIDS | m_NOVALAKE.
+ 	* config/i386/i386.h (TARGET_DISABLE_SETZUCC): New define.
+ 	* config/i386/i386.md (*setcc_<mode>_zu): Guard with
+ 	TARGET_APX_ZU && !TARGET_DISABLE_SETZUCC.
+ 	(*setcc_di_1, *setcc_<mode>_1_movzbl): Guard with
+ 	(!TARGET_APX_ZU || TARGET_DISABLE_SETZUCC).
+ 	(*setcc_qi, *setcc_qi_slp): Emit setzucc only when
+ 	TARGET_APX_ZU && !TARGET_DISABLE_SETZUCC.
+ 
+ 2026-05-31  Zhongyao Chen  <chen.zhongyao@zte.com.cn>
+ 
+ 	Backported from master:
+ 	2026-05-13  Zhongyao Chen  <chen.zhongyao@zte.com.cn>
+ 
+ 	PR target/125215
+ 	* config/riscv/riscv-v.cc (expand_const_vector_interleaved_stepped_npatterns):
+ 	Remove hi/lo optimization and always use the merge fallback.
+ 
  2026-05-28  Martin Jambor  <mjambor@suse.cz>
  
  	Backported from master:
diff -Nrcpad gcc-16-20260530/gcc/DATESTAMP gcc-16-20260606/gcc/DATESTAMP
*** gcc-16-20260530/gcc/DATESTAMP	Sat May 30 22:32:04 2026
--- gcc-16-20260606/gcc/DATESTAMP	Sat Jun  6 22:32:05 2026
***************
*** 1 ****
! 20260530
--- 1 ----
! 20260604
diff -Nrcpad gcc-16-20260530/gcc/ada/ChangeLog gcc-16-20260606/gcc/ada/ChangeLog
*** gcc-16-20260530/gcc/ada/ChangeLog	Sat May 30 22:32:04 2026
--- gcc-16-20260606/gcc/ada/ChangeLog	Sat Jun  6 22:32:05 2026
***************
*** 1,3 ****
--- 1,47 ----
+ 2026-06-02  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Validate
+ 	a known alignment on the object even if there is an address clause.
+ 
+ 2026-06-02  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Do not
+ 	give the warning about too large a size here but...
+ 	* gcc-interface/utils2.cc (build_allocator): ...here instead.
+ 
+ 2026-06-02  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/utils.cc (maybe_pad_type): Propagate the flag
+ 	TYPE_REVERSE_STORAGE_ORDER from the inner type to the record type
+ 	if the former is also an aggregate type.
+ 
+ 2026-06-02  Gary Dismukes  <dismukes@adacore.com>
+ 
+ 	* sem_ch3.adb (Copy_Parent_Attributes): Inherit Linker_Section_Pragma.
+ 
+ 2026-06-02  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/18205
+ 	* exp_attr.adb (Rewrite_Attribute_Proc_Call): Skip the conversion to
+ 	the formal type only if the actual is of a class-wide type. Generate
+ 	a dispatching call when both the prefix is a class-wide type and the
+ 	subprogram is a dispatching operation.
+ 	(Expand_N_Attribute_Reference) <Input>: Use U_Type consistently and
+ 	remove an useless invocation of Root_Type.
+ 	<Put_Image>: Minor comment tweak.
+ 	<Read>: Likewise.
+ 	<Write>: Likewise.
+ 
+ 2026-06-02  Ronan Desplanques  <desplanques@adacore.com>
+ 
+ 	* par.adb, par-util.adb (Check_Bad_Layout_At): New procedure.
+ 	* par-ch3.adb (P_Declarative_Item): Use new procedure.
+ 	* par-ch5.adb (P_Sequence_Of_Statements): Likewise.
+ 
+ 2026-06-02  Viljar Indus  <indus@adacore.com>
+ 
+ 	* sem_util.adb (Normalize_Actuals): Improve error message.
+ 
  2026-05-29  Marc Poulhiès  <poulhies@adacore.com>
  
  	* sysdep.c (getc_immediate_common): Read character as unsigned
diff -Nrcpad gcc-16-20260530/gcc/ada/exp_attr.adb gcc-16-20260606/gcc/ada/exp_attr.adb
*** gcc-16-20260530/gcc/ada/exp_attr.adb	Sat May 30 22:32:04 2026
--- gcc-16-20260606/gcc/ada/exp_attr.adb	Sat Jun  6 22:32:05 2026
*************** package body Exp_Attr is
*** 2233,2238 ****
--- 2233,2240 ----
           Formal_Typ : constant Entity_Id := Etype (Formal);
           Is_Written : constant Boolean   := Ekind (Formal) /= E_In_Parameter;
  
+          Call : Node_Id;
+ 
        begin
           --  The expansion depends on Item, the second actual, which is
           --  the object being streamed in or out.
*************** package body Exp_Attr is
*** 2286,2293 ****
           --  operation is not inherited), we are all set, and can use the
           --  argument unchanged.
  
!          if not Is_Class_Wide_Type (Entity (Pref))
!            and then not Is_Class_Wide_Type (Etype (Item))
             and then Base_Type (Item_Typ) /= Base_Type (Formal_Typ)
           then
              --  Perform an unchecked conversion when either the argument or
--- 2288,2295 ----
           --  operation is not inherited), we are all set, and can use the
           --  argument unchanged.
  
!          if not Is_Class_Wide_Type (Item_Typ)
!            and then not Is_Class_Wide_Type (Formal_Typ)
             and then Base_Type (Item_Typ) /= Base_Type (Formal_Typ)
           then
              --  Perform an unchecked conversion when either the argument or
*************** package body Exp_Attr is
*** 2333,2343 ****
  
           --  And now rewrite the call
  
!          Rewrite (N,
!            Make_Procedure_Call_Statement (Loc,
!              Name                   => New_Occurrence_Of (Pname, Loc),
!              Parameter_Associations => Exprs));
  
           Analyze (N);
        end Rewrite_Attribute_Proc_Call;
  
--- 2335,2355 ----
  
           --  And now rewrite the call
  
!          Call := Make_Procedure_Call_Statement (Loc,
!            Name                   => New_Occurrence_Of (Pname, Loc),
!            Parameter_Associations => Exprs);
  
+          --  If the attribute has not been specified for a CW type, then we
+          --  must dispatch to the attribute of the specific type identified
+          --  by the tag of Item.
+ 
+          if Is_Class_Wide_Type (Entity (Pref))
+            and then Is_Dispatching_Operation (Pname)
+          then
+             Set_Controlling_Argument (Call, Item);
+          end if;
+ 
+          Rewrite (N, Call);
           Analyze (N);
        end Rewrite_Attribute_Proc_Call;
  
*************** package body Exp_Attr is
*** 4950,4958 ****
  
              --  Dispatching case with class-wide type
  
!             elsif Is_Class_Wide_Type (P_Type) then
  
!                if Is_Mutably_Tagged_Type (P_Type) then
  
                    --  In mutably tagged case, rewrite
                    --    T'Class'Input (Strm)
--- 4962,4970 ----
  
              --  Dispatching case with class-wide type
  
!             elsif Is_Class_Wide_Type (U_Type) then
  
!                if Is_Mutably_Tagged_Type (U_Type) then
  
                    --  In mutably tagged case, rewrite
                    --    T'Class'Input (Strm)
*************** package body Exp_Attr is
*** 5002,5008 ****
                 end if;
  
                 Read_Controlling_Tag (P_Type, Cntrl);
!                Fname := Find_Prim_Op (Root_Type (P_Type), TSS_Stream_Input);
  
              --  For tagged types, use the primitive Input function
  
--- 5014,5020 ----
                 end if;
  
                 Read_Controlling_Tag (P_Type, Cntrl);
!                Fname := Find_Prim_Op (U_Type, TSS_Stream_Input);
  
              --  For tagged types, use the primitive Input function
  
*************** package body Exp_Attr is
*** 6641,6648 ****
                 end if;
  
              --  Tagged type case, use the primitive Put_Image function. Note
!             --  that this will dispatch in the class-wide case which is what we
!             --  want.
  
              elsif Is_Tagged_Type (U_Type) then
                 Pname := Find_Optional_Prim_Op (U_Type, TSS_Put_Image);
--- 6653,6659 ----
                 end if;
  
              --  Tagged type case, use the primitive Put_Image function. Note
!             --  that this will dispatch in the class-wide case as required.
  
              elsif Is_Tagged_Type (U_Type) then
                 Pname := Find_Optional_Prim_Op (U_Type, TSS_Put_Image);
*************** package body Exp_Attr is
*** 7063,7069 ****
                 end;
  
              --  Tagged type case, use the primitive Read function. Note that
!             --  this will dispatch in the class-wide case which is what we want
  
              elsif Is_Tagged_Type (U_Type) then
  
--- 7074,7080 ----
                 end;
  
              --  Tagged type case, use the primitive Read function. Note that
!             --  this will dispatch in the class-wide case as required.
  
              elsif Is_Tagged_Type (U_Type) then
  
*************** package body Exp_Attr is
*** 8789,8795 ****
                 end;
  
              --  Tagged type case, use the primitive Write function. Note that
!             --  this will dispatch in the class-wide case which is what we want
  
              elsif Is_Tagged_Type (U_Type) then
  
--- 8800,8806 ----
                 end;
  
              --  Tagged type case, use the primitive Write function. Note that
!             --  this will dispatch in the class-wide case as required.
  
              elsif Is_Tagged_Type (U_Type) then
  
diff -Nrcpad gcc-16-20260530/gcc/ada/exp_ch4.adb gcc-16-20260606/gcc/ada/exp_ch4.adb
*** gcc-16-20260530/gcc/ada/exp_ch4.adb	Sat May 30 22:32:04 2026
--- gcc-16-20260606/gcc/ada/exp_ch4.adb	Sat Jun  6 22:32:05 2026
*************** package body Exp_Ch4 is
*** 839,845 ****
  
        if Is_Entity_Name (Exp)
          and then Has_Anonymous_Access_Discriminant (Etype (Exp))
!         and then Static_Accessibility_Level (Exp, Object_Decl_Level)
                     > Static_Accessibility_Level (N, Object_Decl_Level)
        then
           --  A dynamic check and a warning are generated when we are within
--- 839,845 ----
  
        if Is_Entity_Name (Exp)
          and then Has_Anonymous_Access_Discriminant (Etype (Exp))
!         and then Static_Accessibility_Level (Exp, Zero_On_Dynamic_Level)
                     > Static_Accessibility_Level (N, Object_Decl_Level)
        then
           --  A dynamic check and a warning are generated when we are within
diff -Nrcpad gcc-16-20260530/gcc/ada/exp_ch6.adb gcc-16-20260606/gcc/ada/exp_ch6.adb
*** gcc-16-20260530/gcc/ada/exp_ch6.adb	Sat May 30 22:32:04 2026
--- gcc-16-20260606/gcc/ada/exp_ch6.adb	Sat Jun  6 22:32:05 2026
*************** package body Exp_Ch6 is
*** 10283,10290 ****
  
        return not Restriction_Active (No_Finalization)
          and then (Needs_Finalization (Typ) or else Is_Tagged_Type (Typ))
!         and then not Has_Relaxed_Finalization (Typ)
!         and then not Has_Foreign_Convention (Typ);
     end Needs_BIP_Collection;
  
     --------------------------
--- 10283,10289 ----
  
        return not Restriction_Active (No_Finalization)
          and then (Needs_Finalization (Typ) or else Is_Tagged_Type (Typ))
!         and then not Has_Relaxed_Finalization (Typ);
     end Needs_BIP_Collection;
  
     --------------------------
diff -Nrcpad gcc-16-20260530/gcc/ada/exp_ch7.adb gcc-16-20260606/gcc/ada/exp_ch7.adb
*** gcc-16-20260530/gcc/ada/exp_ch7.adb	Sat May 30 22:32:04 2026
--- gcc-16-20260606/gcc/ada/exp_ch7.adb	Sat Jun  6 22:32:05 2026
*************** package body Exp_Ch7 is
*** 5463,5473 ****
        --  subtype, its Finalize_Address primitive expects the address of
        --  an object with a dope vector (see Make_Finalize_Address_Stmts).
        --  This is achieved by setting Is_Constr_Array_Subt_With_Bounds,
!       --  but the address of the object is still that of its elements,
!       --  so we need to shift it back to skip the dope vector.
  
        if Is_Array_Type (Utyp)
          and then not Is_Constrained (First_Subtype (Utyp))
        then
           Obj_Addr :=
             Shift_Address_For_Descriptor
--- 5463,5474 ----
        --  subtype, its Finalize_Address primitive expects the address of
        --  an object with a dope vector (see Make_Finalize_Address_Stmts).
        --  This is achieved by setting Is_Constr_Array_Subt_With_Bounds,
!       --  whose predicate also requires Has_Controlled_Component, so we
!       --  have to check for the controlled component here, too.
  
        if Is_Array_Type (Utyp)
          and then not Is_Constrained (First_Subtype (Utyp))
+         and then Has_Controlled_Component (Utyp)
        then
           Obj_Addr :=
             Shift_Address_For_Descriptor
diff -Nrcpad gcc-16-20260530/gcc/ada/gcc-interface/decl.cc gcc-16-20260606/gcc/ada/gcc-interface/decl.cc
*** gcc-16-20260530/gcc/ada/gcc-interface/decl.cc	Sat May 30 22:32:04 2026
--- gcc-16-20260606/gcc/ada/gcc-interface/decl.cc	Sat Jun  6 22:32:05 2026
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 814,825 ****
  	  }
  
  	/* If an alignment is specified, use it if valid.  Note that exceptions
! 	   are objects but don't have an alignment and there is also no point in
! 	   setting it for an address clause, since the final type of the object
! 	   will be a reference type.  */
! 	if (Known_Alignment (gnat_entity)
! 	    && kind != E_Exception
! 	    && No (Address_Clause (gnat_entity)))
  	  align = validate_alignment (Alignment (gnat_entity), gnat_entity,
  				      TYPE_ALIGN (gnu_type));
  
--- 814,821 ----
  	  }
  
  	/* If an alignment is specified, use it if valid.  Note that exceptions
! 	   are objects but don't have an alignment.  */
! 	if (Known_Alignment (gnat_entity) && kind != E_Exception)
  	  align = validate_alignment (Alignment (gnat_entity), gnat_entity,
  				      TYPE_ALIGN (gnu_type));
  
*************** gnat_to_gnu_entity (Entity_Id gnat_entit
*** 1489,1500 ****
  			     false);
  		  }
  
- 		/* Give a warning if the size is constant but too large.  */
- 		if (TREE_CODE (TYPE_SIZE_UNIT (gnu_alloc_type)) == INTEGER_CST
- 		    && !valid_constant_size_p (TYPE_SIZE_UNIT (gnu_alloc_type)))
- 		  post_error ("??Storage_Error will be raised at run time!",
- 			      gnat_entity);
- 
  		gnu_expr
  		  = build_allocator (gnu_alloc_type, gnu_expr, gnu_type,
  				     Empty, Empty, gnat_entity, mutable_p);
--- 1485,1490 ----
diff -Nrcpad gcc-16-20260530/gcc/ada/gcc-interface/utils.cc gcc-16-20260606/gcc/ada/gcc-interface/utils.cc
*** gcc-16-20260530/gcc/ada/gcc-interface/utils.cc	Sat May 30 22:32:04 2026
--- gcc-16-20260606/gcc/ada/gcc-interface/utils.cc	Sat Jun  6 22:32:05 2026
*************** maybe_pad_type (tree type, tree size, un
*** 1763,1768 ****
--- 1763,1778 ----
  	       size_binop (EXACT_DIV_EXPR, TYPE_SIZE (record),
  			   bitsize_unit_node));
  
+   /* Propagate the storage order from an aggregate type to the padded type.
+      Ideally this should not be necessary, because the flag on the padded
+      type has no semantic effects given that its only field is not scalar.
+      However, when the aggregate type contains a single scalar field, SRA
+      may totally scalarize the padded type without taking into account the
+      intermediate aggregate type and, therefore, may test the flag on the
+      former instead of the latter to generate a reverse memory access.  */
+   if (AGGREGATE_TYPE_P (type))
+     TYPE_REVERSE_STORAGE_ORDER (record) = TYPE_REVERSE_STORAGE_ORDER (type);
+ 
    /* If we are changing the alignment and the input type is a record with
       BLKmode and a small constant size, try to make a form that has an
       integral mode.  This might allow the padding record to also have an
diff -Nrcpad gcc-16-20260530/gcc/ada/gcc-interface/utils2.cc gcc-16-20260606/gcc/ada/gcc-interface/utils2.cc
*** gcc-16-20260530/gcc/ada/gcc-interface/utils2.cc	Sat May 30 22:32:04 2026
--- gcc-16-20260606/gcc/ada/gcc-interface/utils2.cc	Sat Jun  6 22:32:05 2026
*************** build_allocator (tree type, tree init, t
*** 2731,2737 ****
  
    /* If the size overflows, pass -1 so Storage_Error will be raised.  */
    if (TREE_CODE (size) == INTEGER_CST && !valid_constant_size_p (size))
!     size = size_int (-1);
  
    storage = convert (result_type,
  		     build_call_alloc_dealloc (NULL_TREE, size, type,
--- 2731,2740 ----
  
    /* If the size overflows, pass -1 so Storage_Error will be raised.  */
    if (TREE_CODE (size) == INTEGER_CST && !valid_constant_size_p (size))
!     {
!       post_error ("??Storage_Error will be raised at run time!", gnat_node);
!       size = size_int (-1);
!     }
  
    storage = convert (result_type,
  		     build_call_alloc_dealloc (NULL_TREE, size, type,
diff -Nrcpad gcc-16-20260530/gcc/ada/libgnat/a-textio.adb gcc-16-20260606/gcc/ada/libgnat/a-textio.adb
*** gcc-16-20260530/gcc/ada/libgnat/a-textio.adb	Sat May 30 22:32:04 2026
--- gcc-16-20260606/gcc/ada/libgnat/a-textio.adb	Sat Jun  6 22:32:05 2026
*************** is
*** 100,106 ****
     --  upper half character value from the given File. The first byte has
     --  already been read and is passed in C. The character value is returned as
     --  the result, and the file pointer is bumped past the character.
!    --  Constraint_Error is raised if the encoded value is outside the bounds of
     --  type Character.
  
     function Get_Upper_Half_Char_Immed
--- 100,106 ----
     --  upper half character value from the given File. The first byte has
     --  already been read and is passed in C. The character value is returned as
     --  the result, and the file pointer is bumped past the character.
!    --  Data_Error is raised if the encoded value is outside the bounds of
     --  type Character.
  
     function Get_Upper_Half_Char_Immed
*************** is
*** 806,812 ****
        Result := WC_In (C, File.WC_Method);
  
        if Wide_Character'Pos (Result) > 16#FF# then
!          raise Constraint_Error with
             "invalid wide character in Text_'I'O input";
        else
           return Character'Val (Wide_Character'Pos (Result));
--- 806,812 ----
        Result := WC_In (C, File.WC_Method);
  
        if Wide_Character'Pos (Result) > 16#FF# then
!          raise Data_Error with
             "invalid wide character in Text_'I'O input";
        else
           return Character'Val (Wide_Character'Pos (Result));
*************** is
*** 849,855 ****
        Result := WC_In (C, File.WC_Method);
  
        if Wide_Character'Pos (Result) > 16#FF# then
!          raise Constraint_Error with
             "invalid wide character in Text_'I'O input";
        else
           return Character'Val (Wide_Character'Pos (Result));
--- 849,855 ----
        Result := WC_In (C, File.WC_Method);
  
        if Wide_Character'Pos (Result) > 16#FF# then
!          raise Data_Error with
             "invalid wide character in Text_'I'O input";
        else
           return Character'Val (Wide_Character'Pos (Result));
diff -Nrcpad gcc-16-20260530/gcc/ada/par-ch3.adb gcc-16-20260606/gcc/ada/par-ch3.adb
*** gcc-16-20260530/gcc/ada/par-ch3.adb	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/ada/par-ch3.adb	Sat Jun  6 22:32:05 2026
*************** package body Ch3 is
*** 4613,4619 ****
              Append (P_Generic, Decls);
  
           when Tok_Identifier =>
!             Check_Bad_Layout;
  
              --  Special check for misuse of overriding not in Ada 2005 mode
  
--- 4613,4619 ----
              Append (P_Generic, Decls);
  
           when Tok_Identifier =>
!             Save_Scan_State (Scan_State);
  
              --  Special check for misuse of overriding not in Ada 2005 mode
  
*************** package body Ch3 is
*** 4632,4637 ****
--- 4632,4641 ----
                 P_Identifier_Declarations (Decls, Done, In_Spec, In_Statements);
              end if;
  
+             if not Done then
+                Check_Bad_Layout_At (Scan_State);
+             end if;
+ 
           when Tok_Package =>
              Check_Bad_Layout;
              Append (P_Package (Pf_Decl_Gins_Pbod_Rnam_Stub_Pexp), Decls);
diff -Nrcpad gcc-16-20260530/gcc/ada/par-ch5.adb gcc-16-20260606/gcc/ada/par-ch5.adb
*** gcc-16-20260530/gcc/ada/par-ch5.adb	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/ada/par-ch5.adb	Sat Jun  6 22:32:05 2026
*************** package body Ch5 is
*** 497,504 ****
                 --  Cases of statements starting with an identifier
  
                 when Tok_Identifier =>
-                   Check_Bad_Layout;
- 
                    --  Save scan pointers and line number in case block label
  
                    Id_Node := Token_Node;
--- 497,502 ----
*************** package body Ch5 is
*** 802,807 ****
--- 800,807 ----
                       end if;
                    end if;
  
+                   Check_Bad_Layout_At (Scan_State_Label);
+ 
                 --  Statement starting with operator symbol. This could be
                 --  a call, a name starting an assignment, or a qualified
                 --  expression.
diff -Nrcpad gcc-16-20260530/gcc/ada/par-util.adb gcc-16-20260606/gcc/ada/par-util.adb
*** gcc-16-20260530/gcc/ada/par-util.adb	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/ada/par-util.adb	Sat Jun  6 22:32:05 2026
*************** package body Util is
*** 197,202 ****
--- 197,215 ----
        end if;
     end Check_Bad_Layout;
  
+    -------------------------
+    -- Check_Bad_Layout_At --
+    -------------------------
+ 
+    procedure Check_Bad_Layout_At (Scan_State : Saved_Scan_State) is
+       S : Saved_Scan_State;
+    begin
+       Save_Scan_State (S);
+       Restore_Scan_State (Scan_State);
+       Check_Bad_Layout;
+       Restore_Scan_State (S);
+    end Check_Bad_Layout_At;
+ 
     --------------------------
     -- Check_Future_Keyword --
     --------------------------
diff -Nrcpad gcc-16-20260530/gcc/ada/par.adb gcc-16-20260606/gcc/ada/par.adb
*** gcc-16-20260530/gcc/ada/par.adb	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/ada/par.adb	Sat Jun  6 22:32:05 2026
*************** function Par (Configuration_Pragmas : Bo
*** 1324,1329 ****
--- 1324,1332 ----
        --  is exdented from the current expected end column, and if so an
        --  error message is generated.
  
+       procedure Check_Bad_Layout_At (Scan_State : Saved_Scan_State);
+       --  Same as Check_Bad_Layout with Scan_State as the current scan state
+ 
        procedure Check_Misspelling_Of (T : Token_Type);
        pragma Inline (Check_Misspelling_Of);
        --  This is similar to the function above, except that it does not
diff -Nrcpad gcc-16-20260530/gcc/ada/sem_ch12.adb gcc-16-20260606/gcc/ada/sem_ch12.adb
*** gcc-16-20260530/gcc/ada/sem_ch12.adb	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/ada/sem_ch12.adb	Sat Jun  6 22:32:05 2026
*************** package body Sem_Ch12 is
*** 3200,3208 ****
           end if;
        end if;
  
!       if Subtype_Mark (Def) in Empty | Error then
           pragma Assert (Serious_Errors_Detected > 0);
!          --  avoid passing bad argument to Entity
           return;
        end if;
  
--- 3200,3208 ----
           end if;
        end if;
  
!       if not Is_Entity_Name (Subtype_Mark (Def)) then
           pragma Assert (Serious_Errors_Detected > 0);
!          --  Avoid passing bad argument to Entity
           return;
        end if;
  
diff -Nrcpad gcc-16-20260530/gcc/ada/sem_ch3.adb gcc-16-20260606/gcc/ada/sem_ch3.adb
*** gcc-16-20260530/gcc/ada/sem_ch3.adb	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/ada/sem_ch3.adb	Sat Jun  6 22:32:05 2026
*************** package body Sem_Ch3 is
*** 5805,5810 ****
--- 5805,5812 ----
           Set_Treat_As_Volatile (Id, Treat_As_Volatile (T));
           Set_Is_Generic_Type (Id, Is_Generic_Type (Base_Type (T)));
           Set_Convention (Id, Convention (T));
+          Set_Linker_Section_Pragma
+            (Id, Linker_Section_Pragma (Base_Type (T)));
        end Copy_Parent_Attributes;
  
     --  Start of processing for Analyze_Subtype_Declaration
*************** package body Sem_Ch3 is
*** 19276,19281 ****
--- 19278,19288 ----
  
        else
           Find_Type (S);
+          if not Is_Entity_Name (S) then
+             pragma Assert (Serious_Errors_Detected > 0);
+             --  Avoid passing bad argument to Entity
+             return Any_Type;
+          end if;
           Typ := Entity (S);
        end if;
  
diff -Nrcpad gcc-16-20260530/gcc/ada/sem_ch4.adb gcc-16-20260606/gcc/ada/sem_ch4.adb
*** gcc-16-20260530/gcc/ada/sem_ch4.adb	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/ada/sem_ch4.adb	Sat Jun  6 22:32:05 2026
*************** package body Sem_Ch4 is
*** 3068,3075 ****
--- 3068,3109 ----
           Act_List : List_Id;
           Expr     : Node_Id;
           Inst_Id  : Entity_Id;
+          Par      : Node_Id;
+          Prev_Par : Node_Id;
  
        begin
+          Prev_Par := N;
+          Par := Parent (N);
+ 
+          --  A structural instance cannot be used as a formal package with the
+          --  current implementation of structural instantiation.
+ 
+          while Present (Par) loop
+             if Nkind (Par) in N_Generic_Declaration
+               and then Is_List_Member (Prev_Par)
+               and then
+                 Generic_Formal_Declarations (Par) = List_Containing (Prev_Par)
+             then
+                Error_Msg_N
+                  ("structural instantiation cannot be used in generic formal"
+                   & " part", N);
+                Rewrite (N,
+                  Make_Raise_Program_Error (Sloc (N),
+                    Reason => PE_Explicit_Raise));
+                Analyze (N);
+                return;
+ 
+             else
+                --  Prevent the search from going too far
+ 
+                exit when Is_Statement (Par)
+                  or else Is_Body_Or_Package_Declaration (Par);
+             end if;
+ 
+             Prev_Par := Par;
+             Par := Parent (Par);
+          end loop;
+ 
           Act_List := New_List;
           Expr := First (Expressions (N));
           while Present (Expr) loop
diff -Nrcpad gcc-16-20260530/gcc/ada/sem_ch9.adb gcc-16-20260606/gcc/ada/sem_ch9.adb
*** gcc-16-20260530/gcc/ada/sem_ch9.adb	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/ada/sem_ch9.adb	Sat Jun  6 22:32:05 2026
*************** package body Sem_Ch9 is
*** 2564,2570 ****
           end if;
  
        --  If we had a requeue of the form REQUEUE A (B), then the parser
!       --  accepted it (because it could have been a requeue on an entry index.
        --  If A turns out not to be an entry family, then the analysis of A (B)
        --  turned it into a function call.
  
--- 2564,2570 ----
           end if;
  
        --  If we had a requeue of the form REQUEUE A (B), then the parser
!       --  accepted it (because it could have been a requeue on an entry index).
        --  If A turns out not to be an entry family, then the analysis of A (B)
        --  turned it into a function call.
  
diff -Nrcpad gcc-16-20260530/gcc/ada/sem_res.adb gcc-16-20260606/gcc/ada/sem_res.adb
*** gcc-16-20260530/gcc/ada/sem_res.adb	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/ada/sem_res.adb	Sat Jun  6 22:32:05 2026
*************** package body Sem_Res is
*** 3772,3802 ****
  
              elsif Ekind (Etype (Nam)) = E_Anonymous_Access_Type
                and then Nkind (Parent (N)) = N_Type_Conversion
!               and then Type_Access_Level (Etype (Parent (N)))
!                          < Static_Accessibility_Level (A, Object_Decl_Level)
              then
                 Accessibility_Error ("conversion");
  
              elsif Ekind (Etype (Nam)) = E_Anonymous_Access_Type
                and then Nkind (Parent (N)) = N_Assignment_Statement
!               and then Static_Accessibility_Level
!                          (Name (Parent (N)), Object_Decl_Level)
!                            < Static_Accessibility_Level (A, Object_Decl_Level)
              then
                 Accessibility_Error ("assignment");
  
              elsif Nkind (Parent (N)) = N_Qualified_Expression
                and then Nkind (Parent (Parent (N))) = N_Allocator
!               and then Type_Access_Level (Etype (Parent (Parent (N))))
!                          < Static_Accessibility_Level (A, Object_Decl_Level)
              then
                 Accessibility_Error ("allocator");
  
              elsif In_Return_Value (N)
                and then Comes_From_Source (N)
!               and then Subprogram_Access_Level (Current_Subprogram)
!                          < Static_Accessibility_Level
!                              (A, Object_Decl_Level, In_Return_Context => True)
              then
                 Accessibility_Error ("return");
              end if;
--- 3772,3806 ----
  
              elsif Ekind (Etype (Nam)) = E_Anonymous_Access_Type
                and then Nkind (Parent (N)) = N_Type_Conversion
!               and then
!                 Type_Access_Level (Etype (Parent (N)))
!                   < Static_Accessibility_Level (A, Zero_On_Dynamic_Level)
              then
                 Accessibility_Error ("conversion");
  
              elsif Ekind (Etype (Nam)) = E_Anonymous_Access_Type
                and then Nkind (Parent (N)) = N_Assignment_Statement
!               and then
!                 Static_Accessibility_Level
!                   (Name (Parent (N)), Object_Decl_Level)
!                     < Static_Accessibility_Level (A, Zero_On_Dynamic_Level)
              then
                 Accessibility_Error ("assignment");
  
              elsif Nkind (Parent (N)) = N_Qualified_Expression
                and then Nkind (Parent (Parent (N))) = N_Allocator
!               and then
!                 Type_Access_Level (Etype (Parent (Parent (N))))
!                   < Static_Accessibility_Level (A, Zero_On_Dynamic_Level)
              then
                 Accessibility_Error ("allocator");
  
              elsif In_Return_Value (N)
                and then Comes_From_Source (N)
!               and then
!                 Subprogram_Access_Level (Current_Subprogram)
!                   < Static_Accessibility_Level
!                       (A, Zero_On_Dynamic_Level, In_Return_Context => True)
              then
                 Accessibility_Error ("return");
              end if;
diff -Nrcpad gcc-16-20260530/gcc/ada/sem_util.adb gcc-16-20260606/gcc/ada/sem_util.adb
*** gcc-16-20260530/gcc/ada/sem_util.adb	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/ada/sem_util.adb	Sat Jun  6 22:32:05 2026
*************** package body Sem_Util is
*** 14924,14957 ****
  
     function In_Reverse_Storage_Order_Object (N : Node_Id) return Boolean is
        Pref : Node_Id;
!       Btyp : Entity_Id := Empty;
  
     begin
!       --  Climb up indexed components
! 
!       Pref := N;
!       loop
!          case Nkind (Pref) is
!             when N_Selected_Component =>
!                Pref := Prefix (Pref);
!                exit;
! 
!             when N_Indexed_Component =>
!                Pref := Prefix (Pref);
  
!             when others =>
!                Pref := Empty;
!                exit;
!          end case;
!       end loop;
  
!       if Present (Pref) then
!          Btyp := Base_Type (Etype (Pref));
        end if;
- 
-       return Present (Btyp)
-         and then (Is_Record_Type (Btyp) or else Is_Array_Type (Btyp))
-         and then Reverse_Storage_Order (Btyp);
     end In_Reverse_Storage_Order_Object;
  
     ------------------------------
--- 14924,14943 ----
  
     function In_Reverse_Storage_Order_Object (N : Node_Id) return Boolean is
        Pref : Node_Id;
!       Btyp : Entity_Id;
  
     begin
!       if Nkind (N) in N_Indexed_Component | N_Selected_Component then
!          Pref := Prefix (N);
!          Btyp := Base_Type (Etype (Pref));
  
!          return Present (Btyp)
!            and then (Is_Record_Type (Btyp) or else Is_Array_Type (Btyp))
!            and then Reverse_Storage_Order (Btyp);
  
!       else
!          return False;
        end if;
     end In_Reverse_Storage_Order_Object;
  
     ------------------------------
*************** package body Sem_Util is
*** 25949,25955 ****
  
           if Reporting then
              if Is_Entity_Name (Name (N)) then
!                Error_Msg_N ("too many arguments in call to&", Name (N));
              else
                 Error_Msg_N ("too many arguments in call", N);
              end if;
--- 25935,25953 ----
  
           if Reporting then
              if Is_Entity_Name (Name (N)) then
!                if Ekind (S) = E_Enumeration_Literal then
!                   Error_Msg_N ("cannot index enumeration literal &", Name (N));
!                   if Present (Homonym (S))
!                     and then Sloc (Homonym (S)) = Standard_Location
!                   then
!                      Error_Msg_NE
!                        ("\\did you mean & in Standard'?",
!                         Name (N),
!                         Homonym (S));
!                   end if;
!                else
!                   Error_Msg_N ("too many arguments in call to&", Name (N));
!                end if;
              else
                 Error_Msg_N ("too many arguments in call", N);
              end if;
diff -Nrcpad gcc-16-20260530/gcc/ada/sem_util.ads gcc-16-20260606/gcc/ada/sem_util.ads
*** gcc-16-20260530/gcc/ada/sem_util.ads	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/ada/sem_util.ads	Sat Jun  6 22:32:05 2026
*************** package Sem_Util is
*** 1760,1767 ****
     --  result of the enclosing function.
  
     function In_Reverse_Storage_Order_Object (N : Node_Id) return Boolean;
!    --  Returns True if N denotes a component or subcomponent in a record or
!    --  array that has Reverse_Storage_Order.
  
     function In_Same_Declarative_Part
       (Context : Node_Id;
--- 1760,1767 ----
     --  result of the enclosing function.
  
     function In_Reverse_Storage_Order_Object (N : Node_Id) return Boolean;
!    --  Returns True if N denotes a component in an array or a record that has
!    --  Reverse_Storage_Order.
  
     function In_Same_Declarative_Part
       (Context : Node_Id;
diff -Nrcpad gcc-16-20260530/gcc/ada/sem_warn.adb gcc-16-20260606/gcc/ada/sem_warn.adb
*** gcc-16-20260530/gcc/ada/sem_warn.adb	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/ada/sem_warn.adb	Sat Jun  6 22:32:05 2026
*************** package body Sem_Warn is
*** 4422,4427 ****
--- 4422,4428 ----
              if Is_Formal (Ent)
                and then Is_Suspicious_Type (Typ)
                and then not Low_Bound_Tested (Ent)
+               and then Comes_From_Source (Ent)
              then
                 Test_Suspicious_Index;
              end if;
diff -Nrcpad gcc-16-20260530/gcc/cfgrtl.cc gcc-16-20260606/gcc/cfgrtl.cc
*** gcc-16-20260530/gcc/cfgrtl.cc	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/cfgrtl.cc	Sat Jun  6 22:32:05 2026
*************** update_bb_for_insn (basic_block bb)
*** 559,566 ****
  }
  
  
! /* Like active_insn_p, except keep the return value use or clobber around
!    even after reload.  */
  
  static bool
  flow_active_insn_p (const rtx_insn *insn)
--- 559,566 ----
  }
  
  
! /* Return true if adding or removing instances of INSN might affect the
!    semantics of the RTL.  */
  
  static bool
  flow_active_insn_p (const rtx_insn *insn)
*************** flow_active_insn_p (const rtx_insn *insn
*** 568,583 ****
    if (active_insn_p (insn))
      return true;
  
!   /* A clobber of the function return value exists for buggy
!      programs that fail to return a value.  Its effect is to
!      keep the return value from being live across the entire
!      function.  If we allow it to be skipped, we introduce the
!      possibility for register lifetime confusion.
!      Similarly, keep a USE of the function return value, otherwise
!      the USE is dropped and we could fail to thread jump if USE
!      appears on some paths and not on others, see PR90257.  */
!   if ((GET_CODE (PATTERN (insn)) == CLOBBER
!        || GET_CODE (PATTERN (insn)) == USE)
        && REG_P (XEXP (PATTERN (insn), 0))
        && REG_FUNCTION_VALUE_P (XEXP (PATTERN (insn), 0)))
      return true;
--- 568,596 ----
    if (active_insn_p (insn))
      return true;
  
!   /* We cannot add new clobbers to a path without first proving that
!      the clobbered thing is dead.
! 
!      For example:
! 
! 	(code_label L1)
! 	(clobber X)
! 	(set (pc) (label_ref L2))
! 
!      is a forwarder block in the sense that a jump to L1 can be replaced
!      with a jump to L2, although perhaps with some loss of dataflow precision.
!      However, any attempt to merge a jump to L1 with a jump to L2 would be an
!      asymmetric operation, in that the merged code must jump to L2 rather than
!      to L1.  Our current definition of "forwarder block" does not allow for
!      this distinction and so we need to take a conservatively correct
!      approach.  */
!   if (GET_CODE (PATTERN (insn)) == CLOBBER)
!     return true;
! 
!   /* Keep a USE of the function return value, otherwise the USE is dropped and
!      we could fail to thread a jump if USE appears on some paths and not on
!      others, see PR90257.  */
!   if (GET_CODE (PATTERN (insn)) == USE
        && REG_P (XEXP (PATTERN (insn), 0))
        && REG_FUNCTION_VALUE_P (XEXP (PATTERN (insn), 0)))
      return true;
diff -Nrcpad gcc-16-20260530/gcc/config/aarch64/aarch64-early-ra.cc gcc-16-20260606/gcc/config/aarch64/aarch64-early-ra.cc
*** gcc-16-20260530/gcc/config/aarch64/aarch64-early-ra.cc	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/config/aarch64/aarch64-early-ra.cc	Sat Jun  6 22:32:05 2026
*************** early_ra::get_allocno_subgroup (rtx reg)
*** 1520,1526 ****
        group->has_flexible_stride = ((flags & HAS_FLEXIBLE_STRIDE) != 0
  				    && (flags & HAS_FIXED_STRIDE) == 0);
  
!       group->fpr_size = (maybe_gt (fpr_bits, 128) ? FPR_Z
  			 : maybe_gt (fpr_bits, 64) ? FPR_Q : FPR_D);
  
        entry = group;
--- 1520,1534 ----
        group->has_flexible_stride = ((flags & HAS_FLEXIBLE_STRIDE) != 0
  				    && (flags & HAS_FIXED_STRIDE) == 0);
  
!       // SVE modes always occupy the full Z register, even for partial modes
!       // like VNx2SF whose mode size is only 64 bits.  Treating such modes
!       // as FPR_D would let partial_fpr_clobbers ignore the fact that
!       // V8-V15 are only partially callee-saved under AAPCS64 -- the high
!       // bits of the Z register are clobbered by calls.  Always classify
!       // SVE modes as FPR_Z so that V8-V15 are excluded as candidates for
!       // pseudos that are live across calls.
!       group->fpr_size = ((aarch64_sve_mode_p (GET_MODE (reg))
! 			  || maybe_gt (fpr_bits, 128)) ? FPR_Z
  			 : maybe_gt (fpr_bits, 64) ? FPR_Q : FPR_D);
  
        entry = group;
diff -Nrcpad gcc-16-20260530/gcc/config/aarch64/aarch64.cc gcc-16-20260606/gcc/config/aarch64/aarch64.cc
*** gcc-16-20260530/gcc/config/aarch64/aarch64.cc	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/config/aarch64/aarch64.cc	Sat Jun  6 22:32:05 2026
*************** aarch64_hard_regno_call_part_clobbered (
*** 2923,2932 ****
        && abi_id != ARM_PCS_SVE
        && abi_id != ARM_PCS_PRESERVE_NONE)
      {
!       poly_int64 per_register_size = GET_MODE_SIZE (mode);
!       unsigned int nregs = hard_regno_nregs (regno, mode);
!       if (nregs > 1)
! 	per_register_size = exact_div (per_register_size, nregs);
        if (abi_id == ARM_PCS_SIMD || abi_id == ARM_PCS_TLSDESC)
  	return maybe_gt (per_register_size, 16);
        return maybe_gt (per_register_size, 8);
--- 2923,2945 ----
        && abi_id != ARM_PCS_SVE
        && abi_id != ARM_PCS_PRESERVE_NONE)
      {
!       poly_int64 per_register_size;
!       if (aarch64_sve_mode_p (mode))
! 	/* SVE instructions operate on the full SVE register, even for
! 	   partial modes like VNx2SF whose GET_MODE_SIZE is only 8 bytes
! 	   under -msve-vector-bits=128.  The elements of such partial
! 	   modes are strided across the register and can lie outside the
! 	   callee-preserved low 64 bits.  Compare against the full SVE
! 	   vector size so that V8-V15 are correctly recognised as
! 	   partially clobbered for any SVE mode under AAPCS64/AAPCS_SIMD.  */
! 	per_register_size = BYTES_PER_SVE_VECTOR;
!       else
! 	{
! 	  per_register_size = GET_MODE_SIZE (mode);
! 	  unsigned int nregs = hard_regno_nregs (regno, mode);
! 	  if (nregs > 1)
! 	    per_register_size = exact_div (per_register_size, nregs);
! 	}
        if (abi_id == ARM_PCS_SIMD || abi_id == ARM_PCS_TLSDESC)
  	return maybe_gt (per_register_size, 16);
        return maybe_gt (per_register_size, 8);
diff -Nrcpad gcc-16-20260530/gcc/config/aarch64/tuning_models/olympus.h gcc-16-20260606/gcc/config/aarch64/tuning_models/olympus.h
*** gcc-16-20260530/gcc/config/aarch64/tuning_models/olympus.h	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/config/aarch64/tuning_models/olympus.h	Sat Jun  6 22:32:05 2026
*************** static sve_vec_cost olympus_sve_vector_c
*** 95,101 ****
  
  static aarch64_scalar_vec_issue_info olympus_scalar_issue_info =
  {
!   4, /* loads_stores_per_cycle  */
    2, /* stores_per_cycle  */
    8, /* general_ops_per_cycle  */
    0, /* fp_simd_load_general_ops  */
--- 95,101 ----
  
  static aarch64_scalar_vec_issue_info olympus_scalar_issue_info =
  {
!   6, /* loads_stores_per_cycle  */
    2, /* stores_per_cycle  */
    8, /* general_ops_per_cycle  */
    0, /* fp_simd_load_general_ops  */
*************** static aarch64_scalar_vec_issue_info oly
*** 105,111 ****
  static aarch64_advsimd_vec_issue_info olympus_advsimd_issue_info =
  {
    {
!     3, /* loads_stores_per_cycle  */
      2, /* stores_per_cycle  */
      6, /* general_ops_per_cycle  */
      0, /* fp_simd_load_general_ops  */
--- 105,111 ----
  static aarch64_advsimd_vec_issue_info olympus_advsimd_issue_info =
  {
    {
!     6, /* loads_stores_per_cycle  */
      2, /* stores_per_cycle  */
      6, /* general_ops_per_cycle  */
      0, /* fp_simd_load_general_ops  */
*************** static aarch64_sve_vec_issue_info olympu
*** 120,126 ****
  {
    {
      {
!       3, /* loads_stores_per_cycle  */
        2, /* stores_per_cycle  */
        6, /* general_ops_per_cycle  */
        0, /* fp_simd_load_general_ops  */
--- 120,126 ----
  {
    {
      {
!       6, /* loads_stores_per_cycle  */
        2, /* stores_per_cycle  */
        6, /* general_ops_per_cycle  */
        0, /* fp_simd_load_general_ops  */
diff -Nrcpad gcc-16-20260530/gcc/config/arm/arm-mve-builtins-base.cc gcc-16-20260606/gcc/config/arm/arm-mve-builtins-base.cc
*** gcc-16-20260530/gcc/config/arm/arm-mve-builtins-base.cc	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/config/arm/arm-mve-builtins-base.cc	Sat Jun  6 22:32:05 2026
*************** public:
*** 294,302 ****
      : m_to_int_mode (to_int_mode)
    {}
  
!   unsigned int call_properties (const function_instance &) const override
    {
!     return CP_WRITE_MEMORY;
    }
  
    machine_mode memory_vector_mode (const function_instance &fi) const override
--- 294,305 ----
      : m_to_int_mode (to_int_mode)
    {}
  
!   unsigned int call_properties (const function_instance &fi) const override
    {
!     if (fi.mode_suffix_id == MODE_wb)
!       return CP_WRITE_MEMORY | CP_READ_MEMORY;
!     else
!       return CP_WRITE_MEMORY;
    }
  
    machine_mode memory_vector_mode (const function_instance &fi) const override
*************** public:
*** 480,485 ****
--- 483,496 ----
      return type_suffixes[suffix].vector_mode;
    }
  
+   unsigned int call_properties (const function_instance &fi) const override
+   {
+     if (fi.mode_suffix_id == MODE_wb)
+       return CP_WRITE_MEMORY | CP_READ_MEMORY;
+     else
+       return CP_READ_MEMORY;
+   }
+ 
    rtx expand (function_expander &e) const override
    {
      insn_code icode;
diff -Nrcpad gcc-16-20260530/gcc/config/i386/i386.h gcc-16-20260606/gcc/config/i386/i386.h
*** gcc-16-20260530/gcc/config/i386/i386.h	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/config/i386/i386.h	Sat Jun  6 22:32:05 2026
*************** extern unsigned char ix86_tune_features[
*** 512,518 ****
  	ix86_tune_features[X86_TUNE_ALIGN_TIGHT_LOOPS]
  #define TARGET_SSE_REDUCTION_PREFER_PSHUF \
  	ix86_tune_features[X86_TUNE_SSE_REDUCTION_PREFER_PSHUF]
! 
  
  /* Feature tests against the various architecture variations.  */
  enum ix86_arch_indices {
--- 512,519 ----
  	ix86_tune_features[X86_TUNE_ALIGN_TIGHT_LOOPS]
  #define TARGET_SSE_REDUCTION_PREFER_PSHUF \
  	ix86_tune_features[X86_TUNE_SSE_REDUCTION_PREFER_PSHUF]
! #define TARGET_DISABLE_SETZUCC \
! 	ix86_tune_features[X86_TUNE_DISABLE_SETZUCC]
  
  /* Feature tests against the various architecture variations.  */
  enum ix86_arch_indices {
diff -Nrcpad gcc-16-20260530/gcc/config/i386/i386.md gcc-16-20260606/gcc/config/i386/i386.md
*** gcc-16-20260530/gcc/config/i386/i386.md	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/config/i386/i386.md	Sat Jun  6 22:32:05 2026
***************
*** 19831,19837 ****
    [(set (match_operand:SWI248 0 "register_operand" "=r")
  	(match_operator:SWI248 1 "ix86_comparison_operator"
  	  [(reg FLAGS_REG) (const_int 0)]))]
!   "TARGET_APX_ZU"
    "setzu%C1\t%b0"
    [(set_attr "type" "setcc")])
  
--- 19831,19837 ----
    [(set (match_operand:SWI248 0 "register_operand" "=r")
  	(match_operator:SWI248 1 "ix86_comparison_operator"
  	  [(reg FLAGS_REG) (const_int 0)]))]
!   "TARGET_APX_ZU && !TARGET_DISABLE_SETZUCC"
    "setzu%C1\t%b0"
    [(set_attr "type" "setcc")])
  
***************
*** 19839,19845 ****
    [(set (match_operand:DI 0 "register_operand" "=q")
  	(match_operator:DI 1 "ix86_comparison_operator"
  	  [(reg FLAGS_REG) (const_int 0)]))]
!   "!TARGET_APX_ZU && TARGET_64BIT && !TARGET_PARTIAL_REG_STALL"
    "#"
    "&& reload_completed"
    [(set (match_dup 2) (match_dup 1))
--- 19839,19846 ----
    [(set (match_operand:DI 0 "register_operand" "=q")
  	(match_operator:DI 1 "ix86_comparison_operator"
  	  [(reg FLAGS_REG) (const_int 0)]))]
!   "(!TARGET_APX_ZU || TARGET_DISABLE_SETZUCC)
!    && TARGET_64BIT && !TARGET_PARTIAL_REG_STALL"
    "#"
    "&& reload_completed"
    [(set (match_dup 2) (match_dup 1))
***************
*** 19872,19878 ****
    [(set (match_operand:SWI24 0 "register_operand" "=q")
  	(match_operator:SWI24 1 "ix86_comparison_operator"
  	  [(reg FLAGS_REG) (const_int 0)]))]
!   "!TARGET_APX_ZU && !TARGET_PARTIAL_REG_STALL
     && (!TARGET_ZERO_EXTEND_WITH_AND || optimize_function_for_size_p (cfun))"
    "#"
    "&& reload_completed"
--- 19873,19879 ----
    [(set (match_operand:SWI24 0 "register_operand" "=q")
  	(match_operator:SWI24 1 "ix86_comparison_operator"
  	  [(reg FLAGS_REG) (const_int 0)]))]
!   "(!TARGET_APX_ZU || TARGET_DISABLE_SETZUCC) && !TARGET_PARTIAL_REG_STALL
     && (!TARGET_ZERO_EXTEND_WITH_AND || optimize_function_for_size_p (cfun))"
    "#"
    "&& reload_completed"
***************
*** 19891,19897 ****
    ""
  {
    if (REG_P (operands[0])
!       && TARGET_APX_ZU)
      return "setzu%C1\t%0";
    else
      return "set%C1\t%0";
--- 19892,19899 ----
    ""
  {
    if (REG_P (operands[0])
!       && TARGET_APX_ZU
!       && !TARGET_DISABLE_SETZUCC)
      return "setzu%C1\t%0";
    else
      return "set%C1\t%0";
***************
*** 19905,19911 ****
  	  [(reg FLAGS_REG) (const_int 0)]))]
    ""
  {
!   if (TARGET_APX_ZU)
      return "setzu%C1\t%0";
    else
      return "set%C1\t%0";
--- 19907,19913 ----
  	  [(reg FLAGS_REG) (const_int 0)]))]
    ""
  {
!   if (TARGET_APX_ZU && !TARGET_DISABLE_SETZUCC)
      return "setzu%C1\t%0";
    else
      return "set%C1\t%0";
diff -Nrcpad gcc-16-20260530/gcc/config/i386/sse.md gcc-16-20260606/gcc/config/i386/sse.md
*** gcc-16-20260530/gcc/config/i386/sse.md	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/config/i386/sse.md	Sat Jun  6 22:32:05 2026
***************
*** 23298,23306 ****
  	      (lshiftrt:<ssedoublemode>
  		(mult:<ssedoublemode>
  		  (sign_extend:<ssedoublemode>
! 		    (match_operand:PMULHRSW 1 "nonimmediate_operand"))
  		  (sign_extend:<ssedoublemode>
! 		    (match_operand:PMULHRSW 2 "nonimmediate_operand")))
  		(const_int 14))
  	      (match_dup 3))
  	    (const_int 1))))]
--- 23298,23306 ----
  	      (lshiftrt:<ssedoublemode>
  		(mult:<ssedoublemode>
  		  (sign_extend:<ssedoublemode>
! 		    (match_operand:PMULHRSW 1 "vector_operand"))
  		  (sign_extend:<ssedoublemode>
! 		    (match_operand:PMULHRSW 2 "vector_operand")))
  		(const_int 14))
  	      (match_dup 3))
  	    (const_int 1))))]
***************
*** 23318,23326 ****
  	      (lshiftrt:<ssedoublemode>
  		(mult:<ssedoublemode>
  		  (sign_extend:<ssedoublemode>
! 		    (match_operand:VI2_AVX2_AVX512BW 1 "nonimmediate_operand"))
  		  (sign_extend:<ssedoublemode>
! 		    (match_operand:VI2_AVX2_AVX512BW 2 "nonimmediate_operand")))
  		(const_int 14))
  	      (match_dup 3))
  	    (const_int 1))))]
--- 23318,23326 ----
  	      (lshiftrt:<ssedoublemode>
  		(mult:<ssedoublemode>
  		  (sign_extend:<ssedoublemode>
! 		    (match_operand:VI2_AVX2_AVX512BW 1 "vector_operand"))
  		  (sign_extend:<ssedoublemode>
! 		    (match_operand:VI2_AVX2_AVX512BW 2 "vector_operand")))
  		(const_int 14))
  	      (match_dup 3))
  	    (const_int 1))))]
diff -Nrcpad gcc-16-20260530/gcc/config/i386/x86-tune.def gcc-16-20260606/gcc/config/i386/x86-tune.def
*** gcc-16-20260530/gcc/config/i386/x86-tune.def	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/config/i386/x86-tune.def	Sat Jun  6 22:32:05 2026
*************** DEF_TUNE (X86_TUNE_AVOID_MFENCE, "avoid_
*** 399,404 ****
--- 399,408 ----
  DEF_TUNE (X86_TUNE_EXPAND_ABS, "expand_abs",
  	  m_CORE_ALL | m_SILVERMONT | m_GOLDMONT | m_GOLDMONT_PLUS | m_ZHAOXIN)
  
+ /* X86_TUNE_DISABLE_SETZUCC: Disable SETcc with ZU suffix. */
+ DEF_TUNE (X86_TUNE_DISABLE_SETZUCC, "disable_setzucc",
+ 	  m_DIAMONDRAPIDS | m_NOVALAKE)
+ 
  /*****************************************************************************/
  /* 387 instruction selection tuning                                          */
  /*****************************************************************************/
diff -Nrcpad gcc-16-20260530/gcc/config/pa/pa.cc gcc-16-20260606/gcc/config/pa/pa.cc
*** gcc-16-20260530/gcc/config/pa/pa.cc	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/config/pa/pa.cc	Sat Jun  6 22:32:05 2026
*************** static void
*** 10651,10660 ****
  pa_trampoline_init (rtx m_tramp, tree fndecl, rtx chain_value)
  {
    rtx fnaddr = XEXP (DECL_RTL (fndecl), 0);
!   rtx start_addr = gen_reg_rtx (Pmode);
!   rtx end_addr = gen_reg_rtx (Pmode);
!   rtx line_length = gen_reg_rtx (Pmode);
!   rtx r_tramp, tmp;
  
    emit_block_move (m_tramp, assemble_trampoline_template (),
  		   GEN_INT (TRAMPOLINE_SIZE), BLOCK_OP_NORMAL);
--- 10651,10657 ----
  pa_trampoline_init (rtx m_tramp, tree fndecl, rtx chain_value)
  {
    rtx fnaddr = XEXP (DECL_RTL (fndecl), 0);
!   rtx start, end, r_tramp, tmp;
  
    emit_block_move (m_tramp, assemble_trampoline_template (),
  		   GEN_INT (TRAMPOLINE_SIZE), BLOCK_OP_NORMAL);
*************** pa_trampoline_init (rtx m_tramp, tree fn
*** 10662,10667 ****
--- 10659,10667 ----
  
    if (!TARGET_64BIT)
      {
+       /* Start of trampoline code.  */
+       start = r_tramp;
+ 
        tmp = adjust_address (m_tramp, Pmode, 48);
        emit_move_insn (tmp, fnaddr);
        tmp = adjust_address (m_tramp, Pmode, 52);
*************** pa_trampoline_init (rtx m_tramp, tree fn
*** 10669,10696 ****
  
        /* Create a fat pointer for the trampoline.  */
        tmp = adjust_address (m_tramp, Pmode, 56);
!       emit_move_insn (tmp, r_tramp);
        tmp = adjust_address (m_tramp, Pmode, 60);
        emit_move_insn (tmp, gen_rtx_REG (Pmode, 19));
- 
-       /* fdc and fic only use registers for the address to flush,
- 	 they do not accept integer displacements.  We align the
- 	 start and end addresses to the beginning of their respective
- 	 cache lines to minimize the number of lines flushed.  */
-       emit_insn (gen_andsi3 (start_addr, r_tramp,
- 			     GEN_INT (-MIN_CACHELINE_SIZE)));
-       tmp = force_reg (Pmode, plus_constant (Pmode, r_tramp,
- 					     TRAMPOLINE_CODE_SIZE-1));
-       emit_insn (gen_andsi3 (end_addr, tmp,
- 			     GEN_INT (-MIN_CACHELINE_SIZE)));
-       emit_move_insn (line_length, GEN_INT (MIN_CACHELINE_SIZE));
-       emit_insn (gen_dcacheflushsi (start_addr, end_addr, line_length));
-       emit_insn (gen_icacheflushsi (start_addr, end_addr, line_length,
- 				    gen_reg_rtx (Pmode),
- 				    gen_reg_rtx (Pmode)));
      }
    else
      {
        tmp = adjust_address (m_tramp, Pmode, 56);
        emit_move_insn (tmp, fnaddr);
        tmp = adjust_address (m_tramp, Pmode, 64);
--- 10669,10683 ----
  
        /* Create a fat pointer for the trampoline.  */
        tmp = adjust_address (m_tramp, Pmode, 56);
!       emit_move_insn (tmp, start);
        tmp = adjust_address (m_tramp, Pmode, 60);
        emit_move_insn (tmp, gen_rtx_REG (Pmode, 19));
      }
    else
      {
+       /* Start of trampoline code.  */
+       start = force_reg (Pmode, plus_constant (Pmode, r_tramp, 32));
+ 
        tmp = adjust_address (m_tramp, Pmode, 56);
        emit_move_insn (tmp, fnaddr);
        tmp = adjust_address (m_tramp, Pmode, 64);
*************** pa_trampoline_init (rtx m_tramp, tree fn
*** 10698,10726 ****
  
        /* Create a fat pointer for the trampoline.  */
        tmp = adjust_address (m_tramp, Pmode, 16);
!       emit_move_insn (tmp, force_reg (Pmode, plus_constant (Pmode,
! 							    r_tramp, 32)));
        tmp = adjust_address (m_tramp, Pmode, 24);
        emit_move_insn (tmp, gen_rtx_REG (Pmode, 27));
- 
-       /* fdc and fic only use registers for the address to flush,
- 	 they do not accept integer displacements.  We align the
- 	 start and end addresses to the beginning of their respective
- 	 cache lines to minimize the number of lines flushed.  */
-       tmp = force_reg (Pmode, plus_constant (Pmode, r_tramp, 32));
-       emit_insn (gen_anddi3 (start_addr, tmp,
- 			     GEN_INT (-MIN_CACHELINE_SIZE)));
-       tmp = force_reg (Pmode, plus_constant (Pmode, tmp,
- 					     TRAMPOLINE_CODE_SIZE - 1));
-       emit_insn (gen_anddi3 (end_addr, tmp,
- 			     GEN_INT (-MIN_CACHELINE_SIZE)));
-       emit_move_insn (line_length, GEN_INT (MIN_CACHELINE_SIZE));
-       emit_insn (gen_dcacheflushdi (start_addr, end_addr, line_length));
-       emit_insn (gen_icacheflushdi (start_addr, end_addr, line_length,
- 				    gen_reg_rtx (Pmode),
- 				    gen_reg_rtx (Pmode)));
      }
  
  #ifdef HAVE_ENABLE_EXECUTE_STACK
    emit_library_call (gen_rtx_SYMBOL_REF (Pmode, "__enable_execute_stack"),
  		     LCT_NORMAL, VOIDmode, XEXP (m_tramp, 0), Pmode);
--- 10685,10700 ----
  
        /* Create a fat pointer for the trampoline.  */
        tmp = adjust_address (m_tramp, Pmode, 16);
!       emit_move_insn (tmp, start);
        tmp = adjust_address (m_tramp, Pmode, 24);
        emit_move_insn (tmp, gen_rtx_REG (Pmode, 27));
      }
  
+   end = force_reg (Pmode, plus_constant (Pmode, start, TRAMPOLINE_CODE_SIZE));
+ 
+   /* Flush trampoline.  */
+   emit_insn (gen_clear_cache (start, end));
+ 
  #ifdef HAVE_ENABLE_EXECUTE_STACK
    emit_library_call (gen_rtx_SYMBOL_REF (Pmode, "__enable_execute_stack"),
  		     LCT_NORMAL, VOIDmode, XEXP (m_tramp, 0), Pmode);
diff -Nrcpad gcc-16-20260530/gcc/config/pa/pa.md gcc-16-20260606/gcc/config/pa/pa.md
*** gcc-16-20260530/gcc/config/pa/pa.md	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/config/pa/pa.md	Sat Jun  6 22:32:05 2026
*************** add,l %2,%3,%3\;bv,n %%r0(%3)"
*** 9947,9956 ****
    [(set_attr "type" "fpalu")
     (set_attr "length" "4")])
  
! ;; The following two patterns are used by the trampoline code for nested
  ;; functions.  They flush the I and D cache lines from the start address
! ;; (operand0) to the end address (operand1).  No lines are flushed if the
! ;; end address is less than the start address (unsigned).
  ;;
  ;; Because the range of memory flushed is variable and the size of a MEM
  ;; can only be a CONST_INT, the patterns specify that they perform an
--- 9947,9955 ----
    [(set_attr "type" "fpalu")
     (set_attr "length" "4")])
  
! ;; The following four patterns are used by the trampoline code for nested
  ;; functions.  They flush the I and D cache lines from the start address
! ;; (operand0) to the end address (operand1).
  ;;
  ;; Because the range of memory flushed is variable and the size of a MEM
  ;; can only be a CONST_INT, the patterns specify that they perform an
*************** add,l %2,%3,%3\;bv,n %%r0(%3)"
*** 9959,9967 ****
  ;; The address range for an icache flush must lie within a single
  ;; space on targets with non-equivalent space registers.
  ;;
! ;; Operand 0 contains the start address.
  ;; Operand 1 contains the end address.
! ;; Operand 2 contains the line length to use.
  (define_insn "dcacheflush<P:mode>"
    [(const_int 1)
     (unspec_volatile [(mem:BLK (scratch))] UNSPECV_DCACHE)
--- 9958,9966 ----
  ;; The address range for an icache flush must lie within a single
  ;; space on targets with non-equivalent space registers.
  ;;
! ;; Operand 0 contains the line aligned start address.
  ;; Operand 1 contains the end address.
! ;; Operand 2 contains the line size to use.
  (define_insn "dcacheflush<P:mode>"
    [(const_int 1)
     (unspec_volatile [(mem:BLK (scratch))] UNSPECV_DCACHE)
*************** add,l %2,%3,%3\;bv,n %%r0(%3)"
*** 9970,9980 ****
     (use (match_operand 2 "pmode_register_operand" "r"))
     (clobber (match_scratch:P 3 "=&0"))]
    ""
!   "cmpb,<dwc><<=,n %3,%1,.\;fdc,m %2(%3)\;sync"
    [(set_attr "type" "multi")
     (set_attr "length" "12")])
  
! (define_insn "icacheflush<P:mode>"
    [(const_int 2)
     (unspec_volatile [(mem:BLK (scratch))] UNSPECV_ICACHE)
     (use (match_operand 0 "pmode_register_operand" "r"))
--- 9969,9979 ----
     (use (match_operand 2 "pmode_register_operand" "r"))
     (clobber (match_scratch:P 3 "=&0"))]
    ""
!   "{comb|cmpb},<dwc><<,n %3,%1,.\;fdc,m %2(%3)\;sync"
    [(set_attr "type" "multi")
     (set_attr "length" "12")])
  
! (define_insn "icacheflush1<P:mode>"
    [(const_int 2)
     (unspec_volatile [(mem:BLK (scratch))] UNSPECV_ICACHE)
     (use (match_operand 0 "pmode_register_operand" "r"))
*************** add,l %2,%3,%3\;bv,n %%r0(%3)"
*** 9984,10007 ****
     (clobber (match_operand 4 "pmode_register_operand" "=&r"))
     (clobber (match_scratch:P 5 "=&0"))]
    ""
!   "mfsp %%sr0,%4\;ldsid (%5),%3\;mtsp %3,%%sr0\;cmpb,<dwc><<=,n %5,%1,.\;fic,m %2(%%sr0,%5)\;sync\;mtsp %4,%%sr0\;nop\;nop\;nop\;nop\;nop\;nop"
    [(set_attr "type" "multi")
     (set_attr "length" "52")])
  
  (define_expand "clear_cache"
    [(match_operand 0 "pmode_register_operand")
     (match_operand 1 "pmode_register_operand")]
    ""
  {
!   rtx line_length = gen_reg_rtx (Pmode);
  
-   emit_move_insn (line_length, GEN_INT (MIN_CACHELINE_SIZE));
    if (TARGET_64BIT)
!     emit_insn (gen_icacheflushdi (operands[0], operands[1], line_length,
! 				  gen_reg_rtx (Pmode), gen_reg_rtx (Pmode)));
    else
!     emit_insn (gen_icacheflushsi (operands[0], operands[1], line_length,
! 				  gen_reg_rtx (Pmode), gen_reg_rtx (Pmode)));
    DONE;
  })
  
--- 9983,10068 ----
     (clobber (match_operand 4 "pmode_register_operand" "=&r"))
     (clobber (match_scratch:P 5 "=&0"))]
    ""
!   "mfsp %%sr1,%4\;ldsid (%5),%3\;mtsp %3,%%sr1\;{comb|cmpb},<dwc><<,n %5,%1,.\;fic,m %2(%%sr1,%5)\;sync\;mtsp %4,%%sr1\;nop\;nop\;nop\;nop\;nop\;nop"
    [(set_attr "type" "multi")
     (set_attr "length" "52")])
  
+ (define_insn "icacheflush2<P:mode>"
+   [(const_int 2)
+    (unspec_volatile [(mem:BLK (scratch))] UNSPECV_ICACHE)
+    (use (match_operand 0 "pmode_register_operand" "r"))
+    (use (match_operand 1 "pmode_register_operand" "r"))
+    (use (match_operand 2 "pmode_register_operand" "r"))
+    (clobber (match_scratch:P 3 "=&0"))]
+   "TARGET_PA_20"
+   "cmpb,<dwc><<,n %3,%1,.\;fic,m %2(%3)\;sync\;nop\;nop\;nop\;nop\;nop\;nop\;nop"
+   [(set_attr "type" "multi")
+    (set_attr "length" "40")])
+ 
+ (define_insn "icacheflush3<P:mode>"
+   [(const_int 3)
+    (unspec_volatile [(mem:BLK (scratch))] UNSPECV_ICACHE)
+    (use (match_operand 0 "pmode_register_operand" "r"))
+    (use (match_operand 1 "pmode_register_operand" "r"))
+    (use (match_operand 2 "pmode_register_operand" "r"))
+    (clobber (match_scratch:P 3 "=&0"))]
+   "!TARGET_PA_20 && TARGET_NO_SPACE_REGS"
+   "comb,<dwc><<,n %3,%1,.\;fic,m %2(%%sr4,%3)\;sync\;nop\;nop\;nop\;nop\;nop\;nop\;nop"
+   [(set_attr "type" "multi")
+    (set_attr "length" "40")])
+ 
+ ;; clear_cache
+ ;;
+ ;; Note the data and instruction cache flushes need to be separated
+ ;; by a sync instruction (see page 7-151 in PA 2.0 architecture manual).
+ ;; Thus, we can't combine the flush operations in a single loop.
+ 
+ ;; Operand 0 contains the start address (inclusive).
+ ;; Operand 1 contains the end address (exclusive).
  (define_expand "clear_cache"
    [(match_operand 0 "pmode_register_operand")
     (match_operand 1 "pmode_register_operand")]
    ""
  {
!   rtx start = gen_reg_rtx (Pmode);
!   rtx line_size = gen_reg_rtx (Pmode);
!   rtx lab = gen_label_rtx ();
!   rtx op0 = operands[0];
!   rtx op1 = operands[1];
! 
!   /* Skip flush if op0 is greater than or equal to op1.  */
!   emit_cmp_and_jump_insns (op0, op1, GEU, NULL_RTX, Pmode, 0, lab);
! 
!   /* Load cache line size.  */
!   emit_move_insn (line_size, GEN_INT (MIN_CACHELINE_SIZE));
  
    if (TARGET_64BIT)
!     {
!       /* Align the start address.  */
!       emit_insn (gen_anddi3 (start, op0, GEN_INT (-MIN_CACHELINE_SIZE)));
! 
!       /* Flush the cache.  */
!       emit_insn (gen_dcacheflushdi (start, op1, line_size));
!       emit_insn (gen_icacheflush2di (start, op1, line_size));
!     }
    else
!     {
!       /* Align the start address.  */
!       emit_insn (gen_andsi3 (start, op0, GEN_INT (-MIN_CACHELINE_SIZE)));
! 
!       /* Flush the cache.  */
!       emit_insn (gen_dcacheflushsi (start, op1, line_size));
!       if (TARGET_PA_20)
! 	emit_insn (gen_icacheflush2si (start, op1, line_size));
!       else if (TARGET_NO_SPACE_REGS)
! 	emit_insn (gen_icacheflush3si (start, op1, line_size));
!       else
! 	emit_insn (gen_icacheflush1si (start, op1, line_size,
! 				       gen_reg_rtx (Pmode),
! 				       gen_reg_rtx (Pmode)));
!     }
! 
!   emit_label (lab);
    DONE;
  })
  
diff -Nrcpad gcc-16-20260530/gcc/config/riscv/riscv-v.cc gcc-16-20260606/gcc/config/riscv/riscv-v.cc
*** gcc-16-20260530/gcc/config/riscv/riscv-v.cc	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/config/riscv/riscv-v.cc	Sat Jun  6 22:32:05 2026
*************** expand_const_vector_interleaved_stepped_
*** 1600,1734 ****
      rtx_to_poly_int64 (builder->elt (builder->npatterns () + 1))
        - rtx_to_poly_int64 (base2);
  
!   /* For { 1, 0, 2, 0, ... , n - 1, 0 }, we can use larger EEW
!      integer vector mode to generate such vector efficiently.
! 
!      E.g. EEW = 16, { 2, 0, 4, 0, ... }
! 
!      can be interpreted into:
! 
!      EEW = 32, { 2, 4, ... }.
! 
!      Both the series1 and series2 may overflow before taking the IOR
!      to generate the final result.  However, only series1 matters
!      because the series2 will shift before IOR, thus the overflow
!      bits will never pollute the final result.
! 
!      For now we forbid the negative steps and overflow, and they
!      will fall back to the default merge way to generate the
!      const_vector.  */
! 
!   unsigned int new_smode_bitsize = builder->inner_bits_size () * 2;
!   scalar_int_mode new_smode;
!   machine_mode new_mode;
!   poly_uint64 new_nunits = exact_div (GET_MODE_NUNITS (builder->mode ()), 2);
! 
!   poly_int64 base1_poly = rtx_to_poly_int64 (base1);
!   bool overflow_smode_p = false;
! 
!   if (!step1.is_constant ())
!     overflow_smode_p = true;
!   else
!     {
!       int elem_count = XVECLEN (src, 0);
!       uint64_t step1_val = step1.to_constant ();
!       int64_t base1_signed = base1_poly.to_constant ();
!       /* Reinterpret as type of inner bits size so we can properly check
! 	 overflow.  */
!       uint64_t base1_val
! 	= base1_signed & ((1ULL << builder->inner_bits_size ()) - 1);
!       uint64_t elem_val = base1_val + (elem_count - 1) * step1_val;
! 
!       if ((elem_val >> builder->inner_bits_size ()) != 0)
! 	overflow_smode_p = true;
!     }
! 
!   if (known_ge (step1, 0) && known_ge (step2, 0)
!       && int_mode_for_size (new_smode_bitsize, 0).exists (&new_smode)
!       && get_vector_mode (new_smode, new_nunits).exists (&new_mode)
!       && !overflow_smode_p)
      {
!       rtx tmp1 = gen_reg_rtx (new_mode);
!       base1 = gen_int_mode (base1_poly, new_smode);
!       expand_vec_series (tmp1, base1, gen_int_mode (step1, new_smode));
! 
!       if (rtx_equal_p (base2, const0_rtx) && known_eq (step2, 0))
! 	/* { 1, 0, 2, 0, ... }.  */
! 	emit_move_insn (result, gen_lowpart (mode, tmp1));
!       else if (known_eq (step2, 0))
! 	{
! 	  /* { 1, 1, 2, 1, ... }.  */
! 	  rtx scalar = expand_simple_binop (
! 	    Xmode, ASHIFT, gen_int_mode (rtx_to_poly_int64 (base2), Xmode),
! 	    gen_int_mode (builder->inner_bits_size (), Xmode), NULL_RTX, false,
! 	    OPTAB_DIRECT);
! 	  scalar = simplify_gen_subreg (new_smode, scalar, Xmode, 0);
! 	  rtx tmp2 = gen_reg_rtx (new_mode);
! 	  rtx ior_ops[] = {tmp2, tmp1, scalar};
! 	  emit_vlmax_insn (code_for_pred_scalar (IOR, new_mode), BINARY_OP,
! 			   ior_ops);
! 	  emit_move_insn (result, gen_lowpart (mode, tmp2));
! 	}
!       else
! 	{
! 	  /* { 1, 3, 2, 6, ... }.  */
! 	  rtx tmp2 = gen_reg_rtx (new_mode);
! 	  base2 = gen_int_mode (rtx_to_poly_int64 (base2), new_smode);
! 	  expand_vec_series (tmp2, base2, gen_int_mode (step2, new_smode));
! 	  rtx shifted_tmp2;
! 	  rtx shift = gen_int_mode (builder->inner_bits_size (), Xmode);
! 	  if (lra_in_progress)
! 	    {
! 	      shifted_tmp2 = gen_reg_rtx (new_mode);
! 	      rtx shift_ops[] = {shifted_tmp2, tmp2, shift};
! 	      emit_vlmax_insn (code_for_pred_scalar (ASHIFT, new_mode),
! 			       BINARY_OP, shift_ops);
! 	    }
! 	  else
! 	    shifted_tmp2 = expand_simple_binop (new_mode, ASHIFT, tmp2, shift,
! 						NULL_RTX, false, OPTAB_DIRECT);
! 	  rtx tmp3 = gen_reg_rtx (new_mode);
! 	  rtx ior_ops[] = {tmp3, tmp1, shifted_tmp2};
! 	  emit_vlmax_insn (code_for_pred (IOR, new_mode), BINARY_OP, ior_ops);
! 	  emit_move_insn (result, gen_lowpart (mode, tmp3));
! 	}
      }
    else
!     {
!       rtx vid = gen_reg_rtx (mode);
!       expand_vec_series (vid, const0_rtx, const1_rtx);
!       /* Transform into { 0, 0, 1, 1, 2, 2, ... }.  */
!       rtx shifted_vid;
!       if (lra_in_progress)
! 	{
! 	  shifted_vid = gen_reg_rtx (mode);
! 	  rtx shift = gen_int_mode (1, Xmode);
! 	  rtx shift_ops[] = {shifted_vid, vid, shift};
! 	  emit_vlmax_insn (code_for_pred_scalar (LSHIFTRT, mode), BINARY_OP,
! 			   shift_ops);
! 	}
!       else
! 	shifted_vid = expand_simple_binop (mode, LSHIFTRT, vid, const1_rtx,
! 					   NULL_RTX, false, OPTAB_DIRECT);
!       rtx tmp1 = gen_reg_rtx (mode);
!       rtx tmp2 = gen_reg_rtx (mode);
!       expand_vec_series (tmp1, base1,
! 			 gen_int_mode (step1, builder->inner_mode ()),
! 			 shifted_vid);
!       expand_vec_series (tmp2, base2,
! 			 gen_int_mode (step2, builder->inner_mode ()),
! 			 shifted_vid);
  
!       /* Transform into { 0, 1, 0, 1, 0, 1, ... }.  */
!       rtx and_vid = gen_reg_rtx (mode);
!       rtx and_ops[] = {and_vid, vid, const1_rtx};
!       emit_vlmax_insn (code_for_pred_scalar (AND, mode), BINARY_OP, and_ops);
!       rtx mask = gen_reg_rtx (builder->mask_mode ());
!       expand_vec_cmp (mask, EQ, and_vid, CONST1_RTX (mode));
  
!       rtx ops[] = {result, tmp1, tmp2, mask};
!       emit_vlmax_insn (code_for_pred_merge (mode), MERGE_OP, ops);
!     }
  
    if (result != target)
      emit_move_insn (target, result);
--- 1600,1638 ----
      rtx_to_poly_int64 (builder->elt (builder->npatterns () + 1))
        - rtx_to_poly_int64 (base2);
  
!   rtx vid = gen_reg_rtx (mode);
!   expand_vec_series (vid, const0_rtx, const1_rtx);
!   /* Transform into { 0, 0, 1, 1, 2, 2, ... }.  */
!   rtx shifted_vid;
!   if (lra_in_progress)
      {
!       shifted_vid = gen_reg_rtx (mode);
!       rtx shift = gen_int_mode (1, Xmode);
!       rtx shift_ops[] = {shifted_vid, vid, shift};
!       emit_vlmax_insn (code_for_pred_scalar (LSHIFTRT, mode), BINARY_OP,
! 		       shift_ops);
      }
    else
!     shifted_vid = expand_simple_binop (mode, LSHIFTRT, vid, const1_rtx,
! 				       NULL_RTX, false, OPTAB_DIRECT);
!   rtx tmp1 = gen_reg_rtx (mode);
!   rtx tmp2 = gen_reg_rtx (mode);
!   expand_vec_series (tmp1, base1,
! 		     gen_int_mode (step1, builder->inner_mode ()),
! 		     shifted_vid);
!   expand_vec_series (tmp2, base2,
! 		     gen_int_mode (step2, builder->inner_mode ()),
! 		     shifted_vid);
  
!   /* Transform into { 0, 1, 0, 1, 0, 1, ... }.  */
!   rtx and_vid = gen_reg_rtx (mode);
!   rtx and_ops[] = {and_vid, vid, const1_rtx};
!   emit_vlmax_insn (code_for_pred_scalar (AND, mode), BINARY_OP, and_ops);
!   rtx mask = gen_reg_rtx (builder->mask_mode ());
!   expand_vec_cmp (mask, EQ, and_vid, CONST1_RTX (mode));
  
!   rtx ops[] = {result, tmp1, tmp2, mask};
!   emit_vlmax_insn (code_for_pred_merge (mode), MERGE_OP, ops);
  
    if (result != target)
      emit_move_insn (target, result);
diff -Nrcpad gcc-16-20260530/gcc/cp/ChangeLog gcc-16-20260606/gcc/cp/ChangeLog
*** gcc-16-20260530/gcc/cp/ChangeLog	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/cp/ChangeLog	Sat Jun  6 22:32:06 2026
***************
*** 1,3 ****
--- 1,33 ----
+ 2026-06-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/125123
+ 	* parser.cc (cp_build_range_for_decls): If range_temp or begin
+ 	are static, set DECL_IGNORED_P on it.
+ 	* pt.cc (finish_expansion_stmt): Similarly for iter.
+ 	* decl.cc (cp_finish_decl): Call determine_local_discriminator
+ 	etc. also for DECL_ARTIFICIAL TREE_STATIC vars.
+ 
+ 2026-06-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/125412
+ 	* reflect.cc (process_metafunction): If ht is error_operand_p,
+ 	set *non_constant_p and return NULL_TREE.
+ 
+ 2026-06-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/125376
+ 	* coroutines.cc (register_local_var_uses): Ignore DECL_NAME for
+ 	name independent decls.
+ 
  2026-05-28  Marek Polacek  <polacek@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-16-20260530/gcc/cp/coroutines.cc gcc-16-20260606/gcc/cp/coroutines.cc
*** gcc-16-20260530/gcc/cp/coroutines.cc	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/cp/coroutines.cc	Sat Jun  6 22:32:06 2026
*************** register_local_var_uses (tree *stmt, int
*** 4403,4408 ****
--- 4403,4410 ----
  	 identify them in the coroutine frame.  */
        tree lvname = DECL_NAME (lvar);
        char *buf = NULL;
+       if (name_independent_decl_p (lvar))
+ 	lvname = NULL_TREE;
  
        /* The outermost bind scope contains the artificial variables that
  	 we inject to implement the coro state machine.  We want to be able
diff -Nrcpad gcc-16-20260530/gcc/cp/decl.cc gcc-16-20260606/gcc/cp/decl.cc
*** gcc-16-20260530/gcc/cp/decl.cc	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/cp/decl.cc	Sat Jun  6 22:32:06 2026
*************** cp_finish_decl (tree decl, tree init, bo
*** 9887,9895 ****
  	 require a guard variable, and since the mangled name of the
  	 guard variable will depend on the mangled name of this
  	 variable.  */
!       if (DECL_FUNCTION_SCOPE_P (decl)
! 	  && TREE_STATIC (decl)
! 	  && !DECL_ARTIFICIAL (decl))
  	{
  	  /* The variable holding an anonymous union will have had its
  	     discriminator set in finish_anon_union, after which it's
--- 9887,9893 ----
  	 require a guard variable, and since the mangled name of the
  	 guard variable will depend on the mangled name of this
  	 variable.  */
!       if (DECL_FUNCTION_SCOPE_P (decl) && TREE_STATIC (decl))
  	{
  	  /* The variable holding an anonymous union will have had its
  	     discriminator set in finish_anon_union, after which it's
diff -Nrcpad gcc-16-20260530/gcc/cp/module.cc gcc-16-20260606/gcc/cp/module.cc
*** gcc-16-20260530/gcc/cp/module.cc	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/cp/module.cc	Sat Jun  6 22:32:06 2026
*************** public:
*** 2645,2651 ****
        /* If not ERROR_MARK, a rewrite candidate for this operator.  */
        tree_code rewrite = ERROR_MARK;
        /* Argument list for the call.  */
!       vec<tree, va_gc>* args = make_tree_vector ();
      };
      vec<dep_adl_info> dep_adl_entity_list;
  
--- 2645,2651 ----
        /* If not ERROR_MARK, a rewrite candidate for this operator.  */
        tree_code rewrite = ERROR_MARK;
        /* Argument list for the call.  */
!       vec<tree, va_gc>* args = nullptr;
      };
      vec<dep_adl_info> dep_adl_entity_list;
  
*************** void
*** 15254,15267 ****
  depset::hash::add_dependent_adl_entities (tree expr)
  {
    gcc_checking_assert (!is_key_order ());
    if (TREE_CODE (current->get_entity ()) != TEMPLATE_DECL)
      return;
  
    dep_adl_info info;
    switch (TREE_CODE (expr))
      {
      case CALL_EXPR:
!       if (!KOENIG_LOOKUP_P (expr))
  	return;
        info.name = CALL_EXPR_FN (expr);
        if (!info.name)
--- 15254,15275 ----
  depset::hash::add_dependent_adl_entities (tree expr)
  {
    gcc_checking_assert (!is_key_order ());
+ 
+   /* This is not needed for header units where everything is
+      visible to name lookup, nothing is discarded.  */
+   if (header_module_p ())
+     return;
+ 
    if (TREE_CODE (current->get_entity ()) != TEMPLATE_DECL)
      return;
  
    dep_adl_info info;
+   auto_vec<tree, 3> args;
    switch (TREE_CODE (expr))
      {
      case CALL_EXPR:
!       if (!KOENIG_LOOKUP_P (expr)
! 	  || !type_dependent_expression_p_push (expr))
  	return;
        info.name = CALL_EXPR_FN (expr);
        if (!info.name)
*************** depset::hash::add_dependent_adl_entities
*** 15273,15279 ****
        if (!identifier_p (info.name))
  	info.name = OVL_NAME (info.name);
        for (int ix = 0; ix < call_expr_nargs (expr); ix++)
! 	vec_safe_push (info.args, CALL_EXPR_ARG (expr, ix));
        break;
  
      case LE_EXPR:
--- 15281,15287 ----
        if (!identifier_p (info.name))
  	info.name = OVL_NAME (info.name);
        for (int ix = 0; ix < call_expr_nargs (expr); ix++)
! 	args.safe_push (CALL_EXPR_ARG (expr, ix));
        break;
  
      case LE_EXPR:
*************** depset::hash::add_dependent_adl_entities
*** 15310,15319 ****
      case TRUTH_ANDIF_EXPR:
      case TRUTH_ORIF_EXPR:
      overloadable_expr:
        info.name = ovl_op_identifier (TREE_CODE (expr));
        gcc_checking_assert (tree_operand_length (expr) == 2);
!       vec_safe_push (info.args, TREE_OPERAND (expr, 0));
!       vec_safe_push (info.args, TREE_OPERAND (expr, 1));
        break;
  
      default:
--- 15318,15329 ----
      case TRUTH_ANDIF_EXPR:
      case TRUTH_ORIF_EXPR:
      overloadable_expr:
+       if (!type_dependent_expression_p_push (expr))
+ 	return;
        info.name = ovl_op_identifier (TREE_CODE (expr));
        gcc_checking_assert (tree_operand_length (expr) == 2);
!       args.safe_push (TREE_OPERAND (expr, 0));
!       args.safe_push (TREE_OPERAND (expr, 1));
        break;
  
      default:
*************** depset::hash::add_dependent_adl_entities
*** 15322,15332 ****
  
    /* If all arguments are type-dependent we don't need to do
       anything further, we won't find new entities.  */
!   processing_template_decl_sentinel ptds;
!   ++processing_template_decl;
!   if (!any_type_dependent_arguments_p (info.args))
      return;
  
    /* We need to defer name lookup until after walking, otherwise
       we get confused by stray TREE_VISITEDs.  */
    dep_adl_entity_list.safe_push (info);
--- 15332,15352 ----
  
    /* If all arguments are type-dependent we don't need to do
       anything further, we won't find new entities.  */
!   bool all_type_dependent = true;
!   for (tree arg : args)
!     if (!type_dependent_expression_p_push (arg))
!       {
! 	all_type_dependent = false;
! 	break;
!       }
!   if (all_type_dependent)
      return;
  
+   gcc_checking_assert (!info.args);
+   info.args = make_tree_vector ();
+   for (tree arg : args)
+     vec_safe_push (info.args, arg);
+ 
    /* We need to defer name lookup until after walking, otherwise
       we get confused by stray TREE_VISITEDs.  */
    dep_adl_entity_list.safe_push (info);
diff -Nrcpad gcc-16-20260530/gcc/cp/name-lookup.cc gcc-16-20260606/gcc/cp/name-lookup.cc
*** gcc-16-20260530/gcc/cp/name-lookup.cc	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/cp/name-lookup.cc	Sat Jun  6 22:32:06 2026
*************** name_lookup::preserve_state ()
*** 580,586 ****
  	    }
  	}
  
!       tentative = previous->tentative;
  
        /* Unmark the outer partial lookup.  */
        if (previous->deduping)
--- 580,587 ----
  	    }
  	}
  
!       /* We deliberately avoid instantiation during tentative ADL.  */
!       gcc_checking_assert (!previous->tentative);
  
        /* Unmark the outer partial lookup.  */
        if (previous->deduping)
diff -Nrcpad gcc-16-20260530/gcc/cp/parser.cc gcc-16-20260606/gcc/cp/parser.cc
*** gcc-16-20260530/gcc/cp/parser.cc	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/cp/parser.cc	Sat Jun  6 22:32:06 2026
*************** cp_build_range_for_decls (location_t loc
*** 16063,16068 ****
--- 16063,16069 ----
  		  DECL_INTERFACE_KNOWN (range_temp) = 1;
  		  DECL_DECLARED_CONSTEXPR_P (range_temp) = 1;
  		  TREE_READONLY (range_temp) = 1;
+ 		  DECL_IGNORED_P (range_temp) = 1;
  		}
  	    }
  	  else
*************** cp_build_range_for_decls (location_t loc
*** 16092,16097 ****
--- 16093,16099 ----
        TREE_STATIC (begin) = 1;
        DECL_DECLARED_CONSTEXPR_P (begin) = 1;
        TREE_READONLY (begin) = 1;
+       DECL_IGNORED_P (begin) = 1;
      }
    pushdecl (begin);
    cp_finish_decl (begin, begin_expr,
*************** cp_parser_constraint_expression (cp_pars
*** 34723,34729 ****
  {
    processing_constraint_expression_sentinel parsing_constraint;
    ++processing_template_decl;
!   cp_expr expr = cp_parser_binary_expression (parser, false, true,
  					      PREC_NOT_OPERATOR, NULL);
    --processing_template_decl;
    if (check_for_bare_parameter_packs (expr))
--- 34725,34731 ----
  {
    processing_constraint_expression_sentinel parsing_constraint;
    ++processing_template_decl;
!   cp_expr expr = cp_parser_binary_expression (parser, false, false,
  					      PREC_NOT_OPERATOR, NULL);
    --processing_template_decl;
    if (check_for_bare_parameter_packs (expr))
diff -Nrcpad gcc-16-20260530/gcc/cp/pt.cc gcc-16-20260606/gcc/cp/pt.cc
*** gcc-16-20260530/gcc/cp/pt.cc	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/cp/pt.cc	Sat Jun  6 22:32:06 2026
*************** finish_expansion_stmt (tree expansion_st
*** 33696,33701 ****
--- 33696,33702 ----
  	      TREE_STATIC (iter) = 1;
  	      DECL_DECLARED_CONSTEXPR_P (iter) = 1;
  	      TREE_READONLY (iter) = 1;
+ 	      DECL_IGNORED_P (iter) = 1;
  	    }
  	  pushdecl (iter);
  	  cp_finish_decl (iter, iter_init, /*is_constant_init*/false,
diff -Nrcpad gcc-16-20260530/gcc/cp/reflect.cc gcc-16-20260606/gcc/cp/reflect.cc
*** gcc-16-20260530/gcc/cp/reflect.cc	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/cp/reflect.cc	Sat Jun  6 22:32:06 2026
*************** process_metafunction (const constexpr_ct
*** 7883,7888 ****
--- 7883,7893 ----
  	if (*jump_target || *non_constant_p)
  	  return NULL_TREE;
  	ht = REFLECT_EXPR_HANDLE (info);
+ 	if (error_operand_p (ht))
+ 	  {
+ 	    *non_constant_p = true;
+ 	    return NULL_TREE;
+ 	  }
  	if (METAFN_KIND_ARG (minfo, argno) == METAFN_KIND_ARG_TINFO
  	    && eval_is_type (ht) != boolean_true_node)
  	  return throw_exception_nontype (loc, ctx, fun, non_constant_p,
diff -Nrcpad gcc-16-20260530/gcc/cp/tree.cc gcc-16-20260606/gcc/cp/tree.cc
*** gcc-16-20260530/gcc/cp/tree.cc	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/cp/tree.cc	Sat Jun  6 22:32:06 2026
*************** build_min_non_dep_op_overload (enum tree
*** 3853,3858 ****
--- 3853,3867 ----
  	  tree spaceship_non_dep = (TREE_CODE (non_dep) == CALL_EXPR
  				    ? CALL_EXPR_ARG (non_dep, reversed ? 1 : 0)
  				    : TREE_OPERAND (non_dep, reversed ? 1 : 0));
+ 
+ 	  tree int_promotion = NULL_TREE;
+ 	  if (TREE_CODE (spaceship_non_dep) == NOP_EXPR)
+ 	    {
+ 	      gcc_checking_assert (TREE_CODE (non_dep) != CALL_EXPR);
+ 	      int_promotion = TREE_TYPE (spaceship_non_dep);
+ 	      spaceship_non_dep = TREE_OPERAND (spaceship_non_dep, 0);
+ 	    }
+ 
  	  gcc_checking_assert (TREE_CODE (spaceship_non_dep) == CALL_EXPR);
  	  tree spaceship_op0 = va_arg (p, tree);
  	  tree spaceship_op1 = va_arg (p, tree);
*************** build_min_non_dep_op_overload (enum tree
*** 3875,3880 ****
--- 3884,3891 ----
  	    {
  	      gcc_checking_assert (COMPARISON_CLASS_P (non_dep)
  				   || TREE_CODE (non_dep) == SPACESHIP_EXPR);
+ 	      if (int_promotion)
+ 		op0 = build_nop (int_promotion, op0);
  	      if (reversed)
  		std::swap (op0, op1);
  	      return build_min_non_dep (TREE_CODE (non_dep), non_dep, op0, op1);
diff -Nrcpad gcc-16-20260530/gcc/fortran/ChangeLog gcc-16-20260606/gcc/fortran/ChangeLog
*** gcc-16-20260530/gcc/fortran/ChangeLog	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/fortran/ChangeLog	Sat Jun  6 22:32:06 2026
***************
*** 1,3 ****
--- 1,24 ----
+ 2026-06-01  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2026-05-29  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/125393
+ 	* interface.cc (get_expr_storage_size): Additionally return
+ 	character length.
+ 	(gfc_compare_actual_formal): When the formal is a scalar character
+ 	variable, use character lengths, not array storage size for check.
+ 
+ 2026-05-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-05-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	PR fortran/105582
+ 	* trans-decl.cc (get_proc_pointer_decl): Add FL_LABEL check to
+ 	route BLOCK-construct procedure pointers to gfc_add_decl_to_function
+ 	rather than gfc_add_decl_to_parent_function.
+ 
  2026-05-23  Paul Thomas  <pault@gcc.gnu.org>
  
  	Backported from master:
diff -Nrcpad gcc-16-20260530/gcc/fortran/interface.cc gcc-16-20260606/gcc/fortran/interface.cc
*** gcc-16-20260530/gcc/fortran/interface.cc	Sat May 30 22:32:05 2026
--- gcc-16-20260606/gcc/fortran/interface.cc	Sat Jun  6 22:32:06 2026
*************** get_sym_storage_size (gfc_symbol *sym, b
*** 3085,3091 ****
     units of the actual argument up to the end of the array.  */
  
  static unsigned long
! get_expr_storage_size (gfc_expr *e, bool *size_known)
  {
    int i;
    long int strlen, elements;
--- 3085,3091 ----
     units of the actual argument up to the end of the array.  */
  
  static unsigned long
! get_expr_storage_size (gfc_expr *e, bool *size_known, long int *charlen)
  {
    int i;
    long int strlen, elements;
*************** get_expr_storage_size (gfc_expr *e, bool
*** 3094,3099 ****
--- 3094,3100 ----
    gfc_ref *ref;
  
    *size_known = false;
+   *charlen = -1;
  
    if (e == NULL)
      return 0;
*************** get_expr_storage_size (gfc_expr *e, bool
*** 3109,3114 ****
--- 3110,3116 ----
  	strlen = e->value.character.length;
        else
  	return 0;
+       *charlen = strlen;
      }
    else
      strlen = 1; /* Length per element.  */
*************** gfc_compare_actual_formal (gfc_actual_ar
*** 3365,3370 ****
--- 3367,3373 ----
    gfc_formal_arglist *f;
    int i, n, na;
    unsigned long actual_size, formal_size;
+   long int charlen;
    bool full_array = false;
    gfc_array_ref *actual_arr_ref;
    gfc_array_spec *fas, *aas;
*************** gfc_compare_actual_formal (gfc_actual_ar
*** 3681,3689 ****
        if (a->expr->expr_type == EXPR_NULL && a->expr->ts.type == BT_UNKNOWN)
  	goto skip_size_check;
  
!       actual_size = get_expr_storage_size (a->expr, &actual_size_known);
        formal_size = get_sym_storage_size (f->sym, &formal_size_known);
  
        if (actual_size_known && formal_size_known
  	  && actual_size != formal_size
  	  && a->expr->ts.type == BT_CHARACTER
--- 3684,3700 ----
        if (a->expr->expr_type == EXPR_NULL && a->expr->ts.type == BT_UNKNOWN)
  	goto skip_size_check;
  
!       actual_size = get_expr_storage_size (a->expr, &actual_size_known, &charlen);
        formal_size = get_sym_storage_size (f->sym, &formal_size_known);
  
+       /* If the formal is a scalar character variable, use the charlen of the
+ 	 actual.  */
+       if (actual_size_known && formal_size_known && charlen >= 0
+ 	  && a->expr->ts.type == BT_CHARACTER
+ 	  && f->sym->attr.flavor != FL_PROCEDURE
+ 	  && !f->sym->attr.dimension)
+ 	actual_size = charlen;
+ 
        if (actual_size_known && formal_size_known
  	  && actual_size != formal_size
  	  && a->expr->ts.type == BT_CHARACTER
diff -Nrcpad gcc-16-20260530/gcc/testsuite/ChangeLog gcc-16-20260606/gcc/testsuite/ChangeLog
*** gcc-16-20260530/gcc/testsuite/ChangeLog	Sat May 30 22:32:06 2026
--- gcc-16-20260606/gcc/testsuite/ChangeLog	Sat Jun  6 22:32:06 2026
***************
*** 1,3 ****
--- 1,119 ----
+ 2026-06-03  Richard Sandiford  <rdsandiford@googlemail.com>
+ 
+ 	* gcc.dg/pr125375.c: New test.
+ 
+ 2026-06-03  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	Backported from master:
+ 	2026-06-01  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	PR target/122827
+ 	* gcc.target/aarch64/sve/pr122827.c: New test.
+ 
+ 2026-06-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/atomic9.adb (NVIC_STIR): Add alignment clause.
+ 
+ 2026-06-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-06-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/125250
+ 	* gcc.dg/torture/pr125250.c: Declare g0 as _Bool.
+ 
+ 2026-06-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-05-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/125250
+ 	* gcc.dg/torture/pr125250.c: New testcase.
+ 
+ 2026-06-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-05-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/125156
+ 	* gcc.dg/torture/pr125156.c: New testcase.
+ 
+ 2026-06-01  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2026-05-29  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/125393
+ 	* gfortran.dg/argument_checking_28.f90: New test.
+ 
+ 2026-06-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/125123
+ 	* g++.dg/cpp26/expansion-stmt42.C: New test.
+ 
+ 2026-06-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/125412
+ 	* g++.dg/reflect/pr125412.C: New test.
+ 
+ 2026-06-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/125376
+ 	* g++.dg/coroutines/pr125376.C: New test.
+ 
+ 2026-06-01  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	Backported from master:
+ 	2026-06-01  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	* gcc.dg/lto/toplevel-simple-asm-1_0.c: Adjust inline assembler
+ 	for arm-none-eabi.
+ 
+ 2026-06-01  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	Backported from master:
+ 	2026-05-19  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	PR target/124870
+ 	* gcc.target/arm/mve/intrinsics/pr124870.c: New test.
+ 
+ 2026-06-01  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	Backported from master:
+ 	2026-06-01  Hongyu Wang  <hongyu.wang@intel.com>
+ 
+ 	* gcc.target/i386/apx-zu-4.c: New test.
+ 
+ 2026-05-31  Zhongyao Chen  <chen.zhongyao@zte.com.cn>
+ 
+ 	Backported from master:
+ 	2026-05-13  Zhongyao Chen  <chen.zhongyao@zte.com.cn>
+ 
+ 	PR target/125215
+ 	* gcc.target/riscv/rvv/autovec/pr125215.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/slp-interleave-1.c: Remove.
+ 	* gcc.target/riscv/rvv/autovec/slp-interleave-2.c: Remove.
+ 	* gcc.target/riscv/rvv/autovec/slp-interleave-3.c: Remove.
+ 	* gcc.target/riscv/rvv/autovec/slp-interleave-4.c: Remove.
+ 	* gcc.target/riscv/rvv/autovec/slp-interleave-5.c: Remove.
+ 
+ 2026-05-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-05-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	PR fortran/105582
+ 	* gfortran.dg/block_proc_ptr_1.f90: New test.
+ 
  2026-05-28  Marek Polacek  <polacek@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-16-20260530/gcc/testsuite/g++.dg/coroutines/pr125376.C gcc-16-20260606/gcc/testsuite/g++.dg/coroutines/pr125376.C
*** gcc-16-20260530/gcc/testsuite/g++.dg/coroutines/pr125376.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260606/gcc/testsuite/g++.dg/coroutines/pr125376.C	Sat Jun  6 22:32:07 2026
***************
*** 0 ****
--- 1,40 ----
+ // PR c++/125376
+ // { dg-do run { target c++26 } }
+ 
+ #include <coroutine>
+ 
+ struct task {
+   struct promise_type {
+     task get_return_object () noexcept { return {}; }
+     std::suspend_never initial_suspend () noexcept { return {}; }
+     std::suspend_never final_suspend ()   noexcept { return {}; }
+     void return_void () noexcept {}
+     void unhandled_exception () {}
+   };
+ };
+ 
+ struct A {
+   unsigned value = 42;
+   A () {}
+   ~A () { if (value != 42) __builtin_abort (); }
+ };
+ 
+ struct B {
+   unsigned value = 43;
+   B () {}
+   ~B () { if (value != 43) __builtin_abort (); }
+ };
+ 
+ task
+ foo ()
+ {
+   auto _ = A {};
+   auto _ = B {};
+   co_return;
+ }
+ 
+ int
+ main ()
+ {
+   foo ();
+ }
diff -Nrcpad gcc-16-20260530/gcc/testsuite/g++.dg/cpp26/expansion-stmt42.C gcc-16-20260606/gcc/testsuite/g++.dg/cpp26/expansion-stmt42.C
*** gcc-16-20260530/gcc/testsuite/g++.dg/cpp26/expansion-stmt42.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260606/gcc/testsuite/g++.dg/cpp26/expansion-stmt42.C	Sat Jun  6 22:32:08 2026
***************
*** 0 ****
--- 1,22 ----
+ // PR c++/125123
+ // { dg-do compile { target c++20 } }
+ // { dg-options "-g" }
+ 
+ struct A
+ {
+   int a[2];
+   constexpr int const *begin () const { return a; }
+   constexpr int const *end () const { return a + 2; }
+ };
+ 
+ template <typename T>
+ requires true
+ void
+ foo ()
+ {
+   template for (constexpr int i : A { 0, 1 })	// { dg-warning "'template for' only available with" "" { target c++23_down } }
+     ;
+   template for (constexpr int i : A { 0, 1 })	// { dg-warning "'template for' only available with" "" { target c++23_down } }
+     ;
+ }
+ template void foo <void> ();
diff -Nrcpad gcc-16-20260530/gcc/testsuite/g++.dg/cpp2a/concepts-pr125490.C gcc-16-20260606/gcc/testsuite/g++.dg/cpp2a/concepts-pr125490.C
*** gcc-16-20260530/gcc/testsuite/g++.dg/cpp2a/concepts-pr125490.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260606/gcc/testsuite/g++.dg/cpp2a/concepts-pr125490.C	Sat Jun  6 22:32:08 2026
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/125490
+ // { dg-do compile { target c++20 } }
+ 
+ void f();
+ 
+ template<class T>
+ concept C = f() == 42; // { dg-error "invalid operands" }
+ 
+ template<class T>
+ concept D = requires { requires f() == 42; }; // { dg-error "invalid operands" }
diff -Nrcpad gcc-16-20260530/gcc/testsuite/g++.dg/cpp2a/concepts-pr125490a.C gcc-16-20260606/gcc/testsuite/g++.dg/cpp2a/concepts-pr125490a.C
*** gcc-16-20260530/gcc/testsuite/g++.dg/cpp2a/concepts-pr125490a.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260606/gcc/testsuite/g++.dg/cpp2a/concepts-pr125490a.C	Sat Jun  6 22:32:08 2026
***************
*** 0 ****
--- 1,15 ----
+ // PR c++/125490
+ // { dg-do compile { target c++20 } }
+ 
+ namespace N {
+   struct A { };
+ }
+ 
+ constexpr bool operator==(N::A, auto) { return true; } // #1
+ 
+ template<class T>
+ concept C = T{} == T{};
+ 
+ constexpr bool operator==(N::A, N::A) { return false; } // #2
+ 
+ static_assert(C<N::A>); // must only consider #1
diff -Nrcpad gcc-16-20260530/gcc/testsuite/g++.dg/lookup/operator-8b.C gcc-16-20260606/gcc/testsuite/g++.dg/lookup/operator-8b.C
*** gcc-16-20260530/gcc/testsuite/g++.dg/lookup/operator-8b.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260606/gcc/testsuite/g++.dg/lookup/operator-8b.C	Sat Jun  6 22:32:08 2026
***************
*** 0 ****
--- 1,40 ----
+ // PR c++/125378
+ // A version of operator-8a.C where the operator<=> returns char instead of int.
+ 
+ // { dg-do compile { target c++20 } }
+ 
+ struct A {
+   bool operator==(int);
+   char operator<=>(int);
+ };
+ 
+ template<class T>
+ void f() {
+   A a;
+   (void)(a != 0);
+   (void)(0 != a);
+   (void)(a < 0);
+   (void)(0 < a);
+   (void)(a <= 0);
+   (void)(0 <= a);
+   (void)(a > 0);
+   (void)(0 > a);
+   (void)(a >= 0);
+   (void)(0 >= a);
+ }
+ 
+ // These later-declared namespace-scope overloads shouldn't be considered
+ // when instantiating f<int>.
+ bool operator!=(A, int) = delete;
+ bool operator<(A, int) = delete;
+ bool operator<=(A, int) = delete;
+ bool operator>(A, int) = delete;
+ bool operator>=(A, int) = delete;
+ 
+ bool operator!=(int, A) = delete;
+ bool operator<(int, A) = delete;
+ bool operator<=(int, A) = delete;
+ bool operator>(int, A) = delete;
+ bool operator>=(int, A) = delete;
+ 
+ template void f<int>();
diff -Nrcpad gcc-16-20260530/gcc/testsuite/g++.dg/lookup/operator-8c.C gcc-16-20260606/gcc/testsuite/g++.dg/lookup/operator-8c.C
*** gcc-16-20260530/gcc/testsuite/g++.dg/lookup/operator-8c.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260606/gcc/testsuite/g++.dg/lookup/operator-8c.C	Sat Jun  6 22:32:08 2026
***************
*** 0 ****
--- 1,40 ----
+ // PR c++/125378
+ // A version of operator-8a.C where the operator<=> returns long instead of int.
+ 
+ // { dg-do compile { target c++20 } }
+ 
+ struct A {
+   bool operator==(int);
+   long operator<=>(int);
+ };
+ 
+ template<class T>
+ void f() {
+   A a;
+   (void)(a != 0);
+   (void)(0 != a);
+   (void)(a < 0);
+   (void)(0 < a);
+   (void)(a <= 0);
+   (void)(0 <= a);
+   (void)(a > 0);
+   (void)(0 > a);
+   (void)(a >= 0);
+   (void)(0 >= a);
+ }
+ 
+ // These later-declared namespace-scope overloads shouldn't be considered
+ // when instantiating f<int>.
+ bool operator!=(A, int) = delete;
+ bool operator<(A, int) = delete;
+ bool operator<=(A, int) = delete;
+ bool operator>(A, int) = delete;
+ bool operator>=(A, int) = delete;
+ 
+ bool operator!=(int, A) = delete;
+ bool operator<(int, A) = delete;
+ bool operator<=(int, A) = delete;
+ bool operator>(int, A) = delete;
+ bool operator>=(int, A) = delete;
+ 
+ template void f<int>();
diff -Nrcpad gcc-16-20260530/gcc/testsuite/g++.dg/lookup/operator-9a.C gcc-16-20260606/gcc/testsuite/g++.dg/lookup/operator-9a.C
*** gcc-16-20260530/gcc/testsuite/g++.dg/lookup/operator-9a.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260606/gcc/testsuite/g++.dg/lookup/operator-9a.C	Sat Jun  6 22:32:08 2026
***************
*** 0 ****
--- 1,19 ----
+ // PR c++/125378
+ // A version of operator-9.C where the operator<=> returns char instead of int.
+ 
+ // { dg-do compile { target c++20 } }
+ 
+ #include <compare>
+ 
+ struct A {
+   bool operator==(int);
+   char operator<=>(int);
+ };
+ 
+ template<class T>
+ void f() {
+   A a;
+   (void)(0 <=> a);
+ }
+ 
+ template void f<int>();
diff -Nrcpad gcc-16-20260530/gcc/testsuite/g++.dg/lookup/operator-9b.C gcc-16-20260606/gcc/testsuite/g++.dg/lookup/operator-9b.C
*** gcc-16-20260530/gcc/testsuite/g++.dg/lookup/operator-9b.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260606/gcc/testsuite/g++.dg/lookup/operator-9b.C	Sat Jun  6 22:32:08 2026
***************
*** 0 ****
--- 1,19 ----
+ // PR c++/125378
+ // A version of operator-9.C where the operator<=> returns long instead of int.
+ 
+ // { dg-do compile { target c++20 } }
+ 
+ #include <compare>
+ 
+ struct A {
+   bool operator==(int);
+   long operator<=>(int);
+ };
+ 
+ template<class T>
+ void f() {
+   A a;
+   (void)(0 <=> a);
+ }
+ 
+ template void f<int>();
diff -Nrcpad gcc-16-20260530/gcc/testsuite/g++.dg/reflect/pr125412.C gcc-16-20260606/gcc/testsuite/g++.dg/reflect/pr125412.C
*** gcc-16-20260530/gcc/testsuite/g++.dg/reflect/pr125412.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260606/gcc/testsuite/g++.dg/reflect/pr125412.C	Sat Jun  6 22:32:08 2026
***************
*** 0 ****
--- 1,24 ----
+ // PR c++/125412
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <meta>
+ 
+ void
+ foo ()
+ {
+ }
+ 
+ auto bar ();
+ 
+ template <typename T>
+ auto a = foo ();	// { dg-error "variable or field 'a' declared void" }
+ template <typename T>
+ auto b = bar ();	// { dg-error "use of 'auto bar\\\(\\\)' before deduction of 'auto'" }
+ 
+ consteval {
+   auto c = substitute (^^a, { ^^int });
+   std::meta::extract <int> (c);
+   auto d = substitute (^^b, { ^^int });
+   std::meta::extract <int> (d);
+ }
diff -Nrcpad gcc-16-20260530/gcc/testsuite/gcc.dg/lto/toplevel-simple-asm-1_0.c gcc-16-20260606/gcc/testsuite/gcc.dg/lto/toplevel-simple-asm-1_0.c
*** gcc-16-20260530/gcc/testsuite/gcc.dg/lto/toplevel-simple-asm-1_0.c	Sat May 30 22:32:08 2026
--- gcc-16-20260606/gcc/testsuite/gcc.dg/lto/toplevel-simple-asm-1_0.c	Sat Jun  6 22:32:09 2026
***************
*** 4,11 ****
--- 4,26 ----
  void asm_fn();
  void asm_fn_used();
  
+ #ifdef __ELF__
+ #ifdef __sparc__
+ #define TYPE_PFX "#"
+ #elif defined (__arm__) || defined (__aarch64__)
+ #define TYPE_PFX "%"
+ #else
+ #define TYPE_PFX "@"
+ #endif
+ #endif
+ 
+ #ifdef TYPE_PFX
+ asm(".global asm_fn\n.type asm_fn, " TYPE_PFX "function\nasm_fn:");
+ asm(".global asm_fn_used\n.type asm_fn_used, " TYPE_PFX "function\nasm_fn_used:");
+ #else
  asm(".global asm_fn\nasm_fn:");
  asm(".global asm_fn_used\nasm_fn_used:");
+ #endif
  
  
  __attribute__((noinline))
diff -Nrcpad gcc-16-20260530/gcc/testsuite/gcc.dg/pr125375.c gcc-16-20260606/gcc/testsuite/gcc.dg/pr125375.c
*** gcc-16-20260530/gcc/testsuite/gcc.dg/pr125375.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260606/gcc/testsuite/gcc.dg/pr125375.c	Sat Jun  6 22:32:09 2026
***************
*** 0 ****
--- 1,29 ----
+ /* { dg-do run } */
+ /* { dg-options "-O2 -fno-inline -fno-compare-elim" } */
+ 
+ int a, c = 1;
+ short b = 1, e;
+ volatile unsigned short d;
+ static int f() {
+   unsigned g = 2;
+   if (c >= a)
+     if ((c || b) && b) {
+       unsigned h = c && d;
+       int i = e = d;
+       if (d)
+         i = d = 0;
+       g = c ^ g * i;
+       c = ~c;
+       b = b * (g | 9) & ((1 && a) - i);
+       h && i && d;
+       a = c ^ e ^ (g && a) * h;
+       d = e;
+       if (a)
+         return g;
+     }
+ }
+ int main() {
+   if (f() != 1)
+     __builtin_abort();
+   return 0;
+ }
diff -Nrcpad gcc-16-20260530/gcc/testsuite/gcc.dg/torture/pr125156.c gcc-16-20260606/gcc/testsuite/gcc.dg/torture/pr125156.c
*** gcc-16-20260530/gcc/testsuite/gcc.dg/torture/pr125156.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260606/gcc/testsuite/gcc.dg/torture/pr125156.c	Sat Jun  6 22:32:10 2026
***************
*** 0 ****
--- 1,26 ----
+ /* { dg-do compile } */
+ 
+ #include <stdint.h>
+ 
+ int64_t g1, g8;
+ 
+ void g14()
+ {
+   int16_t v5;
+   goto lbl_cont30;
+ lbl_bf2:
+   g8 = 0;
+ lbl_b5:
+   g1 = g1 - 8366249724514421075;
+   switch (v5)
+ case 5:
+ case 2:
+     goto lbl_b5;
+     goto lbl_bf2;
+ lbl_cont30:
+     switch (v5)
+       {
+       case 0: goto lbl_bf2;
+       case 5: goto lbl_b5;
+       }
+ }
diff -Nrcpad gcc-16-20260530/gcc/testsuite/gcc.dg/torture/pr125250.c gcc-16-20260606/gcc/testsuite/gcc.dg/torture/pr125250.c
*** gcc-16-20260530/gcc/testsuite/gcc.dg/torture/pr125250.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260606/gcc/testsuite/gcc.dg/torture/pr125250.c	Sat Jun  6 22:32:10 2026
***************
*** 0 ****
--- 1,32 ----
+ /* { dg-do run } */
+ 
+ short __chk, g9, g6;
+ _Bool g0, g1;
+ void *g4;
+ 
+ void __attribute__((noipa)) f5(_Bool a2, int a5)
+ {
+   void *a1 = &a2;
+ lbl_br11:
+   *(_Bool *)a1 = 0;
+   a1 = &a5;
+   if (!a2)
+     {
+       g1 = *(_Bool *)g4;
+       if (g1)
+         {
+           g9 = -g9;
+           goto lbl_br11;
+         }
+     }
+   g6 = a5;
+ }
+ 
+ int main()
+ {
+   g4 = &g0;
+   f5(0, 8);
+   __chk = g6;
+   if (__chk != 8)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-16-20260530/gcc/testsuite/gcc.target/aarch64/sve/pr122827.c gcc-16-20260606/gcc/testsuite/gcc.target/aarch64/sve/pr122827.c
*** gcc-16-20260530/gcc/testsuite/gcc.target/aarch64/sve/pr122827.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260606/gcc/testsuite/gcc.target/aarch64/sve/pr122827.c	Sat Jun  6 22:32:10 2026
***************
*** 0 ****
--- 1,96 ----
+ /* PR target/122827.
+ 
+    With -msve-vector-bits=128 and SVE-only autovec, the inlined
+    madd_v3 calls are vectorised into SVE partial-mode FMLAs that share
+    a single vec_duplicate of the scalar FAC.
+    Before the fix, the register allocator placed the VNx2SF
+    broadcast in V14 across the call to clobber() because IRA thought
+    V14 was preserved (only the low 64 bits, D14, are callee-saved under
+    AAPCS64).  The SVE FMLA reads the full Z register, so the upper
+    lanes of the broadcast are corrupted by the call and the result of
+    the FMLA is wrong.  */
+ 
+ /* { dg-do run { target aarch64_sve128_hw } } */
+ /* { dg-options "-Ofast -msve-vector-bits=128 --param=aarch64-autovec-preference=sve-only" } */
+ /* { dg-require-effective-target aarch64_little_endian } */
+ 
+ struct R
+ {
+   float combined[3];
+   float spec[3];
+   float diff[3];
+   float diffshad[3];
+   float shad[3];
+ };
+ 
+ struct I
+ {
+   float fac;
+   int passflag;
+ };
+ 
+ /* AAPCS64 only requires callees to preserve the low 64 bits of V8-V15;
+    the upper lanes are caller-clobbered.  The buggy register allocator
+    in this test places the broadcast in V14 specifically, so clobbering
+    V14s upper bits here is sufficient to expose the miscompile.  The
+    asm clobber list lets GCC save/restore D14 around the write, so we
+    honour the ABI contract for the low half while leaving the upper
+    half trashed, what any normal callee is permitted to do.  */
+ __attribute__((noipa)) static void
+ clobber (struct I *si, struct R *r)
+ {
+   asm volatile ("movi v14.16b, #0xff" : : : "v14");
+ }
+ 
+ static inline __attribute__((always_inline)) void
+ madd_v3 (float r[3], const float a[3], float f)
+ {
+   r[0] += a[0] * f;
+   r[1] += a[1] * f;
+   r[2] += a[2] * f;
+ }
+ 
+ __attribute__((noipa)) void
+ test (struct I *si, struct R *r)
+ {
+   struct R t = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 },
+ 		 { 10, 11, 12 }, { 13, 14, 15 } };
+ 
+   clobber (si, r);
+   if (si->fac != 0.0f)
+     {
+       float fac = si->fac;
+       clobber (si, &t);
+       madd_v3 (r->combined, t.combined, fac);
+       if (si->passflag & 1)
+ 	madd_v3 (r->spec, t.spec, fac);
+       if (si->passflag & 2)
+ 	{
+ 	  madd_v3 (r->diff, t.diff, fac);
+ 	  madd_v3 (r->diffshad, t.diffshad, fac);
+ 	}
+       if (si->passflag & 4)
+ 	madd_v3 (r->shad, t.shad, fac);
+     }
+ }
+ 
+ int
+ main (void)
+ {
+   struct I si = { 2.0f, 7 };
+   struct R r = { { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 },
+ 		 { 0, 0, 0 }, { 0, 0, 0 } };
+   test (&si, &r);
+   if (r.combined[0] != 2.f || r.combined[1] != 4.f || r.combined[2] != 6.f)
+     __builtin_abort ();
+   if (r.spec[0] != 8.f || r.spec[1] != 10.f || r.spec[2] != 12.f)
+     __builtin_abort ();
+   if (r.diff[0] != 14.f || r.diff[1] != 16.f || r.diff[2] != 18.f)
+     __builtin_abort ();
+   if (r.diffshad[0] != 20.f || r.diffshad[1] != 22.f || r.diffshad[2] != 24.f)
+     __builtin_abort ();
+   if (r.shad[0] != 26.f || r.shad[1] != 28.f || r.shad[2] != 30.f)
+     __builtin_abort ();
+   return 0;
+ }
+ 
diff -Nrcpad gcc-16-20260530/gcc/testsuite/gcc.target/arm/mve/intrinsics/pr124870.c gcc-16-20260606/gcc/testsuite/gcc.target/arm/mve/intrinsics/pr124870.c
*** gcc-16-20260530/gcc/testsuite/gcc.target/arm/mve/intrinsics/pr124870.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260606/gcc/testsuite/gcc.target/arm/mve/intrinsics/pr124870.c	Sat Jun  6 22:32:10 2026
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */
+ /* { dg-add-options arm_v8_1m_mve_fp } */
+ /* { dg-additional-options "-O2" } */
+ 
+ /* PR target/124870.  */
+ 
+ #include <arm_mve.h>
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ 
+ void fn (int n, uint32_t *strides, float32_t *f)
+ {
+     uint32x4_t vecScGathAddr = vld1q_u32(strides);
+     float32x4_t vecA = vldrwq_gather_base_wb_f32(&vecScGathAddr, 64);
+     float32x4_t vecB = vecA;
+     int i;
+     for (i = 0; i < n; ++i)
+     {
+         vecA = vldrwq_gather_base_wb_f32(&vecScGathAddr, 64);
+         vecB = vaddq_f32 (vecB, vecA);
+     }
+     vstrwq_f32 (f, vecB);
+ }
+ 
+ #ifdef __cplusplus
+ }
+ #endif
+ 
+ /* { dg-final { scan-assembler-times "vadd.f32\tq\[0-9\]+, q\[0-9\]+, q\[0-9\]+" 1 } } */
diff -Nrcpad gcc-16-20260530/gcc/testsuite/gcc.target/i386/apx-zu-4.c gcc-16-20260606/gcc/testsuite/gcc.target/i386/apx-zu-4.c
*** gcc-16-20260530/gcc/testsuite/gcc.target/i386/apx-zu-4.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260606/gcc/testsuite/gcc.target/i386/apx-zu-4.c	Sat Jun  6 22:32:11 2026
***************
*** 0 ****
--- 1,5 ----
+ /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-options "-mapxf -march=x86-64 -O2 -mtune-ctrl=disable_setzucc" } */
+ /* { dg-final { scan-assembler-not "setzu" } } */
+ 
+ #include "apx-zu-3.c"
diff -Nrcpad gcc-16-20260530/gcc/testsuite/gcc.target/i386/ssse3-pr125611.c gcc-16-20260606/gcc/testsuite/gcc.target/i386/ssse3-pr125611.c
*** gcc-16-20260530/gcc/testsuite/gcc.target/i386/ssse3-pr125611.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260606/gcc/testsuite/gcc.target/i386/ssse3-pr125611.c	Sat Jun  6 22:32:12 2026
***************
*** 0 ****
--- 1,12 ----
+ /* PR target/125611 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mssse3 -mno-sse4.1" } */
+ 
+ typedef __attribute__((__vector_size__(16))) short V;
+ struct __attribute__((__packed__)) { V v[4]; } *u;
+ 
+ void
+ foo (void)
+ {
+   u->v[2] &= __builtin_ia32_pmulhrsw128 (u->v[0], u->v[1]);
+ }
diff -Nrcpad gcc-16-20260530/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr125215.c gcc-16-20260606/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr125215.c
*** gcc-16-20260530/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr125215.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260606/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr125215.c	Sat Jun  6 22:32:13 2026
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do run { target { riscv_v } } } */
+ /* { dg-options "-O3 -march=rv64gcv -mabi=lp64d -fno-vect-cost-model" } */
+ 
+ #include <stdint-gcc.h>
+ 
+ __attribute__((noipa)) 
+ void foo(uint8_t *d) 
+ {
+   d[0] = 128; d[1] = 135; d[2] = 130; d[3] = 149;
+   d[4] = 132; d[5] = 163; d[6] = 134; d[7] = 177;
+   d[8] = 136; d[9] = 191; d[10] = 138; d[11] = 205;
+   d[12] = 140; d[13] = 219; d[14] = 142; d[15] = 233;
+ }
+ 
+ int main()
+ {
+   uint8_t d[16];
+   uint8_t e[] = {128, 135, 130, 149, 132, 163, 134, 177, 136, 191, 138, 205, 140, 219, 142, 233};
+   foo(d);
+   for (int i = 0; i < 16; i++)
+     if (d[i] != e[i])
+       __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-16-20260530/gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-1.c gcc-16-20260606/gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-1.c
*** gcc-16-20260530/gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-1.c	Sat May 30 22:32:11 2026
--- gcc-16-20260606/gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- /* { dg-do compile } */
- /* { dg-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-vect-cost-model -mrvv-max-lmul=m8 -O3 -fdump-tree-optimized-details" } */
- 
- struct S { int a, b; } s[8];
- 
- void
- foo ()
- {
-   int i;
-   for (i = 0; i < 8; i++)
-     {
-       s[i].b = 0;
-       s[i].a = i;
-     }
- }
- 
- /* { dg-final { scan-tree-dump-times "\{ 0, 0, 1, 0, 2, 0, ... \}" 1 "optimized" } } */
--- 0 ----
diff -Nrcpad gcc-16-20260530/gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-2.c gcc-16-20260606/gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-2.c
*** gcc-16-20260530/gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-2.c	Sat May 30 22:32:11 2026
--- gcc-16-20260606/gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- /* { dg-do compile } */
- /* { dg-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-vect-cost-model -mrvv-max-lmul=m8 -O3 -fdump-tree-optimized-details" } */
- 
- struct S { int a, b; } s[8];
- 
- void
- foo ()
- {
-   int i;
-   for (i = 0; i < 8; i++)
-     {
-       s[i].b = 1;
-       s[i].a = i;
-     }
- }
- 
- /* { dg-final { scan-tree-dump-times "\{ 0, 1, 1, 1, 2, 1, ... \}" 1 "optimized" } } */
- /* { dg-final { scan-assembler-times {slli\t[a-x0-9]+,\s*[a-x0-9]+,\s*32} 1 } } */
--- 0 ----
diff -Nrcpad gcc-16-20260530/gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-3.c gcc-16-20260606/gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-3.c
*** gcc-16-20260530/gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-3.c	Sat May 30 22:32:11 2026
--- gcc-16-20260606/gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-3.c	Thu Jan  1 00:00:00 1970
***************
*** 1,19 ****
- /* { dg-do compile } */
- /* { dg-options "-march=rv64gcv_zvl1024b -mabi=lp64d -fno-vect-cost-model -mrvv-max-lmul=m8 -O3 -fdump-tree-optimized-details" } */
- 
- struct S { int a, b; } s[8];
- 
- void
- foo ()
- {
-   int i;
-   for (i = 0; i < 8; i++)
-     {
-       s[i].b = i*3 + 100;
-       s[i].a = i + 200;
-     }
- }
- 
- /* { dg-final { scan-tree-dump-times "\{ 200, 100, 201, 103, 202, 106, ... \}" 1 "optimized" } } */
- /* { dg-final { scan-assembler-times {vsll\.vx} 1 } } */
- /* { dg-final { scan-assembler-times {vor\.vv} 1 } } */
--- 0 ----
diff -Nrcpad gcc-16-20260530/gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-4.c gcc-16-20260606/gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-4.c
*** gcc-16-20260530/gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-4.c	Sat May 30 22:32:11 2026
--- gcc-16-20260606/gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-4.c	Thu Jan  1 00:00:00 1970
***************
*** 1,19 ****
- /* { dg-do compile } */
- /* { dg-options "-march=rv64gc_zve32f_zvl1024b -mabi=lp64d -fno-vect-cost-model -mrvv-max-lmul=m8 -O3 -fdump-tree-optimized-details" } */
- 
- struct S { int a, b; } s[8];
- 
- void
- foo ()
- {
-   int i;
-   for (i = 0; i < 8; i++)
-     {
-       s[i].b = i*3 + 100;
-       s[i].a = i + 200;
-     }
- }
- 
- /* { dg-final { scan-tree-dump-times "\{ 200, 100, 201, 103, 202, 106, ... \}" 1 "optimized" } } */
- /* { dg-final { scan-assembler-times {vand\.vi} 1 } } */
- /* { dg-final { scan-assembler-times {vmseq\.vi} 1 } } */
--- 0 ----
diff -Nrcpad gcc-16-20260530/gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-5.c gcc-16-20260606/gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-5.c
*** gcc-16-20260530/gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-5.c	Sat May 30 22:32:11 2026
--- gcc-16-20260606/gcc/testsuite/gcc.target/riscv/rvv/autovec/slp-interleave-5.c	Thu Jan  1 00:00:00 1970
***************
*** 1,35 ****
- /* { dg-do compile } */
- /* { dg-options "-march=rv64gcv_zvl1024b -mabi=lp64d -O3 -fdump-tree-optimized-details" } */
- 
- struct S { int a, b; } s[8];
- 
- void
- foo ()
- {
-   int i;
-   for (i = 0; i < 8; i++)
-     {
-       s[i].b = 1;
-       s[i].a = i+1;
-     }
- }
- 
- /* { dg-final { scan-tree-dump-times "\{ 1, 1, 2, 1, 3, 1, 4, 1 \}" 1 "optimized" } } */
- /* { dg-final { scan-assembler {vid\.v} } } */
- /* { dg-final { scan-assembler {vadd\.v} } } */
- /* { dg-final { scan-assembler {vor\.v} } } */
- 
- void
- foo2 ()
- {
-   int i;
-   for (i = 0; i < 8; i++)
-     {
-       s[i].b = 0;
-       s[i].a = i+1;
-     }
- }
- 
- /* { dg-final { scan-tree-dump-times "\{ 1, 0, 2, 0, 3, 0, 4, 0 \}" 1 "optimized" } } */
- /* { dg-final { scan-assembler {vid\.v} } } */
- /* { dg-final { scan-assembler {vadd\.v} } } */
--- 0 ----
diff -Nrcpad gcc-16-20260530/gcc/testsuite/gfortran.dg/argument_checking_28.f90 gcc-16-20260606/gcc/testsuite/gfortran.dg/argument_checking_28.f90
*** gcc-16-20260530/gcc/testsuite/gfortran.dg/argument_checking_28.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260606/gcc/testsuite/gfortran.dg/argument_checking_28.f90	Sat Jun  6 22:32:14 2026
***************
*** 0 ****
--- 1,45 ----
+ ! { dg-do compile }
+ ! { dg-additional-options "-std=f2018 -Wcharacter-truncation" }
+ !
+ ! PR fortran/125393 - checking of passed character length
+ 
+ module test
+   implicit none
+ contains
+ 
+   subroutine a(string)
+     character(len=2) string
+   end subroutine a
+ 
+   subroutine b
+     character(len=2)               :: s1
+     character(len=2), dimension(2) :: s2
+     character(len=1)               :: s3(2)
+     character(len=4)               :: s4
+     call a(s1)
+     call a(s1(1:2))
+     call a(s2(1)) ! This gave a bogus warning
+     call a(s2(1)(1:2))
+     call a(s3(1)) ! { dg-error "Character length of actual argument shorter" }
+     call a(s4(1:2))
+     call a(c1())  ! { dg-error "Character length of actual argument shorter" }
+     call a(c2())
+     call a(c3())  ! { dg-warning "Character length of actual argument longer" }
+   end subroutine b
+ 
+   function c1 ()
+     character(len=1) :: c1
+     c1 = "a"
+   end function c1
+ 
+   function c2 ()
+     character(len=2) :: c2
+     c2 = "ab"
+   end function c2
+ 
+   function c3 ()
+     character(len=3) :: c3
+     c3 = "abc"
+   end function c3
+ 
+ end module test
diff -Nrcpad gcc-16-20260530/gcc/testsuite/gnat.dg/atomic9.adb gcc-16-20260606/gcc/testsuite/gnat.dg/atomic9.adb
*** gcc-16-20260530/gcc/testsuite/gnat.dg/atomic9.adb	Sat May 30 22:32:12 2026
--- gcc-16-20260606/gcc/testsuite/gnat.dg/atomic9.adb	Sat Jun  6 22:32:14 2026
*************** procedure Atomic9 is
*** 14,21 ****
        with
          Import,
          Atomic,
!         Size    => 32,
!         Address => Register'Address;
  
     begin
        NVIC_STIR := IRQ;
--- 14,22 ----
        with
          Import,
          Atomic,
!         Alignment => 4,
!         Size      => 32,
!         Address   => Register'Address;
  
     begin
        NVIC_STIR := IRQ;
diff -Nrcpad gcc-16-20260530/gcc/tree-cfgcleanup.cc gcc-16-20260606/gcc/tree-cfgcleanup.cc
*** gcc-16-20260530/gcc/tree-cfgcleanup.cc	Sat May 30 22:32:12 2026
--- gcc-16-20260606/gcc/tree-cfgcleanup.cc	Sat Jun  6 22:32:15 2026
*************** cleanup_control_expr_graph (basic_block
*** 240,246 ****
  
    bitmap_set_bit (cfgcleanup_altered_bbs, bb->index);
    gsi_remove (&gsi, true);
!   taken_edge->flags = EDGE_FALLTHRU;
  
    return retval;
  }
--- 240,247 ----
  
    bitmap_set_bit (cfgcleanup_altered_bbs, bb->index);
    gsi_remove (&gsi, true);
!   taken_edge->flags &= ~(EDGE_TRUE_VALUE|EDGE_FALSE_VALUE);
!   taken_edge->flags |= EDGE_FALLTHRU;
  
    return retval;
  }
diff -Nrcpad gcc-16-20260530/gcc/tree-ssa-loop-im.cc gcc-16-20260606/gcc/tree-ssa-loop-im.cc
*** gcc-16-20260530/gcc/tree-ssa-loop-im.cc	Sat May 30 22:32:12 2026
--- gcc-16-20260606/gcc/tree-ssa-loop-im.cc	Sat Jun  6 22:32:15 2026
*************** execute_sm (class loop *loop, im_mem_ref
*** 2323,2329 ****
    bool always_stored = ref_always_accessed_p (loop, ref, true);
    if (maybe_mt
        && (bb_in_transaction (loop_preheader_edge (loop)->src)
! 	  || (ref_can_have_store_data_races (ref->mem.ref) && ! always_stored)))
      multi_threaded_model_p = true;
  
    if (multi_threaded_model_p && !use_other_flag_var)
--- 2323,2336 ----
    bool always_stored = ref_always_accessed_p (loop, ref, true);
    if (maybe_mt
        && (bb_in_transaction (loop_preheader_edge (loop)->src)
! 	  || (ref_can_have_store_data_races (ref->mem.ref) && ! always_stored)
! 	  /* Do not speculate a load/store when that's not a noop, either
! 	     because the mode cannot be transferred or because there's
! 	     UB involved for out-of-bound values.  */
! 	  || !mode_can_transfer_bits (TYPE_MODE (TREE_TYPE (ref->mem.ref)))
! 	  || TREE_CODE (TREE_TYPE (ref->mem.ref)) == BOOLEAN_TYPE
! 	  || (TREE_CODE (ref->mem.ref) == COMPONENT_REF
! 	      && DECL_BIT_FIELD (TREE_OPERAND (ref->mem.ref, 1)))))
      multi_threaded_model_p = true;
  
    if (multi_threaded_model_p && !use_other_flag_var)
diff -Nrcpad gcc-16-20260530/libstdc++-v3/include/bits/version.def gcc-16-20260606/libstdc++-v3/include/bits/version.def
*** gcc-16-20260530/libstdc++-v3/include/bits/version.def	Sat May 30 22:32:14 2026
--- gcc-16-20260606/libstdc++-v3/include/bits/version.def	Sat Jun  6 22:32:17 2026
*************** ftms = {
*** 1898,1913 ****
  
  ftms = {
    name = flat_map;
    values = {
!     v = 202207;
      cxxmin = 23;
    };
  };
  
  ftms = {
    name = flat_set;
    values = {
!     v = 202207;
      cxxmin = 23;
    };
  };
--- 1898,1918 ----
  
  ftms = {
    name = flat_map;
+   // 202207 P0429R9 A Standard flat_map
+   // 202511 P3567R2 flat_meow Fixes
    values = {
!     v = 202511; // P3567R2 applied as DR for C++23
      cxxmin = 23;
    };
  };
  
  ftms = {
    name = flat_set;
+   // 202207 P1222R4 A Standard flat_set
+   //        LWG3751 Missing feature macro for flat_set
+   // 202511 P3567R2 flat_meow Fixes
    values = {
!     v = 202511; // P3567R2 applied as DR for C++23
      cxxmin = 23;
    };
  };
diff -Nrcpad gcc-16-20260530/libstdc++-v3/include/bits/version.h gcc-16-20260606/libstdc++-v3/include/bits/version.h
*** gcc-16-20260530/libstdc++-v3/include/bits/version.h	Sat May 30 22:32:14 2026
--- gcc-16-20260606/libstdc++-v3/include/bits/version.h	Sat Jun  6 22:32:17 2026
***************
*** 2108,2116 ****
  
  #if !defined(__cpp_lib_flat_map)
  # if (__cplusplus >= 202100L)
! #  define __glibcxx_flat_map 202207L
  #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_flat_map)
! #   define __cpp_lib_flat_map 202207L
  #  endif
  # endif
  #endif /* !defined(__cpp_lib_flat_map) */
--- 2108,2116 ----
  
  #if !defined(__cpp_lib_flat_map)
  # if (__cplusplus >= 202100L)
! #  define __glibcxx_flat_map 202511L
  #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_flat_map)
! #   define __cpp_lib_flat_map 202511L
  #  endif
  # endif
  #endif /* !defined(__cpp_lib_flat_map) */
***************
*** 2118,2126 ****
  
  #if !defined(__cpp_lib_flat_set)
  # if (__cplusplus >= 202100L)
! #  define __glibcxx_flat_set 202207L
  #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_flat_set)
! #   define __cpp_lib_flat_set 202207L
  #  endif
  # endif
  #endif /* !defined(__cpp_lib_flat_set) */
--- 2118,2126 ----
  
  #if !defined(__cpp_lib_flat_set)
  # if (__cplusplus >= 202100L)
! #  define __glibcxx_flat_set 202511L
  #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_flat_set)
! #   define __cpp_lib_flat_set 202511L
  #  endif
  # endif
  #endif /* !defined(__cpp_lib_flat_set) */
diff -Nrcpad gcc-16-20260530/libstdc++-v3/include/debug/safe_iterator.h gcc-16-20260606/libstdc++-v3/include/debug/safe_iterator.h
*** gcc-16-20260530/libstdc++-v3/include/debug/safe_iterator.h	Sat May 30 22:32:14 2026
--- gcc-16-20260606/libstdc++-v3/include/debug/safe_iterator.h	Sat Jun  6 22:32:17 2026
*************** namespace __gnu_debug
*** 1149,1155 ****
      inline bool
      __can_advance(const _Safe_iterator<_Iterator, _Sequence, _Category>& __it,
  		  _Size __n)
!     { 
        if (std::__is_constant_evaluated())
  	return true;
  
--- 1149,1155 ----
      inline bool
      __can_advance(const _Safe_iterator<_Iterator, _Sequence, _Category>& __it,
  		  _Size __n)
!     {
        if (std::__is_constant_evaluated())
  	return true;
  
*************** namespace __gnu_debug
*** 1166,1172 ****
      {
        if (std::__is_constant_evaluated())
  	return true;
!     
        return __it._M_can_advance(__dist, __way);
      }
  
--- 1166,1172 ----
      {
        if (std::__is_constant_evaluated())
  	return true;
! 
        return __it._M_can_advance(__dist, __way);
      }
  
diff -Nrcpad gcc-16-20260530/libstdc++-v3/include/std/flat_map gcc-16-20260606/libstdc++-v3/include/std/flat_map
*** gcc-16-20260530/libstdc++-v3/include/std/flat_map	Sat May 30 22:32:14 2026
--- gcc-16-20260606/libstdc++-v3/include/std/flat_map	Sat Jun  6 22:32:17 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 74,82 ****
        static_assert(is_same_v<_Key, typename _KeyContainer::value_type>);
        static_assert(is_same_v<_Tp, typename _MappedContainer::value_type>);
  
-       static_assert(is_nothrow_swappable_v<_KeyContainer>);
-       static_assert(is_nothrow_swappable_v<_MappedContainer>);
- 
        using _Derived = __conditional_t<_Multi,
  				       flat_multimap<_Key, _Tp, _Compare,
  						     _KeyContainer, _MappedContainer>,
--- 74,79 ----
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 395,400 ****
--- 392,429 ----
  	: _Flat_map_impl(__s, __il.begin(), __il.end(), __comp, __a)
  	{ }
  
+       _Flat_map_impl(const _Flat_map_impl&) = default;
+       _Flat_map_impl& operator=(const _Flat_map_impl&) = default;
+ 
+       _GLIBCXX26_CONSTEXPR
+       _Flat_map_impl(_Flat_map_impl&& __other)
+       noexcept(is_nothrow_move_constructible_v<containers>
+ 	       && is_nothrow_move_constructible_v<key_compare>)
+ #if __cpp_exceptions
+       try
+ #endif
+       : _M_cont(std::move(__other._M_cont)), _M_comp(std::move(__other._M_comp))
+       { __other.clear(); }
+ #if __cpp_exceptions
+       catch (...)
+       { __other.clear(); }
+ #endif
+ 
+       _GLIBCXX26_CONSTEXPR
+       _Flat_map_impl&
+       operator=(_Flat_map_impl&& __other)
+       noexcept(is_nothrow_move_assignable_v<containers>
+ 	       && is_nothrow_move_assignable_v<key_compare>)
+       {
+ 	auto __guard = _M_make_clear_guard();
+ 	auto __guard_other = _ClearGuard{__other._M_cont};
+ 	_M_cont = std::move(__other._M_cont);
+ 	_M_comp = std::move(__other._M_comp);
+ 	__guard._M_disable();
+ 	// __guard_other._M_disable is deliberately not called.
+ 	return *this;
+       }
+ 
        _GLIBCXX26_CONSTEXPR
        _Derived&
        operator=(initializer_list<value_type> __il)
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 602,614 ****
        template<typename _Iter, typename _Sent>
  	_GLIBCXX26_CONSTEXPR
  	void
! 	_M_insert(_Iter __first, _Sent __last)
  	{
- 	  // FIXME: This implementation fails its complexity requirements.
- 	  // We can't idiomatically implement an efficient version (as in the
- 	  // disabled code) until ranges::inplace_merge is fixed to dispatch
- 	  // on iterator concept instead of iterator category.
- #if 0
  	  auto __guard = _M_make_clear_guard();
  	  auto __n = size();
  	  for (; __first != __last; ++__first)
--- 631,638 ----
        template<typename _Iter, typename _Sent>
  	_GLIBCXX26_CONSTEXPR
  	void
! 	_M_insert(_Iter __first, _Sent __last, bool __is_sorted = false)
  	{
  	  auto __guard = _M_make_clear_guard();
  	  auto __n = size();
  	  for (; __first != __last; ++__first)
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 618,639 ****
  	      _M_cont.values.emplace_back(std::move(__value.second));
  	    }
  	  auto __zv = views::zip(_M_cont.keys, _M_cont.values);
! 	  ranges::sort(__zv.begin() + __n, __zv.end(), value_comp());
! 	  ranges::inplace_merge(__zv.begin(), __zv.begin() + __n, __zv.end(), value_comp());
  	  if constexpr (!_Multi)
  	    _M_unique();
- 	  __guard._M_cont = nullptr;
- #else
- 	  auto __guard = _M_make_clear_guard();
- 	  for (; __first != __last; ++__first)
- 	    {
- 	      value_type __value = *__first;
- 	      _M_cont.keys.emplace_back(std::move(__value.first));
- 	      _M_cont.values.emplace_back(std::move(__value.second));
- 	    }
- 	  _M_sort_uniq();
  	  __guard._M_disable();
- #endif
  	}
  
      public:
--- 642,657 ----
  	      _M_cont.values.emplace_back(std::move(__value.second));
  	    }
  	  auto __zv = views::zip(_M_cont.keys, _M_cont.values);
! 	  if (__is_sorted)
! 	    _GLIBCXX_DEBUG_ASSERT(ranges::is_sorted(__zv.begin() + __n, __zv.end(),
! 						    value_comp()));
! 	  else
! 	    ranges::sort(__zv.begin() + __n, __zv.end(), value_comp());
! 	  ranges::inplace_merge(__zv.begin(), __zv.begin() + __n, __zv.end(),
! 				value_comp());
  	  if constexpr (!_Multi)
  	    _M_unique();
  	  __guard._M_disable();
  	}
  
      public:
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 647,656 ****
  	_GLIBCXX26_CONSTEXPR
  	void
  	insert(__sorted_t, _InputIterator __first, _InputIterator __last)
! 	{
! 	  // FIXME: This implementation fails its complexity requirements; see above.
! 	  insert(std::move(__first), std::move(__last));
! 	}
  
        template<__detail::__container_compatible_range<value_type> _Rg>
  	_GLIBCXX26_CONSTEXPR
--- 665,671 ----
  	_GLIBCXX26_CONSTEXPR
  	void
  	insert(__sorted_t, _InputIterator __first, _InputIterator __last)
! 	{ _M_insert(std::move(__first), std::move(__last), true); }
  
        template<__detail::__container_compatible_range<value_type> _Rg>
  	_GLIBCXX26_CONSTEXPR
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 658,663 ****
--- 673,684 ----
  	insert_range(_Rg&& __rg)
  	{ _M_insert(ranges::begin(__rg), ranges::end(__rg)); }
  
+       template<__detail::__container_compatible_range<value_type> _Rg>
+ 	_GLIBCXX26_CONSTEXPR
+ 	void
+ 	insert_range(__sorted_t, _Rg&& __rg)
+ 	{ _M_insert(ranges::begin(__rg), ranges::end(__rg), true); }
+ 
        _GLIBCXX26_CONSTEXPR
        void
        insert(initializer_list<value_type> __il)
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 742,752 ****
  
        _GLIBCXX26_CONSTEXPR
        void
!       swap(_Derived& __y) noexcept
        {
! 	ranges::swap(_M_comp, __y._M_comp);
  	ranges::swap(_M_cont.keys, __y._M_cont.keys);
  	ranges::swap(_M_cont.values, __y._M_cont.values);
        }
  
        _GLIBCXX26_CONSTEXPR
--- 763,780 ----
  
        _GLIBCXX26_CONSTEXPR
        void
!       swap(_Derived& __y)
!       noexcept(is_nothrow_swappable_v<key_container_type>
! 	       && is_nothrow_swappable_v<mapped_container_type>
! 	       && is_nothrow_swappable_v<key_compare>)
        {
! 	auto __guard = _M_make_clear_guard();
! 	auto __guard_y = _ClearGuard{__y._M_cont};
  	ranges::swap(_M_cont.keys, __y._M_cont.keys);
  	ranges::swap(_M_cont.values, __y._M_cont.values);
+ 	ranges::swap(_M_comp, __y._M_comp);
+ 	__guard._M_disable();
+ 	__guard_y._M_disable();
        }
  
        _GLIBCXX26_CONSTEXPR
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 988,994 ****
  	}
  
        friend _GLIBCXX26_CONSTEXPR void
!       swap(_Derived& __x, _Derived& __y) noexcept
        { return __x.swap(__y); }
  
        template<typename _Predicate>
--- 1016,1022 ----
  	}
  
        friend _GLIBCXX26_CONSTEXPR void
!       swap(_Derived& __x, _Derived& __y) noexcept(noexcept(__x.swap(__y)))
        { return __x.swap(__y); }
  
        template<typename _Predicate>
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1247,1252 ****
--- 1275,1285 ----
        // constructors
        using _Impl::_Impl;
  
+       // operator=(initializer_list<value_type>)
+       // Although this also brings in the base move/copy assignment operators,
+       // they will be hidden by our synthesized ones.
+       using _Impl::operator=;
+ 
        // iterators
        using _Impl::begin;
        using _Impl::end;
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1600,1605 ****
--- 1633,1643 ----
        // constructors
        using _Impl::_Impl;
  
+       // operator=(initializer_list<value_type>)
+       // Although this also brings in the base move/copy assignment operators,
+       // they will be hidden by our synthesized ones.
+       using _Impl::operator=;
+ 
        // iterators
        using _Impl::begin;
        using _Impl::end;
diff -Nrcpad gcc-16-20260530/libstdc++-v3/include/std/flat_set gcc-16-20260606/libstdc++-v3/include/std/flat_set
*** gcc-16-20260530/libstdc++-v3/include/std/flat_set	Sat May 30 22:32:14 2026
--- gcc-16-20260606/libstdc++-v3/include/std/flat_set	Sat Jun  6 22:32:17 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 71,77 ****
      class _Flat_set_impl
      {
        static_assert(is_same_v<_Key, typename _KeyContainer::value_type>);
-       static_assert(is_nothrow_swappable_v<_KeyContainer>);
  
        using _Derived = __conditional_t<_Multi,
  				       flat_multiset<_Key, _Compare, _KeyContainer>,
--- 71,76 ----
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 324,329 ****
--- 323,360 ----
  	: _Flat_set_impl(__s, __il.begin(), __il.end(), __comp, __a)
  	{ }
  
+       _Flat_set_impl(const _Flat_set_impl&) = default;
+       _Flat_set_impl& operator=(const _Flat_set_impl&) = default;
+ 
+       _GLIBCXX26_CONSTEXPR
+       _Flat_set_impl(_Flat_set_impl&& __other)
+       noexcept(is_nothrow_move_constructible_v<container_type>
+ 	       && is_nothrow_move_constructible_v<key_compare>)
+ #if __cpp_exceptions
+       try
+ #endif
+       : _M_cont(std::move(__other._M_cont)), _M_comp(std::move(__other._M_comp))
+       { __other.clear(); }
+ #if __cpp_exceptions
+       catch (...)
+       { __other.clear(); }
+ #endif
+ 
+       _GLIBCXX26_CONSTEXPR
+       _Flat_set_impl&
+       operator=(_Flat_set_impl&& __other)
+       noexcept(is_nothrow_move_assignable_v<container_type>
+ 	       && is_nothrow_move_assignable_v<key_compare>)
+       {
+ 	auto __guard = _M_make_clear_guard();
+ 	auto __guard_other = _ClearGuard{__other._M_cont};
+ 	_M_cont = std::move(__other._M_cont);
+ 	_M_comp = std::move(__other._M_comp);
+ 	__guard._M_disable();
+ 	// __guard_other._M_disable is deliberately not called.
+ 	return *this;
+       }
+ 
        _GLIBCXX26_CONSTEXPR
        _Derived&
        operator=(initializer_list<value_type> __il)
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 540,549 ****
  	  __guard._M_disable();
  	}
  
!       template<__detail::__container_compatible_range<value_type> _Rg>
  	_GLIBCXX26_CONSTEXPR
  	void
! 	insert_range(_Rg&& __rg)
  	{
  	  auto __guard = _M_make_clear_guard();
  	  typename container_type::iterator __it;
--- 571,580 ----
  	  __guard._M_disable();
  	}
  
!       template<typename _Rg>
  	_GLIBCXX26_CONSTEXPR
  	void
! 	_M_insert_range(_Rg&& __rg, bool __is_sorted = false)
  	{
  	  auto __guard = _M_make_clear_guard();
  	  typename container_type::iterator __it;
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 561,573 ****
  		_M_cont.emplace_back(*__first);
  	      __it = _M_cont.begin() + __n;
  	    }
! 	  std::sort(__it, _M_cont.end(), _M_comp);
  	  std::inplace_merge(_M_cont.begin(), __it, _M_cont.end(), _M_comp);
  	  if constexpr (!_Multi)
  	    _M_unique();
  	  __guard._M_disable();
  	}
  
        _GLIBCXX26_CONSTEXPR
        void
        insert(initializer_list<value_type> __il)
--- 592,619 ----
  		_M_cont.emplace_back(*__first);
  	      __it = _M_cont.begin() + __n;
  	    }
! 	  if (__is_sorted)
! 	    _GLIBCXX_DEBUG_ASSERT(ranges::is_sorted(__it, _M_cont.end(), _M_comp));
! 	  else
! 	    std::sort(__it, _M_cont.end(), _M_comp);
  	  std::inplace_merge(_M_cont.begin(), __it, _M_cont.end(), _M_comp);
  	  if constexpr (!_Multi)
  	    _M_unique();
  	  __guard._M_disable();
  	}
  
+     template<__detail::__container_compatible_range<value_type> _Rg>
+       _GLIBCXX26_CONSTEXPR
+       void
+       insert_range(_Rg&& __rg)
+       { _M_insert_range(std::forward<_Rg>(__rg)); }
+ 
+     template<__detail::__container_compatible_range<value_type> _Rg>
+       _GLIBCXX26_CONSTEXPR
+       void
+       insert_range(__sorted_t, _Rg&& __rg)
+       { _M_insert_range(std::forward<_Rg>(__rg), true); }
+ 
        _GLIBCXX26_CONSTEXPR
        void
        insert(initializer_list<value_type> __il)
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 628,638 ****
  
        _GLIBCXX26_CONSTEXPR
        void
!       swap(_Derived& __x) noexcept
        {
! 	using std::swap;
! 	swap(_M_cont, __x._M_cont);
! 	swap(_M_comp, __x._M_comp);
        }
  
        _GLIBCXX26_CONSTEXPR
--- 674,689 ----
  
        _GLIBCXX26_CONSTEXPR
        void
!       swap(_Derived& __y)
!       noexcept(is_nothrow_swappable_v<container_type>
! 	       && is_nothrow_swappable_v<key_compare>)
        {
! 	auto __guard = _M_make_clear_guard();
! 	auto __guard_y = _ClearGuard{__y._M_cont};
! 	ranges::swap(_M_cont, __y._M_cont);
! 	ranges::swap(_M_comp, __y._M_comp);
! 	__guard._M_disable();
! 	__guard_y._M_disable();
        }
  
        _GLIBCXX26_CONSTEXPR
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 830,836 ****
  	}
  
        friend _GLIBCXX26_CONSTEXPR void
!       swap(_Derived& __x, _Derived& __y) noexcept
        { return __x.swap(__y); }
  
        template<typename _Predicate>
--- 881,887 ----
  	}
  
        friend _GLIBCXX26_CONSTEXPR void
!       swap(_Derived& __x, _Derived& __y) noexcept(noexcept(__x.swap(__y)))
        { return __x.swap(__y); }
  
        template<typename _Predicate>
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 916,921 ****
--- 967,977 ----
        // constructors
        using _Impl::_Impl;
  
+       // operator=(initializer_list<value_type>)
+       // Although this also brings in the base move/copy assignment operators,
+       // they will be hidden by our synthesized ones.
+       using _Impl::operator=;
+ 
        // iterators
        using _Impl::begin;
        using _Impl::end;
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1064,1069 ****
--- 1120,1130 ----
        // constructors
        using _Impl::_Impl;
  
+       // operator=(initializer_list<value_type>)
+       // Although this also brings in the base move/copy assignment operators,
+       // they will be hidden by our synthesized ones.
+       using _Impl::operator=;
+ 
        // iterators
        using _Impl::begin;
        using _Impl::end;
diff -Nrcpad gcc-16-20260530/libstdc++-v3/testsuite/23_containers/flat_map/1.cc gcc-16-20260606/libstdc++-v3/testsuite/23_containers/flat_map/1.cc
*** gcc-16-20260530/libstdc++-v3/testsuite/23_containers/flat_map/1.cc	Sat May 30 22:32:15 2026
--- gcc-16-20260606/libstdc++-v3/testsuite/23_containers/flat_map/1.cc	Sat Jun  6 22:32:17 2026
***************
*** 3,9 ****
  
  #include <flat_map>
  
! #if __cpp_lib_flat_map != 202207L
  # error "Feature-test macro __cpp_lib_flat_map has wrong value in <flat_map>"
  #endif
  
--- 3,9 ----
  
  #include <flat_map>
  
! #if __cpp_lib_flat_map != 202511L
  # error "Feature-test macro __cpp_lib_flat_map has wrong value in <flat_map>"
  #endif
  
*************** test10()
*** 299,304 ****
--- 299,410 ----
    VERIFY (k == "world");
  }
  
+ template<typename T>
+ struct throwing_vector : std::vector<T>
+ {
+   static inline bool throw_on_move = false;
+ 
+   throwing_vector() = default;
+   throwing_vector(const throwing_vector&) = default;
+   throwing_vector& operator=(const throwing_vector&) = default;
+ 
+   throwing_vector(throwing_vector&& other)
+   : std::vector<T>(std::move(other))
+   {
+     if (throw_on_move)
+       throw std::runtime_error("move ctor");
+   }
+ 
+   throwing_vector&
+   operator=(throwing_vector&& other)
+   {
+     static_cast<std::vector<T>&>(*this) = std::move(other);
+     if (throw_on_move)
+       throw std::runtime_error("move assign");
+     return *this;
+   }
+ };
+ 
+ template<template<typename> class KC, template<typename> class MC>
+ void
+ test11()
+ {
+ #if __cpp_exceptions
+   using flat_map = std::flat_map<int, int, std::less<int>, KC<int>, MC<int>>;
+ 
+   auto is_really_empty = [](const flat_map& m) {
+     return m.empty() && m.keys().empty() && m.values().empty();
+   };
+   throwing_vector<int>::throw_on_move = true;
+ 
+   // Verify invariant preservation upon throwing move construction.
+   flat_map source;
+   source.insert({{1, 100}, {2, 200}});
+   try
+     {
+       flat_map target(std::move(source));
+       VERIFY( false );
+     }
+   catch (const std::runtime_error&)
+     {
+       VERIFY( is_really_empty(source) );
+     }
+ 
+   // Verify invariant preservation upon throwing move assignment.
+   source = {{1, 100}, {2, 200}};
+   flat_map target;
+   target.insert({{3, 300}, {4, 400}});
+   try
+     {
+       target = std::move(source);
+       VERIFY( false );
+     }
+   catch (const std::runtime_error&)
+     {
+       VERIFY( is_really_empty(source) );
+       VERIFY( is_really_empty(target) );
+     }
+ 
+   // Verify invariant preservation upon throwing swap.
+   source = {{1, 100}, {2, 200}};
+   target = {{3, 300}, {4, 400}};
+   try
+     {
+       source.swap(target);
+       VERIFY( false );
+     }
+   catch (const std::runtime_error&)
+     {
+       VERIFY( is_really_empty(source) );
+       VERIFY( is_really_empty(target) );
+     }
+ #endif
+ }
+ 
+ constexpr
+ void
+ test12()
+ {
+   // Verify usability of flat_map::insert_range(sorted_unique_t, Rg&&).
+   std::flat_map<int, int> m = {{2, 200}};
+   std::pair<int, int> s[] = {{1, 100}, {3, 300}};
+   m.insert_range(std::sorted_unique, s);
+   VERIFY( std::ranges::equal(m.keys(), (int[]){1, 2, 3}) );
+   VERIFY( std::ranges::equal(m.values(), (int[]){100, 200, 300}) );
+ }
+ 
+ void
+ test13()
+ {
+   // Verify usability of flat_map::operator=(initializer_list).
+   throwing_vector<int>::throw_on_move = true;
+   std::flat_map<int, int, std::less<int>, throwing_vector<int>> s;
+   std::initializer_list<std::pair<int, int>> il = {{2, 1}, {3, 2}, {1, 3}};
+   s = il;
+   VERIFY( std::ranges::equal(s.keys(), (int[]){1, 2, 3}) );
+   VERIFY( std::ranges::equal(s.values(), (int[]){3, 1, 2}) );
+ }
+ 
  void
  test()
  {
*************** test()
*** 315,320 ****
--- 421,430 ----
    test08();
    test09();
    test10();
+   test11<std::vector, throwing_vector>();
+   test11<throwing_vector, std::vector>();
+   test12();
+   test13();
  }
  
  constexpr
*************** test_constexpr()
*** 333,338 ****
--- 443,451 ----
  #if __cpp_lib_constexpr_string >= 201907L
    test10();
  #endif
+   // test11() is non-constexpr
+   test12();
+   // test13() is non-constexpr
    return true;
  }
  
diff -Nrcpad gcc-16-20260530/libstdc++-v3/testsuite/23_containers/flat_multimap/1.cc gcc-16-20260606/libstdc++-v3/testsuite/23_containers/flat_multimap/1.cc
*** gcc-16-20260530/libstdc++-v3/testsuite/23_containers/flat_multimap/1.cc	Sat May 30 22:32:15 2026
--- gcc-16-20260606/libstdc++-v3/testsuite/23_containers/flat_multimap/1.cc	Sat Jun  6 22:32:17 2026
*************** test09()
*** 252,257 ****
--- 252,363 ----
    using value_type = std::pair<int, int>;
  }
  
+ template<typename T>
+ struct throwing_vector : std::vector<T>
+ {
+   static inline bool throw_on_move = false;
+ 
+   throwing_vector() = default;
+   throwing_vector(const throwing_vector&) = default;
+   throwing_vector& operator=(const throwing_vector&) = default;
+ 
+   throwing_vector(throwing_vector&& other)
+   : std::vector<T>(std::move(other))
+   {
+     if (throw_on_move)
+       throw std::runtime_error("move ctor");
+   }
+ 
+   throwing_vector&
+   operator=(throwing_vector&& other)
+   {
+     static_cast<std::vector<T>&>(*this) = std::move(other);
+     if (throw_on_move)
+       throw std::runtime_error("move assign");
+     return *this;
+   }
+ };
+ 
+ template<template<typename> class KC, template<typename> class MC>
+ void
+ test10()
+ {
+ #if __cpp_exceptions
+   using flat_multimap = std::flat_multimap<int, int, std::less<int>, KC<int>, MC<int>>;
+ 
+   auto is_really_empty = [](const flat_multimap& m) {
+     return m.empty() && m.keys().empty() && m.values().empty();
+   };
+   throwing_vector<int>::throw_on_move = true;
+ 
+   // Verify invariant preservation upon throwing move construction.
+   flat_multimap source;
+   source.insert({{1, 100}, {2, 200}});
+   try
+     {
+       flat_multimap target(std::move(source));
+       VERIFY( false );
+     }
+   catch (const std::runtime_error&)
+     {
+       VERIFY( is_really_empty(source) );
+     }
+ 
+   // Verify invariant preservation upon throwing move assignment.
+   source = {{1, 100}, {2, 200}};
+   flat_multimap target;
+   target.insert({{3, 300}, {4, 400}});
+   try
+     {
+       target = std::move(source);
+       VERIFY( false );
+     }
+   catch (const std::runtime_error&)
+     {
+       VERIFY( is_really_empty(source) );
+       VERIFY( is_really_empty(target) );
+     }
+ 
+   // Verify invariant preservation upon throwing swap.
+   source = {{1, 100}, {2, 200}};
+   target = {{3, 300}, {4, 400}};
+   try
+     {
+       source.swap(target);
+       VERIFY( false );
+     }
+   catch (const std::runtime_error&)
+     {
+       VERIFY( is_really_empty(source) );
+       VERIFY( is_really_empty(target) );
+     }
+ #endif
+ }
+ 
+ constexpr
+ void
+ test11()
+ {
+   // Verify usability of flat_multimap::insert_range(sorted_equivalent_t, Rg&&).
+   std::flat_multimap<int, int> m = {{2, 200}};;
+   std::pair<int, int> s[] = {{1, 100}, {3, 300}};
+   m.insert_range(std::sorted_equivalent, s);
+   VERIFY( std::ranges::equal(m.keys(), (int[]){1, 2, 3}) );
+   VERIFY( std::ranges::equal(m.values(), (int[]){100, 200, 300}) );
+ }
+ 
+ void
+ test12()
+ {
+   // Verify usability of flat_multimap::operator=(initializer_list).
+   throwing_vector<int>::throw_on_move = true;
+   std::flat_multimap<int, int, std::less<int>, throwing_vector<int>> s;
+   std::initializer_list<std::pair<int, int>> il = {{2, 1}, {3, 2}, {1, 3}};
+   s = il;
+   VERIFY( std::ranges::equal(s.keys(), (int[]){1, 2, 3}) );
+   VERIFY( std::ranges::equal(s.values(), (int[]){3, 1, 2}) );
+ }
+ 
  void
  test()
  {
*************** test()
*** 266,271 ****
--- 372,381 ----
    test06();
    test07();
    test09();
+   test10<std::vector, throwing_vector>();
+   test10<throwing_vector, std::vector>();
+   test11();
+   test12();
  }
  
  constexpr
*************** test_constexpr()
*** 280,285 ****
--- 390,398 ----
    test06();
    test07();
    test09();
+   // test10() is non-constexpr
+   test11();
+   // test12() is non-constexpr
    return true;
  }
  
diff -Nrcpad gcc-16-20260530/libstdc++-v3/testsuite/23_containers/flat_multiset/1.cc gcc-16-20260606/libstdc++-v3/testsuite/23_containers/flat_multiset/1.cc
*** gcc-16-20260530/libstdc++-v3/testsuite/23_containers/flat_multiset/1.cc	Sat May 30 22:32:15 2026
--- gcc-16-20260606/libstdc++-v3/testsuite/23_containers/flat_multiset/1.cc	Sat Jun  6 22:32:17 2026
*************** test09()
*** 265,270 ****
--- 265,370 ----
    VERIFY( std::ranges::equal(s, (int[]){2,2,4}) );
  }
  
+ template<typename T>
+ struct throwing_vector : std::vector<T>
+ {
+   static inline bool throw_on_move = false;
+ 
+   throwing_vector() = default;
+   throwing_vector(const throwing_vector&) = default;
+   throwing_vector& operator=(const throwing_vector&) = default;
+ 
+   throwing_vector(throwing_vector&& other)
+   : std::vector<T>(std::move(other))
+   {
+     if (throw_on_move)
+       throw std::runtime_error("move ctor");
+   }
+ 
+   throwing_vector&
+   operator=(throwing_vector&& other)
+   {
+     static_cast<std::vector<T>&>(*this) = std::move(other);
+     if (throw_on_move)
+       throw std::runtime_error("move assign");
+     return *this;
+   }
+ 
+   using std::vector<int>::operator=;
+ };
+ 
+ void
+ test10()
+ {
+ #if __cpp_exceptions
+   using flat_multiset = std::flat_multiset<int, std::less<int>, throwing_vector<int>>;
+ 
+   throwing_vector<int>::throw_on_move = true;
+ 
+   // Verify invariant preservation upon throwing move construction.
+   flat_multiset source = {1, 2};
+   try
+     {
+       flat_multiset target(std::move(source));
+       VERIFY( false );
+     }
+   catch (const std::runtime_error&)
+     {
+       VERIFY( source.empty() );
+     }
+ 
+   // Verify invariant preservation upon throwing move assignment.
+   source = {1, 2};
+   flat_multiset target = {3, 4};
+   try
+     {
+       target = std::move(source);
+       VERIFY( false );
+     }
+   catch (const std::runtime_error&)
+     {
+       VERIFY( source.empty() );
+       VERIFY( target.empty() );
+     }
+ 
+   // Verify invariant preservation upon throwing swap.
+   source = {1, 2};
+   target = {3, 4};
+   try
+     {
+       source.swap(target);
+       VERIFY( false );
+     }
+   catch (const std::runtime_error&)
+     {
+       VERIFY( source.empty() );
+       VERIFY( target.empty() );
+     }
+ #endif
+ }
+ 
+ constexpr
+ void
+ test11()
+ {
+   // Verify usability of flat_multiset::insert_range(sorted_equivalent_t, Rg&&).
+   std::flat_multiset<int> m = {2};
+   int s[] = {1, 3};
+   m.insert_range(std::sorted_equivalent, s);
+   VERIFY( std::ranges::equal(m, (int[]){1, 2, 3}) );
+ }
+ 
+ void
+ test12()
+ {
+   // Verify usability of flat_multiset::operator=(initializer_list).
+   throwing_vector<int>::throw_on_move = true;
+   std::flat_multiset<int, std::less<int>, throwing_vector<int>> s;
+   std::initializer_list<int> il = {2, 3, 1};
+   s = il;
+   VERIFY( std::ranges::equal(s, (int[]){1, 2, 3}) );
+ }
+ 
  void
  test()
  {
*************** test()
*** 278,283 ****
--- 378,386 ----
    test07();
    test08();
    test09();
+   test10();
+   test11();
+   test12();
  }
  
  constexpr
*************** test_constexpr()
*** 292,297 ****
--- 395,403 ----
    test07();
    test08();
    test09();
+   // test10() is non-constexpr
+   test11();
+   // test12() is non-constexpr
    return true;
  }
  
diff -Nrcpad gcc-16-20260530/libstdc++-v3/testsuite/23_containers/flat_set/1.cc gcc-16-20260606/libstdc++-v3/testsuite/23_containers/flat_set/1.cc
*** gcc-16-20260530/libstdc++-v3/testsuite/23_containers/flat_set/1.cc	Sat May 30 22:32:15 2026
--- gcc-16-20260606/libstdc++-v3/testsuite/23_containers/flat_set/1.cc	Sat Jun  6 22:32:17 2026
***************
*** 2,8 ****
  
  #include <flat_set>
  
! #if __cpp_lib_flat_set != 202207L
  # error "Feature-test macro __cpp_lib_flat_set has wrong value in <flat_set>"
  #endif
  
--- 2,8 ----
  
  #include <flat_set>
  
! #if __cpp_lib_flat_set != 202511L
  # error "Feature-test macro __cpp_lib_flat_set has wrong value in <flat_set>"
  #endif
  
*************** test09()
*** 277,282 ****
--- 277,382 ----
    VERIFY( std::ranges::equal(s, (int[]){2,4}) );
  }
  
+ template<typename T>
+ struct throwing_vector : std::vector<T>
+ {
+   static inline bool throw_on_move = false;
+ 
+   throwing_vector() = default;
+   throwing_vector(const throwing_vector&) = default;
+   throwing_vector& operator=(const throwing_vector&) = default;
+ 
+   throwing_vector(throwing_vector&& other)
+   : std::vector<T>(std::move(other))
+   {
+     if (throw_on_move)
+       throw std::runtime_error("move ctor");
+   }
+ 
+   throwing_vector&
+   operator=(throwing_vector&& other)
+   {
+     static_cast<std::vector<T>&>(*this) = std::move(other);
+     if (throw_on_move)
+       throw std::runtime_error("move assign");
+     return *this;
+   }
+ 
+   using std::vector<int>::operator=;
+ };
+ 
+ void
+ test10()
+ {
+ #if __cpp_exceptions
+   using flat_set = std::flat_set<int, std::less<int>, throwing_vector<int>>;
+ 
+   throwing_vector<int>::throw_on_move = true;
+ 
+   // Verify invariant preservation upon throwing move construction.
+   flat_set source = {1, 2};
+   try
+     {
+       flat_set target(std::move(source));
+       VERIFY( false );
+     }
+   catch (const std::runtime_error&)
+     {
+       VERIFY( source.empty() );
+     }
+ 
+   // Verify invariant preservation upon throwing move assignment.
+   source = {1, 2};
+   flat_set target = {3, 4};
+   try
+     {
+       target = std::move(source);
+       VERIFY( false );
+     }
+   catch (const std::runtime_error&)
+     {
+       VERIFY( source.empty() );
+       VERIFY( target.empty() );
+     }
+ 
+   // Verify invariant preservation upon throwing swap.
+   source = {1, 2};
+   target = {3, 4};
+   try
+     {
+       source.swap(target);
+       VERIFY( false );
+     }
+   catch (const std::runtime_error&)
+     {
+       VERIFY( source.empty() );
+       VERIFY( target.empty() );
+     }
+ #endif
+ }
+ 
+ constexpr
+ void
+ test11()
+ {
+   // Verify usability of flat_set::insert_range(sorted_unique_t, Rg&&).
+   std::flat_set<int> m = {2};
+   int s[] = {1, 3};
+   m.insert_range(std::sorted_unique, s);
+   VERIFY( std::ranges::equal(m, (int[]){1, 2, 3}) );
+ }
+ 
+ void
+ test12()
+ {
+   // Verify usability of flat_set::operator=(initializer_list).
+   throwing_vector<int>::throw_on_move = true;
+   std::flat_set<int, std::less<int>, throwing_vector<int>> s;
+   std::initializer_list<int> il = {2, 3, 1};
+   s = il;
+   VERIFY( std::ranges::equal(s, (int[]){1, 2, 3}) );
+ }
+ 
  void
  test()
  {
*************** test()
*** 290,295 ****
--- 390,398 ----
    test07();
    test08();
    test09();
+   test10();
+   test11();
+   test12();
  }
  
  constexpr
*************** test_constexpr()
*** 304,309 ****
--- 407,415 ----
    test07();
    test08();
    test09();
+   // test10() is non-constexpr
+   test11();
+   // test12() is non-constexpr
    return true;
  }
  
