diff -Nrcpad gcc-17-20260712/ChangeLog gcc-17-20260719/ChangeLog
*** gcc-17-20260712/ChangeLog	Sun Jul 12 22:32:05 2026
--- gcc-17-20260719/ChangeLog	Sun Jul 19 22:32:05 2026
***************
*** 1,3 ****
--- 1,24 ----
+ 2026-07-16  Craig Blackmore  <craig.blackmore@embecosm.com>
+ 
+ 	* MAINTAINERS (Write After Approval): Regenerate.
+ 	* MAINTAINERS.yml: Add myself.
+ 
+ 2026-07-13  Eikansh Gupta  <eikansh.gupta@oss.qualcomm.com>
+ 
+ 	* MAINTAINERS.yml: Add myself.
+ 	* MAINTAINERS (Write After Approval): Regenerate.
+ 	(Contributing under the DCO): Regenerate.
+ 
+ 2026-07-12  Kael Andrew Alonzo Franco  <kaelfandrew@gmail.com>
+ 
+ 	* MAINTAINERS (Write After Approval): Add myself.
+ 	(Contributing under the DCO): Add myself.
+ 	* MAINTAINERS.yml: Add myself.
+ 
+ 2026-07-12  Manuel Jacob  <me@manueljacob.de>
+ 
+ 	* configure: Regenerated.
+ 
  2026-07-09  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
  	* configure: Regenerate.
diff -Nrcpad gcc-17-20260712/LAST_UPDATED gcc-17-20260719/LAST_UPDATED
*** gcc-17-20260712/LAST_UPDATED	Sun Jul 12 22:32:24 2026
--- gcc-17-20260719/LAST_UPDATED	Sun Jul 19 22:32:23 2026
***************
*** 1 ****
! Obtained from git: master revision d556f558b9db9a136ac9ec4cc804dd899d2e63cd
--- 1 ----
! Obtained from git: master revision 6d5d980f76c3057cc90b1343a679e7eea3ad2a50
diff -Nrcpad gcc-17-20260712/MAINTAINERS gcc-17-20260719/MAINTAINERS
*** gcc-17-20260712/MAINTAINERS	Sun Jul 12 22:32:05 2026
--- gcc-17-20260719/MAINTAINERS	Sun Jul 19 22:32:05 2026
*************** David Billinghurst              billingd
*** 385,390 ****
--- 385,391 ----
  Tomas Bily                      tomby           <tbily@suse.cz>
  Laurynas Biveinis               lauras          <laurynas.biveinis@gmail.com>
  Uros Bizjak                     uros            <ubizjak@gmail.com>
+ Craig Blackmore                 cblackmore      <craig.blackmore@embecosm.com>
  Eric Blake                      ericb           <ericb@gcc.gnu.org>
  Janne Blomqvist                 jb              <jb@gcc.gnu.org>
  Phil Blundell                   pb              <pb@futuretv.com>
*************** Haochen Gui                     guihaoc
*** 528,533 ****
--- 529,535 ----
  Jiufu Guo                       guojiufu        <guojiufu@linux.ibm.com>
  Xuepeng Guo                     xguo            <terry.xpguo@gmail.com>
  Wei Guozhi                      carrot          <carrot@google.com>
+ Eikansh Gupta                   eikansh         <eikansh.gupta@oss.qualcomm.com>
  Vineet Gupta                    vineetg         <vineet.gupta@linux.dev>
  Naveen H.S                      naveenh         <naveen.siddegowda@oss.qualcomm.com>
  Mostafa Hagog                   hagog           <hagog@gcc.gnu.org>
*************** Robin Dapp
*** 988,993 ****
--- 990,996 ----
  Robin Dapp                                      <rdapp@ventanamicro.com>
  Kael Andrew Franco                              <kaelfandrew@gmail.com>
  Prachi Godbole                                  <pgodbole@nvidia.com>
+ Eikansh Gupta                                   <eikansh.gupta@oss.qualcomm.com>
  Naveen H.S                                      <naveen.siddegowda@oss.qualcomm.com>
  Aldy Hernandez                                  <aldy@quesejoda.com>
  Michal Jires                                    <mjires@suse.cz>
diff -Nrcpad gcc-17-20260712/MAINTAINERS.yml gcc-17-20260719/MAINTAINERS.yml
*** gcc-17-20260712/MAINTAINERS.yml	Sun Jul 12 22:32:05 2026
--- gcc-17-20260719/MAINTAINERS.yml	Sun Jul 19 22:32:05 2026
*************** users:
*** 379,384 ****
--- 379,392 ----
    - Maintainer: i386 port
    - WriteAfter
    account: uros
+ - sn: Blackmore
+   cn: Craig Blackmore
+   email:
+   - craig.blackmore@embecosm.com
+   - cblackmore@gcc.gnu.org
+   roles:
+   - WriteAfter
+   account: cblackmore
  - sn: Blake
    cn: Eric Blake
    email:
*************** users:
*** 1720,1725 ****
--- 1728,1742 ----
    account: carrot
    inactive: true
  - sn: Gupta
+   cn: Eikansh Gupta
+   email:
+   - eikansh.gupta@oss.qualcomm.com
+   - eikansh@gcc.gnu.org
+   roles:
+   - WriteAfter
+   - DCO: eikansh.gupta@oss.qualcomm.com
+   account: eikansh
+ - sn: Gupta
    cn: Vineet Gupta
    email:
    - vineet.gupta@linux.dev
diff -Nrcpad gcc-17-20260712/MD5SUMS gcc-17-20260719/MD5SUMS
*** gcc-17-20260712/MD5SUMS	Sun Jul 12 22:32:29 2026
--- gcc-17-20260719/MD5SUMS	Sun Jul 19 22:32:28 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-17-20260712.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-17-20260719.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
*************** ac5a8807f431d3dab46a7425b96379e4  .gitig
*** 25,37 ****
  fe60d87048567d4fe8c8a0ed2448bcc8  COPYING.RUNTIME
  d32239bcb673463ab874e80d47fae504  COPYING3
  6a6a8e020838b23406c81b19c1d46df6  COPYING3.LIB
! 9d63352e1c60518d578614ba8155cb31  ChangeLog
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 3330a5f6e8e9837b71edeee414c43929  LAST_UPDATED
! 53f28ecf635daa37f40d869d2d81f582  MAINTAINERS
! 14d4f33dde20812b58d25d4315a450f3  MAINTAINERS.yml
  f1b0fe5b41f7272f173407bd21947846  Makefile.def
  fbda720c413d124746752b72dbcfff21  Makefile.in
  1c50f15d0e3e9ca32ee2b28db19f45bd  Makefile.tpl
--- 25,37 ----
  fe60d87048567d4fe8c8a0ed2448bcc8  COPYING.RUNTIME
  d32239bcb673463ab874e80d47fae504  COPYING3
  6a6a8e020838b23406c81b19c1d46df6  COPYING3.LIB
! 2045e260cd39e2248c861f58b5e1c477  ChangeLog
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 399295b522e42c548cf4c11e79b47897  LAST_UPDATED
! 4cb081bc9dc53b83f6a3244b68a6dee5  MAINTAINERS
! bc7f47007ec50688caac98b1be528e1a  MAINTAINERS.yml
  f1b0fe5b41f7272f173407bd21947846  Makefile.def
  fbda720c413d124746752b72dbcfff21  Makefile.in
  1c50f15d0e3e9ca32ee2b28db19f45bd  Makefile.tpl
*************** edf805e559bf9ecb62db313d2e6edb47  c++too
*** 51,57 ****
  c64564b7c7563dae5ebe016f340c9cd9  config.guess
  040359150cf11493f973a46d8a25b06b  config.rpath
  111d54aa3a3019adbab413c8fb435f22  config.sub
! 9c33904ec10298e219df9283f12bd212  config/ChangeLog
  e8365ab73da09dccff77a6e2ad006a68  config/acinclude.m4
  b724461247ded067ef9b1723c75e6467  config/acx.m4
  4de461a68cd5bb679a47eb9ad5dbbec2  config/asmcfi.m4
--- 51,57 ----
  c64564b7c7563dae5ebe016f340c9cd9  config.guess
  040359150cf11493f973a46d8a25b06b  config.rpath
  111d54aa3a3019adbab413c8fb435f22  config.sub
! 2459394f83d6389f87ad8eee603b50de  config/ChangeLog
  e8365ab73da09dccff77a6e2ad006a68  config/acinclude.m4
  b724461247ded067ef9b1723c75e6467  config/acx.m4
  4de461a68cd5bb679a47eb9ad5dbbec2  config/asmcfi.m4
*************** dd20b4aa952e750070486e3525cba7bd  config
*** 162,168 ****
  db74a73c3c9c3cc71edec37c2436e082  config/zstd.m4
  5bcd6c5d0e5af28ef977314b079ca150  configure
  32aa07435dfdbb17b3484dc82ad8e8d4  configure.ac
! f866b3bffeae929055ad39d250512325  contrib/ChangeLog
  5fc435c7928f858246df931ea3f3ece7  contrib/ChangeLog.jit
  7af8d2979bf1a7cfa88e30d05fa22be2  contrib/ChangeLog.tree-ssa
  95f2ccad93e447dc3cbd991a1e66fae2  contrib/add-write-after.py
--- 162,168 ----
  db74a73c3c9c3cc71edec37c2436e082  config/zstd.m4
  5bcd6c5d0e5af28ef977314b079ca150  configure
  32aa07435dfdbb17b3484dc82ad8e8d4  configure.ac
! 04da37672d64b8f5c81895d1687cebef  contrib/ChangeLog
  5fc435c7928f858246df931ea3f3ece7  contrib/ChangeLog.jit
  7af8d2979bf1a7cfa88e30d05fa22be2  contrib/ChangeLog.tree-ssa
  95f2ccad93e447dc3cbd991a1e66fae2  contrib/add-write-after.py
*************** e247fe6c331ffd44499eadc1c9cc0ceb  contri
*** 351,360 ****
  b17111db2534cd5454586f5670826489  contrib/regression/mkindex.pl
  6a5cb74b6ae5e8b4cde98c515353f5d9  contrib/regression/objs-gcc.sh
  dc562ddb86567c65e82953825713dc4b  contrib/regression/site.exp
! 0ef1f0f3b8112a12de68f806daf96994  contrib/relpath.sh
  5e4ee087708d8039fdd3e37392496a3f  contrib/repro_fail
  bd406d8c17b94a89b058ee50025305e5  contrib/sarif-listener.py
! 90ea3145c1ae6d9369e3a83195c5485d  contrib/test_installed
  ab1ac1854ae7cc1b85223bea29c20188  contrib/test_mklog.py
  2c2a06a23394c548bb4afba3c25aacce  contrib/test_recheck
  c650e776de65a2de80bbfb0033641805  contrib/test_summary
--- 351,360 ----
  b17111db2534cd5454586f5670826489  contrib/regression/mkindex.pl
  6a5cb74b6ae5e8b4cde98c515353f5d9  contrib/regression/objs-gcc.sh
  dc562ddb86567c65e82953825713dc4b  contrib/regression/site.exp
! 0b41f361c7f2d4a2c16e63a6cbf24186  contrib/relpath.sh
  5e4ee087708d8039fdd3e37392496a3f  contrib/repro_fail
  bd406d8c17b94a89b058ee50025305e5  contrib/sarif-listener.py
! ec2d900ced23e160b636d7b8c3af87c3  contrib/test_installed
  ab1ac1854ae7cc1b85223bea29c20188  contrib/test_mklog.py
  2c2a06a23394c548bb4afba3c25aacce  contrib/test_recheck
  c650e776de65a2de80bbfb0033641805  contrib/test_summary
*************** f15bc3c5de22eac0bdd4f611502139a0  gcc/AB
*** 535,541 ****
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 813805ccf496ffe0493eb298bc4a8b8c  gcc/ChangeLog
  51281e73aa07fb62394bd72f3c9299ba  gcc/ChangeLog-1997
  f77af8c9ac412064886b00c5506123b5  gcc/ChangeLog-1998
  00a2e4ead1b289bf69bca0196fed6f9f  gcc/ChangeLog-1999
--- 535,541 ----
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! bf4478c91040d8c5486e3df7ba6f677e  gcc/ChangeLog
  51281e73aa07fb62394bd72f3c9299ba  gcc/ChangeLog-1997
  f77af8c9ac412064886b00c5506123b5  gcc/ChangeLog-1998
  00a2e4ead1b289bf69bca0196fed6f9f  gcc/ChangeLog-1999
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 573,591 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 5e79a7239bc3812b2aafe4b34538d222  gcc/DATESTAMP
  deb513e591f23901188e22323bd3b1d4  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
  36698274bb69e2ada20f5cc434f3caa5  gcc/FSFChangeLog.11
  a817c5577f2b35f8d2481c787e3ff7e2  gcc/LANGUAGES
! 3fcf6f6639cab15f7dc15bafd074b439  gcc/Makefile.in
  ec6799501b2eb2923d5de6a66169dbd2  gcc/ONEWS
  c8c9dd1eaee4ffd4d5d9f3ab70fddd4b  gcc/README.Portability
  a9a7c60459b2407bfdf4e68c0ed4ad0a  gcc/acinclude.m4
  e74733ebf762151e601c9e0aa1461a20  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 9b4ad1a4ee98f4577d20cf8cb2852041  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
--- 573,591 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 25f50fdb8ed9da9b2cb59f428d41f87b  gcc/DATESTAMP
  deb513e591f23901188e22323bd3b1d4  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
  36698274bb69e2ada20f5cc434f3caa5  gcc/FSFChangeLog.11
  a817c5577f2b35f8d2481c787e3ff7e2  gcc/LANGUAGES
! 0f4d4ae2fd9c0563e0fc5d2bee9ede44  gcc/Makefile.in
  ec6799501b2eb2923d5de6a66169dbd2  gcc/ONEWS
  c8c9dd1eaee4ffd4d5d9f3ab70fddd4b  gcc/README.Portability
  a9a7c60459b2407bfdf4e68c0ed4ad0a  gcc/acinclude.m4
  e74733ebf762151e601c9e0aa1461a20  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 43a9fccf82789d4d6383777f6c14ee72  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
*************** acf67cc2ad3c40fe466a03f76c6450e1  gcc/ad
*** 2915,2921 ****
  65869457d1676879dc545835475f7421  gcc/ada/sem.ads
  1f1ea5b059ab31ee369cc51ba1071c8c  gcc/ada/sem_aggr.adb
  d5ddab4fcf440bf2f49a9a190fd12829  gcc/ada/sem_aggr.ads
! d261615708ed0e14a0e29537acdb46b5  gcc/ada/sem_attr.adb
  f5a25d26b815f5d376e2873f3ab69359  gcc/ada/sem_attr.ads
  39892cb912c9fe4b0d512cfc104e5bd7  gcc/ada/sem_aux.adb
  5df4642fb17b29da9f787e48f24551b9  gcc/ada/sem_aux.ads
--- 2915,2921 ----
  65869457d1676879dc545835475f7421  gcc/ada/sem.ads
  1f1ea5b059ab31ee369cc51ba1071c8c  gcc/ada/sem_aggr.adb
  d5ddab4fcf440bf2f49a9a190fd12829  gcc/ada/sem_aggr.ads
! 92b99ac3661ea22f61229b8c208f7b2c  gcc/ada/sem_attr.adb
  f5a25d26b815f5d376e2873f3ab69359  gcc/ada/sem_attr.ads
  39892cb912c9fe4b0d512cfc104e5bd7  gcc/ada/sem_aux.adb
  5df4642fb17b29da9f787e48f24551b9  gcc/ada/sem_aux.ads
*************** d22c314f3748309f812d78f5217dda61  gcc/ad
*** 3078,3084 ****
  06b46bffb1b84e16a6f48b29177f42c4  gcc/ada/xutil.ads
  faeebcb240c1559aceb7d9c18c8e6b89  gcc/addresses.h
  ebd823843d8793364a7f82ee9f833c88  gcc/adjust-alignment.cc
! 9d01866b2954ab7919653d092725c83f  gcc/algol68/ChangeLog
  66ab60a51bd61854d9b2898856651b15  gcc/algol68/Make-lang.in
  b2f984d7f0c7122003e5ce03b3e8724e  gcc/algol68/README
  43ae40e82c1a7a144e905d40b101214e  gcc/algol68/a68-diagnostics.cc
--- 3078,3084 ----
  06b46bffb1b84e16a6f48b29177f42c4  gcc/ada/xutil.ads
  faeebcb240c1559aceb7d9c18c8e6b89  gcc/addresses.h
  ebd823843d8793364a7f82ee9f833c88  gcc/adjust-alignment.cc
! e9739b504e289e5b3fd0b4cbf9397399  gcc/algol68/ChangeLog
  66ab60a51bd61854d9b2898856651b15  gcc/algol68/Make-lang.in
  b2f984d7f0c7122003e5ce03b3e8724e  gcc/algol68/README
  43ae40e82c1a7a144e905d40b101214e  gcc/algol68/a68-diagnostics.cc
*************** d70ae5781a204788596d281c20f889ac  gcc/al
*** 3143,3158 ****
  004c8ed84a6d3665dbac0ef8fa5351c6  gcc/algol68/a68.h
  cbc2ddca0589edc81c7df109b1a1927b  gcc/algol68/a68spec.cc
  ca4abac71b91773df74abdea22798551  gcc/algol68/config-lang.in
! 40eb5c0ad71bd0ee87a8434e92a226f2  gcc/algol68/ga68-coding-guidelines.texi
  9c3d535a7da271c49e76b9709e556383  gcc/algol68/ga68-exports.pk
  f150e2c760036b980e94ec7bb14e1172  gcc/algol68/ga68-internals.texi
! 9e575ac412a858aa8a5379d25d2c31f4  gcc/algol68/ga68.texi
  55f21b413e4afdb471156159a2a68e16  gcc/algol68/ga68.vw
  0a91d85c360d5ee3eb6258aecdab4636  gcc/algol68/lang-specs.h
  55e32b4ac4d7a159a683785bd5ee4c7a  gcc/algol68/lang.opt
  411f26970a0d93b07c697a1bcfeda50c  gcc/algol68/lang.opt.urls
! 8758ec6e04573ea8e7650b26a35dd470  gcc/alias.cc
! 44d9376fc7a405850e98a6848f493a81  gcc/alias.h
  71901705cb0e11732bae53ff9de25faf  gcc/align.h
  f2345b2fdc9d2d5a75fe90d30444a114  gcc/alloc-pool.cc
  853103d2bbe4a7888b35cf87d2bbe436  gcc/alloc-pool.h
--- 3143,3158 ----
  004c8ed84a6d3665dbac0ef8fa5351c6  gcc/algol68/a68.h
  cbc2ddca0589edc81c7df109b1a1927b  gcc/algol68/a68spec.cc
  ca4abac71b91773df74abdea22798551  gcc/algol68/config-lang.in
! 38a8538321e963c60c152bd641e807a2  gcc/algol68/ga68-coding-guidelines.texi
  9c3d535a7da271c49e76b9709e556383  gcc/algol68/ga68-exports.pk
  f150e2c760036b980e94ec7bb14e1172  gcc/algol68/ga68-internals.texi
! e33b22ccfbaa162786dbe06250d8e79c  gcc/algol68/ga68.texi
  55f21b413e4afdb471156159a2a68e16  gcc/algol68/ga68.vw
  0a91d85c360d5ee3eb6258aecdab4636  gcc/algol68/lang-specs.h
  55e32b4ac4d7a159a683785bd5ee4c7a  gcc/algol68/lang.opt
  411f26970a0d93b07c697a1bcfeda50c  gcc/algol68/lang.opt.urls
! 5701f8644058d3c7e5ab9921094cbf60  gcc/alias.cc
! b7dd8bd2dd68f81643704bf0b73553a1  gcc/alias.h
  71901705cb0e11732bae53ff9de25faf  gcc/align.h
  f2345b2fdc9d2d5a75fe90d30444a114  gcc/alloc-pool.cc
  853103d2bbe4a7888b35cf87d2bbe436  gcc/alloc-pool.h
*************** e78837c5a60b542b208371ea1e312af9  gcc/an
*** 3274,3281 ****
  3c33a162314863866dc49ceb3d8abd11  gcc/analyzer/varargs.dot
  ce213b79c4b2b50ceddefe2bbf41039e  gcc/analyzer/write-to-const-diagnostics.cc
  5af94414f167d3b307a0e33995e4a7fb  gcc/array-traits.h
! 9f1d3f3e05dc8abd46fe40ede920d4fb  gcc/asan.cc
! 248dd3f60d67d7404635a43ac1ee5b95  gcc/asan.h
  c21be8736ac701b9ddae4e83d6522cd4  gcc/asm-toplevel.cc
  ea987115b0f67bce5cc4745e6d5bc4d1  gcc/attr-callback.cc
  2d462a57a0a7bbe8bcb22db63f9377ef  gcc/attr-callback.h
--- 3274,3281 ----
  3c33a162314863866dc49ceb3d8abd11  gcc/analyzer/varargs.dot
  ce213b79c4b2b50ceddefe2bbf41039e  gcc/analyzer/write-to-const-diagnostics.cc
  5af94414f167d3b307a0e33995e4a7fb  gcc/array-traits.h
! fe508d0499653e35024417bbc4eacdfc  gcc/asan.cc
! 5b881c71b14da40269030324d80bf7f1  gcc/asan.h
  c21be8736ac701b9ddae4e83d6522cd4  gcc/asm-toplevel.cc
  ea987115b0f67bce5cc4745e6d5bc4d1  gcc/attr-callback.cc
  2d462a57a0a7bbe8bcb22db63f9377ef  gcc/attr-callback.h
*************** c277cfbf6dc22b5e43687f22a6ef9adb  gcc/bb
*** 3298,3313 ****
  0a656b07247b6d2bb8103f4808e3b277  gcc/bitmap.h
  8ba8cc55d4c38f126d32b3291cec4312  gcc/btfout.cc
  6da486aac72d8ac53fc6618dea4dcf2e  gcc/builtin-attrs.def
! 466410326d0beabc9343d7f8e561f590  gcc/builtin-types.def
  8925a4aab21fe60c0eff69d3baa0ab63  gcc/builtins.cc
  c69491e1e06e8252126bfd579bd74d4d  gcc/builtins.def
  4f577c1f20985f1ba3c1672476f1a2da  gcc/builtins.h
! c3a891b111e3a9ed57026bf2e5d01670  gcc/c-family/ChangeLog
  ea3fa1f4d7390a105fa3caab4f79aaf7  gcc/c-family/ChangeLog.gimple-classes
  aaea141fd41a559841cb76e33800c289  gcc/c-family/c-ada-spec.cc
  f60a13b470e8e51db83383bf9f9f921e  gcc/c-family/c-ada-spec.h
  8e05ebe71045ceff352cfa20a4a2bd1f  gcc/c-family/c-attribs.cc
! 46b2c8c5ffc2578c0ae1cfbe65e97c47  gcc/c-family/c-common.cc
  6522339cd83ff225a1ff9e0eab971eab  gcc/c-family/c-common.def
  efe9d47d8c9df8f32a8fdabf7a4c4dda  gcc/c-family/c-common.h
  5043f17c7fa7d40c7d1e5eb057228547  gcc/c-family/c-cppbuiltin.cc
--- 3298,3313 ----
  0a656b07247b6d2bb8103f4808e3b277  gcc/bitmap.h
  8ba8cc55d4c38f126d32b3291cec4312  gcc/btfout.cc
  6da486aac72d8ac53fc6618dea4dcf2e  gcc/builtin-attrs.def
! 5c925ea1c7d4df777b65bd2a3b62f77b  gcc/builtin-types.def
  8925a4aab21fe60c0eff69d3baa0ab63  gcc/builtins.cc
  c69491e1e06e8252126bfd579bd74d4d  gcc/builtins.def
  4f577c1f20985f1ba3c1672476f1a2da  gcc/builtins.h
! 32f4db57602b998d78a737985c19e55c  gcc/c-family/ChangeLog
  ea3fa1f4d7390a105fa3caab4f79aaf7  gcc/c-family/ChangeLog.gimple-classes
  aaea141fd41a559841cb76e33800c289  gcc/c-family/c-ada-spec.cc
  f60a13b470e8e51db83383bf9f9f921e  gcc/c-family/c-ada-spec.h
  8e05ebe71045ceff352cfa20a4a2bd1f  gcc/c-family/c-attribs.cc
! f051b502f9fc64654fd7a070663aa28d  gcc/c-family/c-common.cc
  6522339cd83ff225a1ff9e0eab971eab  gcc/c-family/c-common.def
  efe9d47d8c9df8f32a8fdabf7a4c4dda  gcc/c-family/c-common.h
  5043f17c7fa7d40c7d1e5eb057228547  gcc/c-family/c-cppbuiltin.cc
*************** efe9d47d8c9df8f32a8fdabf7a4c4dda  gcc/c-
*** 3317,3323 ****
  4179a97862f28535be92ef4cab16246e  gcc/c-family/c-gimplify.cc
  50e638257386d3df7bdf25108fdeb5d1  gcc/c-family/c-indentation.cc
  382fde18b48d137c66c91e21de978037  gcc/c-family/c-indentation.h
! b3d2381e6bf6df725f5906b6b8f6643d  gcc/c-family/c-lex.cc
  eb6a10cfada98679dc204a82e929e9e3  gcc/c-family/c-objc.h
  5edfc0bf13f4daff32a1653000781001  gcc/c-family/c-omp.cc
  ad14806f3955cf38561572129b17ecab  gcc/c-family/c-opts.cc
--- 3317,3323 ----
  4179a97862f28535be92ef4cab16246e  gcc/c-family/c-gimplify.cc
  50e638257386d3df7bdf25108fdeb5d1  gcc/c-family/c-indentation.cc
  382fde18b48d137c66c91e21de978037  gcc/c-family/c-indentation.h
! 0f4bac876ca30010932fca5ee362fa5d  gcc/c-family/c-lex.cc
  eb6a10cfada98679dc204a82e929e9e3  gcc/c-family/c-objc.h
  5edfc0bf13f4daff32a1653000781001  gcc/c-family/c-omp.cc
  ad14806f3955cf38561572129b17ecab  gcc/c-family/c-opts.cc
*************** ea821c9d267c64dd8b74aad9d0189834  gcc/c-
*** 3338,3351 ****
  eb0fcc324140f72001698df8e19f05c4  gcc/c-family/c-ubsan.cc
  298f1278576690ff4398c33310700f52  gcc/c-family/c-ubsan.h
  309adcb76e5a3c3f022c2d30b3bbda93  gcc/c-family/c-warn.cc
! 9c3666c11e703d428f5a5c74c71136af  gcc/c-family/c.opt
! bbfcfbcc99a479fc2ae2a14b2cc35697  gcc/c-family/c.opt.urls
  6453e733397a8ab931434f4f73ee7d7b  gcc/c-family/cppspec.cc
  58ecef7621a9577e43ac42cfceae8864  gcc/c-family/known-headers.cc
  377686cbbf62a7d61d251d3f74cddb5b  gcc/c-family/known-headers.h
  431045382c41554804be1959c1596be4  gcc/c-family/name-hint.h
  3bae9e281cc87b35f63e906373f3b446  gcc/c-family/stub-objc.cc
! 8a34185b938a70eea3339f0c53d8b4e4  gcc/c/ChangeLog
  cbffb341640e7c4b16792e0951fffeca  gcc/c/Make-lang.in
  3920e3ee16f5b5955d40584fea53c441  gcc/c/c-aux-info.cc
  cd5bab8a4deeaa0369ae59b9403d06a2  gcc/c/c-convert.cc
--- 3338,3351 ----
  eb0fcc324140f72001698df8e19f05c4  gcc/c-family/c-ubsan.cc
  298f1278576690ff4398c33310700f52  gcc/c-family/c-ubsan.h
  309adcb76e5a3c3f022c2d30b3bbda93  gcc/c-family/c-warn.cc
! ad074468fd0363c73de7097ac35b0159  gcc/c-family/c.opt
! cb2b05da78d8f8f39150cdbaa5df1754  gcc/c-family/c.opt.urls
  6453e733397a8ab931434f4f73ee7d7b  gcc/c-family/cppspec.cc
  58ecef7621a9577e43ac42cfceae8864  gcc/c-family/known-headers.cc
  377686cbbf62a7d61d251d3f74cddb5b  gcc/c-family/known-headers.h
  431045382c41554804be1959c1596be4  gcc/c-family/name-hint.h
  3bae9e281cc87b35f63e906373f3b446  gcc/c-family/stub-objc.cc
! b4ea9b5580efdb5db420fb6746d74687  gcc/c/ChangeLog
  cbffb341640e7c4b16792e0951fffeca  gcc/c/Make-lang.in
  3920e3ee16f5b5955d40584fea53c441  gcc/c/c-aux-info.cc
  cd5bab8a4deeaa0369ae59b9403d06a2  gcc/c/c-convert.cc
*************** fb28bfedbe8c8f41f339af7936b3b22f  gcc/c/
*** 3356,3362 ****
  62012039da265ed806754029f67a24a9  gcc/c/c-lang.h
  0faaa7bc26e8df40db69dd9caad8ced6  gcc/c/c-objc-common.cc
  cbfdd140f14c43c01a6bdf8b1c24b317  gcc/c/c-objc-common.h
! f324d0b84a110790909734ef326e960a  gcc/c/c-parser.cc
  f6b634d7c0204c419cf4fb7b48193fad  gcc/c/c-parser.h
  4db955734effe2d0c9aac0379d2e6a8c  gcc/c/c-tree.def
  ac5e93c0be8f41b552524ee15ee00d2f  gcc/c/c-tree.h
--- 3356,3362 ----
  62012039da265ed806754029f67a24a9  gcc/c/c-lang.h
  0faaa7bc26e8df40db69dd9caad8ced6  gcc/c/c-objc-common.cc
  cbfdd140f14c43c01a6bdf8b1c24b317  gcc/c/c-objc-common.h
! 3bdd7e34641df12155e58acc4f73d43e  gcc/c/c-parser.cc
  f6b634d7c0204c419cf4fb7b48193fad  gcc/c/c-parser.h
  4db955734effe2d0c9aac0379d2e6a8c  gcc/c/c-tree.def
  ac5e93c0be8f41b552524ee15ee00d2f  gcc/c/c-tree.h
*************** c620b176c09eda90b566ae49703a8346  gcc/cf
*** 3379,3385 ****
  1759b500ef3ebaa71f165d1004be0c28  gcc/cfgbuild.h
  4c93b442fb2c3908e2b49dbd5e1d5d2c  gcc/cfgcleanup.cc
  19b842f671a6c6284b654d712d52e513  gcc/cfgcleanup.h
! 2d882f432a252dec63236e823096925a  gcc/cfgexpand.cc
  7bcce78536f3bff0e046d9a3ece5ea9a  gcc/cfgexpand.h
  9009ba1d3f596dbdd73e13ac8c13aa03  gcc/cfghooks.cc
  168a35792653beee5d2b951ef1708665  gcc/cfghooks.h
--- 3379,3385 ----
  1759b500ef3ebaa71f165d1004be0c28  gcc/cfgbuild.h
  4c93b442fb2c3908e2b49dbd5e1d5d2c  gcc/cfgcleanup.cc
  19b842f671a6c6284b654d712d52e513  gcc/cfgcleanup.h
! 7c78abc9af060f81fab6c173e1e7c65b  gcc/cfgexpand.cc
  7bcce78536f3bff0e046d9a3ece5ea9a  gcc/cfgexpand.h
  9009ba1d3f596dbdd73e13ac8c13aa03  gcc/cfghooks.cc
  168a35792653beee5d2b951ef1708665  gcc/cfghooks.h
*************** e5a012c1da31f9a8d61212cd17d2761a  gcc/cf
*** 3390,3403 ****
  f06c849f4ab033a8269f676731b08388  gcc/cfgloopmanip.h
  bf51c09e81eb3433da948582cff58444  gcc/cfgrtl.cc
  c41525a1de6e78cabd4414d6a8c3dac9  gcc/cfgrtl.h
! f34ff59499fcd37d77a2a3571973ec7e  gcc/cgraph.cc
  d01f5aa66318fa0724dd739a1b80d004  gcc/cgraph.h
  b50dcacbe77c96809023aa599a556717  gcc/cgraphbuild.cc
  1a06be3556807c21f91d629f5878d022  gcc/cgraphclones.cc
  a9229e8ac3f0d366e296e57756becd23  gcc/cgraphunit.cc
  45b21ab7ea818c3a3ce60bf8d3cbd252  gcc/channels.h
  f2981f79a749a2269d7ea349ab37ca3e  gcc/cif-code.def
! f48a6b278d4ee00df8d0ee93b1cdf221  gcc/cobol/ChangeLog
  fcb021496628ea0c70ca22a6f8b75eb5  gcc/cobol/Make-lang.in
  0a84e784d2bc4066654d2377fc6a2930  gcc/cobol/TODO
  c1bd54bc8dcdf9e203926eab8cef9381  gcc/cobol/cbldiag.h
--- 3390,3403 ----
  f06c849f4ab033a8269f676731b08388  gcc/cfgloopmanip.h
  bf51c09e81eb3433da948582cff58444  gcc/cfgrtl.cc
  c41525a1de6e78cabd4414d6a8c3dac9  gcc/cfgrtl.h
! c582f9ca36b4c4c8ce2d5ff137fc14b2  gcc/cgraph.cc
  d01f5aa66318fa0724dd739a1b80d004  gcc/cgraph.h
  b50dcacbe77c96809023aa599a556717  gcc/cgraphbuild.cc
  1a06be3556807c21f91d629f5878d022  gcc/cgraphclones.cc
  a9229e8ac3f0d366e296e57756becd23  gcc/cgraphunit.cc
  45b21ab7ea818c3a3ce60bf8d3cbd252  gcc/channels.h
  f2981f79a749a2269d7ea349ab37ca3e  gcc/cif-code.def
! cd372b9d7c05dab2450ac6a61d4bfcf4  gcc/cobol/ChangeLog
  fcb021496628ea0c70ca22a6f8b75eb5  gcc/cobol/Make-lang.in
  0a84e784d2bc4066654d2377fc6a2930  gcc/cobol/TODO
  c1bd54bc8dcdf9e203926eab8cef9381  gcc/cobol/cbldiag.h
*************** b57b16ba2efc277622e35164741c3e0a  gcc/co
*** 3410,3424 ****
  30fe1e768a76bb15b7d6d2d12bb53a3a  gcc/cobol/compare.h
  8b7f26d4855e5bb69a66eecc586d9742  gcc/cobol/config-lang.in
  7e43ef597462b3ceabf3c197b4017e7c  gcc/cobol/convert.cc
! 4638d143b5638f95fc7d135c6f95e06f  gcc/cobol/copybook.h
  d5c6387d56f84eecf1320e4209ae02fe  gcc/cobol/dts.h
  79fd5c6d108a5a1af2ebda2296d91440  gcc/cobol/except.cc
  5faeacdf9fba68f3991fa3a6f65be405  gcc/cobol/exceptg.h
  b14c53972a7aa91a15097c505f00473b  gcc/cobol/gcobc
! d16ac4d27bb383d645623fd9ea460719  gcc/cobol/gcobol.1
  7a73ffe93cdd304879a42f225aa554ee  gcc/cobol/gcobol.3
! 21b840090e9923bdd5cb47e4468e3fd9  gcc/cobol/gcobolspec.cc
! ef111de68203320179fca2818f66fa9a  gcc/cobol/genapi.cc
  d4418c45a23e1f08496a7559c6cdbb27  gcc/cobol/genapi.h
  926207c629ee8f5d569aaa7d746dfc2f  gcc/cobol/gengen.cc
  8d0ab0fc1957927b07dd60145858e817  gcc/cobol/gengen.h
--- 3410,3424 ----
  30fe1e768a76bb15b7d6d2d12bb53a3a  gcc/cobol/compare.h
  8b7f26d4855e5bb69a66eecc586d9742  gcc/cobol/config-lang.in
  7e43ef597462b3ceabf3c197b4017e7c  gcc/cobol/convert.cc
! 07fd52b0f595c85024915a586a088b2a  gcc/cobol/copybook.h
  d5c6387d56f84eecf1320e4209ae02fe  gcc/cobol/dts.h
  79fd5c6d108a5a1af2ebda2296d91440  gcc/cobol/except.cc
  5faeacdf9fba68f3991fa3a6f65be405  gcc/cobol/exceptg.h
  b14c53972a7aa91a15097c505f00473b  gcc/cobol/gcobc
! 67e7e958a6e304651653f76c104b6446  gcc/cobol/gcobol.1
  7a73ffe93cdd304879a42f225aa554ee  gcc/cobol/gcobol.3
! 6c87ff946886a67b55671336b1424703  gcc/cobol/gcobolspec.cc
! 66798cde171919386ea84b5946ba56ee  gcc/cobol/genapi.cc
  d4418c45a23e1f08496a7559c6cdbb27  gcc/cobol/genapi.h
  926207c629ee8f5d569aaa7d746dfc2f  gcc/cobol/gengen.cc
  8d0ab0fc1957927b07dd60145858e817  gcc/cobol/gengen.h
*************** a89ae19c1e81dcbb7086fd601f1b74af  gcc/co
*** 3432,3455 ****
  158e28d660a0db1859408e62eabf98fe  gcc/cobol/lang.opt
  fd4809576031a8df82aa91899e5e6a5f  gcc/cobol/lang.opt.urls
  f31aff6048506a0a8bc29ddc67fc63e9  gcc/cobol/lexio.cc
! fd643b906a5a73de5b01896de3eeaad2  gcc/cobol/lexio.h
  fa4e5ef82dfcd5ab2a6fb5207600ffee  gcc/cobol/messages.cc
! 986f8a5bca4bde21fecacb6a43e02160  gcc/cobol/move.cc
! 90ee1a76a2826d8e1c83c74cca7c13d9  gcc/cobol/parse.y
! 8cbc52e2b546aa34f1c9f78bcefcf500  gcc/cobol/parse_ante.h
  07e2f8ea22b70968a03d9ddf07a64315  gcc/cobol/parse_util.h
! 4301054332396f794db543f5b6bc5195  gcc/cobol/scan.l
! ff991b8a3eac20d9e6a54b25c2137986  gcc/cobol/scan_ante.h
  0e56ecd630e8eb4c45ccc8b2af09fc4a  gcc/cobol/scan_post.h
  ee67526be0e3a05e98aa61ae737142ab  gcc/cobol/show_parse.h
  8a8a8f6e836dff7e452f9cd030542599  gcc/cobol/structs.cc
  015fac4a42a4bf03d101922bc6f68781  gcc/cobol/structs.h
! bb535488460777ab2e76e75b0e926004  gcc/cobol/symbols.cc
! 7271b8584341b45cda4c15f129556cbf  gcc/cobol/symbols.h
  9ae3a8594298e2cfc01f86deb9e13a99  gcc/cobol/symfind.cc
  e46c348276950beff20df278e4e041c8  gcc/cobol/token_names.h
  434f4899280e27d0717b2e56d5bf12f2  gcc/cobol/udf/stored-char-length.cbl
! 45a35241b90d6ef27cbf55089aef89ce  gcc/cobol/util.cc
  395c97f0b12382690815b0e1c1702ec4  gcc/cobol/util.h
  8eceaeb8e762ac925b791d2a5d2a6e16  gcc/collect-utils.cc
  ac937838bf0c954b723fba6b6a088b4c  gcc/collect-utils.h
--- 3432,3455 ----
  158e28d660a0db1859408e62eabf98fe  gcc/cobol/lang.opt
  fd4809576031a8df82aa91899e5e6a5f  gcc/cobol/lang.opt.urls
  f31aff6048506a0a8bc29ddc67fc63e9  gcc/cobol/lexio.cc
! 56e0c46fac0f18c44330a136da30d50a  gcc/cobol/lexio.h
  fa4e5ef82dfcd5ab2a6fb5207600ffee  gcc/cobol/messages.cc
! 521c0a77b7b81f9be9017fee31939e7a  gcc/cobol/move.cc
! 805f07ebf8554f7a6ae1e985632cda8d  gcc/cobol/parse.y
! 5a0425216209c37c0bc771c193ac84a4  gcc/cobol/parse_ante.h
  07e2f8ea22b70968a03d9ddf07a64315  gcc/cobol/parse_util.h
! 58c2617b5d2bf0bb12da0c7fa176a9af  gcc/cobol/scan.l
! 8cf22b0779fadf2d015455feca75ccd2  gcc/cobol/scan_ante.h
  0e56ecd630e8eb4c45ccc8b2af09fc4a  gcc/cobol/scan_post.h
  ee67526be0e3a05e98aa61ae737142ab  gcc/cobol/show_parse.h
  8a8a8f6e836dff7e452f9cd030542599  gcc/cobol/structs.cc
  015fac4a42a4bf03d101922bc6f68781  gcc/cobol/structs.h
! 0963594583c1dd20cdb4290e74b77839  gcc/cobol/symbols.cc
! 0073373dbb80d66737302941e57968b9  gcc/cobol/symbols.h
  9ae3a8594298e2cfc01f86deb9e13a99  gcc/cobol/symfind.cc
  e46c348276950beff20df278e4e041c8  gcc/cobol/token_names.h
  434f4899280e27d0717b2e56d5bf12f2  gcc/cobol/udf/stored-char-length.cbl
! deba629bd9be6bdbacefa4dd20a3ef6f  gcc/cobol/util.cc
  395c97f0b12382690815b0e1c1702ec4  gcc/cobol/util.h
  8eceaeb8e762ac925b791d2a5d2a6e16  gcc/collect-utils.cc
  ac937838bf0c954b723fba6b6a088b4c  gcc/collect-utils.h
*************** d48c86bc52a7b8ee38281d6069d3eb6a  gcc/co
*** 3461,3467 ****
  903401554d90de06743fb9a836e6a45b  gcc/combine-stack-adj.cc
  8b3e9ec255e00dd68f29f98fc66e092b  gcc/combine.cc
  9f2835a8fa18cfce2249127014eb7edd  gcc/common.md
! e0d78d8c58e48ddbf9bdc2d363485bf5  gcc/common.opt
  5f891fd92b2d5a16202d826d2511e3d1  gcc/common.opt.urls
  d3b28fb0d49a8d683dde6011400fd7e7  gcc/common/common-target-def.h
  93cf11d6a27d42f73799ae012d2f876e  gcc/common/common-target.def
--- 3461,3467 ----
  903401554d90de06743fb9a836e6a45b  gcc/combine-stack-adj.cc
  8b3e9ec255e00dd68f29f98fc66e092b  gcc/combine.cc
  9f2835a8fa18cfce2249127014eb7edd  gcc/common.md
! bfdfb20d3f5bb9d1af813c2365a1b97a  gcc/common.opt
  5f891fd92b2d5a16202d826d2511e3d1  gcc/common.opt.urls
  d3b28fb0d49a8d683dde6011400fd7e7  gcc/common/common-target-def.h
  93cf11d6a27d42f73799ae012d2f876e  gcc/common/common-target.def
*************** cc9e36047186f00a7f53705410412d69  gcc/co
*** 3534,3540 ****
  9e84c6833cdbd017472f9daa9ead80f6  gcc/config/aarch64/aarch64-acle-builtins.h
  9b6ffa67b7e7f7cc2348fa0dc728072e  gcc/config/aarch64/aarch64-arches.def
  c8a924cfcb693679febdcde3a0cc0809  gcc/config/aarch64/aarch64-builtin-pairs.def
! 4f65922e65d2e9a72b48707c6547c15b  gcc/config/aarch64/aarch64-builtins.cc
  a3507dcb83cc22f280935ae25197c481  gcc/config/aarch64/aarch64-builtins.h
  36db7b8469a291518753fb98894a6b15  gcc/config/aarch64/aarch64-c.cc
  5f567f76d6adf2e43af2f3a4704e87d6  gcc/config/aarch64/aarch64-coff.h
--- 3534,3540 ----
  9e84c6833cdbd017472f9daa9ead80f6  gcc/config/aarch64/aarch64-acle-builtins.h
  9b6ffa67b7e7f7cc2348fa0dc728072e  gcc/config/aarch64/aarch64-arches.def
  c8a924cfcb693679febdcde3a0cc0809  gcc/config/aarch64/aarch64-builtin-pairs.def
! d5fbe6e3af1b01608c4a3357c62eae72  gcc/config/aarch64/aarch64-builtins.cc
  a3507dcb83cc22f280935ae25197c481  gcc/config/aarch64/aarch64-builtins.h
  36db7b8469a291518753fb98894a6b15  gcc/config/aarch64/aarch64-c.cc
  5f567f76d6adf2e43af2f3a4704e87d6  gcc/config/aarch64/aarch64-coff.h
*************** b5673de84eb78885b56917c7b8b92e97  gcc/co
*** 3566,3572 ****
  bfa2432e1ec80f8de2e43f3f3ba8da0e  gcc/config/aarch64/aarch64-linux.h
  842fb07798922cfc4114312c092bd08f  gcc/config/aarch64/aarch64-modes.def
  ed695db844c2f7ccc7b0b2a95b037a7c  gcc/config/aarch64/aarch64-narrow-gp-writes.cc
! 593ed8dd234de53e39dff85783d13b54  gcc/config/aarch64/aarch64-neon-builtins-base.cc
  33c4b0a6314f1fa3c0558be828507499  gcc/config/aarch64/aarch64-neon-builtins-base.def
  602fef41baffd6cc8a9a75616fd23a2c  gcc/config/aarch64/aarch64-neon-builtins-base.h
  38e30e558555e42080b4f7d70fbae81d  gcc/config/aarch64/aarch64-neon-builtins-functions.h
--- 3566,3572 ----
  bfa2432e1ec80f8de2e43f3f3ba8da0e  gcc/config/aarch64/aarch64-linux.h
  842fb07798922cfc4114312c092bd08f  gcc/config/aarch64/aarch64-modes.def
  ed695db844c2f7ccc7b0b2a95b037a7c  gcc/config/aarch64/aarch64-narrow-gp-writes.cc
! c1bbf47a3a448ef387d0b557bcb3d68d  gcc/config/aarch64/aarch64-neon-builtins-base.cc
  33c4b0a6314f1fa3c0558be828507499  gcc/config/aarch64/aarch64-neon-builtins-base.def
  602fef41baffd6cc8a9a75616fd23a2c  gcc/config/aarch64/aarch64-neon-builtins-base.h
  38e30e558555e42080b4f7d70fbae81d  gcc/config/aarch64/aarch64-neon-builtins-functions.h
*************** a5319d4e7a44a8b96aeb7f8a96f660d6  gcc/co
*** 3607,3613 ****
  dec4c8fd03ac5636ba08d9523bee06be  gcc/config/aarch64/aarch64-tuning-enums.def
  3e678460d03287c5817595f99c59d4c5  gcc/config/aarch64/aarch64-tuning-flags.def
  0eec0dd3dbc5fa83349625d27ac091df  gcc/config/aarch64/aarch64-vxworks.h
! 77c46189114d99190105bb4cda0eec55  gcc/config/aarch64/aarch64.cc
  24361ad83b473030c9f81712a515898e  gcc/config/aarch64/aarch64.h
  148e9de02cbf0ec4e00830cbddf4d3e9  gcc/config/aarch64/aarch64.md
  dabea943ce1adc1cd1db5e4de971fbeb  gcc/config/aarch64/aarch64.opt
--- 3607,3613 ----
  dec4c8fd03ac5636ba08d9523bee06be  gcc/config/aarch64/aarch64-tuning-enums.def
  3e678460d03287c5817595f99c59d4c5  gcc/config/aarch64/aarch64-tuning-flags.def
  0eec0dd3dbc5fa83349625d27ac091df  gcc/config/aarch64/aarch64-vxworks.h
! 43e7a160635680b535453373c6e8d467  gcc/config/aarch64/aarch64.cc
  24361ad83b473030c9f81712a515898e  gcc/config/aarch64/aarch64.h
  148e9de02cbf0ec4e00830cbddf4d3e9  gcc/config/aarch64/aarch64.md
  dabea943ce1adc1cd1db5e4de971fbeb  gcc/config/aarch64/aarch64.opt
*************** a07ee362a4961e9d41cb0ab83553de74  gcc/co
*** 3690,3696 ****
  83cd5c97b8f09c9606ad9f2c50fb18a0  gcc/config/alpha/alpha-modes.def
  b4eac8c564e104cf3cc48269868be196  gcc/config/alpha/alpha-passes.def
  3fde351a6bc8386bb57921a1e5589ffa  gcc/config/alpha/alpha-protos.h
! 47882084eaa3c7296c579a554ef122c4  gcc/config/alpha/alpha.cc
  97ead278f191dc858083549f1b19f490  gcc/config/alpha/alpha.h
  785f504d1be6413dec066cb278f0c8ec  gcc/config/alpha/alpha.md
  9d7aba6e4e2821c0d801e5c6cba73763  gcc/config/alpha/alpha.opt
--- 3690,3696 ----
  83cd5c97b8f09c9606ad9f2c50fb18a0  gcc/config/alpha/alpha-modes.def
  b4eac8c564e104cf3cc48269868be196  gcc/config/alpha/alpha-passes.def
  3fde351a6bc8386bb57921a1e5589ffa  gcc/config/alpha/alpha-protos.h
! d0becac50e09c5f7352ae0a1daf599c0  gcc/config/alpha/alpha.cc
  97ead278f191dc858083549f1b19f490  gcc/config/alpha/alpha.h
  785f504d1be6413dec066cb278f0c8ec  gcc/config/alpha/alpha.md
  9d7aba6e4e2821c0d801e5c6cba73763  gcc/config/alpha/alpha.opt
*************** e8ba563b7eff9a7c1a380d760e1a30a9  gcc/co
*** 4037,4043 ****
  573bb1297b0b70aac60bf7462cd630fe  gcc/config/darwin-protos.h
  8e7a3be360635581116c45ad4ce9f11a  gcc/config/darwin-rust.cc
  cf8b9e265eb733c7c120218863142390  gcc/config/darwin-sections.def
! ff7718a3dbe11b4bc4c9a4b5988631f9  gcc/config/darwin.cc
  594950dcd1b1ff70cbd9a14952b78170  gcc/config/darwin.h
  148592c1bf513e56d281629f94b70d9b  gcc/config/darwin.opt
  fa92b7f7b8bd38472af4bfd5a8254310  gcc/config/darwin.opt.urls
--- 4037,4043 ----
  573bb1297b0b70aac60bf7462cd630fe  gcc/config/darwin-protos.h
  8e7a3be360635581116c45ad4ce9f11a  gcc/config/darwin-rust.cc
  cf8b9e265eb733c7c120218863142390  gcc/config/darwin-sections.def
! 94a60bf463b6bd791aa7d1ed234d5f33  gcc/config/darwin.cc
  594950dcd1b1ff70cbd9a14952b78170  gcc/config/darwin.h
  148592c1bf513e56d281629f94b70d9b  gcc/config/darwin.opt
  fa92b7f7b8bd38472af4bfd5a8254310  gcc/config/darwin.opt.urls
*************** be7f06e3ea032dfb39fcda012c812683  gcc/co
*** 4317,4323 ****
  3ca3efd35f47efb8789dc330b5b92a4f  gcc/config/i386/i386-c.cc
  a0261d6cc006fb86b99f338bdc94ae04  gcc/config/i386/i386-d.cc
  e9c7eebd4e344796f248c93990aa5166  gcc/config/i386/i386-d.h
! f603734f2788289d4295b88415952675  gcc/config/i386/i386-expand.cc
  386e1be7f608621b79970d4d036694f8  gcc/config/i386/i386-expand.h
  86a817ac900b29dc9a74d5dc0f8dd8c9  gcc/config/i386/i386-features.cc
  52056c666db06e99d6978e69f82ed68d  gcc/config/i386/i386-features.h
--- 4317,4323 ----
  3ca3efd35f47efb8789dc330b5b92a4f  gcc/config/i386/i386-c.cc
  a0261d6cc006fb86b99f338bdc94ae04  gcc/config/i386/i386-d.cc
  e9c7eebd4e344796f248c93990aa5166  gcc/config/i386/i386-d.h
! 1120e02276670ab695051830d8cca021  gcc/config/i386/i386-expand.cc
  386e1be7f608621b79970d4d036694f8  gcc/config/i386/i386-expand.h
  86a817ac900b29dc9a74d5dc0f8dd8c9  gcc/config/i386/i386-features.cc
  52056c666db06e99d6978e69f82ed68d  gcc/config/i386/i386-features.h
*************** cac2321ed2cc84062b566bd4fafb56f8  gcc/co
*** 4333,4341 ****
  5b778b3296ea91dab0ca82338ca6828d  gcc/config/i386/i386-rust-and-jit.inc
  91b8b50cba997aef17a61929b5b55a87  gcc/config/i386/i386-rust.cc
  25b3947a11eb9ca52892133ddb36f3f2  gcc/config/i386/i386-rust.h
! a955385bdf1330d8d931bc63fa40f6de  gcc/config/i386/i386.cc
  1cefac8b69ef88fdbd08891bdbd8e5fd  gcc/config/i386/i386.h
! c456681f4cdf9ca59fccca34af297000  gcc/config/i386/i386.md
  28453dc70fa94816b467e1fff313e0cc  gcc/config/i386/i386.opt
  a0b0d520aa60f8de67fdc462456c6510  gcc/config/i386/i386.opt.urls
  ec8782b40feb0fc958bf2d6974c70f12  gcc/config/i386/i386elf.h
--- 4333,4341 ----
  5b778b3296ea91dab0ca82338ca6828d  gcc/config/i386/i386-rust-and-jit.inc
  91b8b50cba997aef17a61929b5b55a87  gcc/config/i386/i386-rust.cc
  25b3947a11eb9ca52892133ddb36f3f2  gcc/config/i386/i386-rust.h
! 15dd5ad2c787de0f99e62d47f99737f2  gcc/config/i386/i386.cc
  1cefac8b69ef88fdbd08891bdbd8e5fd  gcc/config/i386/i386.h
! 59b39e6a170c164e696034f84b19b45a  gcc/config/i386/i386.md
  28453dc70fa94816b467e1fff313e0cc  gcc/config/i386/i386.opt
  a0b0d520aa60f8de67fdc462456c6510  gcc/config/i386/i386.opt.urls
  ec8782b40feb0fc958bf2d6974c70f12  gcc/config/i386/i386elf.h
*************** db114ac74c87743a142214fddaad2687  gcc/co
*** 4397,4406 ****
  92210572b9f9f6481e4649a42d9ac3b0  gcc/config/i386/sm4intrin.h
  5298b8261e081859bbf068b710158e8f  gcc/config/i386/smmintrin.h
  592f748733487ebc51326f6cbf8f1f54  gcc/config/i386/sol2.h
! 6943c43e3488475c14c00d6c91b46922  gcc/config/i386/sse.md
  52e0114cb9ab8d55aac3c17d06657d71  gcc/config/i386/ssemath.h
  8a6ab9e02097018bc9f1c2b347d29cfa  gcc/config/i386/stringop.def
! a626b4e6cd3e15f4e9d5c769b6391243  gcc/config/i386/subst.md
  945c6888d50080573fad6f6c8969b67f  gcc/config/i386/sym-mingw32.cc
  306c9fee2c5164be94b166437a67c826  gcc/config/i386/sync.md
  28dcdee9d85a7ed38cdf902b10992995  gcc/config/i386/sysv4.h
--- 4397,4406 ----
  92210572b9f9f6481e4649a42d9ac3b0  gcc/config/i386/sm4intrin.h
  5298b8261e081859bbf068b710158e8f  gcc/config/i386/smmintrin.h
  592f748733487ebc51326f6cbf8f1f54  gcc/config/i386/sol2.h
! 70b3206451854c5d536fdba2f6065609  gcc/config/i386/sse.md
  52e0114cb9ab8d55aac3c17d06657d71  gcc/config/i386/ssemath.h
  8a6ab9e02097018bc9f1c2b347d29cfa  gcc/config/i386/stringop.def
! 691c3ec70751168b367fde007d620594  gcc/config/i386/subst.md
  945c6888d50080573fad6f6c8969b67f  gcc/config/i386/sym-mingw32.cc
  306c9fee2c5164be94b166437a67c826  gcc/config/i386/sync.md
  28dcdee9d85a7ed38cdf902b10992995  gcc/config/i386/sysv4.h
*************** ad66539c6bf3f1a1fe18304e126ac7fc  gcc/co
*** 4574,4583 ****
  b2d82445f8361f64ceed1232349e5595  gcc/config/loongarch/loongarch.md
  62f9bea81246c3dac622d969dabefc1b  gcc/config/loongarch/loongarch.opt
  387011bb9dde5e25493f3602b2fd17bb  gcc/config/loongarch/loongarch.opt.urls
! 0458c59163aaa92cd0aa1ca123aa25f6  gcc/config/loongarch/lsx.md
  c7466e5dbde45f48269999a0ee23e193  gcc/config/loongarch/lsxintrin.h
  fe51977e0ac69b0829287b1c8d3f5060  gcc/config/loongarch/musl.h
! e78139f4ba3ac368d8ff57fdf2b8f899  gcc/config/loongarch/predicates.md
  6f3ee35e09ae9ca83f475ba84e3d294a  gcc/config/loongarch/simd.md
  8014a0ac6f61e6fb13b3189724a36103  gcc/config/loongarch/sync.md
  70d4362e3209c6d2b4d8ad4c79d65a4c  gcc/config/loongarch/t-linux
--- 4574,4583 ----
  b2d82445f8361f64ceed1232349e5595  gcc/config/loongarch/loongarch.md
  62f9bea81246c3dac622d969dabefc1b  gcc/config/loongarch/loongarch.opt
  387011bb9dde5e25493f3602b2fd17bb  gcc/config/loongarch/loongarch.opt.urls
! 0a2135d2b4c235cf8446e624e5d02842  gcc/config/loongarch/lsx.md
  c7466e5dbde45f48269999a0ee23e193  gcc/config/loongarch/lsxintrin.h
  fe51977e0ac69b0829287b1c8d3f5060  gcc/config/loongarch/musl.h
! 2c277f01b22a438cced746611bcf3b23  gcc/config/loongarch/predicates.md
  6f3ee35e09ae9ca83f475ba84e3d294a  gcc/config/loongarch/simd.md
  8014a0ac6f61e6fb13b3189724a36103  gcc/config/loongarch/sync.md
  70d4362e3209c6d2b4d8ad4c79d65a4c  gcc/config/loongarch/t-linux
*************** a0561d5189d936a2b3f76e586c0a2aa1  gcc/co
*** 4736,4744 ****
  345d90586064a6b98108ed27f48d4599  gcc/config/mips/mips-tables.opt
  216c87627424d946f6245f736be7b5f1  gcc/config/mips/mips-tables.opt.urls
  a2fc481fb758826736ca9c99df7770d3  gcc/config/mips/mips.cc
! 2289b53a716433aefbf6ce34085efc0d  gcc/config/mips/mips.h
  49c4faf7412dfa6a56c131062bfb11b4  gcc/config/mips/mips.md
! 9e1d6da6faef49b794654a82c276f8d5  gcc/config/mips/mips.opt
  e27efa10159c17e2479da7d6f900b631  gcc/config/mips/mips.opt.urls
  79c849472a0f91bdf81cbd76d4f9d348  gcc/config/mips/msa.h
  1f178b192f9ea0c39bef7f4b708fcb0f  gcc/config/mips/mti-elf.h
--- 4736,4744 ----
  345d90586064a6b98108ed27f48d4599  gcc/config/mips/mips-tables.opt
  216c87627424d946f6245f736be7b5f1  gcc/config/mips/mips-tables.opt.urls
  a2fc481fb758826736ca9c99df7770d3  gcc/config/mips/mips.cc
! 5341095aad822bd0c82d793e8fcd163a  gcc/config/mips/mips.h
  49c4faf7412dfa6a56c131062bfb11b4  gcc/config/mips/mips.md
! 09db4f2e8c03333595305c1b1c1c0fc7  gcc/config/mips/mips.opt
  e27efa10159c17e2479da7d6f900b631  gcc/config/mips/mips.opt.urls
  79c849472a0f91bdf81cbd76d4f9d348  gcc/config/mips/msa.h
  1f178b192f9ea0c39bef7f4b708fcb0f  gcc/config/mips/mti-elf.h
*************** c09acceb380f58ddb795ee3e973945d7  gcc/co
*** 4883,4889 ****
  635034f05b606717088ebde7e7fcffba  gcc/config/nds32/t-mlibs
  9fdef8988ba374628755adbd677561f5  gcc/config/nds32/t-nds32
  12a341262eef7908690ee7f628533457  gcc/config/netbsd-d.cc
! ec602c621917d78fc66a32f75dba4a6d  gcc/config/netbsd-elf.h
  b9e847901fb2e435797aeade3fb92c9f  gcc/config/netbsd-elf.opt
  1a1e29e72d811e31228d3a71e808ff60  gcc/config/netbsd-elf.opt.urls
  65050177df2e1144e4254e8d21aeee8e  gcc/config/netbsd-protos.h
--- 4883,4889 ----
  635034f05b606717088ebde7e7fcffba  gcc/config/nds32/t-mlibs
  9fdef8988ba374628755adbd677561f5  gcc/config/nds32/t-nds32
  12a341262eef7908690ee7f628533457  gcc/config/netbsd-d.cc
! 427ef42f796f38b9e28a68aa93e793bd  gcc/config/netbsd-elf.h
  b9e847901fb2e435797aeade3fb92c9f  gcc/config/netbsd-elf.opt
  1a1e29e72d811e31228d3a71e808ff60  gcc/config/netbsd-elf.opt.urls
  65050177df2e1144e4254e8d21aeee8e  gcc/config/netbsd-protos.h
*************** bcda2f5a4a2728d5f6bc53cbbd26f90c  gcc/co
*** 5058,5064 ****
  5108deda32a010f8df8d518a2417ba81  gcc/config/riscv/riscv-builtins.cc
  5cb39713c38f481ef65328ccacfc067e  gcc/config/riscv/riscv-c.cc
  33dd09c63fb051a37d26d97469c451d9  gcc/config/riscv/riscv-cmo.def
! 570f69cae95afa159f918a800e704f0a  gcc/config/riscv/riscv-cores.def
  165a5d0020971e2616fa7c9198c56338  gcc/config/riscv/riscv-d.cc
  c5d537324bd78e2ade1cf59d04fc1f54  gcc/config/riscv/riscv-d.h
  289aa3beac20448eac0ca053c2652b37  gcc/config/riscv/riscv-ext-andes.def
--- 5058,5064 ----
  5108deda32a010f8df8d518a2417ba81  gcc/config/riscv/riscv-builtins.cc
  5cb39713c38f481ef65328ccacfc067e  gcc/config/riscv/riscv-c.cc
  33dd09c63fb051a37d26d97469c451d9  gcc/config/riscv/riscv-cmo.def
! 83282c65cc3510d843a1c4aeb18a7a3c  gcc/config/riscv/riscv-cores.def
  165a5d0020971e2616fa7c9198c56338  gcc/config/riscv/riscv-d.cc
  c5d537324bd78e2ade1cf59d04fc1f54  gcc/config/riscv/riscv-d.h
  289aa3beac20448eac0ca053c2652b37  gcc/config/riscv/riscv-ext-andes.def
*************** bdea5a038db730633426d4ab8652a37c  gcc/co
*** 5068,5075 ****
  0ef72b5510a7c21bd15a0d6f3660c36a  gcc/config/riscv/riscv-ext-spacemit.def
  0d561344b80507521c8e686db17fd207  gcc/config/riscv/riscv-ext-thead.def
  ca88603cd61372d621963af0d282a93b  gcc/config/riscv/riscv-ext-ventana.def
! 35cc6091445e5818478b68bce82225ed  gcc/config/riscv/riscv-ext.def
! 467a60458b08615441009dde3c24f5f8  gcc/config/riscv/riscv-ext.opt
  8463b74f5d66e1a7f0d58a7ae087d8ad  gcc/config/riscv/riscv-ext.opt.urls
  055aff307d7b174891aad40963ef1a9f  gcc/config/riscv/riscv-feature-bits.h
  70f0932c77decbbcedce26f2f38b3a3e  gcc/config/riscv/riscv-ftypes.def
--- 5068,5075 ----
  0ef72b5510a7c21bd15a0d6f3660c36a  gcc/config/riscv/riscv-ext-spacemit.def
  0d561344b80507521c8e686db17fd207  gcc/config/riscv/riscv-ext-thead.def
  ca88603cd61372d621963af0d282a93b  gcc/config/riscv/riscv-ext-ventana.def
! f6462fc714b7f47c713f8470774ed57a  gcc/config/riscv/riscv-ext.def
! cfaaa2c0c4096cbce339014e85e7c3ea  gcc/config/riscv/riscv-ext.opt
  8463b74f5d66e1a7f0d58a7ae087d8ad  gcc/config/riscv/riscv-ext.opt.urls
  055aff307d7b174891aad40963ef1a9f  gcc/config/riscv/riscv-feature-bits.h
  70f0932c77decbbcedce26f2f38b3a3e  gcc/config/riscv/riscv-ftypes.def
*************** f345cbe9d8c50068508e75fe59e6b4a6  gcc/co
*** 5079,5092 ****
  7580ff2b6ee1a7e6e08368bacae2ac95  gcc/config/riscv/riscv-opts.h
  b8f6d36a9d7d3ef28a80c20bec990411  gcc/config/riscv/riscv-passes.def
  e1ac1647825642c1e551b9a174630bd6  gcc/config/riscv/riscv-profiles.def
! 25eea0c9160bfc045c58575a0d439b91  gcc/config/riscv/riscv-protos.h
  2b6774d7dd7980d9eb3f4f24ed1b3e45  gcc/config/riscv/riscv-scalar-crypto.def
  01798b6988317cc1d7a76908a68f458a  gcc/config/riscv/riscv-selftests.cc
  41d585e61cee0deacc33bd07c93e79e2  gcc/config/riscv/riscv-shorten-memrefs.cc
  1ebe40e418ab6054a3ea000381c1c959  gcc/config/riscv/riscv-sr.cc
  0289d9345d2dc3266b3b689ac0528963  gcc/config/riscv/riscv-string.cc
  5f2c2bf7c94b8cb13fc50b55194c991e  gcc/config/riscv/riscv-subset.h
! 1058561a06280d28aa26974102f3b818  gcc/config/riscv/riscv-target-attr.cc
  0610980060d5d53133c6118454b75be5  gcc/config/riscv/riscv-v.cc
  34f62419062663f91765f9f50c8f0b62  gcc/config/riscv/riscv-v.h
  9eb2acff4a0e6907ab4fe749d3b1fc7f  gcc/config/riscv/riscv-vect-permconst.cc
--- 5079,5092 ----
  7580ff2b6ee1a7e6e08368bacae2ac95  gcc/config/riscv/riscv-opts.h
  b8f6d36a9d7d3ef28a80c20bec990411  gcc/config/riscv/riscv-passes.def
  e1ac1647825642c1e551b9a174630bd6  gcc/config/riscv/riscv-profiles.def
! 5e420d50214581304a78e8d42a7060f2  gcc/config/riscv/riscv-protos.h
  2b6774d7dd7980d9eb3f4f24ed1b3e45  gcc/config/riscv/riscv-scalar-crypto.def
  01798b6988317cc1d7a76908a68f458a  gcc/config/riscv/riscv-selftests.cc
  41d585e61cee0deacc33bd07c93e79e2  gcc/config/riscv/riscv-shorten-memrefs.cc
  1ebe40e418ab6054a3ea000381c1c959  gcc/config/riscv/riscv-sr.cc
  0289d9345d2dc3266b3b689ac0528963  gcc/config/riscv/riscv-string.cc
  5f2c2bf7c94b8cb13fc50b55194c991e  gcc/config/riscv/riscv-subset.h
! 8c562399dc63a0d58647b21f53d09499  gcc/config/riscv/riscv-target-attr.cc
  0610980060d5d53133c6118454b75be5  gcc/config/riscv/riscv-v.cc
  34f62419062663f91765f9f50c8f0b62  gcc/config/riscv/riscv-v.h
  9eb2acff4a0e6907ab4fe749d3b1fc7f  gcc/config/riscv/riscv-vect-permconst.cc
*************** ee8122b7c30f11ad5dc682dad7cf7f55  gcc/co
*** 5105,5113 ****
  3205f1e7859c9ef2f9de42d862780b0a  gcc/config/riscv/riscv-vsetvl.cc
  142fb9988d1433586e8fa0e3b072f655  gcc/config/riscv/riscv-vsetvl.def
  d87a1f40dfc9d93ed1ee9eb9243e12e3  gcc/config/riscv/riscv-zicfilp.cc
! b5971928eebdc13bab03f56188957d3c  gcc/config/riscv/riscv.cc
! 7f80fe51de5bc9c7d40b9e74f686c18c  gcc/config/riscv/riscv.h
! 9e0ab67b984fa29ecc58f66fef197269  gcc/config/riscv/riscv.md
  c5d85fc587ed7ba9d844efc0c8436373  gcc/config/riscv/riscv.opt
  07987470dd445a1552645f6c12c92c20  gcc/config/riscv/riscv.opt.urls
  68c8996d7ac73df46c6c1d49d8839ee0  gcc/config/riscv/riscv_bitmanip.h
--- 5105,5113 ----
  3205f1e7859c9ef2f9de42d862780b0a  gcc/config/riscv/riscv-vsetvl.cc
  142fb9988d1433586e8fa0e3b072f655  gcc/config/riscv/riscv-vsetvl.def
  d87a1f40dfc9d93ed1ee9eb9243e12e3  gcc/config/riscv/riscv-zicfilp.cc
! 342f67e892d294dca29cdb59cde6b179  gcc/config/riscv/riscv.cc
! e03f5d27fdc607980d9b9e77410f003b  gcc/config/riscv/riscv.h
! 6d915d6f7b58738a57b2bac63406b31d  gcc/config/riscv/riscv.md
  c5d85fc587ed7ba9d844efc0c8436373  gcc/config/riscv/riscv.opt
  07987470dd445a1552645f6c12c92c20  gcc/config/riscv/riscv.opt.urls
  68c8996d7ac73df46c6c1d49d8839ee0  gcc/config/riscv/riscv_bitmanip.h
*************** fe202105dd9e81b9ce8fdcc11d52c294  gcc/co
*** 5144,5154 ****
  dcbac9d3c6831ff1cd18effca9c7bb28  gcc/config/riscv/vector-bfloat16.md
  d321bd9f102b0926d5d2c56c36ad6853  gcc/config/riscv/vector-crypto.md
  eeff11b93491fb7c669f458a75ceb193  gcc/config/riscv/vector-iterators.md
! 9fcbe0829c24d246bfe02092aa89c3d4  gcc/config/riscv/vector.md
  18d213c106fe52eebc74017d5ff892ce  gcc/config/riscv/xiangshan.md
  a398dfa970d2d1459a986ec657c751a3  gcc/config/riscv/xt-c908.md
  39ba96197510d4ac114a827d7ffbf806  gcc/config/riscv/zc.md
! cffed39482e9cc8d2b89114670e6e6fd  gcc/config/riscv/zicond.md
  d8e5244a78b41071cc1e0cafc3180db3  gcc/config/rl78/constraints.md
  7b7c876420bfc606ea2233644fb6cf39  gcc/config/rl78/predicates.md
  c90cca4dab29ddc6dc57edf9338ad721  gcc/config/rl78/rl78-c.cc
--- 5144,5154 ----
  dcbac9d3c6831ff1cd18effca9c7bb28  gcc/config/riscv/vector-bfloat16.md
  d321bd9f102b0926d5d2c56c36ad6853  gcc/config/riscv/vector-crypto.md
  eeff11b93491fb7c669f458a75ceb193  gcc/config/riscv/vector-iterators.md
! 51ce772a386fbe6cc9dcf917dd9ec47f  gcc/config/riscv/vector.md
  18d213c106fe52eebc74017d5ff892ce  gcc/config/riscv/xiangshan.md
  a398dfa970d2d1459a986ec657c751a3  gcc/config/riscv/xt-c908.md
  39ba96197510d4ac114a827d7ffbf806  gcc/config/riscv/zc.md
! 25940666a6a01fe68b5310cc749cc691  gcc/config/riscv/zicond.md
  d8e5244a78b41071cc1e0cafc3180db3  gcc/config/rl78/constraints.md
  7b7c876420bfc606ea2233644fb6cf39  gcc/config/rl78/predicates.md
  c90cca4dab29ddc6dc57edf9338ad721  gcc/config/rl78/rl78-c.cc
*************** db237fc1717a4075e7b9480205a32fd5  gcc/co
*** 5253,5270 ****
  848a5a527b1584089ecf12aae20b7ca6  gcc/config/rs6000/predicates.md
  63ccc96ff2cef948c080eac4455d02b1  gcc/config/rs6000/rbtree.cc
  8ece9ca8167f5056fa411488a97c6131  gcc/config/rs6000/rbtree.h
! 5a8a620d69be5ade28e15be87ec36b9a  gcc/config/rs6000/rs6000-builtin.cc
  54b2f5abbb368e1596fd95a26bf043da  gcc/config/rs6000/rs6000-builtins.def
  bb710aa9f6e98d46357a2a10104dda23  gcc/config/rs6000/rs6000-c.cc
! f9e94bf7a9305993de9ddd700311aaaa  gcc/config/rs6000/rs6000-call.cc
  52e2359f2b2a12d4d3f78e6f22da4e2c  gcc/config/rs6000/rs6000-cpus.def
  7b860836fdc33cdfdd29f6348a553096  gcc/config/rs6000/rs6000-d.cc
  1ac6ae1e7d6d83d76667769f7166b9a7  gcc/config/rs6000/rs6000-d.h
! b1bbe3e57fef362260e8c8ccae80c4ba  gcc/config/rs6000/rs6000-gen-builtins.cc
  c5022a5818a013ca208704a71fbd6d48  gcc/config/rs6000/rs6000-internal.h
  68da03c0d0c1dfafebf4ba706e6d3ff9  gcc/config/rs6000/rs6000-linux.cc
  cd5e92a42bcde77a84b9fbe9e0a3238b  gcc/config/rs6000/rs6000-logue.cc
! 108998dcf0201ccd3e147d71251ca9f6  gcc/config/rs6000/rs6000-modes.def
  e6f2820356a7ee18c353376ab3490fb6  gcc/config/rs6000/rs6000-opts.h
  59e66713bc58dd30d84f7e1a407c892b  gcc/config/rs6000/rs6000-overload.def
  857d6101dc080e798b79af7bdbacfa9d  gcc/config/rs6000/rs6000-p8swap.cc
--- 5253,5270 ----
  848a5a527b1584089ecf12aae20b7ca6  gcc/config/rs6000/predicates.md
  63ccc96ff2cef948c080eac4455d02b1  gcc/config/rs6000/rbtree.cc
  8ece9ca8167f5056fa411488a97c6131  gcc/config/rs6000/rbtree.h
! 5279368eff8ce980c92e914e51d417bf  gcc/config/rs6000/rs6000-builtin.cc
  54b2f5abbb368e1596fd95a26bf043da  gcc/config/rs6000/rs6000-builtins.def
  bb710aa9f6e98d46357a2a10104dda23  gcc/config/rs6000/rs6000-c.cc
! 750a00046cfa4dae2ffa5fb25e5c3d92  gcc/config/rs6000/rs6000-call.cc
  52e2359f2b2a12d4d3f78e6f22da4e2c  gcc/config/rs6000/rs6000-cpus.def
  7b860836fdc33cdfdd29f6348a553096  gcc/config/rs6000/rs6000-d.cc
  1ac6ae1e7d6d83d76667769f7166b9a7  gcc/config/rs6000/rs6000-d.h
! 33aadbc7a022914894554e071177e0ce  gcc/config/rs6000/rs6000-gen-builtins.cc
  c5022a5818a013ca208704a71fbd6d48  gcc/config/rs6000/rs6000-internal.h
  68da03c0d0c1dfafebf4ba706e6d3ff9  gcc/config/rs6000/rs6000-linux.cc
  cd5e92a42bcde77a84b9fbe9e0a3238b  gcc/config/rs6000/rs6000-logue.cc
! 695007bb43118f89d9fb34a01a8e3f5a  gcc/config/rs6000/rs6000-modes.def
  e6f2820356a7ee18c353376ab3490fb6  gcc/config/rs6000/rs6000-opts.h
  59e66713bc58dd30d84f7e1a407c892b  gcc/config/rs6000/rs6000-overload.def
  857d6101dc080e798b79af7bdbacfa9d  gcc/config/rs6000/rs6000-p8swap.cc
*************** b8ba776d5b2f46cbc54fa5140207dd1f  gcc/co
*** 5521,5527 ****
  d798d80089e236fd6882e69f3253e858  gcc/config/t-pnt16-warn
  501751f2be56698ed1c9cf18358b67ac  gcc/config/t-rtems
  51d3678acb41d4448cc332f7a8e8cb2e  gcc/config/t-slibgcc
! 35cce1d0b4fd0b2de62f5add26f26272  gcc/config/t-sol2
  94b3e10150e75899d2fc1410cf218e3f  gcc/config/t-sysroot-suffix
  6f78c5decbfb4b465e7c289b60109023  gcc/config/t-uclibc
  21160c2abe49034807aa8c1d3ac4de10  gcc/config/t-vxworks
--- 5521,5527 ----
  d798d80089e236fd6882e69f3253e858  gcc/config/t-pnt16-warn
  501751f2be56698ed1c9cf18358b67ac  gcc/config/t-rtems
  51d3678acb41d4448cc332f7a8e8cb2e  gcc/config/t-slibgcc
! d1e8cf9d1101e3b4aecf992749ff2b4c  gcc/config/t-sol2
  94b3e10150e75899d2fc1410cf218e3f  gcc/config/t-sysroot-suffix
  6f78c5decbfb4b465e7c289b60109023  gcc/config/t-uclibc
  21160c2abe49034807aa8c1d3ac4de10  gcc/config/t-vxworks
*************** c5ad0142a191862e3e81ecd3573754b3  gcc/co
*** 5653,5659 ****
  a424415c72a544d25e6518e1cf699300  gcc/coroutine-passes.cc
  11fc0e33834de003c7fdd80427589041  gcc/coverage.cc
  d27317cee558d7c78afbdb6529e36649  gcc/coverage.h
! 2ad492f22f05c20f03f596d65a433e60  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
--- 5653,5659 ----
  a424415c72a544d25e6518e1cf699300  gcc/coroutine-passes.cc
  11fc0e33834de003c7fdd80427589041  gcc/coverage.cc
  d27317cee558d7c78afbdb6529e36649  gcc/coverage.h
! 2461ea78a402874dc47b2afda5daa925  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
*************** d9b8a76735523ab737e8778b90397d97  gcc/cp
*** 5696,5702 ****
  d9da20cf73d3f0c05b969e36b5591492  gcc/cp/class.cc
  e51f295e858583af5f9cf88b9530adf7  gcc/cp/config-lang.in
  6e0f4e68b81b284c5687dfc53ff47f10  gcc/cp/constexpr.cc
! 44493039c741da0cbddb5a8d6d93701a  gcc/cp/constraint.cc
  51c78420b3d7944f7ee182eb3f9c7175  gcc/cp/contracts.cc
  e77a681f560f3e9500f126febdc67ef6  gcc/cp/contracts.h
  37c0253792f8c7107a6beca6e8411c09  gcc/cp/coroutines.cc
--- 5696,5702 ----
  d9da20cf73d3f0c05b969e36b5591492  gcc/cp/class.cc
  e51f295e858583af5f9cf88b9530adf7  gcc/cp/config-lang.in
  6e0f4e68b81b284c5687dfc53ff47f10  gcc/cp/constexpr.cc
! 8496faa175546e14a318d75acad50407  gcc/cp/constraint.cc
  51c78420b3d7944f7ee182eb3f9c7175  gcc/cp/contracts.cc
  e77a681f560f3e9500f126febdc67ef6  gcc/cp/contracts.h
  37c0253792f8c7107a6beca6e8411c09  gcc/cp/coroutines.cc
*************** e77a681f560f3e9500f126febdc67ef6  gcc/cp
*** 5704,5724 ****
  58f3fe93aaf5a16193a551b6f53ec13a  gcc/cp/cp-gimplify.cc
  5deb6a9935508ca534b8ee8e84b2a1cc  gcc/cp/cp-lang.cc
  1a3e309babdfdd0ff5e03d09e6b5870d  gcc/cp/cp-name-hint.h
! eba8d8a1725223519fba5d4d69afd5c9  gcc/cp/cp-objcp-common.cc
  a2555a7340b152d673783c07a3d102bb  gcc/cp/cp-objcp-common.h
  ffdd05782c93c0567486bb7ed7eee65a  gcc/cp/cp-trait.def
! 461c8f732438052ea1ab7eabb72f0604  gcc/cp/cp-tree.def
! 49fcc9a279c443bdea0cd801e96ca7bd  gcc/cp/cp-tree.h
  13d136a72a2aff80be380103d1c27ed5  gcc/cp/cp-ubsan.cc
! 9f3892d82a5fde05b0ab9fd164ad7177  gcc/cp/cvt.cc
! f067718cf3d629084d8347c4e017afd4  gcc/cp/cxx-pretty-print.cc
  1d04eec9859d91686ca501e9221f30ac  gcc/cp/cxx-pretty-print.h
  82a41d873e1c90067158c89e6c1bd4bb  gcc/cp/cxxapi-data.csv
! eaf6a199c4c228700e3fb0575e87019b  gcc/cp/decl.cc
  6b0c9433f7d3f129a44b59d54babb4eb  gcc/cp/decl.h
! f7fd6f8b2943baf2a508fd07e569c802  gcc/cp/decl2.cc
  12ccd5244973d74a0536adf58261b416  gcc/cp/dump.cc
! e5cd674ba89cede50da369b84db82527  gcc/cp/error.cc
  1e7989dfae00ab31c61944201f5e19c7  gcc/cp/except.cc
  f4c33376dcbcbb2b49c9a11ec2911ad9  gcc/cp/expr.cc
  447ddbe59eba62b9a389b9ba11701cfc  gcc/cp/friend.cc
--- 5704,5724 ----
  58f3fe93aaf5a16193a551b6f53ec13a  gcc/cp/cp-gimplify.cc
  5deb6a9935508ca534b8ee8e84b2a1cc  gcc/cp/cp-lang.cc
  1a3e309babdfdd0ff5e03d09e6b5870d  gcc/cp/cp-name-hint.h
! 47b0e3808d318099eb4b8cc69a06716d  gcc/cp/cp-objcp-common.cc
  a2555a7340b152d673783c07a3d102bb  gcc/cp/cp-objcp-common.h
  ffdd05782c93c0567486bb7ed7eee65a  gcc/cp/cp-trait.def
! 4725eb6367561f7e622a8578f48db129  gcc/cp/cp-tree.def
! 6917682840512ba3455189aeb624b9fb  gcc/cp/cp-tree.h
  13d136a72a2aff80be380103d1c27ed5  gcc/cp/cp-ubsan.cc
! a0f918cbba9980c764efb9c5f650c858  gcc/cp/cvt.cc
! 6f71556aa8917a18188d98294711bc59  gcc/cp/cxx-pretty-print.cc
  1d04eec9859d91686ca501e9221f30ac  gcc/cp/cxx-pretty-print.h
  82a41d873e1c90067158c89e6c1bd4bb  gcc/cp/cxxapi-data.csv
! 73fef87dbf172e1bd70ed1ba553fbc39  gcc/cp/decl.cc
  6b0c9433f7d3f129a44b59d54babb4eb  gcc/cp/decl.h
! c651022b1bd680c771d460c372f20a43  gcc/cp/decl2.cc
  12ccd5244973d74a0536adf58261b416  gcc/cp/dump.cc
! a56513b3ec8ab8361f86a9c02aad6755  gcc/cp/error.cc
  1e7989dfae00ab31c61944201f5e19c7  gcc/cp/except.cc
  f4c33376dcbcbb2b49c9a11ec2911ad9  gcc/cp/expr.cc
  447ddbe59eba62b9a389b9ba11701cfc  gcc/cp/friend.cc
*************** fcac46fa653b5161f99b9e17df91bbb5  gcc/cp
*** 5729,5757 ****
  bc388fb8287f2de7cdf4d78eb8f5d998  gcc/cp/lang-specs.h
  ae7c1d49c3ae546f4a980c3ebc22690d  gcc/cp/lex.cc
  e4ccdd9cbe95dde4cce27394a7613dd9  gcc/cp/logic.cc
! 13443985f1c81bab02f845e1e2489915  gcc/cp/mangle.cc
  3d68343c4a9d614bb00b91ad53e79a0b  gcc/cp/mapper-client.cc
  27465babcaf6195d4f438ed36bdd6aff  gcc/cp/mapper-client.h
  40847be23013a3a5aba415a0a2002926  gcc/cp/mapper-resolver.cc
  54609938d396496c7c5bf3f4cbfddaec  gcc/cp/metafns.gperf
  04fe5bec0bf79fcb3680aec9913ebc29  gcc/cp/metafns.h
  0ca1fb4de15164af98fd16eefefa86de  gcc/cp/method.cc
! b0a7ffd10e472403f69ba8cfcc548b3a  gcc/cp/module.cc
  36a03818ce45c595866cc280493ac112  gcc/cp/name-lookup.cc
  8448a5bd06f68228b8367e5fcdf57f98  gcc/cp/name-lookup.h
  54cd670407c3fc4f1778f1561e89ae99  gcc/cp/operators.def
  9efebf39da56d681d4405dfb9e55e3f5  gcc/cp/optimize.cc
! 6a1279fbf114de35c674ab4991264397  gcc/cp/parser.cc
  fbc41b26ea2a336d3636c9d9c565d845  gcc/cp/parser.h
! 36e162ab0a1ef1908cbd8ca613b41e2a  gcc/cp/pt.cc
  25322928eaff39cf167372554c639e02  gcc/cp/ptree.cc
  814a85a75acd58625e24f47397fd0add  gcc/cp/reflect.cc
! dca106058e0bd214fb0efec9d4916ee7  gcc/cp/rtti.cc
  e6a800b8f2f93cd8ed05ee026f824eca  gcc/cp/search.cc
  917004c32b3fee2af144e3dc23e14396  gcc/cp/semantics.cc
  64c36b2ea66c9f8f477b19d24e06a2cb  gcc/cp/std-name-hint.gperf
  15cc409f13a8952feb90e94d99ecefa2  gcc/cp/std-name-hint.h
! 025b52f0214eacf0af0a8e82fdd29349  gcc/cp/tree.cc
  01e9a381e6fcf3d016d0170ee0ad71d7  gcc/cp/type-utils.h
  f8acce2d62b5de5f6c73b511ce3dcf6e  gcc/cp/typeck.cc
  977a0037d150893837512a88f03fbdad  gcc/cp/typeck2.cc
--- 5729,5757 ----
  bc388fb8287f2de7cdf4d78eb8f5d998  gcc/cp/lang-specs.h
  ae7c1d49c3ae546f4a980c3ebc22690d  gcc/cp/lex.cc
  e4ccdd9cbe95dde4cce27394a7613dd9  gcc/cp/logic.cc
! 5cd386ad8c14d9fa4aac9eb582d197bc  gcc/cp/mangle.cc
  3d68343c4a9d614bb00b91ad53e79a0b  gcc/cp/mapper-client.cc
  27465babcaf6195d4f438ed36bdd6aff  gcc/cp/mapper-client.h
  40847be23013a3a5aba415a0a2002926  gcc/cp/mapper-resolver.cc
  54609938d396496c7c5bf3f4cbfddaec  gcc/cp/metafns.gperf
  04fe5bec0bf79fcb3680aec9913ebc29  gcc/cp/metafns.h
  0ca1fb4de15164af98fd16eefefa86de  gcc/cp/method.cc
! da425089d2ab919c085a00b23a0d148d  gcc/cp/module.cc
  36a03818ce45c595866cc280493ac112  gcc/cp/name-lookup.cc
  8448a5bd06f68228b8367e5fcdf57f98  gcc/cp/name-lookup.h
  54cd670407c3fc4f1778f1561e89ae99  gcc/cp/operators.def
  9efebf39da56d681d4405dfb9e55e3f5  gcc/cp/optimize.cc
! 53d794c0aee7901e9f1f8dfc4a555c6d  gcc/cp/parser.cc
  fbc41b26ea2a336d3636c9d9c565d845  gcc/cp/parser.h
! 7fe997ab39bb3e344b762eb7f749a063  gcc/cp/pt.cc
  25322928eaff39cf167372554c639e02  gcc/cp/ptree.cc
  814a85a75acd58625e24f47397fd0add  gcc/cp/reflect.cc
! 6b0fbfc0125649d898d07031625ff258  gcc/cp/rtti.cc
  e6a800b8f2f93cd8ed05ee026f824eca  gcc/cp/search.cc
  917004c32b3fee2af144e3dc23e14396  gcc/cp/semantics.cc
  64c36b2ea66c9f8f477b19d24e06a2cb  gcc/cp/std-name-hint.gperf
  15cc409f13a8952feb90e94d99ecefa2  gcc/cp/std-name-hint.h
! 52add0952becf354977160f4172e92f9  gcc/cp/tree.cc
  01e9a381e6fcf3d016d0170ee0ad71d7  gcc/cp/type-utils.h
  f8acce2d62b5de5f6c73b511ce3dcf6e  gcc/cp/typeck.cc
  977a0037d150893837512a88f03fbdad  gcc/cp/typeck2.cc
*************** f8acce2d62b5de5f6c73b511ce3dcf6e  gcc/cp
*** 5763,5769 ****
  39b4704938fb780fdd57ddb7cbb0fdba  gcc/cprop.cc
  bb146ea57855f57a97f23f7c748b05ed  gcc/crc-verification.cc
  b7bf54d1a28938f620902d5d360e7000  gcc/crc-verification.h
! 103047164a990d0d268652883bb9732c  gcc/cse.cc
  d5f0bd4db30aeac6cae9b4ccf96fe181  gcc/cselib.cc
  2bf8056615c55c725c85f6c4b734b401  gcc/cselib.h
  1ded054093de910d9786c62bc4fe8cc6  gcc/cstamp-h.in
--- 5763,5769 ----
  39b4704938fb780fdd57ddb7cbb0fdba  gcc/cprop.cc
  bb146ea57855f57a97f23f7c748b05ed  gcc/crc-verification.cc
  b7bf54d1a28938f620902d5d360e7000  gcc/crc-verification.h
! 891a852a07ef618822afe94349693a07  gcc/cse.cc
  d5f0bd4db30aeac6cae9b4ccf96fe181  gcc/cselib.cc
  2bf8056615c55c725c85f6c4b734b401  gcc/cselib.h
  1ded054093de910d9786c62bc4fe8cc6  gcc/cstamp-h.in
*************** e6cb006d625b4b045f658e77c108b89c  gcc/df
*** 6051,6057 ****
  e836f9039ac0ee97e44f1203d7143062  gcc/diagnostic-core.h
  f44c95c2d9127c41d15df4ad1a1a1333  gcc/diagnostic-global-context.cc
  2981691b4cb936662848dea688ca5b9b  gcc/diagnostic-highlight-colors.h
! 7318d441345a938f8e9e2fbc9fdcf714  gcc/diagnostic.h
  4dc4927cc23b51fe09ba3b53f8f1c97c  gcc/diagnostics/buffering.cc
  5d85c55c07f5f70cd74109a62ae17580  gcc/diagnostics/buffering.h
  d8c122792f8326d493206a8e18634615  gcc/diagnostics/changes.cc
--- 6051,6057 ----
  e836f9039ac0ee97e44f1203d7143062  gcc/diagnostic-core.h
  f44c95c2d9127c41d15df4ad1a1a1333  gcc/diagnostic-global-context.cc
  2981691b4cb936662848dea688ca5b9b  gcc/diagnostic-highlight-colors.h
! f9e803ab72e414f2f6946bda525e18f5  gcc/diagnostic.h
  4dc4927cc23b51fe09ba3b53f8f1c97c  gcc/diagnostics/buffering.cc
  5d85c55c07f5f70cd74109a62ae17580  gcc/diagnostics/buffering.h
  d8c122792f8326d493206a8e18634615  gcc/diagnostics/changes.cc
*************** cac0841df72c21240aedd7e03d231c8d  gcc/di
*** 6062,6068 ****
  5ac83d2dfc5d36068774e6b0db97fe99  gcc/diagnostics/column-options.h
  c24d31606e2ffad5682f296df5984f2e  gcc/diagnostics/context-options.h
  68b8c316b2fdab6de05ec0729a3bab90  gcc/diagnostics/context.cc
! 704489d468b953092a4ca3357c9a8cb4  gcc/diagnostics/context.h
  e1fa17399b3b1f7a6bc15780030e2511  gcc/diagnostics/counters.h
  376ff2cb14bc9c31771a3a37ddceb73f  gcc/diagnostics/diagnostic-info.h
  b524b3d170881dadbdce5566d74dedd9  gcc/diagnostics/diagnostics-selftests.cc
--- 6062,6068 ----
  5ac83d2dfc5d36068774e6b0db97fe99  gcc/diagnostics/column-options.h
  c24d31606e2ffad5682f296df5984f2e  gcc/diagnostics/context-options.h
  68b8c316b2fdab6de05ec0729a3bab90  gcc/diagnostics/context.cc
! 200aeef02e1bc32cd90db6db1c708d8f  gcc/diagnostics/context.h
  e1fa17399b3b1f7a6bc15780030e2511  gcc/diagnostics/counters.h
  376ff2cb14bc9c31771a3a37ddceb73f  gcc/diagnostics/diagnostic-info.h
  b524b3d170881dadbdce5566d74dedd9  gcc/diagnostics/diagnostics-selftests.cc
*************** e77227490bb73331a8c2c4d3fb090aa8  gcc/di
*** 6081,6087 ****
  95d6527a981b205a79e76fa98a956261  gcc/diagnostics/html-sink.cc
  9bfc242600165929baa4ed6bdc70665a  gcc/diagnostics/html-sink.h
  6f82c403415d0c3795d5d4ebed1c7857  gcc/diagnostics/kinds.def
! 20fe4ea018233bfcec930d7b424d3f61  gcc/diagnostics/kinds.h
  b2dbe33401fb7a873596dc21a3315c1c  gcc/diagnostics/lazy-paths.cc
  9655a0a0e430a6a2ba69658964459c51  gcc/diagnostics/lazy-paths.h
  afd3c6f196089854a817371517bfcff8  gcc/diagnostics/logging.cc
--- 6081,6087 ----
  95d6527a981b205a79e76fa98a956261  gcc/diagnostics/html-sink.cc
  9bfc242600165929baa4ed6bdc70665a  gcc/diagnostics/html-sink.h
  6f82c403415d0c3795d5d4ebed1c7857  gcc/diagnostics/kinds.def
! 857112878797b8e61ebfe2955c6186ab  gcc/diagnostics/kinds.h
  b2dbe33401fb7a873596dc21a3315c1c  gcc/diagnostics/lazy-paths.cc
  9655a0a0e430a6a2ba69658964459c51  gcc/diagnostics/lazy-paths.h
  afd3c6f196089854a817371517bfcff8  gcc/diagnostics/logging.cc
*************** f913704ee00dbc52127670b4635b53c3  gcc/di
*** 6090,6097 ****
  d13834e2fb03b93add424af52ff2534a  gcc/diagnostics/macro-unwinding.cc
  5d4f7fd38740d48dc45e7b72294c5292  gcc/diagnostics/macro-unwinding.h
  e0a3d44dad66ae08d00871e86121651d  gcc/diagnostics/metadata.h
! a7216089abd668f6894bf682d4e14cdf  gcc/diagnostics/option-classifier.cc
! 7bd87e08bba4b885000459f5c63f9fb2  gcc/diagnostics/option-classifier.h
  c31f42c60125ac6fab0b9db25b155999  gcc/diagnostics/option-id-manager.h
  b8034736dae3f6d654eba555f64e1c26  gcc/diagnostics/option-id.h
  4312bfb6416bc572f489d4f88120fcba  gcc/diagnostics/output-file.h
--- 6090,6097 ----
  d13834e2fb03b93add424af52ff2534a  gcc/diagnostics/macro-unwinding.cc
  5d4f7fd38740d48dc45e7b72294c5292  gcc/diagnostics/macro-unwinding.h
  e0a3d44dad66ae08d00871e86121651d  gcc/diagnostics/metadata.h
! c1ddb61643e9395dc8b42fc660f3e4c4  gcc/diagnostics/option-classifier.cc
! d19607159d28213e239a84aedc6ad3e1  gcc/diagnostics/option-classifier.h
  c31f42c60125ac6fab0b9db25b155999  gcc/diagnostics/option-id-manager.h
  b8034736dae3f6d654eba555f64e1c26  gcc/diagnostics/option-id.h
  4312bfb6416bc572f489d4f88120fcba  gcc/diagnostics/output-file.h
*************** ee65c9e3e7c3fb1fd0128c23f4130e51  gcc/do
*** 6138,6144 ****
  301ed7e567732d1f0d5899a624068bdd  gcc/doc/cppinternals.texi
  421cc3b7d98386e0eb0abba4242dd54a  gcc/doc/cppopts.texi
  d8b2becdc7d9c570f256e19e1b1ac4f1  gcc/doc/cppwarnopts.texi
! 1bc02fc872a3bf03a9de46d76f8b7951  gcc/doc/extend.texi
  d4f889c42d5400f1d26328f8b49db9ba  gcc/doc/fragments.texi
  7fb1e4199b2e70228fda69b8065d83c4  gcc/doc/frontends.texi
  f0e190ef0119097dac4c73c2f9e34d9e  gcc/doc/gcc.texi
--- 6138,6144 ----
  301ed7e567732d1f0d5899a624068bdd  gcc/doc/cppinternals.texi
  421cc3b7d98386e0eb0abba4242dd54a  gcc/doc/cppopts.texi
  d8b2becdc7d9c570f256e19e1b1ac4f1  gcc/doc/cppwarnopts.texi
! b74e9e9f4a699463fc65276ef165b88a  gcc/doc/extend.texi
  d4f889c42d5400f1d26328f8b49db9ba  gcc/doc/fragments.texi
  7fb1e4199b2e70228fda69b8065d83c4  gcc/doc/frontends.texi
  f0e190ef0119097dac4c73c2f9e34d9e  gcc/doc/gcc.texi
*************** c84639641b29cd79e61a0fe226b0bca7  gcc/do
*** 6163,6169 ****
  e9b8122841fbfbbc30fee8ed6613c399  gcc/doc/include/texinfo.tex
  b9c448ca1e683bd1266ff1f8ce25c0d7  gcc/doc/install.texi
  30a2209eee0a2bed76e2d9ff3bd646f2  gcc/doc/install.texi2html
! 4bb0d7daed811a7f109623e1030c106c  gcc/doc/invoke.texi
  dd9d4097ebfa9e936c41913343807268  gcc/doc/languages.texi
  46d2bbbd37002bb71569d0b1f27d7a5a  gcc/doc/libgcc.texi
  ef4f00c423089323edef1d3cff31a4a2  gcc/doc/libgdiagnostics/Makefile
--- 6163,6169 ----
  e9b8122841fbfbbc30fee8ed6613c399  gcc/doc/include/texinfo.tex
  b9c448ca1e683bd1266ff1f8ce25c0d7  gcc/doc/install.texi
  30a2209eee0a2bed76e2d9ff3bd646f2  gcc/doc/install.texi2html
! de44c2c7eaca1baa5058b2b5568ab7e2  gcc/doc/invoke.texi
  dd9d4097ebfa9e936c41913343807268  gcc/doc/languages.texi
  46d2bbbd37002bb71569d0b1f27d7a5a  gcc/doc/libgcc.texi
  ef4f00c423089323edef1d3cff31a4a2  gcc/doc/libgdiagnostics/Makefile
*************** e0cdf1b3b23ffeebe52940c4ad627db6  gcc/do
*** 6198,6204 ****
  9ee967e13bc2bed3d3732b8ced2ce585  gcc/doc/libgdiagnostics/tutorial/index.rst
  f72fd7c6a31377f3060455a2da1a6506  gcc/doc/loop.texi
  c2fc9f8e6a1cb39a7237e4ac3d7fcd7f  gcc/doc/lto-dump.texi
! 11e47b626bc937cc2bd4a8ac95a59aed  gcc/doc/lto.texi
  a0300f293e1294f68bbf43478b2f7e96  gcc/doc/makefile.texi
  721e689329cd07ff27ba55b5c090eae1  gcc/doc/match-and-simplify.texi
  44bd8fdce8dc761674613c5d7c8d7c3e  gcc/doc/md.texi
--- 6198,6204 ----
  9ee967e13bc2bed3d3732b8ced2ce585  gcc/doc/libgdiagnostics/tutorial/index.rst
  f72fd7c6a31377f3060455a2da1a6506  gcc/doc/loop.texi
  c2fc9f8e6a1cb39a7237e4ac3d7fcd7f  gcc/doc/lto-dump.texi
! c107bad07b9aaa666477ef733b5fa733  gcc/doc/lto.texi
  a0300f293e1294f68bbf43478b2f7e96  gcc/doc/makefile.texi
  721e689329cd07ff27ba55b5c090eae1  gcc/doc/match-and-simplify.texi
  44bd8fdce8dc761674613c5d7c8d7c3e  gcc/doc/md.texi
*************** fdecd23a17ae3f56f5e4f046f0bb157b  gcc/do
*** 6210,6226 ****
  e54937e427a2584ac4045286c725fab1  gcc/doc/plugins.texi
  55ca097cff451ddbce4b20cdcbb9273e  gcc/doc/poly-int.texi
  213ccf5a355e5d07fc0dcef29825d6dd  gcc/doc/portability.texi
! a8e76853373e3ec544dc38c1de090bc4  gcc/doc/riscv-ext.texi
  d9bd28712398e388129ab2de3ba1b97a  gcc/doc/riscv-mcpu.texi
  eda507c067bdb9d76452955705651419  gcc/doc/riscv-mtune.texi
  d148d8e42c694bcabb267855d8c863fb  gcc/doc/rtl.texi
  b12261ad56bcabd07b4a1b739f271527  gcc/doc/service.texi
! cfaead4d134e741f630ea0e3726b6ac1  gcc/doc/sourcebuild.texi
  9b58fbc10917d12008925e09d91cab55  gcc/doc/specs.texi
  d2b53a62ec4e23a8e4cbe16d2843c100  gcc/doc/standards.texi
  921b2d264ab6d8ca790732e4bec7f807  gcc/doc/tm.texi
  66b2d9c7b6b6961daa95e84be011fe20  gcc/doc/tm.texi.in
! 8c9d03a450c358d77823a84f9c62ba4d  gcc/doc/tree-ssa.texi
  2d263928ebdba30d4e096adf01758e79  gcc/doc/trouble.texi
  83ea8ece47a3447f8da5fddd982c9d29  gcc/doc/ux.texi
  48db1defc86b839323cd207da06699d8  gcc/dojump.cc
--- 6210,6226 ----
  e54937e427a2584ac4045286c725fab1  gcc/doc/plugins.texi
  55ca097cff451ddbce4b20cdcbb9273e  gcc/doc/poly-int.texi
  213ccf5a355e5d07fc0dcef29825d6dd  gcc/doc/portability.texi
! 5a6d335e7f5eb45cd81d2e5bbf8a3e08  gcc/doc/riscv-ext.texi
  d9bd28712398e388129ab2de3ba1b97a  gcc/doc/riscv-mcpu.texi
  eda507c067bdb9d76452955705651419  gcc/doc/riscv-mtune.texi
  d148d8e42c694bcabb267855d8c863fb  gcc/doc/rtl.texi
  b12261ad56bcabd07b4a1b739f271527  gcc/doc/service.texi
! 2fc8c3be005e2726c172dca5c75ab26e  gcc/doc/sourcebuild.texi
  9b58fbc10917d12008925e09d91cab55  gcc/doc/specs.texi
  d2b53a62ec4e23a8e4cbe16d2843c100  gcc/doc/standards.texi
  921b2d264ab6d8ca790732e4bec7f807  gcc/doc/tm.texi
  66b2d9c7b6b6961daa95e84be011fe20  gcc/doc/tm.texi.in
! b3858c24cbc7c7b77d15bcdd7c4b1fde  gcc/doc/tree-ssa.texi
  2d263928ebdba30d4e096adf01758e79  gcc/doc/trouble.texi
  83ea8ece47a3447f8da5fddd982c9d29  gcc/doc/ux.texi
  48db1defc86b839323cd207da06699d8  gcc/dojump.cc
*************** ebdcfebb5ff512939950e137b9ec8877  gcc/er
*** 6252,6263 ****
  520c0d56642dda02ef4ccce4f74aee5e  gcc/escaped_string.h
  7f6022e9fa128cacb42f0aea38f4a525  gcc/et-forest.cc
  f27465a07748d0f8d8813d3107b5680c  gcc/et-forest.h
  e927ed115966aaba96ebbcd19b6acefd  gcc/except.cc
  d61f76c4b55102abe0d6908ab60489e7  gcc/except.h
  2af24b814afb179d911a33733d593eba  gcc/exec-tool.in
  218b6e1049518cb5651dfbf9f18e27a8  gcc/explow.cc
  e0ebf672695dc08e5686ca42b54e3a46  gcc/explow.h
! 3f7f03e64862e525df5c51b4e410284a  gcc/expmed.cc
  2431f17e1f416ef0b9c38b1b975942a4  gcc/expmed.h
  f224c00734129edae6b6277bd961c755  gcc/expr.cc
  ca4a759ee689223d3551cae34e997224  gcc/expr.h
--- 6252,6264 ----
  520c0d56642dda02ef4ccce4f74aee5e  gcc/escaped_string.h
  7f6022e9fa128cacb42f0aea38f4a525  gcc/et-forest.cc
  f27465a07748d0f8d8813d3107b5680c  gcc/et-forest.h
+ 92e6ca4ed0318c2d83ea380ccca418dd  gcc/et-gather.awk
  e927ed115966aaba96ebbcd19b6acefd  gcc/except.cc
  d61f76c4b55102abe0d6908ab60489e7  gcc/except.h
  2af24b814afb179d911a33733d593eba  gcc/exec-tool.in
  218b6e1049518cb5651dfbf9f18e27a8  gcc/explow.cc
  e0ebf672695dc08e5686ca42b54e3a46  gcc/explow.h
! 36e259717b003fb7949d16d6a450b874  gcc/expmed.cc
  2431f17e1f416ef0b9c38b1b975942a4  gcc/expmed.h
  f224c00734129edae6b6277bd961c755  gcc/expr.cc
  ca4a759ee689223d3551cae34e997224  gcc/expr.h
*************** f8396c35f56710f2dd577b8f6644d380  gcc/fo
*** 6278,6284 ****
  c8bf9fa83c6b8a1d3792c1a6cf73dba1  gcc/fold-const.cc
  1c4ecad775c097fbffaf36b9320cf1db  gcc/fold-const.h
  87bf3dcaf0fa670e88b5693e7ece16d6  gcc/fold-mem-offsets.cc
! ee96aee1b916e8073ce04a13e1511278  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
--- 6279,6285 ----
  c8bf9fa83c6b8a1d3792c1a6cf73dba1  gcc/fold-const.cc
  1c4ecad775c097fbffaf36b9320cf1db  gcc/fold-const.h
  87bf3dcaf0fa670e88b5693e7ece16d6  gcc/fold-mem-offsets.cc
! eb1614f91a186e298d0ba849246dcef3  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
*************** ac7321680382b23989a6637e02dfb80e  gcc/fo
*** 6323,6340 ****
  0f8d73479ed26054b29b275bce4fc216  gcc/fortran/decl.cc
  1e7039f0bf7d560e4fcdb2cf95db4b7d  gcc/fortran/dependency.cc
  b66b99368e3cd17573ae64a38e36c1de  gcc/fortran/dependency.h
! 5fc94c471cdb783f08d648c823689b18  gcc/fortran/dump-parse-tree.cc
  65aa25da09bdeee948cdad39cfc4d960  gcc/fortran/error.cc
  7b1375ead84a436fc2b86395e1dfc0c9  gcc/fortran/expr.cc
  c0284e23f561f80398df460d7c477675  gcc/fortran/f95-lang.cc
! aabeb93bbe7fb46864a337bef3c2ade5  gcc/fortran/frontend-passes.cc
  c85c9309a4274609c6ff6466621c90f6  gcc/fortran/gfc-diagnostic.def
  afb07146daad7f36a59c52e053f6772f  gcc/fortran/gfc-internals.texi
! 1bd3a35eb1aaecbe34644ef712b04dd7  gcc/fortran/gfortran.h
  13d7dc211e7c02525ba3c435e6ea201b  gcc/fortran/gfortran.texi
  11194f3565a8c394b76bd5117830b0ae  gcc/fortran/gfortranspec.cc
! c0f91b659da0dae8c527a63b19f8da14  gcc/fortran/interface.cc
! 170e16c1bee9d328fc1e32760604b336  gcc/fortran/intrinsic.cc
  d7ffa84de49936bfc22cdb2a7ef87800  gcc/fortran/intrinsic.h
  1a62f222e673a1f61193a0a19935b32f  gcc/fortran/intrinsic.texi
  d1270efc97a26916a776b4a7c77118e7  gcc/fortran/invoke.texi
--- 6324,6341 ----
  0f8d73479ed26054b29b275bce4fc216  gcc/fortran/decl.cc
  1e7039f0bf7d560e4fcdb2cf95db4b7d  gcc/fortran/dependency.cc
  b66b99368e3cd17573ae64a38e36c1de  gcc/fortran/dependency.h
! 3d6c9ea34e4bec31a7426b1f9897e896  gcc/fortran/dump-parse-tree.cc
  65aa25da09bdeee948cdad39cfc4d960  gcc/fortran/error.cc
  7b1375ead84a436fc2b86395e1dfc0c9  gcc/fortran/expr.cc
  c0284e23f561f80398df460d7c477675  gcc/fortran/f95-lang.cc
! 0fb2d11ae23413034910d2afdc2d626a  gcc/fortran/frontend-passes.cc
  c85c9309a4274609c6ff6466621c90f6  gcc/fortran/gfc-diagnostic.def
  afb07146daad7f36a59c52e053f6772f  gcc/fortran/gfc-internals.texi
! 077cc8cf495e32ae3e75fc72f89e5259  gcc/fortran/gfortran.h
  13d7dc211e7c02525ba3c435e6ea201b  gcc/fortran/gfortran.texi
  11194f3565a8c394b76bd5117830b0ae  gcc/fortran/gfortranspec.cc
! bec784d67d56aa7a23a0d96815b1d0b6  gcc/fortran/interface.cc
! 4f508e3773eea5816eb1b88b6ed4a8b5  gcc/fortran/intrinsic.cc
  d7ffa84de49936bfc22cdb2a7ef87800  gcc/fortran/intrinsic.h
  1a62f222e673a1f61193a0a19935b32f  gcc/fortran/intrinsic.texi
  d1270efc97a26916a776b4a7c77118e7  gcc/fortran/invoke.texi
*************** acdd137682996055ccebf55905f943f1  gcc/fo
*** 6352,6369 ****
  bf54232c4c950ed772f4964c4f79629e  gcc/fortran/matchexp.cc
  915f6b30a8c22a5fea18690269a5a4a4  gcc/fortran/mathbuiltins.def
  9687294592a5ccef5d0b8254ab33816b  gcc/fortran/misc.cc
! 8a51e738d75691ffd85751ee78595ffb  gcc/fortran/module.cc
  b98195ee75bf7d3e1ac8e01f6e4a6b51  gcc/fortran/openmp.cc
  7baca4fc0a6fcd712dcbccab22987c74  gcc/fortran/options.cc
  f96b91fecd5db62c95bc50a661965b6d  gcc/fortran/parse.cc
  c97a1f016de974126c688bb9c805f323  gcc/fortran/parse.h
  652dece8c45124ac6ad49d39f2b67df1  gcc/fortran/primary.cc
! 689150cd7685ddf0cae6105fdac93f30  gcc/fortran/resolve.cc
  e23f6eefa51bb3b4caa3d75c0409cfcd  gcc/fortran/scanner.cc
  18963b3f6aacca960fd6aa72b429a9d2  gcc/fortran/scanner.h
  664f19f5a29de9abc4642568f758c47c  gcc/fortran/simplify.cc
  2155dafc4405ccdc4c41df7a1a31a496  gcc/fortran/st.cc
! 7c0ce786abb30fa1b3dfd2c619faf5c3  gcc/fortran/symbol.cc
  4fa06f769be3f1b439a574ee842c82ca  gcc/fortran/target-memory.cc
  ea8837444e2a08a95a3ea747c94b8106  gcc/fortran/target-memory.h
  d332a7ca62d08210f0ff7f4210fe6cbf  gcc/fortran/trans-array.cc
--- 6353,6370 ----
  bf54232c4c950ed772f4964c4f79629e  gcc/fortran/matchexp.cc
  915f6b30a8c22a5fea18690269a5a4a4  gcc/fortran/mathbuiltins.def
  9687294592a5ccef5d0b8254ab33816b  gcc/fortran/misc.cc
! 50cd60435948a59aa9a0dd841b3531be  gcc/fortran/module.cc
  b98195ee75bf7d3e1ac8e01f6e4a6b51  gcc/fortran/openmp.cc
  7baca4fc0a6fcd712dcbccab22987c74  gcc/fortran/options.cc
  f96b91fecd5db62c95bc50a661965b6d  gcc/fortran/parse.cc
  c97a1f016de974126c688bb9c805f323  gcc/fortran/parse.h
  652dece8c45124ac6ad49d39f2b67df1  gcc/fortran/primary.cc
! c21ad2dafedaffa8fa8dfc6a174ee234  gcc/fortran/resolve.cc
  e23f6eefa51bb3b4caa3d75c0409cfcd  gcc/fortran/scanner.cc
  18963b3f6aacca960fd6aa72b429a9d2  gcc/fortran/scanner.h
  664f19f5a29de9abc4642568f758c47c  gcc/fortran/simplify.cc
  2155dafc4405ccdc4c41df7a1a31a496  gcc/fortran/st.cc
! a389deabd1b1a1c96d2ad1e065ba8550  gcc/fortran/symbol.cc
  4fa06f769be3f1b439a574ee842c82ca  gcc/fortran/target-memory.cc
  ea8837444e2a08a95a3ea747c94b8106  gcc/fortran/target-memory.h
  d332a7ca62d08210f0ff7f4210fe6cbf  gcc/fortran/trans-array.cc
*************** e4ae8da739e5243d01975094cbbe90a3  gcc/fo
*** 6377,6383 ****
  3fe0fe431b17bd137ad776f0eff013ae  gcc/fortran/trans-expr.cc
  0fe9bdd8deb5edd387c769d8c1f67c40  gcc/fortran/trans-intrinsic.cc
  98da4f32a07d6a9049d5ebdb3a59119a  gcc/fortran/trans-io.cc
! a0381cd67c808e37693945b35c17c0fa  gcc/fortran/trans-openmp.cc
  0bce127aec5623186ba7c355e92b66c4  gcc/fortran/trans-stmt.cc
  6fbc90714f9730e84515bbaadff313f9  gcc/fortran/trans-stmt.h
  2080e7fe1dede580efeb6d90a49f88ce  gcc/fortran/trans-types.cc
--- 6378,6384 ----
  3fe0fe431b17bd137ad776f0eff013ae  gcc/fortran/trans-expr.cc
  0fe9bdd8deb5edd387c769d8c1f67c40  gcc/fortran/trans-intrinsic.cc
  98da4f32a07d6a9049d5ebdb3a59119a  gcc/fortran/trans-io.cc
! 6e5eac36751feaab3d0f95757825005e  gcc/fortran/trans-openmp.cc
  0bce127aec5623186ba7c355e92b66c4  gcc/fortran/trans-stmt.cc
  6fbc90714f9730e84515bbaadff313f9  gcc/fortran/trans-stmt.h
  2080e7fe1dede580efeb6d90a49f88ce  gcc/fortran/trans-types.cc
*************** d2e2d3b54c5e07c2ef96e16dfafb0a5d  gcc/fo
*** 6385,6401 ****
  277d8774a336ae86806485275e4a700a  gcc/fortran/trans.cc
  2d3f54b9ed7f3bbec54c23afc6cab082  gcc/fortran/trans.h
  95f35aeb3293f3036414b45c9c749d61  gcc/fortran/trigd_fe.inc
! 25694e844e6e9bf7c96a78df293d2155  gcc/fortran/types.def
  2512380133ab0852be268312deda8663  gcc/fp-test.cc
  ffcd589d92263dca99a67b1a9fb561b8  gcc/function-abi.cc
  fe144e1c2a0da30ffc9946e5adab7e6f  gcc/function-abi.h
  45679bb0d98b3e87046958f7576b3770  gcc/function-tests.cc
! 43aa863d2c991e6f15da6396fb2a0a75  gcc/function.cc
  797473d7b92327caaa0bc2b71c14bc0d  gcc/function.h
  96e0cc03035051e1904d130ab24fdfb4  gcc/fwprop.cc
  32954fca43f23e905ac77e9879653355  gcc/gcc-ar.cc
  485c27eb32ee3d08c3a797aa09f1e7c5  gcc/gcc-attribute-urlifier.cc
! 36d18ef2b624c8a3eb9f0d36d209825d  gcc/gcc-diagnostic-spec.cc
  b5d3e8bbbb8eaf9e3afad2074381d9b6  gcc/gcc-diagnostic-spec.h
  da0c39774e25ef2fb15801b85139c78e  gcc/gcc-main.cc
  cb61e8e62e8f8253c31da11a151fafb3  gcc/gcc-plugin.h
--- 6386,6402 ----
  277d8774a336ae86806485275e4a700a  gcc/fortran/trans.cc
  2d3f54b9ed7f3bbec54c23afc6cab082  gcc/fortran/trans.h
  95f35aeb3293f3036414b45c9c749d61  gcc/fortran/trigd_fe.inc
! 5a79801deb575da4161af40608a67550  gcc/fortran/types.def
  2512380133ab0852be268312deda8663  gcc/fp-test.cc
  ffcd589d92263dca99a67b1a9fb561b8  gcc/function-abi.cc
  fe144e1c2a0da30ffc9946e5adab7e6f  gcc/function-abi.h
  45679bb0d98b3e87046958f7576b3770  gcc/function-tests.cc
! fac5129cb8c291cebcc1e4d9b031560e  gcc/function.cc
  797473d7b92327caaa0bc2b71c14bc0d  gcc/function.h
  96e0cc03035051e1904d130ab24fdfb4  gcc/fwprop.cc
  32954fca43f23e905ac77e9879653355  gcc/gcc-ar.cc
  485c27eb32ee3d08c3a797aa09f1e7c5  gcc/gcc-attribute-urlifier.cc
! acbd99c71341a1dd7ec965606fa192f0  gcc/gcc-diagnostic-spec.cc
  b5d3e8bbbb8eaf9e3afad2074381d9b6  gcc/gcc-diagnostic-spec.h
  da0c39774e25ef2fb15801b85139c78e  gcc/gcc-main.cc
  cb61e8e62e8f8253c31da11a151fafb3  gcc/gcc-plugin.h
*************** a6262b86b3027259364f310d5668e6a3  gcc/gc
*** 6420,6426 ****
  af83e4b4719ee065872080b713d24c2f  gcc/gdbasan.in
  662a2a43c0734e027334473a1e3cc6e3  gcc/gdbhooks.py
  57d4203a56ff6a24e7cb8e58c6ce481c  gcc/gdbinit.in
! ed5344143eadda13d94953c181df0123  gcc/gen-pass-instances.awk
  6f831e6ea1ea5c36525eaccefab39200  gcc/genattr-common.cc
  44f67f14c8ebc167c082311145707ddb  gcc/genattr.cc
  1045210e47259cc26a01dcc540c42fdf  gcc/genattrtab.cc
--- 6421,6428 ----
  af83e4b4719ee065872080b713d24c2f  gcc/gdbasan.in
  662a2a43c0734e027334473a1e3cc6e3  gcc/gdbhooks.py
  57d4203a56ff6a24e7cb8e58c6ce481c  gcc/gdbinit.in
! 3dce63222966dba463640f1d36815ce3  gcc/gen-et-static.awk
! 6407a4b9bb4b312f269def5925d5f972  gcc/gen-pass-instances.awk
  6f831e6ea1ea5c36525eaccefab39200  gcc/genattr-common.cc
  44f67f14c8ebc167c082311145707ddb  gcc/genattr.cc
  1045210e47259cc26a01dcc540c42fdf  gcc/genattrtab.cc
*************** e8ef831ecab58724c781ef6c239eb959  gcc/gi
*** 6472,6478 ****
  8b1599b40f5a2702947d5d0d54b2abbc  gcc/gimple-crc-optimization.cc
  a15c39c8992a881e7ddd36b0e81d341c  gcc/gimple-expr.cc
  61721564f913cdbebe438f7c378b316e  gcc/gimple-expr.h
! c75ec111fd44d49b5e67a7129b49bac5  gcc/gimple-fold.cc
  ae37e021ec4849550d7598ecdd2faeb4  gcc/gimple-fold.h
  109e0f96a9d27a8a25bb73d61b701bbc  gcc/gimple-harden-conditionals.cc
  77b7894bb225ebcb156bb0cf28b9325a  gcc/gimple-harden-control-flow.cc
--- 6474,6480 ----
  8b1599b40f5a2702947d5d0d54b2abbc  gcc/gimple-crc-optimization.cc
  a15c39c8992a881e7ddd36b0e81d341c  gcc/gimple-expr.cc
  61721564f913cdbebe438f7c378b316e  gcc/gimple-expr.h
! f8317e3c8085f8fee7ba78c6c2f8dafa  gcc/gimple-fold.cc
  ae37e021ec4849550d7598ecdd2faeb4  gcc/gimple-fold.h
  109e0f96a9d27a8a25bb73d61b701bbc  gcc/gimple-harden-conditionals.cc
  77b7894bb225ebcb156bb0cf28b9325a  gcc/gimple-harden-control-flow.cc
*************** a7d47404d5fd61c66fd504e78960fac2  gcc/gi
*** 6486,6492 ****
  79e1be92f049137ccb4bbb870690e093  gcc/gimple-loop-versioning.cc
  a3c0ce653bff24576326a2c5f8a39b01  gcc/gimple-low.cc
  a6a5de8424eee65e836bba5b21f32a6b  gcc/gimple-low.h
! 54de93624274e2e4178b33b729861209  gcc/gimple-lower-bitint.cc
  0ad30ecd31f0473de43171e203bbed3e  gcc/gimple-lower-bitint.h
  283afbcda37f06544c84656fdb8c1a68  gcc/gimple-match-exports.cc
  95ab37dd8c1b67f025a463e428c5f21b  gcc/gimple-match-head.cc
--- 6488,6494 ----
  79e1be92f049137ccb4bbb870690e093  gcc/gimple-loop-versioning.cc
  a3c0ce653bff24576326a2c5f8a39b01  gcc/gimple-low.cc
  a6a5de8424eee65e836bba5b21f32a6b  gcc/gimple-low.h
! 1d3d8ae4d1d91099fe242655cadb0ced  gcc/gimple-lower-bitint.cc
  0ad30ecd31f0473de43171e203bbed3e  gcc/gimple-lower-bitint.h
  283afbcda37f06544c84656fdb8c1a68  gcc/gimple-match-exports.cc
  95ab37dd8c1b67f025a463e428c5f21b  gcc/gimple-match-head.cc
*************** dd67ca2e05cdfe59a549e49eb485455e  gcc/gi
*** 6496,6502 ****
  47be556d1ffdffe8df16fdea25e9fe0e  gcc/gimple-predict.h
  507f851a06264c7415919c28e6afa3da  gcc/gimple-pretty-print.cc
  188a3366d8d8b4ba413f704fa241a1e2  gcc/gimple-pretty-print.h
! 406badf56b2d3dc86e19d4359d018dfa  gcc/gimple-range-cache.cc
  fed39c5b7ccbe9fef78cb20fe5a094d8  gcc/gimple-range-cache.h
  d69dec8fe89be66b09721beced1a6f07  gcc/gimple-range-edge.cc
  1001ed4a3c498c8d659f609b65b1b127  gcc/gimple-range-edge.h
--- 6498,6504 ----
  47be556d1ffdffe8df16fdea25e9fe0e  gcc/gimple-predict.h
  507f851a06264c7415919c28e6afa3da  gcc/gimple-pretty-print.cc
  188a3366d8d8b4ba413f704fa241a1e2  gcc/gimple-pretty-print.h
! 22efc62f79637b84953405c2f758b780  gcc/gimple-range-cache.cc
  fed39c5b7ccbe9fef78cb20fe5a094d8  gcc/gimple-range-cache.h
  d69dec8fe89be66b09721beced1a6f07  gcc/gimple-range-edge.cc
  1001ed4a3c498c8d659f609b65b1b127  gcc/gimple-range-edge.h
*************** f58f0b7333c819ce2d78ac8f471e9944  gcc/gi
*** 6504,6510 ****
  c84294b3bbebf60858449ae953fae160  gcc/gimple-range-fold.h
  81b88dce3097e53655e2e56fcded19a4  gcc/gimple-range-gori.cc
  3f397ecbcf642d6d782fe5e774680054  gcc/gimple-range-gori.h
! 871f906e172004d8ff9ab02c90b303c7  gcc/gimple-range-infer.cc
  9c447cd0910663103790881bc1ab0fc8  gcc/gimple-range-infer.h
  7a817f9363ddd6ca4c1690866d425d29  gcc/gimple-range-op.cc
  2b35447fc9805b1aa9b1c06450e44a9e  gcc/gimple-range-op.h
--- 6506,6512 ----
  c84294b3bbebf60858449ae953fae160  gcc/gimple-range-fold.h
  81b88dce3097e53655e2e56fcded19a4  gcc/gimple-range-gori.cc
  3f397ecbcf642d6d782fe5e774680054  gcc/gimple-range-gori.h
! a8448c8e2bca4c9c10bf41f944b7e4af  gcc/gimple-range-infer.cc
  9c447cd0910663103790881bc1ab0fc8  gcc/gimple-range-infer.h
  7a817f9363ddd6ca4c1690866d425d29  gcc/gimple-range-op.cc
  2b35447fc9805b1aa9b1c06450e44a9e  gcc/gimple-range-op.h
*************** e45cb6aa50c3ff1d1592d7f2758cb778  gcc/gi
*** 6520,6532 ****
  d1e29051831e84cf3322e13073e6e37c  gcc/gimple-ssa-backprop.cc
  de05af775384560b7d73a320ca04b716  gcc/gimple-ssa-isolate-paths.cc
  841e25177d0ec3b994aade444aaf7d1f  gcc/gimple-ssa-nonnull-compare.cc
! 96e1661908e516aa0851c0c0445a7ad1  gcc/gimple-ssa-pta-constraints.cc
  1a13540b90afbe02c088650d3cd0b617  gcc/gimple-ssa-pta-constraints.h
  358c52f644d9a63e34d38841245cbaae  gcc/gimple-ssa-sccopy.cc
  a707182c5c79c8694b0faeca12bcdba0  gcc/gimple-ssa-sprintf.cc
  93223fccf371c4d63f17138772b09ed9  gcc/gimple-ssa-store-merging.cc
  80c188723b9e2d5da42c41d22ce38e94  gcc/gimple-ssa-strength-reduction.cc
! 83774d1be221825cb5bf89c4dc74085c  gcc/gimple-ssa-warn-access.cc
  987d7fb5fd1bb73e756015bb5e1074bd  gcc/gimple-ssa-warn-access.h
  f7b0197d94bcfef5acc93f20515d5a8f  gcc/gimple-ssa-warn-alloca.cc
  e2a88567ecc62102958a6b3c637cfbe5  gcc/gimple-ssa-warn-restrict.cc
--- 6522,6534 ----
  d1e29051831e84cf3322e13073e6e37c  gcc/gimple-ssa-backprop.cc
  de05af775384560b7d73a320ca04b716  gcc/gimple-ssa-isolate-paths.cc
  841e25177d0ec3b994aade444aaf7d1f  gcc/gimple-ssa-nonnull-compare.cc
! bc9d9c5cbc11f92d1dd03e018106cb01  gcc/gimple-ssa-pta-constraints.cc
  1a13540b90afbe02c088650d3cd0b617  gcc/gimple-ssa-pta-constraints.h
  358c52f644d9a63e34d38841245cbaae  gcc/gimple-ssa-sccopy.cc
  a707182c5c79c8694b0faeca12bcdba0  gcc/gimple-ssa-sprintf.cc
  93223fccf371c4d63f17138772b09ed9  gcc/gimple-ssa-store-merging.cc
  80c188723b9e2d5da42c41d22ce38e94  gcc/gimple-ssa-strength-reduction.cc
! 4a99ae3a7e96aa18b9e4c3ac562ddf32  gcc/gimple-ssa-warn-access.cc
  987d7fb5fd1bb73e756015bb5e1074bd  gcc/gimple-ssa-warn-access.h
  f7b0197d94bcfef5acc93f20515d5a8f  gcc/gimple-ssa-warn-alloca.cc
  e2a88567ecc62102958a6b3c637cfbe5  gcc/gimple-ssa-warn-restrict.cc
*************** c7aaa3764ab30058c5d27da89f166ec2  gcc/gi
*** 6543,6549 ****
  83d74df09fe460c465e209cc1370a30b  gcc/gimple.h
  46bdb18976fdb25accadbfdc07f14a8e  gcc/gimplify-me.cc
  cc5b43d0554c69571cd007e727fbb7d1  gcc/gimplify-me.h
! b5e1191de988e5e78c3fbfb0297b8464  gcc/gimplify.cc
  5015d194d6aebf6d8d4bbb3945a77e27  gcc/gimplify.h
  ba3039c0ed9645080c52c0d4bc46096f  gcc/gimplify_reg_info.h
  83f82d6779ea9f6500c863169abfca55  gcc/ginclude/float.h
--- 6545,6551 ----
  83d74df09fe460c465e209cc1370a30b  gcc/gimple.h
  46bdb18976fdb25accadbfdc07f14a8e  gcc/gimplify-me.cc
  cc5b43d0554c69571cd007e727fbb7d1  gcc/gimplify-me.h
! 503c0f8292fed41c5c2c20c9f7d9f3e4  gcc/gimplify.cc
  5015d194d6aebf6d8d4bbb3945a77e27  gcc/gimplify.h
  ba3039c0ed9645080c52c0d4bc46096f  gcc/gimplify_reg_info.h
  83f82d6779ea9f6500c863169abfca55  gcc/ginclude/float.h
*************** f5de8589d497c4d607cadff1ce88dd5c  gcc/hw
*** 6669,6682 ****
  665c1d736f4909ccb17f662f7f060fd7  gcc/hw-doloop.h
  e5e51e93d7d72e1822440531e4d79d1d  gcc/hwint.cc
  b6b1b7e364f00e9287ee1f56254b9be1  gcc/hwint.h
! 4004cad6f16fc2d942c2d9af777cd538  gcc/ifcvt.cc
  e2229f9ecac43014084b083ddf2d4637  gcc/ifcvt.h
  370b4a8b9decbb822392c32f5fb92a72  gcc/inchash.cc
  bad6404ce4e7f42ff46ce6ae70c77e99  gcc/inchash.h
  984873a66208a127d95460985f7a8950  gcc/incpath.cc
  17ffbeb68fc11afc463c1f060838519d  gcc/incpath.h
  5aa4092ef811b7dfc5987dcd38205bb6  gcc/init-regs.cc
! c4fbf78964d1ce2aab8aa20eea773fa1  gcc/input.cc
  27f736f8d8cba5e5dd1c30bbe7272db1  gcc/input.h
  80bc6558521a56fa4936fc0de8d01aca  gcc/insn-addr.h
  7b76bd07f7eca4ab18a5cb546ce1c919  gcc/insn-notes.def
--- 6671,6684 ----
  665c1d736f4909ccb17f662f7f060fd7  gcc/hw-doloop.h
  e5e51e93d7d72e1822440531e4d79d1d  gcc/hwint.cc
  b6b1b7e364f00e9287ee1f56254b9be1  gcc/hwint.h
! 309ec13c6a9936c92346c6077e450fae  gcc/ifcvt.cc
  e2229f9ecac43014084b083ddf2d4637  gcc/ifcvt.h
  370b4a8b9decbb822392c32f5fb92a72  gcc/inchash.cc
  bad6404ce4e7f42ff46ce6ae70c77e99  gcc/inchash.h
  984873a66208a127d95460985f7a8950  gcc/incpath.cc
  17ffbeb68fc11afc463c1f060838519d  gcc/incpath.h
  5aa4092ef811b7dfc5987dcd38205bb6  gcc/init-regs.cc
! cff1e9689286eab1d8b44169bfdc7649  gcc/input.cc
  27f736f8d8cba5e5dd1c30bbe7272db1  gcc/input.h
  80bc6558521a56fa4936fc0de8d01aca  gcc/insn-addr.h
  7b76bd07f7eca4ab18a5cb546ce1c919  gcc/insn-notes.def
*************** a4332875948bce6b2c7fe2ddc85c9319  gcc/ip
*** 6713,6719 ****
  80b4cc7719c703dfe60955dfb86002ae  gcc/ipa-predicate.cc
  a25a62951e49120c7882ca20d2486581  gcc/ipa-predicate.h
  7e00759eeb8f2ddaa2f77da1db8adf24  gcc/ipa-profile.cc
! 70fb317f493a229644ed546dd47f0348  gcc/ipa-prop.cc
  9b0c97913300d98c3ec78027b0857fae  gcc/ipa-prop.h
  14aace4627625a58b2f0a8aec7cd94f5  gcc/ipa-pure-const.cc
  f2d87c9921ca158119d238ee8d50abb6  gcc/ipa-ref.cc
--- 6715,6721 ----
  80b4cc7719c703dfe60955dfb86002ae  gcc/ipa-predicate.cc
  a25a62951e49120c7882ca20d2486581  gcc/ipa-predicate.h
  7e00759eeb8f2ddaa2f77da1db8adf24  gcc/ipa-profile.cc
! 4ec4469e7be7ed4142249d5f529dfccf  gcc/ipa-prop.cc
  9b0c97913300d98c3ec78027b0857fae  gcc/ipa-prop.h
  14aace4627625a58b2f0a8aec7cd94f5  gcc/ipa-pure-const.cc
  f2d87c9921ca158119d238ee8d50abb6  gcc/ipa-ref.cc
*************** c6ab645f373e1d6e9ddd212bfc3a95ba  gcc/lo
*** 6871,6878 ****
  d49cf408f9415ef037523414c6e80764  gcc/lower-subreg.h
  1c331efaab50c9e240d3ebcebea56688  gcc/lra-assigns.cc
  5d1aa184ea3e3c5990e02acbdc762f00  gcc/lra-coalesce.cc
! f4584cb313bdb2181e7e8d1bd5d93189  gcc/lra-constraints.cc
! 2b91fedbb37f334369acdf769a0ab194  gcc/lra-eliminations.cc
  74c62715a179f0277b7b036f21e1799f  gcc/lra-int.h
  568d6d2d43a7728ab0b54f7e837b653a  gcc/lra-lives.cc
  b6230d4e2eccd718fc469d99ce999ba9  gcc/lra-remat.cc
--- 6873,6880 ----
  d49cf408f9415ef037523414c6e80764  gcc/lower-subreg.h
  1c331efaab50c9e240d3ebcebea56688  gcc/lra-assigns.cc
  5d1aa184ea3e3c5990e02acbdc762f00  gcc/lra-coalesce.cc
! 3d57bb7e92dc60a4a2924c65366195b4  gcc/lra-constraints.cc
! 8476735029992c09ffa3a74ea4cd6802  gcc/lra-eliminations.cc
  74c62715a179f0277b7b036f21e1799f  gcc/lra-int.h
  568d6d2d43a7728ab0b54f7e837b653a  gcc/lra-lives.cc
  b6230d4e2eccd718fc469d99ce999ba9  gcc/lra-remat.cc
*************** b83e79d1d69b150565d42510c6be5822  gcc/lr
*** 6884,6917 ****
  c659fc218c745eb22044da66f2424ede  gcc/lto-compress.h
  a817f4a755c45e74106eccb676e0d5ab  gcc/lto-ltrans-cache.cc
  3f25ddb84fb557751613b1d2f7123cc8  gcc/lto-ltrans-cache.h
! 442399eb6d061d0396c090387026857d  gcc/lto-opts.cc
! 83a38b1ef3670762d9336c0229c75127  gcc/lto-section-in.cc
  194f259575b70213773e1c8c0f8fcb5b  gcc/lto-section-names.h
  fa334f7be97c3e817d1992afa3d08ab9  gcc/lto-section-out.cc
! d2e3dda71f1d4a248076a6d267924b9a  gcc/lto-streamer-in.cc
! 730bab590b01f7000cb672be1585fafd  gcc/lto-streamer-out.cc
! 6c99c98c397a53a6a56da792d20092b0  gcc/lto-streamer.cc
! 0fb9ed18ca0ba35bcf8d8a6fb2f5993d  gcc/lto-streamer.h
! 7702efeef37dcb3b58fa693b40f46542  gcc/lto-wrapper.cc
! 778ec50a448fb6d09ab2d8b1e29dedf2  gcc/lto/ChangeLog
  e2d60c6ff80e4c081f58d1462f513810  gcc/lto/Make-lang.in
  107bbf87618e39ff03662c0cd52a3f35  gcc/lto/common.cc
  eb5f3398fbf5d50b50c315e2d5891e25  gcc/lto/common.h
  7cfda51bb74b97d30a44070bb3888da7  gcc/lto/config-lang.in
  cf03da3419b3411b1f34eec4bedd9929  gcc/lto/lang-specs.h
! 607e203bd47f1482dabbb19305db2bbd  gcc/lto/lang.opt
  e09c982f34fcc53d88fb9b974a77d569  gcc/lto/lang.opt.urls
! 81ee7764a72079942e9c6b9b8e519e8a  gcc/lto/lto-common.cc
  bd162a24ac9bded9022e1bd104c1c013  gcc/lto/lto-common.h
  29453d6e3c86dfa353e934a16aa96ce5  gcc/lto/lto-dump.cc
  83dd99e4cccbae3b6e5c3e101bd29c79  gcc/lto/lto-lang.cc
  d79b622fd1c2cc1ce24cbaec591de26a  gcc/lto/lto-object.cc
! 77690459b479f4bf9b87bed5187bd6cf  gcc/lto/lto-partition.cc
  33ccaf341a69e9dc93b04e32a3cd9fff  gcc/lto/lto-partition.h
  0d0496bfad4fed1da7bba3bd2c2f02b6  gcc/lto/lto-symtab.cc
  a7092ba7593f4c0f94ce57ebba32641e  gcc/lto/lto-symtab.h
  5d650e8bc18da5b7150e7080f68c9b91  gcc/lto/lto-tree.h
! 69e82bc5799068031ce9cfad6f537e28  gcc/lto/lto.cc
  e0d99466f393722c3e10caf535614ff7  gcc/lto/lto.h
  41f943bdc734bffe0c6faf690dd66924  gcc/m2/COPYING.FDL
  351e06833ea0ad58238533d76ea0c2cf  gcc/m2/COPYING.RUNTIME
--- 6886,6919 ----
  c659fc218c745eb22044da66f2424ede  gcc/lto-compress.h
  a817f4a755c45e74106eccb676e0d5ab  gcc/lto-ltrans-cache.cc
  3f25ddb84fb557751613b1d2f7123cc8  gcc/lto-ltrans-cache.h
! 35f2d46030f29b480edefa6b8ab8834e  gcc/lto-opts.cc
! 034cd022434db8842babdc44d2c9d426  gcc/lto-section-in.cc
  194f259575b70213773e1c8c0f8fcb5b  gcc/lto-section-names.h
  fa334f7be97c3e817d1992afa3d08ab9  gcc/lto-section-out.cc
! e5f21eca6aa7d3742713526a7861a564  gcc/lto-streamer-in.cc
! 6a8f50aa07428511ea85ad5df4ffe2f5  gcc/lto-streamer-out.cc
! f3f54c293878f3e8ce41106392b54e50  gcc/lto-streamer.cc
! 68ee4679fa4e6d707455ac3a551c2b9f  gcc/lto-streamer.h
! d0ca0685888ea3b60219d8acd36fda77  gcc/lto-wrapper.cc
! f94fa4cd659cb307f4af456ccba7cac4  gcc/lto/ChangeLog
  e2d60c6ff80e4c081f58d1462f513810  gcc/lto/Make-lang.in
  107bbf87618e39ff03662c0cd52a3f35  gcc/lto/common.cc
  eb5f3398fbf5d50b50c315e2d5891e25  gcc/lto/common.h
  7cfda51bb74b97d30a44070bb3888da7  gcc/lto/config-lang.in
  cf03da3419b3411b1f34eec4bedd9929  gcc/lto/lang-specs.h
! 0c7d47c65993a533a04305ede2ca87d3  gcc/lto/lang.opt
  e09c982f34fcc53d88fb9b974a77d569  gcc/lto/lang.opt.urls
! 74adb56461798598bf21782653e0285f  gcc/lto/lto-common.cc
  bd162a24ac9bded9022e1bd104c1c013  gcc/lto/lto-common.h
  29453d6e3c86dfa353e934a16aa96ce5  gcc/lto/lto-dump.cc
  83dd99e4cccbae3b6e5c3e101bd29c79  gcc/lto/lto-lang.cc
  d79b622fd1c2cc1ce24cbaec591de26a  gcc/lto/lto-object.cc
! 39ee58c96ad6b95cf205a63ce7f9edcc  gcc/lto/lto-partition.cc
  33ccaf341a69e9dc93b04e32a3cd9fff  gcc/lto/lto-partition.h
  0d0496bfad4fed1da7bba3bd2c2f02b6  gcc/lto/lto-symtab.cc
  a7092ba7593f4c0f94ce57ebba32641e  gcc/lto/lto-symtab.h
  5d650e8bc18da5b7150e7080f68c9b91  gcc/lto/lto-tree.h
! 81e55d8935d110d5f3df6d343d66ec3a  gcc/lto/lto.cc
  e0d99466f393722c3e10caf535614ff7  gcc/lto/lto.h
  41f943bdc734bffe0c6faf690dd66924  gcc/m2/COPYING.FDL
  351e06833ea0ad58238533d76ea0c2cf  gcc/m2/COPYING.RUNTIME
*************** f9608e9005487c369e6c38949ab36fa1  gcc/m2
*** 7893,7899 ****
  a19f34a937ad29bda64c2e81d6433940  gcc/machmode.h
  197298337dae14fdd7ab928a1f03bec6  gcc/main.cc
  11dfd6679ddc945a2c284204df360007  gcc/match-sat-alu.pd
! c5ddc436c7fc7d969ac0c0d3a00fad52  gcc/match.pd
  b106a08a1793a5495dd87c412456484b  gcc/mcf.cc
  897c541ca992e145ad451c98941c7647  gcc/mem-stats-traits.h
  14700e76d554c9699481337fa9886be6  gcc/mem-stats.h
--- 7895,7901 ----
  a19f34a937ad29bda64c2e81d6433940  gcc/machmode.h
  197298337dae14fdd7ab928a1f03bec6  gcc/main.cc
  11dfd6679ddc945a2c284204df360007  gcc/match-sat-alu.pd
! 2041b18071123054777302e7c13b1f9e  gcc/match.pd
  b106a08a1793a5495dd87c412456484b  gcc/mcf.cc
  897c541ca992e145ad451c98941c7647  gcc/mem-stats-traits.h
  14700e76d554c9699481337fa9886be6  gcc/mem-stats.h
*************** e3efef0a89306a90708239222db79f43  gcc/ob
*** 7934,7949 ****
  97d04fb525d43f26efcc1c10bb62a70e  gcc/objcp/objcp-lang.cc
  ac6f2a373c263368c4451f24860f50d6  gcc/obstack-utils.h
  b53e19ed2e5aad878bc3422b5ed77de8  gcc/omp-api.h
! 82179b538f6732452aa493fb2faf3ea1  gcc/omp-builtins.def
! 7184b223edbc35f5c3fc2db65ec29f7e  gcc/omp-expand.cc
  2f6456a4cc816c9b75844b1625b26349  gcc/omp-expand.h
  188173a8efb4e631ba04f95371cb8804  gcc/omp-general.cc
  adfc442def98eba84925b435cfc8716a  gcc/omp-general.h
! 8275ec97ff7c25ff1348bf8b2e0e0af5  gcc/omp-low.cc
  1c84cef0613c186032b0fc0682b72ab8  gcc/omp-low.h
  e15278003e18a529caf759e00fbb8140  gcc/omp-oacc-kernels-decompose.cc
  e46559b06f0c63bac8a2626dcddfb876  gcc/omp-oacc-neuter-broadcast.cc
! ae7de9210afb99dc1a8b512d04e32d5a  gcc/omp-offload.cc
  138089e40ad5a17f7c22aaf5abfe9743  gcc/omp-offload.h
  8702574bc611ec74396ee89f3a23626b  gcc/omp-selectors.h
  b958bb5037f7a7dbb80dfda1997aff09  gcc/omp-simd-clone.cc
--- 7936,7951 ----
  97d04fb525d43f26efcc1c10bb62a70e  gcc/objcp/objcp-lang.cc
  ac6f2a373c263368c4451f24860f50d6  gcc/obstack-utils.h
  b53e19ed2e5aad878bc3422b5ed77de8  gcc/omp-api.h
! cd67d3012bd62c47e0f0598b26036ac5  gcc/omp-builtins.def
! cd81cd889b1229f529b3b1ac6c7dbe46  gcc/omp-expand.cc
  2f6456a4cc816c9b75844b1625b26349  gcc/omp-expand.h
  188173a8efb4e631ba04f95371cb8804  gcc/omp-general.cc
  adfc442def98eba84925b435cfc8716a  gcc/omp-general.h
! b3e7f4fab187280812c8b822c54a1ac9  gcc/omp-low.cc
  1c84cef0613c186032b0fc0682b72ab8  gcc/omp-low.h
  e15278003e18a529caf759e00fbb8140  gcc/omp-oacc-kernels-decompose.cc
  e46559b06f0c63bac8a2626dcddfb876  gcc/omp-oacc-neuter-broadcast.cc
! 1e19998d950d8732f6cc0764c52f5cb8  gcc/omp-offload.cc
  138089e40ad5a17f7c22aaf5abfe9743  gcc/omp-offload.h
  8702574bc611ec74396ee89f3a23626b  gcc/omp-selectors.h
  b958bb5037f7a7dbb80dfda1997aff09  gcc/omp-simd-clone.cc
*************** b88b1f2b695de39a2325d3f5407d2c67  gcc/op
*** 7962,7968 ****
  6e866f616ec7fb7f4c791b5ad349a2cd  gcc/optabs-query.h
  0135b6d221cd61d59fecebf7206e304e  gcc/optabs-tree.cc
  201b2569727bf062f908121f208a860f  gcc/optabs-tree.h
! 063b4d05c7e78b0051bc8dff51cd72e7  gcc/optabs.cc
  e41b2d12060d81ec0196a849b4956aab  gcc/optabs.def
  81371a1b977075ff9a2b9637ac88cfa3  gcc/optabs.h
  10284dae2b1b50618cee778ef473c34c  gcc/optc-gen.awk
--- 7964,7970 ----
  6e866f616ec7fb7f4c791b5ad349a2cd  gcc/optabs-query.h
  0135b6d221cd61d59fecebf7206e304e  gcc/optabs-tree.cc
  201b2569727bf062f908121f208a860f  gcc/optabs-tree.h
! 57c8869c0b98a066cf4cfb1820088baf  gcc/optabs.cc
  e41b2d12060d81ec0196a849b4956aab  gcc/optabs.def
  81371a1b977075ff9a2b9637ac88cfa3  gcc/optabs.h
  10284dae2b1b50618cee778ef473c34c  gcc/optc-gen.awk
*************** c9b2e818258f43e0a779e4c3caa8801d  gcc/op
*** 7978,7984 ****
  59b44247c12669685779dfba9d301863  gcc/opts-diagnostic.h
  dc202dff2d7d4cb632307dc4915602b0  gcc/opts-global.cc
  f55f0f0a86a11d13824924aac8c98a68  gcc/opts-jobserver.h
! aa4ebd1be168456b318078b0fa097bad  gcc/opts.cc
  e2419fa789f8684ce04c4df7343b759d  gcc/opts.h
  413859dddc66f1f7d8ea8078e096c288  gcc/ordered-hash-map-tests.cc
  fef443de1557117f8c2847206a2ea8f5  gcc/ordered-hash-map.h
--- 7980,7986 ----
  59b44247c12669685779dfba9d301863  gcc/opts-diagnostic.h
  dc202dff2d7d4cb632307dc4915602b0  gcc/opts-global.cc
  f55f0f0a86a11d13824924aac8c98a68  gcc/opts-jobserver.h
! 10aedf0b3e499ada8be40669fa9b586c  gcc/opts.cc
  e2419fa789f8684ce04c4df7343b759d  gcc/opts.h
  413859dddc66f1f7d8ea8078e096c288  gcc/ordered-hash-map-tests.cc
  fef443de1557117f8c2847206a2ea8f5  gcc/ordered-hash-map.h
*************** b1408122718335443829fcfe2d5dbcf3  gcc/pr
*** 8041,8047 ****
  70a9d1a2afc62db998ad0103753f2508  gcc/pretty-print.h
  6980e1765b2d7f75c604d4e11294a1fa  gcc/prime-paths.cc
  4791763965e448615fab35a2eda1f6bd  gcc/print-rtl-function.cc
! 5557c6bafa1eddb9cf62172b684aa3be  gcc/print-rtl.cc
  2cd52b1a67b570ee31c684eb846def0f  gcc/print-rtl.h
  f26f8ff623fefa8bdfe18ead347e914f  gcc/print-tree.cc
  db24d9f938cefb2027e91a5068f5f1d0  gcc/print-tree.h
--- 8043,8049 ----
  70a9d1a2afc62db998ad0103753f2508  gcc/pretty-print.h
  6980e1765b2d7f75c604d4e11294a1fa  gcc/prime-paths.cc
  4791763965e448615fab35a2eda1f6bd  gcc/print-rtl-function.cc
! 65b39f034b351ae7b575e4df09835707  gcc/print-rtl.cc
  2cd52b1a67b570ee31c684eb846def0f  gcc/print-rtl.h
  f26f8ff623fefa8bdfe18ead347e914f  gcc/print-tree.cc
  db24d9f938cefb2027e91a5068f5f1d0  gcc/print-tree.h
*************** f72a1e84c9facd65dc1c42ee67f21583  gcc/pu
*** 8056,8062 ****
  baab0c2ad805d6d5d47b409b65c38351  gcc/range-op-float.cc
  ec6248ff9582260bb420197fc3bd33ab  gcc/range-op-mixed.h
  9a57b405d17fbd04825aaddc4037376b  gcc/range-op-ptr.cc
! b2f0028bcee9d79b936b6ab804e1c2ce  gcc/range-op.cc
  52c9ff8b4fcf2afdee9b9f331411b42e  gcc/range-op.h
  5224210104d440bc7bae81953ca2e7f1  gcc/range.cc
  19ba1dec644467b75ebc4246acf8ff8f  gcc/range.h
--- 8058,8064 ----
  baab0c2ad805d6d5d47b409b65c38351  gcc/range-op-float.cc
  ec6248ff9582260bb420197fc3bd33ab  gcc/range-op-mixed.h
  9a57b405d17fbd04825aaddc4037376b  gcc/range-op-ptr.cc
! 9a51061917d83bb634f1c5e9bbd98de6  gcc/range-op.cc
  52c9ff8b4fcf2afdee9b9f331411b42e  gcc/range-op.h
  5224210104d440bc7bae81953ca2e7f1  gcc/range.cc
  19ba1dec644467b75ebc4246acf8ff8f  gcc/range.h
*************** e871bb7c9089d9ade710735b0803cff1  gcc/re
*** 8079,8085 ****
  435320d85f05d8915fcbd110db42a930  gcc/regenerate-attr-urls.py
  f0820f7cb3f73e347a678f682c773982  gcc/regenerate-opt-urls.py
  b433e69ef99b23dee8b8e0818e8f41e6  gcc/reginfo.cc
! b95c7dd98f46e4eb8fdda3e464b5bace  gcc/regrename.cc
  3305b4e257d68cf35538509ba53235c4  gcc/regrename.h
  6580474411878a2b9597d3b70f7de88d  gcc/regs.h
  f6ee3573d12b2bf0797c81e08e824072  gcc/regset.h
--- 8081,8087 ----
  435320d85f05d8915fcbd110db42a930  gcc/regenerate-attr-urls.py
  f0820f7cb3f73e347a678f682c773982  gcc/regenerate-opt-urls.py
  b433e69ef99b23dee8b8e0818e8f41e6  gcc/reginfo.cc
! db72f0beeac3fd2355e5b839b6e4a627  gcc/regrename.cc
  3305b4e257d68cf35538509ba53235c4  gcc/regrename.h
  6580474411878a2b9597d3b70f7de88d  gcc/regs.h
  f6ee3573d12b2bf0797c81e08e824072  gcc/regset.h
*************** eab7365dceccf86b8e9a8ccbb365afc3  gcc/rt
*** 8117,8123 ****
  24f0dd01b35b9a9b7f5bf7db574be3ec  gcc/rtl-tests.cc
  27956813d0124f5b5ec60d5a48840a34  gcc/rtl.cc
  d5fa22d4e702847e6ca00581513834fe  gcc/rtl.def
! 8226fa11daaabe9e11d323031a928fa9  gcc/rtl.h
  78a6761be9094aabb776bbba41b1906f  gcc/rtlanal.cc
  57073d447ccb92aa7b0276e4471824df  gcc/rtlanal.h
  9a5e61517f096479200fef046f8b2d35  gcc/rtlhash.cc
--- 8119,8125 ----
  24f0dd01b35b9a9b7f5bf7db574be3ec  gcc/rtl-tests.cc
  27956813d0124f5b5ec60d5a48840a34  gcc/rtl.cc
  d5fa22d4e702847e6ca00581513834fe  gcc/rtl.def
! c02fcff211685fab1dec5359f23fc85f  gcc/rtl.h
  78a6761be9094aabb776bbba41b1906f  gcc/rtlanal.cc
  57073d447ccb92aa7b0276e4471824df  gcc/rtlanal.h
  9a5e61517f096479200fef046f8b2d35  gcc/rtlhash.cc
*************** f7a30cc2e8344fa489739267da2d868b  gcc/se
*** 8695,8701 ****
  3f3d94e6f52cc07f64e195e1a75dc485  gcc/signop.h
  b4c90fe064bba484ce5c18adb1a9e544  gcc/simple-diagnostic-path.cc
  7affe31db6f7cb9c7fc77937feef0758  gcc/simple-diagnostic-path.h
! 0f24e7b693fef32b47ece9c8f803bf97  gcc/simplify-rtx.cc
  d1aec926a9488869692e8fe2f61ca75f  gcc/sort.cc
  7daa38cb1d09a2f88958f00a965d40a1  gcc/sparseset.cc
  3883b6ff1845dcec7b2822124018ab05  gcc/sparseset.h
--- 8697,8703 ----
  3f3d94e6f52cc07f64e195e1a75dc485  gcc/signop.h
  b4c90fe064bba484ce5c18adb1a9e544  gcc/simple-diagnostic-path.cc
  7affe31db6f7cb9c7fc77937feef0758  gcc/simple-diagnostic-path.h
! 480ebf274d8ff8ebd7bc1e61577b9f0a  gcc/simplify-rtx.cc
  d1aec926a9488869692e8fe2f61ca75f  gcc/sort.cc
  7daa38cb1d09a2f88958f00a965d40a1  gcc/sparseset.cc
  3883b6ff1845dcec7b2822124018ab05  gcc/sparseset.h
*************** f24751f278bee1ac8dc861467d9f96a3  gcc/ta
*** 8749,8755 ****
  8dfc7c2c4f5fcc8bae4e56f4908de008  gcc/targhooks.cc
  dcedef5930550e30cc9ea611bbffde5b  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! b3334b03cd548059f0f9f80742bab54a  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
--- 8751,8757 ----
  8dfc7c2c4f5fcc8bae4e56f4908de008  gcc/targhooks.cc
  dcedef5930550e30cc9ea611bbffde5b  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 444aad2e630c699fa1abd8b59fbb3de1  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
*************** a081939c072c3d03d878123df4595138  gcc/te
*** 18113,18118 ****
--- 18115,18121 ----
  c1d4aac82aafc22d1b2884cf0190af84  gcc/testsuite/c-c++-common/Wuse-after-free-5.c
  36db0372dbb4c26ae588c54253ff87ed  gcc/testsuite/c-c++-common/Wuse-after-free-6.c
  5d35423b98da25ba2e8266e892e6fa46  gcc/testsuite/c-c++-common/Wuse-after-free-7.c
+ 3b72d841f19361276462fa78b5a982d2  gcc/testsuite/c-c++-common/Wuse-after-free-8.c
  0ebe37f28e2842c7d2c1eb3a5adff498  gcc/testsuite/c-c++-common/Wuse-after-free.c
  65cf5a15ffd224b6b51f7d207aa29f27  gcc/testsuite/c-c++-common/Wvarargs-2.c
  23b01a4bdaf1476ffba58f0f0b8415de  gcc/testsuite/c-c++-common/Wvarargs.c
*************** ad68611dd933bed25a8c937612a58830  gcc/te
*** 19816,19822 ****
  b9f70a44108d3410396c88c5623b3919  gcc/testsuite/c-c++-common/gomp/for-7.c
  bf86d08ac1f862841d6ee39b4493443c  gcc/testsuite/c-c++-common/gomp/for-static-1.c
  d0a4060dbc0ed126c6e86ea5d4bcf6ff  gcc/testsuite/c-c++-common/gomp/for-static-2.c
! 08af212451cb918f9b4df2f1205a2462  gcc/testsuite/c-c++-common/gomp/for-static-3.c
  775485bf3a472f203814fe0952fc690f  gcc/testsuite/c-c++-common/gomp/for-static.h
  65d6afb7dedb6ef49728ff7a0f9fe0b5  gcc/testsuite/c-c++-common/gomp/groupprivate-1.c
  1216c6524ff3a9bfcf178bb37b9b3961  gcc/testsuite/c-c++-common/gomp/has-include-1.c
--- 19819,19825 ----
  b9f70a44108d3410396c88c5623b3919  gcc/testsuite/c-c++-common/gomp/for-7.c
  bf86d08ac1f862841d6ee39b4493443c  gcc/testsuite/c-c++-common/gomp/for-static-1.c
  d0a4060dbc0ed126c6e86ea5d4bcf6ff  gcc/testsuite/c-c++-common/gomp/for-static-2.c
! b25294ba62a7ddf23922b3ac4e014382  gcc/testsuite/c-c++-common/gomp/for-static-3.c
  775485bf3a472f203814fe0952fc690f  gcc/testsuite/c-c++-common/gomp/for-static.h
  65d6afb7dedb6ef49728ff7a0f9fe0b5  gcc/testsuite/c-c++-common/gomp/groupprivate-1.c
  1216c6524ff3a9bfcf178bb37b9b3961  gcc/testsuite/c-c++-common/gomp/has-include-1.c
*************** d95e5beb9a42582e039445cc2f91e1c7  gcc/te
*** 19877,19885 ****
  69ff77fd1a974b1db18e0d998cb08b86  gcc/testsuite/c-c++-common/gomp/map-incomplete-type.c
  5b565c65a09b9269ab6bc6f30d6b419a  gcc/testsuite/c-c++-common/gomp/map-multi-1.c
  e14d7592233bc253d3d0251ac861eb79  gcc/testsuite/c-c++-common/gomp/map-multi-2.c
! 6d78e699a93d27aa0ffb93ff6eee5598  gcc/testsuite/c-c++-common/gomp/masked-1.c
  c8a1a97bda2a787e6f55c68563e256b6  gcc/testsuite/c-c++-common/gomp/masked-2.c
! c9e2879a03888141786275a8f7c0fa18  gcc/testsuite/c-c++-common/gomp/masked-3.c
  cfaa12085558b78e5edbdb4a338479d2  gcc/testsuite/c-c++-common/gomp/masked-combined-1.c
  6e3cc2570637ae982148840ff511645f  gcc/testsuite/c-c++-common/gomp/masked-combined-2.c
  33991433a8d5fe2997502d08681126b9  gcc/testsuite/c-c++-common/gomp/master-combined-1.c
--- 19880,19888 ----
  69ff77fd1a974b1db18e0d998cb08b86  gcc/testsuite/c-c++-common/gomp/map-incomplete-type.c
  5b565c65a09b9269ab6bc6f30d6b419a  gcc/testsuite/c-c++-common/gomp/map-multi-1.c
  e14d7592233bc253d3d0251ac861eb79  gcc/testsuite/c-c++-common/gomp/map-multi-2.c
! e31a95532ba8a3c468d134357a100944  gcc/testsuite/c-c++-common/gomp/masked-1.c
  c8a1a97bda2a787e6f55c68563e256b6  gcc/testsuite/c-c++-common/gomp/masked-2.c
! fba158c0983ebf6818f14e5f371c9664  gcc/testsuite/c-c++-common/gomp/masked-3.c
  cfaa12085558b78e5edbdb4a338479d2  gcc/testsuite/c-c++-common/gomp/masked-combined-1.c
  6e3cc2570637ae982148840ff511645f  gcc/testsuite/c-c++-common/gomp/masked-combined-2.c
  33991433a8d5fe2997502d08681126b9  gcc/testsuite/c-c++-common/gomp/master-combined-1.c
*************** c315375dde6dfd35915ac372415190a8  gcc/te
*** 19955,19960 ****
--- 19958,19964 ----
  5a0fc856eddf5869c1607a51a511b91b  gcc/testsuite/c-c++-common/gomp/pr121452-1.c
  25357ab83549c772c7f308537e5445cf  gcc/testsuite/c-c++-common/gomp/pr121452-2.c
  caa1e1fdbda31d58e98e939eff74b757  gcc/testsuite/c-c++-common/gomp/pr122866.c
+ 3a4afa5892923aa1935223bda7abf97a  gcc/testsuite/c-c++-common/gomp/pr125121.c
  e16ef156ad193ef1f3cba60ad16e57ab  gcc/testsuite/c-c++-common/gomp/pr51360.c
  84c977571aeb43c0224137efe7f5b213  gcc/testsuite/c-c++-common/gomp/pr53580.c
  28bfd873981083756a16f70fdb0b86db  gcc/testsuite/c-c++-common/gomp/pr54017.c
*************** a89d3bc336c39386e5c41b412c5cadf6  gcc/te
*** 20109,20115 ****
  415ffbd983ab85f8ae866ca8d4790b1d  gcc/testsuite/c-c++-common/gomp/target-device-ancestor-3.c
  ca7ba586dac58a7cd9e9b58a6d8e470e  gcc/testsuite/c-c++-common/gomp/target-device-ancestor-4.c
  4561a8adae0edb1000cfcf5746ff89dd  gcc/testsuite/c-c++-common/gomp/target-device-ancestor-5.c
! f293c0a7e739752d474b940558985611  gcc/testsuite/c-c++-common/gomp/target-device-type-1.c
  66e2be8c890c4523436f834850ae75a5  gcc/testsuite/c-c++-common/gomp/target-enter-data-1.c
  8c2b82227fc84e1d964bb4a1b2f14f03  gcc/testsuite/c-c++-common/gomp/target-has-device-addr-1.c
  e5def8b0431262a97550aa7141a818a1  gcc/testsuite/c-c++-common/gomp/target-has-device-addr-2.c
--- 20113,20119 ----
  415ffbd983ab85f8ae866ca8d4790b1d  gcc/testsuite/c-c++-common/gomp/target-device-ancestor-3.c
  ca7ba586dac58a7cd9e9b58a6d8e470e  gcc/testsuite/c-c++-common/gomp/target-device-ancestor-4.c
  4561a8adae0edb1000cfcf5746ff89dd  gcc/testsuite/c-c++-common/gomp/target-device-ancestor-5.c
! bd39e057a7385829256507512dc46351  gcc/testsuite/c-c++-common/gomp/target-device-type-1.c
  66e2be8c890c4523436f834850ae75a5  gcc/testsuite/c-c++-common/gomp/target-enter-data-1.c
  8c2b82227fc84e1d964bb4a1b2f14f03  gcc/testsuite/c-c++-common/gomp/target-has-device-addr-1.c
  e5def8b0431262a97550aa7141a818a1  gcc/testsuite/c-c++-common/gomp/target-has-device-addr-2.c
*************** dbc9807bc9d36dca6cbe7c26bce4a0fd  gcc/te
*** 20169,20174 ****
--- 20173,20181 ----
  b36b586a036a4dd648a9a73563a1397e  gcc/testsuite/c-c++-common/gomp/unroll-non-rect-2.c
  ac892fefdc113f9fa56af5822c49d8a0  gcc/testsuite/c-c++-common/gomp/unroll-non-rect-3.c
  f0fe4ca6700d6810bdfbe42f7a328581  gcc/testsuite/c-c++-common/gomp/unroll-simd-1.c
+ 7288b62452f3caafdb9c3f77575f9551  gcc/testsuite/c-c++-common/gomp/uses_allocators-1.c
+ 9caf12eb516b392b1fbb932977c8b8cb  gcc/testsuite/c-c++-common/gomp/uses_allocators-2.c
+ 7c0d8a1bf2fbecaae47aa3684c166789  gcc/testsuite/c-c++-common/gomp/uses_allocators-3.c
  ae581c139df3ad068476c3c0011b10df  gcc/testsuite/c-c++-common/guality/Og-dce-1.c
  77dfce37c98a7f3ba9475b987b487300  gcc/testsuite/c-c++-common/guality/Og-dce-2.c
  d8649d74f0435be9dfbda3d78613de4d  gcc/testsuite/c-c++-common/guality/Og-dce-3.c
*************** c58be55f0f9b42d63e15276d36dbd399  gcc/te
*** 21272,21277 ****
--- 21279,21285 ----
  5e947ff19698fccb8ffb7ac65277ba5b  gcc/testsuite/c-c++-common/zero-scratch-regs-attr-usages.c
  d61dbb6ecfb4fb8470caab10c945c02e  gcc/testsuite/c-c++-common/zero-scratch-regs-leafy-1.c
  db2bfc8380fd1e62f000b54dfdcfd976  gcc/testsuite/c-c++-common/zero-scratch-regs-leafy-2.c
+ 076c5c04202a404381b0cc36cc16e32d  gcc/testsuite/cobol.dg/.gitignore
  51682f3a8bea2ecd76da9c99ab4b19b7  gcc/testsuite/cobol.dg/data1.cob
  8568f00e63b7eab80b14ed076ee683af  gcc/testsuite/cobol.dg/dg.exp
  a1fc188c12430e21de6bc4300334ed8a  gcc/testsuite/cobol.dg/error-1.cob
*************** a4281300968e70731988a9ad41094250  gcc/te
*** 21350,21363 ****
  2dff2e7a7eb43c3593f29502b0eddd47  gcc/testsuite/cobol.dg/group2/CBL_ALLOC_MEM___CBL_FREE_MEM.out
  8190e0a0c61f8db4cff5342d6cd08829  gcc/testsuite/cobol.dg/group2/CBL_CHECK_FILE_EXIST.cob
  06dc68af3c826439a8c99cb8957df18c  gcc/testsuite/cobol.dg/group2/CBL_CHECK_FILE_EXIST.out
! a1d65d48f514b195a72ca57c38425bca  gcc/testsuite/cobol.dg/group2/CBL_CREATE_FILE___CBL_WRITE_FILE___CBL_CLOSE_FILE.cob
! 260b0eb0fcf17e54946e03c728753ae2  gcc/testsuite/cobol.dg/group2/CBL_DELETE_FILE.cob
  0fddcb96dc71beab1fb42cd6ff1d2d80  gcc/testsuite/cobol.dg/group2/CBL_DELETE_FILE.out
! bb5297a301d5fee9d5fd6a2f839eca18  gcc/testsuite/cobol.dg/group2/CBL_OPEN_FILE___CBL_CLOSE_FILE.cob
  4487092fe31be763f767686e9664f8f0  gcc/testsuite/cobol.dg/group2/CBL_OPEN_FILE___CBL_CLOSE_FILE.out
! 271df2b37cbbaab2846f300200a2aba5  gcc/testsuite/cobol.dg/group2/CBL_OPEN_FILE___CBL_READ_FILE___CBL_CLOSE_FILE.cob
  23640a3afdfd94cc82616a80f235ba4a  gcc/testsuite/cobol.dg/group2/CBL_OPEN_FILE___CBL_READ_FILE___CBL_CLOSE_FILE.out
! c74ada6645c215524d1625b21f8753a0  gcc/testsuite/cobol.dg/group2/CBL_READ_FILE__check_file_size_with_flags___128.cob
  b4cad73bd9c7606feb792952c7e1ac43  gcc/testsuite/cobol.dg/group2/CDF2_-_DEFINE_FOO_AS_literal-1.cob
  2a3e1fc6506b14d50ecf4c86a2e114c9  gcc/testsuite/cobol.dg/group2/CDF2_-_DEFINE_FOO_AS_literal-1.out
  43d89ba687f04551cb2d482b5a9f8f1c  gcc/testsuite/cobol.dg/group2/CDF2_Trouble_with___IF__1_.cob
--- 21358,21371 ----
  2dff2e7a7eb43c3593f29502b0eddd47  gcc/testsuite/cobol.dg/group2/CBL_ALLOC_MEM___CBL_FREE_MEM.out
  8190e0a0c61f8db4cff5342d6cd08829  gcc/testsuite/cobol.dg/group2/CBL_CHECK_FILE_EXIST.cob
  06dc68af3c826439a8c99cb8957df18c  gcc/testsuite/cobol.dg/group2/CBL_CHECK_FILE_EXIST.out
! d14a5b707e1e8f0df47907643a000304  gcc/testsuite/cobol.dg/group2/CBL_CREATE_FILE___CBL_WRITE_FILE___CBL_CLOSE_FILE.cob
! dcb96dff3f34f2966c54e6d42f225c37  gcc/testsuite/cobol.dg/group2/CBL_DELETE_FILE.cob
  0fddcb96dc71beab1fb42cd6ff1d2d80  gcc/testsuite/cobol.dg/group2/CBL_DELETE_FILE.out
! c0f6cc575cb72c0198b5576b0ddb445d  gcc/testsuite/cobol.dg/group2/CBL_OPEN_FILE___CBL_CLOSE_FILE.cob
  4487092fe31be763f767686e9664f8f0  gcc/testsuite/cobol.dg/group2/CBL_OPEN_FILE___CBL_CLOSE_FILE.out
! 63f1bbd4c938871084f7b99dcf53f3d3  gcc/testsuite/cobol.dg/group2/CBL_OPEN_FILE___CBL_READ_FILE___CBL_CLOSE_FILE.cob
  23640a3afdfd94cc82616a80f235ba4a  gcc/testsuite/cobol.dg/group2/CBL_OPEN_FILE___CBL_READ_FILE___CBL_CLOSE_FILE.out
! 80aafd780d1624f49d39b416f00dc89f  gcc/testsuite/cobol.dg/group2/CBL_READ_FILE__check_file_size_with_flags___128.cob
  b4cad73bd9c7606feb792952c7e1ac43  gcc/testsuite/cobol.dg/group2/CDF2_-_DEFINE_FOO_AS_literal-1.cob
  2a3e1fc6506b14d50ecf4c86a2e114c9  gcc/testsuite/cobol.dg/group2/CDF2_-_DEFINE_FOO_AS_literal-1.out
  43d89ba687f04551cb2d482b5a9f8f1c  gcc/testsuite/cobol.dg/group2/CDF2_Trouble_with___IF__1_.cob
*************** b026324c6904b2a9cb4b88d6d61c81d1  gcc/te
*** 21444,21449 ****
--- 21452,21459 ----
  fe9d26c3e620eeb69bd166c8be89fb8f  gcc/testsuite/cobol.dg/group2/Context_sensitive_words__7_.out
  b3d5fc2d4df2b935a379f0eca20cf15a  gcc/testsuite/cobol.dg/group2/Context_sensitive_words__8_.cob
  84315cd1eac36ec2ab6248bb81f1c443  gcc/testsuite/cobol.dg/group2/Context_sensitive_words__8_.out
+ 7e37f6e526ef031d09f66f84eff52ab4  gcc/testsuite/cobol.dg/group2/DEBUG-ITEM_using_mh_identical.cob
+ 345ace06711da447fe250f82db1d24b1  gcc/testsuite/cobol.dg/group2/DEBUG-ITEM_using_mh_identical.out
  cb295816eac94e1e2dac052067a68f19  gcc/testsuite/cobol.dg/group2/DEBUG_Line.cob
  e63f1cd9d134b515c696bba014cb1dff  gcc/testsuite/cobol.dg/group2/DEBUG_Line.out
  020056f99a3f85893322ab8e2d0ee543  gcc/testsuite/cobol.dg/group2/DECIMAL-POINT_is_COMMA__1_.cob
*************** f3e9be272408d8ca4668a2b5644753ee  gcc/te
*** 21696,21704 ****
  16beec544d2613ef96d35980f67ec279  gcc/testsuite/cobol.dg/group2/INITIALIZE_complex_group__2_.out
  dcccc92023e69c46107d7dffc5e79975  gcc/testsuite/cobol.dg/group2/INITIALIZE_group_entry_with_OCCURS.cob
  33ecb5f89ee2246004780eebb222567e  gcc/testsuite/cobol.dg/group2/INITIALIZE_of_EXTERNAL_data_items.cob
! ea753298b65069d6d9e4c8a91ec58dc2  gcc/testsuite/cobol.dg/group2/INITIALIZE_with_-defaultbyte__ASCII_.cob
  8a2546145c459e88991240c189cb8a78  gcc/testsuite/cobol.dg/group2/INITIALIZE_with_-defaultbyte__ASCII_.out
! b19244912577febdfee565f97ff4ee1f  gcc/testsuite/cobol.dg/group2/INITIALIZE_with_-defaultbyte__EBCDIC_.cob
  af7c87c2a9d892859e28aeb46f6d68c4  gcc/testsuite/cobol.dg/group2/INITIALIZE_with_-defaultbyte__EBCDIC_.out
  5b7789488255b73410fcf4bdeab0dc51  gcc/testsuite/cobol.dg/group2/INITIALIZE_with_FILLER.cob
  00f8b5280fd78e2c0344cfbe80ff2a06  gcc/testsuite/cobol.dg/group2/INITIALIZE_with_REDEFINES.cob
--- 21706,21714 ----
  16beec544d2613ef96d35980f67ec279  gcc/testsuite/cobol.dg/group2/INITIALIZE_complex_group__2_.out
  dcccc92023e69c46107d7dffc5e79975  gcc/testsuite/cobol.dg/group2/INITIALIZE_group_entry_with_OCCURS.cob
  33ecb5f89ee2246004780eebb222567e  gcc/testsuite/cobol.dg/group2/INITIALIZE_of_EXTERNAL_data_items.cob
! 2229016602e13896b0b23a060d0464e7  gcc/testsuite/cobol.dg/group2/INITIALIZE_with_-defaultbyte__ASCII_.cob
  8a2546145c459e88991240c189cb8a78  gcc/testsuite/cobol.dg/group2/INITIALIZE_with_-defaultbyte__ASCII_.out
! 2a2aad2619f5d55b414f76a2dfab4677  gcc/testsuite/cobol.dg/group2/INITIALIZE_with_-defaultbyte__EBCDIC_.cob
  af7c87c2a9d892859e28aeb46f6d68c4  gcc/testsuite/cobol.dg/group2/INITIALIZE_with_-defaultbyte__EBCDIC_.out
  5b7789488255b73410fcf4bdeab0dc51  gcc/testsuite/cobol.dg/group2/INITIALIZE_with_FILLER.cob
  00f8b5280fd78e2c0344cfbe80ff2a06  gcc/testsuite/cobol.dg/group2/INITIALIZE_with_REDEFINES.cob
*************** a3a031c83f7e6f75afedffdeac38a3ee  gcc/te
*** 21870,21876 ****
  f81e4d1631666dc73cab672753a19f96  gcc/testsuite/cobol.dg/group2/POINTER__display.cob
  1a03d00f7a2dbbf286fe10017695b9e0  gcc/testsuite/cobol.dg/group2/POINTER__display.out
  b39809d1c9370158865c2c0b5beb66d1  gcc/testsuite/cobol.dg/group2/PR39_RT3573_-_Parser_issue_w_concat._source_lines.cob
- 0268a79c82d44b8c4f76a35e748e11f9  gcc/testsuite/cobol.dg/group2/PR59_RT3586_-_Code_format_heuristic_fails.cob
  9ed4dcbed0b57b655196739e4413e78a  gcc/testsuite/cobol.dg/group2/Preserve_collation_past_a_CALL.cob
  d2af8b51d78e3dbc2989b52264f76455  gcc/testsuite/cobol.dg/group2/Preserve_collation_past_a_CALL.out
  b998cc667e7bffb26d211ded81f2ea9a  gcc/testsuite/cobol.dg/group2/Program-to-program_parameters_and_retvals.cob
--- 21880,21885 ----
*************** dc147fd7a0a3e750a028e4cc6772dfc7  gcc/te
*** 21905,21911 ****
  912e77fc81a18dc6a7f5b8332a5f5533  gcc/testsuite/cobol.dg/group2/ROUNDING_omnibus_Floating-Point_from_COMPUTE.out
  de18d438e9f2018ba6c22153beb87973  gcc/testsuite/cobol.dg/group2/ROUNDING_omnibus_NumericDisplay_from_COMPUTE.cob
  dc1dafad7c3c0c3499ca87dd61a0cb48  gcc/testsuite/cobol.dg/group2/ROUNDING_omnibus_NumericDisplay_from_COMPUTE.out
- 780870b8d2a4044bdb63bfa3905ff81b  gcc/testsuite/cobol.dg/group2/RT3609_Unexpected_PROCESS.cob
  e38fa87f68f46664a4a725247faeaab1  gcc/testsuite/cobol.dg/group2/Recursive_FUNCTION_with_local-storage.cob
  0bba0c9388bb78c11a2533fbadc2974e  gcc/testsuite/cobol.dg/group2/Recursive_FUNCTION_with_local-storage.out
  c63f4ece442994445b3b97fe2a8108dd  gcc/testsuite/cobol.dg/group2/Recursive_PERFORM_paragraph.cob
--- 21914,21919 ----
*************** b03be3a03970717959df65ccdcbebe88  gcc/te
*** 22665,22670 ****
--- 22673,22679 ----
  7998896b5b941ead8835759e67d0fff5  gcc/testsuite/g++.dg/asan/pr117845-2.C
  bcebd751b296d1287bb9fa7c080ccecb  gcc/testsuite/g++.dg/asan/pr117845.C
  350e8cfd78cd243b5ca66f3b0149e4b7  gcc/testsuite/g++.dg/asan/pr118763.C
+ 97d271ad3822668b82fdab6ac348be35  gcc/testsuite/g++.dg/asan/pr120201-1.C
  5b2d3a20968e0f4254721c157eb7c67c  gcc/testsuite/g++.dg/asan/pr120608-3.C
  8cb6a9a2f920a7486ac33480f9cab891  gcc/testsuite/g++.dg/asan/pr120608-4.C
  a012f82a08211153b4c4517641e43c3d  gcc/testsuite/g++.dg/asan/pr120608.C
*************** cf95adc386869ec65ad50be2ca554a82  gcc/te
*** 23862,23874 ****
  5b72ece56881b0ec52c85aec0d5d361b  gcc/testsuite/g++.dg/cpp0x/attr-nodiscard1.C
  b03e6a43a7e9cf64dab0d6195147e9b5  gcc/testsuite/g++.dg/cpp0x/attr-noreturn1.C
  ed0097e779e9a72a31133b42bb0cd827  gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi1.C
  7352c0771dbd4295ad0ef9ee6378f39d  gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi2.C
  5904ea978696b787fe0cfdcbdbdf57d7  gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi3.C
  7a6cbeac006c485fa1fd98e455eedc97  gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi4.C
  155683cde6d929791b366a47597a4025  gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi5.C
  0a413d43b7fd738c324c26137447ebc5  gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi6.C
  f5124facc2b563a303edb72de7f48d13  gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi7.C
! 3ece1de8376a063b605714bac592f9c6  gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi8.C
  e37ce6b95eeaac98d87f9fdc32c84968  gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi_syntax.C
  f10d6ce6082c1600b5f039e4611a6f02  gcc/testsuite/g++.dg/cpp0x/attr-unlikely1.C
  2dd5002330171bc4d37d9ba0cc381c6a  gcc/testsuite/g++.dg/cpp0x/attrib54.C
--- 23871,23886 ----
  5b72ece56881b0ec52c85aec0d5d361b  gcc/testsuite/g++.dg/cpp0x/attr-nodiscard1.C
  b03e6a43a7e9cf64dab0d6195147e9b5  gcc/testsuite/g++.dg/cpp0x/attr-noreturn1.C
  ed0097e779e9a72a31133b42bb0cd827  gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi1.C
+ 747be4ca50675ea97bc64884b3419e36  gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi10.C
+ 27dbd4def6114e68799e9af4b90a8994  gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi11.C
  7352c0771dbd4295ad0ef9ee6378f39d  gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi2.C
  5904ea978696b787fe0cfdcbdbdf57d7  gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi3.C
  7a6cbeac006c485fa1fd98e455eedc97  gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi4.C
  155683cde6d929791b366a47597a4025  gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi5.C
  0a413d43b7fd738c324c26137447ebc5  gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi6.C
  f5124facc2b563a303edb72de7f48d13  gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi7.C
! a2a55037f854a3a9850bb928ec112cb2  gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi8.C
! de51eaf38979bc1b05f0bf114a838222  gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi9.C
  e37ce6b95eeaac98d87f9fdc32c84968  gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi_syntax.C
  f10d6ce6082c1600b5f039e4611a6f02  gcc/testsuite/g++.dg/cpp0x/attr-unlikely1.C
  2dd5002330171bc4d37d9ba0cc381c6a  gcc/testsuite/g++.dg/cpp0x/attrib54.C
*************** fc05398acf4b63071f73ac571828a634  gcc/te
*** 24458,24463 ****
--- 24470,24477 ----
  bc4346829b56020609cc74488154f418  gcc/testsuite/g++.dg/cpp0x/dc7.C
  8305b7b7dfca623e4a99cb58ae840958  gcc/testsuite/g++.dg/cpp0x/dc8.C
  57de5b9f42f6d62b749bc1faa80d815d  gcc/testsuite/g++.dg/cpp0x/dc9.C
+ f7582540a35c778bba20ac7561a0f046  gcc/testsuite/g++.dg/cpp0x/dealloc1.C
+ 7dc98403b275b3585859c6f6d30e0229  gcc/testsuite/g++.dg/cpp0x/dealloc2.C
  1772402035ea86d1426eefecdfae9712  gcc/testsuite/g++.dg/cpp0x/decl-loc1.C
  30680b2c8c129b869895e068c367f5eb  gcc/testsuite/g++.dg/cpp0x/decltype-100482.C
  d66fad9c3a4ee1a6a2d3efdf9a2af04a  gcc/testsuite/g++.dg/cpp0x/decltype-110175.C
*************** d4eeb506a032aed4635726351941ce50  gcc/te
*** 24689,24694 ****
--- 24703,24709 ----
  5c711968979f97af62f871b9ff96e097  gcc/testsuite/g++.dg/cpp0x/elision_conv.C
  712ed8dcff4a69a8702cf91a4d752be3  gcc/testsuite/g++.dg/cpp0x/elision_neg.C
  af82f06b90c9ecba7584ae36c218bc38  gcc/testsuite/g++.dg/cpp0x/elision_weak.C
+ 95f78f13feaea0346b9d6aab7be1315d  gcc/testsuite/g++.dg/cpp0x/enum-bool-conv.C
  c4193b90ae524b68eaa0330d6b792e16  gcc/testsuite/g++.dg/cpp0x/enum1.C
  239bcda977968c64660c02c29c92dd44  gcc/testsuite/g++.dg/cpp0x/enum10.C
  8b05050aad9e84ebb22fb71980c21641  gcc/testsuite/g++.dg/cpp0x/enum11.C
*************** fec5cec13e8a17476aae459e74aa149b  gcc/te
*** 27493,27499 ****
  61c28771270a9d7c9e9c8ad6ed412fd4  gcc/testsuite/g++.dg/cpp1z/aggr-base9.C
  29ef529ef6428e81f6001c7d90042d38  gcc/testsuite/g++.dg/cpp1z/aligned-new1.C
  f874c08bc54ce2c6027cdae5de140198  gcc/testsuite/g++.dg/cpp1z/aligned-new2.C
! 51db9d7274239450f19a334955f52db4  gcc/testsuite/g++.dg/cpp1z/aligned-new3.C
  ef7495e58b04450ecb727d071ddfecfa  gcc/testsuite/g++.dg/cpp1z/aligned-new4.C
  ca10f046e47ea09ba5b87084372f1ce2  gcc/testsuite/g++.dg/cpp1z/aligned-new4a.C
  15779dfebe4d18986ed2044d4ec8287b  gcc/testsuite/g++.dg/cpp1z/aligned-new5.C
--- 27508,27514 ----
  61c28771270a9d7c9e9c8ad6ed412fd4  gcc/testsuite/g++.dg/cpp1z/aggr-base9.C
  29ef529ef6428e81f6001c7d90042d38  gcc/testsuite/g++.dg/cpp1z/aligned-new1.C
  f874c08bc54ce2c6027cdae5de140198  gcc/testsuite/g++.dg/cpp1z/aligned-new2.C
! b253c93eef742fb3d4fa18137966d91e  gcc/testsuite/g++.dg/cpp1z/aligned-new3.C
  ef7495e58b04450ecb727d071ddfecfa  gcc/testsuite/g++.dg/cpp1z/aligned-new4.C
  ca10f046e47ea09ba5b87084372f1ce2  gcc/testsuite/g++.dg/cpp1z/aligned-new4a.C
  15779dfebe4d18986ed2044d4ec8287b  gcc/testsuite/g++.dg/cpp1z/aligned-new5.C
*************** a3a8cba4fbee69e46ecf1bdb30c7d924  gcc/te
*** 28554,28559 ****
--- 28569,28575 ----
  4fe3609f7385a1f131df362a10ee6065  gcc/testsuite/g++.dg/cpp26/variadic-comma5.C
  6ca56d56bbd9d4ac1e7cb5313516359b  gcc/testsuite/g++.dg/cpp26/variadic-friend1.C
  bfd759702f3238655df26d94d570e2d2  gcc/testsuite/g++.dg/cpp29/cplusplus.C
+ c7311413796bfcaf49e8df626564a11d  gcc/testsuite/g++.dg/cpp29/dealloc1.C
  7107326920773a76ba2e727819370f4f  gcc/testsuite/g++.dg/cpp29/defaulted1.C
  e2293005b0c015ae155330fad772c2c8  gcc/testsuite/g++.dg/cpp29/defaulted2.C
  e00b0a5c5d4ee468cca225875b471f34  gcc/testsuite/g++.dg/cpp29/defaulted3.C
*************** f5d0f986539b8cf3edb4d60aaa9e06d0  gcc/te
*** 28875,28880 ****
--- 28891,28897 ----
  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
+ 6f7c35eb40c4cf57851155eb985058a9  gcc/testsuite/g++.dg/cpp2a/concepts-pr126066.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
*************** cc0268c504556040e78bce5b6a029f64  gcc/te
*** 29380,29385 ****
--- 29397,29403 ----
  709f9b5a4431b31c6b23bb87e2d889b1  gcc/testsuite/g++.dg/cpp2a/destroying-delete4.C
  5ff09e498de8dbff6dd5a6ee5327b8d2  gcc/testsuite/g++.dg/cpp2a/destroying-delete5.C
  95bcd1b1427453dfdb84ee76afa7dba0  gcc/testsuite/g++.dg/cpp2a/destroying-delete6.C
+ 124f9bf7fcf916ee0e9d594eb0776a0e  gcc/testsuite/g++.dg/cpp2a/destroying-delete7.C
  fe646b9e255c8d870f03e6fec32b7529  gcc/testsuite/g++.dg/cpp2a/enum-conv1.C
  dedca5854b0e7bf2b75e811a11f0a159  gcc/testsuite/g++.dg/cpp2a/enum-conv2.C
  e2d076d1bf2b561366a64fc2e1ea3381  gcc/testsuite/g++.dg/cpp2a/enum-conv3.C
*************** d9c9d8a7518043a8a965466d7b96aeec  gcc/te
*** 30825,30830 ****
--- 30843,30860 ----
  ef7a27eaaae64ee5c9641d464b68f702  gcc/testsuite/g++.dg/ext/attr-no-dangling7.C
  d01dc066f08eb46dfbd8ce4a0087aa6d  gcc/testsuite/g++.dg/ext/attr-no-dangling8.C
  11a017757097a96b6a5dce363a372449  gcc/testsuite/g++.dg/ext/attr-no-dangling9.C
+ 239dde7aa8c4722825b106870bb8a781  gcc/testsuite/g++.dg/ext/attr-no_specializations1.C
+ bde356f6165bded1682d1111004fde24  gcc/testsuite/g++.dg/ext/attr-no_specializations10.C
+ 8e1675bae6405ae22c8b82b23886acf4  gcc/testsuite/g++.dg/ext/attr-no_specializations11.C
+ 28314e2ddd45c9c4d5b519fe836cf421  gcc/testsuite/g++.dg/ext/attr-no_specializations12.C
+ 440813064ae4fddd209bd4197890d6d3  gcc/testsuite/g++.dg/ext/attr-no_specializations2.C
+ 31d8e1ac63153c6184946c40e4144e59  gcc/testsuite/g++.dg/ext/attr-no_specializations3.C
+ 42a70d664fde2a53caf6bea5d8ef3b45  gcc/testsuite/g++.dg/ext/attr-no_specializations4.C
+ 22530015d698e7fb3ffb7502853c2ec6  gcc/testsuite/g++.dg/ext/attr-no_specializations5.C
+ 3a19124ff3e674fabbac4756cc0f3e74  gcc/testsuite/g++.dg/ext/attr-no_specializations6.C
+ b7c914d02a23cf6562723f266fa51aa0  gcc/testsuite/g++.dg/ext/attr-no_specializations7.C
+ f4b2c3ff0b05f78eaaacb4c59d31e68a  gcc/testsuite/g++.dg/ext/attr-no_specializations8.C
+ cc0d4b26bdbf6fcebea893ea0fa2da68  gcc/testsuite/g++.dg/ext/attr-no_specializations9.C
  e838465650dcaf4ebfc99419e88cbd0d  gcc/testsuite/g++.dg/ext/attr-noinline-2.C
  b37c917c3a9e6449d44ee2d37a652ed1  gcc/testsuite/g++.dg/ext/attr-noinline-3.C
  c0753527e7e02acfc0eb52c0c85b43ad  gcc/testsuite/g++.dg/ext/attr-noinline-4.C
*************** d15d49ffd84e37cdcbb1e23564c8c44e  gcc/te
*** 33636,33641 ****
--- 33666,33675 ----
  da4bb7bd422fbc928dca8b82012b7265  gcc/testsuite/g++.dg/lto/pr122905_0.C
  7be91aa845a7810b3947d606a1ffa169  gcc/testsuite/g++.dg/lto/pr122905_1.C
  c1520ffb1e8996e77b2da492ecc42175  gcc/testsuite/g++.dg/lto/pr123376_0.C
+ aa63ed16efc23c3cd90945cae6feaca6  gcc/testsuite/g++.dg/lto/pr126194.h
+ b321c964a71193311ce1f572263f323f  gcc/testsuite/g++.dg/lto/pr126194_0.C
+ b0221442ff7a2932e8574b51f9806156  gcc/testsuite/g++.dg/lto/pr126194_1.C
+ 2ff30c8dcd415ce0d2a171da46c415cd  gcc/testsuite/g++.dg/lto/pr126194_2.C
  ba9b686c163762488051ec4094a838b2  gcc/testsuite/g++.dg/lto/pr40818_0.C
  08a786b250f802e56e458c7d60a358fc  gcc/testsuite/g++.dg/lto/pr42987_0.C
  1b56fef803fe85ec97121919ad3ba2b9  gcc/testsuite/g++.dg/lto/pr42987_1.C
*************** b2f7380f8fb82d61118b86f574efdf5b  gcc/te
*** 38039,38044 ****
--- 38073,38079 ----
  ef7e9d0ca8688dc92475afb0aa712b4d  gcc/testsuite/g++.dg/reflect/is_noexcept2.C
  529256eb00d725cf4e7fe378768231fd  gcc/testsuite/g++.dg/reflect/is_noexcept3.C
  251cf6db3cd6d8fe18e0a994d7f2da41  gcc/testsuite/g++.dg/reflect/is_noexcept4.C
+ e294e31315d75556c03ba031bb7ca087  gcc/testsuite/g++.dg/reflect/is_noexcept5.C
  2315aabaecef6a5b6556b8d384a700b1  gcc/testsuite/g++.dg/reflect/is_nonstatic_data_member1.C
  1e283c86c818492e229ab35822b90502  gcc/testsuite/g++.dg/reflect/is_object1.C
  9b9e3859a91aeb1c0e35e658a1cb1d74  gcc/testsuite/g++.dg/reflect/is_object2.C
*************** b0d394df2af420d13fbc302b3902dc22  gcc/te
*** 41545,41550 ****
--- 41580,41586 ----
  a1de6b04521ef70bac619958562f4c5c  gcc/testsuite/g++.dg/warn/Wclass-memaccess-7.C
  f1e5bb888ee2d1bc775a71d685900f67  gcc/testsuite/g++.dg/warn/Wclass-memaccess.C
  b812be334eaa3a473abfff0d3d229e17  gcc/testsuite/g++.dg/warn/Wconditionally-supported-1.C
+ 3dc408357fee5eb47e0f9f33f9df4676  gcc/testsuite/g++.dg/warn/Wconversion-enum-fixed.C
  0a5318e679484e4c698dc3557ca77477  gcc/testsuite/g++.dg/warn/Wconversion-integer.C
  6cdba00d4fc0e7d2742e63c92a31a3df  gcc/testsuite/g++.dg/warn/Wconversion-null-2.C
  b256e2e86a0c654704aeae4db0b68327  gcc/testsuite/g++.dg/warn/Wconversion-null-3.C
*************** b70d756a0a86e842f6ab1a8fd14569f7  gcc/te
*** 41684,41689 ****
--- 41720,41726 ----
  401a1cfacaa701f3e1459d7dcaf225d9  gcc/testsuite/g++.dg/warn/Winline-4.C
  b383f047a6af35035ecd836253175c30  gcc/testsuite/g++.dg/warn/Wint-in-bool-context-1.C
  ae2abc2a5a067a849f424b7aee4a38f1  gcc/testsuite/g++.dg/warn/Wint-in-bool-context-2.C
+ f071bd61d88c61c9f22d71874565dfad  gcc/testsuite/g++.dg/warn/Wint-in-bool-context-bool-enum.C
  c84bc79847f1966edf2b1f4b3b013e19  gcc/testsuite/g++.dg/warn/Winterference-2.C
  7a5fabbcc3f8e983ae01b4963469c94a  gcc/testsuite/g++.dg/warn/Winterference.C
  f1360330e2c03adfb9e1efd9136d3f31  gcc/testsuite/g++.dg/warn/Winterference.H
*************** cf45e3dae0a9f4aedcd5c93faa7b6f5b  gcc/te
*** 45792,45797 ****
--- 45829,45835 ----
  47d08c40b71990fcfb466ef02b924211  gcc/testsuite/g++.target/aarch64/pr121290_1.C
  8e1e90695dc0c9fe994d520fb00bb0c8  gcc/testsuite/g++.target/aarch64/pr122890.C
  cee7440840fa58ea5280af197f3054eb  gcc/testsuite/g++.target/aarch64/pr124126-1.C
+ 2502cf4e66ebdacf47afb1aad17bc4f6  gcc/testsuite/g++.target/aarch64/pr124146.C
  1755134bcb84bdbcfd658df7150649e0  gcc/testsuite/g++.target/aarch64/pr89752.C
  ba9d23bf9864be2b6061429c3faa49b7  gcc/testsuite/g++.target/aarch64/pr94052.C
  376b3a47b3ddd89e448a765321d0e622  gcc/testsuite/g++.target/aarch64/pr94514.C
*************** fe98d8bd643079ebf7d12496d3189d03  gcc/te
*** 46227,46232 ****
--- 46265,46271 ----
  359da1e47be4e887387ecc78a9efb8cc  gcc/testsuite/g++.target/i386/pr124002.C
  8f297166e83d789d19e7836ae95ce7f3  gcc/testsuite/g++.target/i386/pr124136.C
  5e8bf5da132fba3705e11a2cd873dcf7  gcc/testsuite/g++.target/i386/pr125009.C
+ 5e352aabf7f3698e1bb6dff0ccccca8a  gcc/testsuite/g++.target/i386/pr126202-1.C
  55fb67abf6517f92b1a0240d2c06b5c5  gcc/testsuite/g++.target/i386/pr35513-1.C
  14dde546e4eefec7aa6d1ac41261cb16  gcc/testsuite/g++.target/i386/pr35513-2.C
  1c706f97b6d93c0124dc4a203c98f6d2  gcc/testsuite/g++.target/i386/pr57362.C
*************** d8ba8c12676113bab781623c9b4c8a1f  gcc/te
*** 46470,46476 ****
  a8a857220d4221ed70fa20fdbdf0cfca  gcc/testsuite/g++.target/riscv/pr122692-run-1.C
  605f86e49704fde491263d58c2ccade7  gcc/testsuite/g++.target/riscv/pr122692-run-2.C
  4c45e102d6dd19ee08a476904b64542d  gcc/testsuite/g++.target/riscv/pr96759.C
! d0ea33de01bf1584f5a6a7044ec98f71  gcc/testsuite/g++.target/riscv/pr97682.C
  daceaf1f0da7e5c955e4b13180536bca  gcc/testsuite/g++.target/riscv/redundant-andi.C
  6e6f612caa7b4f4e5eea9cd6bba4227b  gcc/testsuite/g++.target/riscv/redundant-bitmap-1.C
  7079827a2e9106d7dd26baf0312903e6  gcc/testsuite/g++.target/riscv/redundant-bitmap-2.C
--- 46509,46515 ----
  a8a857220d4221ed70fa20fdbdf0cfca  gcc/testsuite/g++.target/riscv/pr122692-run-1.C
  605f86e49704fde491263d58c2ccade7  gcc/testsuite/g++.target/riscv/pr122692-run-2.C
  4c45e102d6dd19ee08a476904b64542d  gcc/testsuite/g++.target/riscv/pr96759.C
! 990bf8b294d516f7b952bfe2bc8d8dfd  gcc/testsuite/g++.target/riscv/pr97682.C
  daceaf1f0da7e5c955e4b13180536bca  gcc/testsuite/g++.target/riscv/redundant-andi.C
  6e6f612caa7b4f4e5eea9cd6bba4227b  gcc/testsuite/g++.target/riscv/redundant-bitmap-1.C
  7079827a2e9106d7dd26baf0312903e6  gcc/testsuite/g++.target/riscv/redundant-bitmap-2.C
*************** b7150a91a8e64c0a2f8d47a9f857fd6e  gcc/te
*** 49847,49854 ****
--- 49886,49897 ----
  e88a36f4cba0e85d5491d4b566b19508  gcc/testsuite/gcc.c-torture/execute/pr119428.c
  6cd050f88ca0f122ca3d062c32ebb9cf  gcc/testsuite/gcc.c-torture/execute/pr120630.c
  eda2af339f8dd266a02b2d61a5444a03  gcc/testsuite/gcc.c-torture/execute/pr120677.c
+ 569c138ac2b73c5d1633d975b19e6702  gcc/testsuite/gcc.c-torture/execute/pr121957.c
  d41fd1ea09327fdf9b68f657aea5661c  gcc/testsuite/gcc.c-torture/execute/pr122000.c
  529fc2a1e92dc790d3766cd8554fc89c  gcc/testsuite/gcc.c-torture/execute/pr122943.c
+ 1075fa2740104b9dd28422d00fde9022  gcc/testsuite/gcc.c-torture/execute/pr123625-2.c
+ f4f6e039f160bdc2175cc8676c2a8114  gcc/testsuite/gcc.c-torture/execute/pr123625-3.c
+ ec59d8e2bac88c076827488900a91051  gcc/testsuite/gcc.c-torture/execute/pr123625.c
  55bc090de1c97a85eaf8103e85c7cb36  gcc/testsuite/gcc.c-torture/execute/pr123753.c
  cb4c82184137c0933c1bae60a7df15bc  gcc/testsuite/gcc.c-torture/execute/pr123864.c
  95b7f2d687a5a5e2df1e09fad845a195  gcc/testsuite/gcc.c-torture/execute/pr123978.c
*************** f5a2800fc5f21185bd9bdbd69e270c10  gcc/te
*** 51946,51951 ****
--- 51989,51996 ----
  01c412c33251aced84f6f15e9bb2a7e5  gcc/testsuite/gcc.dg/array-quals-2.c
  e8f9574f1002387b520427c731d628de  gcc/testsuite/gcc.dg/aru-2.c
  4515ba2b6d94ef19f8681e85c5f721a7  gcc/testsuite/gcc.dg/asan/asan.exp
+ 72859d45a74bca392d69fe3d6a7b3d0b  gcc/testsuite/gcc.dg/asan/bitint-1.c
+ 7b23978f6137088537a436d8e4b439cb  gcc/testsuite/gcc.dg/asan/bitint-2.c
  eecad27701ac211149a09a067279d393  gcc/testsuite/gcc.dg/asan/has-feature-asan.c
  b8a049317908d7e0078316ad82437346  gcc/testsuite/gcc.dg/asan/nested-1.c
  738544a74dbe22f6a41201227dfe9cd9  gcc/testsuite/gcc.dg/asan/nosanitize-and-inline.c
*************** e370903640e76bf4ef407aafe0286689  gcc/te
*** 52031,52037 ****
  9efce8a7bcfa7d5ea26744979670b6df  gcc/testsuite/gcc.dg/asm-hard-reg-1.c
  fcd16a3b4752fbbf0e1c77740e687fbd  gcc/testsuite/gcc.dg/asm-hard-reg-2.c
  f60c7b0f361b02f30b6eca3c14c7a5ed  gcc/testsuite/gcc.dg/asm-hard-reg-3.c
! 26952dfd8a68ceffad0b6d737199db7f  gcc/testsuite/gcc.dg/asm-hard-reg-4.c
  5570e0994cf3a287da4b422fdc9395e9  gcc/testsuite/gcc.dg/asm-hard-reg-5.c
  cc74ad07bc21697eab1ac4bdbb25f0f5  gcc/testsuite/gcc.dg/asm-hard-reg-6.c
  1a27715b4b755fb46b13300fd15e4690  gcc/testsuite/gcc.dg/asm-hard-reg-7.c
--- 52076,52082 ----
  9efce8a7bcfa7d5ea26744979670b6df  gcc/testsuite/gcc.dg/asm-hard-reg-1.c
  fcd16a3b4752fbbf0e1c77740e687fbd  gcc/testsuite/gcc.dg/asm-hard-reg-2.c
  f60c7b0f361b02f30b6eca3c14c7a5ed  gcc/testsuite/gcc.dg/asm-hard-reg-3.c
! d0cb9f4be34b54137eac021cb173c0a1  gcc/testsuite/gcc.dg/asm-hard-reg-4.c
  5570e0994cf3a287da4b422fdc9395e9  gcc/testsuite/gcc.dg/asm-hard-reg-5.c
  cc74ad07bc21697eab1ac4bdbb25f0f5  gcc/testsuite/gcc.dg/asm-hard-reg-6.c
  1a27715b4b755fb46b13300fd15e4690  gcc/testsuite/gcc.dg/asm-hard-reg-7.c
*************** e73a81b78ce09634b29ea8c39f657b96  gcc/te
*** 55821,55826 ****
--- 55866,55872 ----
  8a53a31cb6a7ccbc98d66b16851d8053  gcc/testsuite/gcc.dg/fwrapv-1.c
  f9529b0f4fa81996122f55df493f75c2  gcc/testsuite/gcc.dg/fwrapv-2.c
  4c9e8d7d2b6fc94e654e298890d9a70c  gcc/testsuite/gcc.dg/gcc-have-sync-compare-and-swap.c
+ b3111be6a84280c0981b5d81e969e9e9  gcc/testsuite/gcc.dg/gcov-atomic-or-zero.c
  7da46cabcabc5b6f2ea21e5951ce83b7  gcc/testsuite/gcc.dg/gcov-info-to-gcda.c
  53690c04d2b6818eb846076e47cb5a23  gcc/testsuite/gcc.dg/gimplefe-1.c
  41fdff568f467ca45c859b570a911703  gcc/testsuite/gcc.dg/gimplefe-10.c
*************** dabee9688937ca3a4d913a28a38e6594  gcc/te
*** 57507,57513 ****
  7e10ec76604809868e752e97445415e0  gcc/testsuite/gcc.dg/lto/20111213-1_0.c
  37601600a8bcca70bc216bca7c2947b0  gcc/testsuite/gcc.dg/lto/20120723_0.c
  a7add68c69c48bffecd543855bc97366  gcc/testsuite/gcc.dg/lto/20120723_1.c
! 47b0acedcb5c170a4a551c323b8bf0f5  gcc/testsuite/gcc.dg/lto/README
  1e48f525e9a16e2afca75f0e115765dd  gcc/testsuite/gcc.dg/lto/alias-1_0.c
  129a4337dea0cbd026043b3b990f14f3  gcc/testsuite/gcc.dg/lto/alias-1_1.c
  0ac5a3d9ec226449199f46ad88060ff4  gcc/testsuite/gcc.dg/lto/alias-access-path-2_0.c
--- 57553,57559 ----
  7e10ec76604809868e752e97445415e0  gcc/testsuite/gcc.dg/lto/20111213-1_0.c
  37601600a8bcca70bc216bca7c2947b0  gcc/testsuite/gcc.dg/lto/20120723_0.c
  a7add68c69c48bffecd543855bc97366  gcc/testsuite/gcc.dg/lto/20120723_1.c
! 81d01c745167ed4a3137a3a6e3dac5ab  gcc/testsuite/gcc.dg/lto/README
  1e48f525e9a16e2afca75f0e115765dd  gcc/testsuite/gcc.dg/lto/alias-1_0.c
  129a4337dea0cbd026043b3b990f14f3  gcc/testsuite/gcc.dg/lto/alias-1_1.c
  0ac5a3d9ec226449199f46ad88060ff4  gcc/testsuite/gcc.dg/lto/alias-access-path-2_0.c
*************** b81512aa407aff2f251e1bedfee71bbc  gcc/te
*** 57564,57570 ****
--- 57610,57619 ----
  fe0705b8881cddd35d729ad7e893213e  gcc/testsuite/gcc.dg/lto/pr103171_0.c
  2aa0e1e2d80203f72d32aa9f9b4cc175  gcc/testsuite/gcc.dg/lto/pr103171_1.c
  cdecd03c005af5a99a42aa5b9c5d802f  gcc/testsuite/gcc.dg/lto/pr105459_0.c
+ 16c4f59f1f8fbc85a205d87c24f4b5b1  gcc/testsuite/gcc.dg/lto/pr106823_0.c
  fe020ff7b4d35a4d3f13e426cbacc4da  gcc/testsuite/gcc.dg/lto/pr107769_0.c
+ bbb2ee18834951e8444f6aa1e60e3330  gcc/testsuite/gcc.dg/lto/pr107936_0.c
+ 9063a5c6b23ac4774a849fea7d81f4b9  gcc/testsuite/gcc.dg/lto/pr107936_1.c
  24a11e691dcb757325e921b35f556473  gcc/testsuite/gcc.dg/lto/pr108445_0.c
  75895ff7058fe9716d776a1c92124f2d  gcc/testsuite/gcc.dg/lto/pr108445_1.c
  ef0b90ba09e6e56d1d655afdcb63cdd4  gcc/testsuite/gcc.dg/lto/pr109778_0.c
*************** ce39b21091008775415dbe099db0aaf5  gcc/te
*** 57602,57607 ****
--- 57651,57657 ----
  6028a2dec4dfcb2bf14d8b228fb95959  gcc/testsuite/gcc.dg/lto/pr122515_8.c
  ba260514a6f9ba02270018e5ccb3fc9c  gcc/testsuite/gcc.dg/lto/pr122515_9.c
  dd18439fd9c81ba8af7f920a1dd80a20  gcc/testsuite/gcc.dg/lto/pr122603_0.c
+ 528a862edf0afabc7a36e58c76853ac6  gcc/testsuite/gcc.dg/lto/pr125257_0.c
  5192817b2492ca93ffadce3b4a5e4794  gcc/testsuite/gcc.dg/lto/pr27898_0.c
  c5f48897247dfaec60df4e32beffcd8e  gcc/testsuite/gcc.dg/lto/pr27898_1.c
  2ad724786bc4b555a7f31e8b3bf164b6  gcc/testsuite/gcc.dg/lto/pr28706_0.c
*************** cb9e5b569e150d19012ba644b27a50aa  gcc/te
*** 57686,57691 ****
--- 57736,57746 ----
  c94baecc2f6c439b0f7a06f566842708  gcc/testsuite/gcc.dg/lto/pr70955_0.c
  9e070e93615d99f5f50d833d9a344c13  gcc/testsuite/gcc.dg/lto/pr70955_1.c
  66dfcd8e84b553a269ace310a85d2863  gcc/testsuite/gcc.dg/lto/pr80778_0.c
+ 1eadfc5ae59108a6e08aed16a9b6b7b2  gcc/testsuite/gcc.dg/lto/pr80922-1_0.c
+ 5ab0c9b4f12005836f2161ade07eafb5  gcc/testsuite/gcc.dg/lto/pr80922-1_1.c
+ 781aaaf22f6de0386cec7f0eb997f575  gcc/testsuite/gcc.dg/lto/pr80922-2_0.c
+ ad6339e8ab4714efdb20369ffb51d898  gcc/testsuite/gcc.dg/lto/pr80922-2_1.c
+ 000f0b183f80cd149b4eb444e15966c0  gcc/testsuite/gcc.dg/lto/pr80922-2_2.c
  dd089261a8cb473ff41a09af54b23c80  gcc/testsuite/gcc.dg/lto/pr81406_0.c
  f81e0e9147c6abb1e4b7ce4953fda6e5  gcc/testsuite/gcc.dg/lto/pr81440.h
  e9ff238723b78ce9df572712d231be5f  gcc/testsuite/gcc.dg/lto/pr81440_0.c
*************** c26b978b685e1bfcc17c466b966d4919  gcc/te
*** 58515,58520 ****
--- 58570,58576 ----
  554c46cecadf4553bfa81025a9c21fa0  gcc/testsuite/gcc.dg/pr102202-1.c
  64865b08b053d1973dbaba56c8fa7218  gcc/testsuite/gcc.dg/pr102202-3.c
  849a0ca2b29eb1349147108d9c260f75  gcc/testsuite/gcc.dg/pr102202-4.c
+ 20ac9d72309a6f0b1ea67b8745ba8b58  gcc/testsuite/gcc.dg/pr102202-fold.c
  b9876d5b85d2c1e5c59ed27639781eb6  gcc/testsuite/gcc.dg/pr102202.c
  81b5db555bf4e99998ce86d5d737b15e  gcc/testsuite/gcc.dg/pr102207.c
  afb36cfd0415d59db229d4058c30853f  gcc/testsuite/gcc.dg/pr102224.c
*************** e43dcd43531182c1839bc3842972ef9a  gcc/te
*** 59131,59136 ****
--- 59187,59193 ----
  2e58c4d553f61913c629f0f4e16cef6c  gcc/testsuite/gcc.dg/pr123537.c
  40c720d493fdf466beac8d906dcdb821  gcc/testsuite/gcc.dg/pr123544.c
  8d3ac6e76d67ce6bf826708e2e01a8c4  gcc/testsuite/gcc.dg/pr123569.c
+ b855a8ce7a91195c47c0c24238f2e438  gcc/testsuite/gcc.dg/pr123625-1.c
  b64bff50aa325d3cdf648a6b7fec2e46  gcc/testsuite/gcc.dg/pr123656.c
  1d51dc92bcea9d1f45d53070aed9c180  gcc/testsuite/gcc.dg/pr123672.c
  46c8447cd9ed9e727c11f1f0d3e8967d  gcc/testsuite/gcc.dg/pr123716.c
*************** f774e49194db2a0fbdafbddfc0c79487  gcc/te
*** 59178,59184 ****
--- 59235,59244 ----
  6a322f305e51f6120590c1de3c37495b  gcc/testsuite/gcc.dg/pr125857-1.c
  4adc52a90c4c4ca34102d4c6e968411d  gcc/testsuite/gcc.dg/pr125910.c
  bc5ddfbbc46f4e0cce1629d1b58d3090  gcc/testsuite/gcc.dg/pr12603.c
+ 3105324786d8169a5d47d1ef323f659d  gcc/testsuite/gcc.dg/pr126110.c
  50cf168532ea674e4fa64a2c3d3a55da  gcc/testsuite/gcc.dg/pr126169.c
+ ba5b967dcab5d2013a4e339db765537e  gcc/testsuite/gcc.dg/pr126171-1.c
+ be4bf63d628709587a553e3f7f656631  gcc/testsuite/gcc.dg/pr126212.c
  72a2fca76cb69617ae36bab93c7ec0d7  gcc/testsuite/gcc.dg/pr12625-1.c
  6f0ef61e5a12db5f11da839b2988c5e1  gcc/testsuite/gcc.dg/pr13519-1.c
  86dc5cfaafafc79e11d0559d71baea6b  gcc/testsuite/gcc.dg/pr13804-1.c
*************** d95cc663b80362e038948f52fb3d74be  gcc/te
*** 62176,62181 ****
--- 62236,62244 ----
  b17b4527a47b2b6306755793803b481f  gcc/testsuite/gcc.dg/torture/bfloat16-complex.c
  9271e7a27977295d012588d87c307184  gcc/testsuite/gcc.dg/torture/bitint-1.c
  8e57ed5237e8f0f6918760eea643be09  gcc/testsuite/gcc.dg/torture/bitint-10.c
+ 8cfffe5a41a2c17d05155efffa603ce3  gcc/testsuite/gcc.dg/torture/bitint-100.c
+ 91e3ecf6956920cfc43a0be09d9adff4  gcc/testsuite/gcc.dg/torture/bitint-101.c
+ d21799d1355d134c49fbb279e9061c5d  gcc/testsuite/gcc.dg/torture/bitint-102.c
  6e0edfd615730c144c767fcf9cebc844  gcc/testsuite/gcc.dg/torture/bitint-11.c
  70badd65fbc9d51f24c59244ff200b8c  gcc/testsuite/gcc.dg/torture/bitint-12.c
  d43d461c9733529f16abae58889c550b  gcc/testsuite/gcc.dg/torture/bitint-13.c
*************** f56a66971ef2360d1150ae851eb9f24c  gcc/te
*** 63081,63087 ****
  d37f980a2ba8a3f7fef2d2c9a4f2a81d  gcc/testsuite/gcc.dg/torture/pr125953.c
  14be17fc44652a0c0f9e613a6f758c8a  gcc/testsuite/gcc.dg/torture/pr126008.c
  88f559ffc5e83c1bb94493a45386dc31  gcc/testsuite/gcc.dg/torture/pr126121.c
! 2d67796768f1ca0a13a58ab00f4f8433  gcc/testsuite/gcc.dg/torture/pr126136.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
--- 63144,63151 ----
  d37f980a2ba8a3f7fef2d2c9a4f2a81d  gcc/testsuite/gcc.dg/torture/pr125953.c
  14be17fc44652a0c0f9e613a6f758c8a  gcc/testsuite/gcc.dg/torture/pr126008.c
  88f559ffc5e83c1bb94493a45386dc31  gcc/testsuite/gcc.dg/torture/pr126121.c
! 1443d1972260ff2e56dfdda315fb0452  gcc/testsuite/gcc.dg/torture/pr126136.c
! 5d7dbe26c6352a8eb2fa8a8a76386e10  gcc/testsuite/gcc.dg/torture/pr126171-2.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
*************** beccfabbbe0e25820c8a0bf1789cad24  gcc/te
*** 65490,65495 ****
--- 65554,65560 ----
  8f5bbd4ac981a05d691e98a5dc5e8d8c  gcc/testsuite/gcc.dg/tree-ssa/pr113379.c
  b098058bf56a706b588ea3466b2d21f0  gcc/testsuite/gcc.dg/tree-ssa/pr113596.c
  02a5ab6dda99f9a8349410f9b29f8d78  gcc/testsuite/gcc.dg/tree-ssa/pr113735.c
+ 8f88b986f8ff90adcf34c68e78d7030e  gcc/testsuite/gcc.dg/tree-ssa/pr113894.c
  02b4814f72330fad1ca31d29097c0f1e  gcc/testsuite/gcc.dg/tree-ssa/pr113993.c
  d044056d4248cb78637686f3d28272bb  gcc/testsuite/gcc.dg/tree-ssa/pr114009.c
  7d2821a8e9f6d119e895315af0317341  gcc/testsuite/gcc.dg/tree-ssa/pr114169-1.c
*************** fff67bd84df25cc9f3265a2fd89436d9  gcc/te
*** 65563,65568 ****
--- 65628,65634 ----
  6a9f174aa3a2c31017f1170fcde91302  gcc/testsuite/gcc.dg/tree-ssa/pr125385.c
  dc58edd505d49a41932e7cafece6a2d5  gcc/testsuite/gcc.dg/tree-ssa/pr125405.c
  dbbc66ce4aef2adea320e51207ff99b8  gcc/testsuite/gcc.dg/tree-ssa/pr125612-1.c
+ 5e9b76e33930034784dd0982d5586a1b  gcc/testsuite/gcc.dg/tree-ssa/pr126087.c
  78e6c5fe63f7305009c8a79840fe20dc  gcc/testsuite/gcc.dg/tree-ssa/pr13146.c
  eab19e0c04884cd782c9879cbe292109  gcc/testsuite/gcc.dg/tree-ssa/pr14341.c
  9945ed7002a5f7d4918e8ff5eb4cb647  gcc/testsuite/gcc.dg/tree-ssa/pr14490-1.c
*************** dc5b6256fb35e2cf9d6fe7e4d1066487  gcc/te
*** 65921,65926 ****
--- 65987,65994 ----
  00e227d95a7b91ac653b8f6d91046426  gcc/testsuite/gcc.dg/tree-ssa/pr81388-1.c
  d33f4213b2023b5f7798fbdda71e4dce  gcc/testsuite/gcc.dg/tree-ssa/pr81388-2.c
  20dbb44dce8d226d23afb0c07a9a2879  gcc/testsuite/gcc.dg/tree-ssa/pr81396.c
+ 774ae8c9f2a6565ca9202942f8b2d6dc  gcc/testsuite/gcc.dg/tree-ssa/pr81549-2.c
+ b7ced8d7544d27ed0158d7139c3e3356  gcc/testsuite/gcc.dg/tree-ssa/pr81549.c
  b32558d490c5c73277ce27875bb1bfc0  gcc/testsuite/gcc.dg/tree-ssa/pr81588.c
  6da94e378d2807aa10551762fa89a6c6  gcc/testsuite/gcc.dg/tree-ssa/pr81620-1.c
  12aef6fb81e4885a0f93eb2c000f331d  gcc/testsuite/gcc.dg/tree-ssa/pr81620-2.c
*************** be5af6115952e8a4bdcb3c935f76e3bf  gcc/te
*** 66852,66858 ****
  8c9b46ae3e96ee0bd4ea529a368c310d  gcc/testsuite/gcc.dg/tree-ssa/vrp10.c
  35a86d5c3d5d6dfdbf910fd80c544328  gcc/testsuite/gcc.dg/tree-ssa/vrp100.c
  769a550cb3d0826e1a3d8c29801c97e8  gcc/testsuite/gcc.dg/tree-ssa/vrp101.c
! 864442ccd0b5ca78ebeec5f53bc8b8cd  gcc/testsuite/gcc.dg/tree-ssa/vrp102.c
  196065feb5b1e79954db1d95b2f30486  gcc/testsuite/gcc.dg/tree-ssa/vrp103.c
  49b9f67e92ecbcb36a8369e917436114  gcc/testsuite/gcc.dg/tree-ssa/vrp104.c
  5b17b17d018bc2c18884cb5550cb7dc7  gcc/testsuite/gcc.dg/tree-ssa/vrp106.c
--- 66920,66926 ----
  8c9b46ae3e96ee0bd4ea529a368c310d  gcc/testsuite/gcc.dg/tree-ssa/vrp10.c
  35a86d5c3d5d6dfdbf910fd80c544328  gcc/testsuite/gcc.dg/tree-ssa/vrp100.c
  769a550cb3d0826e1a3d8c29801c97e8  gcc/testsuite/gcc.dg/tree-ssa/vrp101.c
! f08c17a676b11f78435f9fa9fb3a7524  gcc/testsuite/gcc.dg/tree-ssa/vrp102.c
  196065feb5b1e79954db1d95b2f30486  gcc/testsuite/gcc.dg/tree-ssa/vrp103.c
  49b9f67e92ecbcb36a8369e917436114  gcc/testsuite/gcc.dg/tree-ssa/vrp104.c
  5b17b17d018bc2c18884cb5550cb7dc7  gcc/testsuite/gcc.dg/tree-ssa/vrp106.c
*************** e49ed0be3bc897c4046ed5bef93a1b9d  gcc/te
*** 67553,67558 ****
--- 67621,67628 ----
  ce6f3b76b7f5757740b1751047c0460e  gcc/testsuite/gcc.dg/vect/bb-slp-pr98544.c
  30c741c1a917278da82b36e7d0917343  gcc/testsuite/gcc.dg/vect/bb-slp-pr98685.c
  61b5bdbfdffd17b15f9ffe274ebb887e  gcc/testsuite/gcc.dg/vect/bb-slp-pr98854.c
+ e4fb8fa41fa33314bc4eca359aa5d1b1  gcc/testsuite/gcc.dg/vect/bb-slp-reduc-2.c
+ ecc653088d75797657be4817fe02e027  gcc/testsuite/gcc.dg/vect/bb-slp-reduc-3.c
  9d6a9459aa3801194418e6facab73b4c  gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-1.c
  11810aa5a9fd50609553a0f8341084cc  gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-2.c
  e9a7f92621e123a2f43bd6eb8a377ec4  gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-3.c
*************** b53f19c5cce29955511b5d817d2f0418  gcc/te
*** 67946,67952 ****
  d69269cb4ebabc5a087a077a3f160d36  gcc/testsuite/gcc.dg/vect/pr104595.c
  1e8e221275bfa8e8dc66a37d14f07f32  gcc/testsuite/gcc.dg/vect/pr104782.c
  ef88f0d058be6add1e55209b3a683a64  gcc/testsuite/gcc.dg/vect/pr105219.c
! baca9a33eba679fae2999fda53db33d5  gcc/testsuite/gcc.dg/vect/pr106081.c
  1677ed7c45e6703fe35e0c2366f6bb59  gcc/testsuite/gcc.dg/vect/pr106250.c
  a82282f2fe95b4b06a700f2c046471b0  gcc/testsuite/gcc.dg/vect/pr106914.c
  0b81f74933d14ac7b75958ce5a6c1782  gcc/testsuite/gcc.dg/vect/pr107160.c
--- 68016,68022 ----
  d69269cb4ebabc5a087a077a3f160d36  gcc/testsuite/gcc.dg/vect/pr104595.c
  1e8e221275bfa8e8dc66a37d14f07f32  gcc/testsuite/gcc.dg/vect/pr104782.c
  ef88f0d058be6add1e55209b3a683a64  gcc/testsuite/gcc.dg/vect/pr105219.c
! b43996110a5182e38bb8ef168c8c7881  gcc/testsuite/gcc.dg/vect/pr106081.c
  1677ed7c45e6703fe35e0c2366f6bb59  gcc/testsuite/gcc.dg/vect/pr106250.c
  a82282f2fe95b4b06a700f2c046471b0  gcc/testsuite/gcc.dg/vect/pr106914.c
  0b81f74933d14ac7b75958ce5a6c1782  gcc/testsuite/gcc.dg/vect/pr107160.c
*************** cbfea86deb7a2172db8304b50540da0c  gcc/te
*** 68609,68615 ****
  d38a6ca365de8c64ad051edd81d62d6b  gcc/testsuite/gcc.dg/vect/trapv-vect-reduc-4.c
  ef2ac77de2fba07b5997a1a10b11f73f  gcc/testsuite/gcc.dg/vect/tree-vect.h
  e89cc050a04f95cc194e9469aa72808f  gcc/testsuite/gcc.dg/vect/tsvc/license.txt
! 2bded60305772f7de251bb70ce5ae96f  gcc/testsuite/gcc.dg/vect/tsvc/tsvc.h
  9f6419b4c50931a4103f67c8213f8a60  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s000.c
  f17c1a09c018fb8c535cbda72ebac53e  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s111.c
  2173284143ca43e8bbe2dce3ebb0db1a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1111.c
--- 68679,68685 ----
  d38a6ca365de8c64ad051edd81d62d6b  gcc/testsuite/gcc.dg/vect/trapv-vect-reduc-4.c
  ef2ac77de2fba07b5997a1a10b11f73f  gcc/testsuite/gcc.dg/vect/tree-vect.h
  e89cc050a04f95cc194e9469aa72808f  gcc/testsuite/gcc.dg/vect/tsvc/license.txt
! 500ee728a3002dbaf631a9fed0056918  gcc/testsuite/gcc.dg/vect/tsvc/tsvc.h
  9f6419b4c50931a4103f67c8213f8a60  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s000.c
  f17c1a09c018fb8c535cbda72ebac53e  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s111.c
  2173284143ca43e8bbe2dce3ebb0db1a  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-s1111.c
*************** fd31259468ed3a5a98f792e69642f8bd  gcc/te
*** 69279,69284 ****
--- 69349,69357 ----
  d3b4c2028af09de8a536ea7d5d164784  gcc/testsuite/gcc.dg/vect/vect-iv-1.c
  fda40f3796375acc042d4401406aed99  gcc/testsuite/gcc.dg/vect/vect-iv-10.c
  9cf555dd8c73b5af645b547b1dc3c916  gcc/testsuite/gcc.dg/vect/vect-iv-11.c
+ 79fe05ac354013345b73db09b7ac4ad7  gcc/testsuite/gcc.dg/vect/vect-iv-12.c
+ 7ea7c4fdca7a75bc0306a81bf5865ec4  gcc/testsuite/gcc.dg/vect/vect-iv-13.c
+ e48de59c2ee3274670683ed5d96aa158  gcc/testsuite/gcc.dg/vect/vect-iv-14.c
  50250b5bc48bf181a657db785d38f47b  gcc/testsuite/gcc.dg/vect/vect-iv-2.c
  ee841f054b30aab4bbcd963fd434f6da  gcc/testsuite/gcc.dg/vect/vect-iv-3.c
  51614d6c7b7f6a25f52354649cd00cd9  gcc/testsuite/gcc.dg/vect/vect-iv-4.c
*************** bfde4845f4a814d2ee6c2745349086cc  gcc/te
*** 70109,70114 ****
--- 70182,70189 ----
  7c02027c3366cd008faec72d37682fff  gcc/testsuite/gcc.misc-tests/gcov-32.c
  36e6bfa6f1fa471f408919b16be06d89  gcc/testsuite/gcc.misc-tests/gcov-33.c
  30dd2d3737a7401831c1575abfa0519e  gcc/testsuite/gcc.misc-tests/gcov-34.c
+ 531f366c4c1e129df6e6349d5b06e68c  gcc/testsuite/gcc.misc-tests/gcov-35.c
+ 105f2209155514d2c7d0931b5ba66aaa  gcc/testsuite/gcc.misc-tests/gcov-36.c
  90f74ccb28fbeaad6e27b19106c0c11e  gcc/testsuite/gcc.misc-tests/gcov-4.c
  bd636e850bb2e90101ecf2fb90c0cfed  gcc/testsuite/gcc.misc-tests/gcov-4b.c
  6141d011350f6aaa61e89b47b68d3efa  gcc/testsuite/gcc.misc-tests/gcov-5b.c
*************** b656d217b1ddc88a7c1749790cc1eeba  gcc/te
*** 70156,70163 ****
  69d9b561b303bd96e74ea417f73e1ac5  gcc/testsuite/gcc.misc-tests/outputs-0.c
  773736389c2fb248099dd6dcee0ddb6b  gcc/testsuite/gcc.misc-tests/outputs-1.c
  4bffb1320eb13262d3eb5336a6683a84  gcc/testsuite/gcc.misc-tests/outputs-2.c
! 35df536be4daeb23a3ce3664857e3254  gcc/testsuite/gcc.misc-tests/outputs.exp
! 259f70f46fd162868e7799c510dad04b  gcc/testsuite/gcc.misc-tests/pr111527.exp
  37d75aade49dd3329803e520456ae8a6  gcc/testsuite/gcc.misc-tests/sieve.c
  8b124ef23e45ad61bc2c14ba0e1096cc  gcc/testsuite/gcc.misc-tests/sieve.exp
  f0e0d52dbb689249f8d057f00e4c65e9  gcc/testsuite/gcc.misc-tests/sort2.c
--- 70231,70238 ----
  69d9b561b303bd96e74ea417f73e1ac5  gcc/testsuite/gcc.misc-tests/outputs-0.c
  773736389c2fb248099dd6dcee0ddb6b  gcc/testsuite/gcc.misc-tests/outputs-1.c
  4bffb1320eb13262d3eb5336a6683a84  gcc/testsuite/gcc.misc-tests/outputs-2.c
! 43c478d0905b85daba0081d057380f36  gcc/testsuite/gcc.misc-tests/outputs.exp
! efa967cd60cb4deaac1d2c029498b0dc  gcc/testsuite/gcc.misc-tests/pr111527.exp
  37d75aade49dd3329803e520456ae8a6  gcc/testsuite/gcc.misc-tests/sieve.c
  8b124ef23e45ad61bc2c14ba0e1096cc  gcc/testsuite/gcc.misc-tests/sieve.exp
  f0e0d52dbb689249f8d057f00e4c65e9  gcc/testsuite/gcc.misc-tests/sort2.c
*************** a204aadb3f5fc384dd117c7c09175029  gcc/te
*** 70444,70454 ****
  b0d5a47ed3f3a88ea0ea5945efdeb663  gcc/testsuite/gcc.target/aarch64/acle/rwsr-gated-2.c
  b478e4234b2713f0df0d417dd9d13425  gcc/testsuite/gcc.target/aarch64/acle/rwsr-ungated.c
  060ba83ef96f0e9ba1957beb7670ae4f  gcc/testsuite/gcc.target/aarch64/acle/rwsr.c
- 10ce3b5edee8a787906dd58121496c70  gcc/testsuite/gcc.target/aarch64/acle/tme.c
- 1627c4e768e0f137d5dca5de857b5c77  gcc/testsuite/gcc.target/aarch64/acle/tme_guard-1.c
- b17ad011788c422a42d7da3d5a869239  gcc/testsuite/gcc.target/aarch64/acle/tme_guard-2.c
- aa779f716e05ff6a4acc890465c03576  gcc/testsuite/gcc.target/aarch64/acle/tme_guard-3.c
- f67a4b5e44d64eb195dea3cc6d237bba  gcc/testsuite/gcc.target/aarch64/acle/tme_guard-4.c
  6ffc828da3c2dedc3b76d0a506c2b2c3  gcc/testsuite/gcc.target/aarch64/acle/uhadd_1.c
  69b7ae757bf4ea226057e38353f3af1e  gcc/testsuite/gcc.target/aarch64/acle/vmmlaq_f16_mf8.c
  ab48b114d61d03d84807a12fe0ebf312  gcc/testsuite/gcc.target/aarch64/acle/vmmlaq_f32_mf8.c
--- 70519,70524 ----
*************** f73e7d4ce7c3e327e953b946f2617247  gcc/te
*** 71038,71044 ****
  d1d74e6c3fd8740a204f8a685d723756  gcc/testsuite/gcc.target/aarch64/aes_2.c
  ae9d490ad1228549fa8e44e7c17ec959  gcc/testsuite/gcc.target/aarch64/aes_xor_combine.c
  26b34a8e35402ae2f3715254a8afbe9e  gcc/testsuite/gcc.target/aarch64/ampere1-reduction-unroll-1.c
! ac955eae2263ff93e35a9a51ab29008a  gcc/testsuite/gcc.target/aarch64/and-be.c
  df8491d7fa143b8700a96bb39ecfea17  gcc/testsuite/gcc.target/aarch64/and-le.c
  b144bbaff9193d702e5e6e91e1c21a7a  gcc/testsuite/gcc.target/aarch64/and_const.c
  5625f9d0aa6dd393a4e54a9d8f0df277  gcc/testsuite/gcc.target/aarch64/and_const2.c
--- 71108,71114 ----
  d1d74e6c3fd8740a204f8a685d723756  gcc/testsuite/gcc.target/aarch64/aes_2.c
  ae9d490ad1228549fa8e44e7c17ec959  gcc/testsuite/gcc.target/aarch64/aes_xor_combine.c
  26b34a8e35402ae2f3715254a8afbe9e  gcc/testsuite/gcc.target/aarch64/ampere1-reduction-unroll-1.c
! 92ccdc3b0760297ba064225e61b731d0  gcc/testsuite/gcc.target/aarch64/and-be.c
  df8491d7fa143b8700a96bb39ecfea17  gcc/testsuite/gcc.target/aarch64/and-le.c
  b144bbaff9193d702e5e6e91e1c21a7a  gcc/testsuite/gcc.target/aarch64/and_const.c
  5625f9d0aa6dd393a4e54a9d8f0df277  gcc/testsuite/gcc.target/aarch64/and_const2.c
*************** fd8eaccaf40008c602225ab8f19de8a8  gcc/te
*** 71471,71485 ****
  30e3c44bc534f7de8a54f95076511219  gcc/testsuite/gcc.target/aarch64/fmla_intrinsic_1.c
  a1c65ee205fc9435b83f0955d7d41618  gcc/testsuite/gcc.target/aarch64/fmls.c
  50b074aca322c6ef27dff4382b239263  gcc/testsuite/gcc.target/aarch64/fmls_intrinsic_1.c
! 687262571a1a236200467b16eceb1c52  gcc/testsuite/gcc.target/aarch64/fmov-1-be.c
  aff061eacafbdaf6e349cbe277f5bf64  gcc/testsuite/gcc.target/aarch64/fmov-1-le.c
! d7158a0314465faa26f03807df2f17ae  gcc/testsuite/gcc.target/aarch64/fmov-2-be.c
  1780bc2ed9c4427dffcc9b3c129496a7  gcc/testsuite/gcc.target/aarch64/fmov-2-le.c
! dd020506019bf89a5511e3cfe350b9e5  gcc/testsuite/gcc.target/aarch64/fmov-3-be.c
  c70f8bcee6928604cec9eee5d5845a3d  gcc/testsuite/gcc.target/aarch64/fmov-3-le.c
! 4a279f30c36644db5160ed71c99bec8f  gcc/testsuite/gcc.target/aarch64/fmov-4-be.c
  150ed79703f567e3bf426a2fc0ea5174  gcc/testsuite/gcc.target/aarch64/fmov-4-le.c
! 3a24737421bd9ee18c3d06f0f822cf55  gcc/testsuite/gcc.target/aarch64/fmov-5-be.c
  25983680f8bb32f72c8c67a2eba60d50  gcc/testsuite/gcc.target/aarch64/fmov-5-le.c
  c4fd6df43c9e9e5b7239b8df0bebf345  gcc/testsuite/gcc.target/aarch64/fmovd-zero-mem.c
  92f126169f4b80f84e3a069a088c9866  gcc/testsuite/gcc.target/aarch64/fmovd-zero-reg.c
--- 71541,71555 ----
  30e3c44bc534f7de8a54f95076511219  gcc/testsuite/gcc.target/aarch64/fmla_intrinsic_1.c
  a1c65ee205fc9435b83f0955d7d41618  gcc/testsuite/gcc.target/aarch64/fmls.c
  50b074aca322c6ef27dff4382b239263  gcc/testsuite/gcc.target/aarch64/fmls_intrinsic_1.c
! a14c79f218d233756c7391231b0971ce  gcc/testsuite/gcc.target/aarch64/fmov-1-be.c
  aff061eacafbdaf6e349cbe277f5bf64  gcc/testsuite/gcc.target/aarch64/fmov-1-le.c
! f30623afa33a0b70a8aca81d52bd5a49  gcc/testsuite/gcc.target/aarch64/fmov-2-be.c
  1780bc2ed9c4427dffcc9b3c129496a7  gcc/testsuite/gcc.target/aarch64/fmov-2-le.c
! 8f0ab629d490cafe30fdb8f6024aab0c  gcc/testsuite/gcc.target/aarch64/fmov-3-be.c
  c70f8bcee6928604cec9eee5d5845a3d  gcc/testsuite/gcc.target/aarch64/fmov-3-le.c
! a07946e8ec6f8e6627ae6e63a9cd27fe  gcc/testsuite/gcc.target/aarch64/fmov-4-be.c
  150ed79703f567e3bf426a2fc0ea5174  gcc/testsuite/gcc.target/aarch64/fmov-4-le.c
! f102daaa2544a8fce0fc384c8fa7b7ad  gcc/testsuite/gcc.target/aarch64/fmov-5-be.c
  25983680f8bb32f72c8c67a2eba60d50  gcc/testsuite/gcc.target/aarch64/fmov-5-le.c
  c4fd6df43c9e9e5b7239b8df0bebf345  gcc/testsuite/gcc.target/aarch64/fmovd-zero-mem.c
  92f126169f4b80f84e3a069a088c9866  gcc/testsuite/gcc.target/aarch64/fmovd-zero-reg.c
*************** caaafb769b844ad26e03a5f739c93732  gcc/te
*** 71594,71606 ****
  14ceb90a94821a13d5c3bdf5ac7ae827  gcc/testsuite/gcc.target/aarch64/inline-mem-set-pr112804.c
  f93d26b8600db1431d907a2283893a96  gcc/testsuite/gcc.target/aarch64/ins_bitfield_1.c
  3c9f1ecc1bfed54571700f0eebd4753c  gcc/testsuite/gcc.target/aarch64/ins_bitfield_1a.c
! 562885e1b79b6c4ecd87a7f511db5420  gcc/testsuite/gcc.target/aarch64/ins_bitfield_2.c
  39e77099ed8a31c9803583dcfff90eb6  gcc/testsuite/gcc.target/aarch64/ins_bitfield_3.c
  f07666957897788bc16f106178593da9  gcc/testsuite/gcc.target/aarch64/ins_bitfield_3a.c
! 560aad3e91ef22a6855588024205f289  gcc/testsuite/gcc.target/aarch64/ins_bitfield_4.c
  3d14be3c70a800fd875069d7410b31a6  gcc/testsuite/gcc.target/aarch64/ins_bitfield_5.c
  e133d603af3ecab67fb41464a457b091  gcc/testsuite/gcc.target/aarch64/ins_bitfield_5a.c
! 825a05cc66dd3bb694b37457fcfbf490  gcc/testsuite/gcc.target/aarch64/ins_bitfield_6.c
  b37a5781e82510dfa7ecdf3ce4922a58  gcc/testsuite/gcc.target/aarch64/insv_1.c
  a897ae01d807185bd4ca7f1587e181d9  gcc/testsuite/gcc.target/aarch64/insv_2.c
  991106b935a581db429c79eb1313b434  gcc/testsuite/gcc.target/aarch64/inszero_split_1.c
--- 71664,71676 ----
  14ceb90a94821a13d5c3bdf5ac7ae827  gcc/testsuite/gcc.target/aarch64/inline-mem-set-pr112804.c
  f93d26b8600db1431d907a2283893a96  gcc/testsuite/gcc.target/aarch64/ins_bitfield_1.c
  3c9f1ecc1bfed54571700f0eebd4753c  gcc/testsuite/gcc.target/aarch64/ins_bitfield_1a.c
! d6db7ecfcd9dda2583592bc709861f39  gcc/testsuite/gcc.target/aarch64/ins_bitfield_2.c
  39e77099ed8a31c9803583dcfff90eb6  gcc/testsuite/gcc.target/aarch64/ins_bitfield_3.c
  f07666957897788bc16f106178593da9  gcc/testsuite/gcc.target/aarch64/ins_bitfield_3a.c
! 3a8c12a106dd0fcc82e05fa168428858  gcc/testsuite/gcc.target/aarch64/ins_bitfield_4.c
  3d14be3c70a800fd875069d7410b31a6  gcc/testsuite/gcc.target/aarch64/ins_bitfield_5.c
  e133d603af3ecab67fb41464a457b091  gcc/testsuite/gcc.target/aarch64/ins_bitfield_5a.c
! 20544c6808715c1a402e7721c81977a7  gcc/testsuite/gcc.target/aarch64/ins_bitfield_6.c
  b37a5781e82510dfa7ecdf3ce4922a58  gcc/testsuite/gcc.target/aarch64/insv_1.c
  a897ae01d807185bd4ca7f1587e181d9  gcc/testsuite/gcc.target/aarch64/insv_2.c
  991106b935a581db429c79eb1313b434  gcc/testsuite/gcc.target/aarch64/inszero_split_1.c
*************** c62a8a637de4eb00aef16c6f2aa34f7e  gcc/te
*** 71873,71879 ****
  5f2098a5ce1008a688e14bfab709ad09  gcc/testsuite/gcc.target/aarch64/neg_bf_1.c
  ab1aff01d0978c45cdf9c392a1f88408  gcc/testsuite/gcc.target/aarch64/neg_bf_2.c
  c8c679e672173f52fbc0d86757b5c05a  gcc/testsuite/gcc.target/aarch64/negs.c
! 4f997a013b451645ee8fae7b80bb1c68  gcc/testsuite/gcc.target/aarch64/neon/aarch64-neon.exp
  382819e66c2ba8dc0caaedc391ba26b0  gcc/testsuite/gcc.target/aarch64/neon/arm_neon_test.h
  aa14d8315d14629ead816b6d44e8b2b2  gcc/testsuite/gcc.target/aarch64/neon/vadd.c
  ead21cdd1f6c7e08a697d831b6fb46d4  gcc/testsuite/gcc.target/aarch64/neon/vand.c
--- 71943,71949 ----
  5f2098a5ce1008a688e14bfab709ad09  gcc/testsuite/gcc.target/aarch64/neg_bf_1.c
  ab1aff01d0978c45cdf9c392a1f88408  gcc/testsuite/gcc.target/aarch64/neg_bf_2.c
  c8c679e672173f52fbc0d86757b5c05a  gcc/testsuite/gcc.target/aarch64/negs.c
! 3c3f59237ba75fc3a4bd62c5e0acfab5  gcc/testsuite/gcc.target/aarch64/neon/aarch64-neon.exp
  382819e66c2ba8dc0caaedc391ba26b0  gcc/testsuite/gcc.target/aarch64/neon/arm_neon_test.h
  aa14d8315d14629ead816b6d44e8b2b2  gcc/testsuite/gcc.target/aarch64/neon/vadd.c
  ead21cdd1f6c7e08a697d831b6fb46d4  gcc/testsuite/gcc.target/aarch64/neon/vand.c
*************** f278ce8788e95ff6c4d2d30e0e50237e  gcc/te
*** 72165,72171 ****
  def5c2749854b129e22c1e5c9a817159  gcc/testsuite/gcc.target/aarch64/pr123786.c
  b3ab989c7fd4a3722c72edff57ac7f9d  gcc/testsuite/gcc.target/aarch64/pr123791.c
  0fb432038c1a084913bbbe8d8d8b8bd8  gcc/testsuite/gcc.target/aarch64/pr123792.c
! a588c84982135f60225d2a017f7b53df  gcc/testsuite/gcc.target/aarch64/pr124078-1.c
  0c167430405c5368bac9f780a05e0e84  gcc/testsuite/gcc.target/aarch64/pr124146-2.c
  f8db7945a9f18ef51b52ba97904b7739  gcc/testsuite/gcc.target/aarch64/pr124146-3.c
  c7a7f42c20bf44d05fcef4047e2c48a4  gcc/testsuite/gcc.target/aarch64/pr124146-4.c
--- 72235,72241 ----
  def5c2749854b129e22c1e5c9a817159  gcc/testsuite/gcc.target/aarch64/pr123786.c
  b3ab989c7fd4a3722c72edff57ac7f9d  gcc/testsuite/gcc.target/aarch64/pr123791.c
  0fb432038c1a084913bbbe8d8d8b8bd8  gcc/testsuite/gcc.target/aarch64/pr123792.c
! 048986d4caf266ac7c7550764b367ccc  gcc/testsuite/gcc.target/aarch64/pr124078-1.c
  0c167430405c5368bac9f780a05e0e84  gcc/testsuite/gcc.target/aarch64/pr124146-2.c
  f8db7945a9f18ef51b52ba97904b7739  gcc/testsuite/gcc.target/aarch64/pr124146-3.c
  c7a7f42c20bf44d05fcef4047e2c48a4  gcc/testsuite/gcc.target/aarch64/pr124146-4.c
*************** d7a71dc62df6f9ab1e9d87f1ec376d4c  gcc/te
*** 72176,72181 ****
--- 72246,72253 ----
  1ce51765be6403daef68bb844e13a7ec  gcc/testsuite/gcc.target/aarch64/pr125538.c
  2b9d8264fb91bce4c0404a56eed28b74  gcc/testsuite/gcc.target/aarch64/pr125597.c
  b925908f19e4f112a6a854e9b34023c4  gcc/testsuite/gcc.target/aarch64/pr125795.c
+ c1b669eba35fd9ddf0fc4ad45466f77e  gcc/testsuite/gcc.target/aarch64/pr126064.c
+ 1c19f70d3b6f3a1da443e3c4e7b805b7  gcc/testsuite/gcc.target/aarch64/pr126291.c
  9adb42733d9f5e2b1f2dbb364b62100d  gcc/testsuite/gcc.target/aarch64/pr37780_1.c
  e668fb9e0d32efadd671247467dc90db  gcc/testsuite/gcc.target/aarch64/pr58460.c
  9023f817c07ddec673c5b546525fc184  gcc/testsuite/gcc.target/aarch64/pr60034.c
*************** b3fe2de9b23b56de57259440edc766d1  gcc/te
*** 72185,72191 ****
  d8cfefc063686118062e9fc3b774907b  gcc/testsuite/gcc.target/aarch64/pr62040.c
  617b125a3275c9ce440e1e542a8bbc79  gcc/testsuite/gcc.target/aarch64/pr62178.c
  da1fc7d53b5f8b6e99f57a2a7b7ac849  gcc/testsuite/gcc.target/aarch64/pr62262.c
! 5b090e5d951a21826fd629be991b5411  gcc/testsuite/gcc.target/aarch64/pr62308.c
  9b3dbcd2a3f562e3970f6393ee0c71d1  gcc/testsuite/gcc.target/aarch64/pr63304_1.c
  5195785cc7216a9662357829a66aa2c7  gcc/testsuite/gcc.target/aarch64/pr63424.c
  baf71778326c44f90d27479f00af7a63  gcc/testsuite/gcc.target/aarch64/pr63874.c
--- 72257,72263 ----
  d8cfefc063686118062e9fc3b774907b  gcc/testsuite/gcc.target/aarch64/pr62040.c
  617b125a3275c9ce440e1e542a8bbc79  gcc/testsuite/gcc.target/aarch64/pr62178.c
  da1fc7d53b5f8b6e99f57a2a7b7ac849  gcc/testsuite/gcc.target/aarch64/pr62262.c
! e020c6773406e738e9f5524a6b523730  gcc/testsuite/gcc.target/aarch64/pr62308.c
  9b3dbcd2a3f562e3970f6393ee0c71d1  gcc/testsuite/gcc.target/aarch64/pr63304_1.c
  5195785cc7216a9662357829a66aa2c7  gcc/testsuite/gcc.target/aarch64/pr63424.c
  baf71778326c44f90d27479f00af7a63  gcc/testsuite/gcc.target/aarch64/pr63874.c
*************** f9f37ccfc032535c8079deb6b916aca7  gcc/te
*** 72228,72234 ****
  83d999153e7b99641d3f07b79d3dd12f  gcc/testsuite/gcc.target/aarch64/pr83370.c
  d1d34ae8edbb84b094c7f011971b77f4  gcc/testsuite/gcc.target/aarch64/pr84252.c
  b96ee931e916b680ab220c1e13b9b38b  gcc/testsuite/gcc.target/aarch64/pr84882.c
! f1ca93aa1717ebabd10b953f8c0f43fb  gcc/testsuite/gcc.target/aarch64/pr87305.c
  438fbd8d80e583c9dd8e4b6f03d561d9  gcc/testsuite/gcc.target/aarch64/pr87511.c
  0c8e55f8ca526b3ff4c65395e56b96c5  gcc/testsuite/gcc.target/aarch64/pr87839.c
  2e6dacda509bf27f5cf4f99c2ff71f34  gcc/testsuite/gcc.target/aarch64/pr88838.c
--- 72300,72306 ----
  83d999153e7b99641d3f07b79d3dd12f  gcc/testsuite/gcc.target/aarch64/pr83370.c
  d1d34ae8edbb84b094c7f011971b77f4  gcc/testsuite/gcc.target/aarch64/pr84252.c
  b96ee931e916b680ab220c1e13b9b38b  gcc/testsuite/gcc.target/aarch64/pr84882.c
! e00d907934085f6ba5c8933809397d44  gcc/testsuite/gcc.target/aarch64/pr87305.c
  438fbd8d80e583c9dd8e4b6f03d561d9  gcc/testsuite/gcc.target/aarch64/pr87511.c
  0c8e55f8ca526b3ff4c65395e56b96c5  gcc/testsuite/gcc.target/aarch64/pr87839.c
  2e6dacda509bf27f5cf4f99c2ff71f34  gcc/testsuite/gcc.target/aarch64/pr88838.c
*************** c45bc47433163208f0aec414ada73705  gcc/te
*** 72278,72284 ****
  ae5cf71ae02c3cde7a67cfb54ec03bbe  gcc/testsuite/gcc.target/aarch64/pr99988.c
  6abd9df2e9c6482903f6b17629c288d1  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_1.c
  cc4f69997a3864b3299f1b4809507883  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_1b.c
! be30d927e2df67d4fe2786d0d026bbaa  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_2.c
  cf24cdff529adfd1c49b54f67eadad90  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_3.c
  7488c6ceb8f22890fe55109fecab6837  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_4.c
  0dd021e02954a0473314c0794d3dfe02  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_5.c
--- 72350,72356 ----
  ae5cf71ae02c3cde7a67cfb54ec03bbe  gcc/testsuite/gcc.target/aarch64/pr99988.c
  6abd9df2e9c6482903f6b17629c288d1  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_1.c
  cc4f69997a3864b3299f1b4809507883  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_1b.c
! da5418029729670ed3741a09c6ac6d5d  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_2.c
  cf24cdff529adfd1c49b54f67eadad90  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_3.c
  7488c6ceb8f22890fe55109fecab6837  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_4.c
  0dd021e02954a0473314c0794d3dfe02  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_5.c
*************** e21253a0b461c19afa3bd87ea01f5460  gcc/te
*** 72441,72446 ****
--- 72513,72519 ----
  597879377be3eeffce3944b61e8c8aec  gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_4.c
  cddb2940de62ee127a5f70eb1ee8525d  gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_5.c
  b880552d13a78ecec9ddee45cfb60d15  gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_6.c
+ fff133610c83bb990c337e95f85470a2  gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_7.c
  504f31916b3f274eea930e1fc7da2e3c  gcc/testsuite/gcc.target/aarch64/simd/int_comparisons.x
  22d82645ad53737e5bfbe2ba9b98cc05  gcc/testsuite/gcc.target/aarch64/simd/int_comparisons_1.c
  f1c9e2aa3c435c9efdc1ea83da4e1eeb  gcc/testsuite/gcc.target/aarch64/simd/int_comparisons_2.c
*************** fbcf30f134e1f525bca176a6f7f969ad  gcc/te
*** 76173,76183 ****
  60aaa4e9d487bd6a45aa3bf0af5e8a64  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_11.c
  745fd0887732daddba57f4a7433ad4d1  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_12.c
  81ab5371a6242cf223a814b0a9885f98  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_13.c
! 114ed394614bf74c8e525a8cb9b78390  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_2.c
  0936add06a30e2393cebcf86fef22d59  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_3.c
! 22a321f22dfb836a546f0c91f6823e8a  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_4.c
  d1b6ffd93379744e84b1e20517c2a8ee  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_5.c
! 25c9afc168aa4280373525ba6a0fb422  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_6.c
  261e8d974cfe6e108fbd2fca3d149de3  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_7.c
  db57844e5d153caf67671703c4b34d2f  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_8.c
  fe2921ebbd482cc73ae92d1bf808ade5  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_9.c
--- 76246,76256 ----
  60aaa4e9d487bd6a45aa3bf0af5e8a64  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_11.c
  745fd0887732daddba57f4a7433ad4d1  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_12.c
  81ab5371a6242cf223a814b0a9885f98  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_13.c
! 49b70f96923d4cf2801bfa345b60b6ce  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_2.c
  0936add06a30e2393cebcf86fef22d59  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_3.c
! a65beb9db40b4478a829a2f658d56f4b  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_4.c
  d1b6ffd93379744e84b1e20517c2a8ee  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_5.c
! d1dde3d9c49a6edcb3378605fdef4726  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_6.c
  261e8d974cfe6e108fbd2fca3d149de3  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_7.c
  db57844e5d153caf67671703c4b34d2f  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_8.c
  fe2921ebbd482cc73ae92d1bf808ade5  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_9.c
*************** fe2921ebbd482cc73ae92d1bf808ade5  gcc/te
*** 76189,76195 ****
  f3ee29e74dc3e46b11b221f1f9979758  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_lane_6.c
  b9ed110da6cf263fcc856e58cf1348f0  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_lane_7.c
  df183dee14d76baa105e0554407121c8  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_lane_8.c
! 1596906da0f1b4eeebd026b9684b9897  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_lane_9.c
  4a00b5ab16a909e72cf55e18b2a5429b  gcc/testsuite/gcc.target/aarch64/sve/acle/general/eor_1.c
  c41c67f44c22e68000696077b274f5ac  gcc/testsuite/gcc.target/aarch64/sve/acle/general/eqne_dup_1.c
  68be4a7d9fc95686fd0f20ee08808483  gcc/testsuite/gcc.target/aarch64/sve/acle/general/inline_1.c
--- 76262,76268 ----
  f3ee29e74dc3e46b11b221f1f9979758  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_lane_6.c
  b9ed110da6cf263fcc856e58cf1348f0  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_lane_7.c
  df183dee14d76baa105e0554407121c8  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_lane_8.c
! 5b451a01f1d7ca4bea1c03221a8884d3  gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_lane_9.c
  4a00b5ab16a909e72cf55e18b2a5429b  gcc/testsuite/gcc.target/aarch64/sve/acle/general/eor_1.c
  c41c67f44c22e68000696077b274f5ac  gcc/testsuite/gcc.target/aarch64/sve/acle/general/eqne_dup_1.c
  68be4a7d9fc95686fd0f20ee08808483  gcc/testsuite/gcc.target/aarch64/sve/acle/general/inline_1.c
*************** b5855d38ae62afe76597bfbf06293bcc  gcc/te
*** 76884,76902 ****
  c583148e99c91b6db29a727df1afcaae  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_2.c
  44e0964dfac1b2670505e23a8d6c0b93  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_3.c
  6ec3132d16c5da231085a105d9c5d83a  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_4.c
! dedc0d2c92973eafdf8c1a8de6b0c429  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_bf16.c
! 99a09031f93f949c151488589294bfb1  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f16.c
! ada863585f0231ad1c002dbbaac4a4df  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f32.c
! 10bbe772963a1e57da9ea4613d971059  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f64.c
! a474a8f17818a632eb70a52b5fdd86dc  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_mf8.c
! 8381cf08d7063b4e838fee651d4464b3  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s16.c
! 326493e79a60651abcb4a163c7d4d89b  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s32.c
! 067b6b885f8c7df1cb648d4ae4db66f0  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s64.c
! bdde4845a6c9d8e5e8d3857c2878a10b  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s8.c
! 2fa5f8c7865faa368294a3cf853a9a7b  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u16.c
! 7acbb40ffc5b1b088f4d9b0d5f23aed0  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u32.c
! 6115b0ad07f6dfc0c26928362853ad2e  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u64.c
! 5a6ea1d515c38f1420a531eafc688059  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u8.c
  e9ab924d06198e4361421bd99828983c  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_bf16.c
  4f4e6cdce478774e73ad00174dd6c9b8  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_f16.c
  afc8c6a245866482bbbba7a5ac5ddc81  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_f32.c
--- 76957,76975 ----
  c583148e99c91b6db29a727df1afcaae  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_2.c
  44e0964dfac1b2670505e23a8d6c0b93  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_3.c
  6ec3132d16c5da231085a105d9c5d83a  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_4.c
! 449a0fda6c67368732b19feddc497f79  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_bf16.c
! d753eb90683f31802e1545a177014940  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f16.c
! f7187199557fa5da40f7c756e01ee90e  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f32.c
! 95d1b31a597f67237ae729269c1bfd2c  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f64.c
! 486b17f0146e89702b9694c68925446d  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_mf8.c
! deed7fc17fdf9137cfc0eacb62114e99  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s16.c
! e6c42e703838c4cde7e2aadf926c850d  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s32.c
! 92e805cb287878174027561305ff8495  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s64.c
! 5bc2de715136bfc68b0d67ba3e8ae0c2  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s8.c
! 0341bc0aa714f915dd70b65d577cf7d5  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u16.c
! 29073f96b557fb485595799ea5118fc4  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u32.c
! 5a49afba4cdaf711fdeddcfec3b61c70  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u64.c
! 6a093705a7e32d9d044be3d50edc3da0  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u8.c
  e9ab924d06198e4361421bd99828983c  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_bf16.c
  4f4e6cdce478774e73ad00174dd6c9b8  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_f16.c
  afc8c6a245866482bbbba7a5ac5ddc81  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_f32.c
*************** a81abf2c3b847d89a391aad7ea53e5f2  gcc/te
*** 76910,76928 ****
  8b77e7189a10a9b36e346c7237af2618  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_u32.c
  97d731f6adfa7a06f618270144cd1838  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_u64.c
  036e1909d7f265b5e0f0e3abe9151c45  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_u8.c
! 53937eabac82d6215c24052aa3a6787a  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_bf16.c
! b7ec1766a03976b57dfa9a7c08af77fa  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f16.c
! 5001e95713f93a5038d2776c75ae6acd  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f32.c
! f56d97605deea3197f3f5dc508df26d5  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f64.c
! 0d218fa9d3f719620faa863dde85c342  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_mf8.c
! 035754cb03ea542937abcfed875cac20  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s16.c
! 23d1493011c19064fe79030828f04a1f  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s32.c
! c043f0ce0d21f4e0f1160148ddc6f957  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s64.c
! 70b972311310b33768ba96bef0c2c6ea  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s8.c
! 1f27a9abc260f5c085433b42ecacc6e6  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u16.c
! 7f5196533f2af4baa4c466f371d08806  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u32.c
! 843ef1b1e55c975366132b153b14a205  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u64.c
! 43163d3645153c8ba6a45048f9205b74  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u8.c
  93a830e134658d1f883d8e1e6cf2ef36  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_bf16.c
  4e68464f63068967791c2c9f7ae46e5d  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_f16.c
  097b0ac1dd32964b78fd1e120fbfca78  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_f32.c
--- 76983,77001 ----
  8b77e7189a10a9b36e346c7237af2618  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_u32.c
  97d731f6adfa7a06f618270144cd1838  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_u64.c
  036e1909d7f265b5e0f0e3abe9151c45  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_le_u8.c
! 60ff5796badc1094e235841e331171a8  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_bf16.c
! fc3b3f793a7d1d1d3e4771bb1e878ef3  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f16.c
! 510e776ea99fdb7fd1c49c3522bfcee6  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f32.c
! b9968754d4f43ea573f97388283919b0  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f64.c
! 7219e421a36f9f1e9611033c3ca8c7d9  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_mf8.c
! fbd1779bbbfa0613070f6728147c6fc8  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s16.c
! 1ca90484f71330e20f4f492f61c84643  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s32.c
! 16944a20d0e6b40a776b1d19bd6bf7b2  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s64.c
! 9a0e9ca1e6756c998ac67d596c3112fe  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s8.c
! e7eabb359af10721863c3dfa17fd2f0b  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u16.c
! adc29619cbd694028bb53fbb2e41cf52  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u32.c
! d743e3bd6e58c5c45a47f27c82e77b16  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u64.c
! afad3057a9310ce290086d456a4d0061  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u8.c
  93a830e134658d1f883d8e1e6cf2ef36  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_bf16.c
  4e68464f63068967791c2c9f7ae46e5d  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_f16.c
  097b0ac1dd32964b78fd1e120fbfca78  gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_le_f32.c
*************** bc25794f86246726bcf7438b0421cc4d  gcc/te
*** 76983,77000 ****
  783ee528d2829e958c663d95b2ab555a  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_7.c
  c65a447b07b3ffaf470d6add7c016dbf  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_8.c
  7e24807b91c1976029217358d9470d37  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_9.c
! 10f00aace9bc09ca8fc4843893c36c9a  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_be_nowrap.c
! 9c155f5b570dacfc5f7e76267ce1caee  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_be_wrap.c
  7e55c541f34c0e5a330e7788260989d9  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_le_nowrap.c
  bb3ab63f343b396718f0097f17c23a4a  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_le_wrap.c
! 5f4f435a1517a3a40fddc9e9e606fe1e  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_2_be_nowrap.c
! 6fa6d2038f640c07cc9fabf87b65bbeb  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_2_be_wrap.c
  f7762a57c0440c80f5ca35e798f26fdc  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_2_le_nowrap.c
  4c49722886505a670b9e77ac832054ba  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_2_le_wrap.c
  9873da5d8dc20020bb53123146b91f1e  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_3.c
! 622c236249d7f3749b9513ebd1616f8b  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_4_be.c
  3c24d3065803cbd5911e17149adca397  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_4_le.c
! 7512a1ef73a4c05c0ed8c65c74443ffa  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_5_be.c
  9c0394621eaffa490b3862c4c5f5b600  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_5_le.c
  6bfcf63a1d4b589a189f8674b52ccb55  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_1.c
  169092757dc1c053f54c2ea37b51c838  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_1_1024.c
--- 77056,77073 ----
  783ee528d2829e958c663d95b2ab555a  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_7.c
  c65a447b07b3ffaf470d6add7c016dbf  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_8.c
  7e24807b91c1976029217358d9470d37  gcc/testsuite/gcc.target/aarch64/sve/pcs/return_9.c
! 32fed1da26b51a8dc56a4febeb1cd911  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_be_nowrap.c
! b1f7790fb2cc854528e3de42e0d32d85  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_be_wrap.c
  7e55c541f34c0e5a330e7788260989d9  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_le_nowrap.c
  bb3ab63f343b396718f0097f17c23a4a  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_le_wrap.c
! a42c253ca3fb34ac562ca31e34ec3e62  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_2_be_nowrap.c
! fec61039af3501522806f16064c816e2  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_2_be_wrap.c
  f7762a57c0440c80f5ca35e798f26fdc  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_2_le_nowrap.c
  4c49722886505a670b9e77ac832054ba  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_2_le_wrap.c
  9873da5d8dc20020bb53123146b91f1e  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_3.c
! 2983c678b4353c79de17f4083ae77c81  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_4_be.c
  3c24d3065803cbd5911e17149adca397  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_4_le.c
! 425b0281da8ca5c21461375298a7623a  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_5_be.c
  9c0394621eaffa490b3862c4c5f5b600  gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_5_le.c
  6bfcf63a1d4b589a189f8674b52ccb55  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_1.c
  169092757dc1c053f54c2ea37b51c838  gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_1_1024.c
*************** e2084744a641140626dd7d1a6b76fc00  gcc/te
*** 77185,77191 ****
  c56eeba71ad463673a1bdb30e7a94863  gcc/testsuite/gcc.target/aarch64/sve/pr87815.c
  f0e2b5504e3b6dcd97ff8a6d8549d00e  gcc/testsuite/gcc.target/aarch64/sve/pr88834.c
  6c57cf09cf91238f79720a6f44bc30e7  gcc/testsuite/gcc.target/aarch64/sve/pr88834_ld3.c
! f489c5abc2ffc3a8cc03ca0a831513a0  gcc/testsuite/gcc.target/aarch64/sve/pr88847.c
  e0b78e43838c121e00d55df1fc6d615d  gcc/testsuite/gcc.target/aarch64/sve/pr89007-1.c
  266bb71e3a0d15c0c49daba845361e82  gcc/testsuite/gcc.target/aarch64/sve/pr89007-2.c
  524dba2cfc8aa02f6ecbcd599762ae62  gcc/testsuite/gcc.target/aarch64/sve/pr91166.c
--- 77258,77264 ----
  c56eeba71ad463673a1bdb30e7a94863  gcc/testsuite/gcc.target/aarch64/sve/pr87815.c
  f0e2b5504e3b6dcd97ff8a6d8549d00e  gcc/testsuite/gcc.target/aarch64/sve/pr88834.c
  6c57cf09cf91238f79720a6f44bc30e7  gcc/testsuite/gcc.target/aarch64/sve/pr88834_ld3.c
! 29f5646cd805eb091337fcff518abb2d  gcc/testsuite/gcc.target/aarch64/sve/pr88847.c
  e0b78e43838c121e00d55df1fc6d615d  gcc/testsuite/gcc.target/aarch64/sve/pr89007-1.c
  266bb71e3a0d15c0c49daba845361e82  gcc/testsuite/gcc.target/aarch64/sve/pr89007-2.c
  524dba2cfc8aa02f6ecbcd599762ae62  gcc/testsuite/gcc.target/aarch64/sve/pr91166.c
*************** e6b5e4cbf26373edecff7db63551330e  gcc/te
*** 77277,77289 ****
  1066b38f44cce4bdff5b7050146d95cf  gcc/testsuite/gcc.target/aarch64/sve/rev_1.c
  8c9842de622a0abe46cf79308556a680  gcc/testsuite/gcc.target/aarch64/sve/rev_2.c
  8ae5e29ddaa4386cd275be16ef7d0700  gcc/testsuite/gcc.target/aarch64/sve/revb_1.c
! 0fcc253210795853c7e7d9e8643e558d  gcc/testsuite/gcc.target/aarch64/sve/revb_2.c
  6263c398475ac42c683b14673916681d  gcc/testsuite/gcc.target/aarch64/sve/revh_1.c
! 1ba686a1e5e0f187d61f2d0204ae35de  gcc/testsuite/gcc.target/aarch64/sve/revh_2.c
  cf8f15ed1eac9f24bf64b24515cb6bca  gcc/testsuite/gcc.target/aarch64/sve/revhw_1.c
! a68180b3180a2850546f73a2fb143826  gcc/testsuite/gcc.target/aarch64/sve/revhw_2.c
  8980052fe62b0caeae5983046b058197  gcc/testsuite/gcc.target/aarch64/sve/revw_1.c
! ecc86ca70d9873931d62c47481e3089d  gcc/testsuite/gcc.target/aarch64/sve/revw_2.c
  82cc68a63e644509dc4ffa773504d753  gcc/testsuite/gcc.target/aarch64/sve/rsqrt_1.c
  f9d2dfb3403e355b20f0e438b79b899c  gcc/testsuite/gcc.target/aarch64/sve/rsqrt_1_run.c
  62403b5248ada1c1a275c784875bfe24  gcc/testsuite/gcc.target/aarch64/sve/sad_1.c
--- 77350,77362 ----
  1066b38f44cce4bdff5b7050146d95cf  gcc/testsuite/gcc.target/aarch64/sve/rev_1.c
  8c9842de622a0abe46cf79308556a680  gcc/testsuite/gcc.target/aarch64/sve/rev_2.c
  8ae5e29ddaa4386cd275be16ef7d0700  gcc/testsuite/gcc.target/aarch64/sve/revb_1.c
! 7a7c299d8312eeb609ac081e5905ecf8  gcc/testsuite/gcc.target/aarch64/sve/revb_2.c
  6263c398475ac42c683b14673916681d  gcc/testsuite/gcc.target/aarch64/sve/revh_1.c
! 910fb1b20be183ebc99ec14e538f4b78  gcc/testsuite/gcc.target/aarch64/sve/revh_2.c
  cf8f15ed1eac9f24bf64b24515cb6bca  gcc/testsuite/gcc.target/aarch64/sve/revhw_1.c
! 3063f052acde0214682f22ddd4e803ab  gcc/testsuite/gcc.target/aarch64/sve/revhw_2.c
  8980052fe62b0caeae5983046b058197  gcc/testsuite/gcc.target/aarch64/sve/revw_1.c
! 80e3b4ad46a8d2950090ff8efdc1dca7  gcc/testsuite/gcc.target/aarch64/sve/revw_2.c
  82cc68a63e644509dc4ffa773504d753  gcc/testsuite/gcc.target/aarch64/sve/rsqrt_1.c
  f9d2dfb3403e355b20f0e438b79b899c  gcc/testsuite/gcc.target/aarch64/sve/rsqrt_1_run.c
  62403b5248ada1c1a275c784875bfe24  gcc/testsuite/gcc.target/aarch64/sve/sad_1.c
*************** a421d5e1fc09e2a43ba0b51529d4676c  gcc/te
*** 77390,77398 ****
  6c4375f8f66f1784d2a589119a5261cc  gcc/testsuite/gcc.target/aarch64/sve/strided_store_5.c
  21ee3e0b3b3163909b128c7c23ecf3bc  gcc/testsuite/gcc.target/aarch64/sve/strided_store_6.c
  888c3207327449230af5ed6cc6968b78  gcc/testsuite/gcc.target/aarch64/sve/strided_store_7.c
! 7bb9d9ea37daaacbf18621685d270327  gcc/testsuite/gcc.target/aarch64/sve/struct_move_1.c
! e46489e97fa0b54c4ca2d629d83b5ae0  gcc/testsuite/gcc.target/aarch64/sve/struct_move_2.c
! 9c4919c4f580d47a4d376141d0409833  gcc/testsuite/gcc.target/aarch64/sve/struct_move_3.c
  4b21b95ee90d6e00a8848595a07ea988  gcc/testsuite/gcc.target/aarch64/sve/struct_move_4.c
  a859ca5b62cf57535e128f20e26af0cd  gcc/testsuite/gcc.target/aarch64/sve/struct_move_5.c
  874639c6e54b8300c1a3e278de48e09a  gcc/testsuite/gcc.target/aarch64/sve/struct_move_6.c
--- 77463,77471 ----
  6c4375f8f66f1784d2a589119a5261cc  gcc/testsuite/gcc.target/aarch64/sve/strided_store_5.c
  21ee3e0b3b3163909b128c7c23ecf3bc  gcc/testsuite/gcc.target/aarch64/sve/strided_store_6.c
  888c3207327449230af5ed6cc6968b78  gcc/testsuite/gcc.target/aarch64/sve/strided_store_7.c
! 121f460595d73422725c1b2e5ed6f6ca  gcc/testsuite/gcc.target/aarch64/sve/struct_move_1.c
! 5f466476400f4b3fef6ed2054f8ca07e  gcc/testsuite/gcc.target/aarch64/sve/struct_move_2.c
! 495af9285f2786cc71b8afd728defe5e  gcc/testsuite/gcc.target/aarch64/sve/struct_move_3.c
  4b21b95ee90d6e00a8848595a07ea988  gcc/testsuite/gcc.target/aarch64/sve/struct_move_4.c
  a859ca5b62cf57535e128f20e26af0cd  gcc/testsuite/gcc.target/aarch64/sve/struct_move_5.c
  874639c6e54b8300c1a3e278de48e09a  gcc/testsuite/gcc.target/aarch64/sve/struct_move_6.c
*************** fede82c538ecebf82ae0f495a35f66db  gcc/te
*** 77635,77641 ****
  008cae7eaa9cd6f41b5955cdd2b3f709  gcc/testsuite/gcc.target/aarch64/sve/vec_init_1_run.c
  2502162497eb48d665e7c376dccae0df  gcc/testsuite/gcc.target/aarch64/sve/vec_init_2.c
  4bc986ea41d65424e0c6997ea24e7b74  gcc/testsuite/gcc.target/aarch64/sve/vec_init_3.c
! 7326fab600b933872ff79bc8e4ed6c2f  gcc/testsuite/gcc.target/aarch64/sve/vec_init_4.c
  e1d79953597e40095f79ef1398f2d77f  gcc/testsuite/gcc.target/aarch64/sve/vec_init_5.c
  ad5ce34e9e891872cc75c0ffed59addd  gcc/testsuite/gcc.target/aarch64/sve/vec_perm_1.c
  a26f50223dec145aaa01ffa81756d9be  gcc/testsuite/gcc.target/aarch64/sve/vec_perm_1_overrange_run.c
--- 77708,77714 ----
  008cae7eaa9cd6f41b5955cdd2b3f709  gcc/testsuite/gcc.target/aarch64/sve/vec_init_1_run.c
  2502162497eb48d665e7c376dccae0df  gcc/testsuite/gcc.target/aarch64/sve/vec_init_2.c
  4bc986ea41d65424e0c6997ea24e7b74  gcc/testsuite/gcc.target/aarch64/sve/vec_init_3.c
! 3114180b37e67250b65aa855fa37f695  gcc/testsuite/gcc.target/aarch64/sve/vec_init_4.c
  e1d79953597e40095f79ef1398f2d77f  gcc/testsuite/gcc.target/aarch64/sve/vec_init_5.c
  ad5ce34e9e891872cc75c0ffed59addd  gcc/testsuite/gcc.target/aarch64/sve/vec_perm_1.c
  a26f50223dec145aaa01ffa81756d9be  gcc/testsuite/gcc.target/aarch64/sve/vec_perm_1_overrange_run.c
*************** ecd667d7ea25421b8101e2e8b25db455  gcc/te
*** 79762,79767 ****
--- 79835,79841 ----
  49a7ccfc7a8a3718a4b889282509f102  gcc/testsuite/gcc.target/alpha/asm-1.c
  72088d2975371a0383b6fa19c63a6ee4  gcc/testsuite/gcc.target/alpha/base-1.c
  30eb8e336f805cd7917f692c7aef8a9d  gcc/testsuite/gcc.target/alpha/cix-1.c
+ a4b3895f56f571c896a9ae9b42d3d392  gcc/testsuite/gcc.target/alpha/frame-pointer-save-1.c
  c4eec60b3306ebc857f91dd9f92ff8fe  gcc/testsuite/gcc.target/alpha/max-1.c
  f4fb909d003bd5e874c195605f19c018  gcc/testsuite/gcc.target/alpha/memclr-a2-o1-c9-ptr-safe-partial.c
  0a4a56c65748dcde68f9aa1958e44d74  gcc/testsuite/gcc.target/alpha/memclr-a2-o1-c9-ptr.c
*************** c6d81fb5db9edaff09b738f5da5629a3  gcc/te
*** 79840,79845 ****
--- 79914,79920 ----
  ebf2040b6c2e8ae5fd470d0d30d1f872  gcc/testsuite/gcc.target/alpha/target-max-2.c
  2586d0c409e5ea1089ccb05f40fbc1d1  gcc/testsuite/gcc.target/alpha/target-max-3.c
  8550a5b3c29ea1cc0e30bfe4a78741f9  gcc/testsuite/gcc.target/alpha/target-max-4.c
+ bd154c8b7d7b609589acc5fe193348a9  gcc/testsuite/gcc.target/alpha/tlsgd-dup-1.c
  96315e3201d2fa31fb4cbdf30fb2ba4d  gcc/testsuite/gcc.target/arc/abitest.S
  a125f0012bfc0fdad155c9b9bcc0f009  gcc/testsuite/gcc.target/arc/abitest.h
  de6da4a52a0859ffa9a053a8c13e86cc  gcc/testsuite/gcc.target/arc/add_f-combine.c
*************** ca03d4215dfd4e98fc1d17e6890fcc4a  gcc/te
*** 83310,83317 ****
  2f719adc3f3e3724629a17daf9bb2e71  gcc/testsuite/gcc.target/arm/pr100775.c
  b78ed4b32814a22ad0cf1f46aee89cc8  gcc/testsuite/gcc.target/arm/pr105312.c
  d59d090be25d48a18820542cf3abe1eb  gcc/testsuite/gcc.target/arm/pr109939.c
! 783749b808801f545a547539f41dec21  gcc/testsuite/gcc.target/arm/pr110268-1.c
! 64df4c73d4d8e79ee289d41e18bf6095  gcc/testsuite/gcc.target/arm/pr110268-2.c
  2d6d0432c5753dcd78f171e5f50e0fcd  gcc/testsuite/gcc.target/arm/pr111235.c
  c2682b969fcec66bb2ebb2442ff4221b  gcc/testsuite/gcc.target/arm/pr112337.c
  95b83592cd208bcb180064639fd1558f  gcc/testsuite/gcc.target/arm/pr115153.c
--- 83385,83392 ----
  2f719adc3f3e3724629a17daf9bb2e71  gcc/testsuite/gcc.target/arm/pr100775.c
  b78ed4b32814a22ad0cf1f46aee89cc8  gcc/testsuite/gcc.target/arm/pr105312.c
  d59d090be25d48a18820542cf3abe1eb  gcc/testsuite/gcc.target/arm/pr109939.c
! 0aac0e8217b2116ddcd4950176b5060e  gcc/testsuite/gcc.target/arm/pr110268-1.c
! ef45ae02da1e431415b4e19e77af7507  gcc/testsuite/gcc.target/arm/pr110268-2.c
  2d6d0432c5753dcd78f171e5f50e0fcd  gcc/testsuite/gcc.target/arm/pr111235.c
  c2682b969fcec66bb2ebb2442ff4221b  gcc/testsuite/gcc.target/arm/pr112337.c
  95b83592cd208bcb180064639fd1558f  gcc/testsuite/gcc.target/arm/pr115153.c
*************** d3a83e902d535bfb6c532e16d5b3622e  gcc/te
*** 89423,89429 ****
  abb025375057fca2257ef280333b1bc3  gcc/testsuite/gcc.target/i386/bmi2-bzhi64-1.c
  5721976eaa792ce05fbaeb5ab9b2db4c  gcc/testsuite/gcc.target/i386/bmi2-bzhi64-1a.c
  826e88b635597298eb11da113d70a12b  gcc/testsuite/gcc.target/i386/bmi2-check.h
! 1352b9cf37ba3653665b78f38febc363  gcc/testsuite/gcc.target/i386/bmi2-mulx-highpart-1.c
  433d1b6fa6face73e6695b6d632786a2  gcc/testsuite/gcc.target/i386/bmi2-mulx32-1.c
  f8784bf576dfa8df4a3ba072a7d09abf  gcc/testsuite/gcc.target/i386/bmi2-mulx32-1a.c
  e3b178e2b7128baeddd8c5bd2a5fb17f  gcc/testsuite/gcc.target/i386/bmi2-mulx32-2.c
--- 89498,89504 ----
  abb025375057fca2257ef280333b1bc3  gcc/testsuite/gcc.target/i386/bmi2-bzhi64-1.c
  5721976eaa792ce05fbaeb5ab9b2db4c  gcc/testsuite/gcc.target/i386/bmi2-bzhi64-1a.c
  826e88b635597298eb11da113d70a12b  gcc/testsuite/gcc.target/i386/bmi2-check.h
! 652927bae4f619addd7f155e99aa53b1  gcc/testsuite/gcc.target/i386/bmi2-mulx-highpart-1.c
  433d1b6fa6face73e6695b6d632786a2  gcc/testsuite/gcc.target/i386/bmi2-mulx32-1.c
  f8784bf576dfa8df4a3ba072a7d09abf  gcc/testsuite/gcc.target/i386/bmi2-mulx32-1a.c
  e3b178e2b7128baeddd8c5bd2a5fb17f  gcc/testsuite/gcc.target/i386/bmi2-mulx32-2.c
*************** c6304e928bcf1393de99639a142057ad  gcc/te
*** 90384,90390 ****
  2376b08fdef000cf037280264f5437fb  gcc/testsuite/gcc.target/i386/mpx.c
  05b06b2c30d6910a0afec51d588f2c21  gcc/testsuite/gcc.target/i386/ms_hook_prologue.c
  0e6e9e397831921b702df0167f01b9d2  gcc/testsuite/gcc.target/i386/mul.c
! 9cc56783ceeb2f065e06500f347c85ad  gcc/testsuite/gcc.target/i386/mulq-highpart.c
  3f03c366747891821238a2834cb47c5d  gcc/testsuite/gcc.target/i386/mult-highpart.c
  6214909c5cebe3099403b30910bbf1f6  gcc/testsuite/gcc.target/i386/mvc1.c
  98fd97ce23f7773af3c39c137882bd08  gcc/testsuite/gcc.target/i386/mvc10.c
--- 90459,90465 ----
  2376b08fdef000cf037280264f5437fb  gcc/testsuite/gcc.target/i386/mpx.c
  05b06b2c30d6910a0afec51d588f2c21  gcc/testsuite/gcc.target/i386/ms_hook_prologue.c
  0e6e9e397831921b702df0167f01b9d2  gcc/testsuite/gcc.target/i386/mul.c
! 82e6a6d5e18512e5482893ddfbc23842  gcc/testsuite/gcc.target/i386/mulq-highpart.c
  3f03c366747891821238a2834cb47c5d  gcc/testsuite/gcc.target/i386/mult-highpart.c
  6214909c5cebe3099403b30910bbf1f6  gcc/testsuite/gcc.target/i386/mvc1.c
  98fd97ce23f7773af3c39c137882bd08  gcc/testsuite/gcc.target/i386/mvc10.c
*************** a9e9b13ffffb6326bdaaf3a4037cac8b  gcc/te
*** 91118,91123 ****
--- 91193,91200 ----
  4ad7a316776972272f625f2de53164d6  gcc/testsuite/gcc.target/i386/pr110372.c
  68e0d40a0818ba1b85cd95dc7ce0b1e4  gcc/testsuite/gcc.target/i386/pr110438.c
  674aa758380ee7d3317eb3b15cc45aac  gcc/testsuite/gcc.target/i386/pr110452.c
+ fb788369df65112d52ccda37b7745911  gcc/testsuite/gcc.target/i386/pr110533-2a.c
+ fb8adff86213802a9ca3c22b137261a4  gcc/testsuite/gcc.target/i386/pr110533-2b.c
  3dfd85e970cc0e49b8dd83eed52c45b5  gcc/testsuite/gcc.target/i386/pr110533.c
  1881a61bb94612252160d6e5f7b5e82c  gcc/testsuite/gcc.target/i386/pr110551-2.c
  b8e579818f606e61adda2b0a5f6d00eb  gcc/testsuite/gcc.target/i386/pr110551.c
*************** b5fef8fb540e17f32442a50d6ee40f1e  gcc/te
*** 91528,91533 ****
--- 91605,91611 ----
  68c5cb935b4b7d76ed31899761e6b756  gcc/testsuite/gcc.target/i386/pr123027.c
  6631a523638aaa28883a1480bb393315  gcc/testsuite/gcc.target/i386/pr123121.c
  2931c5829c33b01bbef9a329552be2bb  gcc/testsuite/gcc.target/i386/pr123210.c
+ ccf7127632c1766ea239537854afddc4  gcc/testsuite/gcc.target/i386/pr123236-1.c
  f23aa13dbff267c3dd0be39ad389241f  gcc/testsuite/gcc.target/i386/pr123238-2.c
  51d42fc40aa1faa649ea3595c2494314  gcc/testsuite/gcc.target/i386/pr123238.c
  f99f88a6e994ad6e55e065e41bc58f8f  gcc/testsuite/gcc.target/i386/pr12329.c
*************** ec4b39860e0991bd026c5c23e91175ed  gcc/te
*** 91599,91604 ****
--- 91677,91687 ----
  3d8dd7cc1e868adc304243a4c6a7d758  gcc/testsuite/gcc.target/i386/pr125958.c
  898e1acdc786475670737820ad19ab04  gcc/testsuite/gcc.target/i386/pr126098.c
  f91ae39059fe7fb51f459d3446010197  gcc/testsuite/gcc.target/i386/pr126148.c
+ 62ce8cf34ffde61294bde66a126b7101  gcc/testsuite/gcc.target/i386/pr126202-1.c
+ aa2391715b97a0c720aed106bbf1dec9  gcc/testsuite/gcc.target/i386/pr126221-1.c
+ 66c9657305ff34624e42a22999b4d500  gcc/testsuite/gcc.target/i386/pr126221-2.c
+ 2b28be29db3ab8d125fb4e3ec1f245c9  gcc/testsuite/gcc.target/i386/pr126275.c
+ b843b68b0395d76ef5d007bb1b7c1c91  gcc/testsuite/gcc.target/i386/pr126283.c
  8951a1fa31f2d45ef9eacfff6a733f77  gcc/testsuite/gcc.target/i386/pr13366.c
  9a752a4b3b77930d91d3c8b0c8897b90  gcc/testsuite/gcc.target/i386/pr13685.c
  31ead0ee84b382ba03e3561931bc6e40  gcc/testsuite/gcc.target/i386/pr14289-1.c
*************** c1f485778a538436a6a68f5e6498922d  gcc/te
*** 92259,92265 ****
  a6c2194cbd848e329ab5c8240df1a6f0  gcc/testsuite/gcc.target/i386/pr64409.c
  0377a72cd6ce11f8f6572ea17dc41a9c  gcc/testsuite/gcc.target/i386/pr64513.c
  10edafa5d28fec2dd9bc1ecab31a24f3  gcc/testsuite/gcc.target/i386/pr64617.c
! b128456d496b4d734d4aab15cf2ab9cd  gcc/testsuite/gcc.target/i386/pr64731.c
  1373d22a1c11a77bbd5c3b0ae7ab163b  gcc/testsuite/gcc.target/i386/pr64905.c
  3f9f04c2528a876d6e1d568bacdc4432  gcc/testsuite/gcc.target/i386/pr65078-1.c
  eb5c42e7434196907a6b147b87ede739  gcc/testsuite/gcc.target/i386/pr65078-2.c
--- 92342,92348 ----
  a6c2194cbd848e329ab5c8240df1a6f0  gcc/testsuite/gcc.target/i386/pr64409.c
  0377a72cd6ce11f8f6572ea17dc41a9c  gcc/testsuite/gcc.target/i386/pr64513.c
  10edafa5d28fec2dd9bc1ecab31a24f3  gcc/testsuite/gcc.target/i386/pr64617.c
! 054627cf1c9909d70cc385e54048bbe8  gcc/testsuite/gcc.target/i386/pr64731.c
  1373d22a1c11a77bbd5c3b0ae7ab163b  gcc/testsuite/gcc.target/i386/pr64905.c
  3f9f04c2528a876d6e1d568bacdc4432  gcc/testsuite/gcc.target/i386/pr65078-1.c
  eb5c42e7434196907a6b147b87ede739  gcc/testsuite/gcc.target/i386/pr65078-2.c
*************** eeb101032ca1ec313a250b41e73a0923  gcc/te
*** 92597,92602 ****
--- 92680,92686 ----
  38ce6edffac967f82d7bde4d0caa10fd  gcc/testsuite/gcc.target/i386/pr78782.c
  64583ca88a2ae5f59a647f8f764ef826  gcc/testsuite/gcc.target/i386/pr78791.c
  179510b05909a0d18190ef1e493d2f7d  gcc/testsuite/gcc.target/i386/pr78794.c
+ 6ee616096c0ff354407d378c2a652645  gcc/testsuite/gcc.target/i386/pr78799.c
  8bb0a80b75fee7b1b9635d370229df0a  gcc/testsuite/gcc.target/i386/pr78899.c
  ebae8627d70e26f3340e157eb7d316d7  gcc/testsuite/gcc.target/i386/pr78904-1.c
  e8b661262c4c26e2ea7122f2b634d4bd  gcc/testsuite/gcc.target/i386/pr78904-10.c
*************** f5088b3f2961fb9ffbd5ceadc26d760d  gcc/te
*** 92749,92756 ****
  c5d9c610d13134afa7166c610226d443  gcc/testsuite/gcc.target/i386/pr81501-7.c
  d3e84013d1d0c1e90b33acbb0aa94b4a  gcc/testsuite/gcc.target/i386/pr81501-8a.c
  2ad09f0a4f76d4863b867c4a5a89c2bc  gcc/testsuite/gcc.target/i386/pr81501-8b.c
! 6ef43606449e15e084bf4ae857c01f40  gcc/testsuite/gcc.target/i386/pr81501-9a.c
! ef06226735cb8e2622b200b43aed628c  gcc/testsuite/gcc.target/i386/pr81501-9b.c
  98d0e76fde3f746743a32d52d393ac1e  gcc/testsuite/gcc.target/i386/pr81502.c
  66ae4c056da07dc7620743fcea9a3d76  gcc/testsuite/gcc.target/i386/pr81563.c
  487cad21d9bb2d8bb734efc861a4e1ca  gcc/testsuite/gcc.target/i386/pr81639.c
--- 92833,92840 ----
  c5d9c610d13134afa7166c610226d443  gcc/testsuite/gcc.target/i386/pr81501-7.c
  d3e84013d1d0c1e90b33acbb0aa94b4a  gcc/testsuite/gcc.target/i386/pr81501-8a.c
  2ad09f0a4f76d4863b867c4a5a89c2bc  gcc/testsuite/gcc.target/i386/pr81501-8b.c
! 40865093b45fcf3d2ba6e6df50219e2a  gcc/testsuite/gcc.target/i386/pr81501-9a.c
! d2eeaeca30f148bf30f80fd7982d0088  gcc/testsuite/gcc.target/i386/pr81501-9b.c
  98d0e76fde3f746743a32d52d393ac1e  gcc/testsuite/gcc.target/i386/pr81502.c
  66ae4c056da07dc7620743fcea9a3d76  gcc/testsuite/gcc.target/i386/pr81563.c
  487cad21d9bb2d8bb734efc861a4e1ca  gcc/testsuite/gcc.target/i386/pr81639.c
*************** c1f619c85acf6302085e7b426a707374  gcc/te
*** 94750,94756 ****
  928b2ab134391048e3dc1272d26b7f0a  gcc/testsuite/gcc.target/i386/x86gprintrin-5a.c
  e620cb612e6e5e7d4d2148b916d23273  gcc/testsuite/gcc.target/i386/x86gprintrin-5b.c
  cd5f15dc6f4513c2f0c6b7723c73a3cc  gcc/testsuite/gcc.target/i386/x86gprintrin-6.c
! e45be5b5dd5f8be0a75495bb33be0404  gcc/testsuite/gcc.target/i386/xchg-1.c
  b6d6abcfbd5245e5750e48d0e9518639  gcc/testsuite/gcc.target/i386/xchg-2.c
  6b4af20868897fdf46e4f385241c152d  gcc/testsuite/gcc.target/i386/xchg-3.c
  092f70544db9f4e0ae2995376586d4cb  gcc/testsuite/gcc.target/i386/xchg-4.c
--- 94834,94840 ----
  928b2ab134391048e3dc1272d26b7f0a  gcc/testsuite/gcc.target/i386/x86gprintrin-5a.c
  e620cb612e6e5e7d4d2148b916d23273  gcc/testsuite/gcc.target/i386/x86gprintrin-5b.c
  cd5f15dc6f4513c2f0c6b7723c73a3cc  gcc/testsuite/gcc.target/i386/x86gprintrin-6.c
! 1f2e5d3b847d99c461aa80cb646bdd2c  gcc/testsuite/gcc.target/i386/xchg-1.c
  b6d6abcfbd5245e5750e48d0e9518639  gcc/testsuite/gcc.target/i386/xchg-2.c
  6b4af20868897fdf46e4f385241c152d  gcc/testsuite/gcc.target/i386/xchg-3.c
  092f70544db9f4e0ae2995376586d4cb  gcc/testsuite/gcc.target/i386/xchg-4.c
*************** e503a36f60906243e41efad6cd79687d  gcc/te
*** 94834,94839 ****
--- 94918,94928 ----
  e80eb96074dc5330cca76e675ed3fa81  gcc/testsuite/gcc.target/i386/zero-scratch-regs-leafy-1.c
  9ec40a460fd8d078d383004e804051e7  gcc/testsuite/gcc.target/i386/zero-scratch-regs-leafy-2.c
  041c0c15a6f5fcdd1f0b5a575d1a3a0c  gcc/testsuite/gcc.target/i386/zero_extendkmask.c
+ 6b633983d39ccd1dde3f3cf577f06427  gcc/testsuite/gcc.target/i386/zext-avx10-1.c
+ c6063326a2b694e6d1a38885c29a0d69  gcc/testsuite/gcc.target/i386/zext-avx512f-1.c
+ 896ef5303350659a4abcfa97df81a146  gcc/testsuite/gcc.target/i386/zext-avx512fp16-1.c
+ a1a1c69476de051ab57e5d9505ed4b2d  gcc/testsuite/gcc.target/i386/zext-sse-1.c
+ d3e6307956b90d151b6e99f9fab09eb6  gcc/testsuite/gcc.target/i386/zext-sse-2.c
  09fb6852403bb7a0b9b3339c49e09efb  gcc/testsuite/gcc.target/ia64/20010423-1.c
  d42256aef37a73ae61dad2030303738b  gcc/testsuite/gcc.target/ia64/20020313-1.c
  80710ab442f553a1629beb106d8276a3  gcc/testsuite/gcc.target/ia64/20020326-1.c
*************** dbfbd76701c5c3e6c8ed37ced1ba9cc7  gcc/te
*** 95642,95647 ****
--- 95731,95737 ----
  76be8fbd02020c0b574be8ba3ce9b597  gcc/testsuite/gcc.target/loongarch/vector/lsx/pr123117.c
  559fe74ad49c6f3f986d68a4822b9041  gcc/testsuite/gcc.target/loongarch/vector/lsx/pr123766.c
  c09c273ba4acff5a9b6ac824b23ab663  gcc/testsuite/gcc.target/loongarch/vector/lsx/pr123807.c
+ ea02ef2c63cf57707a942c3c1cc87adb  gcc/testsuite/gcc.target/loongarch/vector/lsx/pr126200.c
  2ddebd413eaa67833fbe9045727d296a  gcc/testsuite/gcc.target/loongarch/vector/lsx/rotl-with-vrotr-b.c
  b4792704ae2560835ce2844ab052bd96  gcc/testsuite/gcc.target/loongarch/vector/lsx/rotl-with-vrotr-d.c
  0f0929ffb430681fa30b2b435c3a1aea  gcc/testsuite/gcc.target/loongarch/vector/lsx/rotl-with-vrotr-h.c
*************** dbbd48736153257707cd3963aa82f121  gcc/te
*** 96187,96196 ****
  742864fcf01cb3ef0c88e05fdc619f50  gcc/testsuite/gcc.target/mips/mult-7.c
  2d64555e7a1192ed0a5abf3bc1995461  gcc/testsuite/gcc.target/mips/mult-8.c
  f84a034f7fdb21c836ab9bff8104218e  gcc/testsuite/gcc.target/mips/mult-9.c
- 626b32e4bacb14cdde997b47448c8e97  gcc/testsuite/gcc.target/mips/mxu-compile-no.c
- 2c38aeb8e2ea534c18303ecbebcb974b  gcc/testsuite/gcc.target/mips/mxu-compile.c
- 813eaefb5b859149867252e11c6a4811  gcc/testsuite/gcc.target/mips/mxu-driver-no.c
- 971e7890eb345c0fd08112a34158af61  gcc/testsuite/gcc.target/mips/mxu-driver.c
  8516b01c548a3dc33c3722a609a10af0  gcc/testsuite/gcc.target/mips/nan-2008.c
  e85b548694548ba941da6527e8b64b33  gcc/testsuite/gcc.target/mips/nan-legacy.c
  d9537ef2c19af319564e2250b13e87eb  gcc/testsuite/gcc.target/mips/nanf-2008.c
--- 96277,96282 ----
*************** eedc30a88e7c85fed9a92e93b5ef5553  gcc/te
*** 100296,100301 ****
--- 100382,100388 ----
  371709295f3134754428c912bd5e3ee4  gcc/testsuite/gcc.target/riscv/ior-synthesis-1.c
  016fae660b0d8d24c12a8ce81c7bc0c0  gcc/testsuite/gcc.target/riscv/ior-synthesis-2.c
  b656a9e0d73427727bb0cc6df44334ab  gcc/testsuite/gcc.target/riscv/jump-table-large-code-model.c
+ c535c0e6e53eb272db7d7e5b9a93e344  gcc/testsuite/gcc.target/riscv/large-frame-indexed-base.c
  4fb2a135047684bf2c5c829019b86d4a  gcc/testsuite/gcc.target/riscv/large-model.c
  9ae56141fab814505fcf7366ef12db85  gcc/testsuite/gcc.target/riscv/li.c
  6308e09d3e5133433b97e26dcb02daba  gcc/testsuite/gcc.target/riscv/load-immediate.c
*************** dcced0272e68ebd6c311b4e558088af7  gcc/te
*** 100328,100334 ****
  ff231335f542050ad4fec2d9fb0a1456  gcc/testsuite/gcc.target/riscv/mcpu-xt-c910v2.c
  f4d15f0f76038ce87073049d4d456ff6  gcc/testsuite/gcc.target/riscv/mcpu-xt-c920.c
  8499a3cd439fb6c9b5053ff1651105af  gcc/testsuite/gcc.target/riscv/mcpu-xt-c920v2.c
! 47a4c49696b231a88b31b94ebebd9874  gcc/testsuite/gcc.target/riscv/mcpu-xt-c9501fdvt.c
  3311f6659838594b5135f5297b263bd1  gcc/testsuite/gcc.target/riscv/mem-extend.c
  946ddaa3d2bd56dab2b6bef260213f86  gcc/testsuite/gcc.target/riscv/memcpy-nonoverlapping.c
  2dd2de1f802134107e9ed820836a3aa7  gcc/testsuite/gcc.target/riscv/memset-nonoverlapping.c
--- 100415,100421 ----
  ff231335f542050ad4fec2d9fb0a1456  gcc/testsuite/gcc.target/riscv/mcpu-xt-c910v2.c
  f4d15f0f76038ce87073049d4d456ff6  gcc/testsuite/gcc.target/riscv/mcpu-xt-c920.c
  8499a3cd439fb6c9b5053ff1651105af  gcc/testsuite/gcc.target/riscv/mcpu-xt-c920v2.c
! 31ce53dbf2d488ff8b1c6d2893876e21  gcc/testsuite/gcc.target/riscv/mcpu-xt-c9501fdvt.c
  3311f6659838594b5135f5297b263bd1  gcc/testsuite/gcc.target/riscv/mem-extend.c
  946ddaa3d2bd56dab2b6bef260213f86  gcc/testsuite/gcc.target/riscv/memcpy-nonoverlapping.c
  2dd2de1f802134107e9ed820836a3aa7  gcc/testsuite/gcc.target/riscv/memset-nonoverlapping.c
*************** ba319008fc3d471c58bb29fc9d29ccbc  gcc/te
*** 100779,100784 ****
--- 100866,100873 ----
  c5510efb0e85b94c43e177d92c8bfa96  gcc/testsuite/gcc.target/riscv/pr123322.c
  36f2729f33d66359ae39ca96a9075786  gcc/testsuite/gcc.target/riscv/pr123380.c
  331dce227538529fceff71229d276a03  gcc/testsuite/gcc.target/riscv/pr123838.c
+ a5d66bb3d910fbbacdba032cdeaac2a3  gcc/testsuite/gcc.target/riscv/pr123883-a.c
+ 30cfaa4ac3214e5e707a7943ffa9e85e  gcc/testsuite/gcc.target/riscv/pr123883-b.c
  1afef63c58743345380dc43605342496  gcc/testsuite/gcc.target/riscv/pr123884-a.c
  29f077bb17eda02471a3b85bbf381886  gcc/testsuite/gcc.target/riscv/pr123884-b.c
  7ebb311f467142725865b278b303876f  gcc/testsuite/gcc.target/riscv/pr123884-c.c
*************** dbe7e01002e5a8097f16f6e89450e72f  gcc/te
*** 100797,100802 ****
--- 100886,100892 ----
  de7f2cc01b369ea994e72e2ba0a8b39a  gcc/testsuite/gcc.target/riscv/pr125320.c
  e7c81dc9311e0ed5e4c52e29259d2a41  gcc/testsuite/gcc.target/riscv/pr125387.c
  3cda93b1ee6ddd4ac653c7aade342f8d  gcc/testsuite/gcc.target/riscv/pr125405.c
+ b922a4195a74b66838f4ea3b9f49a130  gcc/testsuite/gcc.target/riscv/pr125731-1.c
  37a08389ba95284cc27832767dfc1430  gcc/testsuite/gcc.target/riscv/pr43644.c
  8eba488c3d26a288644785954ea86af2  gcc/testsuite/gcc.target/riscv/pr52345.c
  f035fac0dc9b5f42ec0a469a8391163c  gcc/testsuite/gcc.target/riscv/pr56096.c
*************** edd0a4ba6a9489214ca39d04c6a65fdc  gcc/te
*** 101483,101488 ****
--- 101573,101596 ----
  107743a69f58f28cf14e8a598bd333e7  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_store_run-1.c
  c1274e3ee15699a124ca1ff4e24fd55b  gcc/testsuite/gcc.target/riscv/rvv/autovec/gather-scatter/strided_store_run-2.c
  146bc36012f7c00a372699da7c2a51c1  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/group_overlap.h
+ c939812461705a9ada23cc8ee07a2b8a  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-m1.c
+ f3e4289d879c78292539eb3fe5c62771  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-m2.c
+ f3450e69c0d57a3bed7913f31f8ef761  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-m4.c
+ b7452cfb8e443e48c2d91efe52845ad4  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-mf2.c
+ aaf1a8778897724e65ab9ab3dfa9978f  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-mf4.c
+ 71634467087cb758c6e9ee166e61b16d  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f32-m1.c
+ 1583edfffdd68c4a64112bc90a7a766b  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f32-m2.c
+ 43fda41d1e7a7a0b6224c5dd98f18397  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f32-m4.c
+ 0e44dd8894c9ee1758349ea57eb92635  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f32-mf2.c
+ 43bc366ade8d49f595757ecb882d5e7a  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-m1.c
+ 6039e320ffd6d7409025bc6d22f370ac  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-m2.c
+ b957d98be4a4b8f1b0139c6ee330c32e  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-m4.c
+ f161b01db0c1346c9d03a384f548d45c  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-mf2.c
+ 1b09462f789a31806da0448a0072f504  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-mf4.c
+ d0bafb47ef13ee52c7404a4c1eefdf63  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f32-m1.c
+ bab4b3dcf1de9b593228cff635f3336d  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f32-m2.c
+ 41b96cf6bb9349d5ed950c52e0766de5  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f32-m4.c
+ 8fd441541a745cb9f2cd4f88180cb0c7  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f32-mf2.c
  c25cf2ca0a3a0b014906f24afd50821f  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i16-m1.c
  7df66d26e286fb57d9e06f027962d153  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i16-m2.c
  b44618517a66b464f9d723d353604c1f  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i16-m4.c
*************** aebf8cb55ea37d488f66e723386c2094  gcc/te
*** 101507,101527 ****
  d13f1fc153f66706d99b5b567a580764  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf4-i8-mf2.c
  a38cc702fc0e0c3a0353c472da553230  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf4-i8-mf4.c
  26f1e175ba5ddf8e8a367a2667077401  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf4-i8-mf8.c
! ccf92ff3f50eee7364c44c3dc49f8ed1  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-m1.c
! 996219fee36cdaedaf6aceae53bbf2ea  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-m2.c
  cb1adfb03ea24c507b7cf273b40f9287  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-m4.c
! 653c96e5b10c0d81e864a65cda537e58  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-mf2.c
! 00d1742072fabe13211a3fd87eb39c89  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-mf4.c
! 60ce9ff848f54917083e0a199e609a38  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u32-m1.c
  9404d46e0687e0e5a036af9cba2cdf6b  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u32-m2.c
  dcf0b13f22521fc836671cca2d2b8ea9  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u32-m4.c
! c1250391b46a6256a2f013d3d1d41f8e  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u32-mf2.c
! f731871e4bfb07f62b90e70b62af3c04  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-m1.c
! d08eedb6836d5e53a65397eadb19f45f  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-m2.c
  82f8252330adb9be134d856d009e757f  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-m4.c
! 401dc6a29c923e1af0aaa0cb69c22908  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-mf2.c
! e52d84128f00a1b8b74fa94c0bb00190  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-mf4.c
! 414b4014231857e1e1c9d14c3551a8ee  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-mf8.c
  3bf1ff71da354808701ac993514bb178  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf4-u16-m1.c
  b5694792b5e8fd96bb83a3a45a23224d  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf4-u16-m2.c
  52df73ded97985343f658a1e68fa967c  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf4-u16-mf2.c
--- 101615,101669 ----
  d13f1fc153f66706d99b5b567a580764  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf4-i8-mf2.c
  a38cc702fc0e0c3a0353c472da553230  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf4-i8-mf4.c
  26f1e175ba5ddf8e8a367a2667077401  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf4-i8-mf8.c
! 516b6f29c82c6c2f89703627a2a95ebc  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-m1.c
! 209e100b9223e7231c991e340ea2e1f8  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf2.c
! 381ea1cbe4fc04aa11f433c0c713a502  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf4.c
! 9f3a524ece1b631426cec8de592e6c0e  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf8.c
! 45f1cd2300ca11a55323633f20c02061  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-m1.c
! 0e5fd5bd70a23faf929ef2ded1e02ca8  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-m2.c
! 63506818b3817aae244323976aa59342  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-m4.c
! 89c5ed680db86f0ddfd1a898113c0fa7  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-mf2.c
! b6a984dd1b41a037ebe4fd3bd22b95b7  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-mf4.c
! 422c49ff72813eb21e2fe5935f3551ba  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i32-m1.c
! 3c087e1f315b581f03a2774c24cdf525  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i32-m2.c
! 194aa2b2e32f3dd5f1d63f02b208cc25  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i32-m4.c
! d965ba5401198b30d0d8d5128ed94506  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i32-mf2.c
! 7eed436883c9ea262fb891051655329d  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-m1.c
! f4a386c23923706c2cca97e06d4503f8  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-m2.c
! 9a8d0858c40cbd9788aed8f0c51d06e4  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-m4.c
! 6396e65f1ec0b543171178bea0637585  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-mf2.c
! 3b51a278268b39054430bb24367be57b  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-mf4.c
! 853330314c02293d384d9a74f3f463a1  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-mf8.c
! 2d58aa566fb6242cad849ef56c6a7975  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-m1.c
! 1c88cb719f236bea2e404fa875678d67  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-m2.c
! 39ae7d32ab9ad2631f5e6e40401390ad  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-m4.c
! 11d1f470685d993e91cecd7449b69cef  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-mf2.c
! 27783d0c9f68e10dc6be973ea1888b78  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-mf4.c
! ae29ab5be971a9af2c788933dae6bb14  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i32-m1.c
! 96a0071883bf88f74ded3ef6456e1ae7  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i32-m2.c
! e1975dee7baa35142ae497de2eb47706  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i32-m4.c
! d402e43c038d24e70ec467fcaaa1f78b  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i32-mf2.c
! 247c4f01fd7816e2c0244c361269dd6c  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-m1.c
! d41a4519a8b54214102fd0a9fc2bc1df  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-m2.c
! d291f2d2444b934d620084fd8c063414  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-m4.c
! 851347b582ef8e57091b7443e584ccac  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-mf2.c
! d9f2754b44f0752977303b6caafc387b  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-mf4.c
! 8f5a96f5232792ea41981dd05a83d4ee  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-mf8.c
! af78252741efde1331f37b68b3e48175  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-m1.c
! b0d5a3bf53fa786dea6c2f4704c9f52e  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-m2.c
  cb1adfb03ea24c507b7cf273b40f9287  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-m4.c
! c7cbbdf57703cf8cb9dec2b7f3e28509  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-mf2.c
! 9cfb682ae3bc77d2241322d182fbbcab  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-mf4.c
! 6ab167a3d4d9eaa9cf22cafba74b80d9  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u32-m1.c
  9404d46e0687e0e5a036af9cba2cdf6b  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u32-m2.c
  dcf0b13f22521fc836671cca2d2b8ea9  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u32-m4.c
! d1758e010c0aa4fa20325949442a1feb  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u32-mf2.c
! 30d6db92971c5f64fb393173d3c510b5  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-m1.c
! 7bd5e4ad2bb0b5e6f37dd1a7a0f8756d  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-m2.c
  82f8252330adb9be134d856d009e757f  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-m4.c
! c803f84124769eb3ea871f0d3628c98d  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-mf2.c
! a4cf2eecfb554ce2087c45cd9112a709  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-mf4.c
! 0ffac114329e5f8de2b7b6e82a01b01f  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-mf8.c
  3bf1ff71da354808701ac993514bb178  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf4-u16-m1.c
  b5694792b5e8fd96bb83a3a45a23224d  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf4-u16-m2.c
  52df73ded97985343f658a1e68fa967c  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf4-u16-mf2.c
*************** e2b0b76a8e56cd8728365c7f79cf87a1  gcc/te
*** 101531,101536 ****
--- 101673,101682 ----
  5aa965327f3d9f56aaf9a10bd072e950  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf4-u8-mf2.c
  3b4d7400c1877e475f4a1a365ae47ece  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf4-u8-mf4.c
  a5051b2db50e5a6cfc051b22bd3d07ff  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf4-u8-mf8.c
+ 2090d8dce67d01a8f89e149af03b1ec8  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf8-u8-m1.c
+ 722192106269d63ef3f3a200c3c980bb  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf8-u8-mf2.c
+ 042222f221879fbb39fb6ebbeb1c9cdb  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf8-u8-mf4.c
+ ab8f7870837dd4c9e61312015728ee93  gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf8-u8-mf8.c
  c1779350d6b08b51c352226f6a13ffb2  gcc/testsuite/gcc.target/riscv/rvv/autovec/madd-split2-1.c
  f7a8ba49de6d1e5b275e35f45edbf009  gcc/testsuite/gcc.target/riscv/rvv/autovec/max-vect-1.c
  2b66681c6de1c53f888f788a0ccfb6da  gcc/testsuite/gcc.target/riscv/rvv/autovec/max-vect-2.c
*************** bc25c78cb1f0c9d66bd5e81a5d6ef442  gcc/te
*** 104298,104315 ****
  f443d44b7b74c36b4c9f956343852098  gcc/testsuite/gcc.target/riscv/rvv/base/pr111935.c
  03af6f8fb1424ac4e0ff7abae66b9d8b  gcc/testsuite/gcc.target/riscv/rvv/base/pr112327-1.c
  fad2da62a00d5292561ff53cea4b55c6  gcc/testsuite/gcc.target/riscv/rvv/base/pr112327-2.c
! eed1ac048d42e17bb22d3bf8230126bf  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-1.c
  e9a2249f2da2ba761570f0f8525e02e1  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-10.c
  f67e6e7fca55e95fb20519f57c78ef2f  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-11.c
  c732619185ed7d06a226a8b77b3bf69c  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-12.c
! a8a4d03be327fb2c9f5b75bd853a5c21  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-13.c
  cceb6dda294173f54299477fb726ce86  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-14.c
  554e3c1dffb02461769b5b636e984057  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-15.c
  012a9bc246bc5b0d9125f41583a0c090  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-16.c
  513c0d5674fd571d3afdc78a9be04f74  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-17.c
! 45f0ef4b9e6482ffad4ed07b3848d1e5  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-18.c
  7e4acf8a36d5832d7d5e91c74df1e724  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-19.c
! 3e2ec7778c99a6a0261ab2f4a6450f3e  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-2.c
  1a7558800b040b8dda24bcc3d94f5729  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-20.c
  096b804168636ee17c9d4636018e26fb  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-21.c
  ddfc52ce3e11b16f5826a17400d5173d  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-22.c
--- 104444,104462 ----
  f443d44b7b74c36b4c9f956343852098  gcc/testsuite/gcc.target/riscv/rvv/base/pr111935.c
  03af6f8fb1424ac4e0ff7abae66b9d8b  gcc/testsuite/gcc.target/riscv/rvv/base/pr112327-1.c
  fad2da62a00d5292561ff53cea4b55c6  gcc/testsuite/gcc.target/riscv/rvv/base/pr112327-2.c
! 179cc89cfd2cf96f0f22659716c0a1e1  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-1.c
  e9a2249f2da2ba761570f0f8525e02e1  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-10.c
  f67e6e7fca55e95fb20519f57c78ef2f  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-11.c
  c732619185ed7d06a226a8b77b3bf69c  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-12.c
! 612a5e67ae26b0cf88b2f460e9b9acda  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-13-0.c
! 34a33cbf7de1808f02c7affc18e3e3ed  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-13-1.c
  cceb6dda294173f54299477fb726ce86  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-14.c
  554e3c1dffb02461769b5b636e984057  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-15.c
  012a9bc246bc5b0d9125f41583a0c090  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-16.c
  513c0d5674fd571d3afdc78a9be04f74  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-17.c
! e4cf82cf74ec3ebf31aab7aa4c710c21  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-18.c
  7e4acf8a36d5832d7d5e91c74df1e724  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-19.c
! 5df3afe63166ec978356fc0e7df63fb7  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-2.c
  1a7558800b040b8dda24bcc3d94f5729  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-20.c
  096b804168636ee17c9d4636018e26fb  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-21.c
  ddfc52ce3e11b16f5826a17400d5173d  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-22.c
*************** dfb14b9db17d26fe2fff40418d1cf459  gcc/te
*** 104320,104326 ****
  ab1c2cc74c4984acd4b0ec4d31680345  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-27.c
  9997c1ac80863665727a4dfe113fce94  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-28.c
  a69ac1e559dc378618dca7daeec57b88  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-29.c
! 09e3888193a8ff1dfc40910fa62d839d  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-3.c
  59f203a9d29ead522c7f2c6623574ef8  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-30.c
  e3b53b28af2e36aba14282872c2d1cdf  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-31.c
  10ae79305c8c4b2f96ebd4f202becdeb  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-32.c
--- 104467,104473 ----
  ab1c2cc74c4984acd4b0ec4d31680345  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-27.c
  9997c1ac80863665727a4dfe113fce94  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-28.c
  a69ac1e559dc378618dca7daeec57b88  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-29.c
! 3d4e4c1a1452881faab3d56f5236035e  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-3.c
  59f203a9d29ead522c7f2c6623574ef8  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-30.c
  e3b53b28af2e36aba14282872c2d1cdf  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-31.c
  10ae79305c8c4b2f96ebd4f202becdeb  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-32.c
*************** ea45ee6af1e6984cfcd95c0a1d5fe683  gcc/te
*** 104330,104339 ****
  b654b48048b78f1643d89a32b5255958  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-36.c
  922b072fea9e0e74a7ca4d026a66b03f  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-37.c
  938c1b23ec2452ceb884b274c204a527  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-38.c
! 9db6e8e6c4bed9dc2334cb79722fd898  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-39.c
  8d793f3fa3dd09e46f94c6d18c24e27e  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-4.c
! 9762bc352c6862583e6e51c38b351fc0  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-40.c
! 95d8a8d0475bc3c9ef6bb8e7e264136f  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-41.c
  4a495ccab8bdb2c1283e197a403f58dc  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-42.c
  19140a4383e8b06d1d20ab5f9e1496c5  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-5.c
  2ed4fb55a4dc2e5bba7bdac02954f3c2  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-6.c
--- 104477,104486 ----
  b654b48048b78f1643d89a32b5255958  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-36.c
  922b072fea9e0e74a7ca4d026a66b03f  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-37.c
  938c1b23ec2452ceb884b274c204a527  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-38.c
! 88e8e13309acfb75e5fe0ef3b1840424  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-39.c
  8d793f3fa3dd09e46f94c6d18c24e27e  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-4.c
! 8d9845973db492819f22ab4477fdf738  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-40.c
! efdbae8fd822c979e672138c6ef5913b  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-41.c
  4a495ccab8bdb2c1283e197a403f58dc  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-42.c
  19140a4383e8b06d1d20ab5f9e1496c5  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-5.c
  2ed4fb55a4dc2e5bba7bdac02954f3c2  gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-6.c
*************** dfa7bdc703178385c7e9fe50842850c2  gcc/te
*** 104441,104446 ****
--- 104588,104595 ----
  c7b8c050c02b19e79d1fc07b2cbd9798  gcc/testsuite/gcc.target/riscv/rvv/base/setmem-2.c
  364ca0ddd4b74247076ccd4f9e232248  gcc/testsuite/gcc.target/riscv/rvv/base/setmem-3.c
  9d20ec19a81591b4273ec5dc6d68c4ce  gcc/testsuite/gcc.target/riscv/rvv/base/shift_vx_constraint-1.c
+ 9e3443a9cd27e10605492bfd7a6ab740  gcc/testsuite/gcc.target/riscv/rvv/base/sibcall-scalable-frame-indirect.c
+ f183f0b083d468bc13c2d979632e5d57  gcc/testsuite/gcc.target/riscv/rvv/base/sibcall-scalable-frame-weak.c
  3803a1288f8c5b977c84cca2c1bfd391  gcc/testsuite/gcc.target/riscv/rvv/base/simplify-vdiv.c
  0beee1dd080ce6562b9f1784fcdddecd  gcc/testsuite/gcc.target/riscv/rvv/base/simplify-vrsub.c
  3fbbfac9be409bc2caba5939fdfd1b9b  gcc/testsuite/gcc.target/riscv/rvv/base/spill-1.c
*************** c4271426c82005f277417d6fed6c6e07  gcc/te
*** 105455,105461 ****
  ea0cf0b8514fc5f31482a6791295dcdd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-12.c
  3091b17176a21128d513f9bd2627d46c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-13.c
  7a39209f4400e08a123ebbac1603e0a7  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-14.c
! c4980de69437fa220ce99b1e68ae0b6c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-15.c
  b89d5d905c4955ed5ee8cb130799d717  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-16.c
  4f5f521bc7321c9d8d182eb6bbbf87c5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-17.c
  6045e021342595ef012050bea17d8e46  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-18.c
--- 105604,105610 ----
  ea0cf0b8514fc5f31482a6791295dcdd  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-12.c
  3091b17176a21128d513f9bd2627d46c  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-13.c
  7a39209f4400e08a123ebbac1603e0a7  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-14.c
! 0134954c7098730e9acbc2dc36e24afc  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-15.c
  b89d5d905c4955ed5ee8cb130799d717  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-16.c
  4f5f521bc7321c9d8d182eb6bbbf87c5  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-17.c
  6045e021342595ef012050bea17d8e46  gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-18.c
*************** a84224faacb7d93a1bd4c61397928413  gcc/te
*** 106572,106577 ****
--- 106721,106727 ----
  845c8003a4bc1f3d9e3c4f80225ff542  gcc/testsuite/gcc.target/riscv/shorten-memrefs-7.c
  5c6f219d3c6f78457ccc2f81108fa5cf  gcc/testsuite/gcc.target/riscv/shorten-memrefs-8.c
  52ab5a107742fe4b4967ec31e30faef6  gcc/testsuite/gcc.target/riscv/shrink-wrap-1.c
+ d8124b609bce376dec9ab0e495ef424b  gcc/testsuite/gcc.target/riscv/sibcall-materialize-pseudo.c
  f50428eca445e9ddf079d41d0684fe91  gcc/testsuite/gcc.target/riscv/sifive-7-load-address-bypass.c
  82d8412eb43370360f8ac3c0fc0ce4fe  gcc/testsuite/gcc.target/riscv/sign-extend-1.c
  cc32dda6538c5a12c022772b1eb4f6f0  gcc/testsuite/gcc.target/riscv/sign-extend-rshift-32.c
*************** b2d190bbc93bb8aca63abd0ddf20aefc  gcc/te
*** 106582,106599 ****
--- 106732,106755 ----
  b46d13a1308787ce2b7a3bb9f83f6524  gcc/testsuite/gcc.target/riscv/sle.c
  7932cde858379cf62bae15befab52987  gcc/testsuite/gcc.target/riscv/sleu.c
  33017ee48637167310cc697349833aba  gcc/testsuite/gcc.target/riscv/slt-1.c
+ ec91ff7ca498fc3a01ccd107f5e73ad9  gcc/testsuite/gcc.target/riscv/small-frame-indexed-base.c
  a2a3683590a6c12a010cfd0b3f03b095  gcc/testsuite/gcc.target/riscv/smax-ieee.c
  86c31544a16504a7d32260ca07621420  gcc/testsuite/gcc.target/riscv/smax.c
  0215096559d8744c32da1dc65d488b7c  gcc/testsuite/gcc.target/riscv/smaxf-ieee.c
  cdb04f31d6f1fa2cacb8ccae467880f3  gcc/testsuite/gcc.target/riscv/smaxf.c
+ beb7d3e6d3db7780651b557d4c9d1c5a  gcc/testsuite/gcc.target/riscv/smcdeleg-version.c
+ ad48793588bae15e3fa02b9d0b009ebe  gcc/testsuite/gcc.target/riscv/smctr-version.c
  b094c95e67c7236f65fdb03707497d4f  gcc/testsuite/gcc.target/riscv/smin-ieee.c
  55464a1a60268f3df9e4c34893965e56  gcc/testsuite/gcc.target/riscv/smin.c
  6bdd3e0dc6b0f53ca23248ab17fdebaa  gcc/testsuite/gcc.target/riscv/sminf-ieee.c
  ff5bbc31f569f4e1b8286fe3e8f4153b  gcc/testsuite/gcc.target/riscv/sminf.c
  66e4f2f8f9704c3bf9d940e3ac922074  gcc/testsuite/gcc.target/riscv/snez.c
+ 3ebcce46bed63b72a7feb17f0a30bce2  gcc/testsuite/gcc.target/riscv/ssccfg-version.c
+ 4d4179baee1eef15fdb3c05fee4fcf91  gcc/testsuite/gcc.target/riscv/ssctr-version.c
  cff495903638733441945501e9bd26a2  gcc/testsuite/gcc.target/riscv/ssp-1.c
  84381e92e922deea2f324e0fdee58532  gcc/testsuite/gcc.target/riscv/ssp-2.c
  8886d460dd41defee53edd92988744f4  gcc/testsuite/gcc.target/riscv/ssp-zcmp.c
+ 6d091423617788805248f41968adf003  gcc/testsuite/gcc.target/riscv/ssqosid-version.c
  b0e5d3a4a7cc05529173660fe2976220  gcc/testsuite/gcc.target/riscv/stack-check-12.c
  eaebe6161e17d65a5a19636cf3e9638b  gcc/testsuite/gcc.target/riscv/stack-check-13.c
  78e19f0568e44a3cfdf1d1a534c5e2c1  gcc/testsuite/gcc.target/riscv/stack-check-14.c
*************** cbb2a520f133aca83514f291894f0980  gcc/te
*** 106636,106641 ****
--- 106792,106798 ----
  f6c69573e846720818ee65a925b0af14  gcc/testsuite/gcc.target/riscv/sum-of-two-s12-const-1.c
  7304074a0af5a5e8dbb86e7f5c0467c8  gcc/testsuite/gcc.target/riscv/sum-of-two-s12-const-2.c
  09a9691c0cf30e284d645d7330825235  gcc/testsuite/gcc.target/riscv/sum-of-two-s12-const-3.c
+ ab65d15013da36fd49725b8349780b83  gcc/testsuite/gcc.target/riscv/svrsw60t59b-version.c
  e95dcee6d2cd4bf984685e71d71ae504  gcc/testsuite/gcc.target/riscv/switch-qi.c
  c487685abb9e3ab6bef4f12eae646e50  gcc/testsuite/gcc.target/riscv/switch-si.c
  ceb78b02b8ae485388560ad8ca685c32  gcc/testsuite/gcc.target/riscv/synthesis-1.c
*************** c0a4bee5eba1cce4e72b7fe92728426b  gcc/te
*** 106685,106693 ****
--- 106842,106856 ----
  8cbdaea3ed315b788e2b1bede243011b  gcc/testsuite/gcc.target/riscv/test-equal.c
  eba52e984a37427da6fa1233257ff6a9  gcc/testsuite/gcc.target/riscv/tls_1.x
  dbe67905fc0f65b7be7d2f96a6c490e6  gcc/testsuite/gcc.target/riscv/tlsdesc.c
+ 20e02236b1ffe078c304bd5edf4f2331  gcc/testsuite/gcc.target/riscv/tlsdesc_clobber.c
+ f92ca22502effaafe88f3452f7448d2f  gcc/testsuite/gcc.target/riscv/tlsdesc_clobber_lra.c
+ 924e59b19a6e00e89c6b16aed89bafba  gcc/testsuite/gcc.target/riscv/tlsdesc_clobber_v.c
+ d629f92766ec0da7da697f0c402db40b  gcc/testsuite/gcc.target/riscv/tlsdesc_clobber_v_csr.c
+ de8e1aef32efeedcf85e8867838daa21  gcc/testsuite/gcc.target/riscv/unroll-explicit-attr-cunroll.c
  c895766a1610f9d625cb27bca819c177  gcc/testsuite/gcc.target/riscv/unroll-explicit.c
  7c6ff445e37bec7c2f19a69141de53c3  gcc/testsuite/gcc.target/riscv/unroll-large-loop.c
  d0fda40ee29ab6c0c6f7481afa55a64b  gcc/testsuite/gcc.target/riscv/unroll-pragma.c
+ 2112b5160ba1f41e5f8a7a5584ada603  gcc/testsuite/gcc.target/riscv/unroll-small-loop-cunroll.c
  d45ab7c86bae3f24ebe278d34d77ca5a  gcc/testsuite/gcc.target/riscv/unroll-small-loop-tune.c
  17c26c4e3db90b10786000b08e72a1fb  gcc/testsuite/gcc.target/riscv/unroll-small-loop.c
  29a602b7f814b2f1c3f0991f0e0525b8  gcc/testsuite/gcc.target/riscv/ventana-16122.c
*************** a108ee53538d2f13cafacf8505977577  gcc/te
*** 106899,106905 ****
  fb2bbe19adb120805523add355d1822d  gcc/testsuite/gcc.target/riscv/zfbfmin-bf16_comparison.c
  50814de5b7700abb70d7c6ab3e2b7401  gcc/testsuite/gcc.target/riscv/zfbfmin-bf16_float_libcall_convert.c
  c6924cfcab740bd8de9296d509178f4d  gcc/testsuite/gcc.target/riscv/zfbfmin-bf16_integer_libcall_convert.c
! 6eafc07562072676788badf18ac87198  gcc/testsuite/gcc.target/riscv/zi-ext.c
  5317b44a285fba7ff5b0d15770fd05c8  gcc/testsuite/gcc.target/riscv/zicfilp-call.c
  16cb1a2740a273da5a03e215175e77ad  gcc/testsuite/gcc.target/riscv/zicfilp-func-entry.c
  cd278cfb79b54565e3bccc2b9830347d  gcc/testsuite/gcc.target/riscv/zicfilp-gpr-save.c
--- 107062,107071 ----
  fb2bbe19adb120805523add355d1822d  gcc/testsuite/gcc.target/riscv/zfbfmin-bf16_comparison.c
  50814de5b7700abb70d7c6ab3e2b7401  gcc/testsuite/gcc.target/riscv/zfbfmin-bf16_float_libcall_convert.c
  c6924cfcab740bd8de9296d509178f4d  gcc/testsuite/gcc.target/riscv/zfbfmin-bf16_integer_libcall_convert.c
! 3a0449f6ff2585641dacc090329dcf63  gcc/testsuite/gcc.target/riscv/zi-ext.c
! 9ddf3d8570f5708dce7dea7b3893fb2a  gcc/testsuite/gcc.target/riscv/ziccamoc-version.c
! ccfd86a88cfabe85ec52c9db6cb0b473  gcc/testsuite/gcc.target/riscv/ziccid-version.c
! 116e6e5981c607390cc61ebb576216b4  gcc/testsuite/gcc.target/riscv/ziccid.c
  5317b44a285fba7ff5b0d15770fd05c8  gcc/testsuite/gcc.target/riscv/zicfilp-call.c
  16cb1a2740a273da5a03e215175e77ad  gcc/testsuite/gcc.target/riscv/zicfilp-func-entry.c
  cd278cfb79b54565e3bccc2b9830347d  gcc/testsuite/gcc.target/riscv/zicfilp-gpr-save.c
*************** c983687631a2e6c9dbb24e103ebd1364  gcc/te
*** 107042,107048 ****
  76a5114e97c45c4bb3bbfc0904c4d48f  gcc/testsuite/gcc.target/s390/asm-hard-reg-4.c
  84138939e380b2f20dbb02f0badeed4d  gcc/testsuite/gcc.target/s390/asm-hard-reg-5.c
  726670c3cb7e8783d33f7f1e0b312e66  gcc/testsuite/gcc.target/s390/asm-hard-reg-6.c
! bea465af3dbf1024e44e1574fe16c539  gcc/testsuite/gcc.target/s390/asm-hard-reg-7.c
  21a010549cf12740c375e5ece6e37dbb  gcc/testsuite/gcc.target/s390/asm-hard-reg-longdouble.h
  bf08d8ae3952e5a9f6d75de6c60a3a5f  gcc/testsuite/gcc.target/s390/asm-machine-1.c
  062c9cbdb4b33e5a9c45bd579c02df3b  gcc/testsuite/gcc.target/s390/asm-machine-2.c
--- 107208,107214 ----
  76a5114e97c45c4bb3bbfc0904c4d48f  gcc/testsuite/gcc.target/s390/asm-hard-reg-4.c
  84138939e380b2f20dbb02f0badeed4d  gcc/testsuite/gcc.target/s390/asm-hard-reg-5.c
  726670c3cb7e8783d33f7f1e0b312e66  gcc/testsuite/gcc.target/s390/asm-hard-reg-6.c
! 9fab40ad95dc7ddacab3263f1caeb20b  gcc/testsuite/gcc.target/s390/asm-hard-reg-7.c
  21a010549cf12740c375e5ece6e37dbb  gcc/testsuite/gcc.target/s390/asm-hard-reg-longdouble.h
  bf08d8ae3952e5a9f6d75de6c60a3a5f  gcc/testsuite/gcc.target/s390/asm-machine-1.c
  062c9cbdb4b33e5a9c45bd579c02df3b  gcc/testsuite/gcc.target/s390/asm-machine-2.c
*************** a8db2129ce64619adefe97016e2a537b  gcc/te
*** 113389,113394 ****
--- 113555,113561 ----
  d80fbb8b308e7fcbcd0be2241cff3e64  gcc/testsuite/gfortran.dg/EXformat_2.f90
  688aecb4793a675b5967ada8a034b5c4  gcc/testsuite/gfortran.dg/EXformat_3.F90
  bc57538c2442e54f68f07fd8451a182b  gcc/testsuite/gfortran.dg/EXformat_4.F90
+ 716cb4079a2b1e6f3b7bd50aa60dfab8  gcc/testsuite/gfortran.dg/EXformat_5.F90
  1887cff12c57c47f7b24259ca449ec8c  gcc/testsuite/gfortran.dg/EXrounding.F90
  747722c12afa6e089d9e33c3d05257f7  gcc/testsuite/gfortran.dg/ISO_Fortran_binding_1.c
  57077f084b8ec81f4f537428d13a6588  gcc/testsuite/gfortran.dg/ISO_Fortran_binding_1.f90
*************** c3ff223c334c03e16db45ce26e2eea4a  gcc/te
*** 115169,115175 ****
  b3ff2dff195429e6641177e464dacd90  gcc/testsuite/gfortran.dg/coarray/associate_1.f90
  21f18575fa619cf0b7fba877cb8db97f  gcc/testsuite/gfortran.dg/coarray/atomic_1.f90
  70b6826ced0aac4e971ce971d39be3d3  gcc/testsuite/gfortran.dg/coarray/atomic_2.f90
! c0d713972b1526d7d40c449a9490670e  gcc/testsuite/gfortran.dg/coarray/caf.exp
  a1093e682d1d78384f50968f6210e05f  gcc/testsuite/gfortran.dg/coarray/class_1.f90
  efbd93f7ffe8fbf5291dda937b7e6f15  gcc/testsuite/gfortran.dg/coarray/co_reduce_string.f90
  88d3841a11fa3b39443f1e16cb47b9ec  gcc/testsuite/gfortran.dg/coarray/coarray_allocated.f90
--- 115336,115342 ----
  b3ff2dff195429e6641177e464dacd90  gcc/testsuite/gfortran.dg/coarray/associate_1.f90
  21f18575fa619cf0b7fba877cb8db97f  gcc/testsuite/gfortran.dg/coarray/atomic_1.f90
  70b6826ced0aac4e971ce971d39be3d3  gcc/testsuite/gfortran.dg/coarray/atomic_2.f90
! d273664c3693cff2686dc5d7783bc58a  gcc/testsuite/gfortran.dg/coarray/caf.exp
  a1093e682d1d78384f50968f6210e05f  gcc/testsuite/gfortran.dg/coarray/class_1.f90
  efbd93f7ffe8fbf5291dda937b7e6f15  gcc/testsuite/gfortran.dg/coarray/co_reduce_string.f90
  88d3841a11fa3b39443f1e16cb47b9ec  gcc/testsuite/gfortran.dg/coarray/coarray_allocated.f90
*************** b3d1280c39c6cae9dddab498b1e1eeb4  gcc/te
*** 117711,117717 ****
  500a5f460107c8722e23208574b65d09  gcc/testsuite/gfortran.dg/gomp/target-device-ancestor-4.f90
  7ec834f632faabec913cbd38f2862fb3  gcc/testsuite/gfortran.dg/gomp/target-device-ancestor-5.f90
  1577072db3f937bbd080bc7c33395c3b  gcc/testsuite/gfortran.dg/gomp/target-device-ancestor-6.f90
! d2ca8da69a3b478409a3711ceaa62604  gcc/testsuite/gfortran.dg/gomp/target-device-type-1.f90
  a81fcf292a341e29920f0576722dfd3e  gcc/testsuite/gfortran.dg/gomp/target-enter-exit-data.f90
  874160eb3e56004e967fed8574857c36  gcc/testsuite/gfortran.dg/gomp/target-exit-data.f90
  255df1293a7e993064b5f2531dd1a039  gcc/testsuite/gfortran.dg/gomp/target-has-device-addr-1.f90
--- 117878,117884 ----
  500a5f460107c8722e23208574b65d09  gcc/testsuite/gfortran.dg/gomp/target-device-ancestor-4.f90
  7ec834f632faabec913cbd38f2862fb3  gcc/testsuite/gfortran.dg/gomp/target-device-ancestor-5.f90
  1577072db3f937bbd080bc7c33395c3b  gcc/testsuite/gfortran.dg/gomp/target-device-ancestor-6.f90
! bbe8b97dd403f95fbedb8e3f0ef1cdbb  gcc/testsuite/gfortran.dg/gomp/target-device-type-1.f90
  a81fcf292a341e29920f0576722dfd3e  gcc/testsuite/gfortran.dg/gomp/target-enter-exit-data.f90
  874160eb3e56004e967fed8574857c36  gcc/testsuite/gfortran.dg/gomp/target-exit-data.f90
  255df1293a7e993064b5f2531dd1a039  gcc/testsuite/gfortran.dg/gomp/target-has-device-addr-1.f90
*************** c82475796fec905fbcbddbebc480ad15  gcc/te
*** 119829,119834 ****
--- 119996,120003 ----
  21a6fcd9db938827306935bac8eec1c1  gcc/testsuite/gfortran.dg/pr125391.f90
  7e2e05a5f046a763356f94130e52c9a6  gcc/testsuite/gfortran.dg/pr126116.f90
  6e08f4627287595ccc509969aa703e88  gcc/testsuite/gfortran.dg/pr126210.f90
+ ee4028c15df35bd899fb0f4ccdae563b  gcc/testsuite/gfortran.dg/pr126221.f90
+ 5a00ca35ba1faa29766a381172b84b0d  gcc/testsuite/gfortran.dg/pr126234.f90
  984f8307f36d56a0b48b5acce2dd5eb5  gcc/testsuite/gfortran.dg/pr12884.f
  64075248b9d1bffd6f380bb4e2a6eae0  gcc/testsuite/gfortran.dg/pr15129.f90
  2b5f18b773a5db29b0a2ee2d8cce767c  gcc/testsuite/gfortran.dg/pr15140.f90
*************** cb57540320d67acb41e7efaa7ba125d0  gcc/te
*** 122140,122149 ****
--- 122309,122320 ----
  15546f4c6b4226c2e0d73ba60c0a5549  gcc/testsuite/gfortran.dg/warn_undefined_vars_4.f90
  75a12bce6dc3b8017a6e27c8207cbc31  gcc/testsuite/gfortran.dg/warn_undefined_vars_5.f90
  ba0b6c81a0568ef939fdc05f16873c8c  gcc/testsuite/gfortran.dg/warn_undefined_vars_6.f90
+ 199e6a69e9974b4cb667264d6687cca6  gcc/testsuite/gfortran.dg/warn_undefined_vars_7.f90
  0018d0733d18a0f47c6da784c3973fb6  gcc/testsuite/gfortran.dg/warn_unused_but_set_1.f90
  822b5613939ca362acee8780262f85b3  gcc/testsuite/gfortran.dg/warn_unused_but_set_error_1.f90
  c259ba3b6590fa830ea50bba33344f9a  gcc/testsuite/gfortran.dg/warn_unused_but_set_variable_2.f90
  6a3b31dd7967f719de6ae9da27ef1896  gcc/testsuite/gfortran.dg/warn_unused_but_set_variable_3.f90
+ de22330ab02765d551b4604b1059363c  gcc/testsuite/gfortran.dg/warn_unused_but_set_variable_4.f90
  faef1baec47674d096569b4803422d64  gcc/testsuite/gfortran.dg/warn_unused_dummy_argument_1.f90
  9cdfca84c19b8b4bfd5f9be4a921f068  gcc/testsuite/gfortran.dg/warn_unused_dummy_argument_2.f90
  62c8995bb923620e3509b9bd179b618c  gcc/testsuite/gfortran.dg/warn_unused_dummy_argument_3.f90
*************** b401339daa0cdb69f56b1f0814a0780d  gcc/te
*** 129764,129769 ****
--- 129935,129941 ----
  72602cb2e92b5d59285244dd0d0e5483  gcc/testsuite/lib/dejapatches.exp
  a36f7a11eef97e9926ec12ffc8b26ee4  gcc/testsuite/lib/dg-pch.exp
  fcbf8eb2a14541bdc9d966bf758cf488  gcc/testsuite/lib/dg-test-cleanup.exp
+ c5a7e286a0d1ac62ac8a0212896e7371  gcc/testsuite/lib/et-static.def
  923e0b95cff5c76d4439a0242519f685  gcc/testsuite/lib/file-format.exp
  a1935fc2fb38938a9de4348b36350eda  gcc/testsuite/lib/fortran-modules.exp
  a0ed36c59884ca42f622cc1d30faff4d  gcc/testsuite/lib/fortran-torture.exp
*************** af452bfcd099f7ad757c0709565fb6f2  gcc/te
*** 129791,129797 ****
  c0366f2c31a7d5fba486ea04c6f08b9a  gcc/testsuite/lib/go.exp
  569a9bbf0bbca4b3648f90532f4b4b21  gcc/testsuite/lib/htmltest.py
  c0b7997d28c0e4c1e52d9c22fe7612a7  gcc/testsuite/lib/hwasan-dg.exp
! 230d5d8ce82baee9b19dd1681c33940c  gcc/testsuite/lib/lto.exp
  8788f5bd86ca545e5cc667a7883372aa  gcc/testsuite/lib/mike-g++.exp
  3252f65e1ec61c730a6ac983f56b3fd7  gcc/testsuite/lib/mike-gcc.exp
  6cae4002752080c9ace9f60df166aefe  gcc/testsuite/lib/modules.exp
--- 129963,129969 ----
  c0366f2c31a7d5fba486ea04c6f08b9a  gcc/testsuite/lib/go.exp
  569a9bbf0bbca4b3648f90532f4b4b21  gcc/testsuite/lib/htmltest.py
  c0b7997d28c0e4c1e52d9c22fe7612a7  gcc/testsuite/lib/hwasan-dg.exp
! 0cddd2ee643290e6da59492c0a251d50  gcc/testsuite/lib/lto.exp
  8788f5bd86ca545e5cc667a7883372aa  gcc/testsuite/lib/mike-g++.exp
  3252f65e1ec61c730a6ac983f56b3fd7  gcc/testsuite/lib/mike-gcc.exp
  6cae4002752080c9ace9f60df166aefe  gcc/testsuite/lib/modules.exp
*************** de9eeadec9703aff96169206e31a3a22  gcc/te
*** 129829,129835 ****
  275f7eb9618e6b097a58c1fba25cdb9c  gcc/testsuite/lib/scanwpaipa.exp
  9bc4cbcf0cb4f1aa30a8cf3142d157eb  gcc/testsuite/lib/target-libpath.exp
  6f6a566231f79b409eb113cf2e7f5132  gcc/testsuite/lib/target-supports-dg.exp
! 145890915d71a1318ba73a4edb5d7620  gcc/testsuite/lib/target-supports.exp
  b1eb2edcf4941bfb00c200eb000a0a7b  gcc/testsuite/lib/target-utils.exp
  98b890f6c455deafd6ca241993fc5d67  gcc/testsuite/lib/timeout-dg.exp
  0afb0c69501fa44908d13017be208db3  gcc/testsuite/lib/timeout.exp
--- 130001,130007 ----
  275f7eb9618e6b097a58c1fba25cdb9c  gcc/testsuite/lib/scanwpaipa.exp
  9bc4cbcf0cb4f1aa30a8cf3142d157eb  gcc/testsuite/lib/target-libpath.exp
  6f6a566231f79b409eb113cf2e7f5132  gcc/testsuite/lib/target-supports-dg.exp
! 7a7d3397775053d4f61278c76644394b  gcc/testsuite/lib/target-supports.exp
  b1eb2edcf4941bfb00c200eb000a0a7b  gcc/testsuite/lib/target-utils.exp
  98b890f6c455deafd6ca241993fc5d67  gcc/testsuite/lib/timeout-dg.exp
  0afb0c69501fa44908d13017be208db3  gcc/testsuite/lib/timeout.exp
*************** bda2f9a0a102ec85a313722d378cdf48  gcc/te
*** 130448,130463 ****
  f7586152aa73b27aaab97ea19aafbfde  gcc/testsuite/objc.dg/func-ptr-2.m
  d77ab725798547aaec5fe03dfdd02495  gcc/testsuite/objc.dg/fwd-proto-1.m
  ef18b88fcbe819211e77471c629abee5  gcc/testsuite/objc.dg/gnu-api-2-class-meta.m
! a8b71e7a744890fb1bbb72febf389f4c  gcc/testsuite/objc.dg/gnu-api-2-class.m
! bf27207ee99322dcb5ceac3305193e9c  gcc/testsuite/objc.dg/gnu-api-2-ivar.m
! e0df72adf85cb27406f87e83d80e818f  gcc/testsuite/objc.dg/gnu-api-2-method.m
! 8437e6136e603bc80d9df076a3781b76  gcc/testsuite/objc.dg/gnu-api-2-objc.m
! d65387d48a03ea3ff88babae19bc6354  gcc/testsuite/objc.dg/gnu-api-2-objc_msg_lookup.m
! 4a478e22ee064abce3030325deed488f  gcc/testsuite/objc.dg/gnu-api-2-object.m
! 79364cb09380dbde3c65af132c7ca51e  gcc/testsuite/objc.dg/gnu-api-2-property.m
! 5ae16e266596151d8b7445ca3d9f9214  gcc/testsuite/objc.dg/gnu-api-2-protocol.m
! af1f88eec3b11606777ae67c0f56c07b  gcc/testsuite/objc.dg/gnu-api-2-resolve-method.m
! 2d437ed5c3b25318bd1ce268cd2cdce6  gcc/testsuite/objc.dg/gnu-api-2-sel.m
  2953f7137cafc5117041c87f712943eb  gcc/testsuite/objc.dg/gnu-encoding/compat-common.h
  db6ac9c4cab360de1e62ae24781a65aa  gcc/testsuite/objc.dg/gnu-encoding/generate-random.c
  a3ac98dcec269f59ea0f7ebc9b8c3297  gcc/testsuite/objc.dg/gnu-encoding/generate-random.h
--- 130620,130635 ----
  f7586152aa73b27aaab97ea19aafbfde  gcc/testsuite/objc.dg/func-ptr-2.m
  d77ab725798547aaec5fe03dfdd02495  gcc/testsuite/objc.dg/fwd-proto-1.m
  ef18b88fcbe819211e77471c629abee5  gcc/testsuite/objc.dg/gnu-api-2-class-meta.m
! 9f2e0e998739a71b3261d0a9bec88ea1  gcc/testsuite/objc.dg/gnu-api-2-class.m
! bdb69d16c76e5af9bf698e9691193631  gcc/testsuite/objc.dg/gnu-api-2-ivar.m
! 2438beefe61f889858df603f974f5b37  gcc/testsuite/objc.dg/gnu-api-2-method.m
! e80727a6ba20a34e8c50b620c396151f  gcc/testsuite/objc.dg/gnu-api-2-objc.m
! 25877aa1a84e3c100b3e67b9418cdce6  gcc/testsuite/objc.dg/gnu-api-2-objc_msg_lookup.m
! 0f63e98ea1ea15fb14aca76f99bf1f47  gcc/testsuite/objc.dg/gnu-api-2-object.m
! 53501b9e8247dff68ffb3860cfcff912  gcc/testsuite/objc.dg/gnu-api-2-property.m
! 84d8050a764c7957fbeafc2121ff361a  gcc/testsuite/objc.dg/gnu-api-2-protocol.m
! 0886470e15932dd110cc3c87e8ea9cdf  gcc/testsuite/objc.dg/gnu-api-2-resolve-method.m
! 168b4cc87ecb1a30e4a8ff9a6c8ded62  gcc/testsuite/objc.dg/gnu-api-2-sel.m
  2953f7137cafc5117041c87f712943eb  gcc/testsuite/objc.dg/gnu-encoding/compat-common.h
  db6ac9c4cab360de1e62ae24781a65aa  gcc/testsuite/objc.dg/gnu-encoding/generate-random.c
  a3ac98dcec269f59ea0f7ebc9b8c3297  gcc/testsuite/objc.dg/gnu-encoding/generate-random.h
*************** b602f2a3cc56cd39c738d2241938856f  gcc/te
*** 130468,130475 ****
  a66ec90d801aba24f196746609a41d7c  gcc/testsuite/objc.dg/gnu-encoding/struct-layout-encoding-1_generate.c
  fa1ab496151791f4ef05043e7c0b673c  gcc/testsuite/objc.dg/gnu-encoding/vector-defs.h
  75cc55de841b4de6d06a46e13f5f7bfe  gcc/testsuite/objc.dg/gnu-runtime-1.m
! a10c57561f5023d1bc5813fb62b15e8f  gcc/testsuite/objc.dg/gnu-runtime-2.m
! cf495a272fe911f953544354d7af49e2  gcc/testsuite/objc.dg/gnu-runtime-3.m
  febafb5ceeb1b769535d7b08ef9e8445  gcc/testsuite/objc.dg/has-feature.m
  6610c198e68db214bca9de5a0f6cfdec  gcc/testsuite/objc.dg/headers.m
  ee5085162cebc7a8efb9f3fb24b90cb1  gcc/testsuite/objc.dg/id-1.m
--- 130640,130647 ----
  a66ec90d801aba24f196746609a41d7c  gcc/testsuite/objc.dg/gnu-encoding/struct-layout-encoding-1_generate.c
  fa1ab496151791f4ef05043e7c0b673c  gcc/testsuite/objc.dg/gnu-encoding/vector-defs.h
  75cc55de841b4de6d06a46e13f5f7bfe  gcc/testsuite/objc.dg/gnu-runtime-1.m
! 2a4f128267ef98ab237d8ddb10d0ce0a  gcc/testsuite/objc.dg/gnu-runtime-2.m
! 547ea0011b7e90fb552f4278a690be32  gcc/testsuite/objc.dg/gnu-runtime-3.m
  febafb5ceeb1b769535d7b08ef9e8445  gcc/testsuite/objc.dg/has-feature.m
  6610c198e68db214bca9de5a0f6cfdec  gcc/testsuite/objc.dg/headers.m
  ee5085162cebc7a8efb9f3fb24b90cb1  gcc/testsuite/objc.dg/id-1.m
*************** c963db6673c4b0358e639bc17180a2a0  gcc/te
*** 130570,130576 ****
  a57b213a5d832995cda2482ed7a4feca  gcc/testsuite/objc.dg/pr44509.m
  501a08776d7e5d9d5ab50b8cc394144d  gcc/testsuite/objc.dg/pr45735.m
  f70cc9f14e52a011b880ee463b06a327  gcc/testsuite/objc.dg/pr45878.m
! 9172f0f2272d475e7386f90076899e02  gcc/testsuite/objc.dg/pr48177.m
  92fe98f02af74123b2687d5d18ddc852  gcc/testsuite/objc.dg/pr48187.m
  1670c1fe0db7ee6f6e39e442f289f23e  gcc/testsuite/objc.dg/pr69844.m
  13f3af0a59ffae0f60ff7974ef915e72  gcc/testsuite/objc.dg/pr94637.m
--- 130742,130748 ----
  a57b213a5d832995cda2482ed7a4feca  gcc/testsuite/objc.dg/pr44509.m
  501a08776d7e5d9d5ab50b8cc394144d  gcc/testsuite/objc.dg/pr45735.m
  f70cc9f14e52a011b880ee463b06a327  gcc/testsuite/objc.dg/pr45878.m
! 8e358c4ed935f6f70509cbb2069060b1  gcc/testsuite/objc.dg/pr48177.m
  92fe98f02af74123b2687d5d18ddc852  gcc/testsuite/objc.dg/pr48187.m
  1670c1fe0db7ee6f6e39e442f289f23e  gcc/testsuite/objc.dg/pr69844.m
  13f3af0a59ffae0f60ff7974ef915e72  gcc/testsuite/objc.dg/pr94637.m
*************** c59ca8cb9643a4bd47ad25eacc428bee  gcc/te
*** 130753,130762 ****
  38dc4c1d8bffabc69a852320760c79a3  gcc/testsuite/objc.dg/torture/strings/const-str-7.m
  3e0b925a0c58f41da0dff25baae98066  gcc/testsuite/objc.dg/torture/strings/const-str-8.m
  d1d93c13e62106809a456f06ea348f2d  gcc/testsuite/objc.dg/torture/strings/const-str-9.m
! a8a9f4264b042cb130bb43f35157c620  gcc/testsuite/objc.dg/torture/strings/string1.m
! f559fec747b34a07335a33efaef1d635  gcc/testsuite/objc.dg/torture/strings/string2.m
! 8d3378c509e4ec126b88298049f5b787  gcc/testsuite/objc.dg/torture/strings/string3.m
! 5b27fadf5e692e2a9972369e31bf0ba1  gcc/testsuite/objc.dg/torture/strings/string4.m
  2f4c81db065b9c3d940e88b07227e184  gcc/testsuite/objc.dg/torture/strings/strings.exp
  6f6356dbcb53d22602416e8919a2b428  gcc/testsuite/objc.dg/torture/tls/diag-1.m
  372cfaf699d0b2f15663aaae9b213546  gcc/testsuite/objc.dg/torture/tls/thr-init-2.m
--- 130925,130934 ----
  38dc4c1d8bffabc69a852320760c79a3  gcc/testsuite/objc.dg/torture/strings/const-str-7.m
  3e0b925a0c58f41da0dff25baae98066  gcc/testsuite/objc.dg/torture/strings/const-str-8.m
  d1d93c13e62106809a456f06ea348f2d  gcc/testsuite/objc.dg/torture/strings/const-str-9.m
! a9d4318f3d8f16add9a0754722ad5b08  gcc/testsuite/objc.dg/torture/strings/string1.m
! be4d93f6d669e2b58ff139b790f303e0  gcc/testsuite/objc.dg/torture/strings/string2.m
! 231dbfac5e208b274ef049da12e87666  gcc/testsuite/objc.dg/torture/strings/string3.m
! 88bdfca97d1da50268c432f70b065941  gcc/testsuite/objc.dg/torture/strings/string4.m
  2f4c81db065b9c3d940e88b07227e184  gcc/testsuite/objc.dg/torture/strings/strings.exp
  6f6356dbcb53d22602416e8919a2b428  gcc/testsuite/objc.dg/torture/tls/diag-1.m
  372cfaf699d0b2f15663aaae9b213546  gcc/testsuite/objc.dg/torture/tls/thr-init-2.m
*************** cbe90a107fcd179a95684d58982b5779  gcc/te
*** 132675,132681 ****
  16df2eee5df7c3c54070ef71bde6afcb  gcc/text-art/widget.h
  4020706e89a3193babbae430014c2735  gcc/text-range-label.h
  092eef5e89ca84562a58ff0e91eaee48  gcc/timevar.cc
! 0a047bed22335b1138e07847e8c78e83  gcc/timevar.def
  160bb6626a9562507750456253c82eb4  gcc/timevar.h
  af430d420eee56a4d869b7421ddb08b9  gcc/topics/pass-events.h
  35d78a05799f4ad5feaaa1f036300c33  gcc/toplev.cc
--- 132847,132853 ----
  16df2eee5df7c3c54070ef71bde6afcb  gcc/text-art/widget.h
  4020706e89a3193babbae430014c2735  gcc/text-range-label.h
  092eef5e89ca84562a58ff0e91eaee48  gcc/timevar.cc
! 733ca4e18bf3a6be69d0626c3cd34c53  gcc/timevar.def
  160bb6626a9562507750456253c82eb4  gcc/timevar.h
  af430d420eee56a4d869b7421ddb08b9  gcc/topics/pass-events.h
  35d78a05799f4ad5feaaa1f036300c33  gcc/toplev.cc
*************** da9de571efa01bc66c1db48e416352ae  gcc/tr
*** 132728,132734 ****
  d239500c752edeffb49a14623c8a522a  gcc/tree-nrv.cc
  8157c4cf3bda13c019a5c6784e7e9e70  gcc/tree-object-size.cc
  ceb2c708500ddb7d48dbc25764c96b5d  gcc/tree-object-size.h
! e3ac97ae6e4c501bb7dabaf26cdf8a30  gcc/tree-outof-ssa.cc
  7810fba9c2ee7167c24df41d8458fad3  gcc/tree-outof-ssa.h
  1f0636a04a2cc3390a38e648d396a06f  gcc/tree-parloops.cc
  898be2fb978b49d3654ad458a2cfab7d  gcc/tree-parloops.h
--- 132900,132906 ----
  d239500c752edeffb49a14623c8a522a  gcc/tree-nrv.cc
  8157c4cf3bda13c019a5c6784e7e9e70  gcc/tree-object-size.cc
  ceb2c708500ddb7d48dbc25764c96b5d  gcc/tree-object-size.h
! 9378516587fba0c23f26554a28352ff5  gcc/tree-outof-ssa.cc
  7810fba9c2ee7167c24df41d8458fad3  gcc/tree-outof-ssa.h
  1f0636a04a2cc3390a38e648d396a06f  gcc/tree-parloops.cc
  898be2fb978b49d3654ad458a2cfab7d  gcc/tree-parloops.h
*************** e955b77da9f61f19437f61d65861e763  gcc/tr
*** 132739,132746 ****
  47856333edaecc32813dad93ecb96fbe  gcc/tree-pretty-print-markup.h
  7e047cc8a5cfdc1db70f3b2bedf457b6  gcc/tree-pretty-print.cc
  c021bc7a8aa59f2b8184de8bff6b1d14  gcc/tree-pretty-print.h
! fb27a9c19b7277714515baa728b01a3e  gcc/tree-profile.cc
! a5d549b577480d9f00caa8fb844f28dc  gcc/tree-scalar-evolution.cc
  0ac41331ad8cbe754ee005d5ef9aff94  gcc/tree-scalar-evolution.h
  c3b5af33118e23a3f3b653f87a6181d3  gcc/tree-sra.cc
  3c8e89a03a1e2e77a99e5b05bb2976ae  gcc/tree-sra.h
--- 132911,132918 ----
  47856333edaecc32813dad93ecb96fbe  gcc/tree-pretty-print-markup.h
  7e047cc8a5cfdc1db70f3b2bedf457b6  gcc/tree-pretty-print.cc
  c021bc7a8aa59f2b8184de8bff6b1d14  gcc/tree-pretty-print.h
! 353091e462e88bd539abdb45ea13c810  gcc/tree-profile.cc
! 1f8a56c52a91a6a6e79b16a2ccc6ae40  gcc/tree-scalar-evolution.cc
  0ac41331ad8cbe754ee005d5ef9aff94  gcc/tree-scalar-evolution.h
  c3b5af33118e23a3f3b653f87a6181d3  gcc/tree-sra.cc
  3c8e89a03a1e2e77a99e5b05bb2976ae  gcc/tree-sra.h
*************** aec3a3878fe29a9644281cb009405ac7  gcc/tr
*** 132819,132839 ****
  f8119a019450befbbf3e3e40b010cf74  gcc/tree-streamer-out.cc
  4d591a91fc3bb023839baddd9e66a821  gcc/tree-streamer.cc
  9776b3844a0761f68ee0aca3fd2e74ea  gcc/tree-streamer.h
! 31edb0540b970325ae5c017fddf7eb02  gcc/tree-switch-conversion.cc
  fa20fc0102b6036d5fa58b953c127e15  gcc/tree-switch-conversion.h
  6a0f6268d598b3c59871ad41e01f33c1  gcc/tree-tailcall.cc
  d26bb3f656aca146cd991af417611476  gcc/tree-vect-data-refs.cc
  851cdeabb53d017910c4c7442f3afe61  gcc/tree-vect-generic.cc
  8097a8b31ddd542184c52c26afb91da8  gcc/tree-vect-loop-manip.cc
! a24bebd0c765a4a97ecac1da1a798f8b  gcc/tree-vect-loop.cc
  14fdba1e6d50517ed4d832ad5d063740  gcc/tree-vect-patterns.cc
  4eab6d0f40af2653170a2f7ecf2d6fc1  gcc/tree-vect-slp-patterns.cc
! d28b7185cb5b113dc5d1cd3b295b4095  gcc/tree-vect-slp.cc
! 3f2b3ea8ac574facaa66e059db6a23e3  gcc/tree-vect-stmts.cc
  42032e04f389a2e0f43fbb46ac091dac  gcc/tree-vector-builder.cc
  4a1b4947e64a076fdca46d14aab2181f  gcc/tree-vector-builder.h
  a87f80d9a1405f816a0b6d544400beef  gcc/tree-vectorizer.cc
! 31766daa9141887d0af2afbaf39f8362  gcc/tree-vectorizer.h
  ca9cb422fed204a85a3a1a56b3ca8812  gcc/tree-vrp.cc
  c946b0d59b15393b95e356052c027eed  gcc/tree-vrp.h
  3a7664bbd6a29e184794a50f2f418bd0  gcc/tree.cc
--- 132991,133011 ----
  f8119a019450befbbf3e3e40b010cf74  gcc/tree-streamer-out.cc
  4d591a91fc3bb023839baddd9e66a821  gcc/tree-streamer.cc
  9776b3844a0761f68ee0aca3fd2e74ea  gcc/tree-streamer.h
! 5c9352e02cad1ec310b10d331d908304  gcc/tree-switch-conversion.cc
  fa20fc0102b6036d5fa58b953c127e15  gcc/tree-switch-conversion.h
  6a0f6268d598b3c59871ad41e01f33c1  gcc/tree-tailcall.cc
  d26bb3f656aca146cd991af417611476  gcc/tree-vect-data-refs.cc
  851cdeabb53d017910c4c7442f3afe61  gcc/tree-vect-generic.cc
  8097a8b31ddd542184c52c26afb91da8  gcc/tree-vect-loop-manip.cc
! b84ef44005fc01213d83bbde85aa9486  gcc/tree-vect-loop.cc
  14fdba1e6d50517ed4d832ad5d063740  gcc/tree-vect-patterns.cc
  4eab6d0f40af2653170a2f7ecf2d6fc1  gcc/tree-vect-slp-patterns.cc
! 34bd37d867264d9a54f0923f2015c3aa  gcc/tree-vect-slp.cc
! 58a489867a5df4b9274b5c8cbe1c54ff  gcc/tree-vect-stmts.cc
  42032e04f389a2e0f43fbb46ac091dac  gcc/tree-vector-builder.cc
  4a1b4947e64a076fdca46d14aab2181f  gcc/tree-vector-builder.h
  a87f80d9a1405f816a0b6d544400beef  gcc/tree-vectorizer.cc
! 44474edf115594f834671ed7d19622dd  gcc/tree-vectorizer.h
  ca9cb422fed204a85a3a1a56b3ca8812  gcc/tree-vrp.cc
  c946b0d59b15393b95e356052c027eed  gcc/tree-vrp.h
  3a7664bbd6a29e184794a50f2f418bd0  gcc/tree.cc
*************** e904de1854afc7cd34a51dc8be49131d  gcc/va
*** 132859,132870 ****
  c559980f2936e62bb80a512b1682d0fd  gcc/value-query.h
  5fbef6eb8dbca23654897ee8b82c0534  gcc/value-range-pretty-print.cc
  2ac29a8fee451f101da64d0a64eefa26  gcc/value-range-pretty-print.h
! 036586a7b9d2ff4356b32777d11fcd29  gcc/value-range-storage.cc
  a53a9c85ab653caca9f26257daf5bfea  gcc/value-range-storage.h
  c210d770d6e95b32ac6887b37a5fbbaf  gcc/value-range.cc
! 7d6f590ff775e8cf6a2294e92a716df4  gcc/value-range.h
! 67666161e57e5be58fba9c1c031067b0  gcc/value-relation.cc
! ea7df3e5b6ab2e6e23e741431d583880  gcc/value-relation.h
  247781425e1760fc6fd7790dca1c0637  gcc/var-tracking.cc
  abe4064b9258df5b6c87d9394dc9b67c  gcc/varasm.cc
  183473e8cac5bad9279eb1937e4edda9  gcc/varasm.h
--- 133031,133042 ----
  c559980f2936e62bb80a512b1682d0fd  gcc/value-query.h
  5fbef6eb8dbca23654897ee8b82c0534  gcc/value-range-pretty-print.cc
  2ac29a8fee451f101da64d0a64eefa26  gcc/value-range-pretty-print.h
! 1f162c4319d8238e5d6b13f9afceab21  gcc/value-range-storage.cc
  a53a9c85ab653caca9f26257daf5bfea  gcc/value-range-storage.h
  c210d770d6e95b32ac6887b37a5fbbaf  gcc/value-range.cc
! 8f5a41c52092c87b5bae0856eb50fb4d  gcc/value-range.h
! 0762124b43196cd5479dd56590ed18b8  gcc/value-relation.cc
! 8041b5e49f8eee53025484a5ecee676f  gcc/value-relation.h
  247781425e1760fc6fd7790dca1c0637  gcc/var-tracking.cc
  abe4064b9258df5b6c87d9394dc9b67c  gcc/varasm.cc
  183473e8cac5bad9279eb1937e4edda9  gcc/varasm.h
*************** cffdeae41b78da05839b193e90188f55  libcod
*** 133170,133176 ****
  6419dfc879387358e95288142e569914  libcody/packet.cc
  688ece05c8b9d378b3df186808162e76  libcody/resolver.cc
  c94add0032978604acf65591bb86d2d6  libcody/server.cc
! 899cbdf9aba1b6cdb5d0cf5fe0889bc9  libcpp/ChangeLog
  2bd831b17997584e38305782cebe6948  libcpp/ChangeLog.jit
  4f1e80b433907c013fc6e4eaf2b0e8aa  libcpp/Makefile.in
  b07c7863f0e7ad4e6a0915d66fc9e582  libcpp/aclocal.m4
--- 133342,133348 ----
  6419dfc879387358e95288142e569914  libcody/packet.cc
  688ece05c8b9d378b3df186808162e76  libcody/resolver.cc
  c94add0032978604acf65591bb86d2d6  libcody/server.cc
! 92bc73a58242e04e599a445b9add6079  libcpp/ChangeLog
  2bd831b17997584e38305782cebe6948  libcpp/ChangeLog.jit
  4f1e80b433907c013fc6e4eaf2b0e8aa  libcpp/Makefile.in
  b07c7863f0e7ad4e6a0915d66fc9e582  libcpp/aclocal.m4
*************** d7530c9a36bef9a00a690083401e3c83  libcpp
*** 133187,133200 ****
  bf0c57c21ee2aeaa654ee6781e41cad5  libcpp/identifiers.cc
  f4c0de4a7c7ad294e865f549c13b28f0  libcpp/include/cpplib.h
  a5730f5ab9435bb5d8446830fe8f3706  libcpp/include/label-text.h
! 475c6ef3f91227b1431876de0297795a  libcpp/include/line-map.h
  6c27e4af6058e741469234cdf0f74c01  libcpp/include/mkdeps.h
  0c5086e2180aacc727c73843682f1fe9  libcpp/include/rich-location.h
  1e65760d4159f777cf02dedef8a52357  libcpp/include/symtab.h
  62fc2bcb89c7159858cf6eb3824b0f42  libcpp/init.cc
  ca76f744b252e5faf236d92d56037649  libcpp/internal.h
  cda6f5ee4a4fce0e35c8343e245f515d  libcpp/lex.cc
! 6ebf32a89523ee7be621fc42417f913f  libcpp/line-map.cc
  46a07100f95f5e354c7e25cd19d26884  libcpp/location-example.txt
  e7aac78ea4aceda46419845a92c76995  libcpp/macro.cc
  d26583cbbddfb0c82d15d845129a84da  libcpp/makeucnid.cc
--- 133359,133372 ----
  bf0c57c21ee2aeaa654ee6781e41cad5  libcpp/identifiers.cc
  f4c0de4a7c7ad294e865f549c13b28f0  libcpp/include/cpplib.h
  a5730f5ab9435bb5d8446830fe8f3706  libcpp/include/label-text.h
! a1437b4af2ebadc3d027a5323db61b96  libcpp/include/line-map.h
  6c27e4af6058e741469234cdf0f74c01  libcpp/include/mkdeps.h
  0c5086e2180aacc727c73843682f1fe9  libcpp/include/rich-location.h
  1e65760d4159f777cf02dedef8a52357  libcpp/include/symtab.h
  62fc2bcb89c7159858cf6eb3824b0f42  libcpp/init.cc
  ca76f744b252e5faf236d92d56037649  libcpp/internal.h
  cda6f5ee4a4fce0e35c8343e245f515d  libcpp/lex.cc
! 87f0da9fbeaf56c81c993caee314b88d  libcpp/line-map.cc
  46a07100f95f5e354c7e25cd19d26884  libcpp/location-example.txt
  e7aac78ea4aceda46419845a92c76995  libcpp/macro.cc
  d26583cbbddfb0c82d15d845129a84da  libcpp/makeucnid.cc
*************** b7bdc64c03d62f87f61d3d8a61a75d2d  libgcc
*** 135329,135335 ****
  227525d7193394128a83ce15e7642842  libgcc/vtv_start.c
  23ad2a8d256ba5dca28382d64a20e8f2  libgcc/vtv_start_preinit.c
  e50c29294062dfe571c9c053a8ec217b  libgcobol/.gitignore
! 63956999049c7a5b81be5b69f63210fe  libgcobol/ChangeLog
  bec1e79fc8ada70ed4ac3dc61a33d576  libgcobol/LICENSE
  8b9a5263fc79d367bdafa609a2ac1363  libgcobol/Makefile.am
  d97f1f2b9efb3a8fa8c9db9a04ea78db  libgcobol/Makefile.in
--- 135501,135507 ----
  227525d7193394128a83ce15e7642842  libgcc/vtv_start.c
  23ad2a8d256ba5dca28382d64a20e8f2  libgcc/vtv_start_preinit.c
  e50c29294062dfe571c9c053a8ec217b  libgcobol/.gitignore
! 5aa0229b1974df23be4fee4651079910  libgcobol/ChangeLog
  bec1e79fc8ada70ed4ac3dc61a33d576  libgcobol/LICENSE
  8b9a5263fc79d367bdafa609a2ac1363  libgcobol/Makefile.am
  d97f1f2b9efb3a8fa8c9db9a04ea78db  libgcobol/Makefile.in
*************** b0657c8d818882b87c44a17db46300df  libgco
*** 135337,135343 ****
  a69c3f28d1be90eb0b0287fa450c3684  libgcobol/acinclude.m4
  916ce15e68376e661a41f183252a74ec  libgcobol/aclocal.m4
  25a2c096c350f42299b74a614e669690  libgcobol/charmaps.cc
! 30d346da69645e3402cf3f6a1a6043c3  libgcobol/charmaps.h
  c6f3fa55b7a75f8923a1121bea070575  libgcobol/cobol-endian.h
  94c48aaa30cd3785160dfbdf56b68d0a  libgcobol/common-defs.h
  fba8f609927b913d1ca3d30a27d0febc  libgcobol/compat/README.md
--- 135509,135515 ----
  a69c3f28d1be90eb0b0287fa450c3684  libgcobol/acinclude.m4
  916ce15e68376e661a41f183252a74ec  libgcobol/aclocal.m4
  25a2c096c350f42299b74a614e669690  libgcobol/charmaps.cc
! a6e20399d20aefd20cce5d4010d4a192  libgcobol/charmaps.h
  c6f3fa55b7a75f8923a1121bea070575  libgcobol/cobol-endian.h
  94c48aaa30cd3785160dfbdf56b68d0a  libgcobol/common-defs.h
  fba8f609927b913d1ca3d30a27d0febc  libgcobol/compat/README.md
*************** b9fd1af86267d7a59f7f29e28f6dd6a7  libgco
*** 135347,135356 ****
  9aeae341cf65d7bbd79b4a5d224ef955  libgcobol/compat/gnu/lib/CBL_ALLOC_MEM.cbl
  cc30c6fcde30bf18921b1dc8fee4f23f  libgcobol/compat/gnu/lib/CBL_CHECK_FILE_EXIST.cbl
  bee369061a46d0c93ab0ee51e3bbdf73  libgcobol/compat/gnu/lib/CBL_CLOSE_FILE.cbl
! 142dc43cc05bf3df6c1149127f277e50  libgcobol/compat/gnu/lib/CBL_CREATE_FILE.cbl
  1bbcb8ea83d9ecaa7e7d01b95ffc6e31  libgcobol/compat/gnu/lib/CBL_DELETE_FILE.cbl
  58c7c22e6a52a860ee9b9b58d0e917e0  libgcobol/compat/gnu/lib/CBL_FREE_MEM.cbl
! c8fab41d1f0fa21b15b7fa7c3d134f4e  libgcobol/compat/gnu/lib/CBL_OPEN_FILE.cbl
  e604f934e29ce5d9aa4ff12dc7aa87f6  libgcobol/compat/gnu/lib/CBL_READ_FILE.cbl
  9287b180f69b142832bf1019f04fa581  libgcobol/compat/gnu/lib/CBL_WRITE_FILE.cbl
  baa24be97c750be96aad0d144793e86c  libgcobol/compat/gnu/lib/cbl_alloc_mem.3
--- 135519,135528 ----
  9aeae341cf65d7bbd79b4a5d224ef955  libgcobol/compat/gnu/lib/CBL_ALLOC_MEM.cbl
  cc30c6fcde30bf18921b1dc8fee4f23f  libgcobol/compat/gnu/lib/CBL_CHECK_FILE_EXIST.cbl
  bee369061a46d0c93ab0ee51e3bbdf73  libgcobol/compat/gnu/lib/CBL_CLOSE_FILE.cbl
! 96c155008949eb68af801b63ca012435  libgcobol/compat/gnu/lib/CBL_CREATE_FILE.cbl
  1bbcb8ea83d9ecaa7e7d01b95ffc6e31  libgcobol/compat/gnu/lib/CBL_DELETE_FILE.cbl
  58c7c22e6a52a860ee9b9b58d0e917e0  libgcobol/compat/gnu/lib/CBL_FREE_MEM.cbl
! 3461ca914b1d7c5b36d7e0c7a1cced0f  libgcobol/compat/gnu/lib/CBL_OPEN_FILE.cbl
  e604f934e29ce5d9aa4ff12dc7aa87f6  libgcobol/compat/gnu/lib/CBL_READ_FILE.cbl
  9287b180f69b142832bf1019f04fa581  libgcobol/compat/gnu/lib/CBL_WRITE_FILE.cbl
  baa24be97c750be96aad0d144793e86c  libgcobol/compat/gnu/lib/cbl_alloc_mem.3
*************** adf499647094ed626e7326c18d45e37b  libgco
*** 135371,135377 ****
  e8c16e5b2ede5e3a542bedcf628acfe9  libgcobol/configure
  9776a9c82755543d1938440cb8d4479b  libgcobol/configure.ac
  491cba1b87576f84add391975992c7ce  libgcobol/configure.tgt
! ee9716a45633fbc51fcf882ae2a28ae7  libgcobol/constants.cc
  a5821ed24abf64b452f15f29da418d17  libgcobol/ec.h
  0fbbb7014a9f8ebc82c4fd8130f54774  libgcobol/encodings.h
  44aa23a1baad26222e629bf8cf03a357  libgcobol/exceptl.h
--- 135543,135549 ----
  e8c16e5b2ede5e3a542bedcf628acfe9  libgcobol/configure
  9776a9c82755543d1938440cb8d4479b  libgcobol/configure.ac
  491cba1b87576f84add391975992c7ce  libgcobol/configure.tgt
! a2a8eca6687973f864acb2ef2f86ac79  libgcobol/constants.cc
  a5821ed24abf64b452f15f29da418d17  libgcobol/ec.h
  0fbbb7014a9f8ebc82c4fd8130f54774  libgcobol/encodings.h
  44aa23a1baad26222e629bf8cf03a357  libgcobol/exceptl.h
*************** dcabaaf6ddd04cde5f6c45ec26776470  libgco
*** 135385,135391 ****
  3e61c85524aa03d6d0f23aa8dfa8152c  libgcobol/io.cc
  fbd32f035f7b4e73896b3d489e50e747  libgcobol/io.h
  39a9dbab64d7e5acec671784d7ca4cde  libgcobol/libgcobol-fp.h
! 955502594caec4dbff60e838728ae67a  libgcobol/libgcobol.cc
  4413f7e166cc8e47d86e48a3abf4a0bd  libgcobol/libgcobol.h
  469e0f6e21e357ff8b53b9d17373a6c8  libgcobol/libgcobol.spec.in
  88c1134ff3ee63c326541ce3f35f6699  libgcobol/m4/autoconf.m4
--- 135557,135563 ----
  3e61c85524aa03d6d0f23aa8dfa8152c  libgcobol/io.cc
  fbd32f035f7b4e73896b3d489e50e747  libgcobol/io.h
  39a9dbab64d7e5acec671784d7ca4cde  libgcobol/libgcobol-fp.h
! d1cf973f3fd02d076c7efeb3bd465411  libgcobol/libgcobol.cc
  4413f7e166cc8e47d86e48a3abf4a0bd  libgcobol/libgcobol.h
  469e0f6e21e357ff8b53b9d17373a6c8  libgcobol/libgcobol.spec.in
  88c1134ff3ee63c326541ce3f35f6699  libgcobol/m4/autoconf.m4
*************** f7f3ede57639856878087542116a625d  libgco
*** 135444,135450 ****
  72f6d694311f4eb82bd18968a55dfc0f  libgcobol/valconv.cc
  3466db9e6fc5748c08c947e71a566c07  libgcobol/valconv.h
  8485adf73f6988a83d317bb42594aa15  libgcobol/xmlparse.cc
! ed48aa499bf3a5819d5f1b053ecbdbb0  libgfortran/ChangeLog
  d99469a76bfe825683f8d94fe07b508c  libgfortran/ChangeLog-2002
  522fdb2df6cefe6bcaed3c7c7311eae1  libgfortran/ChangeLog-2003
  5a3a93e76d878d063aba66079340cfe0  libgfortran/ChangeLog-2004
--- 135616,135622 ----
  72f6d694311f4eb82bd18968a55dfc0f  libgcobol/valconv.cc
  3466db9e6fc5748c08c947e71a566c07  libgcobol/valconv.h
  8485adf73f6988a83d317bb42594aa15  libgcobol/xmlparse.cc
! 92767fe742154fa7f6ee1570a9bfb265  libgfortran/ChangeLog
  d99469a76bfe825683f8d94fe07b508c  libgfortran/ChangeLog-2002
  522fdb2df6cefe6bcaed3c7c7311eae1  libgfortran/ChangeLog-2003
  5a3a93e76d878d063aba66079340cfe0  libgfortran/ChangeLog-2004
*************** b11b84a677caab738db045922e35c29b  libgfo
*** 135474,135486 ****
  407ec5eeee573889c8619e7c33db4c4b  libgfortran/Makefile.in
  3879d8dc995bf27be4ecc7d20e919051  libgfortran/acinclude.m4
  d6bbf0d0b277cee1255f31f38d6cd5fb  libgfortran/aclocal.m4
! 6d4f5918ea5082a0bc3b9bbe3455b876  libgfortran/c99_protos.h
  f19a2f7e21d9c27c667b2b50004edf9b  libgfortran/caf/caf_error.c
  b3b035d2a9a20c08dfd709fab2c4ad0e  libgfortran/caf/caf_error.h
  93dc4f4fb91356e2833e1fbb3a5bf550  libgfortran/caf/libcaf.h
  d1dc616269a97d0e85db9cfa43aefeb2  libgfortran/caf/mpi.c
  45d8a61f2f93c831b4bbd6e3ab66b542  libgfortran/caf/shmem.c
! 8996a74bd946e72fa4a2088b1431661b  libgfortran/caf/shmem/alloc.c
  0f8fbecc8ab0a6cc686ade9a30c63c69  libgfortran/caf/shmem/alloc.h
  3a3e2211031c2d5d1fa19a718153e14d  libgfortran/caf/shmem/allocator.c
  03432639a5e3f3cfc13e0b4b3b16062f  libgfortran/caf/shmem/allocator.h
--- 135646,135658 ----
  407ec5eeee573889c8619e7c33db4c4b  libgfortran/Makefile.in
  3879d8dc995bf27be4ecc7d20e919051  libgfortran/acinclude.m4
  d6bbf0d0b277cee1255f31f38d6cd5fb  libgfortran/aclocal.m4
! b82e65e110cf937e8eb9d412f46725b3  libgfortran/c99_protos.h
  f19a2f7e21d9c27c667b2b50004edf9b  libgfortran/caf/caf_error.c
  b3b035d2a9a20c08dfd709fab2c4ad0e  libgfortran/caf/caf_error.h
  93dc4f4fb91356e2833e1fbb3a5bf550  libgfortran/caf/libcaf.h
  d1dc616269a97d0e85db9cfa43aefeb2  libgfortran/caf/mpi.c
  45d8a61f2f93c831b4bbd6e3ab66b542  libgfortran/caf/shmem.c
! c6106eb7ae253d297f4b83bb5abc0740  libgfortran/caf/shmem/alloc.c
  0f8fbecc8ab0a6cc686ade9a30c63c69  libgfortran/caf/shmem/alloc.h
  3a3e2211031c2d5d1fa19a718153e14d  libgfortran/caf/shmem/allocator.c
  03432639a5e3f3cfc13e0b4b3b16062f  libgfortran/caf/shmem/allocator.h
*************** c76fc917a72eed37e3dd2fbc54ccd383  libgfo
*** 135490,135504 ****
  feff24e5582b1f94959aafc712f637d4  libgfortran/caf/shmem/counter_barrier.h
  ac03c96ad4b3cbfce74b31610170e681  libgfortran/caf/shmem/hashmap.c
  70d12fdb2bcca3123d701486eff4406d  libgfortran/caf/shmem/hashmap.h
! eec1672fbad8b2b7691baac33ac02bda  libgfortran/caf/shmem/shared_memory.c
  80716674e0dee09007ec088dc9b8bc75  libgfortran/caf/shmem/shared_memory.h
! e9be1397d0da3e3f08e6d83986128990  libgfortran/caf/shmem/supervisor.c
  e272dfa2acae6860d0a8465891f67cc6  libgfortran/caf/shmem/supervisor.h
  c39aaa0900c27c5e6d92245f822c0dbb  libgfortran/caf/shmem/sync.c
  04d5d6e61d96dd8fc313400fb0c72bb8  libgfortran/caf/shmem/sync.h
  5bc507eff4211dcfd30e8c5b39b9bb89  libgfortran/caf/shmem/teams_mgmt.c
  ec86dc736471e675d520c1368b304393  libgfortran/caf/shmem/teams_mgmt.h
! eda47643efe7014bcad84596ff05688c  libgfortran/caf/shmem/thread_support.c
  afca2bdd1b8b95cb70ca56c5cb073edb  libgfortran/caf/shmem/thread_support.h
  a65884d0f414d4bbd7f062bebb164563  libgfortran/caf/single.c
  7a6ec8aeacc22a6626157daea7f1fbfd  libgfortran/config.h.in
--- 135662,135676 ----
  feff24e5582b1f94959aafc712f637d4  libgfortran/caf/shmem/counter_barrier.h
  ac03c96ad4b3cbfce74b31610170e681  libgfortran/caf/shmem/hashmap.c
  70d12fdb2bcca3123d701486eff4406d  libgfortran/caf/shmem/hashmap.h
! eae17d42c98cc415dacf2d8a530de95a  libgfortran/caf/shmem/shared_memory.c
  80716674e0dee09007ec088dc9b8bc75  libgfortran/caf/shmem/shared_memory.h
! ddc3ac98bcb0b073ae7c9ebb09ea4291  libgfortran/caf/shmem/supervisor.c
  e272dfa2acae6860d0a8465891f67cc6  libgfortran/caf/shmem/supervisor.h
  c39aaa0900c27c5e6d92245f822c0dbb  libgfortran/caf/shmem/sync.c
  04d5d6e61d96dd8fc313400fb0c72bb8  libgfortran/caf/shmem/sync.h
  5bc507eff4211dcfd30e8c5b39b9bb89  libgfortran/caf/shmem/teams_mgmt.c
  ec86dc736471e675d520c1368b304393  libgfortran/caf/shmem/teams_mgmt.h
! ba343aa74324d10e7ddc5b50353a42cb  libgfortran/caf/shmem/thread_support.c
  afca2bdd1b8b95cb70ca56c5cb073edb  libgfortran/caf/shmem/thread_support.h
  a65884d0f414d4bbd7f062bebb164563  libgfortran/caf/single.c
  7a6ec8aeacc22a6626157daea7f1fbfd  libgfortran/config.h.in
*************** ac6842cd69183cba9a35bf92a55ca557  libgfo
*** 136312,136318 ****
  dabe1ddbbe87f521ccf0a2e035308393  libgfortran/intrinsics/access.c
  48c7d51b98756130c757058bed301255  libgfortran/intrinsics/args.c
  bce84b029bab5e34ab9b45e84a6c756c  libgfortran/intrinsics/associated.c
! 8bf05957a4efbaad15b9b4c8f63167da  libgfortran/intrinsics/c99_functions.c
  e72de8757600623f728838c9e25561f6  libgfortran/intrinsics/chdir.c
  7990be77dd8276994894528f543ec63e  libgfortran/intrinsics/chmod.c
  1d54f053f0d439e751cd2f245b7ad918  libgfortran/intrinsics/clock.c
--- 136484,136490 ----
  dabe1ddbbe87f521ccf0a2e035308393  libgfortran/intrinsics/access.c
  48c7d51b98756130c757058bed301255  libgfortran/intrinsics/args.c
  bce84b029bab5e34ab9b45e84a6c756c  libgfortran/intrinsics/associated.c
! e50d3d3d466d1a7f3f28864c5a463b4c  libgfortran/intrinsics/c99_functions.c
  e72de8757600623f728838c9e25561f6  libgfortran/intrinsics/chdir.c
  7990be77dd8276994894528f543ec63e  libgfortran/intrinsics/chmod.c
  1d54f053f0d439e751cd2f245b7ad918  libgfortran/intrinsics/clock.c
*************** ebc6e8cc0e01d7db16bf4acdec0fa760  libgfo
*** 136350,136356 ****
  2a9f4af55ee9fb08bd381edb3d08a6b1  libgfortran/intrinsics/rand.c
  0ef72e0f077843b4c196e197e630d43d  libgfortran/intrinsics/random.c
  1657c87e594887df3ca9bc766ce12197  libgfortran/intrinsics/random_init.f90
! d84f83e90b0dde59866e8edd5c99d50e  libgfortran/intrinsics/reduce.c
  96460e1feccde3de4192cdb7fe230e9b  libgfortran/intrinsics/rename.c
  7d71fe0de55501200f2d8b32033ed973  libgfortran/intrinsics/reshape_generic.c
  05c7aa4048077d8fdc6b0ac9f2f4e106  libgfortran/intrinsics/reshape_packed.c
--- 136522,136528 ----
  2a9f4af55ee9fb08bd381edb3d08a6b1  libgfortran/intrinsics/rand.c
  0ef72e0f077843b4c196e197e630d43d  libgfortran/intrinsics/random.c
  1657c87e594887df3ca9bc766ce12197  libgfortran/intrinsics/random_init.f90
! 32c17c01a928e376219cd95d73350caf  libgfortran/intrinsics/reduce.c
  96460e1feccde3de4192cdb7fe230e9b  libgfortran/intrinsics/rename.c
  7d71fe0de55501200f2d8b32033ed973  libgfortran/intrinsics/reshape_generic.c
  05c7aa4048077d8fdc6b0ac9f2f4e106  libgfortran/intrinsics/reshape_packed.c
*************** dd973d8040e0630939ee22b69ae43002  libgfo
*** 136387,136393 ****
  3d6bdfad19038c8e5794b4f1d39dc010  libgfortran/io/inquire.c
  86f78d0a8d7fd3418de9e9f9a1cb384f  libgfortran/io/intrinsics.c
  881d629188d9571bf02f154c40ee1bdc  libgfortran/io/io.h
! a7f1f84c3d85c67f583fa6c7674fdd06  libgfortran/io/list_read.c
  908721400434528de210b0cbef37f603  libgfortran/io/lock.c
  601d86fd12148a4342e1ca9c4905714d  libgfortran/io/open.c
  33bad6f40ed7c20e9562f82b2f8387c3  libgfortran/io/read.c
--- 136559,136565 ----
  3d6bdfad19038c8e5794b4f1d39dc010  libgfortran/io/inquire.c
  86f78d0a8d7fd3418de9e9f9a1cb384f  libgfortran/io/intrinsics.c
  881d629188d9571bf02f154c40ee1bdc  libgfortran/io/io.h
! 7437e1f88f4da0537df77818ac8ee45e  libgfortran/io/list_read.c
  908721400434528de210b0cbef37f603  libgfortran/io/lock.c
  601d86fd12148a4342e1ca9c4905714d  libgfortran/io/open.c
  33bad6f40ed7c20e9562f82b2f8387c3  libgfortran/io/read.c
*************** f460ce66bb06770e24fc348ce57dcea7  libgfo
*** 136400,136406 ****
  4092613d079ce7160a7ce3e52722bf1e  libgfortran/io/write.c
  1251ac6c18ee26563b355b078e011358  libgfortran/io/write_float.def
  4d4402eb782c9c4ba1fafd5b3ca5b80b  libgfortran/kinds-override.h
! 782dd75d67502253d6f5915fe7acf119  libgfortran/libgfortran.h
  387b6182fc5961d2910eba8861402578  libgfortran/libgfortran.spec.in
  dc1a87f5ed3520558b0fe9f43e4f5ba8  libgfortran/libtool-version
  d4f0b2fef82f7f7f6ed06a11af6fa372  libgfortran/m4/all.m4
--- 136572,136578 ----
  4092613d079ce7160a7ce3e52722bf1e  libgfortran/io/write.c
  1251ac6c18ee26563b355b078e011358  libgfortran/io/write_float.def
  4d4402eb782c9c4ba1fafd5b3ca5b80b  libgfortran/kinds-override.h
! 42a9f92a68f03604b652770efd4f0d77  libgfortran/libgfortran.h
  387b6182fc5961d2910eba8861402578  libgfortran/libgfortran.spec.in
  dc1a87f5ed3520558b0fe9f43e4f5ba8  libgfortran/libtool-version
  d4f0b2fef82f7f7f6ed06a11af6fa372  libgfortran/m4/all.m4
*************** a3a7e9ca6057da9ca42e03e41e1c73f7  libgo/
*** 142033,142039 ****
  dcdf1b680b15b372bdb64cc5107d51b6  libgo/testsuite/libgo-test-support.exp.in
  bf162aa572f7b96b25dbd2b027845d32  libgo/testsuite/libgo.testmain/testmain.exp
  cc9d2a0e34e31ba866a8caf9f46f48f3  libgomp/.gitattributes
! fb35c887c5e1b41690dc86378ace9065  libgomp/ChangeLog
  0d55aa862aee66efdc5f8d62c94ff8fb  libgomp/ChangeLog.graphite
  e1d869816ce58d8fdc05a55313f8c194  libgomp/Makefile.am
  4da024f3aacefa7a1d2396c494ae6526  libgomp/Makefile.in
--- 142205,142211 ----
  dcdf1b680b15b372bdb64cc5107d51b6  libgo/testsuite/libgo-test-support.exp.in
  bf162aa572f7b96b25dbd2b027845d32  libgo/testsuite/libgo.testmain/testmain.exp
  cc9d2a0e34e31ba866a8caf9f46f48f3  libgomp/.gitattributes
! 0b47618962ed77cd511d2fea5c9f57c0  libgomp/ChangeLog
  0d55aa862aee66efdc5f8d62c94ff8fb  libgomp/ChangeLog.graphite
  e1d869816ce58d8fdc05a55313f8c194  libgomp/Makefile.am
  4da024f3aacefa7a1d2396c494ae6526  libgomp/Makefile.in
*************** c447ed13e1d693f4b983b83ca2478aa8  libgom
*** 142087,142093 ****
  c4edbd7c2c1205e40ebb4fe0f1270559  libgomp/config/gcn/target.c
  55d3b1a161a020a1c6c18b3e41dd9420  libgomp/config/gcn/task.c
  8c261f3d46bea4a014a7dc403f84226a  libgomp/config/gcn/team.c
! fd4346a681746dfd044d855d5927c444  libgomp/config/gcn/teams.c
  de27fe416c22021c880c3ef4d002aa91  libgomp/config/gcn/time.c
  7bff56f23fd667518b0ce11825f3a66b  libgomp/config/hpux/plugin-suffix.h
  7a0a6a6d5cb567d0de762d9dbe76d9be  libgomp/config/linux/affinity.c
--- 142259,142265 ----
  c4edbd7c2c1205e40ebb4fe0f1270559  libgomp/config/gcn/target.c
  55d3b1a161a020a1c6c18b3e41dd9420  libgomp/config/gcn/task.c
  8c261f3d46bea4a014a7dc403f84226a  libgomp/config/gcn/team.c
! e750c26e88484361be89b24e4ec97760  libgomp/config/gcn/teams.c
  de27fe416c22021c880c3ef4d002aa91  libgomp/config/gcn/time.c
  7bff56f23fd667518b0ce11825f3a66b  libgomp/config/hpux/plugin-suffix.h
  7a0a6a6d5cb567d0de762d9dbe76d9be  libgomp/config/linux/affinity.c
*************** d77d4ae9962036bcecc3a3ba0cc10040  libgom
*** 142102,142108 ****
  e7c5c296b51e59e33374488e93c9c6ab  libgomp/config/linux/mips/futex.h
  47e7a47aebd6958882eef3212804e900  libgomp/config/linux/mutex.c
  0e18908d6748091d5123412101b2a228  libgomp/config/linux/mutex.h
! 92aa0764303b06a037e1559eef41ffe8  libgomp/config/linux/numa.c
  7973e447504d3a02e64bae101b909b1a  libgomp/config/linux/omp-lock.h
  e75b2f29c2bf9217db7e9d912f650fc6  libgomp/config/linux/powerpc/futex.h
  4c0ff8c6c44815a5051b7050398c1bff  libgomp/config/linux/proc.c
--- 142274,142280 ----
  e7c5c296b51e59e33374488e93c9c6ab  libgomp/config/linux/mips/futex.h
  47e7a47aebd6958882eef3212804e900  libgomp/config/linux/mutex.c
  0e18908d6748091d5123412101b2a228  libgomp/config/linux/mutex.h
! e739243047789acd6aa4b5e4666ba6ae  libgomp/config/linux/numa.c
  7973e447504d3a02e64bae101b909b1a  libgomp/config/linux/omp-lock.h
  e75b2f29c2bf9217db7e9d912f650fc6  libgomp/config/linux/powerpc/futex.h
  4c0ff8c6c44815a5051b7050398c1bff  libgomp/config/linux/proc.c
*************** ca14627edee8edaa51ae0d2606f17be4  libgom
*** 142133,142139 ****
  d4ef411ea34a5e21bbc28b10c1f3b9cf  libgomp/config/nvptx/target.c
  1ccc40324f0cdb57674db555b003e81d  libgomp/config/nvptx/task.c
  f3acd222abbaa3769c5ea50494029c42  libgomp/config/nvptx/team.c
! 6f9652aa612e4c359fb33ddd4199f84f  libgomp/config/nvptx/teams.c
  1e82aa2630626e511ff0d1341a76d2fb  libgomp/config/nvptx/time.c
  f71a2c1760df3cace4ad96cbc50e724c  libgomp/config/posix/bar.c
  b72c763edbd3bad13d1a4137ea03cf10  libgomp/config/posix/bar.h
--- 142305,142311 ----
  d4ef411ea34a5e21bbc28b10c1f3b9cf  libgomp/config/nvptx/target.c
  1ccc40324f0cdb57674db555b003e81d  libgomp/config/nvptx/task.c
  f3acd222abbaa3769c5ea50494029c42  libgomp/config/nvptx/team.c
! 750254475294442b0ddce0169f8a1a7d  libgomp/config/nvptx/teams.c
  1e82aa2630626e511ff0d1341a76d2fb  libgomp/config/nvptx/time.c
  f71a2c1760df3cace4ad96cbc50e724c  libgomp/config/posix/bar.c
  b72c763edbd3bad13d1a4137ea03cf10  libgomp/config/posix/bar.h
*************** dde4114403845ac867f58df6197f92c0  libgom
*** 142167,142173 ****
  930b51fbaf703b3ba35215a18e3e0464  libgomp/configure.tgt
  32ee987623cb1d4e924d40431df6168d  libgomp/critical.c
  58467d214066591e724f1370bfeb505a  libgomp/env.c
! 93acc4d17ce91729e01212d518bafca0  libgomp/error.c
  5a7099c8ae0c692dd86eae3cade49016  libgomp/fortran.c
  46849b5af1169f593c12afeebfac9940  libgomp/hashtab.h
  a1605e6bc0999c90a1c4e966af584f1c  libgomp/icv-device.c
--- 142339,142345 ----
  930b51fbaf703b3ba35215a18e3e0464  libgomp/configure.tgt
  32ee987623cb1d4e924d40431df6168d  libgomp/critical.c
  58467d214066591e724f1370bfeb505a  libgomp/env.c
! 85b56f9d7a9b0ea9f41e3b362758314e  libgomp/error.c
  5a7099c8ae0c692dd86eae3cade49016  libgomp/fortran.c
  46849b5af1169f593c12afeebfac9940  libgomp/hashtab.h
  a1605e6bc0999c90a1c4e966af584f1c  libgomp/icv-device.c
*************** e40f7f1dbaf7de3643dec21493aed6b5  libgom
*** 142177,142189 ****
  e59f9d9c4947a5f7d4bdd011da890930  libgomp/libgomp-plugin.c
  5159bdd2c1f79b781dc70f618a9c8f34  libgomp/libgomp-plugin.h
  8ea87cdae5f8849f75c6e4c9e7a06439  libgomp/libgomp.h
! 9e99459357a5d0014a2cdd7f32b0ccd1  libgomp/libgomp.map
  8b2aa50aecad82171348a6918309afd6  libgomp/libgomp.spec.in
! 28194ec1c033c6f64e62596ad60d0086  libgomp/libgomp.texi
  1d54928ce4032885323fb921fd1df788  libgomp/libgomp_f.h.in
! d1b10812b635c975811f56459dd67018  libgomp/libgomp_g.h
  26474764313104462f3252f8ce962c10  libgomp/lock.c
! 872219350d2f98cbe76a54c544d74a81  libgomp/loop.c
  80446fe6cd6193819bea8853c8dcc525  libgomp/loop_ull.c
  806319a3f4077f3dfe6699ec2e9051c9  libgomp/numa.c
  6688bf57d8344fc3ab514e0ca98629a5  libgomp/oacc-async.c
--- 142349,142361 ----
  e59f9d9c4947a5f7d4bdd011da890930  libgomp/libgomp-plugin.c
  5159bdd2c1f79b781dc70f618a9c8f34  libgomp/libgomp-plugin.h
  8ea87cdae5f8849f75c6e4c9e7a06439  libgomp/libgomp.h
! 8b13a19bd3fee8300d4f4395e91df037  libgomp/libgomp.map
  8b2aa50aecad82171348a6918309afd6  libgomp/libgomp.spec.in
! 4764b3ed9a2cb84f9cc216870589e66a  libgomp/libgomp.texi
  1d54928ce4032885323fb921fd1df788  libgomp/libgomp_f.h.in
! 4ad2a07e1582019796a76e5a32cf919c  libgomp/libgomp_g.h
  26474764313104462f3252f8ce962c10  libgomp/lock.c
! cdbb289363834d44486e8363a7bb4394  libgomp/loop.c
  80446fe6cd6193819bea8853c8dcc525  libgomp/loop_ull.c
  806319a3f4077f3dfe6699ec2e9051c9  libgomp/numa.c
  6688bf57d8344fc3ab514e0ca98629a5  libgomp/oacc-async.c
*************** b514e62ec1099b7683f3107c94615e99  libgom
*** 142204,142210 ****
  951da06c04766ca9e95dd4a2294b9b77  libgomp/openacc.h
  499db3818012abc0c973cf7887ad887b  libgomp/openacc_lib.h
  da2ae01cd3ee1b82927ed89b489413c4  libgomp/ordered.c
! f813b5b07fd46b494552fb262108b2b8  libgomp/parallel.c
  a19fe470b125fddc580e5e0bbeee471d  libgomp/plugin/Makefrag.am
  1b94d027e28b8b7e6f38e326d8412459  libgomp/plugin/build-target-indirect-htab.h
  fab10af27c836c7b90303245f3965cb8  libgomp/plugin/configfrag.ac
--- 142376,142382 ----
  951da06c04766ca9e95dd4a2294b9b77  libgomp/openacc.h
  499db3818012abc0c973cf7887ad887b  libgomp/openacc_lib.h
  da2ae01cd3ee1b82927ed89b489413c4  libgomp/ordered.c
! 35a1d63577bf0609efdee0a9674cc991  libgomp/parallel.c
  a19fe470b125fddc580e5e0bbeee471d  libgomp/plugin/Makefrag.am
  1b94d027e28b8b7e6f38e326d8412459  libgomp/plugin/build-target-indirect-htab.h
  fab10af27c836c7b90303245f3965cb8  libgomp/plugin/configfrag.ac
*************** ed195dc04ac3e252f89029dee0bc9c05  libgom
*** 142223,142233 ****
  bbb8b404de421c08a4468a7c149897e3  libgomp/splay-tree.h
  1775f6ebbed5a9aef1882e66136d9e2b  libgomp/target-cxa-dso-dtor.c
  efc6f457ddec802a552a289c9f6cec1d  libgomp/target-indirect.c
! 412555e48be05cd99c065a44045e1bda  libgomp/target.c
  9423c0473a15a8d13b93375561ef5058  libgomp/task.c
  7f9c7ebe470f1e58806b1136258bd786  libgomp/taskloop.c
  abb5e2202aa84d67c967b7dc176fc937  libgomp/team.c
! 8247dfb9073a5bab4f94827621b96b02  libgomp/teams.c
  ae0dcb4c08025996b4bf4550cf72832e  libgomp/testsuite/Makefile.am
  2c4f8874086e4e29d9e1638e65b409b3  libgomp/testsuite/Makefile.in
  4f0fd32ecaf8eb341fbaa1f46bfaf2a2  libgomp/testsuite/config/default.exp
--- 142395,142405 ----
  bbb8b404de421c08a4468a7c149897e3  libgomp/splay-tree.h
  1775f6ebbed5a9aef1882e66136d9e2b  libgomp/target-cxa-dso-dtor.c
  efc6f457ddec802a552a289c9f6cec1d  libgomp/target-indirect.c
! a8e8fa136687160ea2b9921d749781a6  libgomp/target.c
  9423c0473a15a8d13b93375561ef5058  libgomp/task.c
  7f9c7ebe470f1e58806b1136258bd786  libgomp/taskloop.c
  abb5e2202aa84d67c967b7dc176fc937  libgomp/team.c
! ccccd1509bb3ac2b54f546053e848717  libgomp/teams.c
  ae0dcb4c08025996b4bf4550cf72832e  libgomp/testsuite/Makefile.am
  2c4f8874086e4e29d9e1638e65b409b3  libgomp/testsuite/Makefile.in
  4f0fd32ecaf8eb341fbaa1f46bfaf2a2  libgomp/testsuite/config/default.exp
*************** ee0115a370a5b6a9e6990b3d15bdd431  libgom
*** 142769,142775 ****
  14ac121f9dbf4675cb527a13f401e0c6  libgomp/testsuite/libgomp.c-c++-common/for-9.c
  e9d16978781d5a6bb09d992e31a71f82  libgomp/testsuite/libgomp.c-c++-common/for-static-1.c
  427aec3091596e79a785168dfa374671  libgomp/testsuite/libgomp.c-c++-common/for-static-2.c
! fd8af5bac0ba4943882ddb71ea84daab  libgomp/testsuite/libgomp.c-c++-common/for-static-3.c
  a2dc6aeb34413f354719647b6254bd78  libgomp/testsuite/libgomp.c-c++-common/for-static.h
  38b84120e95c50bcbe995ff760fb2f46  libgomp/testsuite/libgomp.c-c++-common/function-not-offloaded-aux.c
  0a53af92f72022a91eded9bc193bc5c0  libgomp/testsuite/libgomp.c-c++-common/function-not-offloaded.c
--- 142941,142947 ----
  14ac121f9dbf4675cb527a13f401e0c6  libgomp/testsuite/libgomp.c-c++-common/for-9.c
  e9d16978781d5a6bb09d992e31a71f82  libgomp/testsuite/libgomp.c-c++-common/for-static-1.c
  427aec3091596e79a785168dfa374671  libgomp/testsuite/libgomp.c-c++-common/for-static-2.c
! 3ebe14c6bc0b44ff6bacf775d7adac83  libgomp/testsuite/libgomp.c-c++-common/for-static-3.c
  a2dc6aeb34413f354719647b6254bd78  libgomp/testsuite/libgomp.c-c++-common/for-static.h
  38b84120e95c50bcbe995ff760fb2f46  libgomp/testsuite/libgomp.c-c++-common/function-not-offloaded-aux.c
  0a53af92f72022a91eded9bc193bc5c0  libgomp/testsuite/libgomp.c-c++-common/function-not-offloaded.c
*************** ca33c5f9c9903b757ed36247b61aad15  libgom
*** 143064,143069 ****
--- 143236,143242 ----
  96f4675f2ddb3142834360b1350ca6e5  libgomp/testsuite/libgomp.c-c++-common/unroll-1.c
  9c2abbff55e05e4a43196cca67da7778  libgomp/testsuite/libgomp.c-c++-common/unroll-non-rect-1.c
  c8f461dea3df3b1901f5816e62fda50e  libgomp/testsuite/libgomp.c-c++-common/uses_allocators-1.c
+ 920339fa2a247f997f225f0b3eb696fb  libgomp/testsuite/libgomp.c-c++-common/uses_allocators-10.c
  f63269ffba195cd625a7ad0b1c14de8b  libgomp/testsuite/libgomp.c-c++-common/uses_allocators-2.c
  8ef62c036dfa6d35bf96830c262631c6  libgomp/testsuite/libgomp.c-c++-common/uses_allocators-3.c
  4c376d937e9a5664c517a5a318b5b688  libgomp/testsuite/libgomp.c-c++-common/uses_allocators-4.c
*************** a9b2ad991bd60cd4cd6ef4a68071bee6  libgom
*** 143590,143595 ****
--- 143763,143771 ----
  9249f482d7291a60ed32df9743b496fb  libgomp/testsuite/libgomp.c/target-8.c
  37f4629cc5ec7daf74c2204face7e933  libgomp/testsuite/libgomp.c/target-9.c
  0c22284da2bf46f8073fce86c2b87371  libgomp/testsuite/libgomp.c/target-critical-1.c
+ edf30c9900f4a1a9fd2287383eb17ee2  libgomp/testsuite/libgomp.c/target-device-type-1.c
+ 34eb76668ee3c1739c5de7a17f874495  libgomp/testsuite/libgomp.c/target-device-type-2.c
+ 5fba1b1f74991261406983aa57a8548b  libgomp/testsuite/libgomp.c/target-device-type-3.c
  d7cbe25f5829f4d664a461d6ef7327f5  libgomp/testsuite/libgomp.c/target-has-device-addr-3.c
  ae08608d1d34ffa14592283860b92d45  libgomp/testsuite/libgomp.c/target-link-1.c
  2615e18884995f596aab452699d4a70a  libgomp/testsuite/libgomp.c/target-map-zero-sized-2.c
*************** ba23071854d45364a52aa56e0e3316ac  libgom
*** 144231,144243 ****
  145271a42e3885d82155f89fbb8a1d67  libgomp/testsuite/libgomp.fortran/use_device_ptr-optional-3.f90
  dc1df4b97d0fa5209eb509523fa08bfc  libgomp/testsuite/libgomp.fortran/use_device_ptr-optional-4.f90
  fd6becb20369d6ac5a1bacfc014b31a3  libgomp/testsuite/libgomp.fortran/use_intrinsic_1.f90
! 5f9e486115fc188a7bd77ba11463602b  libgomp/testsuite/libgomp.fortran/uses_allocators-1.f90
  ab50f7a0ebcd9518a07453800a1b5d15  libgomp/testsuite/libgomp.fortran/uses_allocators-2.f90
  2e7955c7b8751d74f5905e203bc6e4e3  libgomp/testsuite/libgomp.fortran/uses_allocators-3.f90
! c69520ca63d2bd1fc48bec0b58445e67  libgomp/testsuite/libgomp.fortran/uses_allocators-4.f90
  1009c9a890dba82a5f8b530055e5fadd  libgomp/testsuite/libgomp.fortran/uses_allocators-5.f90
  550655c88f24a9cbd6988b8b98783506  libgomp/testsuite/libgomp.fortran/uses_allocators-6.f90
! a9d666245fdf9d1c2675ff27c2a18309  libgomp/testsuite/libgomp.fortran/uses_allocators-7.f90
  6b509406046ad69effe4fc4f16d73e0a  libgomp/testsuite/libgomp.fortran/uses_allocators-8.f90
  fecda9fc3e70ac57c13ecf7a85196138  libgomp/testsuite/libgomp.fortran/vla1.f90
  4bd76ef74f55ed2027a8be5f22222133  libgomp/testsuite/libgomp.fortran/vla2.f90
--- 144407,144419 ----
  145271a42e3885d82155f89fbb8a1d67  libgomp/testsuite/libgomp.fortran/use_device_ptr-optional-3.f90
  dc1df4b97d0fa5209eb509523fa08bfc  libgomp/testsuite/libgomp.fortran/use_device_ptr-optional-4.f90
  fd6becb20369d6ac5a1bacfc014b31a3  libgomp/testsuite/libgomp.fortran/use_intrinsic_1.f90
! 22c6c1df725092dd52375f0433c8fb3e  libgomp/testsuite/libgomp.fortran/uses_allocators-1.f90
  ab50f7a0ebcd9518a07453800a1b5d15  libgomp/testsuite/libgomp.fortran/uses_allocators-2.f90
  2e7955c7b8751d74f5905e203bc6e4e3  libgomp/testsuite/libgomp.fortran/uses_allocators-3.f90
! 2dbae4119a7b7e15ef9e55ef6ccf66ef  libgomp/testsuite/libgomp.fortran/uses_allocators-4.f90
  1009c9a890dba82a5f8b530055e5fadd  libgomp/testsuite/libgomp.fortran/uses_allocators-5.f90
  550655c88f24a9cbd6988b8b98783506  libgomp/testsuite/libgomp.fortran/uses_allocators-6.f90
! d94788e16586826303472b4156cd318c  libgomp/testsuite/libgomp.fortran/uses_allocators-7.f90
  6b509406046ad69effe4fc4f16d73e0a  libgomp/testsuite/libgomp.fortran/uses_allocators-8.f90
  fecda9fc3e70ac57c13ecf7a85196138  libgomp/testsuite/libgomp.fortran/vla1.f90
  4bd76ef74f55ed2027a8be5f22222133  libgomp/testsuite/libgomp.fortran/vla2.f90
*************** a73d560a3ba317c5ad0a7919d87b4b6d  libssp
*** 147718,147724 ****
  7d75fa0d30318408fe4cd91d9cbe3ac7  libssp/vsnprintf-chk.c
  e9ff0f4bdd1be75a507480ed1267459d  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! a7f5bddcbd834419a481f77694861f83  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 147894,147900 ----
  7d75fa0d30318408fe4cd91d9cbe3ac7  libssp/vsnprintf-chk.c
  e9ff0f4bdd1be75a507480ed1267459d  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! ff15c317e7b1df0440f44ec5d3ded5d8  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
*************** f8898e59cc7155a01a17f15a3b853c30  libstd
*** 148135,148141 ****
  11dd55e39edb8313b5563e53067c431e  libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html
  5532283753a5525d4531e5b8f59dbeda  libstdc++-v3/doc/html/manual/using_exceptions.html
  91385600a9fbb5f8f29c666917403807  libstdc++-v3/doc/html/manual/using_headers.html
! 106d80bfa1c180106be5dee024f8ea7b  libstdc++-v3/doc/html/manual/using_macros.html
  e8b86abd99dc9893dfa1bb7533fdc23d  libstdc++-v3/doc/html/manual/using_namespaces.html
  13c8dfb643338ee235bfc84a29e5d3f2  libstdc++-v3/doc/html/manual/utilities.html
  3d34cd999f3bf3133e40f554b6ba525e  libstdc++-v3/doc/xml/api.xml
--- 148311,148317 ----
  11dd55e39edb8313b5563e53067c431e  libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html
  5532283753a5525d4531e5b8f59dbeda  libstdc++-v3/doc/html/manual/using_exceptions.html
  91385600a9fbb5f8f29c666917403807  libstdc++-v3/doc/html/manual/using_headers.html
! e8869948932a7a4ad8150f019fd71f64  libstdc++-v3/doc/html/manual/using_macros.html
  e8b86abd99dc9893dfa1bb7533fdc23d  libstdc++-v3/doc/html/manual/using_namespaces.html
  13c8dfb643338ee235bfc84a29e5d3f2  libstdc++-v3/doc/html/manual/utilities.html
  3d34cd999f3bf3133e40f554b6ba525e  libstdc++-v3/doc/xml/api.xml
*************** f585d9116a5f533123166622818c4252  libstd
*** 148374,148380 ****
  cbd1ce02ad465e7f996671f14eee4ec9  libstdc++-v3/doc/xml/manual/support.xml
  1c7dc4c765a2c1e49fdeec9af9ce0274  libstdc++-v3/doc/xml/manual/test.xml
  e2e099be3dd6a4b7a940a7232635ee2c  libstdc++-v3/doc/xml/manual/test_policy_data_structures.xml
! 515cde4369acf7ba4041f832bc8a3bf3  libstdc++-v3/doc/xml/manual/using.xml
  e77b5856d5f68e941f15e1aa31a95b2d  libstdc++-v3/doc/xml/manual/using_exceptions.xml
  bc0412a9556e7ed39afe5103b73f1f26  libstdc++-v3/doc/xml/manual/utilities.xml
  7b70f0f77a50b976605aef6dbeb1e282  libstdc++-v3/doc/xml/spine.xml
--- 148550,148556 ----
  cbd1ce02ad465e7f996671f14eee4ec9  libstdc++-v3/doc/xml/manual/support.xml
  1c7dc4c765a2c1e49fdeec9af9ce0274  libstdc++-v3/doc/xml/manual/test.xml
  e2e099be3dd6a4b7a940a7232635ee2c  libstdc++-v3/doc/xml/manual/test_policy_data_structures.xml
! 92fa4d96d85eac5242a51ad70ee31dc4  libstdc++-v3/doc/xml/manual/using.xml
  e77b5856d5f68e941f15e1aa31a95b2d  libstdc++-v3/doc/xml/manual/using_exceptions.xml
  bc0412a9556e7ed39afe5103b73f1f26  libstdc++-v3/doc/xml/manual/utilities.xml
  7b70f0f77a50b976605aef6dbeb1e282  libstdc++-v3/doc/xml/spine.xml
*************** e533c7ad6cc31c69f61eb02aba0f473f  libstd
*** 148406,148412 ****
  abf1c74de0fb52f696034bd48432d075  libstdc++-v3/include/bits/binders.h
  3bc144622d471efab1aef4ec705459d0  libstdc++-v3/include/bits/boost_concept_check.h
  8af4c7d9e9f6b31055b2f57c798201d6  libstdc++-v3/include/bits/c++0x_warning.h
! 34446381e4c4746a62681665aebf236a  libstdc++-v3/include/bits/c++config
  5cbbd0fafb904f86c9ddce3fc54380f1  libstdc++-v3/include/bits/char_traits.h
  9a3227d14b324832ae22b4c7ec6979e2  libstdc++-v3/include/bits/charconv.h
  a15f9dcf8ee271924862e5e3c21b9bd5  libstdc++-v3/include/bits/chrono.h
--- 148582,148588 ----
  abf1c74de0fb52f696034bd48432d075  libstdc++-v3/include/bits/binders.h
  3bc144622d471efab1aef4ec705459d0  libstdc++-v3/include/bits/boost_concept_check.h
  8af4c7d9e9f6b31055b2f57c798201d6  libstdc++-v3/include/bits/c++0x_warning.h
! d0c15c840deae482dec44e2172ecee5c  libstdc++-v3/include/bits/c++config
  5cbbd0fafb904f86c9ddce3fc54380f1  libstdc++-v3/include/bits/char_traits.h
  9a3227d14b324832ae22b4c7ec6979e2  libstdc++-v3/include/bits/charconv.h
  a15f9dcf8ee271924862e5e3c21b9bd5  libstdc++-v3/include/bits/chrono.h
*************** a437a10ba7525a3935bec765a5604a4f  libstd
*** 148436,148442 ****
  39aca2727a08f07f0043ee164eaa09a4  libstdc++-v3/include/bits/gslice_array.h
  4fb739d7e430219a766af6d620d6b853  libstdc++-v3/include/bits/hashtable.h
  07a51a3027551b0c542b2b86f6c59b13  libstdc++-v3/include/bits/hashtable_policy.h
! b06aeb018bc3d30652ee07af66a6a664  libstdc++-v3/include/bits/indirect.h
  286812f00b93c6b48c444cf624dc6983  libstdc++-v3/include/bits/indirect_array.h
  33cde309bf68b44a649202d107d9d1cd  libstdc++-v3/include/bits/inplace_tags.h
  02fc060959019f916137494b7725ead3  libstdc++-v3/include/bits/intcmp.h
--- 148612,148618 ----
  39aca2727a08f07f0043ee164eaa09a4  libstdc++-v3/include/bits/gslice_array.h
  4fb739d7e430219a766af6d620d6b853  libstdc++-v3/include/bits/hashtable.h
  07a51a3027551b0c542b2b86f6c59b13  libstdc++-v3/include/bits/hashtable_policy.h
! f55435a8b80bce77e68534572ce05f3e  libstdc++-v3/include/bits/indirect.h
  286812f00b93c6b48c444cf624dc6983  libstdc++-v3/include/bits/indirect_array.h
  33cde309bf68b44a649202d107d9d1cd  libstdc++-v3/include/bits/inplace_tags.h
  02fc060959019f916137494b7725ead3  libstdc++-v3/include/bits/intcmp.h
*************** fa05c4e39f6430965ffaf3e65ed36b7b  libstd
*** 148481,148488 ****
  b07bdc6c6cec90e9cf7a74c52af0e9fc  libstdc++-v3/include/bits/print.h
  097b3f6fff8834167e5a5eb29dc9a79c  libstdc++-v3/include/bits/ptr_traits.h
  e9057d3a64660954bf7134e2fb721b51  libstdc++-v3/include/bits/quoted_string.h
! cdfdd1de1600b3dd5eb491f4ee12d6d2  libstdc++-v3/include/bits/random.h
! 1737fd5fcd17707169ff46594a40e93e  libstdc++-v3/include/bits/random.tcc
  4bbb7559472c9a9d579b509d462b9f49  libstdc++-v3/include/bits/range_access.h
  91a3a127b4d8b0d05094dd720c6074ae  libstdc++-v3/include/bits/ranges_algo.h
  2376637350495a1dbd9c27901ed68027  libstdc++-v3/include/bits/ranges_algobase.h
--- 148657,148664 ----
  b07bdc6c6cec90e9cf7a74c52af0e9fc  libstdc++-v3/include/bits/print.h
  097b3f6fff8834167e5a5eb29dc9a79c  libstdc++-v3/include/bits/ptr_traits.h
  e9057d3a64660954bf7134e2fb721b51  libstdc++-v3/include/bits/quoted_string.h
! 7f040110ed186d6ef95c737439fa58b3  libstdc++-v3/include/bits/random.h
! a1863495964944e6744cf640845d44fc  libstdc++-v3/include/bits/random.tcc
  4bbb7559472c9a9d579b509d462b9f49  libstdc++-v3/include/bits/range_access.h
  91a3a127b4d8b0d05094dd720c6074ae  libstdc++-v3/include/bits/ranges_algo.h
  2376637350495a1dbd9c27901ed68027  libstdc++-v3/include/bits/ranges_algobase.h
*************** d33f07a2c476cc45af97a78f4020e731  libstd
*** 148694,148702 ****
  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
  e4403adce6d232421e34c8fe3059f294  libstdc++-v3/include/debug/safe_sequence.h
  7dc511835c46701a6f5add97bf87657d  libstdc++-v3/include/debug/safe_sequence.tcc
--- 148870,148878 ----
  86f440721d11a555ec97526d018eabf7  libstdc++-v3/include/debug/multiset.h
  05b2e599111f72660b0453d2350d1feb  libstdc++-v3/include/debug/safe_base.h
  b901bcac560763f13f4c3a3e076f8f7f  libstdc++-v3/include/debug/safe_container.h
! 5ca1b9eebe149e209cf2b872caecf94e  libstdc++-v3/include/debug/safe_iterator.h
  732aac16ab9dafe9252686005236d0fd  libstdc++-v3/include/debug/safe_iterator.tcc
! 39f9bb5fedeccdf52877aac2636a47c7  libstdc++-v3/include/debug/safe_local_iterator.h
  86b787ce43f8d75f10315d2c404c22e4  libstdc++-v3/include/debug/safe_local_iterator.tcc
  e4403adce6d232421e34c8fe3059f294  libstdc++-v3/include/debug/safe_sequence.h
  7dc511835c46701a6f5add97bf87657d  libstdc++-v3/include/debug/safe_sequence.tcc
*************** c64ab520b4f6639a904aff1b2898fe5d  libstd
*** 149150,149156 ****
  d1dc8325fc8c069a07bab71a935bced3  libstdc++-v3/include/std/filesystem
  5f6d1d543aa97204300a7a76284f8775  libstdc++-v3/include/std/flat_map
  c3b66598ccd8ea2009de9b04433b7dcf  libstdc++-v3/include/std/flat_set
! b9be5ed2ce50a4b29ee72e3c2522887c  libstdc++-v3/include/std/format
  821d1dff1ce8d861767808c7c5eab838  libstdc++-v3/include/std/forward_list
  10ba06a4268328778f0feab5e3778f91  libstdc++-v3/include/std/fstream
  5907213253b81e40fd9101e5d092fc82  libstdc++-v3/include/std/functional
--- 149326,149332 ----
  d1dc8325fc8c069a07bab71a935bced3  libstdc++-v3/include/std/filesystem
  5f6d1d543aa97204300a7a76284f8775  libstdc++-v3/include/std/flat_map
  c3b66598ccd8ea2009de9b04433b7dcf  libstdc++-v3/include/std/flat_set
! 0f2369161c709b3490f86f1816177779  libstdc++-v3/include/std/format
  821d1dff1ce8d861767808c7c5eab838  libstdc++-v3/include/std/forward_list
  10ba06a4268328778f0feab5e3778f91  libstdc++-v3/include/std/fstream
  5907213253b81e40fd9101e5d092fc82  libstdc++-v3/include/std/functional
*************** ca0b85731f9c9d61a813d97c3286740e  libstd
*** 149168,149174 ****
  7fa0f238b96d8783fbe3c95f0aaa1d8a  libstdc++-v3/include/std/list
  979d756bd9149a01a697b92c921e75a0  libstdc++-v3/include/std/locale
  b9368104d884bddd988db2b9e69ab485  libstdc++-v3/include/std/map
! ccef79443b4a2e805fed108a98a5094e  libstdc++-v3/include/std/mdspan
  ac2295459d5771dfc8ae3d83c5e860bc  libstdc++-v3/include/std/memory
  ea0d67f29f1a73f1ccdade0115646a1c  libstdc++-v3/include/std/memory_resource
  f431aa799cd5cc175e6d5af7130ac487  libstdc++-v3/include/std/meta
--- 149344,149350 ----
  7fa0f238b96d8783fbe3c95f0aaa1d8a  libstdc++-v3/include/std/list
  979d756bd9149a01a697b92c921e75a0  libstdc++-v3/include/std/locale
  b9368104d884bddd988db2b9e69ab485  libstdc++-v3/include/std/map
! 831e8295e560cef650f41ebe720c177c  libstdc++-v3/include/std/mdspan
  ac2295459d5771dfc8ae3d83c5e860bc  libstdc++-v3/include/std/memory
  ea0d67f29f1a73f1ccdade0115646a1c  libstdc++-v3/include/std/memory_resource
  f431aa799cd5cc175e6d5af7130ac487  libstdc++-v3/include/std/meta
*************** d9b30ac9f13a2d342a56ff319aca749e  libstd
*** 149190,149196 ****
  88afd00cee949042aba6fd1cbaf15a6f  libstdc++-v3/include/std/simd
  b3171714703fcfc5d8fe69ffe22d9cc8  libstdc++-v3/include/std/source_location
  e691e3e1c795a2e57f49580a98fc2058  libstdc++-v3/include/std/span
! 34a41e551417785f45d2afdd48b7470b  libstdc++-v3/include/std/spanstream
  622e32cb4f822b51d4c1c6a9a6e5dc31  libstdc++-v3/include/std/sstream
  f5a5ebc7b6133572f8f361cde93ec52f  libstdc++-v3/include/std/stack
  88bb9b1fd74e5e06e1aeef52917d3612  libstdc++-v3/include/std/stacktrace
--- 149366,149372 ----
  88afd00cee949042aba6fd1cbaf15a6f  libstdc++-v3/include/std/simd
  b3171714703fcfc5d8fe69ffe22d9cc8  libstdc++-v3/include/std/source_location
  e691e3e1c795a2e57f49580a98fc2058  libstdc++-v3/include/std/span
! b3f5400b3e99e8767f9ec53ef2385b67  libstdc++-v3/include/std/spanstream
  622e32cb4f822b51d4c1c6a9a6e5dc31  libstdc++-v3/include/std/sstream
  f5a5ebc7b6133572f8f361cde93ec52f  libstdc++-v3/include/std/stack
  88bb9b1fd74e5e06e1aeef52917d3612  libstdc++-v3/include/std/stacktrace
*************** f5a5ebc7b6133572f8f361cde93ec52f  libstd
*** 149200,149217 ****
  9682b018302a44f27a3ea9c265f230b3  libstdc++-v3/include/std/streambuf
  25a0bd2633fe9e1760b5b45fbe3881b5  libstdc++-v3/include/std/string
  bf574394d5a86a292cf1a1ce1696148d  libstdc++-v3/include/std/string_view
! 660d440756fde466818e0d1cbb2dc70e  libstdc++-v3/include/std/syncstream
  58d29af751d81a16b6d3bea89311eec1  libstdc++-v3/include/std/system_error
  3de44f0df6167a88cbfda331087cb3e8  libstdc++-v3/include/std/text_encoding
  0e55da688cfae6ed254c1328fad9c8ad  libstdc++-v3/include/std/thread
! 8ef30587757a1234aab215609f1a2e45  libstdc++-v3/include/std/tuple
  ff36824a29ea5b43834acdcc395dabf0  libstdc++-v3/include/std/type_traits
  66a7939bfcb3a6f5966552f3fb49a384  libstdc++-v3/include/std/typeindex
  994522acd96f1b6084469da322d17c19  libstdc++-v3/include/std/unordered_map
  5393bc9d8b494917b25afd3714e8014a  libstdc++-v3/include/std/unordered_set
  3dafc052e829f49f947b61291c35680f  libstdc++-v3/include/std/utility
  67682e0eb96e54c43eabbf242b9b76ec  libstdc++-v3/include/std/valarray
! f4935a7b92bee0179976443347292535  libstdc++-v3/include/std/variant
  3bc614c8d83d3085cdb3c15f7bafea3b  libstdc++-v3/include/std/vector
  ecd0f316fc872dc19b88a6c834438315  libstdc++-v3/include/std/version
  7874ef3c97c791ad66b9def816d95363  libstdc++-v3/include/tr1/array
--- 149376,149393 ----
  9682b018302a44f27a3ea9c265f230b3  libstdc++-v3/include/std/streambuf
  25a0bd2633fe9e1760b5b45fbe3881b5  libstdc++-v3/include/std/string
  bf574394d5a86a292cf1a1ce1696148d  libstdc++-v3/include/std/string_view
! d62b9abfc5fc44c0a1b87a5dc2ac5429  libstdc++-v3/include/std/syncstream
  58d29af751d81a16b6d3bea89311eec1  libstdc++-v3/include/std/system_error
  3de44f0df6167a88cbfda331087cb3e8  libstdc++-v3/include/std/text_encoding
  0e55da688cfae6ed254c1328fad9c8ad  libstdc++-v3/include/std/thread
! 6c6a64d5e9714dfb0baecd8ed211824c  libstdc++-v3/include/std/tuple
  ff36824a29ea5b43834acdcc395dabf0  libstdc++-v3/include/std/type_traits
  66a7939bfcb3a6f5966552f3fb49a384  libstdc++-v3/include/std/typeindex
  994522acd96f1b6084469da322d17c19  libstdc++-v3/include/std/unordered_map
  5393bc9d8b494917b25afd3714e8014a  libstdc++-v3/include/std/unordered_set
  3dafc052e829f49f947b61291c35680f  libstdc++-v3/include/std/utility
  67682e0eb96e54c43eabbf242b9b76ec  libstdc++-v3/include/std/valarray
! fc66d67dd6e0ec0c9d1d7a713449fc95  libstdc++-v3/include/std/variant
  3bc614c8d83d3085cdb3c15f7bafea3b  libstdc++-v3/include/std/vector
  ecd0f316fc872dc19b88a6c834438315  libstdc++-v3/include/std/version
  7874ef3c97c791ad66b9def816d95363  libstdc++-v3/include/tr1/array
*************** f1d7a6ba26d0de93473a35bb266bf6b5  libstd
*** 149236,149242 ****
  8b2b28c86945ec7c99ff3f666c55177a  libstdc++-v3/include/tr1/ctype.h
  ce5bbbf929b44926aa3b64ca83db8842  libstdc++-v3/include/tr1/cwchar
  f6bafdc6aed2cd214dbe34cf8ad8f586  libstdc++-v3/include/tr1/cwctype
! 612a9b4c3b7d4f133a57dd1a494dee12  libstdc++-v3/include/tr1/ell_integral.tcc
  f0b276cf964fe489f7f0d3a35985b2c9  libstdc++-v3/include/tr1/exp_integral.tcc
  850d0bc2b6aa77941959576224c5629c  libstdc++-v3/include/tr1/fenv.h
  b9565d48f1ccc5de26ee668f2485c23c  libstdc++-v3/include/tr1/float.h
--- 149412,149418 ----
  8b2b28c86945ec7c99ff3f666c55177a  libstdc++-v3/include/tr1/ctype.h
  ce5bbbf929b44926aa3b64ca83db8842  libstdc++-v3/include/tr1/cwchar
  f6bafdc6aed2cd214dbe34cf8ad8f586  libstdc++-v3/include/tr1/cwctype
! 556d0b9468bcbaffed3635272acce9b0  libstdc++-v3/include/tr1/ell_integral.tcc
  f0b276cf964fe489f7f0d3a35985b2c9  libstdc++-v3/include/tr1/exp_integral.tcc
  850d0bc2b6aa77941959576224c5629c  libstdc++-v3/include/tr1/fenv.h
  b9565d48f1ccc5de26ee668f2485c23c  libstdc++-v3/include/tr1/float.h
*************** aacdb8e651b3fc7f3c8586a2eb513a49  libstd
*** 149294,149300 ****
  f0e2e9453cd4ca21909ab9424da5b303  libstdc++-v3/libsupc++/bad_cast.cc
  53c4c4a690a6930ff1d727711de2d2cb  libstdc++-v3/libsupc++/bad_typeid.cc
  47e7721cc47b6692830b6d19cb800032  libstdc++-v3/libsupc++/class_type_info.cc
! 6f3f3768bdcc56b6beb47700a5595071  libstdc++-v3/libsupc++/compare
  4a388d03ae2617f1ae10574dc69b7398  libstdc++-v3/libsupc++/cxxabi.h
  88ea372654b2288b408dae2118459fa6  libstdc++-v3/libsupc++/cxxabi_forced.h
  774fdaf99511789e9eabe379ab45028c  libstdc++-v3/libsupc++/cxxabi_init_exception.h
--- 149470,149476 ----
  f0e2e9453cd4ca21909ab9424da5b303  libstdc++-v3/libsupc++/bad_cast.cc
  53c4c4a690a6930ff1d727711de2d2cb  libstdc++-v3/libsupc++/bad_typeid.cc
  47e7721cc47b6692830b6d19cb800032  libstdc++-v3/libsupc++/class_type_info.cc
! b0d1186f228ce4b47a826bb306fffff4  libstdc++-v3/libsupc++/compare
  4a388d03ae2617f1ae10574dc69b7398  libstdc++-v3/libsupc++/cxxabi.h
  88ea372654b2288b408dae2118459fa6  libstdc++-v3/libsupc++/cxxabi_forced.h
  774fdaf99511789e9eabe379ab45028c  libstdc++-v3/libsupc++/cxxabi_init_exception.h
*************** c98ff3b1b5a17a05cc9cfb0e20e31151  libstd
*** 149339,149345 ****
  83350c6154826468cf97f28bc525e8c8  libstdc++-v3/libsupc++/guard_error.cc
  55e1b7c2a43dc09aeff8eeacd720aea5  libstdc++-v3/libsupc++/hash_bytes.cc
  7a587bda8840ccc345aef5611a09b7f8  libstdc++-v3/libsupc++/hash_bytes.h
! 61e6bb1e8612b32522503b8b702c98e8  libstdc++-v3/libsupc++/initializer_list
  f9116aa4c4bed4851885a02b53f02e27  libstdc++-v3/libsupc++/nested_exception.cc
  e5db4a72b6902bfe4cb4081024a1c117  libstdc++-v3/libsupc++/nested_exception.h
  5e4372a4f135f0192513785086d0d049  libstdc++-v3/libsupc++/new
--- 149515,149521 ----
  83350c6154826468cf97f28bc525e8c8  libstdc++-v3/libsupc++/guard_error.cc
  55e1b7c2a43dc09aeff8eeacd720aea5  libstdc++-v3/libsupc++/hash_bytes.cc
  7a587bda8840ccc345aef5611a09b7f8  libstdc++-v3/libsupc++/hash_bytes.h
! be68be191f80611d27cc479d57d457e0  libstdc++-v3/libsupc++/initializer_list
  f9116aa4c4bed4851885a02b53f02e27  libstdc++-v3/libsupc++/nested_exception.cc
  e5db4a72b6902bfe4cb4081024a1c117  libstdc++-v3/libsupc++/nested_exception.h
  5e4372a4f135f0192513785086d0d049  libstdc++-v3/libsupc++/new
*************** c2bd27af25e57adce5807e0f01a2d0dc  libstd
*** 149513,149519 ****
  23187a5ee053acd65f32c0dc2ac4bdf7  libstdc++-v3/src/c++20/string-inst.cc
  50ac2e00d5794df965e47509f3c16cb5  libstdc++-v3/src/c++20/syncbuf.cc
  0dfa4a770289b4e926b8281770732d5a  libstdc++-v3/src/c++20/tzdata.zi
! 3def762861fa84a86a87a40a7eeea704  libstdc++-v3/src/c++20/tzdb.cc
  ac7b7a080d5f7aa8fe6a26188631fc18  libstdc++-v3/src/c++20/windows_zones-map.h
  863fc49f52a3a3665416a7c88fc4f3e7  libstdc++-v3/src/c++23/Makefile.am
  0d7332606e5b7973ac0d4398f18cfd17  libstdc++-v3/src/c++23/Makefile.in
--- 149689,149695 ----
  23187a5ee053acd65f32c0dc2ac4bdf7  libstdc++-v3/src/c++20/string-inst.cc
  50ac2e00d5794df965e47509f3c16cb5  libstdc++-v3/src/c++20/syncbuf.cc
  0dfa4a770289b4e926b8281770732d5a  libstdc++-v3/src/c++20/tzdata.zi
! 5c976ef28522ebe4d16beb7f69163c9c  libstdc++-v3/src/c++20/tzdb.cc
  ac7b7a080d5f7aa8fe6a26188631fc18  libstdc++-v3/src/c++20/windows_zones-map.h
  863fc49f52a3a3665416a7c88fc4f3e7  libstdc++-v3/src/c++23/Makefile.am
  0d7332606e5b7973ac0d4398f18cfd17  libstdc++-v3/src/c++23/Makefile.in
*************** ac7b7a080d5f7aa8fe6a26188631fc18  libstd
*** 149521,149527 ****
  9d2dc72c1a96e4af02d5f86278cb705b  libstdc++-v3/src/c++23/print.cc
  15f6b28b71ad24bc5b6d33c21048e59a  libstdc++-v3/src/c++23/stacktrace.cc
  c319163994652e23066095eded5869f0  libstdc++-v3/src/c++23/std-clib.cc.in
! 625f396ba37e13c10cd9e79a5d19832f  libstdc++-v3/src/c++23/std.cc.in
  ef2786c62e1aa27a5405d7bf70e5212c  libstdc++-v3/src/c++23/std.compat.cc.in
  9b1a87f1df1badcb59f9d461e995392d  libstdc++-v3/src/c++26/Makefile.am
  7bb4fc4ec0d17bf1e304be661919aad7  libstdc++-v3/src/c++26/Makefile.in
--- 149697,149703 ----
  9d2dc72c1a96e4af02d5f86278cb705b  libstdc++-v3/src/c++23/print.cc
  15f6b28b71ad24bc5b6d33c21048e59a  libstdc++-v3/src/c++23/stacktrace.cc
  c319163994652e23066095eded5869f0  libstdc++-v3/src/c++23/std-clib.cc.in
! 1c17f826dbfe2f324aeee14e664edc19  libstdc++-v3/src/c++23/std.cc.in
  ef2786c62e1aa27a5405d7bf70e5212c  libstdc++-v3/src/c++23/std.compat.cc.in
  9b1a87f1df1badcb59f9d461e995392d  libstdc++-v3/src/c++26/Makefile.am
  7bb4fc4ec0d17bf1e304be661919aad7  libstdc++-v3/src/c++26/Makefile.in
*************** c10fe70e48c9fa9c48a817108d290629  libstd
*** 149657,149662 ****
--- 149833,149839 ----
  bdd469026d3bc77ddbe9761819df1999  libstdc++-v3/testsuite/18_support/comparisons/object/93479.cc
  7b45b0d874b32588521fd2729eccc3cf  libstdc++-v3/testsuite/18_support/comparisons/object/lwg3530.cc
  21650acf3f7b5c63b225201db753e753  libstdc++-v3/testsuite/18_support/comparisons/type_order/1.cc
+ 3bb2f896beff74df85c744bfbe73a49b  libstdc++-v3/testsuite/18_support/comparisons/type_order/lwg4305.cc
  2a26a0a0e6856b66827cceaf8257e9b6  libstdc++-v3/testsuite/18_support/contracts/invoke_default_cvh.cc
  a48259cf2dc7fdce0dd213702cb38485  libstdc++-v3/testsuite/18_support/contracts/invoke_default_cvh2.cc
  88624522d42417c5a095e9854856eecb  libstdc++-v3/testsuite/18_support/contracts/srcloc.cc
*************** e046d1f2dd83948c2f1bebd6854307d2  libstd
*** 149726,149731 ****
--- 149903,149909 ----
  47475fceea2197a5daff17e8d0a33bf8  libstdc++-v3/testsuite/18_support/headers/version/macros.cc
  6915eca4df41499048a3c281e26933af  libstdc++-v3/testsuite/18_support/initializer_list/constexpr.cc
  ea65fae762291c15f9d3c42f626d3be6  libstdc++-v3/testsuite/18_support/initializer_list/data_empty_mem.cc
+ da32a66a7ada3eca98fe0acb692e78ed  libstdc++-v3/testsuite/18_support/initializer_list/lwg2129.cc
  dd0427bebc8956669c42676fdf63feda  libstdc++-v3/testsuite/18_support/initializer_list/range_access.cc
  0d2c424345d1f3e9d091d6846b86ec1b  libstdc++-v3/testsuite/18_support/initializer_list/range_access14.cc
  4b9dac7a959a26d9b7075f3a68433fa4  libstdc++-v3/testsuite/18_support/initializer_list/range_access14_neg.cc
*************** c4cb13f6c5efab7f62d907c59cba3123  libstd
*** 151328,151333 ****
--- 151506,151512 ----
  2edf4906b4786ebc65df8c8724859efe  libstdc++-v3/testsuite/20_util/tuple/element_access/get2_by_type.cc
  e2c79e910313857d262e4bcf901d8e7c  libstdc++-v3/testsuite/20_util/tuple/element_access/get_by_type.cc
  fb58eb02b1d14abbd70a5e21a74662ec  libstdc++-v3/testsuite/20_util/tuple/element_access/get_neg.cc
+ 1b1927367f87eb2ac583e65bb43fb2f8  libstdc++-v3/testsuite/20_util/tuple/lwg3990.cc
  7460547ed4226b3455f7422f94c51252  libstdc++-v3/testsuite/20_util/tuple/make_from_tuple/1.cc
  949ea84c3c748a4c9947c0672f8a6f77  libstdc++-v3/testsuite/20_util/tuple/make_from_tuple/2.cc
  32b91df88869bacd821f449c4ff9ea1c  libstdc++-v3/testsuite/20_util/tuple/make_from_tuple/dangling_ref.cc
*************** ebef8c39a05684c32566afef1526f985  libstd
*** 151481,151486 ****
--- 151660,151666 ----
  bbb776a24ac89aacdb5d1e03cb0bc4b2  libstdc++-v3/testsuite/20_util/variant/hash_abi.cc
  faa48ecba6cfa82fcecc44262f7a5d89  libstdc++-v3/testsuite/20_util/variant/index_type.cc
  e56cd950ff384e81521ce2616669bfa4  libstdc++-v3/testsuite/20_util/variant/lwg3585.cc
+ 433f6ea98491e2c0ecb7dd3f15d41be3  libstdc++-v3/testsuite/20_util/variant/lwg3990.cc
  04e80f49e9982a3130fab3556d7da366  libstdc++-v3/testsuite/20_util/variant/relops/115145.cc
  870b559652bd9c2cc69889c4abc1bd3e  libstdc++-v3/testsuite/20_util/variant/relops/89851.cc
  a24699cbf5307e90ad6686402ba91f7a  libstdc++-v3/testsuite/20_util/variant/relops/90008.cc
*************** afe443cccc07fbd59aff2af0edd955ce  libstd
*** 153285,153291 ****
  c70a46b7a870b0d7ac9e94fd9d9077b6  libstdc++-v3/testsuite/23_containers/mdspan/layouts/padded.cc
  490297a4a90a084a51d7dfe6eb3a0f72  libstdc++-v3/testsuite/23_containers/mdspan/layouts/padded_neg.cc
  54d31e86115d0b93699f33eca2e16852  libstdc++-v3/testsuite/23_containers/mdspan/layouts/stride.cc
! 91c5f0500560d19589fb48c98fe2df8d  libstdc++-v3/testsuite/23_containers/mdspan/layouts/stride_neg.cc
  083b2e8397805cfb105e7a8f99e725ca  libstdc++-v3/testsuite/23_containers/mdspan/mdspan.cc
  4b1a50b4d361b155b60027f1bdc566e7  libstdc++-v3/testsuite/23_containers/mdspan/out_of_bounds_neg.cc
  d0948adb8d08e1ed90f5223c0e45676b  libstdc++-v3/testsuite/23_containers/mdspan/submdspan/canonical_slices.cc
--- 153465,153471 ----
  c70a46b7a870b0d7ac9e94fd9d9077b6  libstdc++-v3/testsuite/23_containers/mdspan/layouts/padded.cc
  490297a4a90a084a51d7dfe6eb3a0f72  libstdc++-v3/testsuite/23_containers/mdspan/layouts/padded_neg.cc
  54d31e86115d0b93699f33eca2e16852  libstdc++-v3/testsuite/23_containers/mdspan/layouts/stride.cc
! 7c38e4eb25d42df685055b1921b50240  libstdc++-v3/testsuite/23_containers/mdspan/layouts/stride_neg.cc
  083b2e8397805cfb105e7a8f99e725ca  libstdc++-v3/testsuite/23_containers/mdspan/mdspan.cc
  4b1a50b4d361b155b60027f1bdc566e7  libstdc++-v3/testsuite/23_containers/mdspan/out_of_bounds_neg.cc
  d0948adb8d08e1ed90f5223c0e45676b  libstdc++-v3/testsuite/23_containers/mdspan/submdspan/canonical_slices.cc
*************** cbc4cea209f5ae35db8b0c6b8629a43e  libstd
*** 155778,155803 ****
  f1f4ab0ed3810cd825bd204d0dbc49b9  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc
  a658dadee7b50915a89760342c4b42dd  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/fallback.cc
  03444d296f763a2acb0e7d98052b30ce  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/initlist_fun.cc
  dd4a3cc0b7def8feaffc206507a96921  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/num_xbound_fun.cc
  91fdf23221b11c2fd6e196f06fcc18b4  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/range.cc
  f6c2b36fecacfa2276753fc24e4144f1  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/call-default.cc
  ef5f5d1b895894921233f9e3cfa90cce  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/equal.cc
  cdbf0d0142e6cc9bb51bf7ecc1445b0b  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/inequal.cc
  541635bb5d05f2f0c7bd21ebdc094207  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/serialize.cc
! 25a4749120756ecd8da437e955d75185  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/serialize2.cc
  f2c872e24f8164354f8bff8c6c3af918  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/requirements/explicit_instantiation/1.cc
  36f30b4c9fae68677fb2d6a08e58a181  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/requirements/typedefs.cc
  c6b9a866c77dbfde316664357479e98d  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/122062.cc
  598855ac4b0d3c6499262fb43a1e0769  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc
  a29f814eeea2d23fb92e48e0eb7d0e9e  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/fallback.cc
  a9be44f1a462d60ab4b9a8b878519b0e  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/initlist_fun.cc
  f9cddab3073895c5a21c9a804f241c29  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/num_xbound_fun.cc
  a2a6a288b97e687753bb1eee3402c8aa  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/range.cc
  c0eaaac68e38d63aa1bbee1838a3f166  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/call-default.cc
  9e23ce0cfe6be702a574ad1cbc36eea7  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/equal.cc
  b4ef50df6dea01750543f8888be44431  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/inequal.cc
  e7dd5d5ad979d1eaa1f9786411d95b9a  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/serialize.cc
! badcc6d3d62c9c6bd7420d49a31b9fdd  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/serialize2.cc
  c5f129a93ca3c75a086bc82e6374b986  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/requirements/explicit_instantiation/1.cc
  e0947c62fa030b9b28e9e931ce6992e0  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/requirements/typedefs.cc
  54d93e8fe86b8cf61a01b7d129cfdd3f  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/cons/default.cc
--- 155958,155995 ----
  f1f4ab0ed3810cd825bd204d0dbc49b9  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc
  a658dadee7b50915a89760342c4b42dd  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/fallback.cc
  03444d296f763a2acb0e7d98052b30ce  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/initlist_fun.cc
+ 4cb71e906ee9e0a4d75a733bf3d4730f  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/input_type.cc
+ 0d86fef91ceb148c7679161e5dffdf40  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/input_type_fallback_neg.cc
  dd4a3cc0b7def8feaffc206507a96921  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/num_xbound_fun.cc
  91fdf23221b11c2fd6e196f06fcc18b4  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/range.cc
+ 463ed1419846a1bd232776de8e651df9  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/accessors.cc
+ 5efb76ffc68e43fa04a5f3de05330e9c  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/accessors_exact.cc
+ 0202767166ebc6b9d665bd26c8caf81c  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/accessors_fallback.cc
  f6c2b36fecacfa2276753fc24e4144f1  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/call-default.cc
  ef5f5d1b895894921233f9e3cfa90cce  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/equal.cc
  cdbf0d0142e6cc9bb51bf7ecc1445b0b  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/inequal.cc
  541635bb5d05f2f0c7bd21ebdc094207  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/serialize.cc
! 2d390976a4f8079cfbbae698d225b00c  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/serialize2.cc
  f2c872e24f8164354f8bff8c6c3af918  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/requirements/explicit_instantiation/1.cc
  36f30b4c9fae68677fb2d6a08e58a181  libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/requirements/typedefs.cc
  c6b9a866c77dbfde316664357479e98d  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/122062.cc
  598855ac4b0d3c6499262fb43a1e0769  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc
  a29f814eeea2d23fb92e48e0eb7d0e9e  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/fallback.cc
  a9be44f1a462d60ab4b9a8b878519b0e  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/initlist_fun.cc
+ 97a144abe6d25b9c975c78afe7f5d755  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/input_type.cc
+ 0088067050169c26cfdb7e9158cbc4ae  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/input_type_fallback_neg.cc
  f9cddab3073895c5a21c9a804f241c29  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/num_xbound_fun.cc
+ 1c198c190d355adcc10d46fd71370058  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/pr125548.cc
+ 233cc47875ef0695fbf38d2014bd8c5c  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/pr125548_fallback.cc
  a2a6a288b97e687753bb1eee3402c8aa  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/range.cc
+ e4043030ae5486207f55fbafad35312e  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/accessors.cc
+ 5efb76ffc68e43fa04a5f3de05330e9c  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/accessors_exact.cc
+ 0202767166ebc6b9d665bd26c8caf81c  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/accessors_fallback.cc
  c0eaaac68e38d63aa1bbee1838a3f166  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/call-default.cc
  9e23ce0cfe6be702a574ad1cbc36eea7  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/equal.cc
  b4ef50df6dea01750543f8888be44431  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/inequal.cc
  e7dd5d5ad979d1eaa1f9786411d95b9a  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/serialize.cc
! 0bf17cdffa3e450181edbda3c8a637bf  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/serialize2.cc
  c5f129a93ca3c75a086bc82e6374b986  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/requirements/explicit_instantiation/1.cc
  e0947c62fa030b9b28e9e931ce6992e0  libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/requirements/typedefs.cc
  54d93e8fe86b8cf61a01b7d129cfdd3f  libstdc++-v3/testsuite/26_numerics/random/poisson_distribution/cons/default.cc
*************** f11ce3d565763c3b3efa477f07b79b10  libstd
*** 158944,158957 ****
--- 159136,159152 ----
  77186a57701ac0752592eb20efbdf51a  libstdc++-v3/testsuite/special_functions/10_cyl_neumann/check_value.cc
  dcf34393b1a30218cbb8e7b99dfe2266  libstdc++-v3/testsuite/special_functions/10_cyl_neumann/compile.cc
  cc5b3172e50ff8340e61ec1aef6ed09c  libstdc++-v3/testsuite/special_functions/10_cyl_neumann/compile_2.cc
+ f8442cd602be0004d1bbad98a6170bf0  libstdc++-v3/testsuite/special_functions/11_ellint_1/check_inf.cc
  6dcf1ecf069848c48e496859db718b31  libstdc++-v3/testsuite/special_functions/11_ellint_1/check_nan.cc
  c22cc5e28f74ce7865bccaedeaf1f615  libstdc++-v3/testsuite/special_functions/11_ellint_1/check_value.cc
  02ec9395b16bec915768eb4eb943910f  libstdc++-v3/testsuite/special_functions/11_ellint_1/compile.cc
  00d4b92bbeb9139633262ecd8c998716  libstdc++-v3/testsuite/special_functions/11_ellint_1/compile_2.cc
+ 0fc96997b26796ecb2b0e29464bdd2c8  libstdc++-v3/testsuite/special_functions/12_ellint_2/check_inf.cc
  676458f9a5ddbe0db69a75388e369c9e  libstdc++-v3/testsuite/special_functions/12_ellint_2/check_nan.cc
  2766d1d14b45411bb5712f978ce7815e  libstdc++-v3/testsuite/special_functions/12_ellint_2/check_value.cc
  94b9d8f6520faeddccc84f43d8428497  libstdc++-v3/testsuite/special_functions/12_ellint_2/compile.cc
  7a540da91582e5a74897e1281bd446c1  libstdc++-v3/testsuite/special_functions/12_ellint_2/compile_2.cc
+ cedf9ef34566e565e24117a83e2e6a4e  libstdc++-v3/testsuite/special_functions/13_ellint_3/check_inf.cc
  1fd9a4277f764d9c7956edc64db671ac  libstdc++-v3/testsuite/special_functions/13_ellint_3/check_nan.cc
  4235fbd535767145f3e699cb40fc6c79  libstdc++-v3/testsuite/special_functions/13_ellint_3/check_value.cc
  ac10228381c2da65b93427b6e087648a  libstdc++-v3/testsuite/special_functions/13_ellint_3/compile.cc
*************** a7244ffd437f4addc853cfdd012c5cba  libstd
*** 159051,159056 ****
--- 159246,159252 ----
  c5e2b63672ec2df6fdcba9b4e1ba3ba0  libstdc++-v3/testsuite/std/format/functions/format_to_n.cc
  c8f2eeb0abb15e3620dc7da529b654b2  libstdc++-v3/testsuite/std/format/functions/size.cc
  fc7c0a7a8dd0259caaa437eac20a9eca  libstdc++-v3/testsuite/std/format/functions/vformat_to.cc
+ d08981ff1545699b09e5c189fcfffaf0  libstdc++-v3/testsuite/std/format/lwg3975.cc
  341fd71f544307f85453dfa5d899e9df  libstdc++-v3/testsuite/std/format/parse_ctx.cc
  98a750919025b1a6b7cbab28d1aba84a  libstdc++-v3/testsuite/std/format/parse_ctx_neg.cc
  1b3b368898e00e27fc4de00e410402a1  libstdc++-v3/testsuite/std/format/pr121765.cc
*************** ae9c170f7a4c33d02f8e1a0b10b1dd28  libstd
*** 159076,159081 ****
--- 159272,159278 ----
  598510ad059f80ce1abc9303831df39d  libstdc++-v3/testsuite/std/memory/indirect/move.cc
  c8481944e61284a27d6058a2feb80d6f  libstdc++-v3/testsuite/std/memory/indirect/move_alloc.cc
  b526ad4629da7b0f8ac3496397fe5ecf  libstdc++-v3/testsuite/std/memory/indirect/relops.cc
+ ef8228a8f17fd59bc0dbed2871aee073  libstdc++-v3/testsuite/std/memory/indirect/specialization.cc
  268ca7c7aea9fe1a7800f1e24de9064e  libstdc++-v3/testsuite/std/memory/polymorphic/access.cc
  ec577f25e43df56f2c55dd8b70cc4282  libstdc++-v3/testsuite/std/memory/polymorphic/copy.cc
  800076192ee1f72935bff5d984b28ecd  libstdc++-v3/testsuite/std/memory/polymorphic/copy_alloc.cc
*************** ec577f25e43df56f2c55dd8b70cc4282  libstd
*** 159085,159090 ****
--- 159282,159288 ----
  f8c9db32ebd1429bbaf2c1ead8562583  libstdc++-v3/testsuite/std/memory/polymorphic/invalid_neg.cc
  25b0d78575b430455c13bd9f89ac1220  libstdc++-v3/testsuite/std/memory/polymorphic/move.cc
  83a6a4f90d8bbb271dd1e34ad1d2a573  libstdc++-v3/testsuite/std/memory/polymorphic/move_alloc.cc
+ 3f5179afa0cea68a9c6fc0f600a37f91  libstdc++-v3/testsuite/std/memory/polymorphic/specialization.cc
  66f653230f8945d6e9694e299534f5e8  libstdc++-v3/testsuite/std/memory/start_lifetime_as/neg.cc
  45c599ec07af3ccb18a0d8e3c2aea96f  libstdc++-v3/testsuite/std/memory/start_lifetime_as/start_lifetime_as.cc
  93d5cc160b98cb8b7d737ffed5842b3d  libstdc++-v3/testsuite/std/ranges/97600.cc
*************** a0be85b8053be995a48a4cfec6a5b675  libstd
*** 159285,159299 ****
  4547b0badce5668333f08490264f6870  libstdc++-v3/testsuite/std/time/parse/125369.cc
  5762399d57d6d0d2d2d8cd51ff3f423d  libstdc++-v3/testsuite/std/time/parse/parse.cc
  f16dd4eb7915f1558b6ae75425ab2987  libstdc++-v3/testsuite/std/time/syn_c++20.cc
! 942f5bb5a199e3f7b0821958da8b265a  libstdc++-v3/testsuite/std/time/time_zone/116110.cc
  e5f71dc7f2292314c0c9b06c3b8acf2e  libstdc++-v3/testsuite/std/time/time_zone/124513.cc
  f9d9d1cb483f1731762a8e5787c8020b  libstdc++-v3/testsuite/std/time/time_zone/get_info_local.cc
  5c55d9e35cb8c9c5e0a207bd53fa37d2  libstdc++-v3/testsuite/std/time/time_zone/get_info_sys.cc
  1e7ccd27fe0a3cf8d6428f6f2710fcb9  libstdc++-v3/testsuite/std/time/time_zone/numeric_save.cc
  efdc68d548df15089ce510e6bf1c33c7  libstdc++-v3/testsuite/std/time/time_zone/requirements.cc
  105f0ca3c8074ef3b2c1751d37ec2b96  libstdc++-v3/testsuite/std/time/time_zone/sys_info_abbrev.cc
  57d3f5cb0b34d16a612546952b82dafa  libstdc++-v3/testsuite/std/time/time_zone/until_day_on.cc
! cec9d3acae7429decc9668323d30ecec  libstdc++-v3/testsuite/std/time/time_zone/wall_cascade.cc
  62c56a128f0d03b2e348296c7a54ee3f  libstdc++-v3/testsuite/std/time/traits/is_clock.cc
  3c922068cf98b21e732c0de16c319289  libstdc++-v3/testsuite/std/time/tzdb/1.cc
  c142573e06d5c52d53f0f20e1e72e973  libstdc++-v3/testsuite/std/time/tzdb/leap_seconds.cc
--- 159483,159498 ----
  4547b0badce5668333f08490264f6870  libstdc++-v3/testsuite/std/time/parse/125369.cc
  5762399d57d6d0d2d2d8cd51ff3f423d  libstdc++-v3/testsuite/std/time/parse/parse.cc
  f16dd4eb7915f1558b6ae75425ab2987  libstdc++-v3/testsuite/std/time/syn_c++20.cc
! aa97fd7d0577e24862011990c821f240  libstdc++-v3/testsuite/std/time/time_zone/116110.cc
  e5f71dc7f2292314c0c9b06c3b8acf2e  libstdc++-v3/testsuite/std/time/time_zone/124513.cc
  f9d9d1cb483f1731762a8e5787c8020b  libstdc++-v3/testsuite/std/time/time_zone/get_info_local.cc
  5c55d9e35cb8c9c5e0a207bd53fa37d2  libstdc++-v3/testsuite/std/time/time_zone/get_info_sys.cc
  1e7ccd27fe0a3cf8d6428f6f2710fcb9  libstdc++-v3/testsuite/std/time/time_zone/numeric_save.cc
+ 8b0c84574cd63b2ee170dd49c71bc843  libstdc++-v3/testsuite/std/time/time_zone/pr116110_named.cc
  efdc68d548df15089ce510e6bf1c33c7  libstdc++-v3/testsuite/std/time/time_zone/requirements.cc
  105f0ca3c8074ef3b2c1751d37ec2b96  libstdc++-v3/testsuite/std/time/time_zone/sys_info_abbrev.cc
  57d3f5cb0b34d16a612546952b82dafa  libstdc++-v3/testsuite/std/time/time_zone/until_day_on.cc
! 7c1258786879b5e505434232b35c3a56  libstdc++-v3/testsuite/std/time/time_zone/wall_cascade.cc
  62c56a128f0d03b2e348296c7a54ee3f  libstdc++-v3/testsuite/std/time/traits/is_clock.cc
  3c922068cf98b21e732c0de16c319289  libstdc++-v3/testsuite/std/time/tzdb/1.cc
  c142573e06d5c52d53f0f20e1e72e973  libstdc++-v3/testsuite/std/time/tzdb/leap_seconds.cc
diff -Nrcpad gcc-17-20260712/config/ChangeLog gcc-17-20260719/config/ChangeLog
*** gcc-17-20260712/config/ChangeLog	Sun Jul 12 22:32:05 2026
--- gcc-17-20260719/config/ChangeLog	Sun Jul 19 22:32:05 2026
***************
*** 1,3 ****
--- 1,8 ----
+ 2026-07-12  Manuel Jacob  <me@manueljacob.de>
+ 
+ 	* acx.m4 (ACX_CHECK_INSTALLED_TARGET_TOOL): Fix handling of
+ 	environment variables.
+ 
  2026-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
  	* ax_pthread.m4 (ax_pthread_check_macro) <solaris*>: Only require
diff -Nrcpad gcc-17-20260712/contrib/ChangeLog gcc-17-20260719/contrib/ChangeLog
*** gcc-17-20260712/contrib/ChangeLog	Sun Jul 12 22:32:05 2026
--- gcc-17-20260719/contrib/ChangeLog	Sun Jul 19 22:32:05 2026
***************
*** 1,3 ****
--- 1,21 ----
+ 2026-07-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* test_installed (--with-auto-host-h): New option.
+ 	(--with-et-static): Likewise.
+ 	(--with-objc): Likewise.
+ 	Generate et-static.def if --with-auto-host-h is specified.
+ 	(GCC_UNDER_TEST): Only emit to site.def if enabled.
+ 	(GXX_UNDER_TEST): Likewise.
+ 	(GFORTRAN_UNDER_TEST): Likewise.
+ 	(OBJC_UNDER_TEST): Likewise.
+ 	(et_static): Emit to site.exp if specified.
+ 
+ 2026-07-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/125956
+ 	* relpath.sh: For invalid arguments write to stderr and exit
+ 	with non-zero status.
+ 
  2026-07-09  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
  
  	* compare-all-tests: Remove opts -m31 and so on.
diff -Nrcpad gcc-17-20260712/contrib/relpath.sh gcc-17-20260719/contrib/relpath.sh
*** gcc-17-20260712/contrib/relpath.sh	Sun Jul 12 22:32:05 2026
--- gcc-17-20260719/contrib/relpath.sh	Sun Jul 19 22:32:05 2026
***************
*** 1,10 ****
  #!/bin/sh
  
! if [ "$1" = "--help" -o $# -ne 2 -o -f "$1" ]; then
      echo Usage: relpath.sh FROM TO
      echo Print the relative path from FROM to TO
      echo FROM must be a directory, but need not exist
      exit 0
  fi
  
  from="${1%%/}"
--- 1,18 ----
  #!/bin/sh
  
! usage()
! {
      echo Usage: relpath.sh FROM TO
      echo Print the relative path from FROM to TO
      echo FROM must be a directory, but need not exist
+ }
+ 
+ if [ "$1" = "--help" ]; then
+     usage
      exit 0
+ elif [ $# -ne 2 -o -f "$1" ]; then
+     usage >&2
+     exit 1
  fi
  
  from="${1%%/}"
diff -Nrcpad gcc-17-20260712/contrib/test_installed gcc-17-20260719/contrib/test_installed
*** gcc-17-20260712/contrib/test_installed	Sun Jul 12 22:32:05 2026
--- gcc-17-20260719/contrib/test_installed	Sun Jul 19 22:32:05 2026
***************
*** 15,28 ****
  # --testsuite, --srcdir will be ignored; otherwise, `/gcc/testsuite'
  # will be appended to the srcdir.
  
  # You may specify where the binaries to be tested should be picked up
  # from.  If you specify --prefix=/some/dir, gcc, g++ and gfortran will be
  # looked for at /some/dir/bin.  Each one may be overridden by
  # specifying --with-gcc=/pathname/to/gcc, --with-g++=/pathname/to/g++
  # and --with-gfortran=/pathname/to/gfortran.  If you specify --without-gcc,
! # --without-g++ or --without-gfortran, the test for the specified program
! # will be skipped.  By default, gcc, g++ and gfortran will be searched in
! # the PATH.
  
  # An additional argument may specify --tmpdir=/some/dir; by default,
  # temporaries will be stored in the current directory, where the log
--- 15,35 ----
  # --testsuite, --srcdir will be ignored; otherwise, `/gcc/testsuite'
  # will be appended to the srcdir.
  
+ # target-supports.exp depends on et-static.exp generated from auto-host.h.
+ # It is usually taken from the installed compiler, but can be specified
+ # using --with-et-static.  To support testing with a source tree newer than
+ # the installed compiler, it can also be generated from an auto-host.h
+ # specified with --with-auto-host-h.  If the actual auto-host.h is missing,
+ # /dev/null can be used to generate a fallback et-static.exp.
+ 
  # You may specify where the binaries to be tested should be picked up
  # from.  If you specify --prefix=/some/dir, gcc, g++ and gfortran will be
  # looked for at /some/dir/bin.  Each one may be overridden by
  # specifying --with-gcc=/pathname/to/gcc, --with-g++=/pathname/to/g++
  # and --with-gfortran=/pathname/to/gfortran.  If you specify --without-gcc,
! # --without-g++ --without-gfortran, or --without-objc the test for the
! # specified program  will be skipped.  By default, gcc, g++ and gfortran
! # will be searched in the PATH.
  
  # An additional argument may specify --tmpdir=/some/dir; by default,
  # temporaries will be stored in the current directory, where the log
*************** libiconv=-liconv
*** 46,51 ****
--- 53,60 ----
  while true; do
    case "$1" in
    --with-testsuite=*) testsuite=`echo "$1" | sed 's/[^=]*=//'`; shift;;
+   --with-auto-host-h=*) auto_host_h=`echo "$1" | sed 's/[^=]*=//'`; shift;;
+   --with-et-static=*) et_static=`echo "$1" | sed 's/[^=]*=//'`; shift;;
    --srcdir=*) srcdir=`echo "$1" | sed 's/[^=]*=//'`; shift;;
    --target=*) target=`echo "$1" | sed 's/[^=]*=//'`; shift;;
    --prefix=*) prefix=`echo "$1" | sed 's/[^=]*=//'`; shift;;
*************** while true; do
*** 53,58 ****
--- 62,68 ----
    --with-gcc=*) GCC_UNDER_TEST=`echo "$1" | sed 's/[^=]*=//'`; shift;;
    --with-g++=*) GXX_UNDER_TEST=`echo "$1" | sed 's/[^=]*=//'`; shift;;
    --with-gfortran=*) GFORTRAN_UNDER_TEST=`echo "$1" | sed 's/[^=]*=//'`; shift;;
+   --with-objc=*) OBJC_UNDER_TEST=`echo "$1" | sed 's/[^=]*=//'`; shift;;
    --with-alt-cc=*) ALT_CC_UNDER_TEST=`echo "$1" | sed 's/[^=]*=//'`; shift;;
    --with-alt-cxx=*) ALT_CXX_UNDER_TEST=`echo "$1" | sed 's/[^=]*=//'`; shift;;
    --with-compat-options=*) COMPAT_OPTIONS=`echo "$1" | sed 's/[^=]*=//'`; shift;;
*************** Supported arguments:
*** 77,82 ****
--- 87,94 ----
  --help                        prints this page
  
  --with-testsuite=/some/dir/gcc/testsuite   specify the testsuite directory
+ --with-auto-host-h=/some/dir/auto-host.h   specify auto-host.h
+ --with-et-static=/some/dir/et-static.exp   specify et-static.exp
  --srcdir=/some/dir            same as --with-testsuite=/some/dir/gcc/testsuite
                                [deduced from shell-script pathname]
  
*************** Supported arguments:
*** 88,93 ****
--- 100,106 ----
  --with-gcc=/some/dir/bin/gcc  use specified gcc program [gcc]
  --with-g++=/some/dir/bin/g++  use specified g++ program [g++]
  --with-gfortran=/some/dir/bin/gfortran  use specified gfortran program [gfortran]
+ --with-objc=/some/dir/bin/gcc use specified gcc program [gcc]
  --with-alt-cc=/some/compiler  use specified alternative compiler in compat tests
  --with-alt-cxx=/some/compiler use specified alternative compiler in compat tests
  --with-compat-options=opts    use specified COMPAT_OPTIONS in compat tests
*************** if test x"${testsuite+set}" != x"set" &&
*** 124,129 ****
--- 137,156 ----
    srcdir=$top_srcdir
  fi
  
+ # Prefer et-static.exp explicitly specified.  Alternatively, generate one
+ # from the specified auto-host.h.
+ if test x"${et_static+set}" != x"set" && test x"${auto_host_h+set}" = x"set"; then
+    gcc_srcdir=${srcdir}/gcc
+    awk -f ${gcc_srcdir}/et-gather.awk \
+        ${gcc_srcdir}/testsuite/lib/et-static.def > etlist
+    awk -f ${gcc_srcdir}/gen-et-static.awk -v etlist=etlist \
+        ${auto_host_h} > et-static.exp
+   et_static=et-static.exp
+ fi
+ 
+ # If neither option has been given, the testsuite will use the et-static.exp
+ # from the installed compiler.
+ 
  cat >site.exp <<EOF
  set rootme "."
  set tmpdir "${tmpdir-`${PWDCMD-pwd}`}"
*************** set srcdir "${testsuite-${srcdir}/gcc/te
*** 131,149 ****
--- 158,189 ----
  set libiconv "$libiconv"
  set CFLAGS ""
  set CXXFLAGS ""
+ EOF
+ test x"${GCC_UNDER_TEST}" = x"no" || cat >>site.exp <<EOF
  set GCC_UNDER_TEST "${GCC_UNDER_TEST-${prefix}${prefix+/bin/}\
  ${target+$target-}gcc}"
+ EOF
+ test x"${GXX_UNDER_TEST}" = x"no" || cat >>site.exp <<EOF
  set GXX_UNDER_TEST "${GXX_UNDER_TEST-${prefix}${prefix+/bin/}\
  ${target+$target-}g++}"
+ EOF
+ test x"${GFORTRAN_UNDER_TEST}" = x"no" || cat >>site.exp <<EOF
  set GFORTRAN_UNDER_TEST "${GFORTRAN_UNDER_TEST-${prefix}${prefix+/bin/}\
  ${target+$target-}gfortran}"
+ EOF
+ test x"${OBJCC_UNDER_TEST}" = x"no" || cat >>site.exp <<EOF
  set OBJC_UNDER_TEST "${OBJC_UNDER_TEST-${prefix}${prefix+/bin/}\
  ${target+$target-}gcc}"
+ EOF
+ cat >>site.exp <<EOF
  set HOSTCC "${HOSTCC-cc}"
  set HOSTCXX "${HOSTCXX-c++}"
  set HOSTCFLAGS ""
  set HOSTCXXFLAGS ""
  EOF
+ if test x${et_static+set} = xset; then
+   echo "set et_static \"${et_static}\"" >> site.exp
+ fi
  if test x${target} != x; then
    target_canonical=`$top_srcdir/config.sub $target`
    echo "set target_triplet $target_canonical" >> site.exp
diff -Nrcpad gcc-17-20260712/gcc/ChangeLog gcc-17-20260719/gcc/ChangeLog
*** gcc-17-20260712/gcc/ChangeLog	Sun Jul 12 22:32:06 2026
--- gcc-17-20260719/gcc/ChangeLog	Sun Jul 19 22:32:05 2026
***************
*** 1,3 ****
--- 1,775 ----
+ 2026-07-18  Luke Zhuang  <luke.zhuang@linux.alibaba.com>
+ 	    Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* config/riscv/riscv.md (@tlsdesc<mode>): Use individual
+ 	RVVM1QI clobbers instead of four RVVM8QI.
+ 
+ 2026-07-18  wangjue  <juewang@linux.alibaba.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_override_options_after_change): New
+ 	function.
+ 	(riscv_option_override): Call it.
+ 	(TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
+ 
+ 2026-07-18  Dusan Stojkovic  <Dusan.Stojkovic@rt-rk.com>
+ 
+ 	PR target/123883
+ 	* match.pd ((1<<N) & (1<<N) with different types): New
+ 	pattern.
+ 
+ 2026-07-18  Matt Turner  <mattst88@gmail.com>
+ 
+ 	PR target/117184
+ 	* lra-eliminations.cc (setup_can_eliminate): Mark the hard frame
+ 	pointer live when setting frame_pointer_needed.
+ 
+ 2026-07-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/126200
+ 	* config/loongarch/predicates.md
+ 	(par_const_vector_shf_set_operand): Define as special predicate.
+ 	* config/loongarch/lsx.md (lsx_vshuf4i_<lsxfmt_f>): Pass VIMODE
+ 	to the predicate of selector.
+ 
+ 2026-07-18  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/vector.md: Leverage Wvr constraint.
+ 
+ 2026-07-17  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* doc/sourcebuild.texi: Document aarch64_mbig_endian.
+ 
+ 2026-07-17  Kael Andrew Alonzo Franco  <kaelfandrew@gmail.com>
+ 
+ 	PR tree-optimization/126087
+ 	* match.pd: Move tree_expr_nonnegative_p (@1) to tree_expr_nonnegative_p@1.
+ 
+ 2026-07-17  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* doc/invoke.texi (-fopenmp-ompt, -fopenmp-ompt-detailed): Improve
+ 	wording.
+ 
+ 2026-07-17  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	* config/aarch64/aarch64.cc (aarch64_override_options): Warn if
+ 	+tme is used as an architecture feature
+ 	(aarch64_process_target_attr): Similarly, but only if TME
+ 	was previously disabled.
+ 	* doc/invoke.texi (aarch64): Remove mentions of +tme.
+ 
+ 2026-07-17  Matt Turner  <mattst88@gmail.com>
+ 
+ 	* config/alpha/alpha.cc (alpha_cannot_copy_insn_p): Do not return
+ 	false before reload_completed.  Update comment.
+ 
+ 2026-07-17  Wang Yaduo  <wangyaduo@linux.alibaba.com>
+ 
+ 	* config/riscv/riscv-cores.def (RISCV_CORE): Remove zama16b from
+ 	xt-c9501fdvt.
+ 
+ 2026-07-17  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	PR middle-end/80922
+ 	PR middle-end/106823
+ 	PR lto/107936
+ 	* lto-streamer-in.cc (lto_create_loc_map): Process diagnostic
+ 	pragmas from the linemap sections.
+ 	* lto-streamer-out.cc (location_output::produce_linemap_section):
+ 	Stream diagnostic pragmas into the linemap section.
+ 
+ 2026-07-17  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	PR lto/65536
+ 	* doc/lto.texi: Document the new LTO_section_linemap and the new
+ 	option -fltrans-linemap-file.
+ 	* lto-opts.cc (lto_write_options): Handle the new option.
+ 	* opts.cc (gen_command_line_string): Likewise.
+ 	* lto-section-in.cc (lto_section_name[]): Add new name for
+ 	LTO_section_linemap.
+ 	* lto-streamer-in.cc (get_location_from_idx): New function.
+ 	(lto_location_cache::cmp_loc): Remove.
+ 	(bp_unpack_delta): New function.
+ 	(create_loc_map): New function.
+ 	(get_loc_map): New function.
+ 	(lto_location_cache::override_loc_map): New function.
+ 	(lto_location_cache::apply_location_cache): Pervasive changes to
+ 	implement new location streaming format.
+ 	(lto_location_cache::input_location_and_block): Likewise.
+ 	(lto_location_cache::input_location): Rename argument LOC -> DEST
+ 	for clarity.
+ 	(lto_read_body_or_constructor): Handle LINEMAP_ID in the decl state.
+ 	(lto_data_in_create): Add NEED_LOCATION_CACHE argument. Rename local
+ 	variable DATA_IN to D to avoid clash with the type name.
+ 	* lto-streamer-out.cc (clear_line_info): Update for change to class
+ 	output_block.
+ 	(compute_map_hash): New function.
+ 	(class location_output): New class.
+ 	(location_output::record_location): New function.
+ 	(bp_pack_delta): New function.
+ 	(location_output::produce_linemap_section): New function.
+ 	(lto_output_location_1): Pervasive changes to implement new location
+ 	streaming format.
+ 	(copy_function_or_variable): Set the LINEMAP_ID in the decl state.
+ 	(copy_linemap_section): New function.
+ 	(copy_linemap_sections): New function.
+ 	(lto_copy_linemaps): New function.
+ 	(lto_register_linemap_for_output): New function.
+ 	(lto_output_decl_state_refs): Output the LINEMAP_ID for function
+ 	decls.
+ 	(lto_out_decl_state_written_size): Adapt for new LINEMAP_ID output.
+ 	(produce_asm_for_decls): Output the linemap section when needed.
+ 	* lto-streamer.cc (lto_get_section_name): Handle linemap sections,
+ 	which need an order suffix.
+ 	* lto-streamer.h (enum lto_section_type): Fix typo in the
+ 	comment. Add LTO_section_linemap.
+ 	(struct lto_loc_map): New struct.
+ 	(class lto_location_cache): Pervasive changes to implement new
+ 	location streaming format.
+ 	(struct lto_in_decl_state): Add LINEMAP_ID member.
+ 	(struct lto_out_decl_state): Likewise.
+ 	(struct lto_file_decl_data): Add LOC_MAP_DECL_DATA, LOC_MAPS,
+ 	and NUM_LINEMAP_SECTIONS members.
+ 	(lto_linemap_output_id): New function.
+ 	(struct output_block): Adjust members for new streaming format.
+ 	(data_in::data_in): New function.
+ 	(lto_data_in_create): Adjust prototype for new NEED_LOCATION_CACHE
+ 	argument.
+ 	(lto_register_linemap_for_output): Declare.
+ 	(lto_copy_linemaps): Declare.
+ 	* lto-wrapper.cc (run_gcc): Pass new argument -fltrans-linemap-file.
+ 	* timevar.def (TV_IPA_LTO_LINEMAP_IN): New timevar.
+ 	(TV_IPA_LTO_LINEMAP_OUT): New timevar.
+ 	(TV_IPA_LTO_LINEMAP_COPY): New timevar.
+ 
+ 2026-07-17  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	* doc/sourcebuild.texi: Document ar-link and incr-link options to
+ 	dg-lto-do directive.
+ 
+ 2026-07-17  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	* doc/sourcebuild.texi: Document dg-lto-additional-options
+ 	directive.
+ 
+ 2026-07-17  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	* diagnostic.h (diagnostic_classify_diagnostic): Adapt for removal
+ 	of return value in option_classifier::classify_diagnostic.
+ 	* diagnostics/context.h: Likewise.
+ 	* diagnostics/kinds.h (enum kind): Add trailing element to indicate
+ 	the total number of kinds.
+ 	* diagnostics/option-classifier.cc
+ 	(option_classifier::classify_diagnostic): Remove the return value,
+ 	which was not correct and which was not used anyway.
+ 	* diagnostics/option-classifier.h (class option_classifier): Adjust
+ 	prototype for classify_diagnostic.  Make the name of nested strruct
+ 	classification_change_t publicly accessible.
+ 
+ 2026-07-17  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	* input.cc (test_accessing_ordinary_linemaps): Test new
+ 	line_map_add_raw_map() functionality.
+ 
+ 2026-07-17  Neal Patalay  <nealpatalay0@gmail.com>
+ 
+ 	PR tree-optimization/126087
+ 	* match.pd: Simplify MIN and BIT_IOR compared to 0 when
+ 	one operand is non-negative.
+ 
+ 2026-07-17  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/126283
+ 	* config/i386/i386.md (bswaphi2): Add flags reg clobber.
+ 	(*bswaphi2_movbe): Add flags reg clobber.  Add ROLW alternative
+ 	and update instruction attributes.  Add preferred_for_size and
+ 	preferred_for_speed attributes.
+ 	(*bswaphi2): Ditto.
+ 	(*bswaphisi2_lowpart): Ditto.
+ 	(XCHGB -> ROLW peephole2 patterns): Remove.
+ 	(ROLW reg,8 -> BSWAP splitter): Update for added flags reg clobber.
+ 	Always split.
+ 	* config/i386/i386-expand.cc (ix86_expand_gfni_bitreverse):
+ 	Update for bswaphi2 change.
+ 
+ 2026-07-17  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	* omp-builtins.def (BUILT_IN_GOMP_HAS_MASKED_THREAD_NUM_WITH_END):
+ 	New builtin.
+ 	* omp-low.cc (lower_omp_master): Use it when -fopenmp-ompt.
+ 
+ 2026-07-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* et-gather.awk, gen-et-static.awk: New scripts.
+ 	* Makefile.in (testsuitedir): New.
+ 	(native): Depend on testsuite/et-static.exp.
+ 	(clean): Remove etlist.
+ 	(distclean): Remove et-static.exp.
+ 	(install-testsuite): New target.
+ 	(install): Depend on it.
+ 	(site.exp): Depend on testsuite/et-static.exp.
+ 	(testsuite/et-static.exp): New target.
+ 	* doc/sourcebuild.texi (Effective-Target Keywords): Document
+ 	et-static.def.
+ 	(Effective-Target Keywords, Other attributes): Document
+ 	ld_at_file.
+ 
+ 2026-07-17  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/126275
+ 	* config/i386/i386-expand.cc (ix86_expand_set_or_cpymem): Don't
+ 	use misaligned prologue if count <= epilogue size.
+ 
+ 2026-07-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/126028
+ 	* tree-vect-slp.cc (vect_slp_check_for_roots): Do not
+ 	force the BB reduction root to have an even number of lanes.
+ 	(vect_build_slp_instance): For failed discovery of a BB
+ 	reduction attempt to re-try discovery on the matching or
+ 	non-matching part.
+ 
+ 2026-07-16  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	* builtin-types.def (BT_FN_VOID_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG): New.
+ 	* omp-builtins.def (BUILT_IN_GOMP_LOOP_STATIC_WORKSHARING_DISPATCH): Use
+ 	BT_FN_VOID_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG.
+ 	(BUILT_IN_GOMP_DISTRIBUTE_STATIC_WORKSHARING_DISPATCH): Likewise.
+ 	* omp-expand.cc (expand_omp_for_static_nochunk): Pass niter, start,
+ 	incr, chunk size, and istart to the dispatch call.
+ 	(expand_omp_for_static_chunk): Likewise.
+ 
+ 2026-07-16  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/125986
+ 	* value-relation.cc (path_oracle::query): Query root oracle for
+ 	relations.
+ 
+ 2026-07-16  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* config/riscv/riscv-protos.h
+ 	(riscv_legitimize_call_address): Add a sibcall parameter.
+ 	* config/riscv/riscv.cc
+ 	(riscv_legitimize_call_address): Use a pseudo for sibcalls.
+ 	* config/riscv/riscv.md (sibcall): Pass true for sibcalls.
+ 	(sibcall_value): Likewise.
+ 	(call): Pass false for ordinary calls.
+ 	(call_value): Likewise.
+ 
+ 2026-07-16  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_regno_to_class): Map t1 to
+ 	JALR_REGS.
+ 	* config/riscv/riscv.h (RISCV_PROLOGUE_TEMP_REGNUM): Document
+ 	the SIBCALL_REGS restriction.
+ 	(REG_CLASS_CONTENTS): Remove t1 from SIBCALL_REGS.
+ 
+ 2026-07-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+ 
+ 	* tree-profile.cc (emit_assign): Append to a gimple_seq instead
+ 	of inserting on an edge.  Make the functions static.
+ 	(emit_bitwise_op): Likewise.
+ 	(instrument_decisions): Build up a local gimple_seq per edge and
+ 	insert it once instead of inserting each statement individually.
+ 
+ 2026-07-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+ 
+ 	* tree-profile.cc (emit_bitwise_op): Build/fold the operation with
+ 	gimple_build() instead of gimple_build_assign(), and return the
+ 	folded result as-is instead of always materializing a new SSA
+ 	name.
+ 	(instrument_decisions): Do not emit bitwise-or operations with a
+ 	zero constant operand.
+ 
+ 2026-07-16  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/vector.md: Leverage Wvr constraint.
+ 
+ 2026-07-16  Jeff Law  <jeffrey.law@oss.qualcomm.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_noce_conversion_profitable_p): Ignore
+ 	reg->reg copies too.
+ 
+ 2026-07-16  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-switch-conversion.cc (gen_log2): Use gimple_seq
+ 	overload of gimple_build.
+ 	(gen_pow2p): Likewise.
+ 
+ 2026-07-16  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* omp-offload.cc (omp_discover_declare_target_tgt_fn_r): Fix
+ 	the condition for anchestor + nohost handling.
+ 
+ 2026-07-16  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* expmed.cc (invert_mod2n): Fix typo in comment and add references.
+ 
+ 2026-07-16  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	PR fortran/126279
+ 	* omp-low.cc (lower_omp_target): Avoid creating a second static const
+ 	variable for the trait array used by uses_allocators.
+ 
+ 2026-07-16  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	* doc/invoke.texi (AVR Options): Fix a typo.
+ 
+ 2026-07-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* config/netbsd-elf.h (NETBSD_LINK_LD_ELF_SO_SPEC): Remove.
+ 	(NETBSD_SUBTARGET_EXTRA_SPECS): Remove netbsd_link_ld_elf_so.
+ 
+ 2026-07-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/126262
+ 	* gimple-lower-bitint.cc (build_bitint_stmt_ssa_conflicts): Treat
+ 	IFN_MUL_OVERFLOW and IFN_UBSAN_CHECK_MUL like IFN_BSWAP, regardless
+ 	of bitint_big_endian.
+ 
+ 2026-07-16  Peter Bergner  <bergner@linux.ibm.com>
+ 	    Kishan Parmar  <kishan@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000-builtin.cc (rs6000_invalid_builtin): Add
+ 	ENB_DM diagnostic.
+ 	(rs6000_builtin_is_supported): Handle ENB_DM.
+ 	* config/rs6000/rs6000-gen-builtins.cc: Update comments for new
+ 	Dense Math builtin attributes.
+ 	(bif_stanza): Add BSTZ_DM.
+ 	(stanza_map): Add "dm" stanza.
+ 	(enable_string): Add ENB_DM.
+ 	(basetype): Add BT_DMR.
+ 	(attrinfo): Add isdm, isdmint and isdmr fields.
+ 	(type_map): Add dmr1024 and ptr_dmr1024 type mappings.
+ 	(match_type): Recognize dmr1024 type.
+ 	(parse_bif_attrs): Parse dm, dmint and dmr attributes.
+ 	(complete_vector_type): Handle BT_DMR.
+ 	(write_decls): Emit ENB_DM and Dense Math builtin attribute bits
+ 	and predicates.
+ 	(write_bif_static_init): Initialize Dense Math builtin attributes
+ 	and associate dmint builtins with their internal variants.
+ 
+ 2026-07-15  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/126231
+ 	* config/i386/i386.md (*fix_trunc<mode>si_sse_2_zext): New.
+ 
+ 2026-07-15  wangjue  <juewang@linux.alibaba.com>
+ 
+ 	* config/riscv/riscv.cc (riscv_legitimize_address): Use
+ 	riscv_add_offset for scaled indexed addresses.
+ 
+ 2026-07-15  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/126110
+ 	* gimple-range-cache.cc (ranger_cache::mark_stale): Default defs
+ 	get a new timestamp to make them stale.
+ 	* gimple-range-infer.cc (infer_range_manager::add_range): When
+ 	an inferred range is added, mark the name as updated.
+ 
+ 2026-07-15  Jim Lin  <jim@andestech.com>
+ 
+ 	* config/riscv/riscv-target-attr.cc
+ 	(riscv_target_attr_parser::parse_arch): Check m_loc instead of *m_loc
+ 	before emitting the diagnostic.
+ 
+ 2026-07-15  Jim Lin  <jim@andestech.com>
+ 
+ 	* config/riscv/zicond.md: Emit any_ge instead of any_gt in the
+ 	GE/GEU if-then-else splitter.
+ 
+ 2026-07-15  Jeff Law  <jeffrey.law@oss.qualcomm.com>
+ 
+ 	Revert:
+ 	2026-06-29  Matthew Fortune  <matthew.fortune@imgtec.com>
+ 
+ 	* config/mips/mips.h (ASM_SPEC): Add placeholders for -mmxu and
+ 	-mno-mxu.
+ 	* config/mips/mips.opt: New undocumented target option.
+ 
+ 2026-07-15  Nathan Sidwell  <nathan@acm.org>
+ 
+ 	* gen-pass-instances.awk: Require only white-space before
+ 	macro invocations.
+ 
+ 2026-07-15  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* omp-low.cc (lower_private_allocate): When called on 'target'
+ 	and the allocator is a variable, obtain the device variable.
+ 	(lower_omp_target): Move processing of OMP_CLAUSE_USES_ALLOCATORS
+ 	on the device/receiver side in before the loop over clauses to
+ 	ensure the VALUE_EXPR points to uses_allocators's inited var.
+ 
+ 2026-07-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vectorizer.h (vect_transform_stmt): Return void.
+ 	* tree-vect-stmts.cc (vect_transform_stmt): Likewise.
+ 
+ 2026-07-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	* tree-vect-slp.cc (vect_bb_slp_mark_live_stmts): Enhance
+ 	dumping in the failure case.
+ 
+ 2026-07-15  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR rtl-optimization/123236
+ 	* simplify-rtx.cc (simplify_context::simplify_truncation): Handle
+ 	cases where a ZERO_EXTRACT or SIGN_EXTRACT has a different mode
+ 	to (but at least as wide as) its first operand.
+ 
+ 2026-07-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/126171
+ 	* tree-scalar-evolution.cc (scev_dfs::add_to_evolution):
+ 	Remove code argument.  Remove MINUS_EXPR handling here.
+ 	(scev_dfs::follow_ssa_edge_binary): Likewise.
+ 	(scev_dfs::follow_ssa_edge_expr): Handle MINUS_EXPR
+ 	separately here, promoting the whole operation to unsigned
+ 	instead of just the addend.
+ 
+ 2026-07-15  Andrew Stubbs  <ams@baylibre.com>
+ 
+ 	* regrename.cc (scan_rtx_address): Recurse for segment UNSPECs.
+ 
+ 2026-07-15  Luke Zhuang  <luke.zhuang@linux.alibaba.com>
+ 
+ 	* config/riscv/riscv.md (VXSAT_REGNUM): New constant.
+ 	(@tlsdesc<mode>): update clobbering.
+ 
+ 2026-07-15  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/126231
+ 	* config/i386/i386.md (*fix_trunc<mode>si_sse_zext): New.
+ 	* config/i386/sse.md (*avx512fp16_vcvtsh2<sseintconvertsignprefix>si<round_zext_name>):
+ 	Likewise.
+ 	(*avx512fp16_vcvtsh2<sseintconvertsignprefix>si_2_zext): Likewise.
+ 	(*unspec_avx512fp16_fix<vcvtt_uns_suffix>_truncsi2<round_saeonly_zext_name>): Likewise.
+ 	(*sse_cvtss2si<round_zext_name>): Likewise.
+ 	(*sse_cvtss2si_2_zext): Likewise.
+ 	(*unspec_sse_cvttss2si<round_saeonly_zext_name>): Likewise.
+ 	(*sse_cvttss2si<round_saeonly_zext_name>): Likewise.
+ 	(*avx512f_vcvtss2usi<round_zext_name>): Likewise.
+ 	(*unspec_avx512f_vcvttss2usi<round_saeonly_zext_name>): Likewise.
+ 	(*avx512f_vcvttss2usi<round_saeonly_zext_name>): Likewise.
+ 	(*avx512f_vcvtsd2usi<round_zext_name>): Likewise.
+ 	(*unspec_avx512f_vcvttsd2usi<round_saeonly_zext_name>):
+ 	Likewise.
+ 	(*avx512f_vcvttsd2usi<round_saeonly_zext_name>): Likewise.
+ 	(*sse2_cvtsd2si<round_zext_name>): Likewise.
+ 	(*sse2_cvtsd2si_2_zext): Likewise.
+ 	(*unspec_sse2_cvttsd2si<round_saeonly_zext_name>): Likewise.
+ 	(*sse2_cvttsd2si<round_saeonly_zext_name>): Likewise.
+ 	(*avx10_2_vcvttsd2<sat_cvt_sign_prefix>sissi<round_saeonly_zext_name>):
+ 	Likewise.
+ 	(*avx10_2_vcvttss2<sat_cvt_sign_prefix>sissi<round_saeonly_zext_name>):
+ 	Likewise.
+ 	* config/i386/subst.md (round_zext_name): Likewise.
+ 	(round_zext_constraint): Likewise.
+ 	(round_zext_constraint2): Likewise.
+ 	(round_zext_nimm_predicate): Likewise.
+ 	(round_zext_nimm_scalar_predicate): Likewise.
+ 	(round_zext_op2): Likewise.
+ 	(round_zext): Likewise.
+ 	(round_saeonly_zext_name): Likewise.
+ 	(round_saeonly_zext_constraint): Likewise.
+ 	(round_saeonly_zext_constraint2): Likewise.
+ 	(round_saeonly_zext_nimm_scalar_predicate): Likewise.
+ 	(round_saeonly_zext_op2): Likewise.
+ 	(round_saeonly_zext): Likewise.
+ 
+ 2026-07-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/126257
+ 	* match.pd (x+x -> x*2): Only optimize if 2 is representable in the
+ 	type.
+ 
+ 2026-07-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/120635
+ 	* doc/extend.texi: Document variant spelling of
+ 	standard attributes and that alternate namespace
+ 	spelling for clang namespace is _Clang rather
+ 	than __clang__.  For no_specializations use
+ 	_Clang:: rather than __clang__::.
+ 
+ 2026-07-15  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* omp-expand.cc (expand_omp_target): For 'device_type(host)',
+ 	invoke with device(omp_initial_device)'.
+ 	* omp-low.cc (create_omp_child_function): Take host_only
+ 	argument to prevent generating offload code.
+ 	(scan_omp_parallel, scan_omp_task, scan_omp_target, scan_omp_teams,
+ 	lower_omp_target): Update call.
+ 	* omp-offload.cc (omp_discover_declare_target_tgt_fn_r,
+ 	omp_discover_declare_target_fn_r): Do not add implicit 'declare
+ 	target' to target regions with 'device_type(host)'.
+ 
+ 2026-07-15  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	PR middle-end/126203
+ 	PR middle-end/126221
+ 	PR middle-end/126232
+ 	* optabs.cc (emit_cmp_and_jump_insns): Take the masked_op mode
+ 	from TREE_TYPE (masked_op).
+ 
+ 2026-07-14  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* gimplify.cc (gimplify_omp_workshare): Handle 'device_type(nohost)'
+ 	on 'target'.
+ 	* omp-low.cc (lower_omp_target): Remove sorry for this case.
+ 
+ 2026-07-14  Karl Meakin  <karl.meakin@arm.com>
+ 
+ 	PR target/126064
+ 	* config/aarch64/aarch64-neon-builtins-base.cc: Compare
+ 	`arg_type` and `TREE_TYPE (b)` using `types_compatible_p` rather
+ 	than comparing their pointer addresses.
+ 
+ 2026-07-14  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	* doc/sourcebuild.texi (arm_v8_1m_mve_link): Document.
+ 
+ 2026-07-14  Cem Akgok  <cemakgok@gmail.com>
+ 
+ 	PR tree-optimization/126225
+ 	* tree-vect-loop.cc (vect_slp_induction_reuse_p): New function.
+ 	(vectorizable_induction): Validate SLP induction IV reuse.  Reuse
+ 	generated IVs cyclically when filling the SLP group.
+ 
+ 2026-07-14  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.cc (darwin_globalize_label): Handle Protocol
+ 	references.
+ 	(darwin_label_is_anonymous_local_objc_name): Likewise.
+ 
+ 2026-07-14  Naveen  <naveen.siddegowda@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/102202
+ 	* gimple-fold.cc (gimple_fold_builtin_memset): Hoist
+ 	tree_to_uhwi (len) before the INTEGER_CST guard.  Fold
+ 	length-one memset calls through arbitrary pointer destinations.
+ 	Build a ref-all MEM_REF at offset zero and preserve the call
+ 	result when it is used.
+ 
+ 2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/126084
+ 	* gimple-lower-bitint.cc: Include "attribs.h" and "asan.h".
+ 	(gimple_lower_bitint): Use asan_expand_poison_ifn to lower
+ 	.ASAN_POISON calls with large/huge _BitInt lhs.
+ 	* asan.cc (report_error_func): Set *nargs and use _n builtin
+ 	even if size is not a power of two or larger than 16.
+ 	(asan_expand_poison_ifn): Handle nargs == 2.
+ 
+ 2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 	    H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR tree-optimization/120201
+ 	* cfgexpand.cc (expand_used_vars): Set data.asan_alignb to
+ 	maximum of itself and crtl->stack_alignment_needed
+ 	/ BITS_PER_UNIT.
+ 
+ 2026-07-14  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	PR target/123625
+ 	PR target/121957
+ 	* tree-outof-ssa.cc (split_overlapping_partition_decls): New function.
+ 	Use use_register_for_decl to identify memory partitions.
+ 	(remove_ssa_form): Call split_overlapping_partition_decls.
+ 
+ 2026-07-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/126194
+ 	* gimple-ssa-pta-constraints.cc (find_func_aliases_for_call):
+ 	Only ignore calls to delete if DECL_IS_REPLACEABLE_OPERATOR.
+ 
+ 2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* asan.h (asan_var_and_redzone_size): Fix comment typo,
+ 	occupis -> occupies.
+ 
+ 2026-07-14  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/126202
+ 	* alias.cc (static_reg_base_value): Revert commit e754b70fe54.
+ 	(find_base_term): Likewise.
+ 	* alias.h (find_base_term): Likewise.
+ 	* function.cc (thread_prologue_and_epilogue_insns): Likewise.
+ 	* rtl.h (static_reg_base_value): Likewise.
+ 	* config/i386/i386.cc (stack_access_data): Likewise.
+ 	(ix86_find_all_reg_uses_1): Likewise.
+ 	(ix86_find_all_reg_uses): Likewise.
+ 	(ix86_access_stack_p): Likewise.
+ 	(ix86_need_alignment_p_2): Likewise.
+ 	(ix86_need_alignment_p_1): Likewise.
+ 	(ix86_need_alignment_p): Likewise.
+ 	(ix86_update_stack_alignment): Likewise.
+ 	(ix86_find_max_used_stack_alignment): Likewise.
+ 	(ix86_update_stack_alignment_2): Removed.
+ 	(ix86_update_stack_alignment_1): Likewise.
+ 
+ 2026-07-14  Pan Li  <pan2.li@intel.com>
+ 
+ 	* config/riscv/vector.md: Leverage Wvr constraint.
+ 
+ 2026-07-13  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	PR driver/124058
+ 	* gcc-diagnostic-spec.cc (nowarn_spec_t::nowarn_spec_t):
+ 	Remove leftover reference to OPT_Wuse_after_free.
+ 
+ 2026-07-13  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	PR driver/124058
+ 	* common.opt (Wuse-after-free): Make an alias for
+ 	-Wuse-after-free=1.
+ 	* doc/invoke.texi: Document alias.
+ 	* gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer):
+ 	Use OPT_Wuse_after_free_.
+ 
+ 2026-07-13  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR target/120165
+ 	* lra-constraints.cc (virtual_reg_p, contains_virtual_reg_p): New.
+ 	(reg_has_incdec_p): Ditto.
+ 	(lra_constraints): Use reg_has_incdec_p and contains_virtual_reg_p
+ 	to switch off the equiv.
+ 
+ 2026-07-13  Nathan Sidwell  <nathan@acm.org>
+ 
+ 	* print-rtl.cc (rtx_writer::print_rtx_operand_code_i): Don't
+ 	fallback to UNSPEC enums if there are any UNSPECV enums.
+ 	(print_exp): Print unspec/unspecv name, when available.
+ 
+ 2026-07-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/120635
+ 	* doc/extend.texi (no_specializations): Document new
+ 	attribute.
+ 	* doc/invoke.texi (-Wno-invalid-specialization): Document new
+ 	warning.
+ 
+ 2026-07-13  Odysseas Georgoudis  <odygrd@hotmail.com>
+ 
+ 	PR tree-optimization/113894
+ 	* match.pd: Add simplifications for branchless conditional negate
+ 	and sign-test absolute value idioms.
+ 
+ 2026-07-13  Oleg Tolmatcev  <oleg.tolmatcev@gmail.com>
+ 
+ 	PR target/78799
+ 	* config/i386/i386.cc (function_value_ms_64): Do not treat
+ 	integral 16-byte values as SSE returns.
+ 	(ix86_return_in_memory): Likewise avoid treating integral 16-byte
+ 	values as XMM returns.
+ 
+ 2026-07-13  Jeevitha Palanisamy  <jeevitha@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000-call.cc (rs6000_return_in_memory): Handle
+ 	TDOmode and emit "Dense Math" diagnostics.
+ 	(rs6000_function_arg): Reject TDOmode function parameters and
+ 	emit "Dense Math" diagnostics.
+ 	* config/rs6000/rs6000-modes.def: Add TDOmode.
+ 
+ 2026-07-13  Dylan Rees  <dylan.rees@arm.com>
+ 
+ 	* cse.cc (struct cse_vec_duplicate_match): New struct.
+ 	(struct cse_basic_block_data): New member added.
+ 	(cse_prescan_cache_vec_dup): New function to cache any vector
+ 	duplications and check for potential matches.
+ 	(cse_prescan_path): Extended pre_scan loop to cache vector
+ 	duplication matches + New loop added to assign a list of
+ 	matches to a block of data inside new struct member.
+ 	(cse_main): New loop to emit wider vector duplication earlier
+ 	and update narrower vector duplicate to SUBREG insn.
+ 
+ 2026-07-13  Dylan Rees  <dylan.rees@arm.com>
+ 
+ 	* config/aarch64/aarch64-builtins.cc (aarch64_fold_lo_call_to_hi):
+ 	New branch to check for uniform vectors, extend and then add
+ 	them to the new highpart builtin call.
+ 
+ 2026-07-13  Josef Melcr  <josef.melcr@suse.com>
+ 
+ 	PR ipa/125121
+ 	* cgraph.cc (cgraph_edge::make_callback): Add missing call to
+ 	duplication hooks.
+ 	* ipa-prop.cc (init_callback_edge_summary): Remove function.
+ 	(ipa_compute_jump_functions_for_edge): Remove call to
+ 	init_callback_edge_summary, fix comment.
+ 	(ipa_edge_args_sum_t::duplicate): Fix the initialization of jump
+ 	functions vector for callback edges.
+ 
+ 2026-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* config/t-sol2 (install-clearcap-map): Install as clearcap.map.
+ 
+ 2026-07-13  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	* doc/extend.texi (Common Attributes): Delete instances of
+ 	extra "the".
+ 	* doc/invoke.texi (Visium Options): Likewise.
+ 	* doc/tree-ssa.texi (SSA Operands): Likewise.
+ 
+ 2026-07-13  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	* doc/invoke.texi (Options Summary) [C Language Options]:
+ 	Group --ansi with -ansi since they are documented together.
+ 	Correctly alphabetize -ffso-struct.
+ 	(C Dialect Options): Likeise correctly alphabetize -ffso-struct.
+ 
+ 2026-07-13  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	* doc/invoke.texi (Option Summary): Add -fdeps-file, -fdeps-format,
+ 	and -fdeps-target.
+ 	(C Dialect Options): Properly alphabetize entries for the above
+ 	options, group them together, move the introductory paragraph
+ 	into the discussion of this group of items, and make the docs
+ 	more descriptive.
+ 
+ 2026-07-12  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* config/riscv/riscv.md (*<any_extract:optab><GPR:mode>3):
+ 	Remove (clobber (match_scratch)) and use operand 0 as the
+ 	intermediate destination for the shift-left half of the split.
+ 
+ 2026-07-12  Kael Andrew Alonzo Franco  <kaelfandrew@gmail.com>
+ 
+ 	PR tree-optimization/104280
+ 	* match.pd: Remove redundant build_one_cst (type) [PR104280]
+ 
+ 2026-07-12  Kael Andrew Alonzo Franco  <kaelfandrew@gmail.com>
+ 
+ 	PR tree-optimization/114009
+ 	* match.pd: Remove redundant build_zero_cst (type) [PR114009]
+ 
+ 2026-07-12  Kael Andrew Alonzo Franco  <kaelfandrew@gmail.com>
+ 
+ 	* match.pd: Remove one build_minus_one_cst (type) in r15-6257.
+ 
+ 2026-07-12  Surya Kumari Jangala  <jskumari@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000-cpus.def (FUTURE_MASKS_SERVER): Add OPTION_MASK_DMF.
+ 	(POWERPC_MASKS): Likewise.
+ 	* config/rs6000/rs6000.cc (rs6000_option_override_internal): Enable
+ 	OPTION_MASK_DMF by default when TARGET_FUTURE is set and the
+ 	flag was not explicitly given; emit an error and clear the flag
+ 	when -mdense-math is requested on a non-future target.
+ 	(rs6000_opt_masks): Add "dense-math" entry for OPTION_MASK_DMF.
+ 	* config/rs6000/rs6000.opt (mdense-math): New option backed by Mask(DMF).
+ 	* config/rs6000/rs6000.opt.urls: Regenerated.
+ 	* doc/invoke.texi: Add -mdense-math.
+ 
+ 2026-07-12  MITSUNARI Shigeo  <herumi@nifty.com>
+ 
+ 	* config/i386/i386.md (*bmi2_umul<mode>3_highpart): New pattern.
+ 
+ 2026-07-12  MITSUNARI Shigeo  <herumi@nifty.com>
+ 
+ 	* expmed.cc (expand_wide_mulh_udiv): New function.
+ 	(expand_divmod): Use it for unsigned constant division needing a
+ 	wide multiplier on 64-bit targets, when no more expensive than the
+ 	sub/shift/add sequence.
+ 
  2026-07-11  Surya Kumari Jangala  <jskumari@linux.ibm.com>
  
  	Revert:
diff -Nrcpad gcc-17-20260712/gcc/DATESTAMP gcc-17-20260719/gcc/DATESTAMP
*** gcc-17-20260712/gcc/DATESTAMP	Sun Jul 12 22:32:06 2026
--- gcc-17-20260719/gcc/DATESTAMP	Sun Jul 19 22:32:05 2026
***************
*** 1 ****
! 20260712
--- 1 ----
! 20260719
diff -Nrcpad gcc-17-20260712/gcc/Makefile.in gcc-17-20260719/gcc/Makefile.in
*** gcc-17-20260712/gcc/Makefile.in	Sun Jul 12 22:32:06 2026
--- gcc-17-20260719/gcc/Makefile.in	Sun Jul 19 22:32:05 2026
*************** plugin_resourcesdir = $(libsubdir)/plugi
*** 689,694 ****
--- 689,696 ----
  plugin_includedir = $(plugin_resourcesdir)/include
  # Directory in which plugin specific executables are installed
  plugin_bindir = $(libexecsubdir)/plugin
+ # Directory where files for installed testing are installed
+ testsuitedir = $(libsubdir)/testsuite
  # Used to produce a relative $(gcc_tooldir) in gcc.o
  ifeq ($(enable_as_accelerator),yes)
  unlibsubdir = ../../../../..
*************** start.encap: native xgcc$(exeext) cpp$(e
*** 2288,2294 ****
  rest.encap: lang.rest.encap
  # This is what is made with the host's compiler
  # whether making a cross compiler or not.
! native: config.status auto-host.h build-@POSUB@ $(LANGUAGES) \
  	$(EXTRA_PROGRAMS) $(COLLECT2) lto-wrapper$(exeext) \
  	gcc-ar$(exeext) gcc-nm$(exeext) gcc-ranlib$(exeext)
  
--- 2290,2297 ----
  rest.encap: lang.rest.encap
  # This is what is made with the host's compiler
  # whether making a cross compiler or not.
! native: config.status auto-host.h testsuite/et-static.exp build-@POSUB@ \
! 	$(LANGUAGES) \
  	$(EXTRA_PROGRAMS) $(COLLECT2) lto-wrapper$(exeext) \
  	gcc-ar$(exeext) gcc-nm$(exeext) gcc-ranlib$(exeext)
  
*************** clean: mostlyclean lang.clean
*** 4063,4068 ****
--- 4066,4072 ----
  	-rm -f libgcc_s*
  	-rm -f libunwind*
  	-rm -f config.h tconfig.h bconfig.h tm_p.h tm.h
+ 	-rm -f etlist
  	-rm -f options.cc options.h optionlist
  	-rm -f cs-*
  	-rm -f doc/*.dvi
*************** distclean: clean lang.distclean
*** 4082,4087 ****
--- 4086,4092 ----
  	-rm -f TAGS */TAGS
  	-rm -f *.asm
  	-rm -f site.exp site.bak testsuite/site.exp testsuite/site.bak
+ 	-rm -f testsuite/et-static.exp
  	-rm -f testsuite/*.log testsuite/*.sum
  	-cd testsuite && rm -f x *.x *.x? *.exe *.rpo *.o *.s *.S *.cc
  	-cd testsuite && rm -f *.out *.gcov *$(coverageexts)
*************** maintainer-clean:
*** 4109,4115 ****
  # broken is small.
  install: install-common $(INSTALL_HEADERS) \
      install-cpp install-man install-info install-@POSUB@ \
!     install-driver install-lto-wrapper install-gcc-ar
  
  ifeq ($(enable_plugin),yes)
  install: install-plugin
--- 4114,4120 ----
  # broken is small.
  install: install-common $(INSTALL_HEADERS) \
      install-cpp install-man install-info install-@POSUB@ \
!     install-driver install-lto-wrapper install-gcc-ar install-testsuite
  
  ifeq ($(enable_plugin),yes)
  install: install-plugin
*************** install-gcc-ar: installdirs gcc-ar$(exee
*** 4580,4585 ****
--- 4585,4596 ----
  	  done; \
  	fi
  
+ # Install files needed for installed testing.
+ install-testsuite: testsuite/et-static.exp auto-host.h installdirs
+ 	$(mkinstalldirs) $(DESTDIR)$(testsuitedir)
+ 	$(INSTALL_DATA) testsuite/et-static.exp $(DESTDIR)$(testsuitedir)/et-static.exp
+ 	$(INSTALL_DATA) auto-host.h $(DESTDIR)$(testsuitedir)/auto-host.h
+ 
  # Cancel installation by deleting the installed files.
  uninstall: lang.uninstall
  	-rm -rf $(DESTDIR)$(libsubdir)
*************** uninstall: lang.uninstall
*** 4606,4612 ****
  
  target_subdir = @target_subdir@
  
! site.exp: ./config.status Makefile
  	@echo "Making a new config file..."
  	-@rm -f ./site.tmp
  	@$(STAMP) site.exp
--- 4617,4623 ----
  
  target_subdir = @target_subdir@
  
! site.exp: ./config.status Makefile testsuite/et-static.exp
  	@echo "Making a new config file..."
  	-@rm -f ./site.tmp
  	@$(STAMP) site.exp
*************** site.exp: ./config.status Makefile
*** 4689,4694 ****
--- 4700,4711 ----
  		-e '1,/^## All variables above are.*##/ d' >> site.exp
  	-@rm -f ./site.tmp
  
+ testsuite/et-static.exp: $(srcdir)/et-gather.awk $(srcdir)/gen-et-static.awk \
+ 	$(srcdir)/testsuite/lib/et-static.def Makefile auto-host.h
+ 	$(AWK) -f $(srcdir)/et-gather.awk  $(srcdir)/testsuite/lib/et-static.def > etlist
+ 	-test -d $(TESTSUITEDIR) || mkdir $(TESTSUITEDIR)
+ 	$(AWK) -f $(srcdir)/gen-et-static.awk -v etlist=etlist auto-host.h > $@
+ 
  CHECK_TARGETS = @check_languages@
  
  check: $(CHECK_TARGETS)
diff -Nrcpad gcc-17-20260712/gcc/ada/ChangeLog gcc-17-20260719/gcc/ada/ChangeLog
*** gcc-17-20260712/gcc/ada/ChangeLog	Sun Jul 12 22:32:06 2026
--- gcc-17-20260719/gcc/ada/ChangeLog	Sun Jul 19 22:32:05 2026
***************
*** 1,3 ****
--- 1,9 ----
+ 2026-07-17  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* sem_attr.adb (Resolve_Attribute) <Attribute_Reduce>: Perform the
+ 	full resolution of the reducer even if it is not overloaded, but do
+ 	not resolve the prefix if it is an aggregate
+ 
  2026-07-10  Eric Botcazou  <ebotcazou@adacore.com>
  
  	* exp_disp.adb (Expand_Dispatching_Call): Reenable the suppression
diff -Nrcpad gcc-17-20260712/gcc/ada/sem_attr.adb gcc-17-20260719/gcc/ada/sem_attr.adb
*** gcc-17-20260712/gcc/ada/sem_attr.adb	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/ada/sem_attr.adb	Sun Jul 19 22:32:06 2026
*************** package body Sem_Attr is
*** 13198,13208 ****
                 function Is_Reducer_Subprogram (E : Entity_Id) return Boolean;
                 --  Return whether E is a reducer subprogram (RM 4.5.10(11-13))
  
-                function Make_Array_Type
-                  (Index, Value : Entity_Id) return Entity_Id;
-                --  This function returns a simple array type to resolve the
-                --  array aggregate.
- 
                 -----------------------
                 -- Get_Value_Subtype --
                 -----------------------
--- 13198,13203 ----
*************** package body Sem_Attr is
*** 13234,13239 ****
--- 13229,13238 ----
                       It         : Interp;
  
                    begin
+                      if not Is_Overloaded (Reducer_N) then
+                         return;
+                      end if;
+ 
                       Get_First_Interp (Reducer_N, I, It);
                       while Present (It.Nam) loop
                          if Is_Reducer_Subprogram (It.Nam) then
*************** package body Sem_Attr is
*** 13333,13354 ****
                 --  Start of processing for Get_Value_Subtype
  
                 begin
-                   --  In case the reducer is not overloaded, check directly
-                   --  its second formal for the value subtype.
- 
-                   if not Is_Overloaded (Reducer_N) then
-                      if Is_Reducer_Subprogram (Entity (Reducer_N)) then
-                         return Etype (Next_Formal
-                                        (First_Formal (Entity (Reducer_N))));
- 
-                      --  Return any type to signal the caller that no proper
-                      --  reducer subprogram was found.
- 
-                      else
-                         return Any_Type;
-                      end if;
-                   end if;
- 
                    --  RM 4.5.10(11/5): the reducer subprogram is required to be
                    --  subtype conformant with one of the following profiles:
  
--- 13332,13337 ----
*************** package body Sem_Attr is
*** 13627,13657 ****
                    end if;
                 end Is_Reducer_Subprogram;
  
-                ---------------------
-                -- Make_Array_Type --
-                ---------------------
- 
-                function Make_Array_Type
-                  (Index, Value : Entity_Id) return Entity_Id
-                is
-                   Array_Type : constant Entity_Id := Make_Temporary (Loc, 'A');
-                   Range_N    : constant Node_Id :=
-                     Make_Range (Loc,
-                       Low_Bound  => Type_Low_Bound (Index),
-                       High_Bound => Type_High_Bound (Index));
-                begin
-                   Set_In_List (Range_N);
-                   Set_Etype (Range_N, Index);
- 
-                   Set_Etype (Array_Type, Array_Type);
-                   Set_Scope (Array_Type, Find_Enclosing_Scope (N));
-                   Mutate_Ekind (Array_Type, E_Array_Type);
-                   Set_Component_Type (Array_Type, Value);
-                   Set_First_Index (Array_Type, Range_N);
- 
-                   return Array_Type;
-                end Make_Array_Type;
- 
                 --  Local variables
  
                 Reducer_E : Entity_Id;
--- 13610,13615 ----
*************** package body Sem_Attr is
*** 13779,13793 ****
                 end if;
  
                 --  Complete the resolution of the reduction expression by
!                --  resolving the initial expression and array aggregate.
  
                 Resolve (Init_Value_Expr, Accum_Typ);
  
!                if Nkind (P) = N_Aggregate then
!                   Resolve_Aggregate (P,
!                     Make_Array_Type (Index => Standard_Positive,
!                                      Value => Value_Typ));
!                else
                    Resolve (P);
                 end if;
              end;
--- 13737,13749 ----
                 end if;
  
                 --  Complete the resolution of the reduction expression by
!                --  resolving the initial expression, and the prefix if it
!                --  is not an aggregate, since the aggregate is only meant
!                --  to be a placeholder for the iterated association.
  
                 Resolve (Init_Value_Expr, Accum_Typ);
  
!                if Nkind (P) /= N_Aggregate then
                    Resolve (P);
                 end if;
              end;
diff -Nrcpad gcc-17-20260712/gcc/algol68/ChangeLog gcc-17-20260719/gcc/algol68/ChangeLog
*** gcc-17-20260712/gcc/algol68/ChangeLog	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/algol68/ChangeLog	Sun Jul 19 22:32:06 2026
***************
*** 1,3 ****
--- 1,12 ----
+ 2026-07-16  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* ga68.texi (POSIX files): Fix typo.
+ 
+ 2026-07-14  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* ga68-coding-guidelines.texi (Conditional clauses): Fix typo
+ 	if-parts -> else-parts.
+ 
  2026-07-05  Jose E. Marchesi  <jemarch@gnu.org>
  
  	* a68-low-units.cc (a68_lower_denotation): Check for denotations
diff -Nrcpad gcc-17-20260712/gcc/algol68/ga68-coding-guidelines.texi gcc-17-20260719/gcc/algol68/ga68-coding-guidelines.texi
*** gcc-17-20260712/gcc/algol68/ga68-coding-guidelines.texi	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/algol68/ga68-coding-guidelines.texi	Sun Jul 19 22:32:06 2026
*************** when written on a single line, just do i
*** 557,567 ****
  Start the enquiry clause in the if-part of a conditional clause right
  after the @code{if} symbol, not in the next line.
  
! The serial clauses in the then- and if-parts of the conditional clause
  shall be indented five positions right, which is the length of both
  the @code{then} and @code{else} symbols plus one.
  
! The first declaration or unit in the then- and if-parts shall be
  placed in the same line than the @code{then} and @code{else} symbols,
  respectively.
  
--- 557,567 ----
  Start the enquiry clause in the if-part of a conditional clause right
  after the @code{if} symbol, not in the next line.
  
! The serial clauses in the then- and else-parts of the conditional clause
  shall be indented five positions right, which is the length of both
  the @code{then} and @code{else} symbols plus one.
  
! The first declaration or unit in the then- and else-parts shall be
  placed in the same line than the @code{then} and @code{else} symbols,
  respectively.
  
diff -Nrcpad gcc-17-20260712/gcc/algol68/ga68.texi gcc-17-20260719/gcc/algol68/ga68.texi
*** gcc-17-20260712/gcc/algol68/ga68.texi	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/algol68/ga68.texi	Sun Jul 19 22:32:06 2026
*************** Create a file with name @code{pathname}.
*** 3240,3246 ****
  a @code{@B{bits}} value containing a bit pattern that determines the
  permissions on the created file.  The bit pattern has the form
  @code{8rUGO}, where @code{U} reflects the permissions of the user who
! owns the file, @code{U} reflects the permissions of the users
  pertaining to the file's group, and @code{O} reflects the permissions
  of all other users.  The permission bits are 1 for execute, 2 for
  write and 4 for read.  If the file is successfully created then this
--- 3240,3246 ----
  a @code{@B{bits}} value containing a bit pattern that determines the
  permissions on the created file.  The bit pattern has the form
  @code{8rUGO}, where @code{U} reflects the permissions of the user who
! owns the file, @code{G} reflects the permissions of the users
  pertaining to the file's group, and @code{O} reflects the permissions
  of all other users.  The permission bits are 1 for execute, 2 for
  write and 4 for read.  If the file is successfully created then this
diff -Nrcpad gcc-17-20260712/gcc/alias.cc gcc-17-20260719/gcc/alias.cc
*** gcc-17-20260712/gcc/alias.cc	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/alias.cc	Sun Jul 19 22:32:06 2026
*************** static GTY((deletable)) vec<rtx, va_gc>
*** 232,237 ****
--- 232,240 ----
  #define UNIQUE_BASE_VALUE_FP	-3
  #define UNIQUE_BASE_VALUE_HFP	-4
  
+ #define static_reg_base_value \
+   (this_target_rtl->x_static_reg_base_value)
+ 
  #define REG_BASE_VALUE(X)					\
    (REGNO (X) < vec_safe_length (reg_base_value)			\
     ? (*reg_base_value)[REGNO (X)] : 0)
*************** find_base_term (rtx x, vec<std::pair<cse
*** 2062,2068 ****
  /* Wrapper around the worker above which removes locs from visited VALUEs
     to avoid visiting them multiple times.  We unwind that changes here.  */
  
! rtx
  find_base_term (rtx x)
  {
    auto_vec<std::pair<cselib_val *, struct elt_loc_list *>, 32> visited_vals;
--- 2065,2071 ----
  /* Wrapper around the worker above which removes locs from visited VALUEs
     to avoid visiting them multiple times.  We unwind that changes here.  */
  
! static rtx
  find_base_term (rtx x)
  {
    auto_vec<std::pair<cselib_val *, struct elt_loc_list *>, 32> visited_vals;
diff -Nrcpad gcc-17-20260712/gcc/alias.h gcc-17-20260719/gcc/alias.h
*** gcc-17-20260712/gcc/alias.h	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/alias.h	Sun Jul 19 22:32:06 2026
*************** int compare_base_decls (tree, tree);
*** 42,48 ****
  bool refs_same_for_tbaa_p (tree, tree);
  bool mems_same_for_tbaa_p (rtx, rtx);
  bool view_converted_memref_p (tree);
- extern rtx find_base_term (rtx);
  
  /* This alias set can be used to force a memory to conflict with all
     other memories, creating a barrier across which no memory reference
--- 42,47 ----
diff -Nrcpad gcc-17-20260712/gcc/asan.cc gcc-17-20260719/gcc/asan.cc
*** gcc-17-20260712/gcc/asan.cc	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/asan.cc	Sun Jul 19 22:32:06 2026
*************** report_error_func (bool is_store, bool r
*** 2536,2543 ****
        *nargs = 2;
        return builtin_decl_implicit (report[recover_p][is_store][5]);
      }
-   *nargs = 1;
    int size_log2 = exact_log2 (size_in_bytes);
    return builtin_decl_implicit (report[recover_p][is_store][size_log2]);
  }
  
--- 2536,2548 ----
        *nargs = 2;
        return builtin_decl_implicit (report[recover_p][is_store][5]);
      }
    int size_log2 = exact_log2 (size_in_bytes);
+   if (size_log2 == -1 || size_log2 >= 5)
+     {
+       *nargs = 2;
+       return builtin_decl_implicit (report[recover_p][is_store][5]);
+     }
+   *nargs = 1;
    return builtin_decl_implicit (report[recover_p][is_store][size_log2]);
  }
  
*************** asan_expand_poison_ifn (gimple_stmt_iter
*** 4380,4387 ****
  	{
  	  tree fun = report_error_func (store_p, recover_p, tree_to_uhwi (size),
  					&nargs);
! 	  call = gimple_build_call (fun, 1,
! 				    build_fold_addr_expr (shadow_var));
  	}
        gimple_set_location (call, gimple_location (use));
        gimple *call_to_insert = call;
--- 4385,4396 ----
  	{
  	  tree fun = report_error_func (store_p, recover_p, tree_to_uhwi (size),
  					&nargs);
! 	  call = gimple_build_call (fun, nargs,
! 				    build_fold_addr_expr (shadow_var),
! 				    nargs == 2
! 				    ? fold_convert (pointer_sized_int_node,
! 						    size)
! 				    : NULL_TREE);
  	}
        gimple_set_location (call, gimple_location (use));
        gimple *call_to_insert = call;
diff -Nrcpad gcc-17-20260712/gcc/asan.h gcc-17-20260719/gcc/asan.h
*** gcc-17-20260712/gcc/asan.h	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/asan.h	Sun Jul 19 22:32:06 2026
*************** asan_red_zone_size (unsigned int size)
*** 158,164 ****
    return c ? 2 * ASAN_RED_ZONE_SIZE - c : ASAN_RED_ZONE_SIZE;
  }
  
! /* Return how much a stack variable occupis on a stack
     including a space for red zone.  */
  
  inline unsigned HOST_WIDE_INT
--- 158,164 ----
    return c ? 2 * ASAN_RED_ZONE_SIZE - c : ASAN_RED_ZONE_SIZE;
  }
  
! /* Return how much a stack variable occupies on a stack
     including a space for red zone.  */
  
  inline unsigned HOST_WIDE_INT
diff -Nrcpad gcc-17-20260712/gcc/builtin-types.def gcc-17-20260719/gcc/builtin-types.def
*** gcc-17-20260712/gcc/builtin-types.def	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/builtin-types.def	Sun Jul 19 22:32:06 2026
*************** DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_UINT_LON
*** 945,950 ****
--- 945,952 ----
  DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
  		     BT_BOOL, BT_UINT, BT_PTR_ULONGLONG, BT_ULONGLONG,
  		     BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
+ DEF_FUNCTION_TYPE_5 (BT_FN_VOID_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG,
+ 		     BT_VOID, BT_ULONGLONG, BT_ULONGLONG, BT_ULONGLONG, BT_ULONGLONG, BT_ULONGLONG)
  
  DEF_FUNCTION_TYPE_6 (BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG,
  		     BT_INT, BT_STRING, BT_SIZE, BT_INT, BT_SIZE,
diff -Nrcpad gcc-17-20260712/gcc/c/ChangeLog gcc-17-20260719/gcc/c/ChangeLog
*** gcc-17-20260712/gcc/c/ChangeLog	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/c/ChangeLog	Sun Jul 19 22:32:06 2026
***************
*** 1,3 ****
--- 1,11 ----
+ 2026-07-15  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	PR c/122748
+ 	* c-parser.cc (c_parser_omp_clause_allocate): Avoid ICE
+ 	when allocator is an error_mark_node.
+ 	(c_parser_omp_clause_uses_allocators): Mark trait var
+ 	as read to avoid 'unused but set' warning.
+ 
  2026-07-08  Martin Uecker  <uecker@tugraz.at>
  
  	* c-tree.h (zero_length_array_type_p,
diff -Nrcpad gcc-17-20260712/gcc/c/c-parser.cc gcc-17-20260719/gcc/c/c-parser.cc
*** gcc-17-20260712/gcc/c/c-parser.cc	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/c/c-parser.cc	Sun Jul 19 22:32:06 2026
*************** c_parser_omp_clause_allocate (c_parser *
*** 19640,19650 ****
  	  location_t expr_loc = c_parser_peek_token (parser)->location;
  	  c_expr expr = c_parser_expr_no_commas (parser, NULL);
  	  expr = convert_lvalue_to_rvalue (expr_loc, expr, false, true);
! 	  allocator = expr.value;
! 	  allocator = c_fully_fold (allocator, false, NULL);
! 	  orig_type = expr.original_type
! 		      ? expr.original_type : TREE_TYPE (allocator);
! 	  orig_type = TYPE_MAIN_VARIANT (orig_type);
  	}
        if (allocator
  	  && (!INTEGRAL_TYPE_P (TREE_TYPE (allocator))
--- 19640,19653 ----
  	  location_t expr_loc = c_parser_peek_token (parser)->location;
  	  c_expr expr = c_parser_expr_no_commas (parser, NULL);
  	  expr = convert_lvalue_to_rvalue (expr_loc, expr, false, true);
! 	  if (expr.value != error_mark_node)
! 	    {
! 	      allocator = expr.value;
! 	      allocator = c_fully_fold (allocator, false, NULL);
! 	      orig_type = expr.original_type
! 			  ? expr.original_type : TREE_TYPE (allocator);
! 	      orig_type = TYPE_MAIN_VARIANT (orig_type);
! 	    }
  	}
        if (allocator
  	  && (!INTEGRAL_TYPE_P (TREE_TYPE (allocator))
*************** parse_next:
*** 19790,19795 ****
--- 19793,19799 ----
  	    {
  	      traits_var = expr.value;
  	      traits_var = c_fully_fold (traits_var, false, NULL);
+ 	      mark_exp_read (traits_var);
  	    }
  	  else
  	    {
*************** parse_next:
*** 19828,19833 ****
--- 19832,19838 ----
  		{
  		  traits_var = expr.value;
  		  traits_var = c_fully_fold (traits_var, false, NULL);
+ 		  mark_exp_read (traits_var);
  		}
  	      else
  		{
*************** parse_next:
*** 19879,19884 ****
--- 19884,19890 ----
  	  legacy_traits = c_fully_fold (expr.value, false, NULL);
  	  if (legacy_traits == error_mark_node)
  	    goto end;
+ 	  mark_exp_read (legacy_traits);
  
  	  gcc_rich_location richloc (make_location (alloc_loc, alloc_loc, close_loc));
  	  if (nl == list)
diff -Nrcpad gcc-17-20260712/gcc/c-family/ChangeLog gcc-17-20260719/gcc/c-family/ChangeLog
*** gcc-17-20260712/gcc/c-family/ChangeLog	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/c-family/ChangeLog	Sun Jul 19 22:32:06 2026
***************
*** 1,3 ****
--- 1,32 ----
+ 2026-07-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/120635
+ 	* c-lex.cc (c_common_has_attribute): For __clang__
+ 	namespace don't call canonicalize_attr_name and for
+ 	_Clang use clang instead.
+ 
+ 2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/124948
+ 	* c-common.cc (sync_resolve_size): Return -1 for fetch ops
+ 	on _BitInt types with padding bits where the target requires
+ 	extension into the padding bits.
+ 	(atomic_bitint_fetch_using_cas_loop): Handle also __sync_*
+ 	fetch builtins.
+ 
+ 2026-07-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/120635
+ 	* c.opt (Winvalid-specialization): New option.
+ 	* c.opt.urls: Regenerate.
+ 	* c-lex.cc (c_common_has_attribute): Don't advertise
+ 	gnu::no_specializations attribute availability.
+ 
+ 2026-07-13  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/126066
+ 	* c-common.cc (verify_tree): Add a comment.
+ 
  2026-07-10  Jakub Jelinek  <jakub@redhat.com>
  
  	PR c++/107187
diff -Nrcpad gcc-17-20260712/gcc/c-family/c-common.cc gcc-17-20260719/gcc/c-family/c-common.cc
*** gcc-17-20260712/gcc/c-family/c-common.cc	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/c-family/c-common.cc	Sun Jul 19 22:32:06 2026
*************** verify_tree (tree x, struct tlist **pbef
*** 2092,2097 ****
--- 2092,2098 ----
      case CONSTRUCTOR:
      case SIZEOF_EXPR:
      case PAREN_SIZEOF_EXPR:
+     /* FIXME: Add C++ codes like NOEXCEPT_EXPR (cf. unevaluated_p) as well.  */
        return;
  
      case COMPOUND_EXPR:
*************** sync_resolve_size (tree function, vec<tr
*** 7746,7752 ****
      }
  
    if (size == 1 || size == 2 || size == 4 || size == 8 || size == 16)
!     return size;
  
    if (fetch && !orig_format && BITINT_TYPE_P (type))
      return -1;
--- 7747,7769 ----
      }
  
    if (size == 1 || size == 2 || size == 4 || size == 8 || size == 16)
!     {
!       /* For _BitInt with padding bits where the ABI mandates sign or
! 	 zero extension into the padding bits, force a CAS loop so that
! 	 the extension is properly performed.  */
!       if (fetch
! 	  && BITINT_TYPE_P (type)
! 	  && (TYPE_PRECISION (type)
! 	      != GET_MODE_PRECISION (SCALAR_TYPE_MODE (type))))
! 	{
! 	  struct bitint_info info;
! 	  bool ok = targetm.c.bitint_type_info (TYPE_PRECISION (type), &info);
! 	  gcc_assert (ok);
! 	  if (info.extended != bitint_ext_undef)
! 	    return -1;
! 	}
!       return size;
!     }
  
    if (fetch && !orig_format && BITINT_TYPE_P (type))
      return -1;
*************** resolve_overloaded_atomic_store (locatio
*** 8405,8411 ****
  }
  
  /* Emit __atomic*fetch* on _BitInt which doesn't have a size of
!    1, 2, 4, 8 or 16 bytes using __atomic_compare_exchange loop.
     ORIG_CODE is the DECL_FUNCTION_CODE of ORIG_FUNCTION and
     ORIG_PARAMS arguments of the call.  */
  
--- 8422,8429 ----
  }
  
  /* Emit __atomic*fetch* on _BitInt which doesn't have a size of
!    1, 2, 4, 8 or 16 bytes (or if it has padding bits and they
!    need to be extended) using __atomic_compare_exchange loop.
     ORIG_CODE is the DECL_FUNCTION_CODE of ORIG_FUNCTION and
     ORIG_PARAMS arguments of the call.  */
  
*************** atomic_bitint_fetch_using_cas_loop (loca
*** 8417,8422 ****
--- 8435,8441 ----
  {
    enum tree_code code = ERROR_MARK;
    bool return_old_p = false;
+   bool sync_p = false;
    switch (orig_code)
      {
      case BUILT_IN_ATOMIC_ADD_FETCH_N:
*************** atomic_bitint_fetch_using_cas_loop (loca
*** 8459,8471 ****
        code = BIT_IOR_EXPR;
        return_old_p = true;
        break;
      default:
        gcc_unreachable ();
      }
  
!   if (orig_params->length () != 3)
      {
!       if (orig_params->length () < 3)
  	error_at (loc, "too few arguments to function %qE", orig_function);
        else
  	error_at (loc, "too many arguments to function %qE", orig_function);
--- 8478,8542 ----
        code = BIT_IOR_EXPR;
        return_old_p = true;
        break;
+     case BUILT_IN_SYNC_ADD_AND_FETCH_N:
+       code = PLUS_EXPR;
+       sync_p = true;
+       break;
+     case BUILT_IN_SYNC_SUB_AND_FETCH_N:
+       code = MINUS_EXPR;
+       sync_p = true;
+       break;
+     case BUILT_IN_SYNC_OR_AND_FETCH_N:
+       code = BIT_IOR_EXPR;
+       sync_p = true;
+       break;
+     case BUILT_IN_SYNC_AND_AND_FETCH_N:
+       code = BIT_AND_EXPR;
+       sync_p = true;
+       break;
+     case BUILT_IN_SYNC_XOR_AND_FETCH_N:
+       code = BIT_XOR_EXPR;
+       sync_p = true;
+       break;
+     case BUILT_IN_SYNC_NAND_AND_FETCH_N:
+       sync_p = true;
+       break;
+     case BUILT_IN_SYNC_FETCH_AND_ADD_N:
+       code = PLUS_EXPR;
+       return_old_p = true;
+       sync_p = true;
+       break;
+     case BUILT_IN_SYNC_FETCH_AND_SUB_N:
+       code = MINUS_EXPR;
+       return_old_p = true;
+       sync_p = true;
+       break;
+     case BUILT_IN_SYNC_FETCH_AND_OR_N:
+       code = BIT_IOR_EXPR;
+       return_old_p = true;
+       sync_p = true;
+       break;
+     case BUILT_IN_SYNC_FETCH_AND_AND_N:
+       code = BIT_AND_EXPR;
+       return_old_p = true;
+       sync_p = true;
+       break;
+     case BUILT_IN_SYNC_FETCH_AND_XOR_N:
+       code = BIT_XOR_EXPR;
+       return_old_p = true;
+       sync_p = true;
+       break;
+     case BUILT_IN_SYNC_FETCH_AND_NAND_N:
+       return_old_p = true;
+       sync_p = true;
+       break;
      default:
        gcc_unreachable ();
      }
  
!   if (orig_params->length () != (sync_p ? 2 : 3))
      {
!       if (orig_params->length () < (sync_p ? 2 : 3))
  	error_at (loc, "too few arguments to function %qE", orig_function);
        else
  	error_at (loc, "too many arguments to function %qE", orig_function);
*************** atomic_bitint_fetch_using_cas_loop (loca
*** 8480,8491 ****
  
    tree lhs_addr = (*orig_params)[0];
    tree val = convert (nonatomic_lhs_type, (*orig_params)[1]);
!   tree model = convert (integer_type_node, (*orig_params)[2]);
    if (!c_dialect_cxx ())
      {
        lhs_addr = c_fully_fold (lhs_addr, false, NULL);
        val = c_fully_fold (val, false, NULL);
!       model = c_fully_fold (model, false, NULL);
      }
    if (TREE_SIDE_EFFECTS (lhs_addr))
      {
--- 8551,8564 ----
  
    tree lhs_addr = (*orig_params)[0];
    tree val = convert (nonatomic_lhs_type, (*orig_params)[1]);
!   tree model
!     = sync_p ? NULL_TREE : convert (integer_type_node, (*orig_params)[2]);
    if (!c_dialect_cxx ())
      {
        lhs_addr = c_fully_fold (lhs_addr, false, NULL);
        val = c_fully_fold (val, false, NULL);
!       if (model)
! 	model = c_fully_fold (model, false, NULL);
      }
    if (TREE_SIDE_EFFECTS (lhs_addr))
      {
*************** atomic_bitint_fetch_using_cas_loop (loca
*** 8501,8507 ****
  		    NULL_TREE);
        add_stmt (val);
      }
!   if (TREE_SIDE_EFFECTS (model))
      {
        tree var = create_tmp_var_raw (integer_type_node);
        model = build4 (TARGET_EXPR, integer_type_node, var, model, NULL_TREE,
--- 8574,8580 ----
  		    NULL_TREE);
        add_stmt (val);
      }
!   if (model && TREE_SIDE_EFFECTS (model))
      {
        tree var = create_tmp_var_raw (integer_type_node);
        model = build4 (TARGET_EXPR, integer_type_node, var, model, NULL_TREE,
*************** atomic_bitint_fetch_using_cas_loop (loca
*** 8519,8524 ****
--- 8592,8599 ----
    TREE_ADDRESSABLE (newval) = 1;
    suppress_warning (newval);
  
+   tree retval = NULL_TREE;
+ 
    tree loop_decl = create_artificial_label (loc);
    tree loop_label = build1 (LABEL_EXPR, void_type_node, loop_decl);
  
*************** atomic_bitint_fetch_using_cas_loop (loca
*** 8582,8602 ****
  
    /* if (__atomic_compare_exchange (addr, &old, &new, false, model, model))
         goto done;  */
!   fndecl = builtin_decl_explicit (BUILT_IN_ATOMIC_COMPARE_EXCHANGE);
    params->quick_push (lhs_addr);
!   params->quick_push (old_addr);
!   params->quick_push (newval_addr);
!   params->quick_push (integer_zero_node);
!   params->quick_push (model);
!   if (tree_fits_uhwi_p (model)
!       && (tree_to_uhwi (model) == MEMMODEL_RELEASE
! 	  || tree_to_uhwi (model) == MEMMODEL_ACQ_REL))
!     params->quick_push (build_int_cst (integer_type_node, MEMMODEL_RELAXED));
    else
!     params->quick_push (model);
    func_call = resolve_overloaded_builtin (loc, fndecl, params);
    if (func_call == NULL_TREE)
      func_call = build_function_call_vec (loc, vNULL, fndecl, params, NULL);
  
    tree goto_stmt = build1 (GOTO_EXPR, void_type_node, done_decl);
    SET_EXPR_LOCATION (goto_stmt, loc);
--- 8657,8699 ----
  
    /* if (__atomic_compare_exchange (addr, &old, &new, false, model, model))
         goto done;  */
!   if (sync_p)
!     fndecl = builtin_decl_explicit (BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_N);
!   else
!     fndecl = builtin_decl_explicit (BUILT_IN_ATOMIC_COMPARE_EXCHANGE);
    params->quick_push (lhs_addr);
!   if (sync_p)
!     {
!       params->quick_push (old);
!       params->quick_push (newval);
!     }
    else
!     {
!       params->quick_push (old_addr);
!       params->quick_push (newval_addr);
!       params->quick_push (integer_zero_node);
!       params->quick_push (model);
!       if (tree_fits_uhwi_p (model)
! 	  && (tree_to_uhwi (model) == MEMMODEL_RELEASE
! 	      || tree_to_uhwi (model) == MEMMODEL_ACQ_REL))
! 	params->quick_push (build_int_cst (integer_type_node,
! 					   MEMMODEL_RELAXED));
!       else
! 	params->quick_push (model);
!     }
    func_call = resolve_overloaded_builtin (loc, fndecl, params);
    if (func_call == NULL_TREE)
      func_call = build_function_call_vec (loc, vNULL, fndecl, params, NULL);
+   if (sync_p)
+     {
+       if (return_old_p)
+ 	retval = create_tmp_var_raw (nonatomic_lhs_type);
+       else
+ 	retval = old;
+       func_call = build2 (MODIFY_EXPR, void_type_node, retval, func_call);
+       tree cmp = build2 (EQ_EXPR, boolean_type_node, retval, newval);
+       func_call = build2 (COMPOUND_EXPR, boolean_type_node, func_call, cmp);
+     }
  
    tree goto_stmt = build1 (GOTO_EXPR, void_type_node, done_decl);
    SET_EXPR_LOCATION (goto_stmt, loc);
*************** atomic_bitint_fetch_using_cas_loop (loca
*** 8606,8611 ****
--- 8703,8714 ----
    SET_EXPR_LOCATION (stmt, loc);
    add_stmt (stmt);
  
+   if (sync_p && return_old_p)
+     {
+       stmt = build2_loc (loc, MODIFY_EXPR, void_type_node, old, retval);
+       add_stmt (stmt);
+     }
+ 
    /* goto loop;  */
    goto_stmt = build1 (GOTO_EXPR, void_type_node, loop_decl);
    SET_EXPR_LOCATION (goto_stmt, loc);
diff -Nrcpad gcc-17-20260712/gcc/c-family/c-lex.cc gcc-17-20260719/gcc/c-family/c-lex.cc
*** gcc-17-20260712/gcc/c-family/c-lex.cc	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/c-family/c-lex.cc	Sun Jul 19 22:32:06 2026
*************** c_common_has_attribute (cpp_reader *pfil
*** 355,361 ****
      {
        attr_name = get_identifier ((const char *)
  				  cpp_token_as_text (pfile, token));
-       attr_name = canonicalize_attr_name (attr_name);
        bool have_scope = false;
        int idx = 0;
        const cpp_token *nxt_token;
--- 355,360 ----
*************** c_common_has_attribute (cpp_reader *pfil
*** 390,395 ****
--- 389,401 ----
  	  if (nxt_token->type == CPP_NAME)
  	    {
  	      tree attr_ns = attr_name;
+ 	      /* In clang, __clang__ is predefined macro, and the supported
+ 		 alternate namespace is _Clang rather than __clang__ because
+ 		 of that.  Don't handle ___Clang__ that way though.  */
+ 	      if (id_equal (attr_ns, "_Clang"))
+ 		attr_ns = get_identifier ("clang");
+ 	      else if (!id_equal (attr_ns, "__clang__"))
+ 		attr_ns = canonicalize_attr_name (attr_ns);
  	      tree attr_id
  		= get_identifier ((const char *)
  				  cpp_token_as_text (pfile, nxt_token));
*************** c_common_has_attribute (cpp_reader *pfil
*** 405,414 ****
  		attr_name = NULL_TREE;
  	      /* gnu::trivial_abi is in the attribute table just
  		 to error on it and suggest using [[clang::trivial_abi]]
! 		 or __attribute__((trivial_abi)).  Don't advertise it.  */
  	      else if (c_dialect_cxx ()
  		       && is_attribute_p ("gnu", attr_ns)
! 		       && is_attribute_p ("trivial_abi", attr_id))
  		attr_name = NULL_TREE;
  	      else
  		attr_name = build_tree_list (attr_ns, attr_id);
--- 411,422 ----
  		attr_name = NULL_TREE;
  	      /* gnu::trivial_abi is in the attribute table just
  		 to error on it and suggest using [[clang::trivial_abi]]
! 		 or __attribute__((trivial_abi)).  Don't advertise it.
! 		 Ditto for gnu::no_specializations.  */
  	      else if (c_dialect_cxx ()
  		       && is_attribute_p ("gnu", attr_ns)
! 		       && (is_attribute_p ("trivial_abi", attr_id)
! 			   || is_attribute_p ("no_specializations", attr_id)))
  		attr_name = NULL_TREE;
  	      else
  		attr_name = build_tree_list (attr_ns, attr_id);
*************** c_common_has_attribute (cpp_reader *pfil
*** 422,427 ****
--- 430,436 ----
  	}
        else
  	{
+ 	  attr_name = canonicalize_attr_name (attr_name);
  	  /* Some standard attributes need special handling.  */
  	  if (c_dialect_cxx ())
  	    {
diff -Nrcpad gcc-17-20260712/gcc/c-family/c.opt gcc-17-20260719/gcc/c-family/c.opt
*** gcc-17-20260712/gcc/c-family/c.opt	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/c-family/c.opt	Sun Jul 19 22:32:06 2026
*************** Winvalid-pch
*** 967,972 ****
--- 967,976 ----
  C ObjC C++ ObjC++ CPP(warn_invalid_pch) CppReason(CPP_W_INVALID_PCH) Var(cpp_warn_invalid_pch) Init(0) Warning
  Warn about PCH files that are found but not used.
  
+ Winvalid-specialization
+ C++ ObjC++ Var(warn_invalid_specialization) Init(1) Warning
+ Error about specializations of templates with \"clang::no_specializations\" attribute.
+ 
  Winvalid-utf8
  C ObjC C++ ObjC++ CPP(cpp_warn_invalid_utf8) CppReason(CPP_W_INVALID_UTF8) Var(warn_invalid_utf8) Init(0) Warning
  Warn about invalid UTF-8 characters.
diff -Nrcpad gcc-17-20260712/gcc/c-family/c.opt.urls gcc-17-20260719/gcc/c-family/c.opt.urls
*** gcc-17-20260712/gcc/c-family/c.opt.urls	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/c-family/c.opt.urls	Sun Jul 19 22:32:06 2026
*************** UrlSuffix(gcc/C_002b_002b-Dialect-Option
*** 682,687 ****
--- 682,690 ----
  Winvalid-pch
  UrlSuffix(gcc/Warning-Options.html#index-Winvalid-pch)
  
+ Winvalid-specialization
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Winvalid-specialization)
+ 
  Winvalid-utf8
  UrlSuffix(gcc/Warning-Options.html#index-Winvalid-utf8)
  
diff -Nrcpad gcc-17-20260712/gcc/cfgexpand.cc gcc-17-20260719/gcc/cfgexpand.cc
*** gcc-17-20260712/gcc/cfgexpand.cc	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/cfgexpand.cc	Sun Jul 19 22:32:06 2026
*************** expand_used_vars (bitmap forced_stack_va
*** 2676,2681 ****
--- 2676,2684 ----
  	  HOST_WIDE_INT offset, sz, redzonesz;
  	  redzonesz = ASAN_RED_ZONE_SIZE;
  	  sz = data.asan_vec[0] - prev_offset;
+ 	  data.asan_alignb = MAX (data.asan_alignb,
+ 				  crtl->stack_alignment_needed
+ 				  / BITS_PER_UNIT);
  	  if (data.asan_alignb > ASAN_RED_ZONE_SIZE
  	      && data.asan_alignb <= 4096
  	      && sz + ASAN_RED_ZONE_SIZE >= (int) data.asan_alignb)
diff -Nrcpad gcc-17-20260712/gcc/cgraph.cc gcc-17-20260719/gcc/cgraph.cc
*** gcc-17-20260712/gcc/cgraph.cc	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/cgraph.cc	Sun Jul 19 22:32:06 2026
*************** cgraph_edge::make_callback (cgraph_node
*** 1383,1388 ****
--- 1383,1389 ----
    else
      e2->can_throw_external = can_throw_external;
    e2->lto_stmt_uid = lto_stmt_uid;
+   symtab->call_edge_duplication_hooks (this, e2);
    n2->mark_address_taken ();
    return e2;
  }
diff -Nrcpad gcc-17-20260712/gcc/cobol/ChangeLog gcc-17-20260719/gcc/cobol/ChangeLog
*** gcc-17-20260712/gcc/cobol/ChangeLog	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/cobol/ChangeLog	Sun Jul 19 22:32:06 2026
***************
*** 1,3 ****
--- 1,109 ----
+ 2026-07-17  James K. Lowden  <jklowden@cobolworx.com>
+ 
+ 	PR cobol/122466
+ 	* copybook.h: Include sys/types.h
+ 	* parse.y: Cast size for printf %lu parameter.
+ 	* util.cc (cobol_filename): Same.
+ 
+ 2026-07-17  James K. Lowden  <jklowden@cobolworx.com>
+ 
+ 	PR cobol/122916
+ 	* gcobol.1: Remove blank line and escape characters in width arguments.
+ 
+ 2026-07-17  Robert Dubner  <rdubner@symas.com>
+ 
+ 	* genapi.cc (parser_file_open): New filename-as-device feature
+ 	awaiting implementation.
+ 	* lexio.h (struct filespan_t): Variable name change.
+ 	* parse.y: Filename-as-device.
+ 	* parse_ante.h (field_find): Likewise.
+ 	(data_division_ready): _literally_zero and _literally_one global
+ 	constants.
+ 	* scan.l: Require separate space after '<', '>' and '=' comparison
+ 	operators.
+ 	* scan_ante.h (update_location): Change debug message text.
+ 	* symbols.cc (constq): Eliminate #define in favor of explicit
+ 	(constant_e | quoted_e).
+ 	(label_cmp): Formatting: eliminate trailing space.
+ 	(symbol_elem_cmp): Filename-as-device.
+ 	(enum protoreq_t): Formatting: eliminate trailing space.
+ 	(cbl_field_t::clear_attr): Likewise.
+ 	(symbols_dump): Likewise.
+ 	(cbl_field_t::attr_str): Likewise.
+ 	(field_str): Likewise.
+ 	(symbols_update): Use _literally_zero and _literally_one.
+ 	(endian_bit): Compact access to cobol_target_big_endian().
+ 	(symbol_table_init): Normalize initialization of "special
+ 	registers".
+ 	(symbol_registers_add): Likewise.
+ 	(cbl_perform_tgt_t::recurses): Formatting: eliminate trailing space.
+ 	(symbol_literalA): Replace constq.
+ 	(cbl_alphabet_t::reencode): Eliminate trailing space.
+ 	(symbol_temporary_alphanumerics): Likewise.
+ 	(new_literal_add): Likewise.
+ 	(new_temporary_clone): Ensure FldLiteralBin5 has the endian attribute of
+ 	the target architecture.
+ 	(iconv_cd): Formatting: eliminate trailing space.
+ 	(cbl_field_t::encode): Likewise.
+ 	(cbl_field_t::set_capacity): Formatting: eliminate trailing space.
+ 	(cbl_label_t::str): Likewise.
+ 	(cbl_file_t::special_index): New function supporting
+ 	filename-as-device.
+ 	(cbl_file_t::filename_of): Likewise.
+ 	* symbols.h (struct cbl_special_name_t): Support filename as device.
+ 	(struct cbl_file_t): Likewise.
+ 	(symbol_typedef): Likewise.
+ 	(symbol_special_index): Likewise.
+ 
+ 2026-07-16  Robert Dubner  <rdubner@symas.com>
+ 
+ 	PR cobol/126277
+ 	* move.cc (mh_identical): Handle externals that have parents.
+ 	(mh_binary_to_packed): Eliminate trailing whitespace.
+ 	* symbols.cc (symbol_table_init): Correct attributes of DEBUG-CONTENTS.
+ 
+ 2026-07-16  James K. Lowden  <jklowden@cobolworx.com>
+ 
+ 	* gcobolspec.cc (lang_specific_driver): New text for OPT__help.
+ 
+ 2026-07-16  James K. Lowden  <jklowden@cobolworx.com>
+ 
+ 	* parse.y: New diagnostic messages regarding invalid device
+ 	name use.
+ 	* scan.l: Add right paren as lexical terminator for simple
+ 	condition.
+ 
+ 2026-07-15  James K. Lowden  <jklowden@cobolworx.com>
+ 
+ 	* parse_ante.h (procedure_division_ready): Test field with is_typedef().
+ 
+ 2026-07-15  James K. Lowden  <jklowden@cobolworx.com>
+ 
+ 	* parse.y: Add debug messages during parameter validation.
+ 	* symbols.h: (cbl_ffi_arg_t::capacity_ok): New function.
+ 
+ 2026-07-12  James K. Lowden  <jklowden@cobolworx.com>
+ 
+ 	* cbldiag.h (enum cbl_diag_id_t): Add IbmCallFd.
+ 	* cobol1.cc (cobol_langhook_handle_option): Handle Wcall-fd.
+ 	* gcobol.1: Document Wcall-fd.
+ 	* lang-specs.h: Add Wcall-fd.
+ 	* lang.opt: Same
+ 	* messages.cc: Add Wcall-fd as IBM dialect option.
+ 	* parse.y: Use was_fd_name() to prevent misuse.
+ 	* parse_ante.h (field_find): Add incompatible semantics warning.
+ 	(parser_move_carefully): Same.
+ 	* symbols.cc (symbols_update): Add FD name to symbol map.
+ 	* symbols.h (update_symbol_map2): Declare overload for file.
+ 	(was_fd_name): Declare function.
+ 	* symfind.cc (struct funcname): Define to minimize __PRETTY_FUNCTION__.
+ 	(__funcsig__): Define function-name macro.
+ 	(class sym_name_t): Redefine public members as const.
+ 	(class symbol_file_names_t) Define maps for FD names.
+ 	(update_symbol_map2): Define overload for file.
+ 	(was_fd_name): Define.
+ 	(symbol_find): Use new symbol_file_names class.
+ 
  2026-07-11  Robert Dubner  <rdubner@symas.com>
  
  	* copybook.h (class copybook_t): Mollify cppcheck.
diff -Nrcpad gcc-17-20260712/gcc/cobol/copybook.h gcc-17-20260719/gcc/cobol/copybook.h
*** gcc-17-20260712/gcc/cobol/copybook.h	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/cobol/copybook.h	Sun Jul 19 22:32:06 2026
***************
*** 33,38 ****
--- 33,40 ----
  #else
  #define _COPYBOOK_H
  
+ #include <sys/types.h> // where macOS defines ino_t
+ 
  #if defined(CDF_Y)
  #define gcc_assert(x) assert(x)
  void gcc_unreachable(void);
diff -Nrcpad gcc-17-20260712/gcc/cobol/gcobol.1 gcc-17-20260719/gcc/cobol/gcobol.1
*** gcc-17-20260712/gcc/cobol/gcobol.1	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/cobol/gcobol.1	Sun Jul 19 22:32:06 2026
*************** compiles \*[lang] source code to object
*** 95,101 ****
  an executable binary or shared object.  As a GCC component, it accepts
  all options that affect code-generation and linking.  Options specific
  to \*[lang] are listed below.
! .Bl -tag -width "\0\0debug"
  .It Fl main Ar filename
  .Nm
  will generate a
--- 95,101 ----
  an executable binary or shared object.  As a GCC component, it accepts
  all options that affect code-generation and linking.  Options specific
  to \*[lang] are listed below.
! .Bl -tag -width 00debug
  .It Fl main Ar filename
  .Nm
  will generate a
*************** Warn if a SEGMENT range is negative (ins
*** 708,714 ****
  Warn if IBM-style STOP <number> is used (instead of error).
  .It Fl Wno-stray-indicator
  Warn if indicator column has no recognized meaning (instead of error).
- 
  .El
  .
  .Sh COMPILATION SCENARIOS
--- 708,713 ----
*************** suite has been identified.
*** 1347,1353 ****
  .
  .Ss CDF Text Manipulation
  .Bl -tag -width >>DEFINE
! .It Sy COPY Ar copybook Li Oo OF|IN Ar library Oc Oo Sy REPLACING ... Oc
  If
  .Ar copybook
  is a literal, it treated a literal filename, which either does or does not exist.  If
--- 1346,1352 ----
  .
  .Ss CDF Text Manipulation
  .Bl -tag -width >>DEFINE
! .It Sy COPY Ar copybook Oo Li OF|IN Ar library Oc Oo Sy REPLACING ... Oc
  If
  .Ar copybook
  is a literal, it treated a literal filename, which either does or does not exist.  If
*************** to see it compile, please get in touch w
*** 2013,2019 ****
  .El
  .
  .Ss Status of NIST \*[lang] Compiler Verification Suite
! .Bl -tag -compact -width "\0\0100% NC"
  .It NC 100%
  Nucleus
  .It SQ 100%
--- 2012,2018 ----
  .El
  .
  .Ss Status of NIST \*[lang] Compiler Verification Suite
! .Bl -tag -compact -width "00100% NC"
  .It NC 100%
  Nucleus
  .It SQ 100%
*************** to the I/O support will be readily avail
*** 2112,2133 ****
  .El
  .
  .Sh COPYRIGHT
! .Bd -unfilled -indent
  Copyright (c) 2021-2026 Symas Corporation
  
  Redistribution and use in source and binary forms, with or without
  modification, are permitted provided that the following conditions are
  met:
  
! * Redistributions of source code must retain the above copyright
! notice, this list of conditions and the following disclaimer.
! * Redistributions in binary form must reproduce the above
! copyright notice, this list of conditions and the following disclaimer
! in the documentation and/or other materials provided with the
! distribution.
! * Neither the name of the Symas Corporation nor the names of its
! contributors may be used to endorse or promote products derived from
! this software without specific prior written permission.
  
  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
--- 2111,2132 ----
  .El
  .
  .Sh COPYRIGHT
! .Bd -unfilled
  Copyright (c) 2021-2026 Symas Corporation
  
  Redistribution and use in source and binary forms, with or without
  modification, are permitted provided that the following conditions are
  met:
  
! \(bu Redistributions of source code must retain the above copyright
!   notice, this list of conditions and the following disclaimer.
! \(bu Redistributions in binary form must reproduce the above
!   copyright notice, this list of conditions and the following disclaimer
!   in the documentation and/or other materials provided with the
!   distribution.
! \(bu Neither the name of the Symas Corporation nor the names of its
!   contributors may be used to endorse or promote products derived from
!   this software without specific prior written permission.
  
  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
diff -Nrcpad gcc-17-20260712/gcc/cobol/gcobolspec.cc gcc-17-20260719/gcc/cobol/gcobolspec.cc
*** gcc-17-20260712/gcc/cobol/gcobolspec.cc	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/cobol/gcobolspec.cc	Sun Jul 19 22:32:06 2026
*************** lang_specific_driver (struct cl_decoded_
*** 334,362 ****
  
        case OPT__help:
          /*
!          * $ man ./gcobol.1 | ./help.gen
           */
          puts( "Options specific to gcobol: " );
          puts(
!         "  -main   option uses the first PROGRAM of filename as the entry point for\n"
!         "          the main() procedure.  \n"
!         "  -no_main    \n"
!         "          means that there is no -main, and the main() entry point is\n"
!         "          provided by some other compilation or .o file\n"
!         "  -findicator-column\n"
!         "          describes the location of the Indicator Area in a COBOL file with\n"
!         "          standard 80-column lines.  \n"
!         "  -ffixed-form\n"
!         "          Use strict Reference Format in reading the COBOL input: 72-char‐\n"
!         "          acter lines, with a 6-character sequence area, and an indicator\n"
!         "          column.  \n"
!         "  -ffree-form\n"
!         "          Force the COBOL input to be interpreted as free format.  \n"
!         "  -fmax-errors nerror\n"
!         "          nerror represents the number of error messages produced.  \n"
!         "  -fflex-debug, -fyacc-debug\n"
!         "          produce messages useful for compiler development.  \n" );
! 
  
          /* Let gcc.cc handle this, as it has a really
             cool facility for handling --help and --verbose --help.  */
--- 334,389 ----
  
        case OPT__help:
          /*
!          * Although initially generated with 
!          * $ man ./gcobol.1 | col -bx | ./help.gen
!          * ... the below text was edited for brevity and clarity. 
           */
          puts( "Options specific to gcobol: " );
          puts(
!              "  -main filename           "
!              "Generate a main() for filename.\n"
!              "  -main=filename           "
!              "Insert main() into filename.o\n"
!              "  -main=filename:program-id\n"
!              "                           Insert main() for program-id.\n"
!              "  -nomain                  "
!              "No main() generated.\n"
!              "  -B prefix                "
!              "Search prefix for the system copybooks;\n"
!              "  -D name[=expr]           "
!              "Define a CDF name.\n"
!              "  -fdefaultbyte=value      "
!              "Use value [0-255], for WORKING-STORAGE.\n"
!              "  -fsyntax-only            "
!              "Invoke only the parser.\n"
!              "  -copyext ext             "
!              "Use copybook extention ext.\n"
!              "  -ffixed-form             "
!              "Compile using Reference Format.\n"
!              "  -ffree-form              "
!              "Compile using logical free-form format.\n"
!              "  -fcobol-exceptions exception\n"
!              "                           Enable exception condition.\n"
!              "  -fmax-errors=N           "
!              "Terminate compilation after N errors.\n"
!              "  -fstatic-call            "
!              "Link CALL references at load time.\n"
!              "  -fexec-charset=encoding  "
!              "Use encoding for alphanumeric\n"
!              "  -fexec-national-charset=encoding\n"
!              "                           Use enc for National data items.\n"
!              "  -ftrunc                  "
!              "Truncate BINARY on MOVE.\n"
!              "  -dialect dialect-name    "
!              "Emulate dialect-name compiler.\n"
!              "  -include filename        "
!              "Include filename input in compilation.\n"
!              "  -preprocess filter       "
!              "Execute filter on input before compiling.\n"
!              "\n"
!              "  For warning options see gcobol(1).\n"
!              "  Supported standard gcc options follow.\n"
!              );
  
          /* Let gcc.cc handle this, as it has a really
             cool facility for handling --help and --verbose --help.  */
diff -Nrcpad gcc-17-20260712/gcc/cobol/genapi.cc gcc-17-20260719/gcc/cobol/genapi.cc
*** gcc-17-20260712/gcc/cobol/genapi.cc	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/cobol/genapi.cc	Sun Jul 19 22:32:06 2026
*************** parser_file_open( struct cbl_file_t *fil
*** 9112,9117 ****
--- 9112,9141 ----
      TRACE1_END
      }
  
+ 
+ //#pragma message "parser_file_open: consult cbl_file_t::filename_of and cbl_file_t::device"
+ 
+   /*
+    * The filename of a cbl_file_t may be found in three places: 
+    * 1.  As before, in the cbl_field_t indexed by cbl_file_t::filename.
+    * 2.  Now, in the cbl_special_name_t indexed by cbl_file_t::device.
+    * 3.  As ever, in neither, from the environment.  
+    *
+    * If both filename and device are nonzero and not FldForward, the filename
+    * supersedes. The syntax was 
+    *     SELECT fd-name ASSIGN TO device-name USING filename  
+    * That just creates in the parser an alias of device-name to fd-name.  It's
+    * still the same file and does *not* change the device characteristics.
+    *
+    * If filename is FldForward (or 0) and device is nonzero, the OS filename is
+    * taken from cbl_special_name_t::os_filename.  It is tiny, hard-coded name
+    * in /dev.
+    *
+    * Upon implementation please feel free to delete this message. 
+    * --jkl
+    */
+ 
+ 
    tree pszFilename = gg_define_char_star();
    cbl_field_t *field_of_name = symbol_field_forward(file->filename);
    if( field_of_name->type == FldForward )
diff -Nrcpad gcc-17-20260712/gcc/cobol/lexio.h gcc-17-20260719/gcc/cobol/lexio.h
*** gcc-17-20260712/gcc/cobol/lexio.h	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/cobol/lexio.h	Sun Jul 19 22:32:06 2026
*************** struct filespan_t : public bytespan_t {
*** 168,176 ****
      if( nul != eol ) {
        if( std::any_of( nul, eodata,
                         []( char ch ) { return ch != '\0'; } ) ) {
!         int icol2 = nul - cur;
          fprintf(stderr, "%s:%d:%d: error: NUL character detected in input\n%*s\n",
!                 cobol_filename(), int(iline + 1), ++icol2,
                  int(eol - cur), cur);
          parse_error_inc();
          std::replace(nul, eol, '\0', SPACE);
--- 168,176 ----
      if( nul != eol ) {
        if( std::any_of( nul, eodata,
                         []( char ch ) { return ch != '\0'; } ) ) {
!         int icol = nul - cur;
          fprintf(stderr, "%s:%d:%d: error: NUL character detected in input\n%*s\n",
!                 cobol_filename(), int(iline + 1), ++icol,
                  int(eol - cur), cur);
          parse_error_inc();
          std::replace(nul, eol, '\0', SPACE);
diff -Nrcpad gcc-17-20260712/gcc/cobol/move.cc gcc-17-20260719/gcc/cobol/move.cc
*** gcc-17-20260712/gcc/cobol/move.cc	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/cobol/move.cc	Sun Jul 19 22:32:06 2026
*************** mh_identical(const cbl_refer_t &destref,
*** 177,184 ****
        &&  destref.field->codeset.encoding == sourceref.field->codeset.encoding
        )
      {
      // The source and destination are identical in type and the
!     // Source doesn't have a depending_on clause
      SHOW_PARSE1
        {
        SHOW_PARSE_INDENT
--- 177,200 ----
        &&  destref.field->codeset.encoding == sourceref.field->codeset.encoding
        )
      {
+     // These next tests were added because of the DEBUG- registers, which are
+     // global external, and most of which have a parent.  It turns out that
+     // get_location gets flummoxed by that, so we divert it here to the library
+     if(   sourceref.field->parent
+        && sourceref.field->data_decl_node
+        && DECL_EXTERNAL(sourceref.field->data_decl_node) )
+       {
+       return false;
+       }
+     if(   destref.field->parent
+        && destref.field->data_decl_node
+        && DECL_EXTERNAL(destref.field->data_decl_node) )
+       {
+       return false;
+       }
+ 
      // The source and destination are identical in type and the
!     // source doesn't have a depending_on clause
      SHOW_PARSE1
        {
        SHOW_PARSE_INDENT
*************** mh_binary_to_packed(const cbl_refer_t &d
*** 1684,1690 ****
        }
  
      // We are now ready to convert the binary to the packed byte string.
!     
      int ndigits;
      if( !(destref.field->attr & packed_no_sign_e) )
        {
--- 1700,1706 ----
        }
  
      // We are now ready to convert the binary to the packed byte string.
! 
      int ndigits;
      if( !(destref.field->attr & packed_no_sign_e) )
        {
diff -Nrcpad gcc-17-20260712/gcc/cobol/parse.y gcc-17-20260719/gcc/cobol/parse.y
*** gcc-17-20260712/gcc/cobol/parse.y	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/cobol/parse.y	Sun Jul 19 22:32:06 2026
*************** class locale_tgt_t {
*** 789,795 ****
  %type   <field>         data_descr data_descr1 write_what file_record
  %type   <field>         name88
  %type   <refer>         advancing  advance_by
! %type   <refer>         alphaval alpha_val numeref scalar scalar88
  %type   <refer>         tableref tableish
  %type   <refer>         varg varg1 varg1a start_after start_pos
  %type   <refer>         expr expr_term compute_expr free_tgt by_value_arg
--- 789,795 ----
  %type   <field>         data_descr data_descr1 write_what file_record
  %type   <field>         name88
  %type   <refer>         advancing  advance_by
! %type   <refer>         alphaval alpha_val numeref scalar scalar88 scalar_any
  %type   <refer>         tableref tableish
  %type   <refer>         varg varg1 varg1a start_after start_pos
  %type   <refer>         expr expr_term compute_expr free_tgt by_value_arg
*************** assign_clause:  ASSIGN to selected_name[
*** 2367,2381 ****
                    $$.file = new cbl_file_t(protofile);
                    $$.file->filename = field_index($selected->field);
                  }
!         |       ASSIGN to device_name USING name {
                    $$.clause = assign_clause_e;
! 		  cbl_unimplemented("ASSIGN TO DEVICE");
! 		  YYERROR;
                  }
!         |       ASSIGN to device_name {
                    $$.clause = assign_clause_e;
! 		  cbl_unimplemented("ASSIGN TO DEVICE");
! 		  YYERROR;
                  }
          |       ASSIGN USING name {
                    $$.clause = assign_clause_e;
--- 2367,2385 ----
                    $$.file = new cbl_file_t(protofile);
                    $$.file->filename = field_index($selected->field);
                  }
!         |       ASSIGN to device_name[dev] USING name {
                    $$.clause = assign_clause_e;
!                   $$.file = new cbl_file_t(protofile);
!                   $$.file->assign($dev.id);
!                   $$.file->filename = field_index($name);
                  }
!         |       ASSIGN to device_name[dev] {
                    $$.clause = assign_clause_e;
!                   $$.file = new cbl_file_t(protofile);
!                   $$.file->assign($dev.id);
!                   if( $$.file->org == file_disorganized_e ) {
!                     $$.file->org = file_sequential_e;
!                   } 
                  }
          |       ASSIGN USING name {
                    $$.clause = assign_clause_e;
*************** dev_mnemonic:	device_name is NAME
*** 3047,3072 ****
                    cbl_special_name_t special = { $1.token, $1.id };
                    if( !namcpy(@NAME, special.name, $NAME) ) YYERROR;
  
-                   const char *filename;
- 
-                   switch( special.id ) {
-                   case STDIN_e: case SYSIN_e: case SYSIPT_e:
-                     filename = "/dev/stdin";
-                     break;
-                   case STDOUT_e: case SYSOUT_e:
-                   case SYSLIST_e: case SYSLST_e: case CONSOLE_e:
-                     filename ="/dev/stdout";
-                     break;
-                   case STDERR_e: case SYSPUNCH_e: case SYSPCH_e: case SYSERR_e:
-                     filename ="/dev/stderr";
-                     break;
-                   default:
-                     filename ="/dev/null";
-                     break;
-                   }
- 
-                   special.filename = symbol_index(symbol_literalA(0, filename));
- 
                    symbol_special_add(PROGRAM, &special);
                  }
  	|	NAME[device] is NAME[name]
--- 3051,3056 ----
*************** data_clauses:   data_clause
*** 4660,4666 ****
                          dbgmsg("expanding %s size from %u bytes to %lu "
  			       "because it redefines %s with USAGE POINTER",
                                 field->name, field->size(),
!                                int_size_in_bytes(ptr_type_node),
                                 redefined->name);
                          field->embiggen();
                        }
--- 4644,4650 ----
                          dbgmsg("expanding %s size from %u bytes to %lu "
  			       "because it redefines %s with USAGE POINTER",
                                 field->name, field->size(),
!                                (unsigned long)int_size_in_bytes(ptr_type_node),
                                 redefined->name);
                          field->embiggen();
                        }
*************** simple_cond:    kind_of_name
*** 6749,6755 ****
                    $$ = new_reference(new_temporary(FldConditional));
                    ast_relop(@$, $$->field, lhs, ne_op, rhs);
                  }
!         |       expr posneg[op] {
                    $$ = new_reference(new_temporary(FldConditional));
                    relop_t op = static_cast<relop_t>($op);
                    cbl_field_t *zero = constant_of(constant_index(ZERO));
--- 6733,6739 ----
                    $$ = new_reference(new_temporary(FldConditional));
                    ast_relop(@$, $$->field, lhs, ne_op, rhs);
                  }
!         |       expr /* IS */ posneg[op] {
                    $$ = new_reference(new_temporary(FldConditional));
                    relop_t op = static_cast<relop_t>($op);
                    cbl_field_t *zero = constant_of(constant_index(ZERO));
*************** true_false:     TRUE_kw  { $$ = TRUE_kw;
*** 7352,7358 ****
          |       FALSE_kw { $$ = FALSE_kw; }
                  ;
  
! scalar:         tableref {
  		  // Check for missing subscript; others already checked.
                    if( $1->nsubscript() == 0 && 0 < dimensions($1->field) ) {
                      subscript_dimension_error(@1, 0, $$);
--- 7336,7352 ----
          |       FALSE_kw { $$ = FALSE_kw; }
                  ;
  
! scalar:         scalar_any {
!                   if( was_fd_name($1->field) ) {
!                     if( dialect_ok(@1, IbmCallFd, "CALL USING FD unimplemented") ) {
!                       // No other COBOL compiler interprets the FD as a buffer.  This feature
!                       // requires further development.
!                       warn_msg(@1, "CALL USING FD passes file buffer, not handle");
!                     }
!                   }
!                 }
!                 ;
! scalar_any:     tableref {
  		  // Check for missing subscript; others already checked.
                    if( $1->nsubscript() == 0 && 0 < dimensions($1->field) ) {
                      subscript_dimension_error(@1, 0, $$);
*************** read_file:      READ read_body {
*** 8879,8911 ****
                  }
                  ;
  
! read_body:      NAME read_next read_into read_key
                  {
                    statement_begin(@$, READ);
-                   struct symbol_elem_t *e = symbol_file(PROGRAM, $NAME);
-                   if( !e ) {
-                     error_msg(@1, "invalid file name '%s'", $NAME);
-                     YYERROR;
-                   }
  
!                   $$ = cbl_file_of(e);
  
                    struct cbl_field_t *record = symbol_file_record($$);
                    if( !record ) {
!                     error_msg(@1, "syntax error? invalid file record name");
                      YYERROR;
                    }
                    if( $read_key->field && is_sequential($$) ) {
!                     error_msg(@1, "SEQUENTIAL file %s has no KEY", $$->name);
                      YYERROR;
                    }
                    if( $$->org == file_line_sequential_e && $read_next == -2 ) {
!                     error_msg(@1, "LINE SEQUENTIAL file %s cannot READ PREVIOUS",
                               $$->name);
                      YYERROR;
                    }
                    if( $read_key->field && $read_next < 0 ) {
!                     error_msg(@1, "cannot read NEXT with KEY %qs", $$->name);
                      YYERROR;
                    }
  
--- 8873,8901 ----
                  }
                  ;
  
! read_body:      filename[file] read_next read_into read_key
                  {
                    statement_begin(@$, READ);
  
!                   $$ = $file;
  
                    struct cbl_field_t *record = symbol_file_record($$);
                    if( !record ) {
!                     error_msg(@file, "syntax error? invalid file record name");
                      YYERROR;
                    }
+ 
                    if( $read_key->field && is_sequential($$) ) {
!                     error_msg(@file, "SEQUENTIAL file %s has no KEY", $$->name);
                      YYERROR;
                    }
                    if( $$->org == file_line_sequential_e && $read_next == -2 ) {
!                     error_msg(@file, "LINE SEQUENTIAL file %s cannot READ PREVIOUS",
                               $$->name);
                      YYERROR;
                    }
                    if( $read_key->field && $read_next < 0 ) {
!                     error_msg(@file, "cannot read NEXT with KEY %qs", $$->name);
                      YYERROR;
                    }
  
*************** file_record:    NAME
*** 9121,9126 ****
--- 9111,9128 ----
                  {
                    $$ = cbl_field_of(symbol_at($filename->default_record));
                  }
+         |       device_name[dev]
+                 {
+                   auto dev = symbol_special($dev.id);
+                   error_msg(@dev, "invalid device %qs: FD name required", dev->name);
+                   YYERROR;
+                   auto e = symbol_file(PROGRAM, dev->name);
+                   if( ! e ) {
+                     error_msg(@dev, "no FD selected for device %qs", dev->name);
+                     YYERROR;
+                   } 
+                   $$ = cbl_field_of(symbol_at(cbl_file_of(e)->default_record)); 
+                 }
                  ;
  advance_when:   BEFORE { $$ = BEFORE; }
          |       AFTER  { $$ = AFTER; }
*************** filename:       NAME
*** 10108,10113 ****
--- 10110,10125 ----
                    }
                    $$ = cbl_file_of(e);
                  }
+         |       device_name[dev]
+                 {
+                   auto dev = symbol_special($dev.id);
+                   auto e = symbol_file(PROGRAM, dev->name);
+                   if( ! e ) {
+                     error_msg(@dev, "no FD selected for device '%s'", dev->name);
+                     YYERROR;
+                   } 
+                   $$ = cbl_file_of(e);
+                 }
                  ;
  
  label_name:     NAME
*************** ffi_by_val:     by_value_arg
*** 10728,10735 ****
                  }
                  ;
  
! scalar_arg:     scalar
!         |       scalar AS FIXED LENGTH %prec NAME
                  ;
  
  call_excepts:   call_excepts[a] call_except[b] statements %prec CALL
--- 10740,10747 ----
                  }
                  ;
  
! scalar_arg:     scalar_any
!         |       scalar_any AS FIXED LENGTH %prec NAME
                  ;
  
  call_excepts:   call_excepts[a] call_except[b] statements %prec CALL
*************** cbl_ffi_arg_t::matches( const cbl_ffi_ar
*** 12745,12751 ****
    case by_reference_e:
      if( crv == by_reference_e ) {
        if( (formal->attr & mask) == (actual->attr & mask) ) {
!         if( formal->data.capacity() == actual->data.capacity() ) {
            if( formal->type == actual->type ) { // captures USAGE except COMP-X
              return true;
            }
--- 12757,12763 ----
    case by_reference_e:
      if( crv == by_reference_e ) {
        if( (formal->attr & mask) == (actual->attr & mask) ) {
!         if( capacity_ok(formal, actual) ) {
            if( formal->type == actual->type ) { // captures USAGE except COMP-X
              return true;
            }
*************** cbl_ffi_arg_t::matches( const cbl_ffi_ar
*** 12754,12766 ****
            return true;
        }
      }
!     // If actual is by reference, so must the formal be. 
      return false;
      break;
    case by_content_e:
      break;
    case by_value_e:
!     if( crv != by_value_e ) return false;
      if( formal->type == FldPointer && that.refer.is_pointer() ) return true;
      break;
    }
--- 12766,12782 ----
            return true;
        }
      }
!     // If actual is by reference, so must the formal be.
!     dbgmsg("%s:%d: failed, reference feature mismatch", __func__, __LINE__);
      return false;
      break;
    case by_content_e:
      break;
    case by_value_e:
!     if( crv != by_value_e ) {
!       dbgmsg("%s:%d: failed, actual %s not by value", __func__, __LINE__, actual->name);
!       return false;
!     }
      if( formal->type == FldPointer && that.refer.is_pointer() ) return true;
      break;
    }
*************** cbl_ffi_arg_t::matches( const cbl_ffi_ar
*** 12777,12782 ****
--- 12793,12799 ----
      return actual->data.capacity() == formal->data.capacity()
          && actual->codeset.encoding == formal->codeset.encoding;
    }          
+   dbgmsg("%s:%d: failed, for some reason", __func__, __LINE__);
    return false;
  }
  
*************** verify_figconst( enum cbl_figconst_t fig
*** 13073,13084 ****
  static size_t
  constant_index( int token ) {
    switch(token) {
    case SPACES      : return 0;
!   case LOW_VALUES  : return verify_figconst(low_value_e, 2);
!   case ZERO        : return verify_figconst(zero_value_e, 3);
!   case HIGH_VALUES : return verify_figconst(high_value_e, 4);
!   case QUOTES      : return 5;
!   case NULLS       : return 6;
    }
    cbl_errx( "%s:%d: no such constant %d", __func__, __LINE__, token);
    return (size_t)-1;
--- 13090,13102 ----
  static size_t
  constant_index( int token ) {
    switch(token) {
+   // These tokens refer to constants at fixed positions in the symbol table.
    case SPACES      : return 0;
!   case LOW_VALUES  : return verify_figconst(low_value_e, 1);
!   case ZERO        : return verify_figconst(zero_value_e, 2);
!   case HIGH_VALUES : return verify_figconst(high_value_e, 3);
!   case QUOTES      : return 4;
!   case NULLS       : return 5;
    }
    cbl_errx( "%s:%d: no such constant %d", __func__, __LINE__, token);
    return (size_t)-1;
*************** void parser_add_declaratives( size_t n,
*** 14601,14616 ****
  
  cbl_field_t *
  new_literal( const cbl_loc_t loc, const literal_t& lit, enum cbl_field_attr_t attr ) {
-   bool zstring = lit.prefix[0] == 'Z';
-   if( !zstring && lit.data[lit.len] != '\0' ) {
-     dbgmsg("%s:%d: line %d, no NUL terminator '%-*.*s'{"
-           HOST_SIZE_T_PRINT_UNSIGNED "/" HOST_SIZE_T_PRINT_UNSIGNED "}",
-           __func__, __LINE__, yylineno,
-           int(lit.len), int(lit.len),
-           lit.data, (fmt_size_t)strlen(lit.data), (fmt_size_t)lit.len);
-   }
-   assert(zstring || lit.data[lit.len] == '\0');
- 
    size_t attrs(attr);
    attrs |= constant_e;
    attrs |= literal_attr(lit.prefix);
--- 14619,14624 ----
diff -Nrcpad gcc-17-20260712/gcc/cobol/parse_ante.h gcc-17-20260719/gcc/cobol/parse_ante.h
*** gcc-17-20260712/gcc/cobol/parse_ante.h	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/cobol/parse_ante.h	Sun Jul 19 22:32:06 2026
*************** field_find( cbl_loc_t loc, const std::li
*** 2896,2908 ****
      }
    }
    symbol_elem_t *e = symbol_find(names);
-   if( e && SymField == e->type && was_fd_name(cbl_field_of(e)) ) {
-     if( dialect_ok(loc, IbmCallFd, "CALL USING FD unimplemented") ) {
-       // No other COBOL compiler interprets the FD as a buffer.  This feature
-       // requires further development.
-       warn_msg(loc, "CALL USING FD passes file buffer, not handle");
-     }
-   }
    return e? cbl_field_of(e) : NULL;
  }
  
--- 2896,2901 ----
*************** data_division_ready() {
*** 3606,3614 ****
    if( (nsymbol = symbols_update(nsymbol, nparse_error == 0)) > 0 ) {
      if( ! mode_syntax_only() ) {
        if( ! literally_one ) {
!         // Use strdup so cbl_field_t::internalize can free them if need be.
!         literally_one = new_constant(xstrdup("1"));
!         literally_zero = new_constant(xstrdup("0"));
        }
      } else {
        nsymbol = again;
--- 3599,3606 ----
    if( (nsymbol = symbols_update(nsymbol, nparse_error == 0)) > 0 ) {
      if( ! mode_syntax_only() ) {
        if( ! literally_one ) {
!       literally_one  = register_find("_literally_one");
!       literally_zero = register_find("_literally_zero");
        }
      } else {
        nsymbol = again;
*************** procedure_division_ready( const cbl_loc_
*** 3724,3730 ****
                     if( elem.type == SymField ) {
                       auto f = cbl_field_of(&elem);
                       if( f->has_attr(local_e) ) {
!                        parser_local_add(f);
                       }
                     }
                   } );
--- 3716,3724 ----
                     if( elem.type == SymField ) {
                       auto f = cbl_field_of(&elem);
                       if( f->has_attr(local_e) ) {
!                        if( ! f->is_typedef() ) {
!                          parser_local_add(f);
!                        }
                       }
                     }
                   } );
diff -Nrcpad gcc-17-20260712/gcc/cobol/scan.l gcc-17-20260719/gcc/cobol/scan.l
*** gcc-17-20260712/gcc/cobol/scan.l	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/cobol/scan.l	Sun Jul 19 22:32:06 2026
*************** PROCEDURE{SPC}DIVISION	{ yy_push_state(p
*** 322,335 ****
    (IS{SPC})?">="        { return GE;  }
    (IS{SPC})?">"         { return '>'; }
  
!   {LESS_THAN} 		{ return '<'; }
    {LESS_THAN}{SPC}{OR_EQUAL}/[[:space:]]	{ return LE; }
    (IS{SPC})?EQUALS?({SPC}TO)?/[[:space:]] {
  		  static char eq[] = "EQUAL";
  		  ydflval.string = yylval.string = eq;
  		  return EQ; }
    {GREATER_THAN}{SPC}{OR_EQUAL}/[[:space:]]	{ return GE; }
!   {GREATER_THAN}				{ return '>'; }
  
    {ISNT}{OSPC}">="        { verify_ws(yytext[yyleng - 3]); return '<'; }
    {ISNT}{OSPC}">"         { verify_ws(yytext[yyleng - 2]); return LE;  }
--- 322,335 ----
    (IS{SPC})?">="        { return GE;  }
    (IS{SPC})?">"         { return '>'; }
  
!   {LESS_THAN}/[[:space:]] 		{ return '<'; }
    {LESS_THAN}{SPC}{OR_EQUAL}/[[:space:]]	{ return LE; }
    (IS{SPC})?EQUALS?({SPC}TO)?/[[:space:]] {
  		  static char eq[] = "EQUAL";
  		  ydflval.string = yylval.string = eq;
  		  return EQ; }
    {GREATER_THAN}{SPC}{OR_EQUAL}/[[:space:]]	{ return GE; }
!   {GREATER_THAN}/[[:space:]]			{ return '>'; }
  
    {ISNT}{OSPC}">="        { verify_ws(yytext[yyleng - 3]); return '<'; }
    {ISNT}{OSPC}">"         { verify_ws(yytext[yyleng - 2]); return LE;  }
*************** PROCEDURE{SPC}DIVISION	{ yy_push_state(p
*** 337,347 ****
    {ISNT}{OSPC}"<"         { verify_ws(yytext[yyleng - 2]); return GE;  }
    {ISNT}{OSPC}"<="        { verify_ws(yytext[yyleng - 3]); return '>'; }
  
!   {ISNT}{SPC}GREATER{SPC}(THAN)?{SPC}{OR_EQUAL}/[[:space:]] { return '<'; }
!   {ISNT}{SPC}GREATER{SPC}(THAN)?	{ return LE; }
!   {ISNT}{SPC}EQUALS?{SPC}(TO)?		{ return NE; }
!   {ISNT}{SPC}LESS{SPC}(THAN)?		{ return GE; }
!   {ISNT}{SPC}LESS{SPC}(THAN)?{SPC}{OR_EQUAL}/[[:space:]] { return '>'; }
  
    [*]{2}	{ return POW; }
  
--- 337,347 ----
    {ISNT}{OSPC}"<"         { verify_ws(yytext[yyleng - 2]); return GE;  }
    {ISNT}{OSPC}"<="        { verify_ws(yytext[yyleng - 3]); return '>'; }
  
!   {ISNT}{SPC}GREATER({SPC}THAN)?{SPC}{OR_EQUAL}/[[:space:]] { return '<'; }
!   {ISNT}{SPC}GREATER({SPC}THAN)?/[[:space:]]	{ return LE; }
!   {ISNT}{SPC}EQUALS?({SPC}TO)?/[[:space:]]	{ return NE; }
!   {ISNT}{SPC}LESS({SPC}THAN)?/[[:space:]]	{ return GE; }
!   {ISNT}{SPC}LESS({SPC}THAN)?{SPC}{OR_EQUAL}/[[:space:]] { return '>'; }
  
    [*]{2}	{ return POW; }
  
*************** GROUP		{ return GROUP; }
*** 791,797 ****
  GOBACK		{ return GOBACK; }
  BEAT-FEET	{ return GOBACK; }
  
! GO({SPC}TO)?	{ return GOTO; }
  
  GLOBAL		{ return GLOBAL; }
  GIVING		{ return GIVING; }
--- 791,797 ----
  GOBACK		{ return GOBACK; }
  BEAT-FEET	{ return GOBACK; }
  
! GO({SPC}TO)?/[[:space:]]	{ return GOTO; }
  
  GLOBAL		{ return GLOBAL; }
  GIVING		{ return GIVING; }
*************** USE({SPC}FOR)?		{ return USE; }
*** 1115,1125 ****
    NULLS?		{ return NULLS; }
  
    OF		           { return OF; }
!   VALUE({SPC}IS)?   { return VALUE; }
!   VALUES({SPC}ARE)? { return VALUE; }
    THRU|THROUGH             { return THRU; }
  
!   VALUES?({SPC}(IS|ARE))?{SPC}NULLS? {    return NULLPTR; }
    VALUES?({SPC}(IS|ARE))?/{SPC}[+-]?{dfc} {
                            yy_push_state(numeric_state); return VALUE; }
  
--- 1115,1125 ----
    NULLS?		{ return NULLS; }
  
    OF		           { return OF; }
!   VALUE({SPC}IS)?/[[:space:]]   { return VALUE; }
!   VALUES({SPC}ARE)?/[[:space:]] { return VALUE; }
    THRU|THROUGH             { return THRU; }
  
!   VALUES?({SPC}(IS|ARE))?{SPC}NULLS? { return NULLPTR; }
    VALUES?({SPC}(IS|ARE))?/{SPC}[+-]?{dfc} {
                            yy_push_state(numeric_state); return VALUE; }
  
*************** USE({SPC}FOR)?		{ return USE; }
*** 1688,1694 ****
    SORT		{ return SORT; }
    SORT-MERGE	{ return SORT_MERGE; }
    SOURCE	{ return SOURCE; }
!   SPACE		{ return SPACE; }
    SPACES	{ return SPACES; }
    SPECIAL-NAMES	{ return SPECIAL_NAMES; }
    STANDARD	{ return STANDARD; }
--- 1688,1694 ----
    SORT		{ return SORT; }
    SORT-MERGE	{ return SORT_MERGE; }
    SOURCE	{ return SOURCE; }
!   SPACE		{ return SPACES; }
    SPACES	{ return SPACES; }
    SPECIAL-NAMES	{ return SPECIAL_NAMES; }
    STANDARD	{ return STANDARD; }
*************** USE({SPC}FOR)?		{ return USE; }
*** 1880,1892 ****
  				    yylval.string = xstrdup(yytext);
  				    return NAME; }
  
!   (IS{SPC})?POSITIVE/[[:space:]]  { yylval.number =  IS; return POSITIVE; }
!   (IS{SPC})?NEGATIVE/[[:space:]]  { yylval.number =  IS; return NEGATIVE; }
!   (IS{SPC})?ZERO/[[:space:]]      { yylval.number =  IS; return ZERO; }
  
!   {ISNT}{SPC}POSITIVE/[[:space:]] { yylval.number = NOT; return POSITIVE; }
!   {ISNT}{SPC}NEGATIVE/[[:space:]] { yylval.number = NOT; return NEGATIVE; }
!   {ISNT}{SPC}ZERO/[[:space:]]     { yylval.number = NOT; return ZERO; }
  
    {ISNT}{SPC}/OMITTED { return NOT; }
  
--- 1880,1892 ----
  				    yylval.string = xstrdup(yytext);
  				    return NAME; }
  
!   (IS{SPC})?POSITIVE/[)[:space:]]  { yylval.number =  IS; return POSITIVE; }
!   (IS{SPC})?NEGATIVE/[)[:space:]]  { yylval.number =  IS; return NEGATIVE; }
!   (IS{SPC})?ZERO/[)[:space:]]      { yylval.number =  IS; return ZERO; }
  
!   {ISNT}{SPC}POSITIVE/[)[:space:]] { yylval.number = NOT; return POSITIVE; }
!   {ISNT}{SPC}NEGATIVE/[)[:space:]] { yylval.number = NOT; return NEGATIVE; }
!   {ISNT}{SPC}ZERO/[)[:space:]]     { yylval.number = NOT; return ZERO; }
  
    {ISNT}{SPC}/OMITTED { return NOT; }
  
*************** USE({SPC}FOR)?		{ return USE; }
*** 2279,2284 ****
--- 2279,2289 ----
  		  yylval.string = name;
  		  pop_return NAME;
  	 	}
+   {PREFIX}?['']                { yylval.literal.set_prefix(yytext, yyleng-1);
+ 			  BEGIN(quoted1); }
+   {PREFIX}?[""]                { yylval.literal.set_prefix(yytext, yyleng-1);
+ 			  BEGIN(quoted2); }
+ 
  }
  
  		/*
diff -Nrcpad gcc-17-20260712/gcc/cobol/scan_ante.h gcc-17-20260719/gcc/cobol/scan_ante.h
*** gcc-17-20260712/gcc/cobol/scan_ante.h	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/cobol/scan_ante.h	Sun Jul 19 22:32:06 2026
*************** update_location( const cbl_loc_t *ploc =
*** 462,468 ****
  
    ydflloc = yylloc = loc;
  
!   dbgmsg("  SC: %s location (%d,%d) to (%d,%d)",
           start_condition_is(),
           yylloc.first_line, yylloc.first_column,
           yylloc.last_line,  yylloc.last_column);
--- 462,468 ----
  
    ydflloc = yylloc = loc;
  
!   dbgmsg("  SC: <%s> (%d,%d) to (%d,%d)",
           start_condition_is(),
           yylloc.first_line, yylloc.first_column,
           yylloc.last_line,  yylloc.last_column);
diff -Nrcpad gcc-17-20260712/gcc/cobol/symbols.cc gcc-17-20260719/gcc/cobol/symbols.cc
*** gcc-17-20260712/gcc/cobol/symbols.cc	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/cobol/symbols.cc	Sun Jul 19 22:32:06 2026
*************** static struct symbol_table_t {
*** 97,103 ****
      size_t file_status, linage_counter,
             exception_condition, very_true, very_false;
      registers_t() {
!       file_status = linage_counter = 
          exception_condition = very_true = very_false = 0;
      }
    } registers;
--- 97,103 ----
      size_t file_status, linage_counter,
             exception_condition, very_true, very_false;
      registers_t() {
!       file_status = linage_counter =
          exception_condition = very_true = very_false = 0;
      }
    } registers;
*************** class group_size_t {
*** 308,315 ****
    size_t capacity() const { return size; }
  };
  
- #define constq (constant_e | quoted_e)
- 
  static symbol_elem_t
  elementize( const cbl_field_t& field ) {
    symbol_elem_t sym (SymField);
--- 308,313 ----
*************** static bool label_cmp( const cbl_label_t
*** 442,456 ****
    case LblParagraph:
      switch( elem.type ) {
      case LblNone:
!       // dbgmsg("%s:%d: para %s: key parent %zu, LblNone elem parent %zu", __func__, __LINE__, 
        //        key.name, key.parent, elem.parent);
        // Undefined label element with matching parent or no parent.
!       if( key.parent == elem.parent || elem.parent == 0 ) { 
          return key.line == 0 || elem.line == 0 || key.line == elem.line;
        }
        break;
      case LblParagraph:
!       // dbgmsg("%s:%d: para %s: key parent %zu, elem parent %zu", __func__, __LINE__, 
        //        key.name, key.parent, elem.parent);
        if( key.parent == 0 || key.parent == elem.parent ) { // explicit or implicit
          return key.line == 0 || elem.line == 0 || key.line == elem.line;
--- 440,454 ----
    case LblParagraph:
      switch( elem.type ) {
      case LblNone:
!       // dbgmsg("%s:%d: para %s: key parent %zu, LblNone elem parent %zu", __func__, __LINE__,
        //        key.name, key.parent, elem.parent);
        // Undefined label element with matching parent or no parent.
!       if( key.parent == elem.parent || elem.parent == 0 ) {
          return key.line == 0 || elem.line == 0 || key.line == elem.line;
        }
        break;
      case LblParagraph:
!       // dbgmsg("%s:%d: para %s: key parent %zu, elem parent %zu", __func__, __LINE__,
        //        key.name, key.parent, elem.parent);
        if( key.parent == 0 || key.parent == elem.parent ) { // explicit or implicit
          return key.line == 0 || elem.line == 0 || key.line == elem.line;
*************** symbol_elem_cmp( const void *K, const vo
*** 546,553 ****
      if( (cbl_file_of(k)->attr & global_e) == global_e &&
          (cbl_file_of(e)->attr & global_e) != global_e ) {
        return 1;
      }
-     return strcasecmp(k->elem.file.name, e->elem.file.name);
      break;
    }
    assert(k->type == SymField);
--- 544,559 ----
      if( (cbl_file_of(k)->attr & global_e) == global_e &&
          (cbl_file_of(e)->attr & global_e) != global_e ) {
        return 1;
+     } else {
+       if( 0 == strcasecmp(k->elem.file.name, e->elem.file.name) ) return 0;
+       // User may refer to a Device name (e.g. SYSIN) aliased to the FD name via SELECT.
+       auto file = cbl_file_of(e);
+       if( file->device != 0 ) {
+         auto dev = cbl_special_name_of(symbol_at(file->device));
+         return strcasecmp(k->elem.file.name, dev->name);
+       }
+       return 1;
      }
      break;
    }
    assert(k->type == SymField);
*************** symbols_dump( size_t first, bool header
*** 648,654 ****
  enum protoreq_t {
    proto_required_e,
    proto_allowed_e,
!   proto_disallowed_e, 
  };
  
  static struct symbol_elem_t *
--- 654,660 ----
  enum protoreq_t {
    proto_required_e,
    proto_allowed_e,
!   proto_disallowed_e,
  };
  
  static struct symbol_elem_t *
*************** cbl_field_t::clear_attr( cbl_field_attr_
*** 844,850 ****
  }
  
  // Test various ways a Numeric Edited picture can describe a signed value.
! uint64_t 
  cbl_field_t::set_signable() {
    gcc_assert(type == FldNumericEdited);
    gcc_assert(data.picture);
--- 850,856 ----
  }
  
  // Test various ways a Numeric Edited picture can describe a signed value.
! uint64_t
  cbl_field_t::set_signable() {
    gcc_assert(type == FldNumericEdited);
    gcc_assert(data.picture);
*************** symbols_dump( size_t first, bool header
*** 1144,1151 ****
          auto p = prototype_args(L.name);
          unsigned long narg = p.second? p.first.size() : 0;
          char *base = s;
!         s = xasprintf("%s (%s%zu args)",  base, 
!                       L.prototype? "prototype, " : "", 
                        narg);
          free(base);
        }
--- 1150,1157 ----
          auto p = prototype_args(L.name);
          unsigned long narg = p.second? p.first.size() : 0;
          char *base = s;
!         s = xasprintf("%s (%s%zu args)",  base,
!                       L.prototype? "prototype, " : "",
                        narg);
          free(base);
        }
*************** cbl_field_t::attr_str( const std::vector
*** 1536,1542 ****
    const char *sep = "";
    char *out = NULL;
    uint64_t mask = cbl_field_attr_t(-1);
!   
    for( auto attr_l : attrs ) {
      char *part = out;
      if( has_attr(attr_l) && (attr_l & mask) == attr_l) {
--- 1542,1548 ----
    const char *sep = "";
    char *out = NULL;
    uint64_t mask = cbl_field_attr_t(-1);
! 
    for( auto attr_l : attrs ) {
      char *part = out;
      if( has_attr(attr_l) && (attr_l & mask) == attr_l) {
*************** field_str( const cbl_field_t *field ) {
*** 1641,1647 ****
    if( field->attr & local_e )   storage_type = 'w'; // because 'l' hard to read
  
    static const std::vector<cbl_field_attr_t> attrs {
!     strongdef_e, typedef_e, 
      figconst_1_e, figconst_2_e, figconst_4_e, rjust_e, ljust_e,
      zeros_e, signable_e, constant_e, function_e, quoted_e, filler_e,
      intermediate_e, embiggened_e, all_alpha_e, all_x_e,
--- 1647,1653 ----
    if( field->attr & local_e )   storage_type = 'w'; // because 'l' hard to read
  
    static const std::vector<cbl_field_attr_t> attrs {
!     strongdef_e, typedef_e,
      figconst_1_e, figconst_2_e, figconst_4_e, rjust_e, ljust_e,
      zeros_e, signable_e, constant_e, function_e, quoted_e, filler_e,
      intermediate_e, embiggened_e, all_alpha_e, all_x_e,
*************** field_str( const cbl_field_t *field ) {
*** 1649,1655 ****
      /* global_e, external_e, */ blank_zero_e, /* linkage_e, local_e, */ leading_e,
      separate_e, envar_e, encoded_e, bool_encoded_e, hex_encoded_e,
      depends_on_e, /* initialized_e, */ has_value_e, ieeedec_e, big_endian_e,
!     same_as_e, record_key_e, 
    };
  
    pend += snprintf(pend, string + sizeof(string) - pend,
--- 1655,1661 ----
      /* global_e, external_e, */ blank_zero_e, /* linkage_e, local_e, */ leading_e,
      separate_e, envar_e, encoded_e, bool_encoded_e, hex_encoded_e,
      depends_on_e, /* initialized_e, */ has_value_e, ieeedec_e, big_endian_e,
!     same_as_e, record_key_e,
    };
  
    pend += snprintf(pend, string + sizeof(string) - pend,
*************** symbols_update( size_t first, bool parse
*** 1992,1998 ****
      }
  
      // This test is a little too broad, but avoids a special attribute bit for
!     // things like the XML registers.  The tests are only internal checks anyway. 
      if( ! (is_numeric(field) ||
             field->has_attr(register_e) ||
             field->has_attr(global_e)) ) {
--- 1998,2004 ----
      }
  
      // This test is a little too broad, but avoids a special attribute bit for
!     // things like the XML registers.  The tests are only internal checks anyway.
      if( ! (is_numeric(field) ||
             field->has_attr(register_e) ||
             field->has_attr(global_e)) ) {
*************** add_token( symbol_elem_t sym ) {
*** 2337,2342 ****
--- 2343,2375 ----
  
  const std::list<cbl_field_t> cdf_literalize();
  
+ static
+ cbl_field_attr_t endian_bit()
+   {
+   cbl_field_attr_t retval;
+   if( cobol_target_big_endian() ) // cppcheck-suppress knownConditionTrueFalse
+     {
+     retval = big_endian_e;
+     }
+   else
+     {
+     volatile int always_one = 1;
+     /* This tortured construction prevents cppcheck from pointing out that
+        endian_bit() always returns zero on a little-endian machine, which is
+        redundant in a "register_e | endian_bit()" expression. */
+     if( always_one )
+       {
+       retval = none_e;
+       }
+     else
+       {
+       gcc_unreachable();
+       retval = big_endian_e;
+       }
+     }
+   return retval;
+   }
+ 
  /*
   * When adding special registers, be sure to create the actual cblc_field_t
   * in libgcobol/constants.cc.
*************** symbol_table_init(void) {
*** 2358,2382 ****
  
    // These should match the definitions in libgcobol/constants.cc
    static cbl_field_t constants[] = {
!     { FldAlphanumeric, SPACE_VALUE_E | constq | register_e,
!       {1,1,0,0, " \0\xFF"}, 0, "SPACE", cp1252 },
!     { FldAlphanumeric, SPACE_VALUE_E | constq | register_e,
        {1,1,0,0, " \0\xFF"}, 0, "SPACES", cp1252 },
!     { FldAlphanumeric, LOW_VALUE_E | constq | register_e,
        {1,1,0,0, "L\0\xFF"}, 0, "LOW_VALUES", cp1252 },
!     { FldAlphanumeric, ZERO_VALUE_E | constq | register_e,
        {1,1,0,0, "0"}, 0, "ZEROS", cp1252 }, // Don't change "ZEROS"; there are
                                              // things that depend on it.
!     { FldAlphanumeric, HIGH_VALUE_E | constq | register_e,
        {1,1,0,0, "H\0\xFF"}, 0, "HIGH_VALUES", cp1252 },
      // IBM standard: QUOTE is a double-quote unless APOST compiler option
!     { FldAlphanumeric, QUOTE_VALUE_E | constq | register_e ,
        {1,1,0,0, "\"\0\xFF"}, 0, "QUOTES", cp1252 },
!     { FldPointer, constq | register_e ,
        {8,8,0,0, zeroes_for_null_pointer}, 0, "NULLS", cp1252 },
      // 01  ARGI is the current index into the argv array
!     { FldNumericBin5, signable_e | register_e,
!       {16, 16, MAX_FIXED_POINT_DIGITS, 0, NULL}, 0, "_ARGI", cp1252 },
  
      // These last two don't require actual storage; they get BOOL var_decl_node
      // in parser_symbol_add()
--- 2391,2417 ----
  
    // These should match the definitions in libgcobol/constants.cc
    static cbl_field_t constants[] = {
!     { FldAlphanumeric, quoted_e | constant_e | register_e | space_value_e,
        {1,1,0,0, " \0\xFF"}, 0, "SPACES", cp1252 },
!     { FldAlphanumeric, quoted_e | constant_e | register_e | low_value_e,
        {1,1,0,0, "L\0\xFF"}, 0, "LOW_VALUES", cp1252 },
!     { FldAlphanumeric, quoted_e | constant_e | register_e | zero_value_e,
        {1,1,0,0, "0"}, 0, "ZEROS", cp1252 }, // Don't change "ZEROS"; there are
                                              // things that depend on it.
!     { FldAlphanumeric, quoted_e | constant_e | register_e | high_value_e,
        {1,1,0,0, "H\0\xFF"}, 0, "HIGH_VALUES", cp1252 },
      // IBM standard: QUOTE is a double-quote unless APOST compiler option
!     { FldAlphanumeric, quoted_e | constant_e | register_e | quote_value_e ,
        {1,1,0,0, "\"\0\xFF"}, 0, "QUOTES", cp1252 },
!     { FldPointer, constant_e | register_e | null_value_e ,
        {8,8,0,0, zeroes_for_null_pointer}, 0, "NULLS", cp1252 },
      // 01  ARGI is the current index into the argv array
!     { FldNumericBin5, signable_e | register_e | endian_bit(),
!       {4, 4, 0, 0, NULL}, 0, "_ARGI", cp1252 },
!     { FldNumericBin5, constant_e | register_e | endian_bit(),
!       {4, 4, 0, 0, NULL}, 0, "_literally_zero", cp1252 },
!     { FldNumericBin5, constant_e | register_e | endian_bit(),
!       {4, 4, 0, 0, NULL}, 0, "_literally_one", cp1252 },
  
      // These last two don't require actual storage; they get BOOL var_decl_node
      // in parser_symbol_add()
*************** symbol_table_init(void) {
*** 2396,2436 ****
    }
  
    static symbol_elem_t environs[] = {
!     { symbol_elem_t{ 0, cbl_special_name_t{0, CONSOLE_e, "CONSOLE", 0, "/dev/stdout"}} }, // stdout in DISPLAY; stdin in ACCEPT
  
!     { symbol_elem_t{ 0, cbl_special_name_t{0, STDIN_e, "STDIN", 0, "/dev/stdin"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, SYSIN_e, "SYSIN", 0, "/dev/stdin"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, SYSIPT_e, "SYSIPT", 0, "/dev/stdin"}} },
  
!     { symbol_elem_t{ 0, cbl_special_name_t{0, STDOUT_e, "STDOUT", 0, "/dev/stdout"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, SYSOUT_e, "SYSOUT", 0, "/dev/stdout"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, SYSLIST_e, "SYSLIST", 0, "/dev/stdout"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, SYSLST_e, "SYSLST", 0, "/dev/stdout"}} },
  
!     { symbol_elem_t{ 0, cbl_special_name_t{0, SYSPUNCH_e, "SYSPUNCH", 0, "/dev/stderr"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, SYSPCH_e, "SYSPCH", 0, "/dev/stderr"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, STDERR_e, "STDERR", 0, "/dev/stderr"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, SYSERR_e, "SYSERR", 0, "/dev/stderr"}} },
  
!     { symbol_elem_t{ 0, cbl_special_name_t{0, C01_e, "C01", 0, "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, C02_e, "C02", 0, "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, C03_e, "C03", 0, "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, C04_e, "C04", 0, "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, C05_e, "C05", 0, "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, C06_e, "C06", 0, "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, C07_e, "C07", 0, "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, C08_e, "C08", 0, "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, C09_e, "C09", 0, "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, C10_e, "C10", 0, "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, C11_e, "C11", 0, "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, C12_e, "C12", 0, "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, CSP_e, "CSP", 0, "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, S01_e, "S01", 0, "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, S02_e, "S02", 0, "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, S03_e, "S03", 0, "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, S04_e, "S04", 0, "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, S05_e, "S05", 0, "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, AFP_5A_e, "AFP-5A", 0, "/dev/null"}} },
    };
  
    struct symbol_elem_t *p = table.elems + table.nelem;
--- 2431,2471 ----
    }
  
    static symbol_elem_t environs[] = {
!     { symbol_elem_t{ 0, cbl_special_name_t{0, CONSOLE_e, "CONSOLE", "/dev/stdout"}} }, // stdout in DISPLAY; stdin in ACCEPT
  
!     { symbol_elem_t{ 0, cbl_special_name_t{0, STDIN_e, "STDIN", "/dev/stdin"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, SYSIN_e, "SYSIN", "/dev/stdin"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, SYSIPT_e, "SYSIPT", "/dev/stdin"}} },
  
!     { symbol_elem_t{ 0, cbl_special_name_t{0, STDOUT_e, "STDOUT", "/dev/stdout"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, SYSOUT_e, "SYSOUT", "/dev/stdout"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, SYSLIST_e, "SYSLIST", "/dev/stdout"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, SYSLST_e, "SYSLST", "/dev/stdout"}} },
  
!     { symbol_elem_t{ 0, cbl_special_name_t{0, SYSPUNCH_e, "SYSPUNCH", "/dev/stderr"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, SYSPCH_e, "SYSPCH", "/dev/stderr"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, STDERR_e, "STDERR", "/dev/stderr"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, SYSERR_e, "SYSERR", "/dev/stderr"}} },
  
!     { symbol_elem_t{ 0, cbl_special_name_t{0, C01_e, "C01", "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, C02_e, "C02", "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, C03_e, "C03", "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, C04_e, "C04", "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, C05_e, "C05", "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, C06_e, "C06", "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, C07_e, "C07", "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, C08_e, "C08", "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, C09_e, "C09", "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, C10_e, "C10", "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, C11_e, "C11", "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, C12_e, "C12", "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, CSP_e, "CSP", "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, S01_e, "S01", "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, S02_e, "S02", "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, S03_e, "S03", "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, S04_e, "S04", "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, S05_e, "S05", "/dev/null"}} },
!     { symbol_elem_t{ 0, cbl_special_name_t{0, AFP_5A_e, "AFP-5A", "/dev/null"}} },
    };
  
    struct symbol_elem_t *p = table.elems + table.nelem;
*************** symbol_table_init(void) {
*** 2479,2485 ****
        {5,5,4,0, NULL},     2, "DEBUG-SUB-3", cp1252 },
      { FldAlphanumeric, register_e | filler_e,
        {1,1,0,0, " "},      2, "FILLER", cp1252 },
!     { FldAlphanumeric, signable_e | register_e,
        {76,76,0,0, NULL},   2, "DEBUG-CONTENTS", cp1252 },
    };
  
--- 2514,2520 ----
        {5,5,4,0, NULL},     2, "DEBUG-SUB-3", cp1252 },
      { FldAlphanumeric, register_e | filler_e,
        {1,1,0,0, " "},      2, "FILLER", cp1252 },
!     { FldAlphanumeric, register_e,
        {76,76,0,0, NULL},   2, "DEBUG-CONTENTS", cp1252 },
    };
  
*************** symbol_table_init(void) {
*** 2501,2513 ****
  
    // special registers
    static cbl_field_t special_registers[] = {
!     { FldNumericDisplay, register_e, {2,2,2,0, NULL}, 0, "_FILE_STATUS", cp1252 },
!     { FldNumericBin5,    register_e, {2,2,4,0, NULL}, 0, "UPSI-0", cp1252 },
!     { FldNumericBin5,    global_e, {2,2,4,0, NULL}, 0, "LINAGE-COUNTER", cp1252 },
!     { FldLiteralA,        register_e, {0,0,0,0, "/dev/stdin"}, 0, "_dev_stdin", cp1252 },
!     { FldLiteralA, constq|register_e, {0,0,0,0, "/dev/stdout"}, 0, "_dev_stdout", cp1252 },
!     { FldLiteralA, constq|register_e, {0,0,0,0, "/dev/stderr"}, 0, "_dev_stderr", cp1252 },
!     { FldLiteralA, constq|register_e, {0,0,0,0, "/dev/null"},   0, "_dev_null", cp1252 },
    };
  
    assert(table.nelem + COUNT_OF(special_registers) < table.capacity);
--- 2536,2555 ----
  
    // special registers
    static cbl_field_t special_registers[] = {
!     { FldNumericDisplay, register_e,
!                           {2,2,2,0, NULL}, 0, "_FILE_STATUS", cp1252 },
!     { FldNumericBin5,    register_e | endian_bit(),
!                           {2,2,4,0, NULL}, 0, "UPSI-0", cp1252 },
!     { FldNumericBin5,    global_e | endian_bit(),
!                           {2,2,4,0, NULL}, 0, "LINAGE-COUNTER", cp1252 },
!     { FldLiteralA, constant_e|quoted_e|register_e,
!                           {0,0,0,0, "/dev/stdin"}, 0, "_dev_stdin", cp1252 },
!     { FldLiteralA, constant_e|quoted_e|register_e,
!                           {0,0,0,0, "/dev/stdout"}, 0, "_dev_stdout", cp1252 },
!     { FldLiteralA, constant_e|quoted_e|register_e,
!                           {0,0,0,0, "/dev/stderr"}, 0, "_dev_stderr", cp1252 },
!     { FldLiteralA, constant_e|quoted_e|register_e,
!                           {0,0,0,0, "/dev/null"},   0, "_dev_null", cp1252 },
    };
  
    assert(table.nelem + COUNT_OF(special_registers) < table.capacity);
*************** symbol_table_init(void) {
*** 2519,2525 ****
    table.nelem = p - table.elems;
    assert(table.nelem < table.capacity);
  
!   // Add any CDF values defined on the command line. 
    // After symbols are ready, the CDF adds them directly.
    const std::list<cbl_field_t> cdf_values = cdf_literalize();
    auto icdf = table.nelem;
--- 2561,2567 ----
    table.nelem = p - table.elems;
    assert(table.nelem < table.capacity);
  
!   // Add any CDF values defined on the command line.
    // After symbols are ready, the CDF adds them directly.
    const std::list<cbl_field_t> cdf_values = cdf_literalize();
    auto icdf = table.nelem;
*************** symbol_table_init(void) {
*** 2540,2546 ****
        f.set_initial(cbl_loc_t());
      }
    }
!   
    for( auto e = symbols.elems; e < symbols.elems + symbols.nelem; e++ ) {
      if( e->type == SymField ) {
        update_symbol_map2(e);
--- 2582,2588 ----
        f.set_initial(cbl_loc_t());
      }
    }
! 
    for( auto e = symbols.elems; e < symbols.elems + symbols.nelem; e++ ) {
      if( e->type == SymField ) {
        update_symbol_map2(e);
*************** symbol_registers_add() {
*** 2602,2607 ****
--- 2644,2651 ----
    const static cbl_field_t::codeset_t cp1252(CP1252_e);
    const static auto based_any = cbl_field_attr_t(global_e | based_e | any_length_e);
    const static auto glosig    = cbl_field_attr_t(global_e | signable_e);
+   const static auto native    = glosig | endian_bit();
+ 
    // The data.initial of these fields is used verbatim by parser_symbol_add.
    const static char zero[4] = {0};
          static char spc[160] = " ";
*************** symbol_registers_add() {
*** 2609,2615 ****
    if( spc[1] != 0x20 ) {
      std::fill( spc, spc + sizeof(spc), 0x20 );
    }
!     
    /* In the following table, the FldNumericBin5 initial values are strings with
       NUL characters in them.  That's because this table bypasses the encode_numeric
       function and the values are passed directly to parser_symbol_add(), which
--- 2653,2659 ----
    if( spc[1] != 0x20 ) {
      std::fill( spc, spc + sizeof(spc), 0x20 );
    }
! 
    /* In the following table, the FldNumericBin5 initial values are strings with
       NUL characters in them.  That's because this table bypasses the encode_numeric
       function and the values are passed directly to parser_symbol_add(), which
*************** symbol_registers_add() {
*** 2617,2640 ****
       memory representation of the run-time variable.  */
  
    static const cbl_field_t ibm_registers[] = {
! #if COBOL_JSON_READY    
!     { FldNumericBin5,  glosig,    {4,4,5,0, zero    }, 0, "JSON-CODE", cp1252 },
!     { FldNumericBin5,  glosig,    {4,4,5,0, zero    }, 0, "JSON-STATUS", cp1252 },
  #endif
!     { FldNumericBin5,  glosig,    {2,2,4,0, zero    }, 0, "RETURN-CODE", cp1252 },
      { FldAlphanumeric, glosig,    {160,160,0,0, spc }, 0, "SORT-CONTROL", cp1252 },
!     { FldNumericBin5,  glosig,    {4,4,5,0, zero    }, 0, "SORT-CORE-SIZE", cp1252 },
!     { FldNumericBin5,  glosig,    {4,4,5,0, zero    }, 0, "SORT-FILE-SIZE", cp1252 },
      { FldAlphanumeric, global_e,  {8,8,0,0, spc     }, 0, "SORT-MESSAGE", cp1252 },
!     { FldNumericBin5,  glosig,    {4,4,5,0, zero    }, 0, "SORT-MODE-SIZE", cp1252 },
!     { FldNumericBin5,  glosig,    {4,4,5,0, zero    }, 0, "SORT-RETURN", cp1252 },
      // 01  TALLY GLOBAL PICTURE 9(5) USAGE BINARY VALUE ZERO.
      { FldNumericBin5,  global_e,  {4,4,5,0, zero    }, 0, "_TALLY", cp1252 },
      { FldAlphanumeric, global_e,  {16,16,0,0, spc   }, 0, "WHEN-COMPILED", cp1252 },
      // xml registers
!     { FldNumericBin5,  glosig,    {4,4,9,0, zero    }, 0, "XML-CODE", cp1252 },
      { FldAlphanumeric, global_e,  {30,30,0,0, spc   }, 0, "XML-EVENT", cp1252 },
!     { FldNumericBin5,  glosig,    {4,4,9,0, zero    }, 0, "XML-INFORMATION", cp1252 },
      { FldAlphanumeric, based_any, {1,1,0,0, nullptr }, 0, "XML-NAMESPACE", cp1252 },
      { FldAlphanumeric, based_any, {1,1,0,0, nullptr }, 0, "XML-NNAMESPACE", cp1252 },
      { FldAlphanumeric, based_any, {1,1,0,0, nullptr }, 0, "XML-NAMESPACE-PREFIX", cp1252 },
--- 2661,2684 ----
       memory representation of the run-time variable.  */
  
    static const cbl_field_t ibm_registers[] = {
! #if COBOL_JSON_READY
!     { FldNumericBin5,  native,    {4,4,5,0, zero    }, 0, "JSON-CODE", cp1252 },
!     { FldNumericBin5,  native,    {4,4,5,0, zero    }, 0, "JSON-STATUS", cp1252 },
  #endif
!     { FldNumericBin5,  native,    {2,2,4,0, zero    }, 0, "RETURN-CODE", cp1252 },
      { FldAlphanumeric, glosig,    {160,160,0,0, spc }, 0, "SORT-CONTROL", cp1252 },
!     { FldNumericBin5,  native,    {4,4,5,0, zero    }, 0, "SORT-CORE-SIZE", cp1252 },
!     { FldNumericBin5,  native,    {4,4,5,0, zero    }, 0, "SORT-FILE-SIZE", cp1252 },
      { FldAlphanumeric, global_e,  {8,8,0,0, spc     }, 0, "SORT-MESSAGE", cp1252 },
!     { FldNumericBin5,  native,    {4,4,5,0, zero    }, 0, "SORT-MODE-SIZE", cp1252 },
!     { FldNumericBin5,  native,    {4,4,5,0, zero    }, 0, "SORT-RETURN", cp1252 },
      // 01  TALLY GLOBAL PICTURE 9(5) USAGE BINARY VALUE ZERO.
      { FldNumericBin5,  global_e,  {4,4,5,0, zero    }, 0, "_TALLY", cp1252 },
      { FldAlphanumeric, global_e,  {16,16,0,0, spc   }, 0, "WHEN-COMPILED", cp1252 },
      // xml registers
!     { FldNumericBin5,  native,    {4,4,9,0, zero    }, 0, "XML-CODE", cp1252 },
      { FldAlphanumeric, global_e,  {30,30,0,0, spc   }, 0, "XML-EVENT", cp1252 },
!     { FldNumericBin5,  native,    {4,4,9,0, zero    }, 0, "XML-INFORMATION", cp1252 },
      { FldAlphanumeric, based_any, {1,1,0,0, nullptr }, 0, "XML-NAMESPACE", cp1252 },
      { FldAlphanumeric, based_any, {1,1,0,0, nullptr }, 0, "XML-NNAMESPACE", cp1252 },
      { FldAlphanumeric, based_any, {1,1,0,0, nullptr }, 0, "XML-NAMESPACE-PREFIX", cp1252 },
*************** symbol_registers_add() {
*** 2657,2663 ****
  
  const cbl_label_t *
  cbl_perform_tgt_t::recurses( const cbl_label_t *para __attribute__ ((unused)),
!                              const cbl_label_t *sect __attribute__ ((unused)) ) const 
  {
    // Mon Jul  6 11:14:12 2026
    // Decided not to enforce until we enforce EC-FLOW-IMP-RECURSION or
--- 2701,2707 ----
  
  const cbl_label_t *
  cbl_perform_tgt_t::recurses( const cbl_label_t *para __attribute__ ((unused)),
!                              const cbl_label_t *sect __attribute__ ((unused)) ) const
  {
    // Mon Jul  6 11:14:12 2026
    // Decided not to enforce until we enforce EC-FLOW-IMP-RECURSION or
*************** symbol_literalA( size_t program, const c
*** 3007,3013 ****
    cbl_field_t field = {};
    field.type = FldLiteralA;
    field.data.initial = name;
!   field.attr = constq;
  
    struct symbol_elem_t key { program, field };
  
--- 3051,3057 ----
    cbl_field_t field = {};
    field.type = FldLiteralA;
    field.data.initial = name;
!   field.attr = constant_e | quoted_e;
  
    struct symbol_elem_t key { program, field };
  
*************** cbl_alphabet_t::reencode( const cbl_loc_
*** 3519,3525 ****
         UTF-32/LE/BE.  What collation means in those environments is unknown to
         me at this time.  So, for now I am simply assuming that whatever we are
         doing here fits into a single byte.
!        
         So, for SBC or little-endian character sets, we just pick up the value
         at pos[0].  For big-endian character sets, we find the low-order byte.
         */
--- 3563,3569 ----
         UTF-32/LE/BE.  What collation means in those environments is unknown to
         me at this time.  So, for now I am simply assuming that whatever we are
         doing here fits into a single byte.
! 
         So, for SBC or little-endian character sets, we just pick up the value
         at pos[0].  For big-endian character sets, we find the low-order byte.
         */
*************** symbol_temporary_alphanumerics() {
*** 3620,3626 ****
    symbol_temporaries_t output;
    std::copy_if( program_temporaries.begin(),
                  program_temporaries.end(),
!                 std::back_inserter(output), 
                  []( auto f ) {
                    switch(f->type) {
                    case FldAlphaEdited:
--- 3664,3670 ----
    symbol_temporaries_t output;
    std::copy_if( program_temporaries.begin(),
                  program_temporaries.end(),
!                 std::back_inserter(output),
                  []( auto f ) {
                    switch(f->type) {
                    case FldAlphaEdited:
*************** new_literal_add( const char initial[], u
*** 3758,3764 ****
      field->attr |= attr;
  
      char *orig = static_cast<char *>(xmalloc(len+4));
!     
      auto p = initial? std::copy(initial, initial + len, orig) : orig;
      std::fill(p, p+4, 0);
      field->data.original(orig);
--- 3802,3808 ----
      field->attr |= attr;
  
      char *orig = static_cast<char *>(xmalloc(len+4));
! 
      auto p = initial? std::copy(initial, initial + len, orig) : orig;
      std::fill(p, p+4, 0);
      field->data.original(orig);
*************** new_temporary_clone( const cbl_field_t *
*** 4070,4075 ****
--- 4114,4122 ----
    if( field->type == FldNumericBin5 ) {
      field->type = orig->type;
      field->codeset = orig->codeset;
+     field->attr &= ~big_endian_e;
+     field->attr |= endian_bit();
+ 
    }
    field->attr = intermediate_e;
  
*************** iconv_cd( cbl_encoding_t tgt ) {
*** 4196,4207 ****
    iconv_key_t key(tgt, src);
    auto p = cds.find(key);
    iconv_t cd;
!     
    if( p == cds.end() ) {
      const char *fromcode = __gg__encoding_iconv_name(src);
!     const char *tocode   = __gg__encoding_iconv_name(tgt);    
      gcc_assert(fromcode && tocode);
!     
      if( (cd = helpful_iconv_open(tocode, fromcode)) == iconv_t(-1) ) {
        return cd;
      }
--- 4243,4254 ----
    iconv_key_t key(tgt, src);
    auto p = cds.find(key);
    iconv_t cd;
! 
    if( p == cds.end() ) {
      const char *fromcode = __gg__encoding_iconv_name(src);
!     const char *tocode   = __gg__encoding_iconv_name(tgt);
      gcc_assert(fromcode && tocode);
! 
      if( (cd = helpful_iconv_open(tocode, fromcode)) == iconv_t(-1) ) {
        return cd;
      }
*************** cbl_field_t::encode( size_t srclen, cbl_
*** 4234,4240 ****
      }
  
    extern cbl_loc_t yylloc;
!   
    const char *bad_boy = data.original();
    if( 0 == loc.first_line )
      loc = level == 0 ? cbl_loc_t(yylloc) : symbol_field_location(field_index(this));
--- 4281,4287 ----
      }
  
    extern cbl_loc_t yylloc;
! 
    const char *bad_boy = data.original();
    if( 0 == loc.first_line )
      loc = level == 0 ? cbl_loc_t(yylloc) : symbol_field_location(field_index(this));
*************** cbl_field_t::encode( size_t srclen, cbl_
*** 4255,4267 ****
                const_cast<char*>(data.initial));
      return nullptr; // may return "truncated success" with error.
    }
!   
    auto figconst = cbl_figconst_of(data.original());
    if( normal_value_e != figconst ) {
!     blank_initial( char_capacity(), figconst ); 
      return nullptr;
    }
!   
    for( auto src = codeset.default_encodings.current_source_encoding();
         src;
         src = codeset.default_encodings.next_source_encoding() ) {
--- 4302,4314 ----
                const_cast<char*>(data.initial));
      return nullptr; // may return "truncated success" with error.
    }
! 
    auto figconst = cbl_figconst_of(data.original());
    if( normal_value_e != figconst ) {
!     blank_initial( char_capacity(), figconst );
      return nullptr;
    }
! 
    for( auto src = codeset.default_encodings.current_source_encoding();
         src;
         src = codeset.default_encodings.next_source_encoding() ) {
*************** cbl_field_t::encode( size_t srclen, cbl_
*** 4279,4287 ****
                  xstrerror(errno));
        continue;
      }
!     
      /*
!      * If conversion succeeds, return NULL.  
       * If it fails, try the next potential encoding.
       */
      size_t inbytesleft = srclen, outbytesleft = data.capacity();
--- 4326,4334 ----
                  xstrerror(errno));
        continue;
      }
! 
      /*
!      * If conversion succeeds, return NULL.
       * If it fails, try the next potential encoding.
       */
      size_t inbytesleft = srclen, outbytesleft = data.capacity();
*************** cbl_field_t::encode( size_t srclen, cbl_
*** 4299,4305 ****
            // Tolerate trailing zeros for P-values
            if( data.rdigits < 0 ) {
              if( inbytesleft <= size_t(data.rdigits * -1) ) {
!              bool all_zeros = std::all_of(reinterpret_cast<const char*>(inbuf), 
                                            data.original() + srclen,
                                            [](char ch) {
                                              return '0' == ch;
--- 4346,4352 ----
            // Tolerate trailing zeros for P-values
            if( data.rdigits < 0 ) {
              if( inbytesleft <= size_t(data.rdigits * -1) ) {
!              bool all_zeros = std::all_of(reinterpret_cast<const char*>(inbuf),
                                            data.original() + srclen,
                                            [](char ch) {
                                              return '0' == ch;
*************** cbl_field_t::encode( size_t srclen, cbl_
*** 4308,4320 ****
              }
            }
          }
!         error_msg( loc, 
                     "VALUE %qs is too long to initialize %qs, discarded %qs",
                     data.original(), name, inbuf);
          return nullptr; // success-ish
        }
        dbgmsg("'%c' of '%s'[%lu] could not be converted from %s to %s: %s",
!              *inbuf, data.original(), inbuf - data.original(), 
               cbl_encoding_str(
                     codeset.default_encodings.current_source_encoding()->type),
               cbl_encoding_str(codeset.encoding),
--- 4355,4367 ----
              }
            }
          }
!         error_msg( loc,
                     "VALUE %qs is too long to initialize %qs, discarded %qs",
                     data.original(), name, inbuf);
          return nullptr; // success-ish
        }
        dbgmsg("'%c' of '%s'[%lu] could not be converted from %s to %s: %s",
!              *inbuf, data.original(), inbuf - data.original(),
               cbl_encoding_str(
                     codeset.default_encodings.current_source_encoding()->type),
               cbl_encoding_str(codeset.encoding),
*************** cbl_field_t::set_capacity(size_t nchar)
*** 4370,4376 ****
          } else {
            data.capacity( capacity_cast(nchar) * codeset.stride() );
          }
!           
        } else {
          cbl_internal_error("%s: %s %s has invalid encoding",
                             __func__, cbl_field_type_str(type), name);
--- 4417,4423 ----
          } else {
            data.capacity( capacity_cast(nchar) * codeset.stride() );
          }
! 
        } else {
          cbl_internal_error("%s: %s %s has invalid encoding",
                             __func__, cbl_field_type_str(type), name);
*************** cbl_label_t::str() const {
*** 4408,4414 ****
    char *buf;
    switch(type) {
    case LblParagraph:
!     buf = xasprintf("%-12s %s OF #%ld %s, line %d", type_str() + 3, name, parent, 
                      parent? cbl_label_of(symbol_at(parent))->name : "", line);
      break;
    case LblProgram:
--- 4455,4461 ----
    char *buf;
    switch(type) {
    case LblParagraph:
!     buf = xasprintf("%-12s %s OF #%ld %s, line %d", type_str() + 3, name, parent,
                      parent? cbl_label_of(symbol_at(parent))->name : "", line);
      break;
    case LblProgram:
*************** cbl_file_t::keys_str() const {
*** 5434,5439 ****
--- 5481,5508 ----
    return xasprintf("%s", names.c_str());
  }
  
+ size_t
+ cbl_file_t::special_index( special_name_t id ) {
+   cbl_special_name_t special = { 0, id };
+   struct symbol_elem_t key { 0, special }, *e;
+ 
+   e = static_cast<struct symbol_elem_t *>(lfind( &key, symbols.elems,
+                                                  &symbols.nelem, sizeof(key),
+                                                  symbol_elem_cmp ) );
+   assert(e);
+   return symbol_index(e);
+ }
+ 
+ const char *
+ cbl_file_t::filename_of() const {
+   if( filename != 0 ) { return cbl_field_of(symbol_at(filename))->name; }
+   if( device != 0 ) {
+     auto dev = cbl_special_name_of(symbol_at(device));
+     if( dev->os_filename[0] != '\0' ) return dev->os_filename; 
+   }
+   return nullptr;
+ }
+ 
  /*
   * _FILE_STATUS symbols
   */
diff -Nrcpad gcc-17-20260712/gcc/cobol/symbols.h gcc-17-20260719/gcc/cobol/symbols.h
*** gcc-17-20260712/gcc/cobol/symbols.h	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/cobol/symbols.h	Sun Jul 19 22:32:06 2026
*************** protected:
*** 1411,1416 ****
--- 1411,1422 ----
      if( crv == by_reference_e ) return false;
      return refer.field != NULL;
    }
+   static bool capacity_ok( const cbl_field_t *formal, const cbl_field_t *actual ) {
+     if( formal->data.capacity() == actual->data.capacity() ) return true;
+     if( formal->data.capacity() == 1 && formal->has_attr(any_length_e) ) return true;
+     if( actual->data.capacity() == 1 && actual->has_attr(any_length_e) ) return true;
+     return false;
+   }
  };
  
  // In support of serial/linear search:
*************** struct cbl_locale_t {
*** 1837,1847 ****
    }
  };
  
  struct cbl_special_name_t {
    int token;
    enum special_name_t id;
    cbl_name_t name;
-   size_t filename;
    char os_filename[16]; // short because always in /dev
  };
  
--- 1843,1856 ----
    }
  };
  
+ /*
+  * If SELECT name ASSIGN TO DEVICE is used, the index of the special name is
+  * assigned to cbl_file_t::device.  The device itself never changes. 
+  */
  struct cbl_special_name_t {
    int token;
    enum special_name_t id;
    cbl_name_t name;
    char os_filename[16]; // short because always in /dev
  };
  
*************** struct cbl_file_t {
*** 2116,2122 ****
    // "The RECORD DELIMITER clause is syntax checked, but has no effect
    //  on the execution of the program."
    enum cbl_file_access_t access;
!   size_t filename;      //
    size_t default_record;
    size_t nkey;          // 1st key is primary & unique
    cbl_file_key_t *keys; // indexes into symbol table for key field(s)
--- 2125,2131 ----
    // "The RECORD DELIMITER clause is syntax checked, but has no effect
    //  on the execution of the program."
    enum cbl_file_access_t access;
!   size_t filename, device;
    size_t default_record;
    size_t nkey;          // 1st key is primary & unique
    cbl_file_key_t *keys; // indexes into symbol table for key field(s)
*************** struct cbl_file_t {
*** 2150,2156 ****
      , optional(false)
      , varying_size{ false, 0, 0 }
      , access(file_access_seq_e)
!     , filename(0)
      , default_record(0)
      , nkey(0)
      , keys(nullptr)
--- 2159,2165 ----
      , optional(false)
      , varying_size{ false, 0, 0 }
      , access(file_access_seq_e)
!     , filename(0), device(0)
      , default_record(0)
      , nkey(0)
      , keys(nullptr)
*************** struct cbl_file_t {
*** 2163,2168 ****
--- 2172,2178 ----
    }
    
    bool varies() const { return varying_size.min != varying_size.max; }
+   void assign( special_name_t device ) { this->device = special_index(device); }
    bool validate() const;
    void deforward();
    cbl_file_key_t * keys_update( cbl_file_key_t * keys ) {
*************** struct cbl_file_t {
*** 2182,2190 ****
--- 2192,2202 ----
      return org == file_indexed_e && access == file_access_seq_e;
    }
    void consider_for_default( const cbl_field_t *record );
+   const char * filename_of() const;
   protected:
    bool validate_forward( size_t isym ) const;
    bool validate_key( const cbl_file_key_t& key ) const;
+   static size_t special_index( special_name_t device );
  };
  
  static inline bool
*************** cbl_namelist_t teed_up_names();
*** 2850,2856 ****
  
  size_t end_of_group( size_t igroup );
  
- symbol_elem_t * symbol_typedef( size_t program, std::list<const char *> names );
  symbol_elem_t * symbol_typedef( size_t program, const char name[] );
  symbol_elem_t * symbol_field( size_t program, size_t parent, const char name[] );
  cbl_label_t *   symbol_label( size_t program, cbl_label_type_t type,
--- 2862,2867 ----
*************** symbol_elem_t * symbol_literalA( size_t
*** 2866,2871 ****
--- 2877,2884 ----
  
  cbl_special_name_t * symbol_special( special_name_t id );
  symbol_elem_t * symbol_special( size_t program, const char name[] );
+ size_t symbol_special_index( special_name_t device );
+ 
  symbol_elem_t * symbol_locale( size_t program, const char name[] );
  symbol_elem_t * symbol_alphabet( size_t program, const char name[] );
  
diff -Nrcpad gcc-17-20260712/gcc/cobol/util.cc gcc-17-20260719/gcc/cobol/util.cc
*** gcc-17-20260712/gcc/cobol/util.cc	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/cobol/util.cc	Sun Jul 19 22:32:06 2026
*************** bool cobol_filename( const char *name, i
*** 3436,3445 ****
    linemap_add(line_table, LC_ENTER, sysp, name, 1);
    input_filename_vestige = name;
    bool pushed = input_filenames.push( input_file_t(name, inode, 1) );
!   dbgmsg("%s: %s %s line %d-%d inode %ld", __func__,
           pushed? "pushed" : "set to", name,
           cobol_location().first_line,
!          cobol_location().last_line, inode);
    return pushed;
  }
  
--- 3436,3445 ----
    linemap_add(line_table, LC_ENTER, sysp, name, 1);
    input_filename_vestige = name;
    bool pushed = input_filenames.push( input_file_t(name, inode, 1) );
!   dbgmsg("%s: %s %s line %d-%d inode %lu", __func__,
           pushed? "pushed" : "set to", name,
           cobol_location().first_line,
!          cobol_location().last_line, (unsigned long) inode);
    return pushed;
  }
  
diff -Nrcpad gcc-17-20260712/gcc/common.opt gcc-17-20260719/gcc/common.opt
*** gcc-17-20260712/gcc/common.opt	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/common.opt	Sun Jul 19 22:32:06 2026
*************** Common Var(warn_auto_profile) Warning
*** 561,568 ****
  Warn about problems with auto-profile data.
  
  Wuse-after-free
! Common Var(warn_use_after_free) Warning
! Warn for uses of pointers to deallocated storage.
  
  Wuse-after-free=
  Common Joined RejectNegative UInteger Var(warn_use_after_free) Warning IntegerRange(0, 3)
--- 561,567 ----
  Warn about problems with auto-profile data.
  
  Wuse-after-free
! Common Alias(Wuse-after-free=, 1, 0) Warning
  
  Wuse-after-free=
  Common Joined RejectNegative UInteger Var(warn_use_after_free) Warning IntegerRange(0, 3)
diff -Nrcpad gcc-17-20260712/gcc/config/aarch64/aarch64-builtins.cc gcc-17-20260719/gcc/config/aarch64/aarch64-builtins.cc
*** gcc-17-20260712/gcc/config/aarch64/aarch64-builtins.cc	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/config/aarch64/aarch64-builtins.cc	Sun Jul 19 22:32:06 2026
*************** aarch64_fold_lo_call_to_hi (unsigned int
*** 4904,4912 ****
  
    /* Prefer to use the highpart builtin when at least one vector
       argument is a reference to the high half of a 128b vector, and
!      all others are VECTOR_CSTs that we can extend to 128b.  */
    auto_vec<unsigned int, 2> vec_constants;
    auto_vec<unsigned int, 2> vec_highparts;
    /* The arguments and signature of the new call.  */
    auto_vec<tree, 4> call_args;
    auto_vec<tree, 4> call_types;
--- 4904,4914 ----
  
    /* Prefer to use the highpart builtin when at least one vector
       argument is a reference to the high half of a 128b vector, and
!      all others are VECTOR_CSTs or uniform vectors that we can extend
!      to 128b.  */
    auto_vec<unsigned int, 2> vec_constants;
    auto_vec<unsigned int, 2> vec_highparts;
+   auto_vec<unsigned int, 2> vec_uniforms;
    /* The arguments and signature of the new call.  */
    auto_vec<tree, 4> call_args;
    auto_vec<tree, 4> call_types;
*************** aarch64_fold_lo_call_to_hi (unsigned int
*** 4935,4940 ****
--- 4937,4944 ----
  	    }
  	  else if (TREE_CODE (arg) == VECTOR_CST)
  	    vec_constants.safe_push (argno);
+ 	  else if (ssa_uniform_vector_p (arg))
+ 	    vec_uniforms.safe_push (argno);
  	  else
  	    return nullptr;
  	}
*************** aarch64_fold_lo_call_to_hi (unsigned int
*** 4965,4970 ****
--- 4969,4984 ----
  	call_args[i] = vce_ssa;
        }
  
+   location_t loc = gimple_location (stmt);
+   for (auto i : vec_uniforms)
+     {
+       tree elt = ssa_uniform_vector_p (call_args[i]);
+       tree vec_dup = gimple_build_vector_from_val (gsi, true,
+ 						   GSI_SAME_STMT, loc,
+ 						   call_types[i], elt);
+       call_args[i] = vec_dup;
+     }
+ 
    gcall *new_call = gimple_build_call_vec (builtin_hi, call_args);
    gimple_call_set_lhs (new_call, gimple_call_lhs (stmt));
    return new_call;
diff -Nrcpad gcc-17-20260712/gcc/config/aarch64/aarch64-neon-builtins-base.cc gcc-17-20260719/gcc/config/aarch64/aarch64-neon-builtins-base.cc
*** gcc-17-20260712/gcc/config/aarch64/aarch64-neon-builtins-base.cc	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/config/aarch64/aarch64-neon-builtins-base.cc	Sun Jul 19 22:32:06 2026
*************** public:
*** 562,568 ****
        std::swap (a, b);
  
      auto arg_type = TREE_TYPE (a);
!     gcc_assert (arg_type == TREE_TYPE (b));
  
      auto tuple_type = TREE_TYPE (f.lhs);
      auto tuple = create_tmp_var (tuple_type);
--- 562,568 ----
        std::swap (a, b);
  
      auto arg_type = TREE_TYPE (a);
!     gcc_assert (types_compatible_p (arg_type, TREE_TYPE (b)));
  
      auto tuple_type = TREE_TYPE (f.lhs);
      auto tuple = create_tmp_var (tuple_type);
diff -Nrcpad gcc-17-20260712/gcc/config/aarch64/aarch64.cc gcc-17-20260719/gcc/config/aarch64/aarch64.cc
*** gcc-17-20260712/gcc/config/aarch64/aarch64.cc	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/config/aarch64/aarch64.cc	Sun Jul 19 22:32:06 2026
*************** aarch64_override_options (void)
*** 20428,20433 ****
--- 20428,20437 ----
    if (TARGET_ILP32)
      warning (OPT_Wdeprecated, "%<-mabi=ilp32%> is deprecated");
  
+   if (TARGET_TME)
+     warning (OPT_Wdeprecated,
+ 	     "the architecture extension %<+tme%> is deprecated");
+ 
    if (global_options.x_pcrelative_literal_loads == 1)
      warning (OPT_Wdeprecated, "%<-mpc-relative-literal-loads%> is deprecated");
  
*************** aarch64_process_target_attr (tree args)
*** 21078,21083 ****
--- 21082,21092 ----
    while (token)
      {
        num_attrs++;
+ 
+       if (strcmp (token, "+tme") == 0 && !TARGET_TME)
+ 	warning (OPT_Wdeprecated,
+ 		 "the architecture extension %<+tme%> is deprecated");
+ 
        if (!aarch64_process_one_target_attr (token))
  	{
  	  /* Check if token is possibly an arch extension without
diff -Nrcpad gcc-17-20260712/gcc/config/alpha/alpha.cc gcc-17-20260719/gcc/config/alpha/alpha.cc
*** gcc-17-20260712/gcc/config/alpha/alpha.cc	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/config/alpha/alpha.cc	Sun Jul 19 22:32:06 2026
*************** split_small_symbolic_operand (rtx x)
*** 1242,1249 ****
  }
  
  /* Indicate that INSN cannot be duplicated.  This is true for any insn
!    that we've marked with gpdisp relocs, since those have to stay in
!    1-1 correspondence with one another.
  
     Technically we could copy them if we could set up a mapping from one
     sequence number to another, across the set of insns to be duplicated.
--- 1242,1249 ----
  }
  
  /* Indicate that INSN cannot be duplicated.  This is true for any insn
!    that we've marked with a relocation sequence number, since those have
!    to stay in 1-1 correspondence with one another.
  
     Technically we could copy them if we could set up a mapping from one
     sequence number to another, across the set of insns to be duplicated.
*************** split_small_symbolic_operand (rtx x)
*** 1253,1264 ****
     Also cannot allow jsr insns to be duplicated.  If they throw exceptions,
     then they'll be in a different block from their ldgp.  Which could lead
     the bb reorder code to think that it would be ok to copy just the block
!    containing the call and branch to the block containing the ldgp.  */
  
  static bool
  alpha_cannot_copy_insn_p (rtx_insn *insn)
  {
!   if (!reload_completed || !TARGET_EXPLICIT_RELOCS)
      return false;
    if (recog_memoized (insn) >= 0)
      return get_attr_cannot_copy (insn);
--- 1253,1273 ----
     Also cannot allow jsr insns to be duplicated.  If they throw exceptions,
     then they'll be in a different block from their ldgp.  Which could lead
     the bb reorder code to think that it would be ok to copy just the block
!    containing the call and branch to the block containing the ldgp.
! 
!    Note this must not be gated on reload_completed.  While the gpdisp pairs
!    are only created after reload, alpha_legitimize_address emits
!    movdi_er_tlsgd and movdi_er_tlsldm together with their paired
!    call_value_osf_tlsgd/tlsldm at expand time, and those already carry the
!    sequence number that ties each pair together.  Returning false before
!    reload lets the pre-RA duplicators reach them: unrolling a loop whose
!    body holds such a pair copies the sequence number along with it, and the
!    assembler then rejects the result with "duplicate !tlsgd!N".  */
  
  static bool
  alpha_cannot_copy_insn_p (rtx_insn *insn)
  {
!   if (!TARGET_EXPLICIT_RELOCS)
      return false;
    if (recog_memoized (insn) >= 0)
      return get_attr_cannot_copy (insn);
diff -Nrcpad gcc-17-20260712/gcc/config/darwin.cc gcc-17-20260719/gcc/config/darwin.cc
*** gcc-17-20260712/gcc/config/darwin.cc	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/config/darwin.cc	Sun Jul 19 22:32:06 2026
*************** darwin_globalize_label (FILE *stream, co
*** 2008,2014 ****
      return;
    if (startswith (name+6, "LabelPro"))
      default_globalize_label (stream, name);
!   if (startswith (name+6, "Protocol_"))
      default_globalize_label (stream, name);
  }
  
--- 2008,2014 ----
      return;
    if (startswith (name+6, "LabelPro"))
      default_globalize_label (stream, name);
!   if (startswith (name+6, "Protocol"))
      default_globalize_label (stream, name);
  }
  
*************** darwin_label_is_anonymous_local_objc_nam
*** 2067,2073 ****
      return false;
    else if (startswith ((const char *)p, "Protocol"))
      {
!       if (p[8] == '_' || p[8] == 'I' || p[8] == 'P'
  	  || p[8] == 'M' || p[8] == 'C' || p[8] == 'O')
  	return false;
        return true;
--- 2067,2073 ----
      return false;
    else if (startswith ((const char *)p, "Protocol"))
      {
!       if (p[8] == '_' || p[8] == 'I' || p[8] == 'P' || p[8] == 'R'
  	  || p[8] == 'M' || p[8] == 'C' || p[8] == 'O')
  	return false;
        return true;
diff -Nrcpad gcc-17-20260712/gcc/config/i386/i386-expand.cc gcc-17-20260719/gcc/config/i386/i386-expand.cc
*** gcc-17-20260712/gcc/config/i386/i386-expand.cc	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/config/i386/i386-expand.cc	Sun Jul 19 22:32:06 2026
*************** ix86_expand_set_or_cpymem (rtx dst, rtx
*** 9765,9775 ****
        /* Destination is aligned after the misaligned prologue.  */
        aligned_dstmem = misaligned_prologue_used;
  
!       if (noalign && !misaligned_prologue_used)
  	{
! 	  /* Also use misaligned prologue if alignment isn't needed and
! 	     destination isn't aligned.   Since alignment isn't needed,
! 	     the destination after prologue won't be aligned.  */
  	  aligned_dstmem = (GET_MODE_ALIGNMENT (move_mode)
  			    <= MEM_ALIGN (dst));
  	  if (!aligned_dstmem)
--- 9765,9779 ----
        /* Destination is aligned after the misaligned prologue.  */
        aligned_dstmem = misaligned_prologue_used;
  
!       if (noalign
! 	  && !misaligned_prologue_used
! 	  && (!count
! 	      || count > (unsigned HOST_WIDE_INT) epilogue_size_needed))
  	{
! 	  /* Also use misaligned prologue if count > epilogue size,
! 	     alignment isn't needed and destination isn't aligned.
! 	     Since alignment isn't needed, the destination after
! 	     prologue won't be aligned.  */
  	  aligned_dstmem = (GET_MODE_ALIGNMENT (move_mode)
  			    <= MEM_ALIGN (dst));
  	  if (!aligned_dstmem)
*************** ix86_expand_gfni_bitreverse (rtx dest, r
*** 28416,28423 ****
        return;
      }
    if (mode == HImode)
!     target = lowpart_subreg (mode, target, SImode);
!   if (mode == SImode)
      emit_insn (gen_bswapsi2 (dest, target));
    else
      emit_insn (gen_rtx_SET (dest, gen_rtx_BSWAP (mode, target)));
--- 28420,28430 ----
        return;
      }
    if (mode == HImode)
!     {
!       target = lowpart_subreg (mode, target, SImode);
!       emit_insn (gen_bswaphi2 (dest, target));
!     }
!   else if (mode == SImode)
      emit_insn (gen_bswapsi2 (dest, target));
    else
      emit_insn (gen_rtx_SET (dest, gen_rtx_BSWAP (mode, target)));
diff -Nrcpad gcc-17-20260712/gcc/config/i386/i386.cc gcc-17-20260719/gcc/config/i386/i386.cc
*** gcc-17-20260712/gcc/config/i386/i386.cc	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/config/i386/i386.cc	Sun Jul 19 22:32:06 2026
*************** function_value_ms_64 (machine_mode orig_
*** 4348,4357 ****
  	    break;
  	  if (valtype != NULL_TREE
  	      && !VECTOR_INTEGER_TYPE_P (valtype)
- 	      && !INTEGRAL_TYPE_P (valtype)
  	      && !VECTOR_FLOAT_TYPE_P (valtype))
  	    break;
! 	  if ((SCALAR_INT_MODE_P (mode) || VECTOR_MODE_P (mode))
  	      && !COMPLEX_MODE_P (mode))
  	    regno = FIRST_SSE_REG;
  	  break;
--- 4348,4356 ----
  	    break;
  	  if (valtype != NULL_TREE
  	      && !VECTOR_INTEGER_TYPE_P (valtype)
  	      && !VECTOR_FLOAT_TYPE_P (valtype))
  	    break;
! 	  if (VECTOR_MODE_P (mode)
  	      && !COMPLEX_MODE_P (mode))
  	    regno = FIRST_SSE_REG;
  	  break;
*************** ix86_return_in_memory (const_tree type,
*** 4458,4466 ****
  	  /* __m128 is returned in xmm0.  256/512-bit vector values are
  	     returned in ymm0/zmm0 when AVX/AVX512 is enabled.  */
  	  if ((!type || VECTOR_INTEGER_TYPE_P (type)
- 	       || INTEGRAL_TYPE_P (type)
  	       || VECTOR_FLOAT_TYPE_P (type))
! 	      && (SCALAR_INT_MODE_P (mode) || VECTOR_MODE_P (mode))
  	      && !COMPLEX_MODE_P (mode)
  	      && ((GET_MODE_SIZE (mode) == 16 || size == 16)
  		  || (TARGET_AVX && (GET_MODE_SIZE (mode) == 32 || size == 32))
--- 4457,4464 ----
  	  /* __m128 is returned in xmm0.  256/512-bit vector values are
  	     returned in ymm0/zmm0 when AVX/AVX512 is enabled.  */
  	  if ((!type || VECTOR_INTEGER_TYPE_P (type)
  	       || VECTOR_FLOAT_TYPE_P (type))
! 	      && VECTOR_MODE_P (mode)
  	      && !COMPLEX_MODE_P (mode)
  	      && ((GET_MODE_SIZE (mode) == 16 || size == 16)
  		  || (TARGET_AVX && (GET_MODE_SIZE (mode) == 32 || size == 32))
*************** output_probe_stack_range (rtx reg, rtx e
*** 8586,8720 ****
    return "";
  }
  
! /* Update the maximum stack slot alignment from memory alignment if
!    OP is stack memory.  */
  
  static void
! ix86_update_stack_alignment_2 (const_rtx op, unsigned int &alignment)
  {
!   unsigned int mem_align = MEM_ALIGN (op);
!   if (mem_align <= alignment)
!     return;
  
!   /* Skip if OP is a memory operand with CONST_INT in
  
!      (set (mem/v:SI (const_int 0 [0]) [14 MEM[(int *)0B]+0 S4 A256])
! 	  (const_int 0 [0]))
  
!      or SYMBOLIC_CONST in
  
!      (set (reg:SI 0 ax [orig:118 _2 ] [118])
! 	  (sign_extend:SI (mem/c:QI (symbol_ref:DI ("c") [flags 0x2] <var_decl 0x7fffe960de40 c>) [0 c+0 S1 A8])))
!    */
!   rtx x = XEXP (op, 0);
!   if (CONST_INT_P (x) || SYMBOLIC_CONST (x))
      return;
  
!   /* Skip if OP is function result on stack in
  
!      (set (mem/c:TI (reg/f:SI 0 ax [orig:99 .result_ptr ] [99]) [2 <retval>+0 S16 A128])
! 	  (reg:TI 20 xmm0 [orig:100 x ] [100]))
!   */
!   tree result_decl = DECL_RESULT (current_function_decl);
!   if (result_decl && DECL_RTL_SET_P (result_decl))
      {
!       rtx result_rtl = DECL_RTL (result_decl);
!       if (MEM_P (result_rtl) && XEXP (result_rtl, 0) == x)
! 	return;
!     }
  
!   /* All stack is in the generic address space.  Skip
  
!      (mem:DI (reg:DI 2 cx [103]) [4 MEM[(<address-space-1> __int128 *)0B]+0 S8 A128 AS1])
  
!      from from gcc.target/i386/apx-ndd-seg-1.c.  */
!   if (MEM_ADDR_SPACE (op) != ADDR_SPACE_GENERIC)
!     return;
  
!   rtx base = find_base_term (x);
!   if (base)
      {
!       /* Update ALIGNMENT if RTL points-to says OP accesses stack.  */
!       if (base == static_reg_base_value[STACK_POINTER_REGNUM]
! 	  || base == static_reg_base_value[FRAME_POINTER_REGNUM])
! 	alignment = mem_align;
!       return;
!     }
  
!   /* RTL points-to isn't available.  */
!   bool ok;
!   struct ix86_address parts;
!   ok = ix86_decompose_address (x, &parts);
!   gcc_assert (ok);
  
!   /* Skip if displacement is SYMBOLIC_CONST in
  
!      (set (mem:V16QI (plus:SI (reg:SI 2 cx [orig:105 niters_vector_mult_vf.6 ] [105])
! 			      (symbol_ref:SI ("perm") [flags 0x2] <var_decl 0x7fffe9613130 perm>)) [0 MEM <vector(16) char> [(char *)vectp_perm.21_69]+0 S16 A256])
! 	  (reg:V16QI 20 xmm0 [orig:179 vect__13.18_68 ] [179]))
  
!      from gcc.target/i386/pr109780-1.c.  */
!   if (parts.disp && SYMBOLIC_CONST (parts.disp))
!     return;
  
!   tree mem_expr = MEM_EXPR (op);
!   if (mem_expr)
!     {
!       tree var = get_base_address (mem_expr);
  
!       if (TREE_CODE (var) == MEM_REF
! 	  || TREE_CODE (var) == TARGET_MEM_REF)
  	{
! 	   tree ptr = TREE_OPERAND (var, 0);
! 	   if (TREE_CODE (ptr) == BIT_AND_EXPR)
! 	     ptr = TREE_OPERAND (ptr, 0);
  
! 	   /* Skip if OP is a memory operand of non-local reference in
  
! 	      (set (mem:V4DI (reg:DI 0 ax [orig:112 ivtmp.23 ] [112]) [1 MEM <vector(4) unsigned long> [(_BitInt(2048) *)_34]+0 S32 A256])
! 		   (reg:V4DI 20 xmm0 [117]))
  
! 	      from gcc.target/i386/pr124098.c.  */
! 	   if (!ptr_deref_may_alias_auto_p (ptr)
! 	       /* An access based on an incoming pointer cannot point to
! 		  local stack as in
  
! 		  (set (reg:V2DI 20 xmm0 [orig:103 MEM[(const __m128i * {ref-all})s_1(D) & 4294967280B] ] [103])
! 		       (mem:V2DI (reg:SI 0 ax [102]) [0 MEM[(const __m128i * {ref-all})s_1(D) & 4294967280B]+0 S16 A128]))
  
! 		  from gcc.target/i386/pr53907.  */
! 	       || (TREE_CODE (ptr) == SSA_NAME
! 		   && SSA_NAME_IS_DEFAULT_DEF (ptr)
! 		   && TREE_CODE (SSA_NAME_VAR (ptr)) == PARM_DECL))
! 	     return;
! 	}
!       /* Skip if OP isn't a local stack variable in
  
! 	 (set (mem/c:DI (plus:DI (reg/f:DI 1 dx [157])
! 				 (reg:DI 0 ax [98])) [2 __gcov8.foo.strub.0[0]+0 S8 A256])
! 	      (ior:DI (mem/c:DI (plus:DI (reg/f:DI 1 dx [157])
! 				(reg:DI 0 ax [98])) [2 __gcov8.foo.strub.0[0]+0 S8 A256])
! 		      (const_int 1 [0x1])))
  
! 	 from gcc.target/i386/pr123210.c.  */
!       else if (VAR_P (var)
! 	       && !auto_var_in_fn_p (var, current_function_decl))
! 	return;
!     }
  
!   alignment = mem_align;
  }
  
! /* Update the maximum stack slot alignment from memory alignment if
!    SET references stack memory.  */
  
! static void
! ix86_update_stack_alignment_1 (rtx set, unsigned int &alignment)
  {
    rtx dest = SET_DEST (set);
  
    if (MEM_P (dest))
!     return ix86_update_stack_alignment_2 (dest, alignment);
  
    const_rtx src = SET_SRC (set);
  
--- 8584,8804 ----
    return "";
  }
  
! /* Data passed to ix86_update_stack_alignment.  */
! struct stack_access_data
! {
!   /* The stack access register.  */
!   const_rtx reg;
!   /* Pointer to stack alignment.  */
!   unsigned int *stack_alignment;
! };
! 
! /* Return true if OP references an argument passed on stack.  */
! 
! static bool
! ix86_argument_passed_on_stack_p (const_rtx op)
! {
!   tree mem_expr = MEM_EXPR (op);
!   if (mem_expr)
!     {
!       tree var = get_base_address (mem_expr);
!       return TREE_CODE (var) == PARM_DECL;
!     }
!   return false;
! }
! 
! /* Update the maximum stack slot alignment from memory alignment in PAT.  */
  
  static void
! ix86_update_stack_alignment (rtx, const_rtx pat, void *data)
  {
!   /* This insn may reference stack slot.  Update the maximum stack slot
!      alignment if the memory is referenced by the stack access register. */
!   stack_access_data *p = (stack_access_data *) data;
  
!   subrtx_iterator::array_type array;
!   FOR_EACH_SUBRTX (iter, array, pat, ALL)
!     {
!       auto op = *iter;
!       if (MEM_P (op))
! 	{
! 	  /* NB: Ignore arguments passed on stack since caller is
! 	     responsible to align the outgoing stack for arguments
! 	     passed on stack.  */
! 	  if (reg_mentioned_p (p->reg, XEXP (op, 0))
! 	      && !ix86_argument_passed_on_stack_p (op))
! 	    {
! 	      unsigned int alignment = MEM_ALIGN (op);
  
! 	      if (alignment > *p->stack_alignment)
! 		*p->stack_alignment = alignment;
! 	      break;
! 	    }
! 	  else
! 	    iter.skip_subrtxes ();
! 	}
!     }
! }
  
! /* Helper function for ix86_find_all_reg_uses.  */
  
! static void
! ix86_find_all_reg_uses_1 (HARD_REG_SET &regset,
! 			  rtx set, unsigned int regno,
! 			  auto_bitmap &worklist)
! {
!   rtx dest = SET_DEST (set);
! 
!   if (!REG_P (dest))
      return;
  
!   /* Reject non-Pmode modes.  */
!   if (GET_MODE (dest) != Pmode)
!     return;
  
!   unsigned int dst_regno = REGNO (dest);
! 
!   if (TEST_HARD_REG_BIT (regset, dst_regno))
!     return;
! 
!   const_rtx src = SET_SRC (set);
! 
!   subrtx_iterator::array_type array;
!   FOR_EACH_SUBRTX (iter, array, src, ALL)
      {
!       auto op = *iter;
  
!       if (MEM_P (op))
! 	iter.skip_subrtxes ();
  
!       if (REG_P (op) && REGNO (op) == regno)
! 	{
! 	  /* Add this register to register set.  */
! 	  add_to_hard_reg_set (&regset, Pmode, dst_regno);
! 	  bitmap_set_bit (worklist, dst_regno);
! 	  break;
! 	}
!     }
! }
  
! /* Find all registers defined with register REGNO.  */
  
! static void
! ix86_find_all_reg_uses (HARD_REG_SET &regset,
! 			unsigned int regno, auto_bitmap &worklist)
! {
!   for (df_ref ref = DF_REG_USE_CHAIN (regno);
!        ref != NULL;
!        ref = DF_REF_NEXT_REG (ref))
      {
!       if (DF_REF_IS_ARTIFICIAL (ref))
! 	continue;
  
!       rtx_insn *insn = DF_REF_INSN (ref);
  
!       if (!NONJUMP_INSN_P (insn))
! 	continue;
  
!       unsigned int ref_regno = DF_REF_REGNO (ref);
  
!       rtx set = single_set (insn);
!       if (set)
! 	{
! 	  ix86_find_all_reg_uses_1 (regset, set,
! 				    ref_regno, worklist);
! 	  continue;
! 	}
  
!       rtx pat = PATTERN (insn);
!       if (GET_CODE (pat) != PARALLEL)
! 	continue;
  
!       for (int i = 0; i < XVECLEN (pat, 0); i++)
  	{
! 	  rtx exp = XVECEXP (pat, 0, i);
  
! 	  if (GET_CODE (exp) == SET)
! 	    ix86_find_all_reg_uses_1 (regset, exp,
! 				      ref_regno, worklist);
! 	}
!     }
! }
  
! /* Return true if the hard register REGNO used for a stack access is
!    defined in a basic block that dominates the block where it is used.  */
  
! static bool
! ix86_access_stack_p (unsigned int regno, basic_block bb,
! 		     HARD_REG_SET &set_up_by_prologue,
! 		     HARD_REG_SET &prologue_used,
! 		     auto_bitmap reg_dominate_bbs_known[],
! 		     auto_bitmap reg_dominate_bbs[])
! {
!   if (bitmap_bit_p (reg_dominate_bbs_known[regno], bb->index))
!     return bitmap_bit_p (reg_dominate_bbs[regno], bb->index);
  
!   bitmap_set_bit (reg_dominate_bbs_known[regno], bb->index);
  
!   /* Get all BBs which set REGNO and dominate the current BB from all
!      DEFs of REGNO.  */
!   for (df_ref def = DF_REG_DEF_CHAIN (regno);
!        def;
!        def = DF_REF_NEXT_REG (def))
!     if (!DF_REF_IS_ARTIFICIAL (def)
! 	&& !DF_REF_FLAGS_IS_SET (def, DF_REF_MAY_CLOBBER)
! 	&& !DF_REF_FLAGS_IS_SET (def, DF_REF_MUST_CLOBBER))
!       {
! 	basic_block set_bb = DF_REF_BB (def);
! 	if (dominated_by_p (CDI_DOMINATORS, bb, set_bb))
! 	  {
! 	    rtx_insn *insn = DF_REF_INSN (def);
! 	    /* Return true if INSN requires stack.  */
! 	    if (requires_stack_frame_p (insn, prologue_used,
! 					set_up_by_prologue))
! 	      {
! 		bitmap_set_bit (reg_dominate_bbs[regno], bb->index);
! 		return true;
! 	      }
! 	  }
!       }
  
!   /* When we get here, REGNO used in the current BB doesn't access
!      stack.  */
!   return false;
! }
  
! /* Return true if OP isn't a memory operand with SYMBOLIC_CONST and
!    needs alignment > ALIGNMENT.  */
  
! static bool
! ix86_need_alignment_p_2 (const_rtx op, unsigned int alignment)
! {
!   bool need_alignment = MEM_ALIGN (op) > alignment;
!   tree mem_expr = MEM_EXPR (op);
!   if (!mem_expr)
!     return need_alignment;
! 
!   tree var = get_base_address (mem_expr);
!   if (!VAR_P (var) || !DECL_RTL_SET_P (var))
!     return need_alignment;
! 
!   rtx x = DECL_RTL (var);
!   if (!MEM_P (x))
!     return need_alignment;
! 
!   x = XEXP (x, 0);
!   return !SYMBOLIC_CONST (x) && need_alignment;
  }
  
! /* Return true if SET needs alignment > ALIGNMENT.  */
  
! static bool
! ix86_need_alignment_p_1 (rtx set, unsigned int alignment)
  {
    rtx dest = SET_DEST (set);
  
    if (MEM_P (dest))
!     return ix86_need_alignment_p_2 (dest, alignment);
  
    const_rtx src = SET_SRC (set);
  
*************** ix86_update_stack_alignment_1 (rtx set,
*** 8724,8754 ****
        auto op = *iter;
  
        if (MEM_P (op))
! 	return ix86_update_stack_alignment_2 (op, alignment);
      }
  }
  
! /* Update the maximum stack slot alignment from memory alignment if
!    INSN references stack memory.  */
  
! static void
! ix86_update_stack_alignment (rtx_insn *insn, unsigned int &alignment)
  {
    rtx set = single_set (insn);
    if (set)
!     return ix86_update_stack_alignment_1 (set, alignment);
  
    rtx pat = PATTERN (insn);
    if (GET_CODE (pat) != PARALLEL)
!     return;
  
    for (int i = 0; i < XVECLEN (pat, 0); i++)
      {
        rtx exp = XVECEXP (pat, 0, i);
  
!       if (GET_CODE (exp) == SET)
! 	ix86_update_stack_alignment_1 (exp, alignment);
      }
  }
  
  /* Set stack_frame_required to false if stack frame isn't required.
--- 8808,8842 ----
        auto op = *iter;
  
        if (MEM_P (op))
! 	return ix86_need_alignment_p_2 (op, alignment);
      }
+ 
+   return false;
  }
  
! /* Return true if INSN needs alignment > ALIGNMENT.  */
  
! static bool
! ix86_need_alignment_p (rtx_insn *insn, unsigned int alignment)
  {
    rtx set = single_set (insn);
    if (set)
!     return ix86_need_alignment_p_1 (set, alignment);
  
    rtx pat = PATTERN (insn);
    if (GET_CODE (pat) != PARALLEL)
!     return false;
  
    for (int i = 0; i < XVECLEN (pat, 0); i++)
      {
        rtx exp = XVECEXP (pat, 0, i);
  
!       if (GET_CODE (exp) == SET
! 	  && ix86_need_alignment_p_1 (exp, alignment))
! 	return true;
      }
+ 
+   return false;
  }
  
  /* Set stack_frame_required to false if stack frame isn't required.
*************** ix86_find_max_used_stack_alignment (unsi
*** 8769,8806 ****
    add_to_hard_reg_set (&set_up_by_prologue, Pmode,
  		       HARD_FRAME_POINTER_REGNUM);
  
!   cfun->machine->stack_frame_required = false;
! 
!   /* The preferred stack alignment is the minimum stack alignment.  */
!   if (check_stack_slot
!       && stack_alignment > crtl->preferred_stack_boundary)
!     stack_alignment = crtl->preferred_stack_boundary;
  
    FOR_EACH_BB_FN (bb, cfun)
      {
        rtx_insn *insn;
        FOR_BB_INSNS (bb, insn)
! 	if (NONDEBUG_INSN_P (insn))
  	  {
! 	    if (!cfun->machine->stack_frame_required
! 		&& requires_stack_frame_p (insn, prologue_used,
! 					   set_up_by_prologue))
! 	      {
! 		/* Set stack_frame_required before calling
! 		   ix86_update_stack_alignment.  */
! 		cfun->machine->stack_frame_required = true;
  
! 		/* Stop if we don't need to check stack slot.  */
! 		if (!check_stack_slot)
! 		  break;
! 	      }
  
! 	    if (!check_stack_slot || !NONJUMP_INSN_P (insn))
! 	      continue;
  
! 	    ix86_update_stack_alignment (insn, stack_alignment);
! 	  }
      }
  }
  
  /* Finalize stack_realign_needed and frame_pointer_needed flags, which
--- 8857,8959 ----
    add_to_hard_reg_set (&set_up_by_prologue, Pmode,
  		       HARD_FRAME_POINTER_REGNUM);
  
!   bool require_stack_frame = false;
  
    FOR_EACH_BB_FN (bb, cfun)
      {
        rtx_insn *insn;
        FOR_BB_INSNS (bb, insn)
! 	if (NONDEBUG_INSN_P (insn)
! 	    && requires_stack_frame_p (insn, prologue_used,
! 				       set_up_by_prologue))
  	  {
! 	    require_stack_frame = true;
! 	    break;
! 	  }
!     }
  
!   cfun->machine->stack_frame_required = require_stack_frame;
  
!   /* Stop if we don't need to check stack slot.  */
!   if (!check_stack_slot)
!     return;
  
!   /* The preferred stack alignment is the minimum stack alignment.  */
!   if (stack_alignment > crtl->preferred_stack_boundary)
!     stack_alignment = crtl->preferred_stack_boundary;
! 
!   HARD_REG_SET stack_slot_access;
!   CLEAR_HARD_REG_SET (stack_slot_access);
! 
!   /* Stack slot can be accessed by stack pointer, frame pointer or
!      registers defined by stack pointer or frame pointer.  */
!   auto_bitmap worklist;
! 
!   add_to_hard_reg_set (&stack_slot_access, Pmode, STACK_POINTER_REGNUM);
!   bitmap_set_bit (worklist, STACK_POINTER_REGNUM);
! 
!   if (frame_pointer_needed)
!     {
!       add_to_hard_reg_set (&stack_slot_access, Pmode,
! 			   HARD_FRAME_POINTER_REGNUM);
!       bitmap_set_bit (worklist, HARD_FRAME_POINTER_REGNUM);
      }
+ 
+   /* Registers on HARD_STACK_SLOT_ACCESS always access stack.  */
+   HARD_REG_SET hard_stack_slot_access = stack_slot_access;
+ 
+   calculate_dominance_info (CDI_DOMINATORS);
+ 
+   unsigned int regno;
+ 
+   do
+     {
+       regno = bitmap_clear_first_set_bit (worklist);
+       ix86_find_all_reg_uses (stack_slot_access, regno, worklist);
+     }
+   while (!bitmap_empty_p (worklist));
+ 
+   hard_reg_set_iterator hrsi;
+   stack_access_data data;
+ 
+   auto_bitmap reg_dominate_bbs_known[FIRST_PSEUDO_REGISTER];
+   auto_bitmap reg_dominate_bbs[FIRST_PSEUDO_REGISTER];
+ 
+   data.stack_alignment = &stack_alignment;
+ 
+   EXECUTE_IF_SET_IN_HARD_REG_SET (stack_slot_access, 0, regno, hrsi)
+     {
+       for (df_ref ref = DF_REG_USE_CHAIN (regno);
+ 	   ref != NULL;
+ 	   ref = DF_REF_NEXT_REG (ref))
+ 	{
+ 	  if (DF_REF_IS_ARTIFICIAL (ref))
+ 	    continue;
+ 
+ 	  rtx_insn *insn = DF_REF_INSN (ref);
+ 
+ 	  if (!NONJUMP_INSN_P (insn))
+ 	    continue;
+ 
+ 	  /* Call ix86_access_stack_p only if INSN needs alignment >
+ 	     STACK_ALIGNMENT.  */
+ 	  if (ix86_need_alignment_p (insn, stack_alignment)
+ 	      && (TEST_HARD_REG_BIT (hard_stack_slot_access, regno)
+ 		  || ix86_access_stack_p (regno, BLOCK_FOR_INSN (insn),
+ 					  set_up_by_prologue,
+ 					  prologue_used,
+ 					  reg_dominate_bbs_known,
+ 					  reg_dominate_bbs)))
+ 	    {
+ 	      /* Update stack alignment if REGNO is used for stack
+ 		 access.  */
+ 	      data.reg = DF_REF_REG (ref);
+ 	      note_stores (insn, ix86_update_stack_alignment, &data);
+ 	    }
+ 	}
+     }
+ 
+   free_dominance_info (CDI_DOMINATORS);
  }
  
  /* Finalize stack_realign_needed and frame_pointer_needed flags, which
diff -Nrcpad gcc-17-20260712/gcc/config/i386/i386.md gcc-17-20260719/gcc/config/i386/i386.md
*** gcc-17-20260712/gcc/config/i386/i386.md	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/config/i386/i386.md	Sun Jul 19 22:32:07 2026
***************
*** 6068,6073 ****
--- 6068,6106 ----
     (set_attr "amdfam10_decode" "double,double")
     (set_attr "bdver1_decode" "double,double")])
  
+ (define_insn "*fix_trunc<mode>si_sse_zext"
+   [(set (match_operand:DI 0 "register_operand" "=r,r")
+         (zero_extend:DI
+           (fix:SI (match_operand:MODEF 1 "nonimmediate_operand" "v,m"))))]
+   "TARGET_64BIT
+    && SSE_FLOAT_MODE_P (<MODE>mode)
+    && (!TARGET_FISTTP || TARGET_SSE_MATH)"
+   "%vcvtt<ssemodesuffix>2si{l}\t{%1, %k0|%k0, %1}"
+   [(set_attr "type" "sseicvt")
+    (set_attr "prefix" "maybe_vex")
+    (set_attr "prefix_rex" "*")
+    (set_attr "mode" "<MODE>")
+    (set_attr "athlon_decode" "double,vector")
+    (set_attr "amdfam10_decode" "double,double")
+    (set_attr "bdver1_decode" "double,double")])
+ 
+ (define_insn "*fix_trunc<mode>si_sse_2_zext"
+   [(set (match_operand:DI 0 "register_operand" "=r,r")
+         (zero_extend:DI
+           (subreg:SI
+             (fix:DI (match_operand:MODEF 1 "nonimmediate_operand" "v,m")) 0)))]
+   "TARGET_64BIT
+    && SSE_FLOAT_MODE_P (<MODE>mode)
+    && (!TARGET_FISTTP || TARGET_SSE_MATH)"
+   "%vcvtt<ssemodesuffix>2si{l}\t{%1, %k0|%k0, %1}"
+   [(set_attr "type" "sseicvt")
+    (set_attr "prefix" "maybe_vex")
+    (set_attr "prefix_rex" "*")
+    (set_attr "mode" "<MODE>")
+    (set_attr "athlon_decode" "double,vector")
+    (set_attr "amdfam10_decode" "double,double")
+    (set_attr "bdver1_decode" "double,double")])
+ 
  ;; Avoid vector decoded forms of the instruction.
  (define_peephole2
    [(match_scratch:MODEF 2 "x")
***************
*** 19684,19695 ****
     (set_attr "mode" "<MODE>")])
  
  (define_split
!  [(set (match_operand:HI 0 "QIreg_operand")
         (any_rotate:HI (match_dup 0) (const_int 8)))
    (clobber (reg:CC FLAGS_REG))]
!  "reload_completed
!   && (TARGET_USE_XCHGB || optimize_function_for_size_p (cfun))"
!  [(set (match_dup 0) (bswap:HI (match_dup 0)))])
  
  ;; Rotations through carry flag
  (define_insn "rcrsi2"
--- 19717,19730 ----
     (set_attr "mode" "<MODE>")])
  
  (define_split
!  [(set (match_operand:HI 0 "register_operand")
         (any_rotate:HI (match_dup 0) (const_int 8)))
    (clobber (reg:CC FLAGS_REG))]
!  ""
!  [(parallel
!     [(set (match_dup 0)
! 	  (bswap:HI (match_dup 0)))
!      (clobber (reg:CC FLAGS_REG))])])
  
  ;; Rotations through carry flag
  (define_insn "rcrsi2"
***************
*** 23623,23630 ****
     (set_attr "mode" "<MODE>")])
  
  (define_expand "bswaphi2"
!   [(set (match_operand:HI 0 "register_operand")
! 	(bswap:HI (match_operand:HI 1 "nonimmediate_operand")))]
    ""
  {
    if (!TARGET_MOVBE)
--- 23658,23667 ----
     (set_attr "mode" "<MODE>")])
  
  (define_expand "bswaphi2"
!   [(parallel
!      [(set (match_operand:HI 0 "register_operand")
! 	   (bswap:HI (match_operand:HI 1 "nonimmediate_operand")))
!       (clobber (reg:CC FLAGS_REG))])]
    ""
  {
    if (!TARGET_MOVBE)
***************
*** 23632,23731 ****
  })
  
  (define_insn "*bswaphi2_movbe"
!   [(set (match_operand:HI 0 "nonimmediate_operand" "=Q,r,m")
! 	(bswap:HI (match_operand:HI 1 "nonimmediate_operand" "0,m,r")))]
    "TARGET_MOVBE
     && !(MEM_P (operands[0]) && MEM_P (operands[1]))"
    "@
      xchg{b}\t{%h0, %b0|%b0, %h0}
      movbe{w}\t{%1, %0|%0, %1}
      movbe{w}\t{%1, %0|%0, %1}"
!   [(set_attr "type" "imov")
!    (set_attr "modrm" "*,1,1")
!    (set_attr "prefix_0f" "*,1,1")
!    (set_attr "prefix_extra" "*,1,1")
!    (set_attr "pent_pair" "np,*,*")
!    (set_attr "athlon_decode" "vector,*,*")
!    (set_attr "amdfam10_decode" "double,*,*")
!    (set_attr "c86_decode" "vector,*,*")
!    (set_attr "bdver1_decode" "double,*,*")
!    (set_attr "mode" "QI,HI,HI")])
  
  (define_insn "*bswaphi2"
!   [(set (match_operand:HI 0 "register_operand" "=Q")
! 	(bswap:HI (match_operand:HI 1 "register_operand" "0")))]
    "!TARGET_MOVBE"
!   "xchg{b}\t{%h0, %b0|%b0, %h0}"
!   [(set_attr "type" "imov")
!    (set_attr "pent_pair" "np")
!    (set_attr "athlon_decode" "vector")
!    (set_attr "amdfam10_decode" "double")
!    (set_attr "c86_decode" "vector")
!    (set_attr "bdver1_decode" "double")
!    (set_attr "mode" "QI")])
! 
! (define_peephole2
!   [(set (match_operand:HI 0 "general_reg_operand")
! 	(bswap:HI (match_dup 0)))]
!   "!(TARGET_USE_XCHGB ||
!      TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
!    && peep2_regno_dead_p (0, FLAGS_REG)"
!   [(parallel [(set (match_dup 0) (rotate:HI (match_dup 0) (const_int 8)))
! 	      (clobber (reg:CC FLAGS_REG))])])
  
  (define_insn "bswaphisi2_lowpart"
!   [(set (match_operand:SI 0 "register_operand" "=Q")
! 	(ior:SI (and:SI (match_operand:SI 1 "register_operand" "0")
  			(const_int -65536))
  		(lshiftrt:SI (bswap:SI (match_dup 1))
- 			     (const_int 16))))]
-   ""
-   "xchg{b}\t{%h0, %b0|%b0, %h0}"
-   [(set_attr "type" "imov")
-    (set_attr "pent_pair" "np")
-    (set_attr "athlon_decode" "vector")
-    (set_attr "amdfam10_decode" "double")
-    (set_attr "c86_decode" "vector")
-    (set_attr "bdver1_decode" "double")
-    (set_attr "mode" "QI")])
- 
- (define_peephole2
-   [(set (match_operand:SI 0 "general_reg_operand")
- 	(ior:SI (and:SI (match_dup 0)
- 			(const_int -65536))
- 		(lshiftrt:SI (bswap:SI (match_dup 0))
- 			     (const_int 16))))]
-   "!(TARGET_USE_XCHGB ||
-      TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
-    && peep2_regno_dead_p (0, FLAGS_REG)"
-   [(parallel [(set (strict_low_part (match_dup 0))
- 				    (rotate:HI (match_dup 0) (const_int 8)))
- 	      (clobber (reg:CC FLAGS_REG))])]
-   "operands[0] = gen_lowpart (HImode, operands[0]);")
- 
- ;; Variant of above peephole2 to improve register allocation.
- (define_peephole2
-   [(set (match_operand:SI 0 "general_reg_operand")
-         (match_operand:SI 1 "register_operand"))
-    (set (match_dup 0)
- 	(ior:SI (and:SI (match_dup 0)
- 			(const_int -65536))
- 		(lshiftrt:SI (bswap:SI (match_dup 0))
  			     (const_int 16))))
!    (set (match_operand:SI 2 "general_reg_operand") (match_dup 0))]
!   "!(TARGET_USE_XCHGB ||
!      TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
!    && peep2_regno_dead_p (0, FLAGS_REG)
!    && peep2_reg_dead_p(3, operands[0])"
!   [(parallel
!     [(set (strict_low_part (match_dup 3))
! 	  (rotate:HI (match_dup 3) (const_int 8)))
!      (clobber (reg:CC FLAGS_REG))])]
! {
!   if (!rtx_equal_p (operands[1], operands[2]))
!     emit_move_insn (operands[2], operands[1]);
!   operands[3] = gen_lowpart (HImode, operands[2]);
! })
  
  (define_expand "bitreverse<mode>2"
    [(set (match_operand:SWIDWI 0 "register_operand")
--- 23669,23759 ----
  })
  
  (define_insn "*bswaphi2_movbe"
!   [(set (match_operand:HI 0 "nonimmediate_operand" "=Q,r,r,m")
! 	(bswap:HI (match_operand:HI 1 "nonimmediate_operand" "0,0,m,r")))
!    (clobber (reg:CC FLAGS_REG))]
    "TARGET_MOVBE
     && !(MEM_P (operands[0]) && MEM_P (operands[1]))"
    "@
      xchg{b}\t{%h0, %b0|%b0, %h0}
+     rol{w}\t{$8, %0|%0, 8}
      movbe{w}\t{%1, %0|%0, %1}
      movbe{w}\t{%1, %0|%0, %1}"
!   [(set_attr "type" "imov,rotate1,imov,imov")
!    (set_attr "modrm" "*,*,1,1")
!    (set_attr "prefix_0f" "*,*,1,1")
!    (set_attr "prefix_extra" "*,*,1,1")
!    (set_attr "pent_pair" "np,*,*,*")
!    (set_attr "athlon_decode" "vector,*,*,*")
!    (set_attr "amdfam10_decode" "double,*,*,*")
!    (set_attr "c86_decode" "vector,*,*,*")
!    (set_attr "bdver1_decode" "double,*,*,*")
!    (set_attr "mode" "QI,HI,HI,HI")
!    (set (attr "preferred_for_size")
!      (cond [(eq_attr "alternative" "1")
! 	      (symbol_ref "false")
! 	   ]
! 	   (symbol_ref "true")))
!    (set (attr "preferred_for_speed")
!      (cond [(eq_attr "alternative" "1")
! 	      (symbol_ref "!TARGET_USE_XCHGB")
! 	   ]
! 	   (symbol_ref "true")))])
  
  (define_insn "*bswaphi2"
!   [(set (match_operand:HI 0 "register_operand" "=Q,r")
! 	(bswap:HI (match_operand:HI 1 "register_operand" "0,0")))
!    (clobber (reg:CC FLAGS_REG))]
    "!TARGET_MOVBE"
!   "@
!     xchg{b}\t{%h0, %b0|%b0, %h0}
!     rol{w}\t{$8, %0|%0, 8}"
!   [(set_attr "type" "imov,rotate1")
!    (set_attr "pent_pair" "np,*")
!    (set_attr "athlon_decode" "vector,*")
!    (set_attr "amdfam10_decode" "double,*")
!    (set_attr "c86_decode" "vector,*")
!    (set_attr "bdver1_decode" "double,*")
!    (set_attr "mode" "QI,HI")
!    (set (attr "preferred_for_size")
!      (cond [(eq_attr "alternative" "1")
! 	      (symbol_ref "false")
! 	   ]
! 	   (symbol_ref "true")))
!    (set (attr "preferred_for_speed")
!      (cond [(eq_attr "alternative" "1")
! 	      (symbol_ref "!TARGET_USE_XCHGB")
! 	   ]
! 	   (symbol_ref "true")))])
  
  (define_insn "bswaphisi2_lowpart"
!   [(set (match_operand:SI 0 "register_operand" "=Q,r")
! 	(ior:SI (and:SI (match_operand:SI 1 "register_operand" "0,0")
  			(const_int -65536))
  		(lshiftrt:SI (bswap:SI (match_dup 1))
  			     (const_int 16))))
!    (clobber (reg:CC FLAGS_REG))]
!   ""
!   "@
!     xchg{b}\t{%h0, %b0|%b0, %h0}
!     rol{w}\t{$8, %0|%0, 8}"
!   [(set_attr "type" "imov,rotate1")
!    (set_attr "pent_pair" "np,*")
!    (set_attr "athlon_decode" "vector,*")
!    (set_attr "amdfam10_decode" "double,*")
!    (set_attr "c86_decode" "vector,*")
!    (set_attr "bdver1_decode" "double,*")
!    (set_attr "mode" "QI,HI")
!    (set (attr "preferred_for_size")
!      (cond [(eq_attr "alternative" "1")
! 	      (symbol_ref "false")
! 	   ]
! 	   (symbol_ref "true")))
!    (set (attr "preferred_for_speed")
!      (cond [(eq_attr "alternative" "1")
! 	      (symbol_ref "!TARGET_USE_XCHGB")
! 	   ]
! 	   (symbol_ref "true")))])
  
  (define_expand "bitreverse<mode>2"
    [(set (match_operand:SWIDWI 0 "register_operand")
diff -Nrcpad gcc-17-20260712/gcc/config/i386/sse.md gcc-17-20260719/gcc/config/i386/sse.md
*** gcc-17-20260712/gcc/config/i386/sse.md	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/config/i386/sse.md	Sun Jul 19 22:32:07 2026
***************
*** 8218,8223 ****
--- 8218,8237 ----
     (set_attr "prefix" "evex")
     (set_attr "mode" "<MODE>")])
  
+ (define_insn "*avx512fp16_vcvtsh2<sseintconvertsignprefix>si<round_zext_name>"
+   [(set (match_operand:DI 0 "register_operand" "=r")
+         (zero_extend:DI
+           (unspec:SI
+             [(vec_select:HF
+               (match_operand:V8HF 1 "register_operand" "v")
+               (parallel [(const_int 0)]))]
+             UNSPEC_US_FIX_NOTRUNC)))]
+   "TARGET_64BIT && TARGET_AVX512FP16"
+   "vcvtsh2<sseintconvertsignprefix>si\t{<round_zext_op2>%1, %k0|%k0, %1<round_zext_op2>}"
+   [(set_attr "type" "sseicvt")
+    (set_attr "prefix" "evex")
+    (set_attr "mode" "SI")])
+ 
  (define_insn "avx512fp16_vcvtsh2<sseintconvertsignprefix>si<rex64namesuffix>_2"
    [(set (match_operand:SWI48 0 "register_operand" "=r,r")
  	(unspec:SWI48
***************
*** 8229,8234 ****
--- 8243,8260 ----
     (set_attr "prefix" "evex")
     (set_attr "mode" "<MODE>")])
  
+ (define_insn "*avx512fp16_vcvtsh2<sseintconvertsignprefix>si_2_zext"
+   [(set (match_operand:DI 0 "register_operand" "=r")
+         (zero_extend:DI
+           (unspec:SI
+             [(match_operand:HF 1 "nonimmediate_operand" "vm")]
+             UNSPEC_US_FIX_NOTRUNC)))]
+   "TARGET_64BIT && TARGET_AVX512FP16"
+   "vcvtsh2<sseintconvertsignprefix>si\t{%1, %k0|%k0, %1}"
+   [(set_attr "type" "sseicvt")
+    (set_attr "prefix" "evex")
+    (set_attr "mode" "SI")])
+ 
  (define_mode_attr sseicvtsuffix
    [(SI "l") (DI "q")])
  (define_insn "avx512fp16_vcvt<floatsuffix>si2sh<rex64namesuffix><round_name>"
***************
*** 8383,8388 ****
--- 8409,8426 ----
     (set_attr "prefix" "evex")
     (set_attr "mode" "<MODE>")])
  
+ (define_insn "*unspec_avx512fp16_fix<vcvtt_uns_suffix>_truncsi2<round_saeonly_zext_name>"
+   [(set (match_operand:DI 0 "register_operand" "=r")
+         (zero_extend:DI
+           (unspec:SI
+             [(match_operand:V8HF 1 "register_operand" "v")]
+             UNSPEC_VCVTT_U)))]
+   "TARGET_64BIT && TARGET_AVX512FP16"
+   "vcvttsh2<vcvtt_suffix>si\t{<round_saeonly_zext_op2>%1, %k0|%k0, %k1<round_saeonly_zext_op2>}"
+   [(set_attr "type" "sseicvt")
+    (set_attr "prefix" "evex")
+    (set_attr "mode" "SI")])
+ 
  (define_insn "avx512fp16_fix<fixunssuffix>_trunc<mode>2<round_saeonly_name>"
    [(set (match_operand:SWI48 0 "register_operand" "=r")
  	(any_fix:SWI48
***************
*** 8949,8954 ****
--- 8987,9009 ----
     (set_attr "prefix" "maybe_vex")
     (set_attr "mode" "<MODE>")])
  
+ (define_insn "*sse_cvtss2si<round_zext_name>"
+   [(set (match_operand:DI 0 "register_operand" "=r,r")
+         (zero_extend:DI
+           (unspec:SI
+             [(vec_select:SF
+               (match_operand:V4SF 1 "<round_zext_nimm_scalar_predicate>" "v,<round_zext_constraint2>")
+               (parallel [(const_int 0)]))]
+             UNSPEC_FIX_NOTRUNC)))]
+   "TARGET_64BIT && TARGET_SSE"
+   "%vcvtss2si{l}\t{<round_zext_op2>%1, %k0|%k0, %k1<round_zext_op2>}"
+   [(set_attr "type" "sseicvt")
+    (set_attr "athlon_decode" "double,vector")
+    (set_attr "bdver1_decode" "double,double")
+    (set_attr "prefix_rep" "1")
+    (set_attr "prefix" "maybe_vex")
+    (set_attr "mode" "SI")])
+ 
  (define_insn "sse_cvtss2si<rex64namesuffix>_2"
    [(set (match_operand:SWI48 0 "register_operand" "=r,r")
  	(unspec:SWI48 [(match_operand:SF 1 "nonimmediate_operand" "v,m")]
***************
*** 8963,8968 ****
--- 9018,9039 ----
     (set_attr "prefix" "maybe_vex")
     (set_attr "mode" "<MODE>")])
  
+ (define_insn "*sse_cvtss2si_2_zext"
+   [(set (match_operand:DI 0 "register_operand" "=r,r")
+         (zero_extend:DI
+           (unspec:SI
+             [(match_operand:SF 1 "nonimmediate_operand" "v,m")]
+             UNSPEC_FIX_NOTRUNC)))]
+   "TARGET_64BIT && TARGET_SSE"
+   "%vcvtss2si{l}\t{%1, %k0|%k0, %1}"
+   [(set_attr "type" "sseicvt")
+    (set_attr "athlon_decode" "double,vector")
+    (set_attr "amdfam10_decode" "double,double")
+    (set_attr "bdver1_decode" "double,double")
+    (set_attr "prefix_rep" "1")
+    (set_attr "prefix" "maybe_vex")
+    (set_attr "mode" "SI")])
+ 
  (define_insn "unspec_sse_cvttss2si<rex64namesuffix><round_saeonly_name>"
    [(set (match_operand:SWI48 0 "register_operand" "=r,r")
  	(unspec:SWI48
***************
*** 8978,8983 ****
--- 9049,9070 ----
     (set_attr "prefix" "maybe_vex")
     (set_attr "mode" "<MODE>")])
  
+ (define_insn "*unspec_sse_cvttss2si<round_saeonly_zext_name>"
+   [(set (match_operand:DI 0 "register_operand" "=r,r")
+         (zero_extend:DI
+           (unspec:SI
+             [(match_operand:V4SF 1 "<round_saeonly_zext_nimm_scalar_predicate>" "v,<round_saeonly_zext_constraint>")]
+             UNSPEC_VCVTT)))]
+   "TARGET_64BIT && TARGET_SSE"
+   "%vcvttss2si{l}\t{<round_saeonly_zext_op2>%1, %k0|%k0, %k1<round_saeonly_zext_op2>}"
+   [(set_attr "type" "sseicvt")
+    (set_attr "athlon_decode" "double,vector")
+    (set_attr "amdfam10_decode" "double,double")
+    (set_attr "bdver1_decode" "double,double")
+    (set_attr "prefix_rep" "1")
+    (set_attr "prefix" "maybe_vex")
+    (set_attr "mode" "SI")])
+ 
  (define_insn "sse_cvttss2si<rex64namesuffix><round_saeonly_name>"
    [(set (match_operand:SWI48 0 "register_operand" "=r,r")
  	(fix:SWI48
***************
*** 8994,8999 ****
--- 9081,9103 ----
     (set_attr "prefix" "maybe_vex")
     (set_attr "mode" "<MODE>")])
  
+ (define_insn "*sse_cvttss2si<round_saeonly_zext_name>"
+   [(set (match_operand:DI 0 "register_operand" "=r,r")
+         (zero_extend:DI
+           (fix:SI
+             (vec_select:SF
+               (match_operand:V4SF 1 "<round_saeonly_zext_nimm_scalar_predicate>" "v,<round_saeonly_zext_constraint>")
+               (parallel [(const_int 0)])))))]
+   "TARGET_64BIT && TARGET_SSE"
+   "%vcvttss2si{l}\t{<round_saeonly_zext_op2>%1, %k0|%k0, %k1<round_saeonly_zext_op2>}"
+   [(set_attr "type" "sseicvt")
+    (set_attr "athlon_decode" "double,vector")
+    (set_attr "amdfam10_decode" "double,double")
+    (set_attr "bdver1_decode" "double,double")
+    (set_attr "prefix_rep" "1")
+    (set_attr "prefix" "maybe_vex")
+    (set_attr "mode" "SI")])
+ 
  (define_insn "cvtusi2<ssescalarmodesuffix>32<round_name>"
    [(set (match_operand:VF_128 0 "register_operand" "=v")
  	(vec_merge:VF_128
***************
*** 9418,9423 ****
--- 9522,9541 ----
     (set_attr "prefix" "evex")
     (set_attr "mode" "<MODE>")])
  
+ (define_insn "*avx512f_vcvtss2usi<round_zext_name>"
+   [(set (match_operand:DI 0 "register_operand" "=r")
+         (zero_extend:DI
+           (unspec:SI
+             [(vec_select:SF
+               (match_operand:V4SF 1 "<round_zext_nimm_predicate>" "<round_zext_constraint>")
+               (parallel [(const_int 0)]))]
+             UNSPEC_UNSIGNED_FIX_NOTRUNC)))]
+   "TARGET_64BIT && TARGET_AVX512F"
+   "vcvtss2usi\t{<round_zext_op2>%1, %k0|%k0, %k1<round_zext_op2>}"
+   [(set_attr "type" "sseicvt")
+    (set_attr "prefix" "evex")
+    (set_attr "mode" "SI")])
+ 
  (define_insn "unspec_avx512f_vcvttss2usi<rex64namesuffix><round_saeonly_name>"
    [(set (match_operand:SWI48 0 "register_operand" "=r")
  	(unspec:SWI48
***************
*** 9429,9434 ****
--- 9547,9564 ----
     (set_attr "prefix" "evex")
     (set_attr "mode" "<MODE>")])
  
+ (define_insn "*unspec_avx512f_vcvttss2usi<round_saeonly_zext_name>"
+   [(set (match_operand:DI 0 "register_operand" "=r")
+         (zero_extend:DI
+           (unspec:SI
+             [(match_operand:V4SF 1 "<round_saeonly_zext_nimm_scalar_predicate>" "<round_saeonly_zext_constraint>")]
+             UNSPEC_VCVTTU)))]
+   "TARGET_64BIT && TARGET_AVX512F"
+   "vcvttss2usi\t{<round_saeonly_zext_op2>%1, %k0|%k0, %k1<round_saeonly_zext_op2>}"
+   [(set_attr "type" "sseicvt")
+    (set_attr "prefix" "evex")
+    (set_attr "mode" "SI")])
+ 
  (define_insn "avx512f_vcvttss2usi<rex64namesuffix><round_saeonly_name>"
    [(set (match_operand:SWI48 0 "register_operand" "=r")
  	(unsigned_fix:SWI48
***************
*** 9441,9446 ****
--- 9571,9589 ----
     (set_attr "prefix" "evex")
     (set_attr "mode" "<MODE>")])
  
+ (define_insn "*avx512f_vcvttss2usi<round_saeonly_zext_name>"
+   [(set (match_operand:DI 0 "register_operand" "=r")
+         (zero_extend:DI
+           (unsigned_fix:SI
+             (vec_select:SF
+               (match_operand:V4SF 1 "<round_saeonly_zext_nimm_scalar_predicate>" "<round_saeonly_zext_constraint>")
+               (parallel [(const_int 0)])))))]
+   "TARGET_64BIT && TARGET_AVX512F"
+   "vcvttss2usi\t{<round_saeonly_zext_op2>%1, %k0|%k0, %k1<round_saeonly_zext_op2>}"
+   [(set_attr "type" "sseicvt")
+    (set_attr "prefix" "evex")
+    (set_attr "mode" "SI")])
+ 
  (define_insn "avx512f_vcvtsd2usi<rex64namesuffix><round_name>"
    [(set (match_operand:SWI48 0 "register_operand" "=r")
  	(unspec:SWI48
***************
*** 9454,9459 ****
--- 9597,9616 ----
     (set_attr "prefix" "evex")
     (set_attr "mode" "<MODE>")])
  
+ (define_insn "*avx512f_vcvtsd2usi<round_zext_name>"
+   [(set (match_operand:DI 0 "register_operand" "=r")
+         (zero_extend:DI
+           (unspec:SI
+             [(vec_select:DF
+               (match_operand:V2DF 1 "<round_zext_nimm_predicate>" "<round_zext_constraint>")
+               (parallel [(const_int 0)]))]
+             UNSPEC_UNSIGNED_FIX_NOTRUNC)))]
+   "TARGET_64BIT && TARGET_AVX512F"
+   "vcvtsd2usi\t{<round_zext_op2>%1, %k0|%k0, %q1<round_zext_op2>}"
+   [(set_attr "type" "sseicvt")
+    (set_attr "prefix" "evex")
+    (set_attr "mode" "SI")])
+ 
  (define_insn "unspec_avx512f_vcvttsd2usi<rex64namesuffix><round_saeonly_name>"
    [(set (match_operand:SWI48 0 "register_operand" "=r")
  	(unspec:SWI48
***************
*** 9465,9470 ****
--- 9622,9639 ----
     (set_attr "prefix" "evex")
     (set_attr "mode" "<MODE>")])
  
+ (define_insn "*unspec_avx512f_vcvttsd2usi<round_saeonly_zext_name>"
+   [(set (match_operand:DI 0 "register_operand" "=r")
+         (zero_extend:DI
+           (unspec:SI
+             [(match_operand:V2DF 1 "<round_saeonly_zext_nimm_scalar_predicate>" "<round_saeonly_zext_constraint>")]
+             UNSPEC_VCVTTU)))]
+   "TARGET_64BIT && TARGET_AVX512F"
+   "vcvttsd2usi\t{<round_saeonly_zext_op2>%1, %k0|%k0, %q1<round_saeonly_zext_op2>}"
+   [(set_attr "type" "sseicvt")
+    (set_attr "prefix" "evex")
+    (set_attr "mode" "SI")])
+ 
  (define_insn "avx512f_vcvttsd2usi<rex64namesuffix><round_saeonly_name>"
    [(set (match_operand:SWI48 0 "register_operand" "=r")
  	(unsigned_fix:SWI48
***************
*** 9477,9482 ****
--- 9646,9664 ----
     (set_attr "prefix" "evex")
     (set_attr "mode" "<MODE>")])
  
+ (define_insn "*avx512f_vcvttsd2usi<round_saeonly_zext_name>"
+   [(set (match_operand:DI 0 "register_operand" "=r")
+         (zero_extend:DI
+           (unsigned_fix:SI
+             (vec_select:DF
+               (match_operand:V2DF 1 "<round_saeonly_zext_nimm_scalar_predicate>" "<round_saeonly_zext_constraint>")
+               (parallel [(const_int 0)])))))]
+   "TARGET_64BIT && TARGET_AVX512F"
+   "vcvttsd2usi\t{<round_saeonly_zext_op2>%1, %k0|%k0, %q1<round_saeonly_zext_op2>}"
+   [(set_attr "type" "sseicvt")
+    (set_attr "prefix" "evex")
+    (set_attr "mode" "SI")])
+ 
  (define_insn "sse2_cvtsd2si<rex64namesuffix><round_name>"
    [(set (match_operand:SWI48 0 "register_operand" "=r,r")
  	(unspec:SWI48
***************
*** 9494,9499 ****
--- 9676,9699 ----
     (set_attr "prefix" "maybe_vex")
     (set_attr "mode" "<MODE>")])
  
+ (define_insn "*sse2_cvtsd2si<round_zext_name>"
+   [(set (match_operand:DI 0 "register_operand" "=r,r")
+         (zero_extend:DI
+           (unspec:SI
+             [(vec_select:DF
+              (match_operand:V2DF 1 "<round_zext_nimm_scalar_predicate>" "v,<round_zext_constraint2>")
+              (parallel [(const_int 0)]))]
+             UNSPEC_FIX_NOTRUNC)))]
+   "TARGET_64BIT && TARGET_SSE2"
+   "%vcvtsd2si{l}\t{<round_zext_op2>%1, %k0|%k0, %q1<round_zext_op2>}"
+   [(set_attr "type" "sseicvt")
+    (set_attr "athlon_decode" "double,vector")
+    (set_attr "bdver1_decode" "double,double")
+    (set_attr "btver2_decode" "double,double")
+    (set_attr "prefix_rep" "1")
+    (set_attr "prefix" "maybe_vex")
+    (set_attr "mode" "SI")])
+ 
  (define_insn "sse2_cvtsd2si<rex64namesuffix>_2"
    [(set (match_operand:SWI48 0 "register_operand" "=r,r")
  	(unspec:SWI48 [(match_operand:DF 1 "nonimmediate_operand" "v,m")]
***************
*** 9508,9513 ****
--- 9708,9728 ----
     (set_attr "prefix" "maybe_vex")
     (set_attr "mode" "<MODE>")])
  
+ (define_insn "*sse2_cvtsd2si_2_zext"
+   [(set (match_operand:DI 0 "register_operand" "=r,r")
+         (zero_extend:DI
+           (unspec:SI [(match_operand:DF 1 "nonimmediate_operand" "v,m")]
+                      UNSPEC_FIX_NOTRUNC)))]
+   "TARGET_64BIT && TARGET_SSE2"
+   "%vcvtsd2si{l}\t{%1, %k0|%k0, %q1}"
+   [(set_attr "type" "sseicvt")
+    (set_attr "athlon_decode" "double,vector")
+    (set_attr "amdfam10_decode" "double,double")
+    (set_attr "bdver1_decode" "double,double")
+    (set_attr "prefix_rep" "1")
+    (set_attr "prefix" "maybe_vex")
+    (set_attr "mode" "SI")])
+ 
  (define_insn "unspec_sse2_cvttsd2si<rex64namesuffix><round_saeonly_name>"
    [(set (match_operand:SWI48 0 "register_operand" "=r,r")
  	(unspec:SWI48
***************
*** 9524,9529 ****
--- 9739,9761 ----
     (set_attr "prefix" "maybe_vex")
     (set_attr "mode" "<MODE>")])
  
+ (define_insn "*unspec_sse2_cvttsd2si<round_saeonly_zext_name>"
+   [(set (match_operand:DI 0 "register_operand" "=r,r")
+         (zero_extend:DI
+            (unspec:SI
+              [(match_operand:V2DF 1 "<round_saeonly_zext_nimm_scalar_predicate>" "v,<round_saeonly_zext_constraint2>")]
+              UNSPEC_VCVTT)))]
+   "TARGET_64BIT && TARGET_SSE2"
+   "%vcvttsd2si{l}\t{<round_saeonly_zext_op2>%1, %k0|%k0, %q1<round_saeonly_zext_op2>}"
+   [(set_attr "type" "sseicvt")
+    (set_attr "athlon_decode" "double,vector")
+    (set_attr "amdfam10_decode" "double,double")
+    (set_attr "bdver1_decode" "double,double")
+    (set_attr "btver2_decode" "double,double")
+    (set_attr "prefix_rep" "1")
+    (set_attr "prefix" "maybe_vex")
+    (set_attr "mode" "SI")])
+ 
  (define_insn "sse2_cvttsd2si<rex64namesuffix><round_saeonly_name>"
    [(set (match_operand:SWI48 0 "register_operand" "=r,r")
  	(fix:SWI48
***************
*** 9541,9546 ****
--- 9773,9796 ----
     (set_attr "prefix" "maybe_vex")
     (set_attr "mode" "<MODE>")])
  
+ (define_insn "*sse2_cvttsd2si<round_saeonly_zext_name>"
+   [(set (match_operand:DI 0 "register_operand" "=r,r")
+         (zero_extend:DI
+           (fix:SI
+             (vec_select:DF
+               (match_operand:V2DF 1 "<round_saeonly_zext_nimm_scalar_predicate>" "v,<round_saeonly_zext_constraint2>")
+               (parallel [(const_int 0)])))))]
+   "TARGET_64BIT && TARGET_SSE2"
+   "%vcvttsd2si{l}\t{<round_saeonly_zext_op2>%1, %k0|%k0, %q1<round_saeonly_zext_op2>}"
+   [(set_attr "type" "sseicvt")
+    (set_attr "athlon_decode" "double,vector")
+    (set_attr "amdfam10_decode" "double,double")
+    (set_attr "bdver1_decode" "double,double")
+    (set_attr "btver2_decode" "double,double")
+    (set_attr "prefix_rep" "1")
+    (set_attr "prefix" "maybe_vex")
+    (set_attr "mode" "SI")])
+ 
  ;; For float<si2dfmode><mode>2 insn pattern
  (define_mode_attr si2dfmode
    [(V8DF "V8SI") (V4DF "V4SI")])
***************
*** 33691,33696 ****
--- 33941,33960 ----
   (set_attr "prefix" "evex")
   (set_attr "mode" "<MODE>")])
  
+ (define_insn "*avx10_2_vcvttsd2<sat_cvt_sign_prefix>sissi<round_saeonly_zext_name>"
+  [(set (match_operand:DI 0 "register_operand" "=r")
+        (zero_extend:DI
+          (unspec:SI
+            [(vec_select:DF
+               (match_operand:V2DF 1 "<round_saeonly_zext_nimm_scalar_predicate>" "<round_saeonly_zext_constraint>")
+               (parallel [(const_int 0)]))]
+            UNSPEC_SAT_CVT_DS_SIGN_ITER)))]
+  "TARGET_64BIT && TARGET_AVX10_2"
+  "vcvttsd2<sat_cvt_sign_prefix>sis\t{<round_saeonly_zext_op2>%1, %k0|%k0, %q1<round_saeonly_zext_op2>}"
+  [(set_attr "type" "ssecvt")
+  (set_attr "prefix" "evex")
+  (set_attr "mode" "SI")])
+ 
  (define_insn "avx10_2_vcvttss2<sat_cvt_sign_prefix>sis<mode><round_saeonly_name>"
   [(set (match_operand:SWI48 0 "register_operand" "=r")
     (unspec:SWI48
***************
*** 33704,33709 ****
--- 33968,33987 ----
   (set_attr "prefix" "evex")
   (set_attr "mode" "<MODE>")])
  
+ (define_insn "*avx10_2_vcvttss2<sat_cvt_sign_prefix>sissi<round_saeonly_zext_name>"
+  [(set (match_operand:DI 0 "register_operand" "=r")
+        (zero_extend:DI
+          (unspec:SI
+            [(vec_select:SF
+               (match_operand:V4SF 1 "<round_saeonly_zext_nimm_scalar_predicate>" "<round_saeonly_zext_constraint>")
+               (parallel [(const_int 0)]))]
+            UNSPEC_SAT_CVT_DS_SIGN_ITER)))]
+  "TARGET_64BIT && TARGET_AVX10_2"
+  "vcvttss2<sat_cvt_sign_prefix>sis\t{<round_saeonly_zext_op2>%1, %k0|%k0, %k1<round_saeonly_zext_op2>}"
+  [(set_attr "type" "ssecvt")
+  (set_attr "prefix" "evex")
+  (set_attr "mode" "SI")])
+ 
  (define_insn "avx10_2_minmaxbf16_<mode><mask_name>"
    [(set (match_operand:VBF 0 "register_operand" "=v")
      (unspec:VBF
diff -Nrcpad gcc-17-20260712/gcc/config/i386/subst.md gcc-17-20260719/gcc/config/i386/subst.md
*** gcc-17-20260712/gcc/config/i386/subst.md	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/config/i386/subst.md	Sun Jul 19 22:32:07 2026
***************
*** 482,484 ****
--- 482,523 ----
  	  (match_dup 1)
  	  (match_operand:SUBST_V 2 "const0_operand")
  	  (match_operand:<avx512fmaskhalfmode> 3 "register_operand" "Yk")))])
+ 
+ (define_subst_attr "round_zext_name" "round_zext" "_zext" "_round_zext")
+ (define_subst_attr "round_zext_constraint" "round_zext" "vm" "v")
+ (define_subst_attr "round_zext_constraint2" "round_zext" "m" "v")
+ (define_subst_attr "round_zext_nimm_predicate" "round_zext" "vector_operand" "register_operand")
+ (define_subst_attr "round_zext_nimm_scalar_predicate" "round_zext" "nonimmediate_operand" "register_operand")
+ (define_subst_attr "round_zext_op2" "round_zext" "" "%R2")
+ 
+ (define_subst "round_zext"
+   [(set (match_operand:DI 0)
+         (zero_extend:DI
+           (match_operand:SI 1)))]
+   "TARGET_64BIT && TARGET_AVX512F"
+   [(set (match_dup 0)
+         (zero_extend:DI
+            (unspec:SI
+               [(match_dup 1)
+                (match_operand:SI 2 "const_4_or_8_to_11_operand")]
+               UNSPEC_EMBEDDED_ROUNDING)))
+ ])
+ 
+ (define_subst_attr "round_saeonly_zext_name" "round_saeonly_zext" "_zext" "_round_zext")
+ (define_subst_attr "round_saeonly_zext_constraint" "round_saeonly_zext" "vm" "v")
+ (define_subst_attr "round_saeonly_zext_constraint2" "round_saeonly_zext" "m" "v")
+ (define_subst_attr "round_saeonly_zext_nimm_scalar_predicate" "round_saeonly_zext" "nonimmediate_operand" "register_operand")
+ (define_subst_attr "round_saeonly_zext_op2" "round_saeonly_zext" "" "%r2")
+ 
+ (define_subst "round_saeonly_zext"
+   [(set (match_operand:DI 0)
+         (zero_extend:DI
+           (match_operand:SI 1)))]
+   "TARGET_64BIT && TARGET_AVX512F"
+   [(set (match_dup 0)
+         (zero_extend:DI
+            (unspec:SI
+               [(match_dup 1)
+                (match_operand:SI 2 "const48_operand")]
+               UNSPEC_EMBEDDED_ROUNDING)))
+ ])
diff -Nrcpad gcc-17-20260712/gcc/config/loongarch/lsx.md gcc-17-20260719/gcc/config/loongarch/lsx.md
*** gcc-17-20260712/gcc/config/loongarch/lsx.md	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/config/loongarch/lsx.md	Sun Jul 19 22:32:07 2026
***************
*** 1598,1604 ****
    [(set (match_operand:LSX_WHB_W 0 "register_operand" "=f")
  	(vec_select:LSX_WHB_W
  	  (match_operand:LSX_WHB_W 1 "register_operand" "f")
! 	  (match_operand 2 "par_const_vector_shf_set_operand" "")))]
    "ISA_HAS_LSX"
  {
    HOST_WIDE_INT val = 0;
--- 1598,1604 ----
    [(set (match_operand:LSX_WHB_W 0 "register_operand" "=f")
  	(vec_select:LSX_WHB_W
  	  (match_operand:LSX_WHB_W 1 "register_operand" "f")
! 	  (match_operand:<VIMODE>  2 "par_const_vector_shf_set_operand" "")))]
    "ISA_HAS_LSX"
  {
    HOST_WIDE_INT val = 0;
diff -Nrcpad gcc-17-20260712/gcc/config/loongarch/predicates.md gcc-17-20260719/gcc/config/loongarch/predicates.md
*** gcc-17-20260712/gcc/config/loongarch/predicates.md	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/config/loongarch/predicates.md	Sun Jul 19 22:32:07 2026
***************
*** 684,690 ****
  						       op));
  })
  
! (define_predicate "par_const_vector_shf_set_operand"
    (match_code "parallel")
  {
    return loongarch_const_vector_shuffle_set_p (op, mode);
--- 684,690 ----
  						       op));
  })
  
! (define_special_predicate "par_const_vector_shf_set_operand"
    (match_code "parallel")
  {
    return loongarch_const_vector_shuffle_set_p (op, mode);
diff -Nrcpad gcc-17-20260712/gcc/config/mips/mips.h gcc-17-20260719/gcc/config/mips/mips.h
*** gcc-17-20260712/gcc/config/mips/mips.h	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/config/mips/mips.h	Sun Jul 19 22:32:07 2026
*************** struct mips_cpu_info {
*** 1490,1496 ****
  %{mloongson-ext2} %{mno-loongson-ext2} \
  %{msmartmips} %{mno-smartmips} \
  %{mmt} %{mno-mt} \
- %{mmxu} %{mno-mxu} \
  %{mfix-r5900} %{mno-fix-r5900} \
  %{mfix-rm7000} %{mno-fix-rm7000} \
  %{mfix-vr4120} %{mfix-vr4130} \
--- 1490,1495 ----
diff -Nrcpad gcc-17-20260712/gcc/config/mips/mips.opt gcc-17-20260719/gcc/config/mips/mips.opt
*** gcc-17-20260712/gcc/config/mips/mips.opt	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/config/mips/mips.opt	Sun Jul 19 22:32:07 2026
*************** mmt
*** 332,340 ****
  Target Var(TARGET_MT)
  Allow the use of MT instructions.
  
- mmxu
- Driver Target Undocumented
- 
  mno-float
  Target RejectNegative Var(TARGET_NO_FLOAT) Condition(TARGET_SUPPORTS_NO_FLOAT)
  Prevent the use of all floating-point operations.
--- 332,337 ----
diff -Nrcpad gcc-17-20260712/gcc/config/netbsd-elf.h gcc-17-20260719/gcc/config/netbsd-elf.h
*** gcc-17-20260712/gcc/config/netbsd-elf.h	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/config/netbsd-elf.h	Sun Jul 19 22:32:07 2026
*************** along with GCC; see the file COPYING3.
*** 73,81 ****
  
     Target-specific code must provide the %(netbsd_entry_point) spec.  */
  
- #define NETBSD_LINK_LD_ELF_SO_SPEC \
-   "%{!dynamic-linker:-dynamic-linker /usr/libexec/ld.elf_so}"
- 
  #define NETBSD_LINK_SPEC_ELF \
    "%{assert*} %{R*} %{rpath*} \
     %{shared:-shared} \
--- 73,78 ----
*************** along with GCC; see the file COPYING3.
*** 92,98 ****
  
  /* Provide the standard list of subtarget extra specs for NetBSD targets.  */
  #define NETBSD_SUBTARGET_EXTRA_SPECS \
-   { "netbsd_link_ld_elf_so",    NETBSD_LINK_LD_ELF_SO_SPEC }, \
    { "netbsd_cpp_spec",          NETBSD_CPP_SPEC }, \
    { "netbsd_link_spec",         NETBSD_LINK_SPEC_ELF }, \
    { "netbsd_entry_point",       NETBSD_ENTRY_POINT }, \
--- 89,94 ----
diff -Nrcpad gcc-17-20260712/gcc/config/riscv/riscv-cores.def gcc-17-20260719/gcc/config/riscv/riscv-cores.def
*** gcc-17-20260712/gcc/config/riscv/riscv-cores.def	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/config/riscv/riscv-cores.def	Sun Jul 19 22:32:07 2026
*************** RISCV_CORE("xt-c920v2",       "rv64imafd
*** 166,172 ****
  			       "xt-c920v2")
  
  RISCV_CORE("xt-c9501fdvt",    "rva23s64_zfbfmin_zfh_zicfilp_zicfiss_zkr_zmmul_"
! 			      "zbc_zca_zcd_zabha_zacas_zama16b_zvbc_zvfbfmin_"
  			      "zvfbfwma_zvfh_zvkb_zvkg_zvkn_zvknc_zvkned_"
  			      "zvkng_zvknha_zvknhb_zvksc_zvksed_zvksg_zvksh_"
  			      "zvl256b_smaia_smcntrpmf_smcsrind_smepmp_smmpm_"
--- 166,172 ----
  			       "xt-c920v2")
  
  RISCV_CORE("xt-c9501fdvt",    "rva23s64_zfbfmin_zfh_zicfilp_zicfiss_zkr_zmmul_"
! 			      "zbc_zca_zcd_zabha_zacas_zvbc_zvfbfmin_"
  			      "zvfbfwma_zvfh_zvkb_zvkg_zvkn_zvknc_zvkned_"
  			      "zvkng_zvknha_zvknhb_zvksc_zvksed_zvksg_zvksh_"
  			      "zvl256b_smaia_smcntrpmf_smcsrind_smepmp_smmpm_"
diff -Nrcpad gcc-17-20260712/gcc/config/riscv/riscv-ext.def gcc-17-20260719/gcc/config/riscv/riscv-ext.def
*** gcc-17-20260712/gcc/config/riscv/riscv-ext.def	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/config/riscv/riscv-ext.def	Sun Jul 19 22:32:07 2026
*************** DEFINE_RISCV_EXT(
*** 286,291 ****
--- 286,317 ----
    /* EXTRA_EXTENSION_FLAGS */ 0)
  
  DEFINE_RISCV_EXT(
+   /* NAME */ ziccamoc,
+   /* UPPERCASE_NAME */ ZICCAMOC,
+   /* FULL_NAME */ "Main memory supports compare-and-swap atomics",
+   /* DESC */ "",
+   /* URL */ ,
+   /* DEP_EXTS */ ({}),
+   /* SUPPORTED_VERSIONS */ ({{1, 0}}),
+   /* FLAG_GROUP */ zi,
+   /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED,
+   /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED,
+   /* EXTRA_EXTENSION_FLAGS */ 0)
+ 
+ DEFINE_RISCV_EXT(
+   /* NAME */ ziccid,
+   /* UPPERCASE_NAME */ ZICCID,
+   /* FULL_NAME */ "Instruction/data coherence and consistency extension",
+   /* DESC */ "",
+   /* URL */ ,
+   /* DEP_EXTS */ ({"ziccif"}),
+   /* SUPPORTED_VERSIONS */ ({{1, 0}}),
+   /* FLAG_GROUP */ zi,
+   /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED,
+   /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED,
+   /* EXTRA_EXTENSION_FLAGS */ 0)
+ 
+ DEFINE_RISCV_EXT(
    /* NAME */ ziccif,
    /* UPPERCASE_NAME */ ZICCIF,
    /* FULL_NAME */ "Main memory supports instruction fetch with atomicity requirement",
*************** DEFINE_RISCV_EXT(
*** 1729,1734 ****
--- 1755,1773 ----
    /* EXTRA_EXTENSION_FLAGS */ 0)
  
  DEFINE_RISCV_EXT(
+   /* NAME */ smcdeleg,
+   /* UPPERCASE_NAME */ SMCDELEG,
+   /* FULL_NAME */ "Machine-mode counter delegation extension",
+   /* DESC */ "",
+   /* URL */ ,
+   /* DEP_EXTS */ ({"ssccfg"}),
+   /* SUPPORTED_VERSIONS */ ({{1, 0}}),
+   /* FLAG_GROUP */ sm,
+   /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED,
+   /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED,
+   /* EXTRA_EXTENSION_FLAGS */ 0)
+ 
+ DEFINE_RISCV_EXT(
    /* NAME */ smcntrpmf,
    /* UPPERCASE_NAME */ SMCNTRPMF,
    /* FULL_NAME */ "Cycle and instret privilege mode filtering",
*************** DEFINE_RISCV_EXT(
*** 1742,1747 ****
--- 1781,1799 ----
    /* EXTRA_EXTENSION_FLAGS */ 0)
  
  DEFINE_RISCV_EXT(
+   /* NAME */ smctr,
+   /* UPPERCASE_NAME */ SMCTR,
+   /* FULL_NAME */ "Machine-mode control transfer records extension",
+   /* DESC */ "",
+   /* URL */ ,
+   /* DEP_EXTS */ ({"zicsr"}),
+   /* SUPPORTED_VERSIONS */ ({{1, 0}}),
+   /* FLAG_GROUP */ sm,
+   /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED,
+   /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED,
+   /* EXTRA_EXTENSION_FLAGS */ 0)
+ 
+ DEFINE_RISCV_EXT(
    /* NAME */ smcsrind,
    /* UPPERCASE_NAME */ SMCSRIND,
    /* FULL_NAME */ "Machine-level indirect CSR access",
*************** DEFINE_RISCV_EXT(
*** 1846,1851 ****
--- 1898,1916 ----
    /* EXTRA_EXTENSION_FLAGS */ 0)
  
  DEFINE_RISCV_EXT(
+   /* NAME */ ssccfg,
+   /* UPPERCASE_NAME */ SSCCFG,
+   /* FULL_NAME */ "Supervisor-mode counter configuration extension",
+   /* DESC */ "",
+   /* URL */ ,
+   /* DEP_EXTS */ ({"sscsrind"}),
+   /* SUPPORTED_VERSIONS */ ({{1, 0}}),
+   /* FLAG_GROUP */ ss,
+   /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED,
+   /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED,
+   /* EXTRA_EXTENSION_FLAGS */ 0)
+ 
+ DEFINE_RISCV_EXT(
    /* NAME */ ssccptr,
    /* UPPERCASE_NAME */ SSCCPTR,
    /* FULL_NAME */ "Main memory supports page table reads",
*************** DEFINE_RISCV_EXT(
*** 1885,1890 ****
--- 1950,1968 ----
    /* EXTRA_EXTENSION_FLAGS */ 0)
  
  DEFINE_RISCV_EXT(
+   /* NAME */ ssctr,
+   /* UPPERCASE_NAME */ SSCTR,
+   /* FULL_NAME */ "Supervisor-mode control transfer records extension",
+   /* DESC */ "",
+   /* URL */ ,
+   /* DEP_EXTS */ ({"zicsr"}),
+   /* SUPPORTED_VERSIONS */ ({{1, 0}}),
+   /* FLAG_GROUP */ ss,
+   /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED,
+   /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED,
+   /* EXTRA_EXTENSION_FLAGS */ 0)
+ 
+ DEFINE_RISCV_EXT(
    /* NAME */ sscsrind,
    /* UPPERCASE_NAME */ SSCSRIND,
    /* FULL_NAME */ "Supervisor-mode indirect CSR access",
*************** DEFINE_RISCV_EXT(
*** 1924,1929 ****
--- 2002,2020 ----
    /* EXTRA_EXTENSION_FLAGS */ 0)
  
  DEFINE_RISCV_EXT(
+   /* NAME */ ssqosid,
+   /* UPPERCASE_NAME */ SSQOSID,
+   /* FULL_NAME */ "Supervisor-mode quality-of-service ID extension",
+   /* DESC */ "",
+   /* URL */ ,
+   /* DEP_EXTS */ ({}),
+   /* SUPPORTED_VERSIONS */ ({{1, 0}}),
+   /* FLAG_GROUP */ ss,
+   /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED,
+   /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED,
+   /* EXTRA_EXTENSION_FLAGS */ 0)
+ 
+ DEFINE_RISCV_EXT(
    /* NAME */ ssstateen,
    /* UPPERCASE_NAME */ SSSTATEEN,
    /* FULL_NAME */ "Supervisor-mode state-enable extension",
*************** DEFINE_RISCV_EXT(
*** 2062,2067 ****
--- 2153,2171 ----
    /* DESC */ "",
    /* URL */ ,
    /* DEP_EXTS */ ({}),
+   /* SUPPORTED_VERSIONS */ ({{1, 0}}),
+   /* FLAG_GROUP */ sv,
+   /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED,
+   /* BITMASK_BIT_POSITION*/ BITMASK_NOT_YET_ALLOCATED,
+   /* EXTRA_EXTENSION_FLAGS */ 0)
+ 
+ DEFINE_RISCV_EXT(
+   /* NAME */ svrsw60t59b,
+   /* UPPERCASE_NAME */ SVRSW60T59B,
+   /* FULL_NAME */ "Page-table reserved-for-software bits 60-59 extension",
+   /* DESC */ "",
+   /* URL */ ,
+   /* DEP_EXTS */ ({}),
    /* SUPPORTED_VERSIONS */ ({{1, 0}}),
    /* FLAG_GROUP */ sv,
    /* BITMASK_GROUP_ID */ BITMASK_NOT_YET_ALLOCATED,
diff -Nrcpad gcc-17-20260712/gcc/config/riscv/riscv-ext.opt gcc-17-20260719/gcc/config/riscv/riscv-ext.opt
*** gcc-17-20260712/gcc/config/riscv/riscv-ext.opt	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/config/riscv/riscv-ext.opt	Sun Jul 19 22:32:07 2026
*************** Mask(ZICBOZ) Var(riscv_zi_subext)
*** 139,144 ****
--- 139,148 ----
  
  Mask(ZICCAMOA) Var(riscv_zi_subext)
  
+ Mask(ZICCAMOC) Var(riscv_zi_subext)
+ 
+ Mask(ZICCID) Var(riscv_zi_subext)
+ 
  Mask(ZICCIF) Var(riscv_zi_subext)
  
  Mask(ZICCLSM) Var(riscv_zi_subext)
*************** Mask(SHVSATPA) Var(riscv_sh_subext)
*** 355,362 ****
--- 359,370 ----
  
  Mask(SMAIA) Var(riscv_sm_subext)
  
+ Mask(SMCDELEG) Var(riscv_sm_subext)
+ 
  Mask(SMCNTRPMF) Var(riscv_sm_subext)
  
+ Mask(SMCTR) Var(riscv_sm_subext)
+ 
  Mask(SMCSRIND) Var(riscv_sm_subext)
  
  Mask(SMEPMP) Var(riscv_sm_subext)
*************** Mask(SMDBLTRP) Var(riscv_sm_subext)
*** 373,390 ****
--- 381,404 ----
  
  Mask(SSAIA) Var(riscv_ss_subext)
  
+ Mask(SSCCFG) Var(riscv_ss_subext)
+ 
  Mask(SSCCPTR) Var(riscv_ss_subext)
  
  Mask(SSCOFPMF) Var(riscv_ss_subext)
  
  Mask(SSCOUNTERENW) Var(riscv_ss_subext)
  
+ Mask(SSCTR) Var(riscv_ss_subext)
+ 
  Mask(SSCSRIND) Var(riscv_ss_subext)
  
  Mask(SSNPM) Var(riscv_ss_subext)
  
  Mask(SSPM) Var(riscv_ss_subext)
  
+ Mask(SSQOSID) Var(riscv_ss_subext)
+ 
  Mask(SSSTATEEN) Var(riscv_ss_subext)
  
  Mask(SSTC) Var(riscv_ss_subext)
*************** Mask(SVNAPOT) Var(riscv_sv_subext)
*** 407,412 ****
--- 421,428 ----
  
  Mask(SVPBMT) Var(riscv_sv_subext)
  
+ Mask(SVRSW60T59B) Var(riscv_sv_subext)
+ 
  Mask(SVVPTC) Var(riscv_sv_subext)
  
  Mask(SVADU) Var(riscv_sv_subext)
diff -Nrcpad gcc-17-20260712/gcc/config/riscv/riscv-protos.h gcc-17-20260719/gcc/config/riscv/riscv-protos.h
*** gcc-17-20260712/gcc/config/riscv/riscv-protos.h	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/config/riscv/riscv-protos.h	Sun Jul 19 22:32:07 2026
*************** extern rtx riscv_emit_unary (enum rtx_co
*** 155,161 ****
  extern rtx riscv_emit_binary (enum rtx_code code, rtx dest, rtx x, rtx y);
  #endif
  extern bool riscv_expand_conditional_move (rtx, rtx, rtx, rtx);
! extern rtx riscv_legitimize_call_address (rtx);
  extern bool riscv_call_needs_lpad_p (rtx);
  extern bool riscv_expand_zilsd_misaligned_move (rtx, rtx);
  extern bool riscv_zilsd_valid_mem_p (rtx, machine_mode);
--- 155,161 ----
  extern rtx riscv_emit_binary (enum rtx_code code, rtx dest, rtx x, rtx y);
  #endif
  extern bool riscv_expand_conditional_move (rtx, rtx, rtx, rtx);
! extern rtx riscv_legitimize_call_address (rtx, bool);
  extern bool riscv_call_needs_lpad_p (rtx);
  extern bool riscv_expand_zilsd_misaligned_move (rtx, rtx);
  extern bool riscv_zilsd_valid_mem_p (rtx, machine_mode);
diff -Nrcpad gcc-17-20260712/gcc/config/riscv/riscv-target-attr.cc gcc-17-20260719/gcc/config/riscv/riscv-target-attr.cc
*** gcc-17-20260712/gcc/config/riscv/riscv-target-attr.cc	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/config/riscv/riscv-target-attr.cc	Sun Jul 19 22:32:07 2026
*************** riscv_target_attr_parser::parse_arch (co
*** 148,154 ****
  	{
  	  if (token[0] != '+')
  	    {
! 	      if (*m_loc)
  		error_at (*m_loc, "unexpected arch for %<target()%> "
  			  "attribute: must start with + or rv");
  	      goto fail;
--- 148,154 ----
  	{
  	  if (token[0] != '+')
  	    {
! 	      if (m_loc)
  		error_at (*m_loc, "unexpected arch for %<target()%> "
  			  "attribute: must start with + or rv");
  	      goto fail;
diff -Nrcpad gcc-17-20260712/gcc/config/riscv/riscv.cc gcc-17-20260719/gcc/config/riscv/riscv.cc
*** gcc-17-20260712/gcc/config/riscv/riscv.cc	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/config/riscv/riscv.cc	Sun Jul 19 22:32:07 2026
*************** bool riscv_registering_builtins;
*** 346,352 ****
  /* Index R is the smallest register class that contains register R.  */
  const enum reg_class riscv_regno_to_class[FIRST_PSEUDO_REGISTER] = {
    GR_REGS,	GR_REGS,	GR_REGS,	GR_REGS,
!   GR_REGS,	GR_REGS,	SIBCALL_REGS,	SIBCALL_REGS,
    JALR_REGS,	JALR_REGS,	SIBCALL_REGS,	SIBCALL_REGS,
    SIBCALL_REGS,	SIBCALL_REGS,	SIBCALL_REGS,	SIBCALL_REGS,
    SIBCALL_REGS,	SIBCALL_REGS,	JALR_REGS,	JALR_REGS,
--- 346,352 ----
  /* Index R is the smallest register class that contains register R.  */
  const enum reg_class riscv_regno_to_class[FIRST_PSEUDO_REGISTER] = {
    GR_REGS,	GR_REGS,	GR_REGS,	GR_REGS,
!   GR_REGS,	GR_REGS,	JALR_REGS,	SIBCALL_REGS,
    JALR_REGS,	JALR_REGS,	SIBCALL_REGS,	SIBCALL_REGS,
    SIBCALL_REGS,	SIBCALL_REGS,	SIBCALL_REGS,	SIBCALL_REGS,
    SIBCALL_REGS,	SIBCALL_REGS,	JALR_REGS,	JALR_REGS,
*************** riscv_legitimize_address (rtx x, rtx old
*** 3464,3472 ****
        rtx base = XEXP (x, 0);
        HOST_WIDE_INT offset = INTVAL (XEXP (x, 1));
  
!       /* Handle (plus (plus (mult (a) (mem_shadd_constant)) (fp)) (C)) case.  */
!       if (GET_CODE (base) == PLUS && mem_shadd_or_shadd_rtx_p (XEXP (base, 0))
! 	  && SMALL_OPERAND (offset))
  	{
  	  rtx index = XEXP (base, 0);
  	  rtx fp = XEXP (base, 1);
--- 3464,3474 ----
        rtx base = XEXP (x, 0);
        HOST_WIDE_INT offset = INTVAL (XEXP (x, 1));
  
!       /* Handle (plus (plus (mult (a) (mem_shadd_constant))
! 			    (stack_base)) (C)).
! 	 Form STACK_BASE + C before adding the scaled index, so that CSE can
! 	 share the base when C is a large frame offset.  */
!       if (GET_CODE (base) == PLUS && mem_shadd_or_shadd_rtx_p (XEXP (base, 0)))
  	{
  	  rtx index = XEXP (base, 0);
  	  rtx fp = XEXP (base, 1);
*************** riscv_legitimize_address (rtx x, rtx old
*** 3479,3488 ****
  	      if (GET_CODE (index) == MULT)
  		shift_val = exact_log2 (shift_val);
  
! 	      rtx reg1 = gen_reg_rtx (Pmode);
  	      rtx reg2 = gen_reg_rtx (Pmode);
  	      rtx reg3 = gen_reg_rtx (Pmode);
- 	      riscv_emit_binary (PLUS, reg1, fp, GEN_INT (offset));
  	      riscv_emit_binary (ASHIFT, reg2, XEXP (index, 0), GEN_INT (shift_val));
  	      riscv_emit_binary (PLUS, reg3, reg2, reg1);
  
--- 3481,3489 ----
  	      if (GET_CODE (index) == MULT)
  		shift_val = exact_log2 (shift_val);
  
! 	      rtx reg1 = force_reg (Pmode, riscv_add_offset (NULL, fp, offset));
  	      rtx reg2 = gen_reg_rtx (Pmode);
  	      rtx reg3 = gen_reg_rtx (Pmode);
  	      riscv_emit_binary (ASHIFT, reg2, XEXP (index, 0), GEN_INT (shift_val));
  	      riscv_emit_binary (PLUS, reg3, reg2, reg1);
  
*************** riscv_noce_conversion_profitable_p (rtx_
*** 5200,5205 ****
--- 5201,5212 ----
  	      riscv_if_info.original_cost += COSTS_N_INSNS (1);
  	      riscv_if_info.max_seq_cost += COSTS_N_INSNS (1);
  	    }
+ 	  else if (REG_P (src) && REG_P (dest))
+ 	    {
+ 	      /* Trivial copies likely just get propagated away.  */
+ 	      riscv_if_info.original_cost += COSTS_N_INSNS (1);
+ 	      riscv_if_info.max_seq_cost += COSTS_N_INSNS (1);
+ 	    }
  	  else
  	    last_dest = NULL_RTX;
  
*************** riscv_va_start (tree valist, rtx nextarg
*** 8096,8109 ****
    std_expand_builtin_va_start (valist, nextarg);
  }
  
! /* Make ADDR suitable for use as a call or sibcall target.  */
  
  rtx
! riscv_legitimize_call_address (rtx addr)
  {
    if (!call_insn_operand (addr, VOIDmode))
      {
!       rtx reg = RISCV_CALL_ADDRESS_TEMP (Pmode);
        riscv_emit_move (reg, addr);
  
        if (is_zicfilp_p ())
--- 8103,8118 ----
    std_expand_builtin_va_start (valist, nextarg);
  }
  
! /* Make ADDR a valid call target.  */
  
  rtx
! riscv_legitimize_call_address (rtx addr, bool sibcall_p)
  {
    if (!call_insn_operand (addr, VOIDmode))
      {
!       rtx reg = sibcall_p
! 		? gen_reg_rtx (Pmode)
! 		: RISCV_CALL_ADDRESS_TEMP (Pmode);
        riscv_emit_move (reg, addr);
  
        if (is_zicfilp_p ())
*************** riscv_override_options_internal (struct
*** 12133,12138 ****
--- 12142,12165 ----
      }
  }
  
+ /* Implement TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.  */
+ 
+ static void
+ riscv_override_options_after_change (void)
+ {
+   /* Explicit unrolling is not restricted to small loops.  */
+   if ((OPTION_SET_P (flag_unroll_loops) && flag_unroll_loops)
+       || (OPTION_SET_P (flag_unroll_all_loops) && flag_unroll_all_loops))
+     {
+       if (!OPTION_SET_P (riscv_unroll_only_small_loops))
+ 	riscv_unroll_only_small_loops = 0;
+       if (!OPTION_SET_P (flag_cunroll_grow_size))
+ 	flag_cunroll_grow_size = 1;
+     }
+   else if (!OPTION_SET_P (flag_cunroll_grow_size))
+     flag_cunroll_grow_size = flag_peel_loops || optimize >= 3;
+ }
+ 
  /* Implement TARGET_OPTION_OVERRIDE.  */
  
  void
*************** riscv_option_override (void)
*** 12144,12158 ****
  
    flag_pcc_struct_return = 0;
  
!   /* Explicit -funroll-loops or -funroll-all-loops turns
!      -munroll-only-small-loops off, allowing the unroller to handle
!      all loops without the conservative small-loop restriction.  */
!   if ((OPTION_SET_P (flag_unroll_loops) && flag_unroll_loops)
!       || (OPTION_SET_P (flag_unroll_all_loops) && flag_unroll_all_loops))
!     {
!       if (!OPTION_SET_P (riscv_unroll_only_small_loops))
! 	riscv_unroll_only_small_loops = 0;
!     }
  
    if (flag_pic)
      g_switch_value = 0;
--- 12171,12177 ----
  
    flag_pcc_struct_return = 0;
  
!   riscv_override_options_after_change ();
  
    if (flag_pic)
      g_switch_value = 0;
*************** riscv_memtag_tag_bitsize ()
*** 16514,16519 ****
--- 16533,16541 ----
  #undef TARGET_OPTION_OVERRIDE
  #define TARGET_OPTION_OVERRIDE riscv_option_override
  
+ #undef TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE
+ #define TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE riscv_override_options_after_change
+ 
  #undef TARGET_OPTION_SAVE
  #define TARGET_OPTION_SAVE riscv_option_save
  
diff -Nrcpad gcc-17-20260712/gcc/config/riscv/riscv.h gcc-17-20260719/gcc/config/riscv/riscv.h
*** gcc-17-20260712/gcc/config/riscv/riscv.h	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/config/riscv/riscv.h	Sun Jul 19 22:32:07 2026
*************** ARCH_UNSET_CLEANUP_SPECS \
*** 430,439 ****
  
  /* Registers used as temporaries in prologue/epilogue code.
  
!    The prologue registers mustn't conflict with any
!    incoming arguments, the static chain pointer, or the frame pointer.
!    The epilogue temporary mustn't conflict with the return registers,
!    the frame pointer, the EH stack adjustment, or the EH data registers. */
  
  #define RISCV_PROLOGUE_TEMP_REGNUM (GP_TEMP_FIRST)
  #define RISCV_PROLOGUE_TEMP(MODE) gen_rtx_REG (MODE, RISCV_PROLOGUE_TEMP_REGNUM)
--- 430,440 ----
  
  /* Registers used as temporaries in prologue/epilogue code.
  
!    The prologue temporaries mustn't conflict with any incoming arguments,
!    the static chain pointer, or the frame pointer.
!    The epilogue temporaries mustn't conflict with the return registers,
!    the frame pointer, the EH stack adjustment, the EH data registers, or
!    any register in SIBCALL_REGS.  */
  
  #define RISCV_PROLOGUE_TEMP_REGNUM (GP_TEMP_FIRST)
  #define RISCV_PROLOGUE_TEMP(MODE) gen_rtx_REG (MODE, RISCV_PROLOGUE_TEMP_REGNUM)
*************** enum reg_class
*** 572,578 ****
  #define REG_CLASS_CONTENTS						\
  {									\
    { 0x00000000, 0x00000000, 0x00000000, 0x00000000 },	/* NO_REGS */		\
!   { 0xf003fcc0, 0x00000000, 0x00000000, 0x00000000 },	/* SIBCALL_REGS */	\
    { 0x0000ff00, 0x00000000, 0x00000000, 0x00000000 },	/* RVC_GR_REGS */	\
    { 0xffffffc0, 0x00000000, 0x00000000, 0x00000000 },	/* JALR_REGS */		\
    { 0xffffffff, 0x00000000, 0x00000000, 0x00000000 },	/* GR_REGS */		\
--- 573,579 ----
  #define REG_CLASS_CONTENTS						\
  {									\
    { 0x00000000, 0x00000000, 0x00000000, 0x00000000 },	/* NO_REGS */		\
!   { 0xf003fc80, 0x00000000, 0x00000000, 0x00000000 },	/* SIBCALL_REGS */	\
    { 0x0000ff00, 0x00000000, 0x00000000, 0x00000000 },	/* RVC_GR_REGS */	\
    { 0xffffffc0, 0x00000000, 0x00000000, 0x00000000 },	/* JALR_REGS */		\
    { 0xffffffff, 0x00000000, 0x00000000, 0x00000000 },	/* GR_REGS */		\
diff -Nrcpad gcc-17-20260712/gcc/config/riscv/riscv.md gcc-17-20260719/gcc/config/riscv/riscv.md
*** gcc-17-20260712/gcc/config/riscv/riscv.md	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/config/riscv/riscv.md	Sun Jul 19 22:32:07 2026
***************
*** 181,186 ****
--- 181,187 ----
     (VTYPE_REGNUM		67)
     (VXRM_REGNUM			68)
     (FRM_REGNUM			69)
+    (VXSAT_REGNUM		70)
  ])
  
  (include "predicates.md")
***************
*** 2478,2484 ****
  	(unspec:P
  	    [(match_operand:P 0 "symbolic_operand" "")]
  	    UNSPEC_TLSDESC))
!    (clobber (reg:P T0_REGNUM))]
    "TARGET_TLSDESC"
    {
      return ".LT%=: auipc\ta0,%%tlsdesc_hi(%0)\;"
--- 2479,2521 ----
  	(unspec:P
  	    [(match_operand:P 0 "symbolic_operand" "")]
  	    UNSPEC_TLSDESC))
!    (clobber (reg:P T0_REGNUM))
!    (clobber (reg:RVVM1QI 96))
!    (clobber (reg:RVVM1QI 97))
!    (clobber (reg:RVVM1QI 98))
!    (clobber (reg:RVVM1QI 99))
!    (clobber (reg:RVVM1QI 100))
!    (clobber (reg:RVVM1QI 101))
!    (clobber (reg:RVVM1QI 102))
!    (clobber (reg:RVVM1QI 103))
!    (clobber (reg:RVVM1QI 104))
!    (clobber (reg:RVVM1QI 105))
!    (clobber (reg:RVVM1QI 106))
!    (clobber (reg:RVVM1QI 107))
!    (clobber (reg:RVVM1QI 108))
!    (clobber (reg:RVVM1QI 109))
!    (clobber (reg:RVVM1QI 110))
!    (clobber (reg:RVVM1QI 111))
!    (clobber (reg:RVVM1QI 112))
!    (clobber (reg:RVVM1QI 113))
!    (clobber (reg:RVVM1QI 114))
!    (clobber (reg:RVVM1QI 115))
!    (clobber (reg:RVVM1QI 116))
!    (clobber (reg:RVVM1QI 117))
!    (clobber (reg:RVVM1QI 118))
!    (clobber (reg:RVVM1QI 119))
!    (clobber (reg:RVVM1QI 120))
!    (clobber (reg:RVVM1QI 121))
!    (clobber (reg:RVVM1QI 122))
!    (clobber (reg:RVVM1QI 123))
!    (clobber (reg:RVVM1QI 124))
!    (clobber (reg:RVVM1QI 125))
!    (clobber (reg:RVVM1QI 126))
!    (clobber (reg:RVVM1QI 127))
!    (clobber (reg:SI VL_REGNUM))
!    (clobber (reg:SI VTYPE_REGNUM))
!    (clobber (reg:SI VXRM_REGNUM))
!    (clobber (reg:SI VXSAT_REGNUM))]
    "TARGET_TLSDESC"
    {
      return ".LT%=: auipc\ta0,%%tlsdesc_hi(%0)\;"
***************
*** 4144,4150 ****
  	      (use (match_operand 2 ""))])]
    ""
  {
!   rtx target = riscv_legitimize_call_address (XEXP (operands[0], 0));
    emit_call_insn (gen_sibcall_internal (target, operands[1]));
    DONE;
  })
--- 4181,4187 ----
  	      (use (match_operand 2 ""))])]
    ""
  {
!   rtx target = riscv_legitimize_call_address (XEXP (operands[0], 0), true);
    emit_call_insn (gen_sibcall_internal (target, operands[1]));
    DONE;
  })
***************
*** 4166,4172 ****
  	      (use (match_operand 3 ""))])]
    ""
  {
!   rtx target = riscv_legitimize_call_address (XEXP (operands[1], 0));
    emit_call_insn (gen_sibcall_value_internal (operands[0], target,
  					      operands[2]));
    DONE;
--- 4203,4209 ----
  	      (use (match_operand 3 ""))])]
    ""
  {
!   rtx target = riscv_legitimize_call_address (XEXP (operands[1], 0), true);
    emit_call_insn (gen_sibcall_value_internal (operands[0], target,
  					      operands[2]));
    DONE;
***************
*** 4190,4196 ****
    ""
  {
    rtx addr = XEXP (operands[0], 0);
!   rtx target = riscv_legitimize_call_address (addr);
    if (riscv_call_needs_lpad_p (addr))
      emit_call_insn (gen_call_internal_cfi (target, operands[1]));
    else
--- 4227,4233 ----
    ""
  {
    rtx addr = XEXP (operands[0], 0);
!   rtx target = riscv_legitimize_call_address (addr, false);
    if (riscv_call_needs_lpad_p (addr))
      emit_call_insn (gen_call_internal_cfi (target, operands[1]));
    else
***************
*** 4248,4254 ****
    ""
  {
    rtx addr = XEXP (operands[1], 0);
!   rtx target = riscv_legitimize_call_address (addr);
    if (riscv_call_needs_lpad_p (addr))
      emit_call_insn (gen_call_value_internal_cfi (operands[0], target,
  						 operands[2]));
--- 4285,4291 ----
    ""
  {
    rtx addr = XEXP (operands[1], 0);
!   rtx target = riscv_legitimize_call_address (addr, false);
    if (riscv_call_needs_lpad_p (addr))
      emit_call_insn (gen_call_value_internal_cfi (operands[0], target,
  						 operands[2]));
diff -Nrcpad gcc-17-20260712/gcc/config/riscv/vector.md gcc-17-20260719/gcc/config/riscv/vector.md
*** gcc-17-20260712/gcc/config/riscv/vector.md	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/config/riscv/vector.md	Sun Jul 19 22:32:07 2026
***************
*** 4130,4148 ****
  
  ;; Vector Oct-Widening Sign-extend and Zero-extend.
  (define_insn "@pred_<optab><mode>_vf8"
!   [(set (match_operand:VOEXTI 0 "register_operand"         "=&vr,&vr")
  	(if_then_else:VOEXTI
  	  (unspec:<VM>
! 	    [(match_operand:<VM> 1 "vector_mask_operand"      "vmWc1,vmWc1")
! 	     (match_operand 4 "vector_length_operand"         "  rvl,  rvl")
! 	     (match_operand 5 "const_int_operand"             "    i,    i")
! 	     (match_operand 6 "const_int_operand"             "    i,    i")
! 	     (match_operand 7 "const_int_operand"             "    i,    i")
  	     (reg:SI VL_REGNUM)
  	     (reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
  	  (any_extend:VOEXTI
! 	    (match_operand:<V_OCT_TRUNC> 3 "register_operand" "   vr,   vr"))
! 	  (match_operand:VOEXTI 2 "vector_merge_operand"      "   vu,    0")))]
    "TARGET_VECTOR && !TARGET_XTHEADVECTOR"
    "v<sz>ext.vf8\t%0,%3%p1"
    [(set_attr "type" "vext")
--- 4130,4148 ----
  
  ;; Vector Oct-Widening Sign-extend and Zero-extend.
  (define_insn "@pred_<optab><mode>_vf8"
!   [(set (match_operand:VOEXTI 0 "register_operand"            "=vr,  vr,  vd,  vd")
  	(if_then_else:VOEXTI
  	  (unspec:<VM>
! 	    [(match_operand:<VM> 1 "vector_mask_operand"      "Wc1, Wc1,  vm,  vm")
! 	     (match_operand 4 "vector_length_operand"         "rvl, rvl, rvl, rvl")
! 	     (match_operand 5 "const_int_operand"             "  i,   i,   i,   i")
! 	     (match_operand 6 "const_int_operand"             "  i,   i,   i,   i")
! 	     (match_operand 7 "const_int_operand"             "  i,   i,   i,   i")
  	     (reg:SI VL_REGNUM)
  	     (reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
  	  (any_extend:VOEXTI
! 	    (match_operand:<V_OCT_TRUNC> 3 "register_operand" "Wvr, Wvr, Wvr, Wvr"))
! 	  (match_operand:VOEXTI 2 "vector_merge_operand"      " vu,   0,  vu,   0")))]
    "TARGET_VECTOR && !TARGET_XTHEADVECTOR"
    "v<sz>ext.vf8\t%0,%3%p1"
    [(set_attr "type" "vext")
***************
*** 4349,4370 ****
  
  ;; vwcvt<u>.x.x.v
  (define_insn "@pred_<optab><mode>"
!   [(set (match_operand:VWEXTI 0 "register_operand"                  "=&vr,&vr")
  	(if_then_else:VWEXTI
  	  (unspec:<VM>
! 	    [(match_operand:<VM> 1 "vector_mask_operand"           "vmWc1,vmWc1")
! 	     (match_operand 4 "vector_length_operand"              "  rvl,  rvl")
! 	     (match_operand 5 "const_int_operand"                  "    i,    i")
! 	     (match_operand 6 "const_int_operand"                  "    i,    i")
! 	     (match_operand 7 "const_int_operand"                  "    i,    i")
  	     (reg:SI VL_REGNUM)
  	     (reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
  	  (plus:VWEXTI
  	    (any_extend:VWEXTI
! 	      (match_operand:<V_DOUBLE_TRUNC> 3 "register_operand" "   vr,   vr"))
  	    (vec_duplicate:VWEXTI
  	      (reg:<VEL> X0_REGNUM)))
! 	  (match_operand:VWEXTI 2 "vector_merge_operand"           "   vu,    0")))]
    "TARGET_VECTOR"
    "vwcvt<u>.x.x.v\t%0,%3%p1"
    [(set_attr "type" "viwalu")
--- 4349,4370 ----
  
  ;; vwcvt<u>.x.x.v
  (define_insn "@pred_<optab><mode>"
!   [(set (match_operand:VWEXTI 0 "register_operand"                 "=vr, vr, vd, vd")
  	(if_then_else:VWEXTI
  	  (unspec:<VM>
! 	    [(match_operand:<VM> 1 "vector_mask_operand"           "Wc1,Wc1, vm, vm")
! 	     (match_operand 4 "vector_length_operand"              "rvl,rvl,rvl,rvl")
! 	     (match_operand 5 "const_int_operand"                  "  i,  i,  i,  i")
! 	     (match_operand 6 "const_int_operand"                  "  i,  i,  i,  i")
! 	     (match_operand 7 "const_int_operand"                  "  i,  i,  i,  i")
  	     (reg:SI VL_REGNUM)
  	     (reg:SI VTYPE_REGNUM)] UNSPEC_VPREDICATE)
  	  (plus:VWEXTI
  	    (any_extend:VWEXTI
! 	      (match_operand:<V_DOUBLE_TRUNC> 3 "register_operand" "Wvr,Wvr,Wvr,Wvr"))
  	    (vec_duplicate:VWEXTI
  	      (reg:<VEL> X0_REGNUM)))
! 	  (match_operand:VWEXTI 2 "vector_merge_operand"           " vu,  0, vu,  0")))]
    "TARGET_VECTOR"
    "vwcvt<u>.x.x.v\t%0,%3%p1"
    [(set_attr "type" "viwalu")
***************
*** 7825,7845 ****
  ;; -------------------------------------------------------------------------------
  
  (define_insn "@pred_widen_fcvt_x<v_su>_f<mode>"
!   [(set (match_operand:VWCONVERTI 0 "register_operand"         "=&vr,  &vr")
  	(if_then_else:VWCONVERTI
  	  (unspec:<VM>
! 	    [(match_operand:<VM> 1 "vector_mask_operand"      "vmWc1,vmWc1")
! 	     (match_operand 4 "vector_length_operand"         "  rvl,  rvl")
! 	     (match_operand 5 "const_int_operand"             "    i,    i")
! 	     (match_operand 6 "const_int_operand"             "    i,    i")
! 	     (match_operand 7 "const_int_operand"             "    i,    i")
! 	     (match_operand 8 "const_int_operand"             "    i,    i")
  	     (reg:SI VL_REGNUM)
  	     (reg:SI VTYPE_REGNUM)
  	     (reg:SI FRM_REGNUM)] UNSPEC_VPREDICATE)
  	  (unspec:VWCONVERTI
! 	     [(match_operand:<VNCONVERT> 3 "register_operand" "   vr,   vr")] VFCVTS)
! 	  (match_operand:VWCONVERTI 2 "vector_merge_operand"  "   vu,    0")))]
    "TARGET_VECTOR"
    "vfwcvt.x<v_su>.f.v\t%0,%3%p1"
    [(set_attr "type" "vfwcvtftoi")
--- 7825,7845 ----
  ;; -------------------------------------------------------------------------------
  
  (define_insn "@pred_widen_fcvt_x<v_su>_f<mode>"
!   [(set (match_operand:VWCONVERTI 0 "register_operand"        "=vr, vr, vd, vd")
  	(if_then_else:VWCONVERTI
  	  (unspec:<VM>
! 	    [(match_operand:<VM> 1 "vector_mask_operand"      "Wc1,Wc1, vm, vm")
! 	     (match_operand 4 "vector_length_operand"         "rvl,rvl,rvl,rvl")
! 	     (match_operand 5 "const_int_operand"             "  i,  i,  i,  i")
! 	     (match_operand 6 "const_int_operand"             "  i,  i,  i,  i")
! 	     (match_operand 7 "const_int_operand"             "  i,  i,  i,  i")
! 	     (match_operand 8 "const_int_operand"             "  i,  i,  i,  i")
  	     (reg:SI VL_REGNUM)
  	     (reg:SI VTYPE_REGNUM)
  	     (reg:SI FRM_REGNUM)] UNSPEC_VPREDICATE)
  	  (unspec:VWCONVERTI
! 	     [(match_operand:<VNCONVERT> 3 "register_operand" "Wvr,Wvr,Wvr,Wvr")] VFCVTS)
! 	  (match_operand:VWCONVERTI 2 "vector_merge_operand"  " vu,  0, vu,  0")))]
    "TARGET_VECTOR"
    "vfwcvt.x<v_su>.f.v\t%0,%3%p1"
    [(set_attr "type" "vfwcvtftoi")
diff -Nrcpad gcc-17-20260712/gcc/config/riscv/zicond.md gcc-17-20260719/gcc/config/riscv/zicond.md
*** gcc-17-20260712/gcc/config/riscv/zicond.md	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/config/riscv/zicond.md	Sun Jul 19 22:32:07 2026
***************
*** 458,464 ****
  	 (const_int 0)))
     (clobber (match_operand:X 3 "register_operand"))]
    "exact_log2 (INTVAL (operands[2])) >= 0"
!   [(set (match_dup 3) (any_gt:X (match_dup 1) (const_int 1)))
     (set (match_dup 0) (ashift:X (match_dup 3) (match_dup 4)))]
    { operands[4] = GEN_INT (exact_log2 (INTVAL (operands[2]))); })
  
--- 458,464 ----
  	 (const_int 0)))
     (clobber (match_operand:X 3 "register_operand"))]
    "exact_log2 (INTVAL (operands[2])) >= 0"
!   [(set (match_dup 3) (any_ge:X (match_dup 1) (const_int 1)))
     (set (match_dup 0) (ashift:X (match_dup 3) (match_dup 4)))]
    { operands[4] = GEN_INT (exact_log2 (INTVAL (operands[2]))); })
  
diff -Nrcpad gcc-17-20260712/gcc/config/rs6000/rs6000-builtin.cc gcc-17-20260719/gcc/config/rs6000/rs6000-builtin.cc
*** gcc-17-20260712/gcc/config/rs6000/rs6000-builtin.cc	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/config/rs6000/rs6000-builtin.cc	Sun Jul 19 22:32:07 2026
*************** rs6000_invalid_builtin (enum rs6000_gen_
*** 150,155 ****
--- 150,158 ----
        error ("%qs requires the %qs and %qs options", name, "-mcpu=future",
  	     "-mvsx");
        break;
+     case ENB_DM:
+       error ("%qs requires the %qs option", name, "-mdense-math");
+       break;
      default:
      case ENB_ALWAYS:
        gcc_unreachable ();
*************** rs6000_builtin_is_supported (enum rs6000
*** 211,216 ****
--- 214,221 ----
        return TARGET_FUTURE && TARGET_ALTIVEC;
      case ENB_FUTURE_VSX:
        return TARGET_FUTURE && TARGET_VSX;
+     case ENB_DM:
+       return TARGET_DMF;
      default:
        gcc_unreachable ();
      }
diff -Nrcpad gcc-17-20260712/gcc/config/rs6000/rs6000-call.cc gcc-17-20260719/gcc/config/rs6000/rs6000-call.cc
*** gcc-17-20260712/gcc/config/rs6000/rs6000-call.cc	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/config/rs6000/rs6000-call.cc	Sun Jul 19 22:32:07 2026
*************** rs6000_discover_homogeneous_aggregate (m
*** 432,450 ****
  bool
  rs6000_return_in_memory (const_tree type, const_tree fntype ATTRIBUTE_UNUSED)
  {
!   /* We do not allow MMA types being used as return values.  Only report
!      the invalid return value usage the first time we encounter it.  */
    if (cfun
        && !cfun->machine->mma_return_type_error
        && TREE_TYPE (cfun->decl) == fntype
!       && (TYPE_MODE (type) == OOmode || TYPE_MODE (type) == XOmode))
      {
        /* Record we have now handled function CFUN, so the next time we
  	 are called, we do not re-report the same error.  */
        cfun->machine->mma_return_type_error = true;
        if (TYPE_CANONICAL (type) != NULL_TREE)
  	type = TYPE_CANONICAL (type);
!       error ("invalid use of MMA type %qs as a function return value",
  	     IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type))));
      }
  
--- 432,455 ----
  bool
  rs6000_return_in_memory (const_tree type, const_tree fntype ATTRIBUTE_UNUSED)
  {
!   /* We do not allow Dense Math/MMA types being used as return values.  Only
!      report the invalid return value usage the first time we encounter it.  */
    if (cfun
        && !cfun->machine->mma_return_type_error
        && TREE_TYPE (cfun->decl) == fntype
!       && (TYPE_MODE (type) == OOmode
! 	   || TYPE_MODE (type) == XOmode
! 	   || TYPE_MODE (type) == TDOmode))
      {
        /* Record we have now handled function CFUN, so the next time we
  	 are called, we do not re-report the same error.  */
        cfun->machine->mma_return_type_error = true;
        if (TYPE_CANONICAL (type) != NULL_TREE)
  	type = TYPE_CANONICAL (type);
!       const char *type_class =
! 	 (TYPE_MODE (type) == TDOmode) ? "Dense Math" : "MMA";
!       error ("invalid use of %s type %qs as a function return value",
! 	     type_class,
  	     IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type))));
      }
  
*************** rs6000_function_arg (cumulative_args_t c
*** 1631,1642 ****
    machine_mode elt_mode;
    int n_elts;
  
!   /* We do not allow MMA types being used as function arguments.  */
!   if (mode == OOmode || mode == XOmode)
      {
        if (TYPE_CANONICAL (type) != NULL_TREE)
  	type = TYPE_CANONICAL (type);
!       error ("invalid use of MMA operand of type %qs as a function parameter",
  	     IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type))));
        return NULL_RTX;
      }
--- 1636,1650 ----
    machine_mode elt_mode;
    int n_elts;
  
!   /* We do not allow Dense Math/MMA types being used as function arguments.  */
!   if (mode == OOmode || mode == XOmode || mode == TDOmode)
      {
        if (TYPE_CANONICAL (type) != NULL_TREE)
  	type = TYPE_CANONICAL (type);
!       const char *type_class =
! 	 (mode == TDOmode) ? "Dense Math" : "MMA";
!       error ("invalid use of %s operand of type %qs as a function parameter",
! 	     type_class,
  	     IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type))));
        return NULL_RTX;
      }
diff -Nrcpad gcc-17-20260712/gcc/config/rs6000/rs6000-gen-builtins.cc gcc-17-20260719/gcc/config/rs6000/rs6000-gen-builtins.cc
*** gcc-17-20260712/gcc/config/rs6000/rs6000-gen-builtins.cc	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/config/rs6000/rs6000-gen-builtins.cc	Sun Jul 19 22:32:07 2026
*************** along with GCC; see the file COPYING3.
*** 94,99 ****
--- 94,102 ----
       ibmld    Restrict usage to the case when TFmode is IBM-128
       ibm128   Restrict usage to the case where __ibm128 is supported or
                if ibmld
+      dm       Needs special handling for DMF/MMA+ instructions
+      dmint    DMF/MMA+ instruction expanding to internal call at GIMPLE time
+      dmr      MMA+ instruction using a dmr register as an input operand
  
     An example stanza might look like this:
  
*************** enum bif_stanza
*** 235,240 ****
--- 238,244 ----
   BSTZ_FUTURE,
   BSTZ_FUTURE_ALTIVEC,
   BSTZ_FUTURE_VSX,
+  BSTZ_DM,
   NUMBIFSTANZAS
  };
  
*************** static stanza_entry stanza_map[NUMBIFSTA
*** 271,277 ****
      { "mma",		BSTZ_MMA	},
      { "future",	BSTZ_FUTURE	},
      { "future-altivec", BSTZ_FUTURE_ALTIVEC },
!     { "future-vsx",	BSTZ_FUTURE_VSX	}
    };
  
  static const char *enable_string[NUMBIFSTANZAS] =
--- 275,282 ----
      { "mma",		BSTZ_MMA	},
      { "future",	BSTZ_FUTURE	},
      { "future-altivec", BSTZ_FUTURE_ALTIVEC },
!     { "future-vsx",	BSTZ_FUTURE_VSX	},
!     { "dm",		BSTZ_DM		}
    };
  
  static const char *enable_string[NUMBIFSTANZAS] =
*************** static const char *enable_string[NUMBIFS
*** 299,305 ****
      "ENB_MMA",
      "ENB_FUTURE",
      "ENB_FUTURE_ALTIVEC",
!     "ENB_FUTURE_VSX"
    };
  
  /* Function modifiers provide special handling for const, pure, and fpmath
--- 304,311 ----
      "ENB_MMA",
      "ENB_FUTURE",
      "ENB_FUTURE_ALTIVEC",
!     "ENB_FUTURE_VSX",
!     "ENB_DM"
    };
  
  /* Function modifiers provide special handling for const, pure, and fpmath
*************** enum basetype
*** 333,339 ****
    BT_DECIMAL128,
    BT_IBM128,
    BT_VPAIR,
!   BT_VQUAD
  };
  
  /* Ways in which a const int value can be restricted.  RES_BITS indicates
--- 339,346 ----
    BT_DECIMAL128,
    BT_IBM128,
    BT_VPAIR,
!   BT_VQUAD,
!   BT_DMR
  };
  
  /* Ways in which a const int value can be restricted.  RES_BITS indicates
*************** struct attrinfo
*** 401,406 ****
--- 408,416 ----
    bool isendian;
    bool isibmld;
    bool isibm128;
+   bool isdm;
+   bool isdmint;
+   bool isdmr;
  };
  
  /* Fields associated with a function prototype (bif or overload).  */
*************** static typemap type_map[] =
*** 552,557 ****
--- 562,568 ----
      { "pv16qi",		"ptr_V16QI" },
      { "pv1poi",		"ptr_vector_pair" },
      { "pv1pxi",		"ptr_vector_quad" },
+     { "pv1tdoi",	"ptr_dmr1024" },
      { "pv1ti",		"ptr_V1TI" },
      { "pv2df",		"ptr_V2DF" },
      { "pv2di",		"ptr_V2DI" },
*************** static typemap type_map[] =
*** 582,587 ****
--- 593,599 ----
      { "v16qi",		"V16QI" },
      { "v1poi",		"vector_pair" },
      { "v1pxi",		"vector_quad" },
+     { "v1tdoi",	"dmr1024" },
      { "v1ti",		"V1TI" },
      { "v2df",		"V2DF" },
      { "v2di",		"V2DI" },
*************** match_type (typeinfo *typedata, int void
*** 1067,1072 ****
--- 1079,1085 ----
         vd	vector double
         v256	__vector_pair
         v512	__vector_quad
+        dmr1024	__dmr1024
  
       For simplicity, We don't support "short int" and "long long int".
       We don't currently support a <basetype> of "_Float16".  "signed"
*************** match_type (typeinfo *typedata, int void
*** 1248,1253 ****
--- 1261,1273 ----
        handle_pointer (typedata);
        return 1;
      }
+   else if (!strcmp (token, "dmr1024"))
+     {
+       typedata->isvector = 1;
+       typedata->base = BT_DMR;
+       handle_pointer (typedata);
+       return 1;
+     }
    else if (!strcmp (token, "signed"))
      typedata->issigned = 1;
    else if (!strcmp (token, "unsigned"))
*************** parse_bif_attrs (attrinfo *attrptr)
*** 1446,1451 ****
--- 1466,1477 ----
  	  attrptr->isibmld = 1;
  	else if (!strcmp (attrname, "ibm128"))
  	  attrptr->isibm128 = 1;
+        else if (!strcmp (attrname, "dm"))
+ 	  attrptr->isdm = 1;
+        else if (!strcmp (attrname, "dmint"))
+ 	  attrptr->isdmint = 1;
+        else if (!strcmp (attrname, "dmr"))
+ 	  attrptr->isdmr = 1;
  	else
  	  {
  	    diag (oldpos, "unknown attribute.\n");
*************** parse_bif_attrs (attrinfo *attrptr)
*** 1479,1492 ****
  	"pred = %d, htm = %d, htmspr = %d, htmcr = %d, mma = %d, "
  	"quad = %d, pair = %d, mmaint = %d, no32bit = %d, 32bit = %d, "
  	"cpu = %d, ldstmask = %d, lxvrse = %d, lxvrze = %d, endian = %d, "
! 	"ibmdld = %d, ibm128 = %d.\n",
  	attrptr->isextract, attrptr->isnosoft,attrptr->isldvec,
  	attrptr->isstvec, attrptr->isreve, attrptr->ispred, attrptr->ishtm,
  	attrptr->ishtmspr, attrptr->ishtmcr, attrptr->ismma,
  	attrptr->isquad, attrptr->ispair, attrptr->ismmaint,
  	attrptr->isno32bit, attrptr->is32bit, attrptr->iscpu,
  	attrptr->isldstmask, attrptr->islxvrse,	attrptr->islxvrze,
! 	attrptr->isendian, attrptr->isibmld, attrptr->isibm128);
  #endif
  
    return PC_OK;
--- 1505,1519 ----
  	"pred = %d, htm = %d, htmspr = %d, htmcr = %d, mma = %d, "
  	"quad = %d, pair = %d, mmaint = %d, no32bit = %d, 32bit = %d, "
  	"cpu = %d, ldstmask = %d, lxvrse = %d, lxvrze = %d, endian = %d, "
! 	"ibmdld = %d, ibm128 = %d, dm = %d, dmint = %d, dmr = %d.\n",
  	attrptr->isextract, attrptr->isnosoft,attrptr->isldvec,
  	attrptr->isstvec, attrptr->isreve, attrptr->ispred, attrptr->ishtm,
  	attrptr->ishtmspr, attrptr->ishtmcr, attrptr->ismma,
  	attrptr->isquad, attrptr->ispair, attrptr->ismmaint,
  	attrptr->isno32bit, attrptr->is32bit, attrptr->iscpu,
  	attrptr->isldstmask, attrptr->islxvrse,	attrptr->islxvrze,
! 	attrptr->isendian, attrptr->isibmld, attrptr->isibm128,
! 	attrptr->isdm, attrptr->isdmint, attrptr->isdmr);
  #endif
  
    return PC_OK;
*************** complete_vector_type (typeinfo *typeptr,
*** 1547,1552 ****
--- 1574,1583 ----
        memcpy (&buf[*bufi], "1pxi", 4);
        *bufi += 4;
        break;
+     case BT_DMR:
+       memcpy (&buf[*bufi], "1tdoi", 5);
+       *bufi += 5;
+       break;
      default:
        diag (pos, "unhandled basetype %d.\n", typeptr->base);
        exit (1);
*************** write_decls (void)
*** 2261,2267 ****
    fprintf (header_file, "  ENB_MMA,\n");
    fprintf (header_file, "  ENB_FUTURE,\n");
    fprintf (header_file, "  ENB_FUTURE_ALTIVEC,\n");
!   fprintf (header_file, "  ENB_FUTURE_VSX\n");
    fprintf (header_file, "};\n\n");
  
    fprintf (header_file, "#define PPC_MAXRESTROPNDS 3\n");
--- 2292,2299 ----
    fprintf (header_file, "  ENB_MMA,\n");
    fprintf (header_file, "  ENB_FUTURE,\n");
    fprintf (header_file, "  ENB_FUTURE_ALTIVEC,\n");
!   fprintf (header_file, "  ENB_FUTURE_VSX,\n");
!   fprintf (header_file, "  ENB_DM\n");
    fprintf (header_file, "};\n\n");
  
    fprintf (header_file, "#define PPC_MAXRESTROPNDS 3\n");
*************** write_decls (void)
*** 2303,2308 ****
--- 2335,2343 ----
    fprintf (header_file, "#define bif_endian_bit\t\t(0x00200000)\n");
    fprintf (header_file, "#define bif_ibmld_bit\t\t(0x00400000)\n");
    fprintf (header_file, "#define bif_ibm128_bit\t\t(0x00800000)\n");
+   fprintf (header_file, "#define bif_dm_bit\t\t(0x02000000)\n");
+   fprintf (header_file, "#define bif_dmint_bit\t\t(0x04000000)\n");
+   fprintf (header_file, "#define bif_dmr_bit\t\t(0x08000000)\n");
    fprintf (header_file, "\n");
    fprintf (header_file,
  	   "#define bif_is_extract(x)\t((x).bifattrs & bif_extract_bit)\n");
*************** write_decls (void)
*** 2348,2353 ****
--- 2383,2394 ----
  	   "#define bif_is_ibmld(x)\t((x).bifattrs & bif_ibmld_bit)\n");
    fprintf (header_file,
  	   "#define bif_is_ibm128(x)\t((x).bifattrs & bif_ibm128_bit)\n");
+   fprintf (header_file,
+ 	   "#define bif_is_dm(x)\t((x).bifattrs & bif_dm_bit)\n");
+   fprintf (header_file,
+ 	   "#define bif_is_dmint(x)\t((x).bifattrs & bif_dmint_bit)\n");
+   fprintf (header_file,
+ 	   "#define bif_is_dmr(x)\t((x).bifattrs & bif_dmr_bit)\n");
    fprintf (header_file, "\n");
  
    fprintf (header_file,
*************** write_bif_static_init (void)
*** 2547,2552 ****
--- 2588,2599 ----
  	fprintf (init_file, " | bif_ibmld_bit");
        if (bifp->attrs.isibm128)
  	fprintf (init_file, " | bif_ibm128_bit");
+       if (bifp->attrs.isdm)
+ 	fprintf (init_file, " | bif_dm_bit");
+       if (bifp->attrs.isdmint)
+ 	fprintf (init_file, " | bif_dmint_bit");
+       if (bifp->attrs.isdmr)
+ 	fprintf (init_file, " | bif_dmr_bit");
        fprintf (init_file, ",\n");
        fprintf (init_file, "      /* restr_opnd */\t{%d, %d, %d},\n",
  	       bifp->proto.restr_opnd[0], bifp->proto.restr_opnd[1],
*************** write_bif_static_init (void)
*** 2580,2587 ****
  		   : (bifp->kind == FNK_FPMATH ? "= fp, const"
  		      : ""))));
        fprintf (init_file, "      /* assoc_bif */\tRS6000_BIF_%s%s\n",
! 	       bifp->attrs.ismmaint ? bifp->idname : "NONE",
! 	       bifp->attrs.ismmaint ? "_INTERNAL" : "");
        fprintf (init_file, "    },\n");
      }
    fprintf (init_file, "  };\n\n");
--- 2627,2634 ----
  		   : (bifp->kind == FNK_FPMATH ? "= fp, const"
  		      : ""))));
        fprintf (init_file, "      /* assoc_bif */\tRS6000_BIF_%s%s\n",
! 	       (bifp->attrs.ismmaint || bifp->attrs.isdmint) ? bifp->idname : "NONE",
! 	       (bifp->attrs.ismmaint || bifp->attrs.isdmint) ? "_INTERNAL" : "");
        fprintf (init_file, "    },\n");
      }
    fprintf (init_file, "  };\n\n");
diff -Nrcpad gcc-17-20260712/gcc/config/rs6000/rs6000-modes.def gcc-17-20260719/gcc/config/rs6000/rs6000-modes.def
*** gcc-17-20260712/gcc/config/rs6000/rs6000-modes.def	Sun Jul 12 22:32:07 2026
--- gcc-17-20260719/gcc/config/rs6000/rs6000-modes.def	Sun Jul 19 22:32:07 2026
*************** VECTOR_MODE (INT, SI, 2);     /*
*** 76,81 ****
     combination.  */
  PARTIAL_INT_MODE (TI, 128, PTI);
  
! /* Modes used by __vector_pair and __vector_quad.  */
  OPAQUE_MODE (OO, 32);
  OPAQUE_MODE (XO, 64);
--- 76,82 ----
     combination.  */
  PARTIAL_INT_MODE (TI, 128, PTI);
  
! /* Modes used by __vector_pair, __vector_quad and __dmr1024.  */
  OPAQUE_MODE (OO, 32);
  OPAQUE_MODE (XO, 64);
+ OPAQUE_MODE (TDO, 128);
diff -Nrcpad gcc-17-20260712/gcc/config/t-sol2 gcc-17-20260719/gcc/config/t-sol2
*** gcc-17-20260712/gcc/config/t-sol2	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/config/t-sol2	Sun Jul 19 22:32:07 2026
*************** install: install-clearcap-map
*** 51,54 ****
  
  # Ignore failures: file only exists if linker supports it.
  install-clearcap-map: $(srcdir)/config/sol2-clearcap.map
! 	-$(INSTALL_DATA) $< $(DESTDIR)$(libdir)
--- 51,54 ----
  
  # Ignore failures: file only exists if linker supports it.
  install-clearcap-map: $(srcdir)/config/sol2-clearcap.map
! 	-$(INSTALL_DATA) $< $(DESTDIR)$(libdir)/clearcap.map
diff -Nrcpad gcc-17-20260712/gcc/cp/ChangeLog gcc-17-20260719/gcc/cp/ChangeLog
*** gcc-17-20260712/gcc/cp/ChangeLog	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/cp/ChangeLog	Sun Jul 19 22:32:07 2026
***************
*** 1,3 ****
--- 1,121 ----
+ 2026-07-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/125833
+ 	* cp-tree.h: Implement C++29 P3424R2 - Deallocation Functions with
+ 	Throwing Exception Specification Are Ill-formed.
+ 	(maybe_diagnose_deallocation_noexcept_false): Declare.
+ 	* decl.cc (maybe_diagnose_deallocation_noexcept_false): New function.
+ 	(grokfndecl): Call it.
+ 	* pt.cc (maybe_instantiate_noexcept): Likewise.
+ 	* parser.cc (cp_parser_class_specifier): Likewise.
+ 
+ 2026-07-15  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	PR c/122748
+ 	* parser.cc (cp_parser_omp_clause_uses_allocators): Mark
+ 	trait var as read to avoid 'unused but set' warning.
+ 
+ 2026-07-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/120635
+ 	* parser.cc (cp_parser_std_attribute): Add
+ 	canonicalize_attr_ns_name lambda and use it instead of
+ 	canonicalize_attr_name for namespaces.  Emit a warning
+ 	on __clang__::.
+ 	(cp_parser_std_attribute_spec): Emit a warning on
+ 	using __clang__:.
+ 
+ 2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* decl.cc (grokfndecl): If raises is NULL_TREE for C++11
+ 	deallocation function, use noexcept_true_spec instead.
+ 
+ 2026-07-13  Yuxuan Chen  <i@yuxuan.ch>
+ 
+ 	PR c++/125066
+ 	* decl.cc (store_parm_decls): Do not register trivial_abi parameter
+ 	cleanups for cloned functions.
+ 
+ 2026-07-13  Vladislav Semykin  <vladislav.semykin@gmail.com>
+ 
+ 	PR c++/126207
+ 	* cp-tree.h (typeid_evaluated_p): Add nonnull out-parameter.
+ 	* rtti.cc (typeid_evaluated_p): Likewise; avoid calling
+ 	resolves_to_fixed_type_p twice.
+ 	(build_typeid): Adjust.
+ 
+ 2026-07-13  Yuxuan Chen  <i@yuxuan.ch>
+ 
+ 	PR c++/125064
+ 	* tree.cc (validate_trivial_abi_attribute): Remove a rejected
+ 	trivial_abi attribute from all variants.
+ 
+ 2026-07-13  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	PR driver/124058
+ 	* decl.cc (maybe_prepare_return_this): Use OPT_Wuse_after_free_.
+ 
+ 2026-07-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/120635
+ 	* tree.cc (cxx_gnu_attributes): Add "no_specializations" entry.
+ 	(cxx_clang_attributes): Likewise.
+ 	(handle_no_specializations_attribute,
+ 	handle_gnu_no_specializations_attribute): New functions.
+ 	* decl2.cc (is_late_template_attribute): Return false for
+ 	"no_specializations" attribute, even on dependent types.  Don't
+ 	differentiate between the completely unknown and dependent
+ 	cases, for the 5 template attributes return always false, for
+ 	others true if dependent type and false otherwise.
+ 	* parser.cc (cp_parser_std_attribute): Use
+ 	uneval_string_attr even for clang::no_specializations attribute.
+ 	* pt.cc: Include "escaped_string.h".
+ 	(maybe_diagnose_no_specializations): New function.
+ 	(maybe_process_partial_specialization): Use it.
+ 	(check_explicit_specialization): Likewise.
+ 
+ 2026-07-13  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/126066
+ 	* constraint.cc (tsubst_requires_expr): Use
+ 	REQUIRES_EXPR_LOCATION.
+ 	(satisfaction_cache::get): Use cp_expr_location.
+ 	(satisfaction_cache::save): Likewise.
+ 	(finish_requires_expr): Use make_node and set REQUIRES_EXPR_*.
+ 	* cp-objcp-common.cc (cp_tree_size): Handle REQUIRES_EXPR.
+ 	(cp_common_init_ts): Change REQUIRES_EXPR from MARK_TS_EXP to
+ 	MARK_TS_TYPED.
+ 	* cp-tree.def (REQUIRES_EXPR): Make it tcc_exceptional with no
+ 	operands.
+ 	* cp-tree.h (struct tree_requires_expr): New.
+ 	(REQUIRES_EXPR_PARMS): Adjust.
+ 	(REQUIRES_EXPR_REQS): Likewise.
+ 	(REQUIRES_EXPR_EXTRA_ARGS): Likewise.
+ 	(REQUIRES_EXPR_LOCATION): New.
+ 	(enum cp_tree_node_structure_enum): Add TS_CP_REQUIRES_EXPR.
+ 	(union lang_tree_node): Add tree_requires_expr.
+ 	(cp_expr_location): Handle REQUIRES_EXPR.
+ 	* cxx-pretty-print.cc (pp_cxx_requires_expr): Use
+ 	REQUIRES_EXPR_REQS.
+ 	* decl.cc (cp_tree_node_structure): Handle REQUIRES_EXPR.
+ 	* error.cc (print_requires_expression_info): Use
+ 	REQUIRES_EXPR_PARMS.
+ 	* mangle.cc (write_tparms_constraints): Use cp_expr_location.
+ 	* module.cc (trees_out::core_vals): Handle REQUIRES_EXPR
+ 	specially.
+ 	(trees_in::core_vals): Likewise.
+ 	* pt.cc (iterative_hash_template_arg): Handle REQUIRES_EXPR.
+ 	* tree.cc (strip_typedefs_expr): Likewise.
+ 	(cp_tree_equal): Likewise.
+ 
+ 2026-07-13  Joyee Cheung  <joyee@igalia.com>
+ 
+ 	PR c++/96496
+ 	* cvt.cc (ocp_convert): For an enumeration type with a fixed
+ 	underlying type, convert the operand to that type first, as
+ 	specified by [expr.static.cast]/8.  Update the comment quoting
+ 	[expr.static.cast]/8.
+ 
  2026-07-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
  
  	* module.cc (EOPNOTSUPP): Provide fallback.
diff -Nrcpad gcc-17-20260712/gcc/cp/constraint.cc gcc-17-20260719/gcc/cp/constraint.cc
*** gcc-17-20260712/gcc/cp/constraint.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/cp/constraint.cc	Sun Jul 19 22:32:07 2026
*************** tsubst_requires_expr (tree t, tree args,
*** 1777,1783 ****
  	result = tree_cons (NULL_TREE, req, result);
      }
    if (processing_template_decl && result != boolean_false_node)
!     result = finish_requires_expr (EXPR_LOCATION (t), parms, nreverse (result));
    return result;
  }
  
--- 1777,1784 ----
  	result = tree_cons (NULL_TREE, req, result);
      }
    if (processing_template_decl && result != boolean_false_node)
!     result = finish_requires_expr (REQUIRES_EXPR_LOCATION (t), parms,
! 				   nreverse (result));
    return result;
  }
  
*************** satisfaction_cache::get ()
*** 2178,2184 ****
        /* Prefer printing the instantiated mapping.  */
        tree atom = entry->inst_entry ? entry->inst_entry->atom : entry->atom;
        if (info.noisy ())
! 	error_at (EXPR_LOCATION (ATOMIC_CONSTR_EXPR (atom)),
  		  "satisfaction of atomic constraint %qE depends on itself",
  		  atom);
        return error_mark_node;
--- 2179,2185 ----
        /* Prefer printing the instantiated mapping.  */
        tree atom = entry->inst_entry ? entry->inst_entry->atom : entry->atom;
        if (info.noisy ())
! 	error_at (cp_expr_location (ATOMIC_CONSTR_EXPR (atom)),
  		  "satisfaction of atomic constraint %qE depends on itself",
  		  atom);
        return error_mark_node;
*************** satisfaction_cache::save (tree result)
*** 2224,2230 ****
  	  if (entry->diagnose_instability)
  	    {
  	      auto_diagnostic_group d;
! 	      error_at (EXPR_LOCATION (ATOMIC_CONSTR_EXPR (entry->atom)),
  			"satisfaction value of atomic constraint %qE changed "
  			"from %qE to %qE", entry->atom, entry->result, result);
  	      inform (entry->location,
--- 2225,2231 ----
  	  if (entry->diagnose_instability)
  	    {
  	      auto_diagnostic_group d;
! 	      error_at (cp_expr_location (ATOMIC_CONSTR_EXPR (entry->atom)),
  			"satisfaction value of atomic constraint %qE changed "
  			"from %qE to %qE", entry->atom, entry->result, result);
  	      inform (entry->location,
*************** tree
*** 2949,2958 ****
  finish_requires_expr (location_t loc, tree parms, tree reqs)
  {
    /* Build the node.  */
!   tree r = build_min (REQUIRES_EXPR, boolean_type_node, parms, reqs, NULL_TREE);
    TREE_SIDE_EFFECTS (r) = false;
    TREE_CONSTANT (r) = true;
-   SET_EXPR_LOCATION (r, loc);
    return r;
  }
  
--- 2950,2962 ----
  finish_requires_expr (location_t loc, tree parms, tree reqs)
  {
    /* Build the node.  */
!   tree r = make_node (REQUIRES_EXPR);
!   TREE_TYPE (r) = boolean_type_node;
!   REQUIRES_EXPR_PARMS (r) = parms;
!   REQUIRES_EXPR_REQS (r) = reqs;
!   REQUIRES_EXPR_LOCATION (r) = loc;
    TREE_SIDE_EFFECTS (r) = false;
    TREE_CONSTANT (r) = true;
    return r;
  }
  
diff -Nrcpad gcc-17-20260712/gcc/cp/cp-objcp-common.cc gcc-17-20260719/gcc/cp/cp-objcp-common.cc
*** gcc-17-20260712/gcc/cp/cp-objcp-common.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/cp/cp-objcp-common.cc	Sun Jul 19 22:32:07 2026
*************** cp_tree_size (enum tree_code code)
*** 227,232 ****
--- 227,233 ----
      case PRECONDITION_STMT:	return sizeof (tree_exp);
      case POSTCONDITION_STMT:	return sizeof (tree_exp);
      case TU_LOCAL_ENTITY:	return sizeof (tree_tu_local_entity);
+     case REQUIRES_EXPR:		return sizeof (tree_requires_expr);
      default:
        switch (TREE_CODE_CLASS (code))
  	{
*************** cp_common_init_ts (void)
*** 620,625 ****
--- 621,627 ----
    MARK_TS_TYPED (LAMBDA_EXPR);
    MARK_TS_TYPED (TYPE_ARGUMENT_PACK);
    MARK_TS_TYPED (TRAIT_EXPR);
+   MARK_TS_TYPED (REQUIRES_EXPR);
  
    /* Random new trees.  */
    MARK_TS_COMMON (BASELINK);
*************** cp_common_init_ts (void)
*** 715,721 ****
    MARK_TS_EXP (DISJ_CONSTR);
    MARK_TS_EXP (ATOMIC_CONSTR);
    MARK_TS_EXP (NESTED_REQ);
-   MARK_TS_EXP (REQUIRES_EXPR);
    MARK_TS_EXP (SIMPLE_REQ);
    MARK_TS_EXP (TYPE_REQ);
  
--- 717,722 ----
diff -Nrcpad gcc-17-20260712/gcc/cp/cp-tree.def gcc-17-20260719/gcc/cp/cp-tree.def
*** gcc-17-20260712/gcc/cp/cp-tree.def	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/cp/cp-tree.def	Sun Jul 19 22:32:07 2026
*************** DEFTREECODE (OMP_DEPOBJ, "omp_depobj", t
*** 500,512 ****
  /* Used to represent information associated with constrained declarations. */
  DEFTREECODE (CONSTRAINT_INFO, "constraint_info", tcc_exceptional, 0)
  
! /* A requires-expr has three operands. The first operand is
!    its parameter list (possibly NULL). The second is a list of
!    requirements, which are denoted by the _REQ* tree codes
!    below.  The third is a TREE_VEC of template arguments to
     be applied when substituting into the parameter list and
     requirements, set by tsubst_requires_expr for partial instantiations.  */
! DEFTREECODE (REQUIRES_EXPR,   "requires_expr", tcc_expression, 3)
  
  /* A requirement for an expression. */
  DEFTREECODE (SIMPLE_REQ, "simple_req", tcc_expression, 1)
--- 500,512 ----
  /* Used to represent information associated with constrained declarations. */
  DEFTREECODE (CONSTRAINT_INFO, "constraint_info", tcc_exceptional, 0)
  
! /* A requires-expr has three operands.  REQUIRES_EXPR_PARMS is
!    its parameter list (possibly NULL).  REQUIRES_EXPR_REQS is a list of
!    requirements, which are denoted by the _REQ* tree codes below.
!    REQUIRES_EXPR_EXTRA_ARGS is a TREE_VEC of template arguments to
     be applied when substituting into the parameter list and
     requirements, set by tsubst_requires_expr for partial instantiations.  */
! DEFTREECODE (REQUIRES_EXPR, "requires_expr", tcc_exceptional, 0)
  
  /* A requirement for an expression. */
  DEFTREECODE (SIMPLE_REQ, "simple_req", tcc_expression, 1)
diff -Nrcpad gcc-17-20260712/gcc/cp/cp-tree.h gcc-17-20260719/gcc/cp/cp-tree.h
*** gcc-17-20260712/gcc/cp/cp-tree.h	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/cp/cp-tree.h	Sun Jul 19 22:32:07 2026
*************** struct GTY(()) tree_tu_local_entity {
*** 1885,1905 ****
  #define TU_LOCAL_ENTITY_LOCATION(NODE) \
    (((struct tree_tu_local_entity *)TU_LOCAL_ENTITY_CHECK (NODE))->loc)
  
! 
  /* The list of local parameters introduced by this requires-expression,
     in the form of a chain of PARM_DECLs.  */
  #define REQUIRES_EXPR_PARMS(NODE) \
!   TREE_OPERAND (TREE_CHECK (NODE, REQUIRES_EXPR), 0)
  
  /* A TREE_LIST of the requirements for this requires-expression.
     The requirements are stored in lexical order within the TREE_VALUE
     of each TREE_LIST node.  The TREE_PURPOSE of each node is unused.  */
  #define REQUIRES_EXPR_REQS(NODE) \
!   TREE_OPERAND (TREE_CHECK (NODE, REQUIRES_EXPR), 1)
  
  /* Like PACK_EXPANSION_EXTRA_ARGS, for requires-expressions.  */
  #define REQUIRES_EXPR_EXTRA_ARGS(NODE) \
!   TREE_OPERAND (TREE_CHECK (NODE, REQUIRES_EXPR), 2)
  
  /* True iff TYPE is cv decltype(^^int).  */
  #define REFLECTION_TYPE_P(TYPE) (TREE_CODE (TYPE) == META_TYPE)
--- 1885,1917 ----
  #define TU_LOCAL_ENTITY_LOCATION(NODE) \
    (((struct tree_tu_local_entity *)TU_LOCAL_ENTITY_CHECK (NODE))->loc)
  
! /* Representation of a requires-expression.  */
! struct GTY(()) tree_requires_expr {
!   struct tree_typed typed;
!   tree parms;
!   tree reqs;
!   tree extra_args;
!   location_t loc;
! };
! 
  /* The list of local parameters introduced by this requires-expression,
     in the form of a chain of PARM_DECLs.  */
  #define REQUIRES_EXPR_PARMS(NODE) \
!   (((struct tree_requires_expr *) REQUIRES_EXPR_CHECK (NODE))->parms)
  
  /* A TREE_LIST of the requirements for this requires-expression.
     The requirements are stored in lexical order within the TREE_VALUE
     of each TREE_LIST node.  The TREE_PURPOSE of each node is unused.  */
  #define REQUIRES_EXPR_REQS(NODE) \
!   (((struct tree_requires_expr *) REQUIRES_EXPR_CHECK (NODE))->reqs)
  
  /* Like PACK_EXPANSION_EXTRA_ARGS, for requires-expressions.  */
  #define REQUIRES_EXPR_EXTRA_ARGS(NODE) \
!   (((struct tree_requires_expr *) REQUIRES_EXPR_CHECK (NODE))->extra_args)
! 
! /* The source location of the requires-expression.  */
! #define REQUIRES_EXPR_LOCATION(NODE) \
!   (((struct tree_requires_expr *) REQUIRES_EXPR_CHECK (NODE))->loc)
  
  /* True iff TYPE is cv decltype(^^int).  */
  #define REFLECTION_TYPE_P(TYPE) (TREE_CODE (TYPE) == META_TYPE)
*************** enum cp_tree_node_structure_enum {
*** 2029,2035 ****
    TS_CP_TEMPLATE_INFO,
    TS_CP_CONSTRAINT_INFO,
    TS_CP_USERDEF_LITERAL,
!   TS_CP_TU_LOCAL_ENTITY
  };
  
  /* The resulting tree type.  */
--- 2041,2048 ----
    TS_CP_TEMPLATE_INFO,
    TS_CP_CONSTRAINT_INFO,
    TS_CP_USERDEF_LITERAL,
!   TS_CP_TU_LOCAL_ENTITY,
!   TS_CP_REQUIRES_EXPR
  };
  
  /* The resulting tree type.  */
*************** union GTY((desc ("cp_tree_node_structure
*** 2062,2067 ****
--- 2075,2082 ----
      userdef_literal;
    struct tree_tu_local_entity GTY ((tag ("TS_CP_TU_LOCAL_ENTITY")))
      tu_local_entity;
+   struct tree_requires_expr GTY ((tag ("TS_CP_REQUIRES_EXPR")))
+     requires_expr;
  };
  
  
*************** extern tree current_nonlambda_class_type
*** 7486,7492 ****
  extern tree finish_struct			(tree, tree);
  extern void finish_struct_1			(tree);
  extern int resolves_to_fixed_type_p		(tree, int * = NULL);
! extern bool typeid_evaluated_p (tree);
  extern void init_class_processing		(void);
  extern int is_empty_class			(tree);
  extern bool is_really_empty_class		(tree, bool);
--- 7501,7507 ----
  extern tree finish_struct			(tree, tree);
  extern void finish_struct_1			(tree);
  extern int resolves_to_fixed_type_p		(tree, int * = NULL);
! extern bool typeid_evaluated_p (tree, int * = nullptr);
  extern void init_class_processing		(void);
  extern int is_empty_class			(tree);
  extern bool is_really_empty_class		(tree, bool);
*************** extern tree start_decl				(const cp_decl
*** 7636,7641 ****
--- 7651,7657 ----
  extern void start_decl_1			(tree, bool);
  extern bool check_array_initializer		(tree, tree, tree);
  extern void omp_declare_variant_finalize	(tree, tree);
+ extern void maybe_diagnose_deallocation_noexcept_false (tree);
  struct cp_decomp { tree decl; unsigned int count; };
  extern void cp_finish_decl			(tree, tree, bool, tree, int, cp_decomp * = nullptr);
  extern tree lookup_decomp_type			(tree);
*************** cp_expr_location (const_tree t_)
*** 9122,9127 ****
--- 9138,9145 ----
        return TRAIT_EXPR_LOCATION (t);
      case PTRMEM_CST:
        return PTRMEM_CST_LOCATION (t);
+     case REQUIRES_EXPR:
+       return REQUIRES_EXPR_LOCATION (t);
      default:
        return EXPR_LOCATION (t);
      }
diff -Nrcpad gcc-17-20260712/gcc/cp/cvt.cc gcc-17-20260719/gcc/cp/cvt.cc
*** gcc-17-20260712/gcc/cp/cvt.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/cp/cvt.cc	Sun Jul 19 22:32:07 2026
*************** ocp_convert (tree type, tree expr, int c
*** 838,847 ****
  	  /* [expr.static.cast]
  
  	     8. A value of integral or enumeration type can be explicitly
! 	     converted to an enumeration type. The value is unchanged if
! 	     the original value is within the range of the enumeration
! 	     values. Otherwise, the resulting enumeration value is
! 	     unspecified.  */
  	  tree val = fold_for_warn (e);
  	  if ((complain & tf_warning)
  	      && TREE_CODE (val) == INTEGER_CST
--- 838,865 ----
  	  /* [expr.static.cast]
  
  	     8. A value of integral or enumeration type can be explicitly
! 	     converted to a complete enumeration type.  If the enumeration
! 	     type has a fixed underlying type, the value is first converted
! 	     to that type by integral promotion or integral conversion, if
! 	     necessary, and then to the enumeration type.  If the
! 	     enumeration type does not have a fixed underlying type, the
! 	     value is unchanged if the original value is within the range
! 	     of the enumeration values, and otherwise, the behavior is
! 	     undefined.  A value of floating-point type can also be
! 	     explicitly converted to an enumeration type.  The resulting
! 	     value is the same as converting the original value to the
! 	     underlying type of the enumeration, and subsequently to the
! 	     enumeration type.  */
! 	  if ((ENUM_FIXED_UNDERLYING_TYPE_P (type)
! 	       && INTEGRAL_OR_ENUMERATION_TYPE_P (intype))
! 	      || SCALAR_FLOAT_TYPE_P (intype))
! 	    {
! 	      e = ocp_convert (ENUM_UNDERLYING_TYPE (type), e, convtype,
! 			       flags, complain);
! 	      if (e == error_mark_node)
! 		return error_mark_node;
! 	    }
! 
  	  tree val = fold_for_warn (e);
  	  if ((complain & tf_warning)
  	      && TREE_CODE (val) == INTEGER_CST
diff -Nrcpad gcc-17-20260712/gcc/cp/cxx-pretty-print.cc gcc-17-20260719/gcc/cp/cxx-pretty-print.cc
*** gcc-17-20260712/gcc/cp/cxx-pretty-print.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/cp/cxx-pretty-print.cc	Sun Jul 19 22:32:07 2026
*************** pp_cxx_requires_expr (cxx_pretty_printer
*** 2830,2836 ****
        pp_cxx_right_paren (pp);
        pp_cxx_whitespace (pp);
      }
!   pp_cxx_requirement_body (pp, TREE_OPERAND (t, 1));
  }
  
  /* simple-requirement:
--- 2830,2836 ----
        pp_cxx_right_paren (pp);
        pp_cxx_whitespace (pp);
      }
!   pp_cxx_requirement_body (pp, REQUIRES_EXPR_REQS (t));
  }
  
  /* simple-requirement:
diff -Nrcpad gcc-17-20260712/gcc/cp/decl.cc gcc-17-20260719/gcc/cp/decl.cc
*** gcc-17-20260712/gcc/cp/decl.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/cp/decl.cc	Sun Jul 19 22:32:07 2026
*************** omp_declare_variant_finalize (tree decl,
*** 9430,9435 ****
--- 9430,9454 ----
      }
  }
  
+ /* [basic.stc.dynamic.deallocation]/3 - A deallocation function shall not
+    have a potentially throwing exception specification.  */
+ 
+ void
+ maybe_diagnose_deallocation_noexcept_false (tree decl)
+ {
+   if (cxx_dialect >= cxx29
+       && DECL_NAME (decl)
+       && IDENTIFIER_NEWDEL_OP_P (DECL_NAME (decl))
+       && !IDENTIFIER_NEW_OP_P (DECL_NAME (decl)))
+     {
+       tree spec = TYPE_RAISES_EXCEPTIONS (TREE_TYPE (decl));
+       if (spec && spec == noexcept_false_spec)
+ 	error_at (DECL_SOURCE_LOCATION (decl),
+ 		  "deallocation function %qD declared possibly throwing",
+ 		  decl);
+     }
+ }
+ 
  static void cp_maybe_mangle_decomp (tree, cp_decomp *);
  
  /* Finish processing of a declaration;
*************** grokfndecl (tree ctype,
*** 12166,12171 ****
--- 12185,12198 ----
        return NULL_TREE;
      }
  
+   /* [except.spec]/9 - A deallocation function with no explicit noexcept-specifier
+      has a non-throwing exception specification.  */
+   if (raises == NULL_TREE
+       && cxx_dialect >= cxx11
+       && IDENTIFIER_NEWDEL_OP_P (declarator)
+       && !IDENTIFIER_NEW_OP_P (declarator))
+     raises = noexcept_true_spec;
+ 
    type = build_cp_fntype_variant (type, rqual, raises, late_return_type_p);
  
    decl = build_lang_decl_loc (location, FUNCTION_DECL, declarator, type);
*************** grokfndecl (tree ctype,
*** 12613,12618 ****
--- 12640,12649 ----
  	}
      }
  
+   /* [basic.stc.dynamic.deallocation]/3 - A deallocation function shall not
+      have a potentially throwing exception specification.  */
+   maybe_diagnose_deallocation_noexcept_false (decl);
+ 
    /* Caller will do the rest of this.  */
    if (check < 0)
      {
*************** store_parm_decls (tree current_function_
*** 20276,20282 ****
  
    /* Register cleanups for parameters with trivial_abi attribute, the cleanup
       of which is the callee's responsibility.  */
!   if (!processing_template_decl)
      for (tree parm = DECL_ARGUMENTS (fndecl); parm; parm = DECL_CHAIN (parm))
        {
  	if (TREE_CODE (parm) == PARM_DECL)
--- 20307,20313 ----
  
    /* Register cleanups for parameters with trivial_abi attribute, the cleanup
       of which is the callee's responsibility.  */
!   if (!processing_template_decl && !DECL_CLONED_FUNCTION_P (fndecl))
      for (tree parm = DECL_ARGUMENTS (fndecl); parm; parm = DECL_CHAIN (parm))
        {
  	if (TREE_CODE (parm) == PARM_DECL)
*************** maybe_prepare_return_this (tree cdtor)
*** 20307,20313 ****
    if (targetm.cxx.cdtor_returns_this ())
      if (tree val = DECL_ARGUMENTS (cdtor))
        {
! 	suppress_warning (val, OPT_Wuse_after_free);
  	return val;
        }
  
--- 20338,20344 ----
    if (targetm.cxx.cdtor_returns_this ())
      if (tree val = DECL_ARGUMENTS (cdtor))
        {
! 	suppress_warning (val, OPT_Wuse_after_free_);
  	return val;
        }
  
*************** cp_tree_node_structure (union lang_tree_
*** 21225,21230 ****
--- 21256,21262 ----
      case TRAIT_EXPR:		return TS_CP_TRAIT_EXPR;
      case TU_LOCAL_ENTITY:	return TS_CP_TU_LOCAL_ENTITY;
      case USERDEF_LITERAL:	return TS_CP_USERDEF_LITERAL;
+     case REQUIRES_EXPR:		return TS_CP_REQUIRES_EXPR;
      default:			return TS_CP_GENERIC;
      }
  }
diff -Nrcpad gcc-17-20260712/gcc/cp/decl2.cc gcc-17-20260719/gcc/cp/decl2.cc
*** gcc-17-20260712/gcc/cp/decl2.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/cp/decl2.cc	Sun Jul 19 22:32:07 2026
*************** is_late_template_attribute (tree attr, t
*** 1751,1771 ****
        if (!type)
  	return true;
  
!       /* We can't apply any attributes to a completely unknown type until
! 	 instantiation time.  */
!       enum tree_code code = TREE_CODE (type);
!       if (code == TEMPLATE_TYPE_PARM
! 	  || code == BOUND_TEMPLATE_TEMPLATE_PARM
! 	  || code == TYPENAME_TYPE)
! 	return true;
!       /* Also defer most attributes on dependent types.  This is not
  	 necessary in all cases, but is the better default.  */
!       else if (dependent_type_p (type)
! 	       /* But some attributes specifically apply to templates.  */
! 	       && !is_attribute_p ("abi_tag", name)
! 	       && !is_attribute_p ("deprecated", name)
! 	       && !is_attribute_p ("unavailable", name)
! 	       && !is_attribute_p ("visibility", name))
  	return true;
        else
  	return false;
--- 1751,1766 ----
        if (!type)
  	return true;
  
!       /* Some attributes specifically apply to templates.  */
!       if (is_attribute_p ("abi_tag", name)
! 	  || is_attribute_p ("deprecated", name)
! 	  || is_attribute_p ("unavailable", name)
! 	  || is_attribute_p ("visibility", name)
! 	  || is_attribute_p ("no_specializations", name))
! 	return false;
!       /* Defer most attributes on dependent types.  This is not
  	 necessary in all cases, but is the better default.  */
!       else if (dependent_type_p (type))
  	return true;
        else
  	return false;
diff -Nrcpad gcc-17-20260712/gcc/cp/error.cc gcc-17-20260719/gcc/cp/error.cc
*** gcc-17-20260712/gcc/cp/error.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/cp/error.cc	Sun Jul 19 22:32:07 2026
*************** print_requires_expression_info (diagnost
*** 4527,4533 ****
    cxx_pretty_printer *const pp
      = static_cast <cxx_pretty_printer *> (text_output.get_printer ());
  
!   tree parms = TREE_OPERAND (expr, 0);
    pp_verbatim (pp, parms ? G_("in requirements with ")
  			 : G_("in requirements "));
    while (parms)
--- 4527,4533 ----
    cxx_pretty_printer *const pp
      = static_cast <cxx_pretty_printer *> (text_output.get_printer ());
  
!   tree parms = REQUIRES_EXPR_PARMS (expr);
    pp_verbatim (pp, parms ? G_("in requirements with ")
  			 : G_("in requirements "));
    while (parms)
diff -Nrcpad gcc-17-20260712/gcc/cp/mangle.cc gcc-17-20260719/gcc/cp/mangle.cc
*** gcc-17-20260712/gcc/cp/mangle.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/cp/mangle.cc	Sun Jul 19 22:32:07 2026
*************** write_tparms_constraints (tree constrain
*** 888,901 ****
      {
        tree probe = constraints;
        while (probe
! 	     && !EXPR_LOCATION (probe)
  	     && TREE_CODE (probe) == TRUTH_ANDIF_EXPR)
  	{
  	  tree op1 = TREE_OPERAND (probe, 1);
! 	  probe = (EXPR_LOCATION (op1) ? op1
  		   : TREE_OPERAND (probe, 0));
  	}
!       if (probe && EXPR_LOCATION (probe))
  	{
  	  write_char ('Q');
  	  write_constraint_expression (probe);
--- 888,901 ----
      {
        tree probe = constraints;
        while (probe
! 	     && !cp_expr_location (probe)
  	     && TREE_CODE (probe) == TRUTH_ANDIF_EXPR)
  	{
  	  tree op1 = TREE_OPERAND (probe, 1);
! 	  probe = (cp_expr_location (op1) ? op1
  		   : TREE_OPERAND (probe, 0));
  	}
!       if (probe && cp_expr_location (probe))
  	{
  	  write_char ('Q');
  	  write_constraint_expression (probe);
diff -Nrcpad gcc-17-20260712/gcc/cp/module.cc gcc-17-20260719/gcc/cp/module.cc
*** gcc-17-20260712/gcc/cp/module.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/cp/module.cc	Sun Jul 19 22:32:07 2026
*************** trees_out::core_vals (tree t)
*** 6546,6562 ****
        unsigned limit = (vl ? VL_EXP_OPERAND_LENGTH (t)
  			: TREE_OPERAND_LENGTH (t));
        unsigned ix = unsigned (vl);
-       if (code == REQUIRES_EXPR)
- 	{
- 	  /* The first operand of a REQUIRES_EXPR is a tree chain
- 	     of PARM_DECLs.  We need to stream this separately as
- 	     otherwise we would only stream the first one.  */
- 	  chained_decls (REQUIRES_EXPR_PARMS (t));
- 	  ++ix;
- 	}
        for (; ix != limit; ix++)
  	WT (TREE_OPERAND (t, ix));
      }
    else
      /* The CODE_CONTAINS tables were inaccurate when I started.  */
      gcc_checking_assert (TREE_CODE_CLASS (code) != tcc_expression
--- 6546,6567 ----
        unsigned limit = (vl ? VL_EXP_OPERAND_LENGTH (t)
  			: TREE_OPERAND_LENGTH (t));
        unsigned ix = unsigned (vl);
        for (; ix != limit; ix++)
  	WT (TREE_OPERAND (t, ix));
      }
+   else if (code == REQUIRES_EXPR)
+     {
+       if (state)
+ 	state->write_location (*this, REQUIRES_EXPR_LOCATION (t));
+ 
+       if (streaming_p ())
+ 	if (has_warning_spec (t))
+ 	  u (get_warning_spec (t));
+ 
+       chained_decls (REQUIRES_EXPR_PARMS (t));
+       WT (REQUIRES_EXPR_REQS (t));
+       WT (REQUIRES_EXPR_EXTRA_ARGS (t));
+     }
    else
      /* The CODE_CONTAINS tables were inaccurate when I started.  */
      gcc_checking_assert (TREE_CODE_CLASS (code) != tcc_expression
*************** trees_in::core_vals (tree t)
*** 7141,7154 ****
        unsigned limit = (vl ? VL_EXP_OPERAND_LENGTH (t)
  			: TREE_OPERAND_LENGTH (t));
        unsigned ix = unsigned (vl);
-       if (code == REQUIRES_EXPR)
- 	{
- 	  REQUIRES_EXPR_PARMS (t) = chained_decls ();
- 	  ++ix;
- 	}
        for (; ix != limit; ix++)
  	RTU (TREE_OPERAND (t, ix));
      }
  
    /* Then by CODE.  Special cases and/or 1:1 tree shape
       correspondence. */
--- 7146,7164 ----
        unsigned limit = (vl ? VL_EXP_OPERAND_LENGTH (t)
  			: TREE_OPERAND_LENGTH (t));
        unsigned ix = unsigned (vl);
        for (; ix != limit; ix++)
  	RTU (TREE_OPERAND (t, ix));
      }
+   else if (code == REQUIRES_EXPR)
+     {
+       REQUIRES_EXPR_LOCATION (t) = state->read_location (*this);
+       if (has_warning_spec (t))
+ 	put_warning_spec (t, u ());
+ 
+       REQUIRES_EXPR_PARMS (t) = chained_decls ();
+       RTU (REQUIRES_EXPR_REQS (t));
+       RTU (REQUIRES_EXPR_EXTRA_ARGS (t));
+     }
  
    /* Then by CODE.  Special cases and/or 1:1 tree shape
       correspondence. */
diff -Nrcpad gcc-17-20260712/gcc/cp/parser.cc gcc-17-20260719/gcc/cp/parser.cc
*** gcc-17-20260712/gcc/cp/parser.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/cp/parser.cc	Sun Jul 19 22:32:07 2026
*************** cp_parser_class_specifier (cp_parser* pa
*** 30135,30140 ****
--- 30135,30144 ----
  
  	  /* Remove any template parameters from the symbol table.  */
  	  maybe_end_member_template_processing ();
+ 
+ 	  /* [basic.stc.dynamic.deallocation]/3 - A deallocation function
+ 	     shall not have a potentially throwing exception specification.  */
+ 	  maybe_diagnose_deallocation_noexcept_false (decl);
  	}
        vec_safe_truncate (unparsed_noexcepts, 0);
  
*************** cp_parser_std_attribute (cp_parser *pars
*** 33298,33303 ****
--- 33302,33308 ----
    /* First, parse name of the attribute, a.k.a attribute-token.  */
  
    token = cp_lexer_peek_token (parser->lexer);
+   location_t id_loc = token->location;
    if (token->type == CPP_NAME)
      attr_id = token->u.value;
    else if (token->type == CPP_KEYWORD)
*************** cp_parser_std_attribute (cp_parser *pars
*** 33311,33316 ****
--- 33316,33332 ----
    cp_lexer_consume_token (parser->lexer);
  
    token = cp_lexer_peek_token (parser->lexer);
+   auto canonicalize_attr_ns_name = [] (tree attr_ns)
+     {
+      /* In clang, __clang__ is predefined macro, and the supported alternate
+ 	 namespace is _Clang rather than __clang__ because of that.
+ 	 Don't handle ___Clang__ that way though.  */
+       if (id_equal (attr_ns, "_Clang"))
+ 	attr_ns = get_identifier ("clang");
+       else
+ 	attr_ns = canonicalize_attr_name (attr_ns);
+       return attr_ns;
+     };
    if (token->type == CPP_SCOPE)
      {
        /* We are seeing a scoped attribute token.  */
*************** cp_parser_std_attribute (cp_parser *pars
*** 33321,33326 ****
--- 33337,33347 ----
  				   "with scoped attribute token");
        attr_ns = attr_id;
  
+       if (id_equal (attr_ns, "__clang__"))
+ 	warning_at (id_loc, OPT_Wattributes,
+ 		    "alternate attribute namespace for %<clang%> is "
+ 		    "%<_Clang%> rather than %<__clang__%>");
+ 
        token = cp_lexer_peek_token (parser->lexer);
        if (token->type == CPP_NAME)
  	attr_id = token->u.value;
*************** cp_parser_std_attribute (cp_parser *pars
*** 33336,33342 ****
  	}
        cp_lexer_consume_token (parser->lexer);
  
!       attr_ns = canonicalize_attr_name (attr_ns);
        attr_id = canonicalize_attr_name (attr_id);
        attribute = build_tree_list (build_tree_list (attr_ns, attr_id),
  				   NULL_TREE);
--- 33357,33363 ----
  	}
        cp_lexer_consume_token (parser->lexer);
  
!       attr_ns = canonicalize_attr_ns_name (attr_ns);
        attr_id = canonicalize_attr_name (attr_id);
        attribute = build_tree_list (build_tree_list (attr_ns, attr_id),
  				   NULL_TREE);
*************** cp_parser_std_attribute (cp_parser *pars
*** 33344,33350 ****
      }
    else if (attr_ns)
      {
!       attr_ns = canonicalize_attr_name (attr_ns);
        attr_id = canonicalize_attr_name (attr_id);
        attribute = build_tree_list (build_tree_list (attr_ns, attr_id),
  				   NULL_TREE);
--- 33365,33371 ----
      }
    else if (attr_ns)
      {
!       attr_ns = canonicalize_attr_ns_name (attr_ns);
        attr_id = canonicalize_attr_name (attr_id);
        attribute = build_tree_list (build_tree_list (attr_ns, attr_id),
  				   NULL_TREE);
*************** cp_parser_std_attribute (cp_parser *pars
*** 33424,33429 ****
--- 33445,33454 ----
  	     && (is_attribute_p ("deprecated", attr_id)
  		 || is_attribute_p ("nodiscard", attr_id)))
        attr_flag = uneval_string_attr;
+     else if (attr_ns
+ 	     && is_attribute_p ("clang", attr_ns)
+ 	     && is_attribute_p ("no_specializations", attr_id))
+       attr_flag = uneval_string_attr;
  
      /* If this is a fake attribute created to handle -Wno-attributes,
         we must skip parsing the arguments.  */
*************** cp_parser_std_attribute_spec (cp_parser
*** 34093,34099 ****
        && cp_lexer_peek_nth_token (parser->lexer, 2)->type == CPP_OPEN_SQUARE)
      {
        tree attr_ns = NULL_TREE;
-       tree attr_name = NULL_TREE;
  
        cp_lexer_consume_token (parser->lexer);
        cp_lexer_consume_token (parser->lexer);
--- 34118,34123 ----
*************** cp_parser_std_attribute_spec (cp_parser
*** 34113,34124 ****
  	  return attributes;
  	}
  
-       if (token->type == CPP_NAME)
- 	{
- 	  attr_name = token->u.value;
- 	  attr_name = canonicalize_attr_name (attr_name);
- 	}
- 
        if (cp_lexer_next_token_is_keyword (parser->lexer, RID_USING))
  	{
  	  token = cp_lexer_peek_nth_token (parser->lexer, 2);
--- 34137,34142 ----
*************** cp_parser_std_attribute_spec (cp_parser
*** 34137,34142 ****
--- 34155,34165 ----
  			 "attribute using prefix only available "
  			 "with %<-std=c++17%> or %<-std=gnu++17%>");
  
+ 	      if (id_equal (attr_ns, "__clang__"))
+ 		warning_at (token->location, OPT_Wattributes,
+ 			    "alternate attribute namespace for %<clang%> is "
+ 			    "%<_Clang%> rather than %<__clang__%>");
+ 
  	      cp_lexer_consume_token (parser->lexer);
  	      cp_lexer_consume_token (parser->lexer);
  	      cp_lexer_consume_token (parser->lexer);
*************** parse_next:
*** 44164,44170 ****
  	    if (traits_var != NULL_TREE)
  	      dup_mod_tok = mod_tok;
  	    else
! 	      traits_var = t;
  	  }
  	else
  	  {
--- 44187,44196 ----
  	    if (traits_var != NULL_TREE)
  	      dup_mod_tok = mod_tok;
  	    else
! 	      {
! 		traits_var = t;
! 		mark_exp_read (traits_var);
! 	      }
  	  }
  	else
  	  {
*************** parse_next:
*** 44249,44254 ****
--- 44275,44281 ----
  	  legacy_traits = arg;
  	  if (legacy_traits == error_mark_node)
  	    goto end;
+ 	  mark_exp_read (legacy_traits);
  	  gcc_rich_location richloc (make_location (tok->location,
  						    tok->location, close_loc));
  	  if (nl == list)
diff -Nrcpad gcc-17-20260712/gcc/cp/pt.cc gcc-17-20260719/gcc/cp/pt.cc
*** gcc-17-20260712/gcc/cp/pt.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/cp/pt.cc	Sun Jul 19 22:32:07 2026
*************** along with GCC; see the file COPYING3.
*** 50,55 ****
--- 50,56 ----
  #include "omp-general.h"
  #include "pretty-print-markup.h"
  #include "contracts.h"
+ #include "escaped_string.h"
  
  /* The type of functions taking a tree, and some additional data, and
     returning an int.  */
*************** maybe_new_partial_specialization (tree&
*** 1031,1036 ****
--- 1032,1079 ----
    return false;
  }
  
+ /* Diagnose if SPEC is a specialization of [[clang::no_specializations]]
+    template.  */
+ 
+ static void
+ maybe_diagnose_no_specializations (tree spec)
+ {
+   tree tmpl;
+   if (TREE_CODE (spec) == TYPE_DECL)
+     tmpl = CLASSTYPE_TI_TEMPLATE (TREE_TYPE (spec));
+   else
+     tmpl = DECL_TI_TEMPLATE (spec);
+   tree t = DECL_TEMPLATE_RESULT (tmpl), attr;
+   if (TREE_CODE (t) == TYPE_DECL)
+     attr = lookup_attribute ("no_specializations",
+     			     TYPE_ATTRIBUTES (TREE_TYPE (t)));
+   else
+     attr = lookup_attribute ("no_specializations", DECL_ATTRIBUTES (t));
+   if (!attr)
+     return;
+ 
+   auto_diagnostic_group d;
+   escaped_string msg;
+   tree args = TREE_VALUE (attr);
+   bool complained;
+   if (args)
+     msg.escape (TREE_STRING_POINTER (TREE_VALUE (args)));
+   if (msg)
+     complained
+       = permerror_opt (DECL_SOURCE_LOCATION (spec),
+ 		       OPT_Winvalid_specialization,
+ 		       "%qD cannot be specialized: %qs",
+ 		       spec, (const char *) msg);
+   else
+     complained
+       = permerror_opt (DECL_SOURCE_LOCATION (spec),
+ 		       OPT_Winvalid_specialization,
+ 		       "%qD cannot be specialized", spec);
+   if (complained)
+     inform (DECL_SOURCE_LOCATION (DECL_TEMPLATE_RESULT (tmpl)),
+ 	    "declared %qs here", "clang::no_specializations");
+ }
+ 
  /* The TYPE is being declared.  If it is a template type, that means it
     is a partial specialization.  Do appropriate error-checking.  */
  
*************** maybe_process_partial_specialization (tr
*** 1091,1096 ****
--- 1134,1140 ----
  	    return error_mark_node;
  	  SET_CLASSTYPE_TEMPLATE_SPECIALIZATION (type);
  	  DECL_SOURCE_LOCATION (TYPE_MAIN_DECL (type)) = input_location;
+ 	  maybe_diagnose_no_specializations (TYPE_NAME (type));
  	  if (processing_template_decl)
  	    {
  	      tree decl = push_template_decl (TYPE_MAIN_DECL (type));
*************** maybe_process_partial_specialization (tr
*** 1203,1208 ****
--- 1247,1253 ----
  	  DECL_SOURCE_LOCATION (TYPE_MAIN_DECL (type)) = input_location;
  	  CLASSTYPE_TI_ARGS (type)
  	    = INNERMOST_TEMPLATE_ARGS (CLASSTYPE_TI_ARGS (type));
+ 	  maybe_diagnose_no_specializations (TYPE_NAME (type));
  	}
      }
    else if (processing_specialization)
*************** iterative_hash_template_arg (tree arg, h
*** 1886,1891 ****
--- 1931,1941 ----
           So just hash the closure type.  */
        return iterative_hash_template_arg (TREE_TYPE (arg), val);
  
+     case REQUIRES_EXPR:
+       val = iterative_hash_template_arg (REQUIRES_EXPR_PARMS (arg), val);
+       val = iterative_hash_template_arg (REQUIRES_EXPR_REQS (arg), val);
+       return iterative_hash_template_arg (REQUIRES_EXPR_EXTRA_ARGS (arg), val);
+ 
      case CAST_EXPR:
      case IMPLICIT_CONV_EXPR:
      case STATIC_CAST_EXPR:
*************** check_explicit_specialization (tree decl
*** 3449,3454 ****
--- 3499,3510 ----
  			   || DECL_DESTRUCTOR_P (decl))
  		      || DECL_CLONED_FUNCTION_P (DECL_CHAIN (decl)));
  	}
+ 
+       if (decl
+ 	  && VAR_OR_FUNCTION_DECL_P (decl)
+ 	  && DECL_LANG_SPECIFIC (decl)
+ 	  && DECL_TEMPLATE_SPECIALIZATION (decl))
+ 	maybe_diagnose_no_specializations (decl);
      }
  
    return decl;
*************** maybe_instantiate_noexcept (tree fn, tsu
*** 28746,28751 ****
--- 28802,28811 ----
    if (orig_fn)
      TREE_TYPE (orig_fn) = TREE_TYPE (fn);
  
+   /* [basic.stc.dynamic.deallocation]/3 - A deallocation function shall not
+      have a potentially throwing exception specification.  */
+   maybe_diagnose_deallocation_noexcept_false (fn);
+ 
    return true;
  }
  
diff -Nrcpad gcc-17-20260712/gcc/cp/rtti.cc gcc-17-20260719/gcc/cp/rtti.cc
*** gcc-17-20260712/gcc/cp/rtti.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/cp/rtti.cc	Sun Jul 19 22:32:07 2026
*************** typeid_ok_p (void)
*** 342,351 ****
  
  /* True if EXP is a glvalue expression of polymorphic class type whose
     dynamic type is not known statically, so that typeid (EXP) must be
!    evaluated per ([expr.typeid]/4).  */
  
  bool
! typeid_evaluated_p (tree exp)
  {
    if (exp == error_mark_node)
      return false;
--- 342,352 ----
  
  /* True if EXP is a glvalue expression of polymorphic class type whose
     dynamic type is not known statically, so that typeid (EXP) must be
!    evaluated per ([expr.typeid]/4).  If NONNULL is non-null, set
!    *NONNULL according to resolves_to_fixed_type_p.  */
  
  bool
! typeid_evaluated_p (tree exp, int *nonnull)
  {
    if (exp == error_mark_node)
      return false;
*************** typeid_evaluated_p (tree exp)
*** 356,364 ****
      t = TREE_TYPE (t);
    if (TREE_CODE (t) != RECORD_TYPE && TREE_CODE (t) != UNION_TYPE)
      return false;
!   int nonnull = 0;
    return (TYPE_POLYMORPHIC_P (t)
! 	  && !resolves_to_fixed_type_p (exp, &nonnull)
  	  /* Only a glvalue operand is evaluated ([expr.typeid]/4).
  	     The following check is only necessary because
  	     resolves_to_fixed_type_p does not handle all
--- 357,365 ----
      t = TREE_TYPE (t);
    if (TREE_CODE (t) != RECORD_TYPE && TREE_CODE (t) != UNION_TYPE)
      return false;
!   bool fixed = resolves_to_fixed_type_p (exp, nonnull);
    return (TYPE_POLYMORPHIC_P (t)
! 	  && !fixed
  	  /* Only a glvalue operand is evaluated ([expr.typeid]/4).
  	     The following check is only necessary because
  	     resolves_to_fixed_type_p does not handle all
*************** build_typeid (tree exp, tsubst_flags_t c
*** 380,389 ****
    if (processing_template_decl)
      return build_min (TYPEID_EXPR, const_type_info_type_node, exp);
  
!   if (typeid_evaluated_p (exp))
      {
-       int nonnull = 0;
-       resolves_to_fixed_type_p (exp, &nonnull);
        if (!nonnull)
  	{
  	  /* Make sure it isn't a null lvalue; evaluate it once.  */
--- 381,389 ----
    if (processing_template_decl)
      return build_min (TYPEID_EXPR, const_type_info_type_node, exp);
  
!   int nonnull = 0;
!   if (typeid_evaluated_p (exp, &nonnull))
      {
        if (!nonnull)
  	{
  	  /* Make sure it isn't a null lvalue; evaluate it once.  */
diff -Nrcpad gcc-17-20260712/gcc/cp/tree.cc gcc-17-20260719/gcc/cp/tree.cc
*** gcc-17-20260712/gcc/cp/tree.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/cp/tree.cc	Sun Jul 19 22:32:07 2026
*************** static tree handle_no_dangling_attribute
*** 50,55 ****
--- 50,59 ----
  static tree handle_annotation_attribute (tree *, tree, tree, int, bool *);
  static tree handle_trivial_abi_attribute (tree *, tree, tree, int, bool *);
  static tree handle_gnu_trivial_abi_attribute (tree *, tree, tree, int, bool *);
+ static tree handle_no_specializations_attribute (tree *, tree, tree, int,
+ 						 bool *);
+ static tree handle_gnu_no_specializations_attribute (tree *, tree, tree, int,
+ 						     bool *);
  
  /* If REF is an lvalue, returns the kind of lvalue that REF is.
     Otherwise, returns clk_none.  */
*************** strip_typedefs_expr (tree t, bool *remov
*** 2050,2055 ****
--- 2054,2060 ----
      case OVERLOAD:
      case BASELINK:
      case ARGUMENT_PACK_SELECT:
+     case REQUIRES_EXPR:
        return t;
  
      case TRAIT_EXPR:
*************** cp_tree_equal (tree t1, tree t2)
*** 4527,4532 ****
--- 4532,4547 ----
      case REFLECT_EXPR:
        return compare_reflections (t1, t2);
  
+     case REQUIRES_EXPR:
+       if (cp_tree_equal (REQUIRES_EXPR_PARMS (t1),
+ 			  REQUIRES_EXPR_PARMS (t2))
+ 	  && cp_tree_equal (REQUIRES_EXPR_REQS (t1),
+ 			    REQUIRES_EXPR_REQS (t2))
+ 	  && cp_tree_equal (REQUIRES_EXPR_EXTRA_ARGS (t1),
+ 			    REQUIRES_EXPR_EXTRA_ARGS (t2)))
+ 	return true;
+       return false;
+ 
      default:
        break;
      }
*************** static const attribute_spec cxx_gnu_attr
*** 5609,5614 ****
--- 5624,5631 ----
      handle_abi_tag_attribute, NULL },
    { "no_dangling", 0, 1, false, true, false, false,
      handle_no_dangling_attribute, NULL },
+   { "no_specializations", 0, 1, false, false, false, false,
+     handle_gnu_no_specializations_attribute, NULL },
    { "trivial_abi", 0, 0, false, true, false, true,
      handle_gnu_trivial_abi_attribute, NULL },
  };
*************** const scoped_attribute_specs internal_at
*** 5667,5672 ****
--- 5684,5691 ----
  // clang-format off
  static const attribute_spec cxx_clang_attributes[] =
  {
+   { "no_specializations", 0, 1, false, false, false, false,
+     handle_no_specializations_attribute, NULL },
    { "trivial_abi", 0, 0, false, true, false, true,
      handle_trivial_abi_attribute, NULL },
  };
*************** has_trivial_abi_attribute (tree type)
*** 6075,6080 ****
--- 6094,6178 ----
    return lookup_attribute ("trivial_abi", TYPE_ATTRIBUTES (type));
  }
  
+ /* Handle a "no_specializations" attribute applied via
+    [[gnu::no_specializations]].
+    We reject that spelling; suggest [[clang::no_specializations]] or
+    __attribute__((no_specializations)) instead.  */
+ 
+ static tree
+ handle_gnu_no_specializations_attribute (tree *node, tree name, tree args,
+ 					 int flags, bool *no_add_attrs)
+ {
+   if (flags & ATTR_FLAG_CXX11)
+     {
+       warning (OPT_Wattributes,
+ 	       "%<[[gnu::no_specializations]]%> is not supported; use "
+ 	       "%<[[clang::no_specializations]]%> or "
+ 	       "%<__attribute__((no_specializations))%> instead");
+       *no_add_attrs = true;
+       return NULL_TREE;
+     }
+   return handle_no_specializations_attribute (node, name, args, flags,
+ 					      no_add_attrs);
+ }
+ 
+ /* Handle a "no_specializations" attribute.  */
+ 
+ static tree
+ handle_no_specializations_attribute (tree *node, tree name, tree args, int,
+ 				     bool *no_add_attrs)
+ {
+   if (args && TREE_CODE (TREE_VALUE (args)) != STRING_CST)
+     {
+       error ("%qE attribute argument must be a string constant", name);
+       *no_add_attrs = true;
+       return NULL_TREE;
+     }
+   /* Only allow on class templates, variable templates
+      and function templates.  */
+   if (!CLASS_TYPE_P (*node) && !VAR_OR_FUNCTION_DECL_P (*node))
+     {
+     invalid:
+       warning (OPT_Wattributes, "%qE attribute only applies to class, "
+ 				"function or variable templates", name);
+       *no_add_attrs = true;
+       return NULL_TREE;
+     }
+   tree ti = NULL_TREE;
+   if (TYPE_P (*node))
+     {
+       if (!TYPE_NAME (*node)
+ 	  || !DECL_IMPLICIT_TYPEDEF_P (TYPE_NAME (*node))
+ 	  || LAMBDA_TYPE_P (*node))
+ 	goto invalid;
+       if (TYPE_LANG_SPECIFIC (*node))
+ 	{
+ 	  if (CLASSTYPE_TEMPLATE_SPECIALIZATION (*node)
+ 	      || CLASSTYPE_EXPLICIT_INSTANTIATION (*node))
+ 	    goto invalid;
+ 	  ti = CLASSTYPE_TEMPLATE_INFO (*node);
+ 	}
+     }
+   else if (DECL_LANG_SPECIFIC (*node))
+     {
+       if (DECL_TEMPLATE_SPECIALIZATION (*node)
+ 	  || DECL_EXPLICIT_INSTANTIATION (*node))
+ 	goto invalid;
+       ti = DECL_TEMPLATE_INFO (*node);
+     }
+   if (ti)
+     {
+       if (!PRIMARY_TEMPLATE_P (TI_TEMPLATE (ti)))
+ 	goto invalid;
+       if (TYPE_P (*node) && DECL_ALIAS_TEMPLATE_P (TI_TEMPLATE (ti)))
+ 	goto invalid;
+     }
+   else if (!processing_template_decl || !template_parm_scope_p ())
+     goto invalid;
+ 
+   return NULL_TREE;
+ }
+ 
  /* Validate the trivial_abi attribute on a completed class type.
     Called from finish_struct after the class is complete.  */
  
*************** validate_trivial_abi_attribute (tree typ
*** 6086,6091 ****
--- 6184,6196 ----
  
    gcc_assert (COMPLETE_TYPE_P (type));
  
+   auto remove_trivial_abi_attribute = [type] {
+     for (tree variant = TYPE_MAIN_VARIANT (type); variant;
+ 	 variant = TYPE_NEXT_VARIANT (variant))
+       TYPE_ATTRIBUTES (variant)
+ 	= remove_attribute ("trivial_abi", TYPE_ATTRIBUTES (variant));
+   };
+ 
    /* Check for virtual bases.  */
    if (CLASSTYPE_VBASECLASSES (type))
      {
*************** validate_trivial_abi_attribute (tree typ
*** 6093,6100 ****
        if (warning (OPT_Wattributes, "%<trivial_abi%> cannot be applied to %qT",
  		   type))
  	inform (input_location, "has a virtual base");
!       TYPE_ATTRIBUTES (type)
! 	= remove_attribute ("trivial_abi", TYPE_ATTRIBUTES (type));
        return;
      }
  
--- 6198,6204 ----
        if (warning (OPT_Wattributes, "%<trivial_abi%> cannot be applied to %qT",
  		   type))
  	inform (input_location, "has a virtual base");
!       remove_trivial_abi_attribute ();
        return;
      }
  
*************** validate_trivial_abi_attribute (tree typ
*** 6105,6112 ****
        if (warning (OPT_Wattributes, "%<trivial_abi%> cannot be applied to %qT",
  		   type))
  	inform (input_location, "is polymorphic");
!       TYPE_ATTRIBUTES (type)
! 	= remove_attribute ("trivial_abi", TYPE_ATTRIBUTES (type));
        return;
      }
  
--- 6209,6215 ----
        if (warning (OPT_Wattributes, "%<trivial_abi%> cannot be applied to %qT",
  		   type))
  	inform (input_location, "is polymorphic");
!       remove_trivial_abi_attribute ();
        return;
      }
  
*************** validate_trivial_abi_attribute (tree typ
*** 6126,6133 ****
  			   "%<trivial_abi%> cannot be applied to %qT", type))
  		inform (input_location, "has a non-trivial base class %qT",
  			base_type);
! 	      TYPE_ATTRIBUTES (type)
! 		= remove_attribute ("trivial_abi", TYPE_ATTRIBUTES (type));
  	      return;
  	    }
  	}
--- 6229,6235 ----
  			   "%<trivial_abi%> cannot be applied to %qT", type))
  		inform (input_location, "has a non-trivial base class %qT",
  			base_type);
! 	      remove_trivial_abi_attribute ();
  	      return;
  	    }
  	}
*************** validate_trivial_abi_attribute (tree typ
*** 6147,6154 ****
  			   "%<trivial_abi%> cannot be applied to %qT", type))
  		inform (input_location, "has a non-static data member "
  			"of non-trivial type %qT", field_type);
! 	      TYPE_ATTRIBUTES (type)
! 		= remove_attribute ("trivial_abi", TYPE_ATTRIBUTES (type));
  	      return;
  	    }
  	}
--- 6249,6255 ----
  			   "%<trivial_abi%> cannot be applied to %qT", type))
  		inform (input_location, "has a non-static data member "
  			"of non-trivial type %qT", field_type);
! 	      remove_trivial_abi_attribute ();
  	      return;
  	    }
  	}
*************** validate_trivial_abi_attribute (tree typ
*** 6162,6169 ****
  		   type))
  	inform (input_location,
  		"copy constructors and move constructors are all deleted");
!       TYPE_ATTRIBUTES (type)
! 	= remove_attribute ("trivial_abi", TYPE_ATTRIBUTES (type));
        return;
      }
  }
--- 6263,6269 ----
  		   type))
  	inform (input_location,
  		"copy constructors and move constructors are all deleted");
!       remove_trivial_abi_attribute ();
        return;
      }
  }
diff -Nrcpad gcc-17-20260712/gcc/cse.cc gcc-17-20260719/gcc/cse.cc
*** gcc-17-20260712/gcc/cse.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/cse.cc	Sun Jul 19 22:32:07 2026
*************** struct branch_path
*** 483,488 ****
--- 483,517 ----
    basic_block bb;
  };
  
+ /* This data describes a pair of vec_duplicates in the same BB, which duplicate
+    the same pseudo to different vector lengths.  The same structure is also
+    used while prescanning a basic block as a temporary cache entry.  */
+ 
+ struct cse_vec_duplicate_match
+ {
+   basic_block bb;
+   machine_mode widest_mode;
+   rtx scalar;
+   rtx_insn *first_insn;
+   rtx_insn *widest_insn;
+   auto_vec<rtx_insn *> related_dups;
+ 
+   cse_vec_duplicate_match (basic_block bb_, machine_mode widest_mode_,
+ 			   rtx scalar_, rtx_insn *first_insn_,
+ 			   rtx_insn *widest_insn_)
+     : bb (bb_), widest_mode (widest_mode_), scalar (scalar_),
+       first_insn (first_insn_), widest_insn (widest_insn_)
+   {}
+ 
+   cse_vec_duplicate_match (const cse_vec_duplicate_match &other)
+     : bb (other.bb), widest_mode (other.widest_mode), scalar (other.scalar),
+       first_insn (other.first_insn), widest_insn (other.widest_insn)
+   {
+     related_dups.reserve(other.related_dups.length ());
+     related_dups.splice(other.related_dups);
+   }
+ };
+ 
  /* This data describes a block that will be processed by
     cse_extended_basic_block.  */
  
*************** struct cse_basic_block_data
*** 494,499 ****
--- 523,532 ----
    int path_size;
    /* Current path, indicating which basic_blocks will be processed.  */
    struct branch_path *path;
+   /* vec_duplicate sources seen in the current BB while prescanning.  */
+   auto_vec<cse_vec_duplicate_match, 8> vec_duplicate_cache;
+   /* Syntactic vec_duplicate matches found in the same BB while prescanning.  */
+   auto_vec<cse_vec_duplicate_match, 8> vec_duplicate_matches;
  };
  
  
*************** static rtx equiv_constant (rtx);
*** 545,550 ****
--- 578,585 ----
  static void record_jump_equiv (rtx_insn *, bool);
  static void record_jump_cond (enum rtx_code, machine_mode, rtx, rtx);
  static void cse_insn (rtx_insn *);
+ static void cse_prescan_cache_vec_dup (struct cse_basic_block_data *,
+ 				       basic_block, rtx_insn *, rtx);
  static void cse_prescan_path (struct cse_basic_block_data *);
  static void invalidate_from_clobbers (rtx_insn *);
  static void invalidate_from_sets_and_clobbers (rtx_insn *);
*************** have_eh_succ_edges (basic_block bb)
*** 6527,6535 ****
    return false;
  }
  
  
  /* Scan to the end of the path described by DATA.  Return an estimate of
!    the total number of SETs of all insns in the path.  */
  
  static void
  cse_prescan_path (struct cse_basic_block_data *data)
--- 6562,6629 ----
    return false;
  }
  
+ /* Record vec_duplicate match for SET in the same basic block, if any.  */
+ static void
+ cse_prescan_cache_vec_dup (struct cse_basic_block_data *data, basic_block bb,
+ 			   rtx_insn *insn, rtx set)
+ {
+   rtx src = SET_SRC (set);
+   rtx dest = SET_DEST (set);
+   machine_mode mode = GET_MODE (src);
+   rtx scalar;
+ 
+   /* Limit matching to duplicates of the same pseudo register, or an exact
+      SUBREG of such a pseudo.  */
+   if (!vec_duplicate_p (src, &scalar))
+     return;
+   if (REG_P (scalar))
+     {
+       if (HARD_REGISTER_P (scalar))
+ 	return;
+     }
+   else if (SUBREG_P (scalar))
+     {
+       if (!REG_P (SUBREG_REG (scalar))
+ 	  || HARD_REGISTER_P (SUBREG_REG (scalar)))
+ 	return;
+     }
+   else
+     return;
+ 
+   /* Check for matching cached vec_duplicates and save the match if found.  */
+   for (auto &entry : data->vec_duplicate_cache)
+     {
+       /* Create a match with existing cache entry if both scalar register
+ 	 pseudos are matching and the new vec_duplicate mode is wider.  */
+       if (REG_P (dest) && rtx_equal_p (entry.scalar, scalar)
+ 	  && known_gt (GET_MODE_SIZE (mode), GET_MODE_SIZE (entry.widest_mode))
+ 	  && GET_MODE_INNER (mode) == GET_MODE_INNER (entry.widest_mode))
+ 	{
+ 	  entry.widest_mode = mode;
+ 	  entry.widest_insn = insn;
+ 	  entry.related_dups.safe_push (insn);
+ 	  return;
+ 	}
+       else if (GET_MODE_INNER (mode) == GET_MODE_INNER (entry.widest_mode)
+ 	       && rtx_equal_p (entry.scalar, scalar)
+ 	       && known_le (GET_MODE_SIZE (mode),
+ 			    GET_MODE_SIZE (entry.widest_mode)))
+ 	{
+ 	  entry.related_dups.safe_push (insn);
+ 	  return;
+ 	}
+     }
+ 
+   /* Cache vec_duplicate as a new entry if no match was found.  */
+   cse_vec_duplicate_match new_entry (bb, mode, scalar, insn, NULL);
+   new_entry.related_dups.safe_push (insn);
+   data->vec_duplicate_cache.safe_push (new_entry);
+ }
+ 
  
  /* Scan to the end of the path described by DATA.  Return an estimate of
!    the total number of SETs of all insns in the path.  Also record any
!    matching vec_duplicate SETs of the same scalar value for different modes.  */
  
  static void
  cse_prescan_path (struct cse_basic_block_data *data)
*************** cse_prescan_path (struct cse_basic_block
*** 6538,6543 ****
--- 6632,6639 ----
    int path_size = data->path_size;
    int path_entry;
  
+   data->vec_duplicate_matches.truncate (0);
+ 
    /* Scan to end of each basic block in the path.  */
    for (path_entry = 0; path_entry < path_size; path_entry++)
      {
*************** cse_prescan_path (struct cse_basic_block
*** 6545,6562 ****
        rtx_insn *insn;
  
        bb = data->path[path_entry].bb;
  
        FOR_BB_INSNS (bb, insn)
  	{
  	  if (!INSN_P (insn))
  	    continue;
  
  	  /* A PARALLEL can have lots of SETs in it,
  	     especially if it is really an ASM_OPERANDS.  */
! 	  if (GET_CODE (PATTERN (insn)) == PARALLEL)
! 	    nsets += XVECLEN (PATTERN (insn), 0);
  	  else
! 	    nsets += 1;
  	}
      }
  
--- 6641,6685 ----
        rtx_insn *insn;
  
        bb = data->path[path_entry].bb;
+       data->vec_duplicate_cache.truncate (0);
  
        FOR_BB_INSNS (bb, insn)
  	{
  	  if (!INSN_P (insn))
  	    continue;
  
+ 	  rtx pattern = PATTERN (insn);
+ 
  	  /* A PARALLEL can have lots of SETs in it,
  	     especially if it is really an ASM_OPERANDS.  */
! 	  if (GET_CODE (pattern) == PARALLEL)
! 	    {
! 	      int len = XVECLEN (pattern, 0);
! 
! 	      nsets += len;
! 	      for (int i = 0; i < len; i++)
! 		{
! 		  rtx elt = XVECEXP (pattern, 0, i);
! 		  if (GET_CODE (elt) == SET)
! 		    cse_prescan_cache_vec_dup (data, bb, insn, elt);
! 		}
! 	    }
  	  else
! 	    {
! 	      if (GET_CODE (pattern) == SET)
! 		cse_prescan_cache_vec_dup (data, bb, insn, pattern);
! 	      nsets += 1;
! 	    }
! 	}
! 
!       /* Record any vec_duplicate matches from this basic block.  */
!       for (auto &entry : data->vec_duplicate_cache)
! 	{
! 	  /* If we recorded no wider vec_duplicate match then skip.  */
! 	  if (entry.widest_insn == NULL_RTX)
! 	    continue;
! 
! 	  data->vec_duplicate_matches.safe_push (entry);
  	}
      }
  
*************** cse_main (rtx_insn *f ATTRIBUTE_UNUSED,
*** 6803,6808 ****
--- 6926,7038 ----
  	  if (ebb_data.nsets == 0)
  	    continue;
  
+ 	/* If prescan discovers any vec_duplicate pairs where a wider duplicate
+ 	   appears after a narrow duplicate of the same scalar, move the
+ 	   widest duplicate before the first vec_duplicate of this scalar and
+ 	   rewrite all related duplicates to reuse it.  */
+ 	for (auto &match : ebb_data.vec_duplicate_matches)
+ 	  {
+ 	    rtx wide_set = single_set (match.widest_insn);
+ 	    if (!wide_set)
+ 	      continue;
+ 	    rtx wide_reg = SET_DEST (wide_set);
+ 	    rtx_insn *insert_after = PREV_INSN (match.first_insn);
+ 	    if (!REG_P (wide_reg) || !insert_after)
+ 	      continue;
+ 
+ 	    /* Safety check that WIDE_REG is not otherwise used or redefined
+ 	       before its original defining insn.  */
+ 	    if (reg_used_between_p (wide_reg, match.first_insn,
+ 				    match.widest_insn)
+ 		|| reg_set_between_p (wide_reg, match.first_insn,
+ 				      match.widest_insn))
+ 	      continue;
+ 
+ 	    /* Rewrite all related duplicates as a group so we either keep the
+ 	       whole transformation or none of it.  */
+ 	    int prev_changes = num_changes_pending ();
+ 	    bool abort_changes = false;
+ 
+ 	    for (auto &dup_insn : match.related_dups)
+ 	      {
+ 		rtx dup_set;
+ 		rtx dup_src;
+ 		machine_mode dup_mode;
+ 
+ 		if (dup_insn == match.widest_insn)
+ 		  continue;
+ 
+ 		/* The earlier safety check already covered the range from
+ 		   FIRST_INSN up to WIDEST_INSN.  Only check the remaining
+ 		   suffix for duplicates that come later in the block.  This
+ 		   also covers call-clobbered hard registers via
+ 		   reg_set_between_p.  */
+ 		bool reg_set = false;
+ 		bool reg_set_with_widest_after = false;
+ 		for (rtx_insn *scan = NEXT_INSN (match.widest_insn);
+ 		     scan != NEXT_INSN (BB_END (match.bb)) && scan != NULL_RTX;
+ 		     scan = NEXT_INSN (scan))
+ 		  {
+ 		    if (scan == dup_insn)
+ 		      {
+ 			reg_set_with_widest_after = reg_set;
+ 			break;
+ 		      }
+ 		    if (!reg_set && INSN_P (scan) && reg_set_p (wide_reg, scan))
+ 		      reg_set = true;
+ 		  }
+ 
+ 		if (reg_set_with_widest_after)
+ 		  continue;
+ 
+ 		dup_set = single_set (dup_insn);
+ 		if (!dup_set)
+ 		  {
+ 		    abort_changes = true;
+ 		    break;
+ 		  }
+ 
+ 		dup_mode = GET_MODE (SET_DEST (dup_set));
+ 		if (dup_mode == GET_MODE (wide_reg))
+ 		  dup_src = wide_reg;
+ 		else
+ 		  {
+ 		    dup_src = gen_lowpart (dup_mode, wide_reg);
+ 		    if (!dup_src)
+ 		      {
+ 			abort_changes = true;
+ 			break;
+ 		      }
+ 		  }
+ 
+ 		if (rtx_equal_p (dup_src, SET_DEST (dup_set)))
+ 		  continue;
+ 
+ 		if (!validate_change (dup_insn, &SET_SRC (dup_set), dup_src, 1))
+ 		  {
+ 		    abort_changes = true;
+ 		    break;
+ 		  }
+ 	      }
+ 
+ 	    if (abort_changes)
+ 	      {
+ 		cancel_changes (prev_changes);
+ 		continue;
+ 	      }
+ 
+ 	    if (num_changes_pending () == prev_changes)
+ 	      continue;
+ 
+ 	    if (!apply_change_group ())
+ 	      continue;
+ 
+ 	    reorder_insns (match.widest_insn, match.widest_insn, insert_after);
+ 
+ 	    if (match.related_dups.contains (match.widest_insn))
+ 	      df_insn_rescan (match.widest_insn);
+ 	}
+ 
  	  /* Get a reasonable estimate for the maximum number of qty's
  	     needed for this path.  For this, we take the number of sets
  	     and multiply that by MAX_RECOG_OPERANDS.  */
diff -Nrcpad gcc-17-20260712/gcc/diagnostic.h gcc-17-20260719/gcc/diagnostic.h
*** gcc-17-20260712/gcc/diagnostic.h	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/diagnostic.h	Sun Jul 19 22:32:07 2026
*************** diagnostic_initialize_input_context (dia
*** 141,153 ****
  }
  
  /* Force diagnostics controlled by OPTIDX to be kind KIND.  */
! inline diagnostics::kind
  diagnostic_classify_diagnostic (diagnostics::context *context,
  				diagnostics::option_id opt_id,
  				enum diagnostics::kind kind,
  				location_t where)
  {
!   return context->classify_diagnostic (opt_id, kind, where);
  }
  
  inline void
--- 141,153 ----
  }
  
  /* Force diagnostics controlled by OPTIDX to be kind KIND.  */
! inline void
  diagnostic_classify_diagnostic (diagnostics::context *context,
  				diagnostics::option_id opt_id,
  				enum diagnostics::kind kind,
  				location_t where)
  {
!   context->classify_diagnostic (opt_id, kind, where);
  }
  
  inline void
diff -Nrcpad gcc-17-20260712/gcc/diagnostics/context.h gcc-17-20260719/gcc/diagnostics/context.h
*** gcc-17-20260712/gcc/diagnostics/context.h	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/diagnostics/context.h	Sun Jul 19 22:32:07 2026
*************** public:
*** 339,345 ****
    void
    report_global_digraph (const lazily_created<digraphs::digraph> &);
  
!   enum kind
    classify_diagnostic (option_id opt_id,
  		       enum kind new_kind,
  		       location_t where)
--- 339,345 ----
    void
    report_global_digraph (const lazily_created<digraphs::digraph> &);
  
!   void
    classify_diagnostic (option_id opt_id,
  		       enum kind new_kind,
  		       location_t where)
*************** public:
*** 351,360 ****
        .log_param_location_t ("where", where);
      logging::auto_inc_depth depth_sentinel (m_logger);
  
!     return m_option_classifier.classify_diagnostic (this,
! 						    opt_id,
! 						    new_kind,
! 						    where);
    }
  
    void push_diagnostics (location_t where)
--- 351,357 ----
        .log_param_location_t ("where", where);
      logging::auto_inc_depth depth_sentinel (m_logger);
  
!     m_option_classifier.classify_diagnostic (this, opt_id, new_kind, where);
    }
  
    void push_diagnostics (location_t where)
diff -Nrcpad gcc-17-20260712/gcc/diagnostics/kinds.h gcc-17-20260719/gcc/diagnostics/kinds.h
*** gcc-17-20260712/gcc/diagnostics/kinds.h	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/diagnostics/kinds.h	Sun Jul 19 22:32:07 2026
*************** enum class kind
*** 34,40 ****
    pop,
    /* This is used internally to note that a diagnostic is enabled
       without mandating any specific type.  */
!   any
  };
  
  extern const char *get_text_for_kind (enum diagnostics::kind);
--- 34,42 ----
    pop,
    /* This is used internally to note that a diagnostic is enabled
       without mandating any specific type.  */
!   any,
! 
!   tot_num_diagnostic_kinds
  };
  
  extern const char *get_text_for_kind (enum diagnostics::kind);
diff -Nrcpad gcc-17-20260712/gcc/diagnostics/option-classifier.cc gcc-17-20260719/gcc/diagnostics/option-classifier.cc
*** gcc-17-20260712/gcc/diagnostics/option-classifier.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/diagnostics/option-classifier.cc	Sun Jul 19 22:32:07 2026
*************** option_classifier::pop (location_t where
*** 115,170 ****
    m_classification_history.safe_push (v);
  }
  
! /* Interface to specify diagnostic kind overrides.  Returns the
!    previous setting, or kind::unspecified if the parameters are out of
!    range.  If OPTION_ID is zero, the new setting is for all the
!    diagnostics.  */
  
! enum kind
  option_classifier::classify_diagnostic (const context *dc,
  					option_id opt_id,
  					enum kind new_kind,
  					location_t where)
  {
-   enum kind old_kind;
- 
    if (opt_id.m_idx < 0
        || opt_id.m_idx >= m_n_opts
        || new_kind >= kind::last_diagnostic_kind)
!     return kind::unspecified;
  
!   old_kind = m_classify_diagnostic[opt_id.m_idx];
  
    /* Handle pragmas separately, since we need to keep track of *where*
       the pragmas were.  */
    if (where != UNKNOWN_LOCATION)
      {
-       unsigned i;
- 
        /* Record the command-line status, so we can reset it back on kind::pop. */
!       if (old_kind == kind::unspecified)
! 	{
! 	  old_kind = (!dc->option_enabled_p (opt_id)
! 		      ? kind::ignored : kind::any);
! 	  m_classify_diagnostic[opt_id.m_idx] = old_kind;
! 	}
! 
!       classification_change_t *p;
!       FOR_EACH_VEC_ELT_REVERSE (m_classification_history, i, p)
! 	if (p->option == opt_id.m_idx)
! 	  {
! 	    old_kind = p->kind;
! 	    break;
! 	  }
  
        classification_change_t v
  	= { where, opt_id.m_idx, new_kind };
        m_classification_history.safe_push (v);
      }
    else
!     m_classify_diagnostic[opt_id.m_idx] = new_kind;
! 
!   return old_kind;
  }
  
  /* Update the kind of DIAGNOSTIC based on its location(s), including
--- 115,151 ----
    m_classification_history.safe_push (v);
  }
  
! /* Interface to specify diagnostic kind overrides.  If OPTION_ID is zero, the
!    new setting is for all the diagnostics.  */
  
! void
  option_classifier::classify_diagnostic (const context *dc,
  					option_id opt_id,
  					enum kind new_kind,
  					location_t where)
  {
    if (opt_id.m_idx < 0
        || opt_id.m_idx >= m_n_opts
        || new_kind >= kind::last_diagnostic_kind)
!     return;
  
!   auto &base_kind = m_classify_diagnostic[opt_id.m_idx];
  
    /* Handle pragmas separately, since we need to keep track of *where*
       the pragmas were.  */
    if (where != UNKNOWN_LOCATION)
      {
        /* Record the command-line status, so we can reset it back on kind::pop. */
!       if (base_kind == kind::unspecified)
! 	base_kind = (!dc->option_enabled_p (opt_id)
! 		     ? kind::ignored : kind::any);
  
        classification_change_t v
  	= { where, opt_id.m_idx, new_kind };
        m_classification_history.safe_push (v);
      }
    else
!     base_kind = new_kind;
  }
  
  /* Update the kind of DIAGNOSTIC based on its location(s), including
diff -Nrcpad gcc-17-20260712/gcc/diagnostics/option-classifier.h gcc-17-20260719/gcc/diagnostics/option-classifier.h
*** gcc-17-20260712/gcc/diagnostics/option-classifier.h	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/diagnostics/option-classifier.h	Sun Jul 19 22:32:07 2026
*************** public:
*** 57,63 ****
      return m_classify_diagnostic[opt_id.m_idx];
    }
  
!   enum kind
    classify_diagnostic (const context *context,
  		       option_id opt_id,
  		       enum kind new_kind,
--- 57,63 ----
      return m_classify_diagnostic[opt_id.m_idx];
    }
  
!   void
    classify_diagnostic (const context *context,
  		       option_id opt_id,
  		       enum kind new_kind,
*************** public:
*** 69,75 ****
    int pch_save (FILE *);
    int pch_restore (FILE *);
  
- private:
    /* Each time a diagnostic's classification is changed with a pragma,
       we record the change and the location of the change in an array of
       these structs.  */
--- 69,74 ----
*************** private:
*** 85,90 ****
--- 84,90 ----
      enum kind kind;
    };
  
+ private:
    int m_n_opts;
  
    /* For each option index that can be passed to warning() et al
diff -Nrcpad gcc-17-20260712/gcc/doc/extend.texi gcc-17-20260719/gcc/doc/extend.texi
*** gcc-17-20260712/gcc/doc/extend.texi	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/doc/extend.texi	Sun Jul 19 22:32:07 2026
*************** and suffixed by two underscores; for exa
*** 1824,1829 ****
--- 1824,1835 ----
  @code{weak} is @code{__weak__}.  These alternate names are useful in
  library header files in case they are included into files that have
  redefined the base name of the attribute as a preprocessor macro.
+ Similarly for every supported standard or scoped attribute, for example, the
+ variant spellings of @code{[[gnu::weak]]} are @code{[[__gnu__::__weak__]]},
+ @code{[[gnu::__weak__]]} or @code{[[__gnu__::weak]]}.  The only exception
+ is that alternate spelling of the @code{clang} scoped attribute namespace
+ is @code{_Clang} rather than @code{__clang__} for compatibility with that
+ compiler.
  
  GCC also accepts the keyword @code{__attribute} as a synonym for
  @code{__attribute__}.
*************** attribute, used to specify function poin
*** 4347,4353 ****
  functions according to the C23 definition.
  
  Unlike the standard C23 attribute it can be also specified in attributes
! which appertain to function declarations and applies to the their function
  type even in that case.
  
  Reproducible functions without pointer or reference arguments or which do
--- 4353,4359 ----
  functions according to the C23 definition.
  
  Unlike the standard C23 attribute it can be also specified in attributes
! which appertain to function declarations and applies to their function
  type even in that case.
  
  Reproducible functions without pointer or reference arguments or which do
*************** attribute, used to specify function poin
*** 5203,5209 ****
  stateless and independent functions according to the C23 definition.
  
  Unlike the standard C23 attribute it can be also specified in attributes
! which appertain to function declarations and applies to the their function
  type even in that case.
  
  Unsequenced functions without pointer or reference arguments are similar
--- 5209,5215 ----
  stateless and independent functions according to the C23 definition.
  
  Unlike the standard C23 attribute it can be also specified in attributes
! which appertain to function declarations and applies to their function
  type even in that case.
  
  Unsequenced functions without pointer or reference arguments are similar
*************** arrays of any of the above
*** 31662,31667 ****
--- 31668,31708 ----
  @end itemize
  @end itemize
  
+ @cindex @code{no_specializations} template attribute
+ @item no_specializations
+ 
+ The @code{no_specializations} attribute can be applied to a C++
+ class template, variable template or function template, though not
+ their specializations.  It instructs the compiler to error if
+ such a template is explicitly specialized.  The primary use case
+ for this attribute is the standard library where the standard
+ specifies it is undefined behavior to specialize some template.
+ The error can be disabled with @option{-Wno-invalid-specialization}
+ or @code{#pragma GCC ignored "-Winvalid-specialization"}.
+ 
+ The attribute can be specified either as @code{__attribute__
+ ((no_specializations))} or @code{[[clang::no_specializations]]} for compatibility
+ with the original implementation in Clang.  To avoid portability
+ complications, @code{[[gnu::no_specializations]]} is ignored with a warning.
+ 
+ The attribute has a single optional argument, a string literal, which is
+ included in the diagnostics and can provide reason why some template should
+ not be specialized.
+ 
+ @smallexample
+ template <typename T>
+ struct __attribute__ ((__no_specializations__)) A @{@};
+ template <typename T, typename U>
+ [[clang::no_specializations]] int b = 1;
+ template <typename T>
+ [[_Clang::__no_specializations__ ("foo cannot be specialized")]] int
+ foo () @{ return 42; @}
+ template <> struct A <int> @{@}; // Error
+ template <typename T> int b <T, T> = 2; // Error
+ template <> int foo <int> () @{ return 43; @} // Error
+ @};
+ @end smallexample
+ 
  @end table
  
  @node Function Multiversioning
diff -Nrcpad gcc-17-20260712/gcc/doc/invoke.texi gcc-17-20260719/gcc/doc/invoke.texi
*** gcc-17-20260712/gcc/doc/invoke.texi	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/doc/invoke.texi	Sun Jul 19 22:32:07 2026
*************** in the following sections.
*** 202,216 ****
  
  @item C Language Options
  @xref{C Dialect Options,,Options Controlling C Dialect}.
! @gccoptlist{-ansi  -std=@var{standard}  -aux-info @var{filename}
! -fno-asm
! -fno-builtin  -fno-builtin-@var{function}  -fcond-mismatch
  -ffreestanding  -fgimple  -fgnu-tm  -fgnu89-inline  -fhosted
  -flax-vector-conversions  -fms-extensions
  -fpermitted-flt-eval-methods=@var{standard}
  -fplan9-extensions  -fsigned-bitfields  -funsigned-bitfields
! -fsigned-char  -funsigned-char  -fstrict-flex-arrays[=@var{n}]
! -fsso-struct=@var{endianness}  --ansi}
  
  @item C++ Language Options
  @xref{C++ Dialect Options,,Options Controlling C++ Dialect}.
--- 202,216 ----
  
  @item C Language Options
  @xref{C Dialect Options,,Options Controlling C Dialect}.
! @gccoptlist{-ansi  --ansi  -std=@var{standard}  -aux-info @var{filename}
! -fno-asm  -fno-builtin  -fno-builtin-@var{function}  -fcond-mismatch
! -fdeps-file=@var{file}  -fdeps-format=@var{format}  -fdeps-target=@var{file}
  -ffreestanding  -fgimple  -fgnu-tm  -fgnu89-inline  -fhosted
  -flax-vector-conversions  -fms-extensions
  -fpermitted-flt-eval-methods=@var{standard}
  -fplan9-extensions  -fsigned-bitfields  -funsigned-bitfields
! -fsigned-char  -funsigned-char  -fsso-struct=@var{endianness}
! -fstrict-flex-arrays[=@var{n}]}
  
  @item C++ Language Options
  @xref{C++ Dialect Options,,Options Controlling C++ Dialect}.
*************** in the following sections.
*** 280,286 ****
  -Wextra-semi  -Wno-global-module  -Wno-inaccessible-base
  -Wno-inherited-variadic-ctor  -Wno-init-list-lifetime
  -Winvalid-constexpr  -Winvalid-imported-macros
! -Wno-invalid-offsetof  -Wno-literal-suffix
  -Wmismatched-new-delete  -Wmismatched-tags
  -Wmultiple-inheritance  -Wnamespaces  -Wnarrowing
  -Wnoexcept  -Wnoexcept-type  -Wnon-virtual-dtor
--- 280,286 ----
  -Wextra-semi  -Wno-global-module  -Wno-inaccessible-base
  -Wno-inherited-variadic-ctor  -Wno-init-list-lifetime
  -Winvalid-constexpr  -Winvalid-imported-macros
! -Wno-invalid-offsetof  -Wno-invalid-specialization  -Wno-literal-suffix
  -Wmismatched-new-delete  -Wmismatched-tags
  -Wmultiple-inheritance  -Wnamespaces  -Wnarrowing
  -Wnoexcept  -Wnoexcept-type  -Wnon-virtual-dtor
*************** Allow conditional expressions with misma
*** 2746,2751 ****
--- 2746,2786 ----
  third arguments.  The value of such an expression is void.  This option
  is not supported for C++.
  
+ @opindex fdeps-
+ @opindex fdeps-file
+ @opindex fdeps-format
+ @opindex fdeps-target
+ @item -fdeps-file=@var{file}
+ @itemx -fdeps-format=@var{format}
+ @itemx -fdeps-target=@var{file}
+ 
+ The @samp{-fdeps-*} options are used to extract structured dependency
+ information for a source file.  This involves determining what
+ resources provided by other source files are required to compile
+ the source as well as what resources are provided by the source.  This
+ information can be used to add required dependencies between
+ compilation rules of dependent sources based on their contents rather
+ than requiring such information be reflected within the build tools as
+ well.
+ 
+ @option{-fdeps-file=@var{file}} specifies where to write structured
+ dependency information.
+ 
+ @option{-fdeps-format=@var{format}} specifies the format to use for
+ structured dependency information.
+ @uref{https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1689r5.html,
+ @samp{p1689r5}} is the only supported format right now.
+ Note that when this argument is specified, the
+ output of @samp{-MF} is stripped of some information (namely C++ modules) so
+ that it does not use extended makefile syntax not understood by most tools.
+ 
+ @option{-fdeps-target=@var{file}} is analogous to @option{-MT},
+ but for structured dependency information.  This
+ indicates the target of the build rule for the source file
+ that is currently being processed for dynamic dependencies, and is used to
+ associate the dependency information with that target in the output.
+ Normally this is the name of the @samp{.o} file generated during compilation.
+ 
  @opindex ffreestanding
  @opindex fno-freestanding
  @cindex hosted environment
*************** is @option{-fpermitted-flt-eval-methods=
*** 2870,2902 ****
  dialect (@option{-std=gnu11} or similar) is
  @option{-fpermitted-flt-eval-methods=ts-18661-3}.
  
- @opindex fdeps-
- The @samp{-fdeps-*} options are used to extract structured dependency
- information for a source.  This involves determining what resources provided by
- other source files will be required to compile the source as well as what
- resources are provided by the source.  This information can be used to add
- required dependencies between compilation rules of dependent sources based on
- their contents rather than requiring such information be reflected within the
- build tools as well.
- 
- @opindex fdeps-file
- @item -fdeps-file=@var{file}
- Where to write structured dependency information.
- 
- @opindex fdeps-format
- @item -fdeps-format=@var{format}
- The format to use for structured dependency information. @samp{p1689r5} is the
- only supported format right now.  Note that when this argument is specified, the
- output of @samp{-MF} is stripped of some information (namely C++ modules) so
- that it does not use extended makefile syntax not understood by most tools.
- 
- @opindex fdeps-target
- @item -fdeps-target=@var{file}
- Analogous to @option{-MT} but for structured dependency information.  This
- indicates the target which will ultimately need any required resources and
- provide any resources extracted from the source that may be required by other
- sources.
- 
  @opindex fplan9-extensions
  @opindex fno-plan9-extensions
  @item -fplan9-extensions
--- 2905,2910 ----
*************** The type @code{char} is always a distinc
*** 2956,2961 ****
--- 2964,2979 ----
  @code{signed char} or @code{unsigned char}, even though its behavior
  is always just like one of those two.
  
+ @opindex fsso-struct
+ @item -fsso-struct=@var{endianness}
+ Set the default scalar storage order of structures and unions to the
+ specified endianness.  The accepted values are @samp{big-endian},
+ @samp{little-endian} and @samp{native} for the native endianness of
+ the target (the default).  This option is not supported for C++.
+ 
+ @strong{Warning:} the @option{-fsso-struct} switch causes GCC to generate
+ code that is not binary compatible with code generated without it if the
+ specified endianness is not the native endianness of the target.
  @opindex fstrict-flex-arrays
  @opindex fno-strict-flex-arrays
  @opindex fstrict-flex-arrays=@var{level}
*************** The @option{-fstrict_flex_arrays} option
*** 2991,3006 ****
  @option{-Wstrict-flex-arrays} option.  @xref{Warning Options}, for more
  information.
  
- @opindex fsso-struct
- @item -fsso-struct=@var{endianness}
- Set the default scalar storage order of structures and unions to the
- specified endianness.  The accepted values are @samp{big-endian},
- @samp{little-endian} and @samp{native} for the native endianness of
- the target (the default).  This option is not supported for C++.
- 
- @strong{Warning:} the @option{-fsso-struct} switch causes GCC to generate
- code that is not binary compatible with code generated without it if the
- specified endianness is not the native endianness of the target.
  @end table
  
  @node C++ Dialect Options
--- 3009,3014 ----
*************** compilation.  This is not enabled by def
*** 4296,4301 ****
--- 4304,4318 ----
  additional processing to determine.  It may be useful when preparing
  sets of header-units to ensure consistent macros.
  
+ @opindex Winvalid-specialization
+ @opindex Wno-invalid-specialization
+ @item -Wno-invalid-specialization @r{(C++ and Objective-C++ only)}
+ Do not error on explicit specializations of templates marked with the
+ @code{no_specializations} attribute.  This diagnostics is enabled
+ by default, and @option{-Wno-invalid-specialization} or
+ @code{#pragma GCC ignored "-Winvalid-specializations"} can disable
+ that diagnostics.
+ 
  @opindex Wliteral-suffix
  @opindex Wno-literal-suffix
  @item -Wno-literal-suffix @r{(C++ and Objective-C++ only)}
*************** to the current task region, independent
*** 5606,5624 ****
  @opindex fno-openmp-ompt
  @cindex OpenMP OMPT
  @item -fopenmp-ompt
! Emit additional calls into libgomp, enabling OMPT callbacks around some OpenMP
! worksharing constructs (namely statically scheduled @code{for} and
! @code{distribute}, @code{single}, @code{masked} and @code{master}), so that an
! OMPT tool can observe their start and end.  Requires @option{-fopenmp}.
  
  @opindex fopenmp-ompt-detailed
  @opindex fno-openmp-ompt-detailed
  @cindex OpenMP OMPT
  @item -fopenmp-ompt-detailed
! Like @option{-fopenmp-ompt}, and additionally emit calls into libgomp, enabling
! OMPT dispatch callbacks that get called at the beginning of each workshare chunk
! for statically scheduled @code{for} and @code{distribute}.  Requires
! @option{-fopenmp}.
  
  @opindex fopenmp-target-simd-clone
  @opindex fno-openmp-target-simd-clone
--- 5623,5647 ----
  @opindex fno-openmp-ompt
  @cindex OpenMP OMPT
  @item -fopenmp-ompt
! For some OpenMP constructs, generate calls into the OpenMP runtime before and
! after the region instead of only on region entry.  For those constructs, the
! additional calls are only needed to provide better tracing results in tools
! using the OMPT interface and have a small overhead.  The extra calls are
! generated for the @code{single}, @code{masked}, and @code{master} constructs
! and with static scheduling for the @code{distribute} and worksharing loop
! constructs.  Requires @option{-fopenmp}.
  
  @opindex fopenmp-ompt-detailed
  @opindex fno-openmp-ompt-detailed
  @cindex OpenMP OMPT
  @item -fopenmp-ompt-detailed
! Add additional calls into the OpenMP runtime for more detailed tracing via OMPT,
! which might have a measurable effect on the performance.  The option enables
! additional constructs to issue events for the @code{dispatch} callback, which
! is invoked when begining to execute a section or a collapsed iteration in a
! @code{taskloop} or worksharing construct.  The additional calls are generated
! with static scheduling for the @code{distribute} and worksharing loop
! constructs.  Implies @option{-fopenmp-ompt} and requires @option{-fopenmp}.
  
  @opindex fopenmp-target-simd-clone
  @opindex fno-openmp-target-simd-clone
*************** Warn about uses of pointers to dynamical
*** 8475,8480 ****
--- 8498,8504 ----
  been rendered indeterminate by a call to a deallocation function.
  The warning is enabled at all optimization levels but may yield different
  results with optimization than without.
+ @option{-Wuse-after-free} is equivalent to @option{-Wuse-after-free=1}.
  
  @table @gcctabopt
  @item -Wuse-after-free=1
*************** Enable SVE2 sha3 instructions.  This als
*** 21973,21980 ****
  Enable SVE2.1 instructions.  This also enables SVE2 instructions.
  @item sve2p2
  Enable SVE2.2 instructions.  This also enables SVE2 and SVE2.1 instructions.
- @item tme
- Enable the Transactional Memory Extension.
  @item i8mm
  Enable 8-bit Integer Matrix Multiply instructions.  This also enables
  Advanced SIMD and floating-point instructions.  This option is enabled by
--- 21997,22002 ----
*************** startup code @code{crt@var{mcu}.o}, a de
*** 24306,24312 ****
  a device library @code{lib@var{mcu}.a} and a
  @uref{https://gcc.gnu.org/wiki/avr-gcc#spec-files,,device-specs} file
  @code{specs-@var{mcu}}. Only the latter is provided by the compiler
! according the supported @code{@var{mcu}}s below.  The rest is supported
  by @w{@uref{https://github.com/avrdudes/avr-libc/,,AVR-LibC}}, or by means of
  @uref{https://gcc.gnu.org/wiki/avr-gcc#atpack,,@code{atpack}} files
  from the hardware manufacturer.
--- 24328,24334 ----
  a device library @code{lib@var{mcu}.a} and a
  @uref{https://gcc.gnu.org/wiki/avr-gcc#spec-files,,device-specs} file
  @code{specs-@var{mcu}}. Only the latter is provided by the compiler
! according to the supported @code{@var{mcu}}s below.  The rest is supported
  by @w{@uref{https://github.com/avrdudes/avr-libc/,,AVR-LibC}}, or by means of
  @uref{https://gcc.gnu.org/wiki/avr-gcc#atpack,,@code{atpack}} files
  from the hardware manufacturer.
*************** and subtraction.
*** 34840,34846 ****
  Use this option when linking programs that perform file I/O and are
  destined to run on an MCM target.  It causes the libraries
  @file{libc.a} and @file{libdebug.a} to be linked.  You should run program
! on the the target under the control of the GDB remote debugging stub.
  
  @opindex msim
  @item -msim
--- 34862,34868 ----
  Use this option when linking programs that perform file I/O and are
  destined to run on an MCM target.  It causes the libraries
  @file{libc.a} and @file{libdebug.a} to be linked.  You should run program
! on the target under the control of the GDB remote debugging stub.
  
  @opindex msim
  @item -msim
diff -Nrcpad gcc-17-20260712/gcc/doc/lto.texi gcc-17-20260719/gcc/doc/lto.texi
*** gcc-17-20260712/gcc/doc/lto.texi	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/doc/lto.texi	Sun Jul 19 22:32:07 2026
*************** hooks: one for writing the summary and a
*** 258,263 ****
--- 258,272 ----
  format of these sections is entirely up to each individual pass.  The
  only requirement is that the writer and reader hooks agree on the
  format.
+ 
+ @item Linemap sections (@code{.gnu.lto_.linemap.<N>})
+ 
+ These sections contain data necessary to reconstruct the linemap
+ structure, which provides information about the source location for
+ each entity in the LTO stream.  A typical LTO object contains just one
+ linemap section (@code{linemap.0}), but WPA will create an object
+ containing more than one linemap section if it has copied function
+ bodies from more than one translation unit into a single partition.
  @end itemize
  
  
*************** local-transformation (LTRANS) mode, whic
*** 575,580 ****
--- 584,596 ----
  previous run of the LTO in WPA mode.  In the LTRANS mode, LTO
  optimizes an object and produces the final assembly.
  
+ @opindex fltrans-linemap-file
+ @item -fltrans-linemap-file=@var{file}
+ This option specifies an object file (output during the WPA phase)
+ containing additional linemap sections to be used during LTRANS.  It
+ is used internally by WPA to avoid copying the same linemap data into
+ multiple LTRANS partitions.
+ 
  @opindex fltrans-output-list
  @item -fltrans-output-list=@var{file}
  This option specifies a file to which the names of LTRANS output
diff -Nrcpad gcc-17-20260712/gcc/doc/riscv-ext.texi gcc-17-20260719/gcc/doc/riscv-ext.texi
*** gcc-17-20260712/gcc/doc/riscv-ext.texi	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/doc/riscv-ext.texi	Sun Jul 19 22:32:07 2026
***************
*** 78,83 ****
--- 78,91 ----
  @tab 1.0
  @tab Main memory supports all atomics in A
  
+ @item @samp{ziccamoc}
+ @tab 1.0
+ @tab Main memory supports compare-and-swap atomics
+ 
+ @item @samp{ziccid}
+ @tab 1.0
+ @tab Instruction/data coherence and consistency extension
+ 
  @item @samp{ziccif}
  @tab 1.0
  @tab Main memory supports instruction fetch with atomicity requirement
***************
*** 510,519 ****
--- 518,535 ----
  @tab 1.0
  @tab Advanced interrupt architecture extension
  
+ @item @samp{smcdeleg}
+ @tab 1.0
+ @tab Machine-mode counter delegation extension
+ 
  @item @samp{smcntrpmf}
  @tab 1.0
  @tab Cycle and instret privilege mode filtering
  
+ @item @samp{smctr}
+ @tab 1.0
+ @tab Machine-mode control transfer records extension
+ 
  @item @samp{smcsrind}
  @tab 1.0
  @tab Machine-level indirect CSR access
***************
*** 546,551 ****
--- 562,571 ----
  @tab 1.0
  @tab Advanced interrupt architecture extension for supervisor mode
  
+ @item @samp{ssccfg}
+ @tab 1.0
+ @tab Supervisor-mode counter configuration extension
+ 
  @item @samp{ssccptr}
  @tab 1.0
  @tab Main memory supports page table reads
***************
*** 558,563 ****
--- 578,587 ----
  @tab 1.0
  @tab Support writeable enables for any supported counter
  
+ @item @samp{ssctr}
+ @tab 1.0
+ @tab Supervisor-mode control transfer records extension
+ 
  @item @samp{sscsrind}
  @tab 1.0
  @tab Supervisor-mode indirect CSR access
***************
*** 570,575 ****
--- 594,603 ----
  @tab 1.0
  @tab Supervisor-mode pointer masking extension
  
+ @item @samp{ssqosid}
+ @tab 1.0
+ @tab Supervisor-mode quality-of-service ID extension
+ 
  @item @samp{ssstateen}
  @tab 1.0
  @tab Supervisor-mode state-enable extension
***************
*** 614,619 ****
--- 642,651 ----
  @tab 1.0
  @tab Page-based memory types extension
  
+ @item @samp{svrsw60t59b}
+ @tab 1.0
+ @tab Page-table reserved-for-software bits 60-59 extension
+ 
  @item @samp{svvptc}
  @tab 1.0
  @tab Extension for obviating memory-management instructions after marking PTEs valid
diff -Nrcpad gcc-17-20260712/gcc/doc/sourcebuild.texi gcc-17-20260719/gcc/doc/sourcebuild.texi
*** gcc-17-20260712/gcc/doc/sourcebuild.texi	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/doc/sourcebuild.texi	Sun Jul 19 22:32:07 2026
*************** are expected to fail some tests.
*** 1498,1504 ****
  
  Effective-target keywords are defined in @file{lib/target-supports.exp} in
  the GCC testsuite, with the exception of those that are documented as
! being local to a particular test directory.
  
  The @samp{effective target} takes into account all of the compiler options
  with which the test will be compiled, including the multilib options.
--- 1498,1506 ----
  
  Effective-target keywords are defined in @file{lib/target-supports.exp} in
  the GCC testsuite, with the exception of those that are documented as
! being local to a particular test directory.  Effective-target keywords
! matching @file{auto-host.h} macros can be generated from definitions
! in @file{lib/et-static.def}.
  
  The @samp{effective target} takes into account all of the compiler options
  with which the test will be compiled, including the multilib options.
*************** ARM target supports options to generate
*** 2235,2240 ****
--- 2237,2247 ----
  the M-Profile Vector Extension (MVE). Some multilibs may be incompatible
  with these options.
  
+ @item arm_v8_1m_mve_link
+ ARM target supports linking programs using the options selected by
+ @code{arm_v8_1m_mve_ok}. Some multilibs may be incompatible with these
+ options.
+ 
  @item arm_v8_1m_mve_fp_ok
  ARM target supports options to generate instructions from ARMv8.1-M with
  the Half-precision floating-point instructions (HP), Floating-point Extension
*************** AArch64 target which generates instructi
*** 2393,2398 ****
--- 2400,2407 ----
  AArch64 target which generates instruction sequences for little endian.
  @item aarch64_big_endian
  AArch64 target which generates instruction sequences for big endian.
+ @item aarch64_mbig_endian
+ AArch64 target supporting big endian code generation with @code{-mbig-endian}.
  @item aarch64_small_fpic
  Binutils installed on test system supports relocation types required by -fpic
  for AArch64 small memory model.
*************** Target uses GNU @command{ld}.
*** 3106,3111 ****
--- 3115,3123 ----
  Target keeps null pointer checks, either due to the use of
  @option{-fno-delete-null-pointer-checks} or hardwired into the target.
  
+ @item ld_at_file
+ Target supports GNU style response files.
+ 
  @item llvm_binutils
  Target is using an LLVM assembler and/or linker, instead of GNU Binutils.
  
*************** it is executed.  It is one of:
*** 4109,4120 ****
  Compile with @option{-c} to produce a relocatable object file.
  @item link
  Compile, assemble, and link to produce an executable file.
  @item run
  Produce and run an executable file, which is expected to return
  an exit code of 0.
  @end table
  
! The default is @code{assemble}.  That can be overridden for a set of
  tests by redefining @code{dg-do-what-default} within the @code{.exp}
  file for those tests.
  
--- 4121,4139 ----
  Compile with @option{-c} to produce a relocatable object file.
  @item link
  Compile, assemble, and link to produce an executable file.
+ @item ar-link
+ Similar to @code{link}, but combine all but the first source file into
+ an archive file before the final link.
+ @item incr-link
+ As with @code{ar-link}, but combine the files into an object file
+ using incremental linking, rather than an archive file.  This enables
+ testing the incremental linking features of the LTO front end.
  @item run
  Produce and run an executable file, which is expected to return
  an exit code of 0.
  @end table
  
! The default is @code{run}.  That can be overridden for a set of
  tests by redefining @code{dg-do-what-default} within the @code{.exp}
  file for those tests.
  
*************** Unlike @code{dg-do}, @code{dg-lto-do} do
*** 4124,4131 ****
  
  @item @{ dg-lto-options @{ @{ @var{options} @} [@{ @var{options} @}] @} [@{ target @var{selector} @}]@}
  This directive provides a list of one or more sets of compiler options
! to override @var{LTO_OPTIONS}.  Each test will be compiled and run with
! each of these sets of options.
  
  @item @{ dg-extra-ld-options @var{options} [@{ target @var{selector} @}]@}
  This directive adds @var{options} to the linker options used.
--- 4143,4159 ----
  
  @item @{ dg-lto-options @{ @{ @var{options} @} [@{ @var{options} @}] @} [@{ target @var{selector} @}]@}
  This directive provides a list of one or more sets of compiler options
! to override @var{LTO_OPTIONS}.  Every test file will be compiled and
! run once for each of these sets of options.  Individual source files
! within a test may also use @code{dg-options} to specify additional
! options to include.
! 
! @item @{ dg-lto-additional-options @{ @{ @var{options} @} [@{ @var{options} @}] @} [@{ target @var{selector} @}]@}
! This is similar to @code{dg-lto-options}, but rather than overriding
! @var{LTO_OPTIONS}, it appends the given options to each of the sets
! specified in @var{LTO_OPTIONS}.  This can be used to add a given list
! of options to every compilation of all source files in the test,
! without otherwise changing which combinations of options are tested.
  
  @item @{ dg-extra-ld-options @var{options} [@{ target @var{selector} @}]@}
  This directive adds @var{options} to the linker options used.
diff -Nrcpad gcc-17-20260712/gcc/doc/tree-ssa.texi gcc-17-20260719/gcc/doc/tree-ssa.texi
*** gcc-17-20260712/gcc/doc/tree-ssa.texi	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/doc/tree-ssa.texi	Sun Jul 19 22:32:07 2026
*************** optimization can manipulate the stmt whe
*** 386,392 ****
  processed.  Only the current active @code{imm_use_p} may be altered
  when using an inner @code{FOR_EACH_IMM_USE_ON_STMT} iteration.
  You have to be careful to not inadvertently modify the immediate
! use list by working on another stmt than the the current @code{stmt} during
  the iteration.  In particular calling @code{update_stmt} is destructive
  on all SSA uses immediate use lists related to the updated stmt.
  This slower than the FAST version since it sorts through the list for each
--- 386,392 ----
  processed.  Only the current active @code{imm_use_p} may be altered
  when using an inner @code{FOR_EACH_IMM_USE_ON_STMT} iteration.
  You have to be careful to not inadvertently modify the immediate
! use list by working on another stmt than the current @code{stmt} during
  the iteration.  In particular calling @code{update_stmt} is destructive
  on all SSA uses immediate use lists related to the updated stmt.
  This slower than the FAST version since it sorts through the list for each
diff -Nrcpad gcc-17-20260712/gcc/et-gather.awk gcc-17-20260719/gcc/et-gather.awk
*** gcc-17-20260712/gcc/et-gather.awk	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/et-gather.awk	Sun Jul 19 22:32:07 2026
***************
*** 0 ****
--- 1,38 ----
+ #  Copyright (C) 2026 Free Software Foundation, Inc.
+ #  Based on opt-gather.awk.
+ #
+ # This program is free software; you can redistribute it and/or modify it
+ # under the terms of the GNU General Public License as published by the
+ # Free Software Foundation; either version 3, or (at your option) any
+ # later version.
+ #
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ # GNU General Public License for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+ # along with this program; see the file COPYING3.  If not see
+ # <http://www.gnu.org/licenses/>.
+ 
+ # This Awk script takes et-static.def and creates a three-field list
+ # suitable for input into gen-et-static.awk.
+ #
+ # Usage: awk -f et-gather.awk et-static.def > outputfile
+ 
+ BEGIN {	numrec = 0 }
+ 
+ # Ignore comments and blank lines
+ /^[ \t]*(#|$)/  { flag = 0; next }
+ /^[^ \t]/       { if (flag == 0) {
+                     record[++numrec] = $0
+ 		    flag = 1 }
+ 		  else {
+ 		    record[numrec] = record[numrec] SUBSEP $0
+ 	          }
+ }
+ 
+ END {
+     for (i = 1; i <= numrec; i++) {
+ 	print record[i] }
+ }
diff -Nrcpad gcc-17-20260712/gcc/expmed.cc gcc-17-20260719/gcc/expmed.cc
*** gcc-17-20260712/gcc/expmed.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/expmed.cc	Sun Jul 19 22:32:07 2026
*************** invert_mod2n (unsigned HOST_WIDE_INT x,
*** 3838,3846 ****
  {
    gcc_assert ((x & 1) == 1);
  
!   /* The algorithm notes that the choice Y = Z satisfies X*Y == 1 mod 2^3,
!      since X is odd.  Then each iteration doubles the number of bits of
!      significance in Y.  */
  
    const unsigned HOST_WIDE_INT mask
      = (n == HOST_BITS_PER_WIDE_INT
--- 3838,3846 ----
  {
    gcc_assert ((x & 1) == 1);
  
!   /* The algorithm notes that the choice Y = X satisfies X*Y == 1 mod 2^3,
!      since X is odd.  Then each Newton-Raphson iteration doubles the number
!      of bits of significance in Y (Hensel's lemma).  */
  
    const unsigned HOST_WIDE_INT mask
      = (n == HOST_BITS_PER_WIDE_INT
diff -Nrcpad gcc-17-20260712/gcc/fortran/ChangeLog gcc-17-20260719/gcc/fortran/ChangeLog
*** gcc-17-20260712/gcc/fortran/ChangeLog	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/fortran/ChangeLog	Sun Jul 19 22:32:07 2026
***************
*** 1,3 ****
--- 1,51 ----
+ 2026-07-18  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/126058
+ 	* dump-parse-tree.cc (show_attr): Show details of
+ 	attr->allocated.
+ 
+ 2026-07-16  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	* types.def (BT_FN_VOID_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG): New.
+ 
+ 2026-07-16  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	PR fortran/126279
+ 	* trans-openmp.cc (gfc_trans_omp_clauses): Convert memspace constant
+ 	to an integer not to an external variable.
+ 
+ 2026-07-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/126058
+ 	* gfortran.h (enum var_allocated): New enum.
+ 	(symbol_attribute): Change member allocated to new enum.
+ 	(gfc_used_in_allocate_expr): Add argument how.
+ 	* interface.cc (gfc_compare_actual_formal): Mark variables
+ 	as allocated only when the formal arg is allocatable.
+ 	* intrinsic.cc (mark_args_as_used): Intrinsics do not allocate
+ 	their arguments.
+ 	* resolve.cc (find_unused_vs_set): Move warnings enabled with
+ 	-Wextra behind those enabled with -Wall. If a variable is
+ 	maybe allocated as an argument, mark it as such.
+ 	* symbol.cc (mark_vars_as_used): Always set location.
+ 	(gfc_used_in_allocate_expr): Add argument how. Use it.
+ 	(gfc_lvalue_allocated_at): Set sym->attr.allocated to ALLOCATED_ASSIGNMENT.
+ 
+ 2026-07-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	PR fortran/126234
+ 	* module.cc (read_module): Walk the symtree instead of
+ 	using gfc_find_symbol.
+ 
+ 2026-07-12  Steve Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/101951
+ 	PR fortran/101967
+ 	* match.cc (gfc_match_allocate): It is an error if the type-spec
+ 	derived type or the source expr has a coarray ultimate component.
+ 	Substitute 'typespec' with 'type-spec' in error messages for
+ 	consistency with standards.
+ 
  2026-07-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
  
  	PR fortran/126210
diff -Nrcpad gcc-17-20260712/gcc/fortran/dump-parse-tree.cc gcc-17-20260719/gcc/fortran/dump-parse-tree.cc
*** gcc-17-20260712/gcc/fortran/dump-parse-tree.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/fortran/dump-parse-tree.cc	Sun Jul 19 22:32:07 2026
*************** show_attr (symbol_attribute *attr, const
*** 1058,1065 ****
        gfc_internal_error ("Wrong value for value_set");
      }
  
!   if (attr->allocated)
!     fputs (" ALLOCATED", dumpfile);
  
    switch (attr->value_used)
      {
--- 1058,1077 ----
        gfc_internal_error ("Wrong value for value_set");
      }
  
!   switch (attr->allocated)
!     {
!     case ALLOCATED_ARG:
!       fputs (" ALLOCATED(ARG)", dumpfile);
!       break;
!     case ALLOCATED_ALLOCATE_STMT:
!       fputs(" ALLOCATED(ALLOCATE-STMT)", dumpfile);
!       break;
!     case ALLOCATED_ASSIGNMENT:
!       fputs (" ALLOCATED(ASSIGNMENT)", dumpfile);
!       break;
!     default:
!       break;
!     }
  
    switch (attr->value_used)
      {
*************** show_code_node (int level, gfc_code *c)
*** 3395,3400 ****
--- 3407,3419 ----
  
      case EXEC_ALLOCATE:
        fputs ("ALLOCATE ", dumpfile);
+ 
+       if (c->ext.alloc.ts.type != BT_UNKNOWN)
+ 	{
+ 	  show_typespec (&c->ext.alloc.ts);
+ 	  fputs (":: ", dumpfile);
+ 	}
+ 
        if (c->expr1)
  	{
  	  fputs (" STAT=", dumpfile);
diff -Nrcpad gcc-17-20260712/gcc/fortran/frontend-passes.cc gcc-17-20260719/gcc/fortran/frontend-passes.cc
*** gcc-17-20260712/gcc/fortran/frontend-passes.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/fortran/frontend-passes.cc	Sun Jul 19 22:32:07 2026
*************** gfc_expr_walker (gfc_expr **e, walk_expr
*** 5306,5313 ****
  	      WALK_SUBEXPR (a->expr);
  	    break;
  
- 	  case EXPR_STRUCTURE:
  	  case EXPR_ARRAY:
  	    for (c = gfc_constructor_first ((*e)->value.constructor); c;
  		 c = gfc_constructor_next (c))
  	      {
--- 5306,5319 ----
  	      WALK_SUBEXPR (a->expr);
  	    break;
  
  	  case EXPR_ARRAY:
+ 	    if ((*e)->ts.type == BT_CHARACTER)
+ 	      WALK_SUBEXPR ((*e)->ts.u.cl->length);
+ 
+ 	    gcc_fallthrough ();
+ 
+ 	  case EXPR_STRUCTURE:
+ 
  	    for (c = gfc_constructor_first ((*e)->value.constructor); c;
  		 c = gfc_constructor_next (c))
  	      {
*************** gfc_code_walker (gfc_code **c, walk_code
*** 5480,5485 ****
--- 5486,5496 ----
  	      continue;
  
  	    case EXEC_ALLOCATE:
+ 	      if (co->ext.alloc.ts.type == BT_CHARACTER)
+ 		WALK_SUBEXPR (co->ext.alloc.ts.u.cl->length);
+ 
+ 	      gcc_fallthrough();
+ 
  	    case EXEC_DEALLOCATE:
  	      {
  		gfc_alloc *a;
diff -Nrcpad gcc-17-20260712/gcc/fortran/gfortran.h gcc-17-20260719/gcc/fortran/gfortran.h
*** gcc-17-20260712/gcc/fortran/gfortran.h	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/fortran/gfortran.h	Sun Jul 19 22:32:07 2026
*************** enum value_used
*** 421,426 ****
--- 421,435 ----
    VALUE_USED
  };
  
+ /* How a variable is allocated.  */
+ enum var_allocated
+ {
+   ALLOCATED_NEVER = 0,
+   ALLOCATED_ARG,
+   ALLOCATED_ALLOCATE_STMT,
+   ALLOCATED_ASSIGNMENT
+ };
+ 
  /* Strings for all symbol attributes.  We use these for dumping the
     parse tree, in error messages, and also when reading and writing
     modules.  In symbol.cc.  */
*************** typedef struct
*** 1039,1045 ****
    ENUM_BITFIELD (value_used) value_used:3;
  
    /* Set if the symbol has been allocated in the current procedure.  */
!   unsigned allocated:1;
  
    /* Set if we already emitted a warning for this symbol and the
       middle-end should not add additional ones.  */
--- 1048,1054 ----
    ENUM_BITFIELD (value_used) value_used:3;
  
    /* Set if the symbol has been allocated in the current procedure.  */
!   ENUM_BITFIELD (var_allocated) allocated:2;
  
    /* Set if we already emitted a warning for this symbol and the
       middle-end should not add additional ones.  */
*************** void gfc_mark_lhs_as_used (gfc_expr *, l
*** 4013,4019 ****
  void gfc_value_used_expr (gfc_expr *, enum value_used);
  void gfc_value_set_and_used (gfc_expr *, locus *loc,
  			     enum value_set, enum value_used);
! void gfc_used_in_allocate_expr (gfc_expr *, locus *loc);
  void gfc_expr_set_at (gfc_expr *, locus *loc, enum value_set);
  
  
--- 4022,4028 ----
  void gfc_value_used_expr (gfc_expr *, enum value_used);
  void gfc_value_set_and_used (gfc_expr *, locus *loc,
  			     enum value_set, enum value_used);
! void gfc_used_in_allocate_expr (gfc_expr *, locus *loc, enum var_allocated);
  void gfc_expr_set_at (gfc_expr *, locus *loc, enum value_set);
  
  
diff -Nrcpad gcc-17-20260712/gcc/fortran/interface.cc gcc-17-20260719/gcc/fortran/interface.cc
*** gcc-17-20260712/gcc/fortran/interface.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/fortran/interface.cc	Sun Jul 19 22:32:07 2026
*************** gfc_compare_actual_formal (gfc_actual_ar
*** 4269,4289 ****
  	      {
  	      case INTENT_OUT:
  		{
- 		  gfc_symbol *s = e->symtree->n.sym;
  		  gfc_expr_set_at (e, &e->where, VALUE_INTENT_OUT);
  
- 		  /* INTENT(OUT) allocates variables as far as we know.  */
- 		  if (s->attr.allocatable)
- 		    s->attr.allocated = 1;
  		}
  		break;
  	      case INTENT_IN:
  		gfc_value_used_expr (e, VALUE_INTENT_IN);
  		break;
  	      case INTENT_INOUT:
  	      case INTENT_UNKNOWN:
  		gfc_value_set_and_used (e, &e->where, VALUE_ARG,
  					VALUE_MAYBE_USED);
  		break;
  	      }
  	  }
--- 4269,4292 ----
  	      {
  	      case INTENT_OUT:
  		{
  		  gfc_expr_set_at (e, &e->where, VALUE_INTENT_OUT);
+ 		  if (f->sym->attr.allocatable)
+ 		    gfc_used_in_allocate_expr (e, &e->where, ALLOCATED_ARG);
  
  		}
  		break;
+ 
  	      case INTENT_IN:
  		gfc_value_used_expr (e, VALUE_INTENT_IN);
  		break;
+ 
  	      case INTENT_INOUT:
  	      case INTENT_UNKNOWN:
  		gfc_value_set_and_used (e, &e->where, VALUE_ARG,
  					VALUE_MAYBE_USED);
+ 
+ 		if (f->sym->attr.allocatable)
+ 		  gfc_used_in_allocate_expr (e, &e->where, ALLOCATED_ARG);
  		break;
  	      }
  	  }
diff -Nrcpad gcc-17-20260712/gcc/fortran/intrinsic.cc gcc-17-20260719/gcc/fortran/intrinsic.cc
*** gcc-17-20260712/gcc/fortran/intrinsic.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/fortran/intrinsic.cc	Sun Jul 19 22:32:07 2026
*************** mark_args_as_used (gfc_intrinsic_arg *f,
*** 5029,5040 ****
  
  	    case INTENT_OUT:
  	      if (a->expr->expr_type == EXPR_VARIABLE)
! 		{
! 		  gfc_symbol *s = a->expr->symtree->n.sym;
! 		  gfc_expr_set_at (a->expr, &a->expr->where, VALUE_INTENT_OUT);
! 		  if (s->attr.allocatable)
! 		    s->attr.allocated = 1;
! 		}
  	      break;
  	    }
  	}
--- 5029,5035 ----
  
  	    case INTENT_OUT:
  	      if (a->expr->expr_type == EXPR_VARIABLE)
! 		gfc_expr_set_at (a->expr, &a->expr->where, VALUE_INTENT_OUT);
  	      break;
  	    }
  	}
diff -Nrcpad gcc-17-20260712/gcc/fortran/module.cc gcc-17-20260719/gcc/fortran/module.cc
*** gcc-17-20260712/gcc/fortran/module.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/fortran/module.cc	Sun Jul 19 22:32:07 2026
*************** read_module (void)
*** 6054,6066 ****
  	    continue;
  
  	  /* Skip re-importing a derived type already visible via host
! 	     association from the same module.  */
  	  if (!only_flag && !info->u.rsym.renamed
  		&& strcmp (name, module_name) != 0
  		&& gfc_current_ns->parent)
  	    {
! 	      gfc_symbol *host_sym;
! 	      gfc_find_symbol (name, gfc_current_ns, 1, &host_sym);
  	      if (host_sym && host_sym->attr.flavor == FL_DERIVED
  		  && host_sym->module
  		  && strcmp (host_sym->module, module_name) == 0)
--- 6054,6075 ----
  	    continue;
  
  	  /* Skip re-importing a derived type already visible via host
! 	     association from the same module.  Walk the symtree since
! 	     using gfc_find_symbol can give a wrong error.  */
  	  if (!only_flag && !info->u.rsym.renamed
  		&& strcmp (name, module_name) != 0
  		&& gfc_current_ns->parent)
  	    {
! 	      gfc_symbol *host_sym = NULL;
! 	      for (gfc_namespace *pns = gfc_current_ns; pns; pns = pns->parent)
! 		{
! 		  gfc_symtree *host_st = gfc_find_symtree (pns->sym_root, name);
! 		  if (host_st)
! 		    {
! 		      host_sym = host_st->n.sym;
! 		      break;
! 		    }
! 		}
  	      if (host_sym && host_sym->attr.flavor == FL_DERIVED
  		  && host_sym->module
  		  && strcmp (host_sym->module, module_name) == 0)
diff -Nrcpad gcc-17-20260712/gcc/fortran/resolve.cc gcc-17-20260719/gcc/fortran/resolve.cc
*** gcc-17-20260712/gcc/fortran/resolve.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/fortran/resolve.cc	Sun Jul 19 22:32:07 2026
*************** check_symbols:
*** 9755,9761 ****
      }
  
  success:
!   gfc_used_in_allocate_expr (e, &e->where);
  
    if (code->expr3)
      gfc_value_set_at (e->symtree->n.sym, &code->expr3->where, VALUE_VARDEF);
--- 9755,9761 ----
      }
  
  success:
!   gfc_used_in_allocate_expr (e, &e->where, ALLOCATED_ALLOCATE_STMT);
  
    if (code->expr3)
      gfc_value_set_at (e->symtree->n.sym, &code->expr3->where, VALUE_VARDEF);
*************** find_unused_vs_set (gfc_symbol *sym)
*** 20840,20863 ****
        || attr->volatile_ || attr->asynchronous || !attr->referenced)
      return;
  
-   if (warn_unused_intent_out && attr->value_set == VALUE_INTENT_OUT
-       && !var_value_is_used (sym))
-     {
-       gfc_warning (OPT_Wunused_intent_out, "Variable %qs passed to "
- 		   "INTENT(OUT) argument at %L but value never used",
- 		   sym->name, &sym->other_loc);
-       attr->warning_emitted = 1;
-       return;
-     }
- 
-   if (warn_unused_read && attr->value_set == VALUE_READ && !var_value_is_used (sym))
-     {
-       gfc_warning (OPT_Wunused_read, "Variable %qs read at %L but never "
- 		   "used", sym->name, &sym->other_loc);
-       attr->warning_emitted = 1;
-       return;
-     }
- 
    /* There is no allocation in sight, but the variable is used anyway.  This
       might be hidden behind PRESENT, but issue a warning nonetheless.  If
       people complain, we might want to make this to an extra option to be
--- 20840,20845 ----
*************** find_unused_vs_set (gfc_symbol *sym)
*** 20970,20984 ****
  	  attr->warning_emitted = 1;
  	  return;
  	}
!       if (attr->allocatable && attr->allocated && !var_value_is_used (sym))
  	{
! 	  gfc_warning (OPT_Wunused_but_set_variable_, "Variable %qs "
! 		       "allocated at %L but never used", sym->name,
! 		       &sym->extra_loc);
! 	  attr->warning_emitted = 1;
! 	  return;
  	}
      }
  }
  
  /* Run warn_unused_vs_set over a namespace recursively.  */
--- 20952,21001 ----
  	  attr->warning_emitted = 1;
  	  return;
  	}
!       if (attr->allocatable && !var_value_is_used (sym))
  	{
! 	  if (attr->allocated == ALLOCATED_ALLOCATE_STMT)
! 	    {
! 	      gfc_warning (OPT_Wunused_but_set_variable_, "Variable %qs "
! 			   "allocated at %L but never used", sym->name,
! 			   &sym->extra_loc);
! 	      attr->warning_emitted = 1;
! 	      return;
! 	    }
! 	  else if (attr->allocated == ALLOCATED_ARG)
! 	    {
! 	      gfc_warning (OPT_Wunused_but_set_variable_, "Variable %qs maybe "
! 			   "allocated as argument at %L but never used",
! 			   sym->name, &sym->extra_loc);
! 	      attr->warning_emitted = 1;
! 	      return;
! 	    }
  	}
      }
+ 
+   /* -Wunused-intent-out and -Wunused-read are enabled with -Wextra, so
+      check for these conditions at the end.  If one of the warnings
+      with -Wall triggered, we do not want to issue a different warrning
+      for the same variable if the user supplies -Wall -Wextra instead
+      of only -Wall.  */
+ 
+   if (warn_unused_intent_out && attr->value_set == VALUE_INTENT_OUT
+       && !var_value_is_used (sym))
+     {
+       gfc_warning (OPT_Wunused_intent_out, "Variable %qs passed to "
+ 		   "INTENT(OUT) argument at %L but value never used",
+ 		   sym->name, &sym->other_loc);
+       attr->warning_emitted = 1;
+       return;
+     }
+ 
+   if (warn_unused_read && attr->value_set == VALUE_READ && !var_value_is_used (sym))
+     {
+       gfc_warning (OPT_Wunused_read, "Variable %qs read at %L but never "
+ 		   "used", sym->name, &sym->other_loc);
+       attr->warning_emitted = 1;
+       return;
+     }
  }
  
  /* Run warn_unused_vs_set over a namespace recursively.  */
diff -Nrcpad gcc-17-20260712/gcc/fortran/symbol.cc gcc-17-20260719/gcc/fortran/symbol.cc
*** gcc-17-20260712/gcc/fortran/symbol.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/fortran/symbol.cc	Sun Jul 19 22:32:07 2026
*************** mark_vars_as_used (gfc_expr **e, int *wa
*** 5857,5864 ****
      return 0;
  
    sym->attr.value_used = how_used;
!   if (sym->other_loc.nextc == NULL)
!     sym->other_loc = expr->where;
  
    return 0;
  }
--- 5857,5863 ----
      return 0;
  
    sym->attr.value_used = how_used;
!   sym->other_loc = expr->where;
  
    return 0;
  }
*************** gfc_value_set_and_used (gfc_expr *expr,
*** 5894,5900 ****
  /* ALLOCATE (A(N)) means that N is used, but A is not marked as such.  */
  
  void
! gfc_used_in_allocate_expr (gfc_expr *expr, locus *loc)
  {
    gfc_symbol *sym;
    enum value_used prev_used;
--- 5893,5899 ----
  /* ALLOCATE (A(N)) means that N is used, but A is not marked as such.  */
  
  void
! gfc_used_in_allocate_expr (gfc_expr *expr, locus *loc, enum var_allocated how)
  {
    gfc_symbol *sym;
    enum value_used prev_used;
*************** gfc_used_in_allocate_expr (gfc_expr *exp
*** 5909,5921 ****
    gfc_value_used_expr (expr, VALUE_USED);
    sym->attr.value_used = prev_used;
    sym->other_loc = prev_loc;
!   sym->attr.allocated = 1;
  
    if (sym->extra_loc.nextc == NULL)
      sym->extra_loc = *loc;
  }
  
! /* Mark a symbol to allocated.  */
  
  bool
  gfc_lvalue_allocated_at (gfc_symbol *sym, locus *loc)
--- 5908,5924 ----
    gfc_value_used_expr (expr, VALUE_USED);
    sym->attr.value_used = prev_used;
    sym->other_loc = prev_loc;
! 
!   if (how <= sym->attr.allocated)
!     return;
! 
!   sym->attr.allocated = how;
  
    if (sym->extra_loc.nextc == NULL)
      sym->extra_loc = *loc;
  }
  
! /* Mark a symbol as allocated.  */
  
  bool
  gfc_lvalue_allocated_at (gfc_symbol *sym, locus *loc)
*************** gfc_lvalue_allocated_at (gfc_symbol *sym
*** 5923,5929 ****
    if (sym->other_loc.nextc == 0)
      sym->other_loc = *loc;
  
!   sym->attr.allocated = 1;
    return true;
  }
  
--- 5926,5932 ----
    if (sym->other_loc.nextc == 0)
      sym->other_loc = *loc;
  
!   sym->attr.allocated = ALLOCATED_ASSIGNMENT;
    return true;
  }
  
diff -Nrcpad gcc-17-20260712/gcc/fortran/trans-openmp.cc gcc-17-20260719/gcc/fortran/trans-openmp.cc
*** gcc-17-20260712/gcc/fortran/trans-openmp.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/fortran/trans-openmp.cc	Sun Jul 19 22:32:07 2026
*************** gfc_trans_omp_clauses (stmtblock_t *bloc
*** 5494,5502 ****
  	      OMP_CLAUSE_USES_ALLOCATORS_ALLOCATOR(node) = t;
  	      if (n->u.memspace_sym)
  		{
  		  n->u.memspace_sym->attr.referenced = true;
! 		  OMP_CLAUSE_USES_ALLOCATORS_MEMSPACE (node)
! 		    = gfc_get_symbol_decl (n->u.memspace_sym);
  		}
  	      if (n->u2.traits_sym)
  		{
--- 5494,5506 ----
  	      OMP_CLAUSE_USES_ALLOCATORS_ALLOCATOR(node) = t;
  	      if (n->u.memspace_sym)
  		{
+ 		  gcc_checking_assert (n->u.memspace_sym->attr.flavor
+ 				       == FL_PARAMETER
+ 				       && !n->u.memspace_sym->attr.dimension);
  		  n->u.memspace_sym->attr.referenced = true;
! 		  gfc_init_se (&se, NULL);
! 		  gfc_conv_expr (&se, n->u.memspace_sym->value);
! 		  OMP_CLAUSE_USES_ALLOCATORS_MEMSPACE (node) = se.expr;
  		}
  	      if (n->u2.traits_sym)
  		{
diff -Nrcpad gcc-17-20260712/gcc/fortran/types.def gcc-17-20260719/gcc/fortran/types.def
*** gcc-17-20260712/gcc/fortran/types.def	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/fortran/types.def	Sun Jul 19 22:32:07 2026
*************** DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_UINT_LON
*** 198,203 ****
--- 198,205 ----
  DEF_FUNCTION_TYPE_5 (BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
  		     BT_BOOL, BT_UINT, BT_PTR_ULONGLONG, BT_ULONGLONG,
  		     BT_PTR_ULONGLONG, BT_PTR_ULONGLONG)
+ DEF_FUNCTION_TYPE_5 (BT_FN_VOID_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG,
+ 		     BT_VOID, BT_ULONGLONG, BT_ULONGLONG, BT_ULONGLONG, BT_ULONGLONG, BT_ULONGLONG)
  
  DEF_FUNCTION_TYPE_6 (BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
                       BT_BOOL, BT_LONG, BT_LONG, BT_LONG, BT_LONG,
diff -Nrcpad gcc-17-20260712/gcc/function.cc gcc-17-20260719/gcc/function.cc
*** gcc-17-20260712/gcc/function.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/function.cc	Sun Jul 19 22:32:07 2026
*************** make_epilogue_seq (void)
*** 6091,6099 ****
  void
  thread_prologue_and_epilogue_insns (void)
  {
-   /* We need alias.  */
-   init_alias_analysis ();
- 
    df_analyze ();
  
    /* Can't deal with multiple successors of the entry block at the
--- 6091,6096 ----
*************** thread_prologue_and_epilogue_insns (void
*** 6326,6334 ****
        df_update_entry_block_defs ();
        df_update_exit_block_uses ();
      }
- 
-   /* Clean up.  */
-   end_alias_analysis ();
  }
  
  /* Reposition the prologue-end and epilogue-begin notes after
--- 6323,6328 ----
diff -Nrcpad gcc-17-20260712/gcc/gcc-diagnostic-spec.cc gcc-17-20260719/gcc/gcc-diagnostic-spec.cc
*** gcc-17-20260712/gcc/gcc-diagnostic-spec.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/gcc-diagnostic-spec.cc	Sun Jul 19 22:32:07 2026
*************** nowarn_spec_t::nowarn_spec_t (opt_code o
*** 99,105 ****
  
      case OPT_Wdangling_pointer_:
      case OPT_Wreturn_local_addr:
-     case OPT_Wuse_after_free:
      case OPT_Wuse_after_free_:
        m_bits = NW_DANGLING;
        break;
--- 99,104 ----
diff -Nrcpad gcc-17-20260712/gcc/gen-et-static.awk gcc-17-20260719/gcc/gen-et-static.awk
*** gcc-17-20260712/gcc/gen-et-static.awk	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/gen-et-static.awk	Sun Jul 19 22:32:07 2026
***************
*** 0 ****
--- 1,77 ----
+ #  Copyright (C) 2026 Free Software Foundation, Inc.
+ #
+ # This program is free software; you can redistribute it and/or modify it
+ # under the terms of the GNU General Public License as published by the
+ # Free Software Foundation; either version 3, or (at your option) any
+ # later version.
+ #
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ # GNU General Public License for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+ # along with this program; see the file COPYING3.  If not see
+ # <http://www.gnu.org/licenses/>.
+ 
+ # This Awk script takes input file (usually auto-host.h) and effective target
+ # definitions from preprocessed et-static.def, and writes et-static.exp
+ # implementing checks for select effective-target keywords.
+ #
+ # Usage: awk -v etlist=<path to etlist> -f gen-et-static.awk <input file>
+ 
+ BEGIN {
+     input = ARGV[1]
+ 
+     SAVEFS=FS
+     FS=SUBSEP
+ 
+     # Read preprocessed et-static.def.  Each line consists of
+     # <effective-target> <macro> <comment>.
+     while ((getline < etlist) > 0) {
+ 	et[$2] = $1
+ 	comment[$2] = $3
+     }
+     close(etlist)
+ 
+     FS=SAVEFS
+ }
+ 
+ function emit_effective_target(name, value, comment)
+ {
+     print "";
+     print "# " comment;
+     print "proc check_effective_target_" name " { } {";
+     print "    return " value;
+     print "}";
+ }
+ 
+ # #define <MACRO> <value>
+ /^#define/ { value[$2] = $3 }
+ 
+ # /* #undef <MACRO> */
+ /^\/\* #undef/ { value[$3] = 0 }
+ 
+ END {
+     print "# This file is auto-generated by gen-et-static.awk from " input
+     print "# and et-static.def."
+ 
+     for (macro in et) {
+ 	if (macro in value) {
+ 	    val = value[macro]
+ 	    # Characters, strings and tri-state macros would need
+ 	    # special handling.
+ 	    if (val !~ /^[01]/) {
+ 	        print "#error non-0/1/#undef value " val " for " macro
+ 	        exit(1)
+ 	    }
+ 	} else {
+ 	    # Treat missing macros as unsupported.
+ 	    print "#warning definition for " macro " missing"
+ 	    val = 0
+ 	}
+ 
+ 	emit_effective_target(et[macro], val,
+ 			      "Return 1 if " comment[macro] ", 0 otherwise.");
+     }
+ }
diff -Nrcpad gcc-17-20260712/gcc/gen-pass-instances.awk gcc-17-20260719/gcc/gen-pass-instances.awk
*** gcc-17-20260712/gcc/gen-pass-instances.awk	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/gen-pass-instances.awk	Sun Jul 19 22:32:07 2026
*************** function replace_pass(line, fnname,			nu
*** 167,183 ****
    lines[num] = new_line;
  }
  
! /INSERT_PASS_AFTER \(.+\)/ {
    insert_pass($0, "INSERT_PASS_AFTER", 1);
    next;
  }
  
! /INSERT_PASS_BEFORE \(.+\)/ {
    insert_pass($0, "INSERT_PASS_BEFORE", 0);
    next;
  }
  
! /REPLACE_PASS \(.+\)/ {
    replace_pass($0, "REPLACE_PASS");
    next;
  }
--- 167,183 ----
    lines[num] = new_line;
  }
  
! /^[[:blank:]]*INSERT_PASS_AFTER \(.+\)/ {
    insert_pass($0, "INSERT_PASS_AFTER", 1);
    next;
  }
  
! /^[[:blank:]]*INSERT_PASS_BEFORE \(.+\)/ {
    insert_pass($0, "INSERT_PASS_BEFORE", 0);
    next;
  }
  
! /^[[:blank:]]*REPLACE_PASS \(.+\)/ {
    replace_pass($0, "REPLACE_PASS");
    next;
  }
diff -Nrcpad gcc-17-20260712/gcc/gimple-fold.cc gcc-17-20260719/gcc/gimple-fold.cc
*** gcc-17-20260712/gcc/gimple-fold.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/gimple-fold.cc	Sun Jul 19 22:32:07 2026
*************** gimple_fold_builtin_memset (gimple_stmt_
*** 1478,1487 ****
    if (! tree_fits_uhwi_p (len))
      return false;
  
    if (TREE_CODE (c) != INTEGER_CST)
      return false;
  
-   tree dest = gimple_call_arg (stmt, 0);
    tree var = dest;
    if (TREE_CODE (var) != ADDR_EXPR)
      return false;
--- 1478,1547 ----
    if (! tree_fits_uhwi_p (len))
      return false;
  
+   length = tree_to_uhwi (len);
+ 
+   tree dest = gimple_call_arg (stmt, 0);
+   if (length == 1
+       && POINTER_TYPE_P (TREE_TYPE (dest)))
+     {
+       /* Keep the original call until object-size analysis has inspected it.  */
+       if (!(cfun->curr_properties & PROP_objsz))
+ 	return false;
+ 
+       /* Detect out-of-bounds accesses without issuing warnings.
+ 	 Avoid folding out-of-bounds accesses but to avoid false
+ 	 positives for unreachable code defer warning until after
+ 	 DCE has worked its magic.
+ 	 -Wrestrict is still diagnosed.  */
+       if (int warning = check_bounds_or_overlap (as_a <gcall *>(stmt),
+ 						 dest, NULL_TREE, len,
+ 						 NULL_TREE, false, false))
+ 	if (warning != OPT_Wrestrict)
+ 	  return false;
+ 
+       etype = unsigned_char_type_node;
+       tree ptype = TREE_TYPE (TREE_TYPE (dest));
+       if (TYPE_VOLATILE (ptype))
+ 	etype = build_qualified_type (etype, TYPE_QUAL_VOLATILE);
+ 
+       location_t loc = gimple_location (stmt);
+       tree cval_tree;
+       if (TREE_CODE (c) == INTEGER_CST)
+ 	cval_tree = fold_convert (etype, c);
+       else
+ 	cval_tree = gimple_convert (gsi, true, GSI_SAME_STMT, loc, etype, c);
+ 
+       /* Build accesses at offset zero with a ref-all character type.  */
+       tree off0
+ 	= build_int_cst (build_pointer_type_for_mode (char_type_node,
+ 						      ptr_mode, true), 0);
+       tree var = fold_build2_loc (loc, MEM_REF, etype, dest, off0);
+       gimple *store = gimple_build_assign (var, cval_tree);
+       gimple_move_vops (store, stmt);
+       gimple_set_location (store, loc);
+       copy_warning (store, stmt);
+ 
+       tree lhs = gimple_call_lhs (stmt);
+       if (!lhs)
+ 	{
+ 	  gsi_replace (gsi, store, false);
+ 	  return true;
+ 	}
+ 
+       gsi_insert_before (gsi, store, GSI_SAME_STMT);
+       tree ret = dest;
+       if (!useless_type_conversion_p (TREE_TYPE (lhs), TREE_TYPE (dest)))
+ 	ret = gimple_convert (gsi, true, GSI_SAME_STMT, loc,
+ 			      TREE_TYPE (lhs), dest);
+       gimple *asgn = gimple_build_assign (lhs, ret);
+       gsi_replace (gsi, asgn, false);
+ 
+       return true;
+     }
+ 
    if (TREE_CODE (c) != INTEGER_CST)
      return false;
  
    tree var = dest;
    if (TREE_CODE (var) != ADDR_EXPR)
      return false;
*************** gimple_fold_builtin_memset (gimple_stmt_
*** 1502,1508 ****
    if (! var_decl_component_p (var))
      return false;
  
-   length = tree_to_uhwi (len);
    if (GET_MODE_SIZE (SCALAR_INT_TYPE_MODE (etype)) != length
        || (GET_MODE_PRECISION (SCALAR_INT_TYPE_MODE (etype))
  	  != GET_MODE_BITSIZE (SCALAR_INT_TYPE_MODE (etype)))
--- 1562,1567 ----
diff -Nrcpad gcc-17-20260712/gcc/gimple-lower-bitint.cc gcc-17-20260719/gcc/gimple-lower-bitint.cc
*** gcc-17-20260712/gcc/gimple-lower-bitint.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/gimple-lower-bitint.cc	Sun Jul 19 22:32:07 2026
*************** along with GCC; see the file COPYING3.
*** 56,61 ****
--- 56,63 ----
  #include "ubsan.h"
  #include "stor-layout.h"
  #include "gimple-lower-bitint.h"
+ #include "attribs.h"
+ #include "asan.h"
  
  /* Split BITINT_TYPE precisions in 4 categories.  Small _BitInt, where
     target hook says it is a single limb, middle _BitInt which per ABI
*************** build_bitint_stmt_ssa_conflicts (gimple
*** 7026,7033 ****
        case IFN_SUB_OVERFLOW:
        case IFN_UBSAN_CHECK_ADD:
        case IFN_UBSAN_CHECK_SUB:
-       case IFN_MUL_OVERFLOW:
-       case IFN_UBSAN_CHECK_MUL:
  	if (bitint_big_endian)
  	  {
  	    lhs = gimple_call_lhs (stmt);
--- 7028,7033 ----
*************** build_bitint_stmt_ssa_conflicts (gimple
*** 7035,7040 ****
--- 7035,7042 ----
  	      muldiv_p = true;
  	  }
  	break;
+       case IFN_MUL_OVERFLOW:
+       case IFN_UBSAN_CHECK_MUL:
        case IFN_BSWAP:
        case IFN_BITREVERSE:
  	lhs = gimple_call_lhs (stmt);
*************** gimple_lower_bitint (void)
*** 7319,7324 ****
--- 7321,7360 ----
  	  free_dominance_info (CDI_DOMINATORS);
  	  free_dominance_info (CDI_POST_DOMINATORS);
  	  mark_virtual_operands_for_renaming (cfun);
+ 	  cleanup_tree_cfg (TODO_update_ssa);
+ 	}
+     }
+ 
+   if (flag_sanitize & (SANITIZE_ADDRESS | SANITIZE_HWADDRESS))
+     {
+       hash_map<tree, tree> shadow_vars_mapping;
+       bool need_commit_edge_insert = false;
+       bool any_asan_poison = false;
+       for (unsigned j = 0; j < num_ssa_names; ++j)
+ 	{
+ 	  tree s = ssa_name (j);
+ 	  if (s == NULL)
+ 	    continue;
+ 	  tree type = TREE_TYPE (s);
+ 	  if (BITINT_TYPE_P (type)
+ 	      && gimple_call_internal_p (SSA_NAME_DEF_STMT (s),
+ 					 IFN_ASAN_POISON)
+ 	      && bitint_precision_kind (type) >= bitint_prec_large)
+ 	    {
+ 	      any_asan_poison = true;
+ 	      gimple_stmt_iterator gsi = gsi_for_stmt (SSA_NAME_DEF_STMT (s));
+ 	      asan_expand_poison_ifn (&gsi, &need_commit_edge_insert,
+ 				      shadow_vars_mapping);
+ 	    }
+ 	}
+       if (any_asan_poison)
+ 	{
+ 	  if (need_commit_edge_insert)
+ 	    gsi_commit_edge_inserts ();
+ 	  i = 0;
+ 	  free_dominance_info (CDI_DOMINATORS);
+ 	  free_dominance_info (CDI_POST_DOMINATORS);
+ 	  mark_virtual_operands_for_renaming (cfun);
  	  cleanup_tree_cfg (TODO_update_ssa);
  	}
      }
diff -Nrcpad gcc-17-20260712/gcc/gimple-range-cache.cc gcc-17-20260719/gcc/gimple-range-cache.cc
*** gcc-17-20260712/gcc/gimple-range-cache.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/gimple-range-cache.cc	Sun Jul 19 22:32:07 2026
*************** ranger_cache::get_global_range (vrange &
*** 1116,1125 ****
  void
  ranger_cache::mark_stale (tree name)
  {
!   // Only mark it as stale if it has been processed. If it has no range
!   // it will be calculated at the next request anyway.
!   if (m_globals.has_range (name))
!     bitmap_set_bit (m_stale, SSA_NAME_VERSION (name));
  }
  
  // Get the global range for NAME, and return in R.  Return false if the
--- 1116,1132 ----
  void
  ranger_cache::mark_stale (tree name)
  {
!   if (SSA_NAME_IS_DEFAULT_DEF (name))
!     {
!       // Default defs have no DEF to recalculate, just create a new timestamp.
!       m_temporal->set_timestamp_stored (name);
!     }
!   else if (m_globals.has_range (name))
!     {
!       // Otherwise Only mark it as stale if it has been processed. If it has no
!       // range it will be calculated at the next request anyway.
!       bitmap_set_bit (m_stale, SSA_NAME_VERSION (name));
!     }
  }
  
  // Get the global range for NAME, and return in R.  Return false if the
diff -Nrcpad gcc-17-20260712/gcc/gimple-range-infer.cc gcc-17-20260719/gcc/gimple-range-infer.cc
*** gcc-17-20260712/gcc/gimple-range-infer.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/gimple-range-infer.cc	Sun Jul 19 22:32:07 2026
*************** infer_range_manager::add_range (tree nam
*** 457,462 ****
--- 457,464 ----
       fprintf (dump_file, "\n");
     }
  
+   get_range_query (cfun)->update_range_info (name);
+ 
    // If NAME already has a range, intersect them and done.
    exit_range *ptr = m_on_exit[bb->index].find_ptr (name);
    if (ptr)
diff -Nrcpad gcc-17-20260712/gcc/gimple-ssa-pta-constraints.cc gcc-17-20260719/gcc/gimple-ssa-pta-constraints.cc
*** gcc-17-20260712/gcc/gimple-ssa-pta-constraints.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/gimple-ssa-pta-constraints.cc	Sun Jul 19 22:32:07 2026
*************** find_func_aliases_for_call (struct funct
*** 2150,2156 ****
--- 2150,2158 ----
  	 such operator, then the effects for PTA (in particular
  	 the escaping of the pointer) can be ignored.  */
        else if (fndecl
+ 	       && flag_assume_sane_operators_new_delete
  	       && DECL_IS_OPERATOR_DELETE_P (fndecl)
+ 	       && DECL_IS_REPLACEABLE_OPERATOR (fndecl)
  	       && gimple_call_from_new_or_delete (t))
  	;
        else
diff -Nrcpad gcc-17-20260712/gcc/gimple-ssa-warn-access.cc gcc-17-20260719/gcc/gimple-ssa-warn-access.cc
*** gcc-17-20260712/gcc/gimple-ssa-warn-access.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/gimple-ssa-warn-access.cc	Sun Jul 19 22:32:07 2026
*************** pass_waccess::warn_invalid_pointer (tree
*** 3992,3998 ****
        if (!var)
  	ref = NULL_TREE;
        /* Don't warn for cases like when a cdtor returns 'this' on ARM.  */
!       else if (warning_suppressed_p (var, OPT_Wuse_after_free))
  	return;
        else if (DECL_ARTIFICIAL (var))
  	ref = NULL_TREE;
--- 3992,3998 ----
        if (!var)
  	ref = NULL_TREE;
        /* Don't warn for cases like when a cdtor returns 'this' on ARM.  */
!       else if (warning_suppressed_p (var, OPT_Wuse_after_free_))
  	return;
        else if (DECL_ARTIFICIAL (var))
  	ref = NULL_TREE;
*************** pass_waccess::warn_invalid_pointer (tree
*** 4014,4031 ****
        if (!m_early_checks_p
  	  || (equality && warn_use_after_free < 3)
  	  || (maybe && warn_use_after_free < 2)
! 	  || warning_suppressed_p (use_stmt, OPT_Wuse_after_free))
  	return;
  
        const tree inval_decl = gimple_call_fndecl (inval_stmt);
  
        auto_diagnostic_group d;
!       if ((ref && warning_at (use_loc, OPT_Wuse_after_free,
  			      (maybe
  			       ? G_("pointer %qE may be used after %qD")
  			       : G_("pointer %qE used after %qD")),
  			      ref, inval_decl))
! 	  || (!ref && warning_at (use_loc, OPT_Wuse_after_free,
  			      (maybe
  			       ? G_("pointer may be used after %qD")
  			       : G_("pointer used after %qD")),
--- 4014,4031 ----
        if (!m_early_checks_p
  	  || (equality && warn_use_after_free < 3)
  	  || (maybe && warn_use_after_free < 2)
! 	  || warning_suppressed_p (use_stmt, OPT_Wuse_after_free_))
  	return;
  
        const tree inval_decl = gimple_call_fndecl (inval_stmt);
  
        auto_diagnostic_group d;
!       if ((ref && warning_at (use_loc, OPT_Wuse_after_free_,
  			      (maybe
  			       ? G_("pointer %qE may be used after %qD")
  			       : G_("pointer %qE used after %qD")),
  			      ref, inval_decl))
! 	  || (!ref && warning_at (use_loc, OPT_Wuse_after_free_,
  			      (maybe
  			       ? G_("pointer may be used after %qD")
  			       : G_("pointer used after %qD")),
*************** pass_waccess::warn_invalid_pointer (tree
*** 4033,4039 ****
  	{
  	  location_t loc = gimple_location (inval_stmt);
  	  inform (loc, "call to %qD here", inval_decl);
! 	  suppress_warning (use_stmt, OPT_Wuse_after_free);
  	}
        return;
      }
--- 4033,4039 ----
  	{
  	  location_t loc = gimple_location (inval_stmt);
  	  inform (loc, "call to %qD here", inval_decl);
! 	  suppress_warning (use_stmt, OPT_Wuse_after_free_);
  	}
        return;
      }
diff -Nrcpad gcc-17-20260712/gcc/gimplify.cc gcc-17-20260719/gcc/gimplify.cc
*** gcc-17-20260712/gcc/gimplify.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/gimplify.cc	Sun Jul 19 22:32:07 2026
*************** gimplify_omp_workshare (tree *expr_p, gi
*** 18990,18995 ****
--- 18990,19035 ----
        stmt = gimple_build_omp_scope (body, OMP_CLAUSES (expr));
        break;
      case OMP_TARGET:
+       /* Handle 'device_type(nohost)'.  */
+       if (tree c = omp_find_clause (OMP_CLAUSES (expr), OMP_CLAUSE_DEVICE_TYPE))
+ 	if (OMP_CLAUSE_DEVICE_TYPE_KIND (c) == OMP_CLAUSE_DEVICE_TYPE_NOHOST)
+ 	  {
+ 	    location_t loc = gimple_location (body);
+ 	    tree fn = builtin_decl_explicit (BUILT_IN_OMP_IS_INITIAL_DEVICE);
+ 	    fn = build_call_expr_loc (loc, fn, 0);
+ 	    tree err = builtin_decl_explicit (BUILT_IN_GOMP_ERROR);
+ 	    const char *str = "Executing device-type 'nohost' target region "
+ 			      "on the host";
+ 	    const int len = strlen (str) + 1;
+ 	    tree msg = build_string (len, str);
+ 	    TREE_TYPE (msg) = build_array_type_nelts (char_type_node, len);
+ 	    TREE_READONLY (msg) = 1;
+ 	    TREE_STATIC (msg) = 1;
+ 	    msg = build_fold_addr_expr (msg);
+ 	    tree msglen = fold_build2 (MINUS_EXPR, size_type_node,
+ 				       build_all_ones_cst (size_type_node),
+ 				       size_one_node);
+ 	    err = build_call_expr_loc (loc, err, 2, msg, msglen);
+ 	    tree l1 = create_artificial_label (UNKNOWN_LOCATION);
+ 	    tree l2 = create_artificial_label (UNKNOWN_LOCATION);
+ 	    tree l3 = create_artificial_label (UNKNOWN_LOCATION);
+ 
+ 	    gimple_seq new_body = NULL;
+ 
+ 	    gimplify_expr (&fn, &new_body, NULL, is_gimple_val, fb_rvalue);
+ 	    gcond *cond = gimple_build_cond (NE_EXPR, fn,
+ 					     build_int_cst (TREE_TYPE (fn), 0),
+ 					     l1, l2);
+ 	    gimplify_seq_add_stmt (&new_body, cond);
+ 	    gimplify_seq_add_stmt (&new_body, gimple_build_label (l1));
+ 	    gimplify_and_add (err, &new_body);
+ 	    gimplify_seq_add_stmt (&new_body, gimple_build_goto (l3));
+ 	    gimplify_seq_add_stmt (&new_body, gimple_build_label (l2));
+ 	    gimple_seq_add_seq (&new_body, body);
+ 	    gimplify_seq_add_stmt (&new_body, gimple_build_label (l3));
+ 	    body = gimple_build_bind (NULL_TREE, new_body, make_node (BLOCK));
+ 	    gimple_set_location (body, loc);
+ 	  }
        stmt = gimple_build_omp_target (body, GF_OMP_TARGET_KIND_REGION,
  				      OMP_CLAUSES (expr), iterator_loops_seq);
        break;
diff -Nrcpad gcc-17-20260712/gcc/ifcvt.cc gcc-17-20260719/gcc/ifcvt.cc
*** gcc-17-20260712/gcc/ifcvt.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/ifcvt.cc	Sun Jul 19 22:32:07 2026
*************** static bool noce_try_ifelse_collapse (st
*** 781,786 ****
--- 781,787 ----
  static bool noce_try_store_flag (struct noce_if_info *);
  static bool noce_try_addcc (struct noce_if_info *);
  static bool noce_try_store_flag_constants (struct noce_if_info *);
+ static bool noce_try_shifted_store_flag (struct noce_if_info *);
  static bool noce_try_store_flag_mask (struct noce_if_info *);
  static rtx noce_emit_cmove (struct noce_if_info *, rtx, enum rtx_code, rtx,
  			    rtx, rtx, rtx, rtx = NULL, rtx = NULL);
*************** noce_try_inverse_constants (struct noce_
*** 1558,1563 ****
--- 1559,1703 ----
    return false;
  }
  
+ /*  Check if OP is supported by conditional zero based if conversion,
+     returning TRUE if satisfied otherwise FALSE.
+ 
+     OP is the operation to check.  */
+ 
+ static bool
+ noce_cond_zero_binary_op_supported (rtx op)
+ {
+   enum rtx_code opcode = GET_CODE (op);
+ 
+   if (opcode == PLUS || opcode == MINUS || opcode == IOR || opcode == XOR
+       || opcode == ASHIFT || opcode == ASHIFTRT || opcode == LSHIFTRT
+       || opcode == ROTATE || opcode == ROTATERT || opcode == AND)
+     return true;
+ 
+   return false;
+ }
+ 
+ /* Convert "if (test) x = a; else x = a OP c  " where c is 2^n.
+ 
+    We can shift the output of a set flag insn left to generate 2^n
+    cheaply, then apply OP unconditionally.  This works even if the
+    target does not have a conditional zero idiom.  On targets such
+    as RISC-V this sequence may also encode better.
+ 
+    This is based on noce_try_store_flag_constants.  */
+ 
+ static bool
+ noce_try_shifted_store_flag (struct noce_if_info *if_info)
+ {
+   rtx target;
+   rtx_insn *seq;
+   machine_mode mode = GET_MODE (if_info->x);
+   rtx common = NULL_RTX;
+   rtx_code code = UNKNOWN;
+ 
+   if (STORE_FLAG_VALUE != 1)
+     return false;
+ 
+   if (!noce_simple_bbs (if_info))
+     return false;
+ 
+   rtx a = if_info->a;
+   rtx b = if_info->b;
+ 
+   /* Most binary operators are allowed, essentially the same set
+      as the condzero arithmetic paths, with the exception of AND
+      which could be handled if we were inclined.  */
+   int shiftval;
+   bool reversed = false;
+   if (noce_cond_zero_binary_op_supported (a)
+       && GET_CODE (a) != AND
+       && GET_CODE (b) == REG
+       && rtx_equal_p (XEXP (a, 0), b)
+       && CONST_INT_P (XEXP (a, 1))
+       && pow2p_hwi (INTVAL (XEXP (a, 1)))
+       && noce_reversed_cond_code (if_info) != UNKNOWN)
+     {
+       code = GET_CODE (a);
+       common = XEXP (a, 0);
+       shiftval = exact_log2 (INTVAL (XEXP (a, 1)));
+ 
+       /* When the condition is true, we branch around A and thus we want
+ 	 the condition reversed from what you might expect.  */
+       reversed = true;
+     }
+   else if (noce_cond_zero_binary_op_supported (b)
+ 	   && GET_CODE (b) != AND
+ 	   && GET_CODE (a) == REG
+ 	   && rtx_equal_p (XEXP (b, 0), a)
+ 	   && CONST_INT_P (XEXP (b, 1))
+ 	   && pow2p_hwi (INTVAL (XEXP (b, 1))))
+     {
+       code = GET_CODE (b);
+       common = XEXP (b, 0);
+       shiftval = exact_log2 (INTVAL (XEXP (b, 1)));
+     }
+ 
+ 
+   /* If CODE hasn't been reset, then the basic expression form was wrong and
+      we can not optimize.  */
+   if (code == UNKNOWN)
+     return false;
+ 
+   start_sequence ();
+ 
+   /* If X and COMMON are the same, then we're going to need a temporary.  */
+   if (common && rtx_equal_p (common, if_info->x))
+     {
+       common = gen_reg_rtx (mode);
+       noce_emit_move_insn (common, if_info->x);
+     }
+ 
+   target = noce_emit_store_flag (if_info, if_info->x, reversed, 1);
+   if (!target)
+     {
+       end_sequence ();
+       return false;
+     }
+ 
+   /* Right now TARGET has the value 1/0.  A left shift will produce the
+      target value.  Unnecessary if the shift value is zero.  */
+   if (shiftval != 0)
+     target = expand_simple_binop (mode, ASHIFT, target,
+ 				  GEN_INT (shiftval),
+ 				  NULL_RTX, 0, OPTAB_WIDEN);
+ 
+   if (!target)
+     {
+       end_sequence ();
+       return false;
+     }
+ 
+   /* Now we just need to apply the code to COMMON and TARGET.  */
+   target = expand_simple_binop (mode, code,
+ 				common, target,
+ 				NULL_RTX, 0, OPTAB_WIDEN);
+ 
+   if (!target)
+     {
+       end_sequence ();
+       return false;
+     }
+ 
+   /* If necessary, store the result into the proper destination.  */
+   if (target != if_info->x)
+     noce_emit_move_insn (if_info->x, target);
+ 
+   seq = end_ifcvt_sequence (if_info);
+   if (!seq || !targetm.noce_conversion_profitable_p (seq, if_info))
+     return false;
+ 
+   emit_insn_before_setloc (seq, if_info->jump,
+ 			   INSN_LOCATION (if_info->insn_a));
+   if_info->transform_name = "noce_try_shifted_store_flag";
+ 
+   return true;
+ }
+ 
  
  /* Convert "if (test) x = a; else x = b", for A and B constant.
     Also allow A = y + c1, B = y + c2, with a common y between A
*************** noce_try_sign_mask (struct noce_if_info
*** 3167,3190 ****
    return true;
  }
  
- /*  Check if OP is supported by conditional zero based if conversion,
-     returning TRUE if satisfied otherwise FALSE.
- 
-     OP is the operation to check.  */
- 
- static bool
- noce_cond_zero_binary_op_supported (rtx op)
- {
-   enum rtx_code opcode = GET_CODE (op);
- 
-   if (opcode == PLUS || opcode == MINUS || opcode == IOR || opcode == XOR
-       || opcode == ASHIFT || opcode == ASHIFTRT || opcode == LSHIFTRT
-       || opcode == ROTATE || opcode == ROTATERT || opcode == AND)
-     return true;
- 
-   return false;
- }
- 
  /*  Helper function to return REG itself,
      otherwise NULL_RTX for other RTX_CODE.  */
  
--- 3307,3312 ----
*************** noce_process_if_block (struct noce_if_in
*** 4550,4555 ****
--- 4672,4680 ----
    if (!targetm.have_conditional_execution ()
        && noce_try_store_flag_constants (if_info))
      goto success;
+   if (!targetm.have_conditional_execution ()
+       && noce_try_shifted_store_flag (if_info))
+     goto success;
    if (noce_try_sign_bit_splat (if_info))
      goto success;
    if (!targetm.have_conditional_execution ()
diff -Nrcpad gcc-17-20260712/gcc/input.cc gcc-17-20260719/gcc/input.cc
*** gcc-17-20260712/gcc/input.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/input.cc	Sun Jul 19 22:32:07 2026
*************** test_accessing_ordinary_linemaps (const
*** 1392,1397 ****
--- 1392,1419 ----
    source_range src_range = get_range_from_loc (line_table, range_c_b_d);
    ASSERT_EQ (loc_b, src_range.m_start);
    ASSERT_EQ (loc_d, src_range.m_finish);
+ 
+   /* Verify raw line map usage.  The map should have the requested properties,
+      irrespective of limits like LINE_MAP_MAX_LOCATION_WITH_COLS.  */
+   for (int sysp = 0; sysp != 3; ++sysp)
+     {
+       constexpr int column_bits = 8, range_bits = 7;
+       const int line = 1 + sysp;
+       const auto map = linemap_add_raw_map (line_table, LC_RENAME,
+ 					    line_table->highest_location + 1,
+ 					    sysp, column_bits + range_bits,
+ 					    range_bits, "foo2.c", line, 1);
+       ASSERT_NE (map, nullptr);
+       ASSERT_EQ (map->reason, LC_RENAME);
+       ASSERT_EQ (map->m_column_and_range_bits, column_bits + range_bits);
+       ASSERT_EQ (map->m_range_bits, range_bits);
+       const line_map_uint_t col = 200 + sysp;
+       const location_t loc = MAP_START_LOCATION (map) + (col << range_bits);
+       ASSERT_GT (loc, line_table->highest_line);
+       ASSERT_LT (loc, line_table->highest_location);
+       ASSERT_EQ (in_system_header_at (loc), sysp);
+       assert_loceq ("foo2.c", line, col, loc);
+     }
  }
  
  /* Verify various properties of UNKNOWN_LOCATION.  */
diff -Nrcpad gcc-17-20260712/gcc/ipa-prop.cc gcc-17-20260719/gcc/ipa-prop.cc
*** gcc-17-20260712/gcc/ipa-prop.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/ipa-prop.cc	Sun Jul 19 22:32:07 2026
*************** skip_a_safe_conversion_op (tree t)
*** 2480,2497 ****
    return t;
  }
  
- /* Initializes ipa_edge_args summary of CBE given its callback-carrying edge.
-    This primarily means allocating the correct amount of jump functions.  */
- 
- static inline void
- init_callback_edge_summary (struct cgraph_edge *cbe, tree attr)
- {
-   ipa_edge_args *cb_args = ipa_edge_args_sum->get_create (cbe);
-   size_t jf_vec_length = callback_num_args(attr);
-   vec_safe_grow_cleared (cb_args->jump_functions,
- 			 jf_vec_length, true);
- }
- 
  /* Compute jump function for all arguments of callsite CS and insert the
     information in the jump_functions array in the ipa_edge_args corresponding
     to this callsite.  */
--- 2480,2485 ----
*************** ipa_compute_jump_functions_for_edge (str
*** 2631,2637 ****
  		    }
  
  		  /* If a callback attribute describing this pointer is found,
! 			   create a callback edge to the pointee function to
  		     allow for further optimizations.  */
  		  if (callback_attr)
  		    {
--- 2619,2625 ----
  		    }
  
  		  /* If a callback attribute describing this pointer is found,
! 		     create a callback edge to the pointee function to
  		     allow for further optimizations.  */
  		  if (callback_attr)
  		    {
*************** ipa_compute_jump_functions_for_edge (str
*** 2640,2646 ****
  		      unsigned callback_id = n;
  		      cgraph_edge *cbe
  			= cs->make_callback (kernel_node, callback_id);
- 		      init_callback_edge_summary (cbe, callback_attr);
  		      callback_edges.safe_push (cbe);
  		    }
  		}
--- 2628,2633 ----
*************** ipa_edge_args_sum_t::duplicate (cgraph_e
*** 5151,5156 ****
--- 5138,5155 ----
        new_args->jump_functions = NULL;
        return;
      }
+ 
+   if (src->has_callback && dst->callback)
+     {
+       gcc_assert (src->caller == dst->caller);
+       tree attr = callback_fetch_attr_by_edge (dst, src);
+       unsigned arg_count = callback_num_args (attr);
+       vec_safe_grow_cleared (new_args->jump_functions, arg_count, true);
+       /* Duplication of jump functions is handled separately for callback
+ 	 pairs.  */
+       return;
+     }
+ 
    vec_safe_grow_cleared (new_args->jump_functions,
  			 old_args->jump_functions->length (), true);
  
diff -Nrcpad gcc-17-20260712/gcc/lra-constraints.cc gcc-17-20260719/gcc/lra-constraints.cc
*** gcc-17-20260712/gcc/lra-constraints.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/lra-constraints.cc	Sun Jul 19 22:32:07 2026
*************** combine_reload_insn (rtx_insn *from, rtx
*** 5885,5890 ****
--- 5885,5938 ----
    return false;
  }
  
+ static bool
+ virtual_reg_p (const_rtx reg)
+ {
+   return (VIRTUAL_REGISTER_P (reg)
+ 	  || (REGNO(reg) == ARG_POINTER_REGNUM
+ 	      && !HARD_FRAME_POINTER_IS_ARG_POINTER)
+ 	  || (REGNO(reg) == FRAME_POINTER_REGNUM
+ 	      && !HARD_FRAME_POINTER_IS_FRAME_POINTER));
+ }
+ 
+ /* Return true if X contains a virtual register.  */
+ static bool
+ contains_virtual_reg_p (rtx x)
+ {
+   subrtx_iterator::array_type array;
+   FOR_EACH_SUBRTX (iter, array, x, NONCONST)
+     if (REG_P (*iter) && virtual_reg_p (*iter))
+       return true;
+   return false;
+ }
+ 
+ /* Return true if pseudo REGNO is an operand of an incdec rtx in any of its
+    insns.  */
+ static bool
+ reg_has_incdec_p (int regno)
+ {
+   unsigned int uid;
+   bitmap_iterator bi;
+   EXECUTE_IF_SET_IN_BITMAP (&lra_reg_info[regno].insn_bitmap, 0, uid, bi)
+     {
+       rtx_insn *insn = lra_insn_recog_data[uid]->insn;
+       if (!NONDEBUG_INSN_P (insn))
+ 	continue;
+       subrtx_iterator::array_type array;
+       FOR_EACH_SUBRTX (iter, array, PATTERN (insn), NONCONST)
+ 	{
+ 	  const_rtx x = *iter;
+ 	  if ((GET_CODE (x) == PRE_INC || GET_CODE (x) == PRE_DEC
+ 	       || GET_CODE (x) == POST_INC || GET_CODE (x) == POST_DEC
+ 	       || GET_CODE (x) == PRE_MODIFY || GET_CODE (x) == POST_MODIFY)
+ 	      && REG_P (XEXP (x, 0))
+ 	      && REGNO (XEXP (x, 0)) == (unsigned int) regno)
+ 	    return true;
+ 	}
+     }
+   return false;
+ }
+ 
  /* Entry function of LRA constraint pass.  Return true if the
     constraint pass did change the code.	 */
  bool
*************** lra_constraints (bool first_p)
*** 5989,5995 ****
  		    && ((CONST_POOL_OK_P (PSEUDO_REGNO_MODE (i), x)
  			 && (targetm.preferred_reload_class
  			     (x, lra_get_allocno_class (i)) == NO_REGS))
! 			|| contains_symbol_ref_p (x))))
  	      ira_reg_equiv[i].defined_p
  		= ira_reg_equiv[i].caller_save_p = false;
  	    if (contains_reg_p (x, false, true))
--- 6037,6051 ----
  		    && ((CONST_POOL_OK_P (PSEUDO_REGNO_MODE (i), x)
  			 && (targetm.preferred_reload_class
  			     (x, lra_get_allocno_class (i)) == NO_REGS))
! 			|| contains_symbol_ref_p (x)))
! 		/* PR120165: An inc/dec changes the reg value, so we cannot
! 		   substitute the equiv which might contain virtual regs
! 		   requiring elimination.  An insn with inc/dec can also change
! 		   the value of another reg (e.g. sp) against which we
! 		   eliminate.  As we update elimination once per insn and an
! 		   inc/dec operand might require input and output reloads, we
! 		   can generate a wrong offset for a reload insn.  */
! 		|| (contains_virtual_reg_p (x) && reg_has_incdec_p (i)))
  	      ira_reg_equiv[i].defined_p
  		= ira_reg_equiv[i].caller_save_p = false;
  	    if (contains_reg_p (x, false, true))
diff -Nrcpad gcc-17-20260712/gcc/lra-eliminations.cc gcc-17-20260719/gcc/lra-eliminations.cc
*** gcc-17-20260712/gcc/lra-eliminations.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/lra-eliminations.cc	Sun Jul 19 22:32:07 2026
*************** setup_can_eliminate (class lra_elim_tabl
*** 147,153 ****
    ep->can_eliminate = ep->prev_can_eliminate = value;
    if (! value
        && ep->from == FRAME_POINTER_REGNUM && ep->to == STACK_POINTER_REGNUM)
!     frame_pointer_needed = 1;
    if (!frame_pointer_needed)
      REGNO_POINTER_ALIGN (HARD_FRAME_POINTER_REGNUM) = 0;
  }
--- 147,163 ----
    ep->can_eliminate = ep->prev_can_eliminate = value;
    if (! value
        && ep->from == FRAME_POINTER_REGNUM && ep->to == STACK_POINTER_REGNUM)
!     {
!       frame_pointer_needed = 1;
!       /* ira_setup_eliminable_regset marks the hard frame pointer live when
! 	 it decides a frame pointer is needed.  When we make that decision
! 	 here instead, we have to do the same, otherwise a target whose
! 	 prologue keys the register save off df_regs_ever_live_p would
! 	 clobber the caller's hard frame pointer without saving it.  */
!       int fp_reg_count = hard_regno_nregs (HARD_FRAME_POINTER_REGNUM, Pmode);
!       for (int i = 0; i < fp_reg_count; i++)
! 	df_set_regs_ever_live (HARD_FRAME_POINTER_REGNUM + i, true);
!     }
    if (!frame_pointer_needed)
      REGNO_POINTER_ALIGN (HARD_FRAME_POINTER_REGNUM) = 0;
  }
diff -Nrcpad gcc-17-20260712/gcc/lto/ChangeLog gcc-17-20260719/gcc/lto/ChangeLog
*** gcc-17-20260712/gcc/lto/ChangeLog	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/lto/ChangeLog	Sun Jul 19 22:32:07 2026
***************
*** 1,3 ****
--- 1,29 ----
+ 2026-07-17  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	PR lto/65536
+ 	* lang.opt: Add -fltrans-linemap-file.
+ 	* lto-common.cc (lto_read_in_decl_state): Read the linemap ID from
+ 	function sections.
+ 	(linemap_section_id): New function.
+ 	(create_subid_section_table): Note how many linemap sections were
+ 	found in each input section.
+ 	(loc_map_decl_data): New GC root.
+ 	(lto_file_read): Make ORDER into a static variable so it counts
+ 	continuously across all files and sub-files provided on the command
+ 	line.
+ 	(lto_file_finalize): Handle reading the new LTRANS linemap file.
+ 	(read_cgraph_and_symbols): Likewise. Also stop freeing
+ 	ALL_FILE_DECL_DATA at the end; the ordered list of files is now
+ 	useful later on for lto_copy_linemaps().
+ 	* lto.cc (stream_out_linemaps): New function.
+ 	(lto_wpa_write_files): Stream out the linemaps for LTRANS to use.
+ 
+ 2026-07-15  Michal Jires  <mjires@suse.cz>
+ 
+ 	PR lto/125257
+ 	* lto-partition.cc: Handle min/max_partition_size = 0 for
+ 	cache partitioning.
+ 
  2026-05-30  Dhruv Chawla  <dhruvc@nvidia.com>
  
  	* Make-lang.in: Fix typos.
diff -Nrcpad gcc-17-20260712/gcc/lto/lang.opt gcc-17-20260719/gcc/lto/lang.opt
*** gcc-17-20260712/gcc/lto/lang.opt	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/lto/lang.opt	Sun Jul 19 22:32:07 2026
*************** fltrans-output-list=
*** 57,62 ****
--- 57,66 ----
  LTO Joined Var(ltrans_output_list)
  Specify a file to which a list of files output by LTRANS is written.
  
+ fltrans-linemap-file=
+ LTO Joined Var(ltrans_linemap_file)
+ Specify the object file containing copied linemap sections; used internally during LTRANS phase.
+ 
  fresolution=
  LTO Joined
  The resolution file.
diff -Nrcpad gcc-17-20260712/gcc/lto/lto-common.cc gcc-17-20260719/gcc/lto/lto-common.cc
*** gcc-17-20260712/gcc/lto/lto-common.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/lto/lto-common.cc	Sun Jul 19 22:32:07 2026
*************** lto_read_in_decl_state (class data_in *d
*** 195,200 ****
--- 195,203 ----
        gcc_assert (decl == void_type_node);
        decl = NULL_TREE;
      }
+   else
+     state->linemap_id = *data++;
+ 
    state->fn_decl = decl;
  
    for (i = 0; i < LTO_N_DECL_STREAMS; i++)
*************** lto_section_with_id (const char *name, u
*** 2203,2208 ****
--- 2206,2230 ----
    return sscanf (s, "." HOST_WIDE_INT_PRINT_HEX_PURE, id) == 1;
  }
  
+ /* Return the linemap ID if NAME refers to an LTO linemap section,
+    otherwise -1U.  */
+ 
+ static unsigned linemap_section_id (const char *name)
+ {
+   const int prefix_len = strlen (section_name_prefix);
+   gcc_checking_assert (!strncmp (name, section_name_prefix, prefix_len));
+   name += prefix_len;
+   if (*name++ != '.')
+     return -1U;
+   const auto lm_name = lto_section_name[LTO_section_linemap];
+   const int lm_len = strlen (lm_name);
+   if (strncmp (name, lm_name, lm_len))
+     return -1U;
+   name += lm_len;
+   unsigned linemap_id;
+   return sscanf (name, ".%u", &linemap_id) == 1 ? linemap_id : -1U;
+ }
+ 
  /* Create file_data of each sub file id.  */
  
  static int
*************** create_subid_section_table (struct lto_s
*** 2242,2247 ****
--- 2264,2273 ----
        list->last = file_data;
      }
  
+   const auto lsid = linemap_section_id (ls->name);
+   file_data->num_linemap_sections = MAX (file_data->num_linemap_sections,
+ 					 lsid + 1);
+ 
    /* Copy section into sub module hash table.  */
    new_name = XDUPVEC (char, ls->name, strlen (ls->name) + 1);
    s_slot.name = new_name;
*************** create_subid_section_table (struct lto_s
*** 2254,2259 ****
--- 2280,2289 ----
    return 1;
  }
  
+ /* In LTRANS, the linemap data is all stored in a separate object, namely this
+    one.  */
+ static GTY(()) lto_file_decl_data *loc_map_decl_data;
+ 
  /* Read declarations and other initializations for a FILE_DATA.  */
  
  static void
*************** lto_file_finalize (struct lto_file_decl_
*** 2274,2280 ****
      resolutions[rp->index] = rp->res;
    file_data->respairs.release ();
  
-   file_data->renaming_hash_table = lto_create_renaming_table ();
    file_data->file_name = file->filename;
    file_data->order = order;
  
--- 2304,2309 ----
*************** lto_file_finalize (struct lto_file_decl_
*** 2292,2297 ****
--- 2321,2338 ----
  		     file_data->lto_section_header.minor_version,
  		     file_data->file_name);
  
+   if (flag_ltrans)
+     {
+       if (!loc_map_decl_data)
+ 	/* This is not a real LTRANS file; it is just here to hold the line
+ 	   maps.  */
+ 	return;
+       else
+ 	file_data->loc_map_decl_data = loc_map_decl_data;
+     }
+ 
+   file_data->renaming_hash_table = lto_create_renaming_table ();
+ 
  #ifdef ACCEL_COMPILER
    lto_input_mode_table (file_data);
  #else
*************** lto_file_read (lto_file *file, FILE *res
*** 2369,2378 ****
    lto_resolution_read (file_ids, resolution_file, file);
  
    /* Finalize each lto file for each submodule in the merged object.  */
!   int order = 0;
    for (file_data = file_list.first; file_data != NULL;
         file_data = file_data->next)
!     lto_create_files_from_ids (file, file_data, count, order++);
  
    splay_tree_delete (file_ids);
    htab_delete (section_hash_table);
--- 2410,2422 ----
    lto_resolution_read (file_ids, resolution_file, file);
  
    /* Finalize each lto file for each submodule in the merged object.  */
!   static int order = 0;
    for (file_data = file_list.first; file_data != NULL;
         file_data = file_data->next)
!     {
!       lto_create_files_from_ids (file, file_data, count, order);
!       order += file_data->num_linemap_sections;
!     }
  
    splay_tree_delete (file_ids);
    htab_delete (section_hash_table);
*************** read_cgraph_and_symbols (unsigned nfiles
*** 2812,2817 ****
--- 2856,2886 ----
    if (!quiet_flag)
      fprintf (stderr, "Reading object files:");
  
+   if (flag_ltrans)
+     {
+       if (!ltrans_linemap_file)
+ 	fatal_error (UNKNOWN_LOCATION,
+ 		     "%<-fltrans-linemap-file%> is required with %<-fltrans%>");
+       if (!quiet_flag)
+ 	{
+ 	  fprintf (stderr, " %s", ltrans_linemap_file);
+ 	  fflush (stderr);
+ 	}
+       current_lto_file = lto_obj_file_open (ltrans_linemap_file, false);
+       int lm_count = 0;
+       if (!(current_lto_file
+ 	    && (loc_map_decl_data = lto_file_read (current_lto_file, resolution,
+ 						   &lm_count))
+ 	    && lm_count == 1
+ 	    && loc_map_decl_data->next == nullptr))
+ 	fatal_error (UNKNOWN_LOCATION,
+ 		     "unexpected error reading LTRANS linemap section from %qs",
+ 		     ltrans_linemap_file);
+       lto_obj_file_close (current_lto_file);
+       free (current_lto_file);
+       current_lto_file = nullptr;
+     }
+ 
    /* Read all of the object files specified on the command line.  */
    for (i = 0, last_file_ix = 0; i < nfiles; ++i)
      {
*************** read_cgraph_and_symbols (unsigned nfiles
*** 3030,3037 ****
    /* Indicate that the cgraph is built and ready.  */
    symtab->function_flags_ready = true;
  
!   ggc_free (all_file_decl_data);
!   all_file_decl_data = NULL;
  }
  
  
--- 3099,3107 ----
    /* Indicate that the cgraph is built and ready.  */
    symtab->function_flags_ready = true;
  
! 
!   /* N.B. No longer calling ggc_free (all_file_decl_data) here; it is helpful to
!      keep the ordered list of files available e.g. for lto_copy_linemaps().  */
  }
  
  
diff -Nrcpad gcc-17-20260712/gcc/lto/lto-partition.cc gcc-17-20260719/gcc/lto/lto-partition.cc
*** gcc-17-20260712/gcc/lto/lto-partition.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/lto/lto-partition.cc	Sun Jul 19 22:32:07 2026
*************** public:
*** 987,997 ****
  
  protected:
    partitioner_base (int64_t min_partition_size, int64_t max_partition_size):
!     min_partition_size (min_partition_size),
!     max_partition_size (max_partition_size)
    {
-     gcc_assert (min_partition_size != 0);
-     gcc_assert (max_partition_size != 0);
    }
    virtual ~partitioner_base ()
    {}
--- 987,995 ----
  
  protected:
    partitioner_base (int64_t min_partition_size, int64_t max_partition_size):
!     min_partition_size (std::max<int64_t>(min_partition_size, 1)),
!     max_partition_size (std::max<int64_t>(max_partition_size, 1))
    {
    }
    virtual ~partitioner_base ()
    {}
diff -Nrcpad gcc-17-20260712/gcc/lto/lto.cc gcc-17-20260719/gcc/lto/lto.cc
*** gcc-17-20260712/gcc/lto/lto.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/lto/lto.cc	Sun Jul 19 22:32:07 2026
*************** materialize_cgraph (void)
*** 166,171 ****
--- 166,187 ----
    timevar_pop (lto_timer);
  }
  
+ /* Stream out all the linemap sections so they are available for LTRANS.  */
+ 
+ static void
+ stream_out_linemaps (const char *filename)
+ {
+   const auto file = lto_obj_file_open (filename, true);
+   if (!file)
+     fatal_error (input_location, "%<lto_obj_file_open()%> failed");
+   lto_set_current_out_file (file);
+   lto_copy_linemaps ();
+   free (const_cast<char *> (file->filename));
+   lto_set_current_out_file (nullptr);
+   lto_obj_file_close (file);
+   free (file);
+ }
+ 
  /* Actually stream out ENCODER into TEMP_FILENAME.  */
  
  static void
*************** lto_wpa_write_files (void)
*** 357,362 ****
--- 373,384 ----
        sets_per_worker = (n_sets + lto_parallelism - 1) / lto_parallelism;
      }
  
+   /* Write out all the linemaps since they will be needed during LTRANS.  */
+   sprintf (temp_filename + blen, "%u.o", n_sets);
+   const auto linemap_filename = xstrdup (temp_filename);
+   stream_out_linemaps (linemap_filename);
+ 
+   /* Write out the partitions.  */
    for (i = 0; i < n_sets; i++)
      {
        ltrans_partition part = ltrans_partitions[i];
*************** lto_wpa_write_files (void)
*** 428,433 ****
--- 450,457 ----
    if (ltrans_output_list_stream == NULL)
      fatal_error (input_location,
  		 "opening LTRANS output list %s: %m", ltrans_output_list);
+   fprintf (ltrans_output_list_stream, "0\n%s\n", linemap_filename);
+   free (linemap_filename);
    for (i = 0; i < n_sets; i++)
      {
        unsigned int len = strlen (temp_filenames[i]);
diff -Nrcpad gcc-17-20260712/gcc/lto-opts.cc gcc-17-20260719/gcc/lto-opts.cc
*** gcc-17-20260712/gcc/lto-opts.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/lto-opts.cc	Sun Jul 19 22:32:07 2026
*************** lto_write_options (void)
*** 154,159 ****
--- 154,160 ----
  	case OPT_fcanon_prefix_map:
  	case OPT_fwhole_program:
  	case OPT_fltrans_output_list_:
+ 	case OPT_fltrans_linemap_file_:
  	case OPT_flto_incremental_:
  	case OPT_flto_incremental_cache_size_:
  	  continue;
diff -Nrcpad gcc-17-20260712/gcc/lto-section-in.cc gcc-17-20260719/gcc/lto-section-in.cc
*** gcc-17-20260712/gcc/lto-section-in.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/lto-section-in.cc	Sun Jul 19 22:32:07 2026
*************** const char *lto_section_name[LTO_N_SECTI
*** 57,62 ****
--- 57,63 ----
    "ipa_sra",
    "odr_types",
    "ipa_modref",
+   "linemap",
  };
  
  /* Hooks so that the ipa passes can call into the lto front end to get
diff -Nrcpad gcc-17-20260712/gcc/lto-streamer-in.cc gcc-17-20260719/gcc/lto-streamer-in.cc
*** gcc-17-20260712/gcc/lto-streamer-in.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/lto-streamer-in.cc	Sun Jul 19 22:32:07 2026
*************** canon_file_name (const char *relative_pr
*** 376,488 ****
      }
  }
  
! /* Pointer to currently alive instance of lto_location_cache.  */
! 
! lto_location_cache *lto_location_cache::current_cache;
! 
! /* Sort locations in source order. Start with file from last application.  */
  
! int
! lto_location_cache::cmp_loc (const void *pa, const void *pb)
  {
!   const cached_location *a = ((const cached_location *)pa);
!   const cached_location *b = ((const cached_location *)pb);
!   const char *current_file = current_cache->current_file;
!   int current_line = current_cache->current_line;
! 
!   if (a->file == current_file && b->file != current_file)
!     return -1;
!   if (a->file != current_file && b->file == current_file)
!     return 1;
!   if (a->file == current_file && b->file == current_file)
!     {
!       if (a->line == current_line && b->line != current_line)
! 	return -1;
!       if (a->line != current_line && b->line == current_line)
! 	return 1;
!     }
!   if (a->file != b->file)
!     return strcmp (a->file, b->file);
!   if (a->sysp != b->sysp)
!     return a->sysp ? 1 : -1;
!   if (a->line != b->line)
!     return a->line - b->line;
!   if (a->col != b->col)
!     return a->col - b->col;
!   if (a->discr != b->discr)
!     return a->discr - b->discr;
!   if ((a->block == NULL_TREE) != (b->block == NULL_TREE))
!     return a->block ? 1 : -1;
!   if (a->block)
!     {
!       if (BLOCK_NUMBER (a->block) < BLOCK_NUMBER (b->block))
! 	return -1;
!       if (BLOCK_NUMBER (a->block) > BLOCK_NUMBER (b->block))
! 	return 1;
!     }
!   return 0;
  }
  
  /* Apply all changes in location cache.  Add locations into linemap and patch
     trees.  */
  
  bool
  lto_location_cache::apply_location_cache ()
  {
!   static const char *prev_file;
!   if (!loc_cache.length ())
!     return false;
!   if (loc_cache.length () > 1)
!     loc_cache.qsort (cmp_loc);
  
!   for (unsigned int i = 0; i < loc_cache.length (); i++)
      {
!       struct cached_location loc = loc_cache[i];
! 
!       if (current_file != loc.file)
! 	linemap_add (line_table, prev_file ? LC_RENAME : LC_ENTER,
! 		     loc.sysp, loc.file, loc.line);
!       else if (current_line != loc.line)
! 	{
! 	  int max = loc.col;
! 
! 	  for (unsigned int j = i + 1; j < loc_cache.length (); j++)
! 	    if (loc.file != loc_cache[j].file
! 		|| loc.line != loc_cache[j].line)
! 	      break;
! 	    else if (max < loc_cache[j].col)
! 	      max = loc_cache[j].col;
! 	  linemap_line_start (line_table, loc.line, max + 1);
! 	}
!       gcc_assert (*loc.loc == BUILTINS_LOCATION + 1);
!       if (current_file != loc.file
! 	  || current_line != loc.line
! 	  || current_col != loc.col)
! 	{
! 	  current_loc = linemap_position_for_column (line_table, loc.col);
! 	  if (loc.block)
! 	    current_loc = set_block (current_loc, loc.block);
! 	  if (loc.discr)
! 	    current_loc = location_with_discriminator (current_loc, loc.discr);
! 	}
!       else if (current_block != loc.block)
! 	{
! 	  if (loc.block)
! 	    current_loc = set_block (current_loc, loc.block);
! 	  else
! 	    current_loc = LOCATION_LOCUS (current_loc);
! 	  if (loc.discr)
! 	    current_loc = location_with_discriminator (current_loc, loc.discr);
! 	}
!       else if (current_discr != loc.discr)
! 	current_loc = location_with_discriminator (current_loc, loc.discr);
!       *loc.loc = current_loc;
!       current_line = loc.line;
!       prev_file = current_file = loc.file;
!       current_col = loc.col;
!       current_block = loc.block;
!       current_discr = loc.discr;
      }
    loc_cache.truncate (0);
    accepted_length = 0;
    return true;
--- 376,424 ----
      }
  }
  
! /* Given a map index and offset from the streamed data, convert it to a
!    location_t in the global line map.  */
  
! static location_t
! get_location_from_idx (size_t map_idx, location_t offset,
! 		       const lto_loc_map *loc_map)
  {
!   if (!map_idx)
!     return offset;
!   gcc_checking_assert (loc_map);
!   --map_idx;
!   gcc_assert (map_idx < loc_map->nmaps);
!   const auto map = LINEMAPS_ORDINARY_MAP_AT (line_table, loc_map->map[map_idx]);
!   const location_t res = map->start_location + offset;
!   gcc_checking_assert (res < (map == LINEMAPS_LAST_ORDINARY_MAP (line_table)
! 			      ? line_table->highest_location + 1
! 			      : map[1].start_location));
!   return res;
  }
  
+ /* Pointer to currently alive instance of lto_location_cache.  */
+ 
+ lto_location_cache *lto_location_cache::current_cache;
+ 
  /* Apply all changes in location cache.  Add locations into linemap and patch
     trees.  */
  
  bool
  lto_location_cache::apply_location_cache ()
  {
!   if (loc_cache.is_empty ())
!     return true;
  
!   for (const auto &cloc: loc_cache)
      {
!       const location_t loc = cloc.loc;
!       const auto range = source_range::from_location (loc);
!       *cloc.dest = line_table->get_or_create_combined_loc (loc, range,
! 							   cloc.block,
! 							   cloc.discr);
      }
+   current_cloc = loc_cache[loc_cache.length () - 1];
+   current_loc = *current_cloc.dest;
    loc_cache.truncate (0);
    accepted_length = 0;
    return true;
*************** lto_location_cache::revert_location_cach
*** 505,629 ****
    loc_cache.truncate (accepted_length);
  }
  
! /* Read a location bitpack from bit pack BP and either update *LOC directly
!    or add it to the location cache.  If IB is non-NULL, stream in a block
!    afterwards.
!    It is necessary to call apply_location_cache to get *LOC updated.  */
  
! void
! lto_location_cache::input_location_and_block (location_t *loc,
! 					      struct bitpack_d *bp,
! 					      class lto_input_block *ib,
! 					      class data_in *data_in)
  {
!   static const char *stream_file;
!   static int stream_line;
!   static int stream_col;
!   static bool stream_sysp;
!   static tree stream_block;
!   static unsigned stream_discr;
!   static const char *stream_relative_path_prefix;
  
!   gcc_assert (current_cache == this);
  
!   *loc = bp_unpack_int_in_range (bp, "location", 0,
! 				 RESERVED_LOCATION_COUNT + 1);
  
!   if (*loc < RESERVED_LOCATION_COUNT)
      {
!       if (ib)
  	{
! 	  bool block_change = bp_unpack_value (bp, 1);
! 	  if (block_change)
! 	    stream_block = stream_read_tree (ib, data_in);
! 	  if (stream_block)
! 	    *loc = set_block (*loc, stream_block);
  	}
-       return;
      }
  
!   bool file_change = (*loc == RESERVED_LOCATION_COUNT + 1);
!   /* Keep value RESERVED_LOCATION_COUNT in *loc as linemap lookups will
!      ICE on it.  */
!   *loc = RESERVED_LOCATION_COUNT;
!   bool line_change = bp_unpack_value (bp, 1);
!   bool column_change = bp_unpack_value (bp, 1);
!   bool discr_change = bp_unpack_value (bp, 1);
! 
!   if (file_change)
      {
!       bool pwd_change = bp_unpack_value (bp, 1);
!       if (pwd_change)
  	{
! 	  const char *pwd = bp_unpack_string (data_in, bp);
! 	  const char *src_pwd = get_src_pwd ();
! 	  if (strcmp (pwd, src_pwd) == 0)
! 	    stream_relative_path_prefix = NULL;
! 	  else
! 	    stream_relative_path_prefix
! 	      = canon_relative_path_prefix (pwd, src_pwd);
  	}
!       stream_file = canon_file_name (stream_relative_path_prefix,
! 				     bp_unpack_string (data_in, bp));
!       stream_sysp = bp_unpack_value (bp, 1);
      }
  
!   if (line_change)
!     stream_line = bp_unpack_var_len_unsigned (bp);
  
!   if (column_change)
!     stream_col = bp_unpack_var_len_unsigned (bp);
  
!   if (discr_change)
!     stream_discr = bp_unpack_var_len_unsigned (bp);
  
!   tree block = NULL_TREE;
    if (ib)
      {
!       bool block_change = bp_unpack_value (bp, 1);
!       if (block_change)
  	stream_block = stream_read_tree (ib, data_in);
!       block = stream_block;
      }
  
    /* This optimization saves location cache operations during gimple
       streaming.  */
! 
!   if (current_file == stream_file
!       && current_line == stream_line
!       && current_col == stream_col
!       && current_sysp == stream_sysp
!       && current_discr == stream_discr)
      {
!       if (current_block == block)
! 	*loc = current_loc;
!       else if (block)
! 	*loc = set_block (current_loc, block);
!       else
! 	*loc = LOCATION_LOCUS (current_loc);
        return;
      }
  
!   struct cached_location entry
!     = {stream_file, loc, stream_line, stream_col, stream_sysp, block, stream_discr};
    loc_cache.safe_push (entry);
  }
  
- /* Read a location bitpack from bit pack BP and either update *LOC directly
-    or add it to the location cache.
-    It is necessary to call apply_location_cache to get *LOC updated.  */
- 
  void
! lto_location_cache::input_location (location_t *loc, struct bitpack_d *bp,
  				    class data_in *data_in)
  {
!   return input_location_and_block (loc, bp, NULL, data_in);
  }
  
- /* Read a location bitpack from input block IB and either update *LOC directly
-    or add it to the location cache.
-    It is necessary to call apply_location_cache to get *LOC updated.  */
- 
  void
  lto_input_location (location_t *loc, struct bitpack_d *bp,
  		    class data_in *data_in)
--- 441,686 ----
    loc_cache.truncate (accepted_length);
  }
  
! /* Bitpack packing is more efficient for small values since every 4th bit is a
!    continuation bit, so it helps to pack values as the delta from the previous
!    if they can get large.  */
! template<typename Int>
! static Int
! bp_unpack_delta (bitpack_d *bp, Int &prev)
! {
!   const bool decrease = bp_unpack_value (bp, 1);
!   const Int delta = bp_unpack_var_len_unsigned (bp);
!   return prev = (decrease ? prev - delta : prev + delta);
! }
  
! /* Read the linemap section of order LINEMAP_ID from FILE_DATA and create an
!    lto_loc_map object that can be used to find which ordinary map in the
!    global line_table corresponds to a given streamed-out map index.  Always
!    either returns a non-NULL pointer, or calls fatal_error().  */
! 
! static lto_loc_map *
! create_loc_map (lto_file_decl_data *file_data, unsigned linemap_id)
  {
!   timevar_push (TV_IPA_LTO_LINEMAP_IN);
  
!   size_t len;
!   const auto data = lto_get_section_data (file_data, LTO_section_linemap,
! 					  nullptr, linemap_id, &len, true);
!   if (!data)
!     fatal_error (UNKNOWN_LOCATION,
! 		 "linemap section #%u not found in file %qs",
! 		 linemap_id, file_data->file_name);
  
!   const auto header = (const lto_simple_header_with_strings *) data;
!   const char *const main_begin = data + sizeof (*header);
!   const auto data_in
!     = lto_data_in_create (file_data, main_begin + header->main_size,
! 			  header->string_size, vNULL, false);
!   lto_input_block ib (main_begin, header->main_size, file_data);
!   bitpack_d bp = streamer_read_bitpack (&ib);
  
!   /* Create the location map object.  */
!   const size_t nmaps = bp_unpack_var_len_unsigned (&bp);
!   size_t loc_map_sz = sizeof (lto_loc_map);
!   if (nmaps > 1)
!     loc_map_sz += (nmaps - 1) * sizeof (size_t);
!   const auto loc_map = (lto_loc_map *) ggc_internal_alloc (loc_map_sz);
!   loc_map->nmaps = nmaps;
! 
!   /* Read the line map data.  */
!   const char *stream_relative_path_prefix = nullptr;
!   const char *stream_file = nullptr;
!   size_t cur_map_idx = 0;
!   linenum_type cur_line = 0;
!   for (size_t i = 0; i != nmaps; ++i)
      {
!       const size_t map_idx = bp_unpack_delta (&bp, cur_map_idx);
!       gcc_assert (map_idx && map_idx <= nmaps);
!       const line_map_uint_t num_lines = bp_unpack_var_len_unsigned (&bp);
!       const bool sysp = bp_unpack_value (&bp, 1);
!       const unsigned int column_bits = bp_unpack_value (&bp, 8);
!       const linenum_type to_line = bp_unpack_delta (&bp, cur_line);
!       const bool file_change = bp_unpack_value (&bp, 1);
!       if (file_change)
  	{
! 	  const bool pwd_change = bp_unpack_value (&bp, 1);
! 	  if (pwd_change)
! 	    {
! 	      const char *pwd = bp_unpack_string (data_in, &bp);
! 	      const char *src_pwd = get_src_pwd ();
! 	      stream_relative_path_prefix
! 		= strcmp (pwd, src_pwd) == 0 ? nullptr
! 		: canon_relative_path_prefix (pwd, src_pwd);
! 	    }
! 	  stream_file = canon_file_name (stream_relative_path_prefix,
! 					 bp_unpack_string (data_in, &bp));
! 	}
!       gcc_assert (stream_file);
!       const auto map
! 	= linemap_add_raw_map (line_table,
! 			       line_table->depth ? LC_RENAME : LC_ENTER,
! 			       line_table->highest_location + 1, sysp,
! 			       column_bits, 0, stream_file, to_line, num_lines);
!       if (!map)
! 	fatal_error (UNKNOWN_LOCATION,
! 		     "Ran out of locations while reading linemap section #%u",
! 		     linemap_id);
!       loc_map->map[map_idx - 1] = map - line_table->info_ordinary.maps;
!       if (flag_wpa || flag_incremental_link == INCREMENTAL_LINK_LTO)
! 	{
! 	  const auto out_id = lto_linemap_output_id (linemap_id, file_data);
! 	  lto_register_linemap_for_output (map_idx, out_id);
  	}
      }
  
!   /* Process the diagnostics classification history.  */
!   auto &chist = global_dc->get_classification_history ();
!   const int pop_offset = chist.length ();
!   using DK = diagnostics::kind;
!   for (size_t i = 0, nc = bp_unpack_var_len_unsigned (&bp); i != nc; ++i)
      {
!       const size_t map_idx = bp_unpack_var_len_unsigned (&bp);
!       const location_t offset = bp_unpack_var_len_unsigned (&bp);
!       const location_t loc = get_location_from_idx (map_idx, offset, loc_map);
!       const int option = bp_unpack_var_len_int (&bp);
!       const auto kind = bp_unpack_enum (&bp, diagnostics::kind,
! 					DK::tot_num_diagnostic_kinds);
!       if (kind == DK::pop)
  	{
! 	  diagnostics::option_classifier::classification_change_t c = {};
! 	  c.location = loc;
! 	  c.option = option + pop_offset;
! 	  c.kind = kind;
! 	  chist.safe_push (c);
  	}
!       else
! 	global_dc->classify_diagnostic (option, kind, loc);
      }
+   /* Make sure we reset back to the baseline.  */
+   {
+     diagnostics::option_classifier::classification_change_t c = {};
+     c.location = line_table->highest_location;
+     c.kind = DK::pop;
+     chist.safe_push (c);
+   }
  
!   lto_data_in_delete (data_in);
!   lto_free_section_data (file_data, LTO_section_linemap, nullptr,
! 			 data, len, true);
  
!   timevar_pop (TV_IPA_LTO_LINEMAP_IN);
!   return loc_map;
! }
  
! /* Return the location map with given ID, reading it from the LTO object if
!    necessary.  */
  
! static const lto_loc_map *
! get_loc_map (lto_file_decl_data *file_data, unsigned linemap_id)
! {
!   /* During LTRANS, the location maps are stored in a different object.  */
!   while (file_data->loc_map_decl_data)
!     file_data = file_data->loc_map_decl_data;
! 
!   if (vec_safe_length (file_data->loc_maps) <= linemap_id)
!     vec_safe_grow_cleared (file_data->loc_maps, linemap_id + 1);
!   auto &res = (*file_data->loc_maps)[linemap_id];
!   if (!res)
!     res = create_loc_map (file_data, linemap_id);
!   return res;
! }
! 
! 
! /* Read a location bitpack from bit pack BP and either update *LOC directly or
!    add it to the location cache.  It is necessary to call apply_location_cache
!    to guarantee that *LOC has been updated.  */
! 
! void
! lto_location_cache::input_location_and_block (location_t *dest,
! 					      struct bitpack_d *bp,
! 					      class lto_input_block *ib,
! 					      class data_in *data_in)
! {
!   gcc_checking_assert (decl_data);
! 
!   location_t loc;
!   unsigned this_discr;
!   const bool is_reserved = bp_unpack_value (bp, 1);
!   if (is_reserved)
!     {
!       loc = bp_unpack_int_in_range (bp, "loc", 0, RESERVED_LOCATION_COUNT - 1);
!       this_discr = 0;
!     }
!   else
!     {
!       const bool linemap_change = bp_unpack_value (bp, 1);
!       if (linemap_change)
! 	{
! 	  const unsigned linemap_id = bp_unpack_var_len_unsigned (bp);
! 	  cur_loc_map = get_loc_map (decl_data, linemap_id + linemap_offset);
! 	}
!       const auto prev_idx = stream_map_idx;
!       bp_unpack_delta (bp, stream_map_idx);
!       bp_unpack_delta (bp, stream_loc_offset);
!       if (stream_map_idx != prev_idx)
! 	/* The hash code is only there for the benefit of -flto-incremental;
! 	   we don't need to do anything with it here.  */
! 	bp_unpack_var_len_unsigned (bp);
! 
!       loc = get_location_from_idx (stream_map_idx, stream_loc_offset,
! 				   cur_loc_map);
!       if (bp_unpack_value (bp, 1))
! 	stream_discr = bp_unpack_var_len_unsigned (bp);
!       this_discr = stream_discr;
!     }
! 
!   tree this_block = NULL_TREE;
    if (ib)
      {
!       if (bp_unpack_value (bp, 1))
  	stream_block = stream_read_tree (ib, data_in);
!       this_block = stream_block;
!     }
! 
!   /* If this location can be ordinary rather than ad-hoc, then there is no more
!      overhead associated with it, so we may as well finalize it now.  */
!   if (!(this_discr || this_block))
!     {
!       *dest = loc;
!       return;
      }
  
    /* This optimization saves location cache operations during gimple
       streaming.  */
!   if (loc == current_cloc.loc
!       && this_block == current_cloc.block
!       && this_discr == current_cloc.discr)
      {
!       *dest = current_loc;
        return;
      }
  
!   /* Keep value RESERVED_LOCATION_COUNT in *dest so linemap lookups will ICE on
!      it if we erroneously try to use the location before it is ready.  */
!   *dest = RESERVED_LOCATION_COUNT;
! 
!   /* This location needs to be ad-hoc; remember the details for now and create
!      the ad-hoc location later once we know we need it.  */
!   cached_location entry = {};
!   entry.dest = dest;
!   entry.loc = loc;
!   entry.block = this_block;
!   entry.discr = this_discr;
    loc_cache.safe_push (entry);
  }
  
  void
! lto_location_cache::input_location (location_t *dest, struct bitpack_d *bp,
  				    class data_in *data_in)
  {
!   return input_location_and_block (dest, bp, NULL, data_in);
  }
  
  void
  lto_input_location (location_t *loc, struct bitpack_d *bp,
  		    class data_in *data_in)
*************** lto_read_body_or_constructor (struct lto
*** 1634,1640 ****
        decl_state = lto_get_function_in_decl_state (file_data, fn_decl);
        gcc_assert (decl_state);
        file_data->current_decl_state = decl_state;
! 
  
        /* Set up the struct function.  */
        from = data_in->reader_cache->nodes.length ();
--- 1691,1697 ----
        decl_state = lto_get_function_in_decl_state (file_data, fn_decl);
        gcc_assert (decl_state);
        file_data->current_decl_state = decl_state;
!       data_in->location_cache.set_linemap_offset (decl_state->linemap_id);
  
        /* Set up the struct function.  */
        from = data_in->reader_cache->nodes.length ();
*************** lto_free_file_name_hash (void)
*** 2201,2215 ****
  class data_in *
  lto_data_in_create (struct lto_file_decl_data *file_data, const char *strings,
  		    unsigned len,
! 		    vec<ld_plugin_symbol_resolution_t> resolutions)
  {
!   class data_in *data_in = new (class data_in);
!   data_in->file_data = file_data;
!   data_in->strings = strings;
!   data_in->strings_len = len;
!   data_in->globals_resolution = resolutions;
!   data_in->reader_cache = streamer_tree_cache_create (false, false, true);
!   return data_in;
  }
  
  
--- 2258,2273 ----
  class data_in *
  lto_data_in_create (struct lto_file_decl_data *file_data, const char *strings,
  		    unsigned len,
! 		    vec<ld_plugin_symbol_resolution_t> resolutions,
! 		    bool need_location_cache)
  {
!   const auto d = new data_in{need_location_cache ? file_data : nullptr};
!   d->file_data = file_data;
!   d->strings = strings;
!   d->strings_len = len;
!   d->globals_resolution = resolutions;
!   d->reader_cache = streamer_tree_cache_create (false, false, true);
!   return d;
  }
  
  
diff -Nrcpad gcc-17-20260712/gcc/lto-streamer-out.cc gcc-17-20260719/gcc/lto-streamer-out.cc
*** gcc-17-20260712/gcc/lto-streamer-out.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/lto-streamer-out.cc	Sun Jul 19 22:32:07 2026
*************** static void lto_write_tree (struct outpu
*** 57,73 ****
  static void
  clear_line_info (struct output_block *ob)
  {
-   ob->current_file = NULL;
-   ob->current_line = 0;
-   ob->current_col = 0;
-   ob->current_sysp = false;
-   ob->reset_locus = true;
-   ob->emit_pwd = true;
    /* Initialize to something that will never appear as block,
       so that the first location with block in a function etc.
       always streams a change_block bit and the first block.  */
    ob->current_block = void_node;
    ob->current_discr = UINT_MAX;
  }
  
  
--- 57,70 ----
  static void
  clear_line_info (struct output_block *ob)
  {
    /* Initialize to something that will never appear as block,
       so that the first location with block in a function etc.
       always streams a change_block bit and the first block.  */
    ob->current_block = void_node;
    ob->current_discr = UINT_MAX;
+   ob->current_map_idx = 0;
+   ob->current_loc_offset = 0;
+   ob->current_linemap_id = -1U;
  }
  
  
*************** tree_is_indexable (tree t)
*** 181,266 ****
      return (IS_TYPE_OR_DECL_P (t) || TREE_CODE (t) == SSA_NAME);
  }
  
  
! /* Output info about new location into bitpack BP.
!    After outputting bitpack, lto_output_location_data has
!    to be done to output actual data.  */
  
! static void
! lto_output_location_1 (struct output_block *ob, struct bitpack_d *bp,
! 		       location_t orig_loc, bool block_p)
  {
!   location_t loc = LOCATION_LOCUS (orig_loc);
  
!   if (loc >= RESERVED_LOCATION_COUNT)
      {
!       expanded_location xloc = expand_location (loc);
!       unsigned discr = get_discriminator_from_loc (orig_loc);
  
!       if (ob->reset_locus)
! 	{
! 	  if (xloc.file == NULL)
! 	    ob->current_file = "";
! 	  if (xloc.line == 0)
! 	    ob->current_line = 1;
! 	  if (xloc.column == 0)
! 	    ob->current_col = 1;
! 	  ob->reset_locus = false;
! 	}
  
!       /* As RESERVED_LOCATION_COUNT is 2, we can use the spare value of
! 	 3 without wasting additional bits to signalize file change.
! 	 If RESERVED_LOCATION_COUNT changes, reconsider this.  */
!       gcc_checking_assert (RESERVED_LOCATION_COUNT == 2);
!       bp_pack_int_in_range (bp, 0, RESERVED_LOCATION_COUNT + 1,
! 			    RESERVED_LOCATION_COUNT
! 			    + (ob->current_file != xloc.file));
  
!       bp_pack_value (bp, ob->current_line != xloc.line, 1);
!       bp_pack_value (bp, ob->current_col != xloc.column, 1);
!       bp_pack_value (bp, ob->current_discr != discr, 1);
  
!       if (ob->current_file != xloc.file)
  	{
  	  bool stream_pwd = false;
! 	  const char *remapped = remap_debug_filename (xloc.file);
! 	  if (ob->emit_pwd && remapped && !IS_ABSOLUTE_PATH (remapped))
  	    {
  	      stream_pwd = true;
! 	      ob->emit_pwd = false;
  	    }
! 	  bp_pack_value (bp, stream_pwd, 1);
  	  if (stream_pwd)
! 	    bp_pack_string (ob, bp, get_src_pwd (), true);
! 	  bp_pack_string (ob, bp, remapped, true);
! 	  bp_pack_value (bp, xloc.sysp, 1);
  	}
!       ob->current_file = xloc.file;
!       ob->current_sysp = xloc.sysp;
  
!       if (ob->current_line != xloc.line)
! 	bp_pack_var_len_unsigned (bp, xloc.line);
!       ob->current_line = xloc.line;
  
!       if (ob->current_col != xloc.column)
! 	bp_pack_var_len_unsigned (bp, xloc.column);
!       ob->current_col = xloc.column;
  
!       if (ob->current_discr != discr)
! 	bp_pack_var_len_unsigned (bp, discr);
!       ob->current_discr = discr;
      }
    else
!     bp_pack_int_in_range (bp, 0, RESERVED_LOCATION_COUNT + 1, loc);
  
    if (block_p)
      {
!       tree block = LOCATION_BLOCK (orig_loc);
        bp_pack_value (bp, ob->current_block != block, 1);
        streamer_write_bitpack (bp);
        if (ob->current_block != block)
! 	lto_output_tree (ob, block, true, true);
!       ob->current_block = block;
      }
  }
  
--- 178,455 ----
      return (IS_TYPE_OR_DECL_P (t) || TREE_CODE (t) == SSA_NAME);
  }
  
+ namespace {
  
! /* Compute a 32-bit hash of the linemap details.  This is currently used to
!    ensure that WPA streamed output will change whenever the linemap details
!    change, otherwise there could be potential issues with the validity of
!    the cache used to implement -flto-incremental.  */
  
! hashval_t
! compute_map_hash (const line_map_ordinary *map)
  {
!   inchash::hash h;
!   h.add_int (map->sysp);
!   h.add_int (map->m_column_and_range_bits - map->m_range_bits);
!   h.add_int (map->to_line);
!   h.add_object (map->included_from);
!   h.add (map->to_file, strlen (map->to_file));
!   return h.end ();
! }
  
! class location_output
! {
! public:
! 
!   struct map_id_t
!   {
!     size_t idx;
!     unsigned linemap_id;
!     hashval_t hash;
!   };
! 
!   struct location_id_t
!   {
!     map_id_t map_id;
!     location_t offset;
!   };
! 
!   location_id_t record_location (location_t loc);
! 
!   void register_map_id (size_t map_idx, unsigned linemap_id)
!   {
!     gcc_checking_assert (LINEMAPS_ORDINARY_USED (line_table)
! 			 == orig_map_ids.length () + 1);
!     const auto map = LINEMAPS_LAST_ORDINARY_MAP (line_table);
!     const hashval_t hash = compute_map_hash (map);
!     orig_map_ids.safe_push (map_id_t{map_idx, linemap_id, hash});
!   }
! 
!   void produce_linemap_section ();
! 
! private:
!   struct map_data
!   {
!     size_t idx;
!     hashval_t hash;
!     location_t highest_location;
!   };
!   hash_map<nofree_ptr_hash<const line_map_ordinary>, map_data> map_data_map;
!   vec<map_id_t> orig_map_ids = {};
! };
! 
! location_output::location_id_t
! location_output::record_location (location_t loc)
! {
!   /* Strip away any macro expansion data or embedded range information.  */
!   loc = linemap_resolve_location (line_table, loc, LRK_MACRO_EXPANSION_POINT,
! 				  nullptr);
!   loc = get_pure_location (loc);
!   location_id_t loc_id = {};
!   if (loc < RESERVED_LOCATION_COUNT)
      {
!       /* IDX 0 is for reserved locations.  */
!       loc_id.offset = loc;
!       return loc_id;
!     }
  
!   const auto map = linemap_check_ordinary (linemap_lookup (line_table, loc));
  
!   if (flag_wpa || flag_incremental_link == INCREMENTAL_LINK_LTO)
!     {
!       /* In these modes, we don't create new locations, we only work with what
! 	 was read, so we will re-output the locations in the same way.  */
!       gcc_checking_assert (orig_map_ids.length ()
! 			   == LINEMAPS_ORDINARY_USED (line_table));
!       gcc_checking_assert (!map->m_range_bits);
!       loc_id.map_id = orig_map_ids[map - line_table->info_ordinary.maps];
!       loc_id.offset = loc - map->start_location;
!       return loc_id;
!     }
  
!   /* Represent each location_t as the offset from the map start,
!      without any range bits.  */
!   map_data &md = map_data_map.get_or_insert (map);
!   if (!md.idx)
!     {
!       md.idx = map_data_map.elements ();
!       md.hash = compute_map_hash (map);
!     }
!   md.highest_location = MAX (md.highest_location, loc);
!   loc_id.map_id.idx = md.idx;
!   loc_id.map_id.hash = md.hash;
!   loc_id.offset = (loc - map->start_location) >> map->m_range_bits;
!   return loc_id;
! }
  
! /* Bitpack packing is more efficient for small values since every 4th bit is a
!    continuation bit, so it helps to pack values as the delta from the previous
!    if they can get large.  */
! template<typename Int>
! static void
! bp_pack_delta (bitpack_d *bp, Int val, Int &prev)
! {
!   const bool decrease = (val < prev);
!   bp_pack_value (bp, decrease, 1);
!   bp_pack_var_len_unsigned (bp, decrease ? prev - val : val - prev);
!   prev = val;
! }
! 
! void
! location_output::produce_linemap_section ()
! {
!   timevar_push (TV_IPA_LTO_LINEMAP_OUT);
! 
!   const auto ob = create_output_block (LTO_section_linemap);
!   auto bp = bitpack_create (ob->main_stream);
! 
!   /* Prepare the diagnostic classification history.  To make life easier on the
!      reader, which will need to build the line map before processing the
!      classification history, we will stream it out after the line map data.  But
!      we need to call record_location() now.  */
!   const auto &chist = global_dc->get_classification_history ();
!   for (auto &c : chist)
!     record_location (c.location);
! 
!   /* Sort the maps in the order they need to be inserted later.  */
!   const size_t nmaps = map_data_map.elements ();
!   using KV = std::pair<const line_map_ordinary *, map_data>;
!   const std::unique_ptr<KV[]> sorted_maps{new KV[nmaps]};
!   size_t map_i = 0;
!   for (auto iter = map_data_map.begin (), end = map_data_map.end ();
!        iter != end; ++iter)
!     sorted_maps[map_i++] = *iter;
!   gcc_qsort (sorted_maps.get (), nmaps, sizeof (KV),
! 	     [] (const void *p1, const void *p2)
! 	     {
! 	       const auto map1 = static_cast<const KV *> (p1)->first;
! 	       const auto map2 = static_cast<const KV *> (p2)->first;
! 	       const location_t loc1 = map1->start_location;
! 	       const location_t loc2 = map2->start_location;
! 	       return (loc2 < loc1) - (loc1 < loc2);
! 	     });
! 
!   /* Output the maps.  */
!   bp_pack_var_len_unsigned (&bp, nmaps);
!   const char *current_file = nullptr;
!   bool emit_pwd = true;
!   size_t prev_idx = 0;
!   linenum_type prev_line = 0;
!   for (map_i = 0; map_i != nmaps; ++map_i)
!     {
!       const auto map = sorted_maps[map_i].first;
!       const map_data &md = sorted_maps[map_i].second;
!       bp_pack_delta (&bp, md.idx, prev_idx);
!       const auto num_lines
! 	= 1 + ((md.highest_location - map->start_location)
! 	       >> map->m_column_and_range_bits);
!       bp_pack_var_len_unsigned (&bp, num_lines);
!       bp_pack_value (&bp, map->sysp != 0, 1);
!       bp_pack_value (&bp, map->m_column_and_range_bits - map->m_range_bits, 8);
!       bp_pack_delta (&bp, map->to_line, prev_line);
!       const bool file_change = (map->to_file != current_file);
!       bp_pack_value (&bp, file_change, 1);
!       if (file_change)
  	{
  	  bool stream_pwd = false;
! 	  const char *remapped = remap_debug_filename (map->to_file);
! 	  if (emit_pwd && remapped && !IS_ABSOLUTE_PATH (remapped))
  	    {
  	      stream_pwd = true;
! 	      emit_pwd = false;
  	    }
! 	  bp_pack_value (&bp, stream_pwd, 1);
  	  if (stream_pwd)
! 	    bp_pack_string (ob, &bp, get_src_pwd (), true);
! 	  bp_pack_string (ob, &bp, remapped, true);
  	}
!     }
  
!   /* Output the diagnostics classification history.  */
!   bp_pack_var_len_unsigned (&bp, chist.length ());
!   for (auto &c : chist)
!     {
!       const location_id_t loc_id = record_location (c.location);
!       bp_pack_var_len_unsigned (&bp, loc_id.map_id.idx);
!       bp_pack_var_len_unsigned (&bp, loc_id.offset);
!       bp_pack_var_len_int (&bp, c.option);
!       using DK = diagnostics::kind;
!       bp_pack_enum (&bp, DK, DK::tot_num_diagnostic_kinds, c.kind);
!     }
  
!   /* Finalize the section.  */
!   streamer_write_bitpack (&bp);
!   {
!     const auto section_name
!       = lto_get_section_name (LTO_section_linemap, nullptr, 0, nullptr);
!     lto_begin_section (section_name, true);
!     free (section_name);
!   }
  
!   lto_simple_header_with_strings header = {};
!   header.main_size = ob->main_stream->total_size;
!   header.string_size = ob->string_stream->total_size;
!   lto_write_data (&header, sizeof header);
!   lto_write_stream (ob->main_stream);
!   lto_write_stream (ob->string_stream);
!   lto_end_section ();
!   destroy_output_block (ob);
! 
!   timevar_pop (TV_IPA_LTO_LINEMAP_OUT);
! }
! 
! location_output loc_output;
! 
! } /* unnamed namespace */
! 
! /* Get a mapping index for LOC and stream it along with optional ancillary
!    data.  */
! 
! static void
! lto_output_location_1 (struct output_block *ob, struct bitpack_d *bp,
! 		       location_t loc, bool block_p)
! {
!   const auto loc_id = loc_output.record_location (loc);
!   if (!loc_id.map_id.idx)
!     {
!       bp_pack_value (bp, true, 1);
!       bp_pack_int_in_range (bp, 0, RESERVED_LOCATION_COUNT - 1, loc_id.offset);
      }
    else
!     {
!       bp_pack_value (bp, false, 1);
!       if (loc_id.map_id.linemap_id == ob->current_linemap_id)
! 	bp_pack_value (bp, false, 1);
!       else
! 	{
! 	  bp_pack_value (bp, true, 1);
! 	  bp_pack_var_len_unsigned (bp, loc_id.map_id.linemap_id);
! 	  ob->current_linemap_id = loc_id.map_id.linemap_id;
! 	}
!       const bool is_new_map = (loc_id.map_id.idx != ob->current_map_idx);
!       bp_pack_delta (bp, loc_id.map_id.idx, ob->current_map_idx);
!       bp_pack_delta (bp, loc_id.offset, ob->current_loc_offset);
!       if (is_new_map)
! 	bp_pack_var_len_unsigned (bp, loc_id.map_id.hash);
!       const unsigned discr = get_discriminator_from_loc (loc);
!       bp_pack_value (bp, ob->current_discr != discr, 1);
!       if (ob->current_discr != discr)
! 	{
! 	  bp_pack_var_len_unsigned (bp, discr);
! 	  ob->current_discr = discr;
! 	}
!     }
  
    if (block_p)
      {
!       tree block = LOCATION_BLOCK (loc);
        bp_pack_value (bp, ob->current_block != block, 1);
        streamer_write_bitpack (bp);
        if (ob->current_block != block)
! 	{
! 	  lto_output_tree (ob, block, true, true);
! 	  ob->current_block = block;
! 	}
      }
  }
  
*************** copy_function_or_variable (struct symtab
*** 2664,2669 ****
--- 2853,2862 ----
    lto_free_raw_section_data (file_data, LTO_section_function_body, name,
  			     data, len);
    lto_end_section ();
+ 
+   /* Make sure the reader knows which linemap section to use.  */
+   out_state->linemap_id = lto_linemap_output_id (in_state->linemap_id,
+ 						 file_data);
  }
  
  /* Wrap symbol references in *TP inside a type-preserving MEM_REF.  */
*************** produce_lto_section ()
*** 2738,2743 ****
--- 2931,2994 ----
    destroy_output_block (ob);
  }
  
+ /* If we have copied a function, we need to make sure the linemap it refers to
+    is also streamed out.  */
+ 
+ static void
+ copy_linemap_section (lto_file_decl_data *file_data, unsigned order)
+ {
+   const auto in_section_name
+     = lto_get_section_name (LTO_section_linemap, nullptr, order, file_data);
+   const auto out_section_name
+     = lto_get_section_name (LTO_section_linemap, nullptr,
+ 			    lto_linemap_output_id (order, file_data), nullptr);
+ 
+   if (streamer_dump_file)
+     fprintf (streamer_dump_file, "Copying linemap section from %s to %s\n",
+ 	     in_section_name, out_section_name);
+ 
+   size_t len;
+   const auto data = lto_get_raw_section_data (file_data, LTO_section_linemap,
+ 					      nullptr, order, &len);
+   gcc_assert (data);
+   lto_begin_section (out_section_name, false);
+   free (in_section_name);
+   free (out_section_name);
+   lto_write_raw_data (data, len);
+   lto_free_raw_section_data (file_data, LTO_section_linemap,
+ 			     nullptr, data, len);
+   lto_end_section ();
+ }
+ 
+ static void
+ copy_linemap_sections (lto_file_decl_data *file_data)
+ {
+   for (unsigned i = 0; i != file_data->num_linemap_sections; ++i)
+     copy_linemap_section (file_data, i);
+ }
+ 
+ /* Copy all the linemaps we read into an object file so LTRANS can find them
+    later.  */
+ 
+ void
+ lto_copy_linemaps ()
+ {
+   timevar_push (TV_IPA_LTO_LINEMAP_COPY);
+   lto_streamer_init ();
+   lto_push_out_decl_state (nullptr);
+ 
+   /* In WPA, we write these out to a standalone file; give it an LTO header
+      section.  */
+   if (flag_wpa)
+     produce_lto_section ();
+ 
+   for (auto file_data = lto_get_file_decl_data (); *file_data; ++file_data)
+     copy_linemap_sections (*file_data);
+ 
+   lto_pop_out_decl_state ();
+   timevar_pop (TV_IPA_LTO_LINEMAP_COPY);
+ }
+ 
  /* Compare symbols to get them sorted by filename (to optimize streaming)  */
  
  static int
*************** create_order_remap (lto_symtab_encoder_t
*** 2806,2811 ****
--- 3057,3078 ----
      }
  }
  
+ /* When WPA writes out its outputs, there are two different ways a location
+    may be streamed out: either streamed freshly, e.g. when trees are
+    streamed out in the decls section, or else copied verbatim from the input
+    files.  In the former case, we need to remember how a location_t was
+    originally referenced in the input data, so we can stream it out the same
+    way; otherwise it would be necessary to stream out a new linemap section
+    just for WPA-generated locations, which would a) be wasteful given that
+    all locations originated from one of the linemap sections that already
+    exists and b) inhibit incremental LTO since a change to one partition
+    would affect the linemap for all of them.  */
+ 
+ void lto_register_linemap_for_output (size_t map_idx, unsigned linemap_id)
+ {
+   loc_output.register_map_id (map_idx, linemap_id);
+ }
+ 
  /* Main entry point from the pass manager.  */
  
  void
*************** lto_output_decl_state_refs (struct outpu
*** 3013,3029 ****
  			    struct lto_out_decl_state *state)
  {
    unsigned i;
!   unsigned ref;
    tree decl;
  
    /* Write reference to FUNCTION_DECL.  If there is not function,
       write reference to void_type_node. */
    decl = (state->fn_decl) ? state->fn_decl : void_type_node;
    streamer_tree_cache_lookup (ob->writer_cache, decl, &ref);
!   gcc_assert (ref != (unsigned)-1);
    ref = ref * 2 + (state->compressed ? 1 : 0);
    lto_write_data (&ref, sizeof (uint32_t));
! 
    for (i = 0;  i < LTO_N_DECL_STREAMS; i++)
      write_global_references (ob, &state->streams[i]);
  }
--- 3280,3300 ----
  			    struct lto_out_decl_state *state)
  {
    unsigned i;
!   uint32_t ref, lm_order;
    tree decl;
  
    /* Write reference to FUNCTION_DECL.  If there is not function,
       write reference to void_type_node. */
    decl = (state->fn_decl) ? state->fn_decl : void_type_node;
    streamer_tree_cache_lookup (ob->writer_cache, decl, &ref);
!   gcc_assert (ref != (uint32_t)-1);
    ref = ref * 2 + (state->compressed ? 1 : 0);
    lto_write_data (&ref, sizeof (uint32_t));
!   if (state->fn_decl)
!     {
!       lm_order = state->linemap_id;
!       lto_write_data (&lm_order, sizeof (lm_order));
!     }
    for (i = 0;  i < LTO_N_DECL_STREAMS; i++)
      write_global_references (ob, &state->streams[i]);
  }
*************** lto_out_decl_state_written_size (struct
*** 3038,3043 ****
--- 3309,3316 ----
    size_t size;
  
    size = sizeof (int32_t);	/* fn_ref. */
+   if (state->fn_decl)
+     size += sizeof (int32_t);   /* linemap_id.  */
    for (i = 0; i < LTO_N_DECL_STREAMS; i++)
      {
        size += sizeof (int32_t); /* vector size. */
*************** produce_asm_for_decls (void)
*** 3487,3490 ****
--- 3760,3775 ----
    destroy_output_block (ob);
    if (lto_stream_offload_p)
      lto_write_mode_table ();
+ 
+   /* Copy or write the linemap section(s) as needed.  For incremental LTO, we
+      copy them into the output file now.  For WPA, we will copy them into a
+      dedicated file later.  Otherwise, we create a new one from scratch and
+      output it now.  */
+   if (flag_incremental_link == INCREMENTAL_LINK_LTO)
+     lto_copy_linemaps ();
+   else if (!flag_wpa)
+     {
+       gcc_checking_assert (!in_lto_p);
+       loc_output.produce_linemap_section ();
+     }
  }
diff -Nrcpad gcc-17-20260712/gcc/lto-streamer.cc gcc-17-20260719/gcc/lto-streamer.cc
*** gcc-17-20260712/gcc/lto-streamer.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/lto-streamer.cc	Sun Jul 19 22:32:07 2026
*************** lto_tag_name (enum LTO_tags tag)
*** 94,103 ****
  }
  
  
! /* Get a section name for a particular type or name.  The NAME field
!    is only used if SECTION_TYPE is LTO_section_function_body. For all
!    others it is ignored.  The callee of this function is responsible
!    to free the returned name.  */
  
  char *
  lto_get_section_name (int section_type, const char *name,
--- 94,103 ----
  }
  
  
! /* Get a section name for a particular type or name.  The NAME and NODE_ORDER
!    fields are only used if SECTION_TYPE is LTO_section_function_body or
!    LTO_section_linemap.  The callee of this function is responsible for freeing
!    the returned name.  */
  
  char *
  lto_get_section_name (int section_type, const char *name,
*************** lto_get_section_name (int section_type,
*** 105,111 ****
  {
    const char *add;
    char post[32];
!   const char *sep;
    char *buffer = NULL;
  
    if (section_type == LTO_section_function_body)
--- 105,111 ----
  {
    const char *add;
    char post[32];
!   const char *sep = ".";
    char *buffer = NULL;
  
    if (section_type == LTO_section_function_body)
*************** lto_get_section_name (int section_type,
*** 120,130 ****
        add = buffer;
        sep = "";
      }
!   else if (section_type < LTO_N_SECTION_TYPES)
      {
!       add = lto_section_name[section_type];
!       sep = ".";
      }
    else
      internal_error ("bytecode stream: unexpected LTO section %s", name);
  
--- 120,135 ----
        add = buffer;
        sep = "";
      }
!   else if (section_type == LTO_section_linemap)
      {
!       gcc_checking_assert (!name);
!       const auto section_name = lto_section_name[section_type];
!       buffer = XNEWVEC (char, strlen (section_name) + 32);
!       sprintf (buffer, "%s.%d", section_name, node_order);
!       add = buffer;
      }
+   else if (section_type < LTO_N_SECTION_TYPES)
+     add = lto_section_name[section_type];
    else
      internal_error ("bytecode stream: unexpected LTO section %s", name);
  
diff -Nrcpad gcc-17-20260712/gcc/lto-streamer.h gcc-17-20260719/gcc/lto-streamer.h
*** gcc-17-20260712/gcc/lto-streamer.h	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/lto-streamer.h	Sun Jul 19 22:32:07 2026
*************** along with GCC; see the file COPYING3.
*** 116,122 ****
  			  to terminate the statements and exception
  			  regions within this block.
  
!    12) STRINGS
  
       String are represented in the table as pairs, a length in ULEB128
       form followed by the data for the string.  */
--- 116,122 ----
  			  to terminate the statements and exception
  			  regions within this block.
  
!    13) STRINGS
  
       String are represented in the table as pairs, a length in ULEB128
       form followed by the data for the string.  */
*************** enum lto_section_type
*** 225,230 ****
--- 225,231 ----
    LTO_section_ipa_sra,
    LTO_section_odr_types,
    LTO_section_ipa_modref,
+   LTO_section_linemap,
    LTO_N_SECTION_TYPES		/* Must be last.  */
  };
  
*************** typedef void (lto_free_section_data_f) (
*** 258,267 ****
  					const char *,
  					size_t);
  
! /* The location cache holds expanded locations for streamed in trees.
!    This is done to reduce memory usage of libcpp linemap that strongly prefers
!    locations to be inserted in the source order.  */
  
  class lto_location_cache
  {
  public:
--- 259,276 ----
  					const char *,
  					size_t);
  
! /* Structure to map ordinary_map indices from streamed-in data to
!    the linemap they correspond to.  */
! struct GTY(()) lto_loc_map
! {
!   size_t nmaps;
!   size_t map[1];
! };
  
+ /* The location cache holds the ancillary data for streamed in trees.  This is
+    done to reduce memory usage in the libcpp linemap; we don't need to create an
+    adhoc location and store the ancillary data if the tree ends up being
+    merged.  */
  class lto_location_cache
  {
  public:
*************** public:
*** 273,337 ****
    void accept_location_cache ();
    /* Tree merging did succeed; throw away recent changes.  */
    void revert_location_cache ();
!   void input_location (location_t *loc, struct bitpack_d *bp,
  		       class data_in *data_in);
!   void input_location_and_block (location_t *loc, struct bitpack_d *bp,
  				 class lto_input_block *ib,
  				 class data_in *data_in);
!   lto_location_cache ()
!      : loc_cache (), accepted_length (0), current_file (NULL), current_line (0),
!        current_col (0), current_sysp (false), current_loc (UNKNOWN_LOCATION),
!        current_block (NULL_TREE)
    {
!     gcc_assert (!current_cache);
!     current_cache = this;
    }
    ~lto_location_cache ()
    {
!     apply_location_cache ();
!     gcc_assert (current_cache == this);
!     current_cache = NULL;
    }
  
!   /* There can be at most one instance of location cache (combining multiple
!      would bring it out of sync with libcpp linemap); point to current
!      one.  */
    static lto_location_cache *current_cache;
  
  private:
-   static int cmp_loc (const void *pa, const void *pb);
- 
    struct cached_location
    {
!     const char *file;
!     location_t *loc;
!     int line, col;
!     bool sysp;
      tree block;
      unsigned discr;
    };
  
!   /* The location cache.  */
  
    auto_vec<cached_location> loc_cache;
  
!   /* Accepted entries are ones used by trees that are known to be not unified
!      by tree merging.  */
! 
!   int accepted_length;
  
!   /* Bookkeeping to remember state in between calls to lto_apply_location_cache
!      When streaming gimple, the location cache is not used and thus
!      lto_apply_location_cache happens per location basis.  It is then
!      useful to avoid redundant calls of linemap API.  */
  
!   const char *current_file;
!   int current_line;
!   int current_col;
!   bool current_sysp;
!   location_t current_loc;
!   tree current_block;
!   unsigned current_discr;
  };
  
  /* Structure used as buffer for reading an LTO file.  */
--- 282,348 ----
    void accept_location_cache ();
    /* Tree merging did succeed; throw away recent changes.  */
    void revert_location_cache ();
!   void input_location (location_t *dest, struct bitpack_d *bp,
  		       class data_in *data_in);
!   void input_location_and_block (location_t *dest, struct bitpack_d *bp,
  				 class lto_input_block *ib,
  				 class data_in *data_in);
!   void set_linemap_offset (unsigned offset) { linemap_offset = offset; }
! 
!   explicit lto_location_cache (lto_file_decl_data *loc_data)
!     : decl_data{loc_data}
    {
!     if (decl_data)
!       {
! 	gcc_assert (!current_cache);
! 	current_cache = this;
!       }
    }
    ~lto_location_cache ()
    {
!     if (decl_data)
!       {
! 	apply_location_cache ();
! 	gcc_assert (current_cache == this);
! 	current_cache = NULL;
!       }
    }
  
!   /* There can be at most one active instance of location_cache, so that IPA
!      passes can find it if needed; point to current one.  */
    static lto_location_cache *current_cache;
  
  private:
    struct cached_location
    {
!     location_t *dest;
!     location_t loc;
      tree block;
      unsigned discr;
    };
  
!   /* Which linemap section we are using.  */
!   lto_file_decl_data *const decl_data;
!   const lto_loc_map *cur_loc_map = nullptr;
!   unsigned linemap_offset = 0;
  
+   /* The location cache.  */
    auto_vec<cached_location> loc_cache;
  
!   /* These keep track of most recently seen values as they are streamed in.  */
!   tree stream_block = NULL_TREE;
!   unsigned stream_discr = 0;
!   size_t stream_map_idx = 0;
!   location_t stream_loc_offset = 0;
!   unsigned stream_linemap_order = -1U;
  
!   /* These keep track of most recently accepted values.  */
!   cached_location current_cloc = {};
!   location_t current_loc = UNKNOWN_LOCATION;
  
!   /* Accepted entries are ones used by trees that are known to be not unified
!      by tree merging.  */
!   unsigned accepted_length = 0;
  };
  
  /* Structure used as buffer for reading an LTO file.  */
*************** struct GTY((for_user)) lto_in_decl_state
*** 507,512 ****
--- 518,527 ----
  
    /* True if decl state is compressed.  */
    bool compressed;
+ 
+   /* Order of the linemap section to be used for interpreting the locations
+      streamed for this decl.  */
+   unsigned linemap_id;
  };
  
  typedef struct lto_in_decl_state *lto_in_decl_state_ptr;
*************** struct lto_out_decl_state
*** 546,551 ****
--- 561,570 ----
  
    /* True if offload tables should be output. */
    bool output_offload_tables_p;
+ 
+   /* Order of the linemap section to be used for interpreting the locations
+      streamed for this decl.  */
+   unsigned linemap_id;
  };
  
  typedef struct lto_out_decl_state *lto_out_decl_state_ptr;
*************** struct GTY(()) lto_file_decl_data
*** 617,624 ****
--- 636,660 ----
    int unit_base;
  
    unsigned mode_bits;
+ 
+   /* Number of linemap sections contained in this file.  There is typically only
+      1, but WPA and INCREMENTAL_LINK_LTO modes may create files with more than
+      one linemap.  */
+   unsigned num_linemap_sections;
+ 
+   /* Location maps for locations streamed in this file.  */
+   lto_file_decl_data *loc_map_decl_data;
+   vec<lto_loc_map *, va_gc> *loc_maps;
  };
  
+ /* Given an input linemap ID, compute how it will be known in the output, given
+    that the output could be the combination of multiple input files.  */
+ inline unsigned
+ lto_linemap_output_id (unsigned linemap_id, const lto_file_decl_data *file_data)
+ {
+   return linemap_id + file_data->order;
+ }
+ 
  typedef struct lto_file_decl_data *lto_file_decl_data_ptr;
  
  struct lto_char_ptr_base
*************** struct output_block
*** 728,744 ****
       if we are serializing something else.  */
    symtab_node *symbol;
  
!   /* These are the last file and line that were seen in the stream.
!      If the current node differs from these, it needs to insert
!      something into the stream and fix these up.  */
!   const char *current_file;
!   int current_line;
!   int current_col;
!   bool current_sysp;
!   bool reset_locus;
!   bool emit_pwd;
    tree current_block;
    unsigned current_discr;
  
    /* Cache of nodes written in this section.  */
    struct streamer_tree_cache_d *writer_cache;
--- 764,776 ----
       if we are serializing something else.  */
    symtab_node *symbol;
  
!   /* These record the most-recently-streamed values, to avoid streaming
!      them unnecessarily.  */
    tree current_block;
    unsigned current_discr;
+   size_t current_map_idx;
+   location_t current_loc_offset;
+   unsigned current_linemap_id;
  
    /* Cache of nodes written in this section.  */
    struct streamer_tree_cache_d *writer_cache;
*************** public:
*** 773,778 ****
--- 805,814 ----
  
    /* Cache of source code location.  */
    lto_location_cache location_cache;
+ 
+   explicit data_in (lto_file_decl_data *data_for_loc)
+     : location_cache{data_for_loc}
+   {}
  };
  
  
*************** extern void lto_input_constructors_and_i
*** 869,876 ****
  extern void lto_input_toplevel_asms (struct lto_file_decl_data *, int);
  extern void lto_input_mode_table (struct lto_file_decl_data *);
  extern class data_in *lto_data_in_create (struct lto_file_decl_data *,
! 				    const char *, unsigned,
! 				    vec<ld_plugin_symbol_resolution_t> );
  extern void lto_data_in_delete (class data_in *);
  extern void lto_input_data_block (class lto_input_block *, void *, size_t);
  void lto_input_location (location_t *, struct bitpack_d *, class data_in *);
--- 905,913 ----
  extern void lto_input_toplevel_asms (struct lto_file_decl_data *, int);
  extern void lto_input_mode_table (struct lto_file_decl_data *);
  extern class data_in *lto_data_in_create (struct lto_file_decl_data *,
! 					  const char *, unsigned,
! 					  vec<ld_plugin_symbol_resolution_t>,
! 					  bool need_location_cache = true);
  extern void lto_data_in_delete (class data_in *);
  extern void lto_input_data_block (class lto_input_block *, void *, size_t);
  void lto_input_location (location_t *, struct bitpack_d *, class data_in *);
*************** extern void lto_output_toplevel_asms (lt
*** 902,907 ****
--- 939,946 ----
  extern void produce_asm (struct output_block *ob);
  extern void lto_output ();
  extern void produce_asm_for_decls ();
+ void lto_register_linemap_for_output (size_t, unsigned);
+ void lto_copy_linemaps ();
  void lto_output_decl_state_streams (struct output_block *,
  				    struct lto_out_decl_state *);
  void lto_output_decl_state_refs (struct output_block *,
diff -Nrcpad gcc-17-20260712/gcc/lto-wrapper.cc gcc-17-20260719/gcc/lto-wrapper.cc
*** gcc-17-20260712/gcc/lto-wrapper.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/lto-wrapper.cc	Sun Jul 19 22:32:07 2026
*************** cont1:
*** 1926,1931 ****
--- 1926,1932 ----
    for (i = 0; i < ltoobj_argc; ++i)
      obstack_ptr_grow (&argv_obstack, ltoobj_argv[i]);
    obstack_ptr_grow (&argv_obstack, NULL);
+   obstack_ptr_grow (&argv_obstack, NULL);
  
    new_argv = XOBFINISH (&argv_obstack, const char **);
    argv_ptr = &new_argv[new_head_argc];
*************** cont1:
*** 1975,1980 ****
--- 1976,1983 ----
        /* Parse the list of LTRANS inputs from the WPA stage.  */
        obstack_init (&env_obstack);
        nr = 0;
+       const char *linemap_name = nullptr;
+       char *linemap_arg = nullptr;
        for (;;)
  	{
  	  const unsigned piece = 32;
*************** cont:
*** 2003,2008 ****
--- 2006,2020 ----
  	    }
  	  input_name[len - 1] = '\0';
  
+ 	  if (!linemap_arg)
+ 	    {
+ 	      constexpr auto lf_opt = "-fltrans-linemap-file=";
+ 	      linemap_arg = concat (lf_opt, input_name, nullptr);
+ 	      free (input_name);
+ 	      linemap_name = linemap_arg + strlen (lf_opt);
+ 	      continue;
+ 	    }
+ 
  	  if (input_name[0] == '*')
  	    output_name = &input_name[1];
  
*************** cont:
*** 2133,2139 ****
  	  argv_ptr[2] = "-o";
  	  argv_ptr[3] = output_name;
  	  argv_ptr[4] = input_name;
! 	  argv_ptr[5] = NULL;
  	  if (parallel)
  	    {
  	      fprintf (mstream, "%s:\n\t@%s ", output_name, new_argv[0]);
--- 2145,2152 ----
  	  argv_ptr[2] = "-o";
  	  argv_ptr[3] = output_name;
  	  argv_ptr[4] = input_name;
! 	  argv_ptr[5] = linemap_arg;
! 	  argv_ptr[6] = NULL;
  	  if (parallel)
  	    {
  	      fprintf (mstream, "%s:\n\t@%s ", output_name, new_argv[0]);
*************** cont:
*** 2252,2257 ****
--- 2265,2280 ----
  	    if (early_debug_object_names[i] != NULL)
  	      printf ("%s\n", early_debug_object_names[i]);
  	}
+ 
+       if (linemap_arg)
+ 	{
+ 	  /* This should be done even if(ltrans_cache), since the linemap file
+ 	     changes when any of the inputs changes and is not part of the
+ 	     cache.  */
+ 	  maybe_unlink (linemap_name);
+ 	  free (linemap_arg);
+ 	}
+ 
        nr = 0;
        free (ltrans_priorities);
        free (output_names);
diff -Nrcpad gcc-17-20260712/gcc/match.pd gcc-17-20260719/gcc/match.pd
*** gcc-17-20260712/gcc/match.pd	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/match.pd	Sun Jul 19 22:32:08 2026
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 236,241 ****
--- 236,250 ----
        && !TYPE_UNSIGNED (TREE_TYPE (@0)))
    (abs @0)))
  
+ /* (X ^ -(X < 0)) + (X < 0) -> abs (X) */
+ (simplify
+  (plus:c (bit_xor:c @0 (negate (convert@1 (lt @0 integer_zerop)))) @1)
+  (if (INTEGRAL_TYPE_P (TREE_TYPE (@0))
+       && !TYPE_UNSIGNED (TREE_TYPE (@0))
+       && !TYPE_SATURATING (TREE_TYPE (@0))
+       && (GIMPLE || !TREE_SIDE_EFFECTS (@0)))
+   (abs @0)))
+ 
  /* Following match patterns are used by the match_spaceship function to detect
     all possible spaceship combinations.  */
  #if GIMPLE
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 4831,4836 ****
--- 4840,4855 ----
     (cmp (bit_ior (convert:utype @0) (convert:utype @1))
          { build_zero_cst (utype); } ))))
  
+ /* Optimize MIN (a, b) >= 0 to a >= 0 if b is non-negative.
+    Optimize MIN (a, b) < 0 to a < 0 if b is non-negative.
+    Optimize (a | b) >= 0 to a >= 0 if b is non-negative.
+    Optimize (a | b) < 0 to a < 0 if b is non-negative.  */
+ (for op (min bit_ior)
+   (for cmp (ge lt)
+     (simplify
+       (cmp (op:c @0 tree_expr_nonnegative_p@1) integer_zerop@2)
+         (cmp @0 @2))))
+ 
  /* Undo fancy ways of writing max/min or other ?: expressions, like
     a - ((a - b) & -(a < b))  and  a - (a - b) * (a < b) into (a < b) ? b : a.
     People normally use ?: and that is what we actually try to optimize.  */
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 4853,4858 ****
--- 4872,4885 ----
        && (GIMPLE || !TREE_SIDE_EFFECTS (@1)))
    (cond (convert:boolean_type_node @2) @1 @0)))
  
+ /* Transform (A ^ -cmp) + cmp into cmp ? -A : A.  */
+ (simplify
+  (plus:c (bit_xor:c @0 (negate zero_one_valued_p@1)) @1)
+  (if (INTEGRAL_TYPE_P (type)
+       && !TYPE_SATURATING (type)
+       && (GIMPLE || !TREE_SIDE_EFFECTS (@0)))
+   (cond (convert:boolean_type_node @1) (negate @0) @0)))
+ 
  /* Transform A & (B*cmp) into (A&B)*cmp.  */
  (simplify
   (bit_and:c (mult:cs zero_one_valued_p@0 @1) @2)
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 5872,5878 ****
   (plus @0 @0)
   (if (SCALAR_FLOAT_TYPE_P (type))
    (mult @0 { build_real (type, dconst2); })
!   (if (INTEGRAL_TYPE_P (type))
     (mult @0 { build_int_cst (type, 2); }))))
  
  /* 0 - X  ->  -X.  */
--- 5899,5906 ----
   (plus @0 @0)
   (if (SCALAR_FLOAT_TYPE_P (type))
    (mult @0 { build_real (type, dconst2); })
!   (if (INTEGRAL_TYPE_P (type)
!        && TYPE_PRECISION (type) > (2 - TYPE_UNSIGNED (type)))
     (mult @0 { build_int_cst (type, 2); }))))
  
  /* 0 - X  ->  -X.  */
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 9513,9519 ****
    (if (optimize
        && !HONOR_SNANS (@1)
        && types_match (type, TREE_TYPE (@0))
!       && TYPE_PRECISION (type) < TYPE_PRECISION (TREE_TYPE (@1)))
     (abs @0)))
  
  (for froms (BUILT_IN_FMAF BUILT_IN_FMA BUILT_IN_FMAL)
--- 9541,9549 ----
    (if (optimize
        && !HONOR_SNANS (@1)
        && types_match (type, TREE_TYPE (@0))
!       && element_precision (type) < element_precision (TREE_TYPE (@1))
!       && (!VECTOR_TYPE_P (type)
! 	  || target_supports_op_p (type, ABS_EXPR, optab_default)))
     (abs @0)))
  
  (for froms (BUILT_IN_FMAF BUILT_IN_FMA BUILT_IN_FMAL)
*************** and,
*** 12517,12522 ****
--- 12547,12573 ----
          && @0 == @3)
      (bit_xor (rrotate @0 @4) @2)))
  
+ 
+ /* (T0)(1 << x) & (T1)(1 << x) -> (T)(1 << x),
+  *  but keep the shift in the wider type to avoid introducing
+  *  undefined behaviour.  */
+ (simplify
+  (bit_and:c
+   (convert? (lshift@2 integer_onep@1 @0))
+   (convert? (lshift@3 integer_onep@4 @0)))
+  (with
+   {
+     tree ltype0 = TREE_TYPE (@2);
+     tree ltype1 = TREE_TYPE (@3);
+   }
+   (if (INTEGRAL_TYPE_P (type)
+        && INTEGRAL_TYPE_P (ltype0)
+        && INTEGRAL_TYPE_P (ltype1)
+        && element_precision (type) <= element_precision (ltype0)
+        && element_precision (ltype0) <= element_precision (ltype1))
+        (convert:type
+ 	  (lshift:ltype1 { @4; } @0)))))
+ 
  /* Optimize extraction from a uniform vector to a representative element as
     long as the requested element is within range.  */
  (simplify (IFN_VEC_EXTRACT (vec_duplicate @0) INTEGER_CST@1)
diff -Nrcpad gcc-17-20260712/gcc/omp-builtins.def gcc-17-20260719/gcc/omp-builtins.def
*** gcc-17-20260712/gcc/omp-builtins.def	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/omp-builtins.def	Sun Jul 19 22:32:08 2026
*************** DEF_GOMP_BUILTIN (BUILT_IN_GOMP_ERROR, "
*** 508,513 ****
--- 508,516 ----
  DEF_GOMP_BUILTIN (BUILT_IN_GOMP_HAS_MASKED_THREAD_NUM,
  		  "GOMP_has_masked_thread_num", BT_FN_BOOL_INT,
  		  ATTR_CONST_NOTHROW_LEAF_LIST)
+ DEF_GOMP_BUILTIN (BUILT_IN_GOMP_HAS_MASKED_THREAD_NUM_WITH_END,
+ 		  "GOMP_has_masked_thread_num_with_end", BT_FN_BOOL_INT,
+ 		  ATTR_CONST_NOTHROW_LEAF_LIST)
  DEF_GOMP_BUILTIN (BUILT_IN_GOMP_MASKED_END, "GOMP_masked_end", BT_FN_VOID,
  		  ATTR_NOTHROW_LEAF_LIST)
  /* TODO review these function attributes once OMPT implementation done  */
*************** DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_STA
*** 523,529 ****
  		  "GOMP_loop_static_worksharing_end", BT_FN_VOID,
  		  ATTR_NOTHROW_LEAF_LIST)
  DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_STATIC_WORKSHARING_DISPATCH,
! 		  "GOMP_loop_static_worksharing_dispatch", BT_FN_VOID,
  		  ATTR_NOTHROW_LEAF_LIST)
  DEF_GOMP_BUILTIN (BUILT_IN_GOMP_DISTRIBUTE_STATIC_WORKSHARING,
  		  "GOMP_distribute_static_worksharing",
--- 526,533 ----
  		  "GOMP_loop_static_worksharing_end", BT_FN_VOID,
  		  ATTR_NOTHROW_LEAF_LIST)
  DEF_GOMP_BUILTIN (BUILT_IN_GOMP_LOOP_STATIC_WORKSHARING_DISPATCH,
! 		  "GOMP_loop_static_worksharing_dispatch",
! 		  BT_FN_VOID_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG,
  		  ATTR_NOTHROW_LEAF_LIST)
  DEF_GOMP_BUILTIN (BUILT_IN_GOMP_DISTRIBUTE_STATIC_WORKSHARING,
  		  "GOMP_distribute_static_worksharing",
*************** DEF_GOMP_BUILTIN (BUILT_IN_GOMP_DISTRIBU
*** 537,541 ****
  		  "GOMP_distribute_static_worksharing_end", BT_FN_VOID,
  		  ATTR_NOTHROW_LEAF_LIST)
  DEF_GOMP_BUILTIN (BUILT_IN_GOMP_DISTRIBUTE_STATIC_WORKSHARING_DISPATCH,
! 		  "GOMP_distribute_static_worksharing_dispatch", BT_FN_VOID,
  		  ATTR_NOTHROW_LEAF_LIST)
--- 541,546 ----
  		  "GOMP_distribute_static_worksharing_end", BT_FN_VOID,
  		  ATTR_NOTHROW_LEAF_LIST)
  DEF_GOMP_BUILTIN (BUILT_IN_GOMP_DISTRIBUTE_STATIC_WORKSHARING_DISPATCH,
! 		  "GOMP_distribute_static_worksharing_dispatch",
! 		  BT_FN_VOID_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG_ULONGLONG,
  		  ATTR_NOTHROW_LEAF_LIST)
diff -Nrcpad gcc-17-20260712/gcc/omp-expand.cc gcc-17-20260719/gcc/omp-expand.cc
*** gcc-17-20260712/gcc/omp-expand.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/omp-expand.cc	Sun Jul 19 22:32:08 2026
*************** expand_omp_for_static_nochunk (struct om
*** 5602,5609 ****
  	default:
  	  gcc_unreachable ();
  	}
!       gcall *g = gimple_build_call (decl, 0);
!       gsi_insert_before (&gsi, g, GSI_SAME_STMT);
      }
  
    gsi = gsi_last_nondebug_bb (exit_bb);
--- 5602,5616 ----
  	default:
  	  gcc_unreachable ();
  	}
!       tree n_ull = fold_convert (long_long_unsigned_type_node, n);
!       tree n1_ull = fold_convert (long_long_unsigned_type_node, n1);
!       tree step_ull = fold_convert (long_long_unsigned_type_node, step);
!       tree chunk_size_ull = build_int_cst (long_long_unsigned_type_node, 0);
!       tree v_ull = fold_convert (long_long_unsigned_type_node, fd->loop.v);
!       tree call = build_call_expr (decl, 5, n_ull, n1_ull, step_ull,
! 				   chunk_size_ull, v_ull);
!       force_gimple_operand_gsi (&gsi, call, true, NULL_TREE, true,
! 				GSI_SAME_STMT);
      }
  
    gsi = gsi_last_nondebug_bb (exit_bb);
*************** expand_omp_for_static_chunk (struct omp_
*** 6441,6448 ****
  	default:
  	  gcc_unreachable ();
  	}
!       gcall *g = gimple_build_call (decl, 0);
!       gsi_insert_before (&gsi, g, GSI_SAME_STMT);
      }
  
    /* Connect the new blocks.  */
--- 6448,6463 ----
  	default:
  	  gcc_unreachable ();
  	}
!       tree n_ull = fold_convert (long_long_unsigned_type_node, n);
!       tree n1_ull = fold_convert (long_long_unsigned_type_node, n1);
!       tree step_ull = fold_convert (long_long_unsigned_type_node, step);
!       tree chunk_size_ull
! 	= fold_convert (long_long_unsigned_type_node, chunk_size);
!       tree v_ull = fold_convert (long_long_unsigned_type_node, fd->loop.v);
!       tree call = build_call_expr (decl, 5, n_ull, n1_ull, step_ull,
! 				   chunk_size_ull, v_ull);
!       force_gimple_operand_gsi (&gsi, call, true, NULL_TREE, true,
! 				GSI_SAME_STMT);
      }
  
    /* Connect the new blocks.  */
*************** expand_omp_target (struct omp_region *re
*** 10014,10019 ****
--- 10029,10035 ----
    tree clauses = gimple_omp_target_clauses (entry_stmt);
  
    bool is_ancestor = false;
+   bool is_host_only = false;
    child_fn = child_fn2 = NULL_TREE;
    child_cfun = NULL;
    if (offloaded)
*************** expand_omp_target (struct omp_region *re
*** 10021,10026 ****
--- 10037,10045 ----
        c = omp_find_clause (clauses, OMP_CLAUSE_DEVICE);
        if (ENABLE_OFFLOADING && c)
  	is_ancestor = OMP_CLAUSE_DEVICE_ANCESTOR (c);
+       c = omp_find_clause (clauses, OMP_CLAUSE_DEVICE_TYPE);
+       if (c && OMP_CLAUSE_DEVICE_TYPE_KIND (c) == OMP_CLAUSE_DEVICE_TYPE_HOST)
+ 	is_host_only = true;
        child_fn = gimple_omp_target_child_fn (entry_stmt);
        child_cfun = DECL_STRUCT_FUNCTION (child_fn);
      }
*************** expand_omp_target (struct omp_region *re
*** 10211,10217 ****
  	{
  	  if (in_lto_p)
  	    DECL_PRESERVE_P (child_fn) = 1;
! 	  if (!is_ancestor)
  	    vec_safe_push (offload_funcs, child_fn);
  	}
  
--- 10230,10236 ----
  	{
  	  if (in_lto_p)
  	    DECL_PRESERVE_P (child_fn) = 1;
! 	  if (!is_ancestor && !is_host_only)
  	    vec_safe_push (offload_funcs, child_fn);
  	}
  
*************** expand_omp_target (struct omp_region *re
*** 10393,10400 ****
      }
    else
      {
!       c = omp_find_clause (clauses, OMP_CLAUSE_DEVICE);
!       if (c)
  	{
  	  device = OMP_CLAUSE_DEVICE_ID (c);
  	  /* Ensure 'device' is of the correct type.  */
--- 10412,10421 ----
      }
    else
      {
!       if (is_host_only)
! 	device = build_int_cst (integer_type_node,
! 				GOMP_DEVICE_HOST_FALLBACK - 1);
!       else if ((c = omp_find_clause (clauses, OMP_CLAUSE_DEVICE)) != NULL_TREE)
  	{
  	  device = OMP_CLAUSE_DEVICE_ID (c);
  	  /* Ensure 'device' is of the correct type.  */
diff -Nrcpad gcc-17-20260712/gcc/omp-low.cc gcc-17-20260719/gcc/omp-low.cc
*** gcc-17-20260712/gcc/omp-low.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/omp-low.cc	Sun Jul 19 22:32:08 2026
*************** omp_maybe_offloaded_ctx (omp_context *ct
*** 2131,2140 ****
  }
  
  /* Build a decl for the omp child function.  It'll not contain a body
!    yet, just the bare decl.  */
  
  static void
! create_omp_child_function (omp_context *ctx, bool task_copy)
  {
    tree decl, type, name, t;
  
--- 2131,2140 ----
  }
  
  /* Build a decl for the omp child function.  It'll not contain a body
!    yet, just the bare decl. If HOST_ONLY, do not create a device version.  */
  
  static void
! create_omp_child_function (omp_context *ctx, bool task_copy, bool host_only)
  {
    tree decl, type, name, t;
  
*************** create_omp_child_function (omp_context *
*** 2189,2195 ****
    DECL_FUNCTION_VERSIONED (decl)
      = DECL_FUNCTION_VERSIONED (current_function_decl);
  
!   if (omp_maybe_offloaded_ctx (ctx))
      {
        cgraph_node::get_create (decl)->offloadable = 1;
        if (ENABLE_OFFLOADING)
--- 2189,2195 ----
    DECL_FUNCTION_VERSIONED (decl)
      = DECL_FUNCTION_VERSIONED (current_function_decl);
  
!   if (omp_maybe_offloaded_ctx (ctx) && !host_only)
      {
        cgraph_node::get_create (decl)->offloadable = 1;
        if (ENABLE_OFFLOADING)
*************** scan_omp_parallel (gimple_stmt_iterator
*** 2435,2441 ****
    DECL_NAMELESS (name) = 1;
    TYPE_NAME (ctx->record_type) = name;
    TYPE_ARTIFICIAL (ctx->record_type) = 1;
!   create_omp_child_function (ctx, false);
    gimple_omp_parallel_set_child_fn (stmt, ctx->cb.dst_fn);
  
    scan_sharing_clauses (gimple_omp_parallel_clauses (stmt), ctx);
--- 2435,2441 ----
    DECL_NAMELESS (name) = 1;
    TYPE_NAME (ctx->record_type) = name;
    TYPE_ARTIFICIAL (ctx->record_type) = 1;
!   create_omp_child_function (ctx, false, false);
    gimple_omp_parallel_set_child_fn (stmt, ctx->cb.dst_fn);
  
    scan_sharing_clauses (gimple_omp_parallel_clauses (stmt), ctx);
*************** scan_omp_task (gimple_stmt_iterator *gsi
*** 2488,2494 ****
    DECL_NAMELESS (name) = 1;
    TYPE_NAME (ctx->record_type) = name;
    TYPE_ARTIFICIAL (ctx->record_type) = 1;
!   create_omp_child_function (ctx, false);
    gimple_omp_task_set_child_fn (stmt, ctx->cb.dst_fn);
  
    scan_sharing_clauses (gimple_omp_task_clauses (stmt), ctx);
--- 2488,2494 ----
    DECL_NAMELESS (name) = 1;
    TYPE_NAME (ctx->record_type) = name;
    TYPE_ARTIFICIAL (ctx->record_type) = 1;
!   create_omp_child_function (ctx, false, false);
    gimple_omp_task_set_child_fn (stmt, ctx->cb.dst_fn);
  
    scan_sharing_clauses (gimple_omp_task_clauses (stmt), ctx);
*************** scan_omp_task (gimple_stmt_iterator *gsi
*** 2502,2508 ****
        DECL_NAMELESS (name) = 1;
        TYPE_NAME (ctx->srecord_type) = name;
        TYPE_ARTIFICIAL (ctx->srecord_type) = 1;
!       create_omp_child_function (ctx, true);
      }
  
    scan_omp (gimple_omp_body_ptr (stmt), ctx);
--- 2502,2508 ----
        DECL_NAMELESS (name) = 1;
        TYPE_NAME (ctx->srecord_type) = name;
        TYPE_ARTIFICIAL (ctx->srecord_type) = 1;
!       create_omp_child_function (ctx, true, false);
      }
  
    scan_omp (gimple_omp_body_ptr (stmt), ctx);
*************** scan_omp_target (gomp_target *stmt, omp_
*** 3209,3215 ****
  
    if (offloaded)
      {
!       create_omp_child_function (ctx, false);
        gimple_omp_target_set_child_fn (stmt, ctx->cb.dst_fn);
      }
  
--- 3209,3218 ----
  
    if (offloaded)
      {
!       tree c = omp_find_clause (clauses, OMP_CLAUSE_DEVICE_TYPE);
!       bool host_only
! 	= c && OMP_CLAUSE_DEVICE_TYPE_KIND (c) == OMP_CLAUSE_DEVICE_TYPE_HOST;
!       create_omp_child_function (ctx, false, host_only);
        gimple_omp_target_set_child_fn (stmt, ctx->cb.dst_fn);
      }
  
*************** scan_omp_teams (gomp_teams *stmt, omp_co
*** 3268,3274 ****
    DECL_NAMELESS (name) = 1;
    TYPE_NAME (ctx->record_type) = name;
    TYPE_ARTIFICIAL (ctx->record_type) = 1;
!   create_omp_child_function (ctx, false);
    gimple_omp_teams_set_child_fn (stmt, ctx->cb.dst_fn);
  
    scan_sharing_clauses (gimple_omp_teams_clauses (stmt), ctx);
--- 3271,3277 ----
    DECL_NAMELESS (name) = 1;
    TYPE_NAME (ctx->record_type) = name;
    TYPE_ARTIFICIAL (ctx->record_type) = 1;
!   create_omp_child_function (ctx, false, false);
    gimple_omp_teams_set_child_fn (stmt, ctx->cb.dst_fn);
  
    scan_sharing_clauses (gimple_omp_teams_clauses (stmt), ctx);
*************** lower_private_allocate (tree var, tree n
*** 4881,4886 ****
--- 4884,4895 ----
        return false;
      }
  
+   if (gimple_code (ctx->stmt) == GIMPLE_OMP_TARGET && DECL_P (allocator))
+     {
+       allocator = lookup_decl (allocator, ctx);
+       gcc_checking_assert (allocator != NULL_TREE);
+     }
+ 
    unsigned HOST_WIDE_INT ialign = 0;
    if (TREE_CODE (allocator) == TREE_LIST)
      {
*************** lower_omp_master (gimple_stmt_iterator *
*** 9137,9143 ****
    gsi_replace (gsi_p, bind, true);
    gimple_bind_add_stmt (bind, stmt);
  
!   bfn_decl = builtin_decl_explicit (BUILT_IN_GOMP_HAS_MASKED_THREAD_NUM);
    x = build_call_expr_loc (loc, bfn_decl, 1, filter);
    x = build3 (COND_EXPR, void_type_node, x, NULL, build_and_jump (&lab));
    tseq = NULL;
--- 9146,9154 ----
    gsi_replace (gsi_p, bind, true);
    gimple_bind_add_stmt (bind, stmt);
  
!   bfn_decl = builtin_decl_explicit (
!     flag_openmp_ompt ? BUILT_IN_GOMP_HAS_MASKED_THREAD_NUM_WITH_END
! 		     : BUILT_IN_GOMP_HAS_MASKED_THREAD_NUM);
    x = build_call_expr_loc (loc, bfn_decl, 1, filter);
    x = build3 (COND_EXPR, void_type_node, x, NULL, build_and_jump (&lab));
    tseq = NULL;
*************** lower_omp_target (gimple_stmt_iterator *
*** 12939,12944 ****
--- 12950,12968 ----
    hash_map<tree, tree> alloc_map;
    hash_map<tree, gimple_seq> alloc_seq_map;
  
+   /* The value expression for USES_ALLOCATORS needs to be setup before the
+      allocator is used via lower_private_allocate.  */
+   for (c = clauses; c ; c = OMP_CLAUSE_CHAIN (c))
+     if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_USES_ALLOCATORS)
+       {
+ 	tree allocator = OMP_CLAUSE_USES_ALLOCATORS_ALLOCATOR (c);
+ 	tree new_allocator = lookup_decl (allocator, ctx);
+ 	tree x = build_receiver_ref (allocator, false, ctx);
+ 	SET_DECL_VALUE_EXPR (new_allocator, x);
+ 	DECL_HAS_VALUE_EXPR_P (new_allocator) = 1;
+ 	map_cnt++;
+       }
+ 
    for (c = clauses; c ; c = OMP_CLAUSE_CHAIN (c))
      switch (OMP_CLAUSE_CODE (c))
        {
*************** lower_omp_target (gimple_stmt_iterator *
*** 13284,13304 ****
  	    DECL_HAS_VALUE_EXPR_P (new_var) = 1;
  	  }
  	break;
- 	case OMP_CLAUSE_DEVICE_TYPE:
- 	  /* FIXME: Ensure that 'nohost' also has not implied before that
- 	     'g->have_offload = true' or an implicit declare target.  */
- 	  if (OMP_CLAUSE_DEVICE_TYPE_KIND (c) != OMP_CLAUSE_DEVICE_TYPE_ANY)
- 	    sorry_at (OMP_CLAUSE_LOCATION (c),
- 		      "only the %<device_type(any)%> is supported");
- 	  break;
-       case OMP_CLAUSE_USES_ALLOCATORS:
- 	allocator = OMP_CLAUSE_USES_ALLOCATORS_ALLOCATOR (c);
- 	tree new_allocator = lookup_decl (allocator, ctx);
- 	x = build_receiver_ref (allocator, false, ctx);
- 	SET_DECL_VALUE_EXPR (new_allocator, x);
- 	DECL_HAS_VALUE_EXPR_P (new_allocator) = 1;
- 	map_cnt++;
- 	break;
        }
  
    if (offloaded)
--- 13308,13313 ----
*************** lower_omp_target (gimple_stmt_iterator *
*** 14044,14064 ****
  		ntraits = integer_zero_node;
  		traits_var = null_pointer_node;
  	      }
- 	    else if (DECL_INITIAL (traits))
- 	      {
- 		location_t loc = OMP_CLAUSE_LOCATION (c);
- 		ntraits = array_type_nelts_top (TREE_TYPE (traits));
- 		tree t = DECL_INITIAL (traits);
- 		t = get_initialized_tmp_var (t, &ilist, NULL);
- 		traits_var = build_fold_addr_expr_loc (loc, t);
- 	      }
  	    else
  	      {
- 		/* This happens for VLAs, which probably aren't useful
- 		   because they can't be const initialized in the same
- 		   scope....  is there something else?  */
  		location_t loc = OMP_CLAUSE_LOCATION (c);
- 		gcc_assert (TREE_CODE (TREE_TYPE (traits)) == ARRAY_TYPE);
  		ntraits = array_type_nelts_top (TREE_TYPE (traits));
  		traits_var = build_fold_addr_expr_loc (loc, traits);
  	      }
--- 14053,14061 ----
diff -Nrcpad gcc-17-20260712/gcc/omp-offload.cc gcc-17-20260719/gcc/omp-offload.cc
*** gcc-17-20260712/gcc/omp-offload.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/omp-offload.cc	Sun Jul 19 22:32:08 2026
*************** omp_discover_declare_target_tgt_fn_r (tr
*** 272,278 ****
    else if (TREE_CODE (*tp) == OMP_TARGET)
      {
        tree c = omp_find_clause (OMP_CLAUSES (*tp), OMP_CLAUSE_DEVICE);
!       if (c && OMP_CLAUSE_DEVICE_ANCESTOR (c))
  	*walk_subtrees = 0;
      }
    return NULL_TREE;
--- 272,281 ----
    else if (TREE_CODE (*tp) == OMP_TARGET)
      {
        tree c = omp_find_clause (OMP_CLAUSES (*tp), OMP_CLAUSE_DEVICE);
!       tree c2 = omp_find_clause (OMP_CLAUSES (*tp), OMP_CLAUSE_DEVICE_TYPE);
!       if ((c && OMP_CLAUSE_DEVICE_ANCESTOR (c))
! 	   || (c2 && (OMP_CLAUSE_DEVICE_TYPE_KIND (c2)
! 		      == OMP_CLAUSE_DEVICE_TYPE_HOST)))
  	*walk_subtrees = 0;
      }
    return NULL_TREE;
*************** omp_discover_declare_target_fn_r (tree *
*** 286,292 ****
    if (TREE_CODE (*tp) == OMP_TARGET)
      {
        tree c = omp_find_clause (OMP_CLAUSES (*tp), OMP_CLAUSE_DEVICE);
!       if (!c || !OMP_CLAUSE_DEVICE_ANCESTOR (c))
  	walk_tree_without_duplicates (&OMP_TARGET_BODY (*tp),
  				      omp_discover_declare_target_tgt_fn_r,
  				      data);
--- 289,298 ----
    if (TREE_CODE (*tp) == OMP_TARGET)
      {
        tree c = omp_find_clause (OMP_CLAUSES (*tp), OMP_CLAUSE_DEVICE);
!       tree c2 = omp_find_clause (OMP_CLAUSES (*tp), OMP_CLAUSE_DEVICE_TYPE);
!       if ((!c || !OMP_CLAUSE_DEVICE_ANCESTOR (c))
! 	  && (!c2 || (OMP_CLAUSE_DEVICE_TYPE_KIND (c2)
! 		      != OMP_CLAUSE_DEVICE_TYPE_HOST)))
  	walk_tree_without_duplicates (&OMP_TARGET_BODY (*tp),
  				      omp_discover_declare_target_tgt_fn_r,
  				      data);
diff -Nrcpad gcc-17-20260712/gcc/optabs.cc gcc-17-20260719/gcc/optabs.cc
*** gcc-17-20260712/gcc/optabs.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/optabs.cc	Sun Jul 19 22:32:08 2026
*************** emit_cmp_and_jump_insns (rtx x, rtx y, e
*** 5097,5104 ****
  	      create_input_operand (&ops[offset + 1], op1c, mode2);
  	      if (masked_op)
  		{
  		  rtx mask_op = expand_normal (masked_op);
- 		  auto mask_mode = GET_MODE (mask_op);
  		  create_input_operand (&ops[0], mask_op, mask_mode);
  		}
  	      else if (len_op)
--- 5097,5104 ----
  	      create_input_operand (&ops[offset + 1], op1c, mode2);
  	      if (masked_op)
  		{
+ 		  auto mask_mode = TYPE_MODE (TREE_TYPE (masked_op));
  		  rtx mask_op = expand_normal (masked_op);
  		  create_input_operand (&ops[0], mask_op, mask_mode);
  		}
  	      else if (len_op)
diff -Nrcpad gcc-17-20260712/gcc/opts.cc gcc-17-20260719/gcc/opts.cc
*** gcc-17-20260712/gcc/opts.cc	Sun Jul 12 22:32:08 2026
--- gcc-17-20260719/gcc/opts.cc	Sun Jul 19 22:32:08 2026
*************** gen_command_line_string (cl_decoded_opti
*** 3964,3969 ****
--- 3964,3970 ----
        case OPT_nostdinc__:
        case OPT_fpreprocessed:
        case OPT_fltrans_output_list_:
+       case OPT_fltrans_linemap_file_:
        case OPT_fresolution_:
        case OPT_fdebug_prefix_map_:
        case OPT_fmacro_prefix_map_:
diff -Nrcpad gcc-17-20260712/gcc/print-rtl.cc gcc-17-20260719/gcc/print-rtl.cc
*** gcc-17-20260712/gcc/print-rtl.cc	Sun Jul 12 22:32:10 2026
--- gcc-17-20260719/gcc/print-rtl.cc	Sun Jul 19 22:32:10 2026
*************** rtx_writer::print_rtx_operand_code_i (co
*** 508,514 ****
  #if !defined(GENERATOR_FILE) && NUM_UNSPEC_VALUES > 0
    else if (idx == 1
  	   && (GET_CODE (in_rtx) == UNSPEC
! 	       || GET_CODE (in_rtx) == UNSPEC_VOLATILE)
  	   && XINT (in_rtx, 1) >= 0
  	   && XINT (in_rtx, 1) < NUM_UNSPEC_VALUES)
      fprintf (m_outfile, " %s", unspec_strings[XINT (in_rtx, 1)]);
--- 508,518 ----
  #if !defined(GENERATOR_FILE) && NUM_UNSPEC_VALUES > 0
    else if (idx == 1
  	   && (GET_CODE (in_rtx) == UNSPEC
! #if !(NUM_UNSPECV_VALUES > 0)
! 	       // Only accept unspec_volatiles, if there's no unspecv enum.
! 	       || GET_CODE (in_rtx) == UNSPEC_VOLATILE
! #endif
! 	       || false)
  	   && XINT (in_rtx, 1) >= 0
  	   && XINT (in_rtx, 1) < NUM_UNSPEC_VALUES)
      fprintf (m_outfile, " %s", unspec_strings[XINT (in_rtx, 1)]);
*************** print_exp (pretty_printer *pp, const_rtx
*** 1610,1617 ****
  	      pp_comma (pp);
  	    print_pattern (pp, XVECEXP (x, 0, i), verbose);
  	  }
! 	pp_string (pp, "] ");
! 	pp_decimal_int (pp, XINT (x, 1));
        }
        break;
      default:
--- 1614,1649 ----
  	      pp_comma (pp);
  	    print_pattern (pp, XVECEXP (x, 0, i), verbose);
  	  }
! 	pp_string (pp, "]");
! 	const char *str = nullptr;
! 	auto unspec = XINT (x, 1);
! #if !defined(GENERATOR_FILE)
! 	if (unspec < 0)
! 	  ;
! #if NUM_UNSPECV_VALUES > 0
! 	else if (GET_CODE (x) == UNSPEC_VOLATILE
! 		 && unspec < NUM_UNSPECV_VALUES)
! 	  str = unspecv_strings[unspec];
! #endif
! #if NUM_UNSPEC_VALUES > 0
! 	else if (true
! #if NUM_UNSPECV_VALUES > 0
! 		 // Only accept unspec_volatiles, if there's no unspecv enum.
! 		 && GET_CODE (x) == UNSPEC
! #endif
! 		 && unspec < NUM_UNSPEC_VALUES)
! 	  str = unspec_strings[unspec];
! #endif
! #endif
! 	if (str)
! 	  {
! 	    // Strip leading UNSPEC[_] leaving FOO or V_FOO by convention.
! 	    if (0 == strncmp (str, "UNSPEC", 6))
! 	      str += 6 + (str[6] == '_');
! 	    pp_string (pp, str);
! 	  }
! 	else
! 	  pp_decimal_int (pp, unspec);
        }
        break;
      default:
diff -Nrcpad gcc-17-20260712/gcc/range-op.cc gcc-17-20260719/gcc/range-op.cc
*** gcc-17-20260712/gcc/range-op.cc	Sun Jul 12 22:32:11 2026
--- gcc-17-20260719/gcc/range-op.cc	Sun Jul 19 22:32:10 2026
*************** operator_logical_and::fold_range (irange
*** 3420,3441 ****
  bool
  operator_logical_and::op1_range (irange &r, tree type,
  				 const irange &lhs,
! 				 const irange &op2 ATTRIBUTE_UNUSED,
  				 relation_trio) const
  {
!    switch (get_bool_state (r, lhs, type))
!      {
!      case BRS_TRUE:
!        // A true result means both sides of the AND must be true.
!        r = range_true (type);
!        break;
!      default:
!        // Any other result means only one side has to be false, the
!        // other side can be anything.  So we cannot be sure of any
!        // result here.
!        r = range_true_and_false (type);
!        break;
!      }
    return true;
  }
  
--- 3420,3450 ----
  bool
  operator_logical_and::op1_range (irange &r, tree type,
  				 const irange &lhs,
! 				 const irange &op2,
  				 relation_trio) const
  {
!   switch (get_bool_state (r, lhs, type))
!     {
!     case BRS_TRUE:
!       // A TRUE result means both sides of the AND must be true.
!       r = range_true (type);
!       return true;
! 
!     case BRS_FALSE:
!       // A FALSE result when op2 is TRUE, must have op1 FALSE.
!       if (!op2.contains_p (wi::zero (TYPE_PRECISION (op2.type ()))))
! 	{
! 	  r = range_false (type);
! 	  return true;
! 	}
!       break;
! 
!     default:
!       break;
!     }
! 
!   // Any other result means we cannot be sure of any result.
!   r = range_true_and_false (type);
    return true;
  }
  
*************** operator_logical_or::fold_range (irange
*** 3950,3971 ****
  bool
  operator_logical_or::op1_range (irange &r, tree type,
  				const irange &lhs,
! 				const irange &op2 ATTRIBUTE_UNUSED,
  				relation_trio) const
  {
!    switch (get_bool_state (r, lhs, type))
!      {
!      case BRS_FALSE:
!        // A false result means both sides of the OR must be false.
!        r = range_false (type);
!        break;
!      default:
!        // Any other result means only one side has to be true, the
!        // other side can be anything. so we can't be sure of any result
!        // here.
!        r = range_true_and_false (type);
!        break;
      }
    return true;
  }
  
--- 3959,3989 ----
  bool
  operator_logical_or::op1_range (irange &r, tree type,
  				const irange &lhs,
! 				const irange &op2,
  				relation_trio) const
  {
!   switch (get_bool_state (r, lhs, type))
!     {
!     case BRS_FALSE:
!       // A false result means both sides of the OR must be false.
!       r = range_false (type);
!       return true;
! 
!     case BRS_TRUE:
!       // A TRUE result when op2 is FALSE must have op1 TRUE.
!       if (op2.zero_p ())
! 	{
! 	  r = range_true (type);
! 	  return true;
! 	}
!       break;
! 
!     default:
!       break;
      }
+ 
+   // Any other result means we cannot be sure of any result.
+   r = range_true_and_false (type);
    return true;
  }
  
diff -Nrcpad gcc-17-20260712/gcc/regrename.cc gcc-17-20260719/gcc/regrename.cc
*** gcc-17-20260712/gcc/regrename.cc	Sun Jul 12 22:32:11 2026
--- gcc-17-20260719/gcc/regrename.cc	Sun Jul 19 22:32:10 2026
*************** scan_rtx_address (rtx_insn *insn, rtx *l
*** 1341,1346 ****
--- 1341,1352 ----
  	rtx *locB = NULL;
  	enum rtx_code index_code = SCRATCH;
  
+ 	if (GET_CODE (op0) == UNSPEC)
+ 	  {
+ 	    /* We have a "segment" unspec; skip it.  */
+ 	    return scan_rtx_address (insn, &XEXP (x, 1), cl, action, mode, as);
+ 	  }
+ 
  	if (GET_CODE (op0) == SUBREG)
  	  {
  	    op0 = SUBREG_REG (op0);
diff -Nrcpad gcc-17-20260712/gcc/rtl.h gcc-17-20260719/gcc/rtl.h
*** gcc-17-20260712/gcc/rtl.h	Sun Jul 12 22:32:11 2026
--- gcc-17-20260719/gcc/rtl.h	Sun Jul 19 22:32:10 2026
*************** extern struct target_rtl *this_target_rt
*** 4022,4029 ****
    (this_target_rtl->x_top_of_stack)
  #define mode_mem_attrs \
    (this_target_rtl->x_mode_mem_attrs)
- #define static_reg_base_value \
-   (this_target_rtl->x_static_reg_base_value)
  
  /* All references to certain hard regs, except those created
     by allocating pseudo regs into them (when that's possible),
--- 4022,4027 ----
diff -Nrcpad gcc-17-20260712/gcc/simplify-rtx.cc gcc-17-20260719/gcc/simplify-rtx.cc
*** gcc-17-20260712/gcc/simplify-rtx.cc	Sun Jul 12 22:32:11 2026
--- gcc-17-20260719/gcc/simplify-rtx.cc	Sun Jul 19 22:32:10 2026
*************** simplify_context::simplify_truncation (m
*** 727,738 ****
  	}
      }
  
!   /* Turn (truncate:M1 (*_extract:M2 (reg:M2) (len) (pos))) into
!      (*_extract:M1 (truncate:M1 (reg:M2)) (len) (pos')) if possible without
!      changing len.  */
    if ((GET_CODE (op) == ZERO_EXTRACT || GET_CODE (op) == SIGN_EXTRACT)
!       && REG_P (XEXP (op, 0))
!       && GET_MODE (XEXP (op, 0)) == GET_MODE (op)
        && CONST_INT_P (XEXP (op, 1))
        && CONST_INT_P (XEXP (op, 2)))
      {
--- 727,736 ----
  	}
      }
  
!   /* Turn (truncate:M1 (*_extract:M2 (reg:M3) (len) (pos))) into
!      (*_extract:M1 (truncate:M1 (reg:M3)) (len) (pos')) if possible.  */
    if ((GET_CODE (op) == ZERO_EXTRACT || GET_CODE (op) == SIGN_EXTRACT)
!       && precision <= GET_MODE_UNIT_PRECISION (GET_MODE (XEXP (op, 0)))
        && CONST_INT_P (XEXP (op, 1))
        && CONST_INT_P (XEXP (op, 2)))
      {
*************** simplify_context::simplify_truncation (m
*** 741,747 ****
        unsigned HOST_WIDE_INT pos = UINTVAL (XEXP (op, 2));
        if (BITS_BIG_ENDIAN && pos >= op_precision - precision)
  	{
! 	  op0 = simplify_gen_unary (TRUNCATE, mode, op0, GET_MODE (op0));
  	  if (op0)
  	    {
  	      pos -= op_precision - precision;
--- 739,746 ----
        unsigned HOST_WIDE_INT pos = UINTVAL (XEXP (op, 2));
        if (BITS_BIG_ENDIAN && pos >= op_precision - precision)
  	{
! 	  if (GET_MODE (op0) != mode)
! 	    op0 = simplify_gen_unary (TRUNCATE, mode, op0, GET_MODE (op0));
  	  if (op0)
  	    {
  	      pos -= op_precision - precision;
*************** simplify_context::simplify_truncation (m
*** 751,757 ****
  	}
        else if (!BITS_BIG_ENDIAN && precision >= len + pos)
  	{
! 	  op0 = simplify_gen_unary (TRUNCATE, mode, op0, GET_MODE (op0));
  	  if (op0)
  	    return simplify_gen_ternary (GET_CODE (op), mode, mode, op0,
  					 XEXP (op, 1), XEXP (op, 2));
--- 750,757 ----
  	}
        else if (!BITS_BIG_ENDIAN && precision >= len + pos)
  	{
! 	  if (GET_MODE (op0) != mode)
! 	    op0 = simplify_gen_unary (TRUNCATE, mode, op0, GET_MODE (op0));
  	  if (op0)
  	    return simplify_gen_ternary (GET_CODE (op), mode, mode, op0,
  					 XEXP (op, 1), XEXP (op, 2));
diff -Nrcpad gcc-17-20260712/gcc/testsuite/ChangeLog gcc-17-20260719/gcc/testsuite/ChangeLog
*** gcc-17-20260712/gcc/testsuite/ChangeLog	Sun Jul 12 22:32:11 2026
--- gcc-17-20260719/gcc/testsuite/ChangeLog	Sun Jul 19 22:32:10 2026
***************
*** 1,3 ****
--- 1,705 ----
+ 2026-07-18  Luke Zhuang  <luke.zhuang@linux.alibaba.com>
+ 	    Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* gcc.target/riscv/tlsdesc_clobber_lra.c: New test.
+ 
+ 2026-07-18  wangjue  <juewang@linux.alibaba.com>
+ 
+ 	* gcc.target/riscv/unroll-explicit-attr-cunroll.c: New test.
+ 	* gcc.target/riscv/unroll-small-loop-cunroll.c: New test.
+ 
+ 2026-07-18  Dusan Stojkovic  <Dusan.Stojkovic@rt-rk.com>
+ 
+ 	PR target/123883
+ 	* gcc.target/riscv/pr123883-a.c: New test.
+ 	* gcc.target/riscv/pr123883-b.c: New test.
+ 
+ 2026-07-18  Matt Turner  <mattst88@gmail.com>
+ 
+ 	PR target/117184
+ 	* gcc.target/alpha/frame-pointer-save-1.c: New test.
+ 
+ 2026-07-18  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/126200
+ 	* gcc.target/loongarch/vector/lsx/pr126200.c: New test.
+ 
+ 2026-07-18  Pan Li  <pan2.li@intel.com>
+ 
+ 	* gcc.target/riscv/rvv/base/pr112431-13.c: Move to...
+ 	* gcc.target/riscv/rvv/base/pr112431-13-0.c: ...here.
+ 	* gcc.target/riscv/rvv/base/pr112431-13-1.c: New test.
+ 
+ 2026-07-18  Pan Li  <pan2.li@intel.com>
+ 
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-m1.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-m2.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-m4.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-mf2.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-mf4.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f32-m1.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f32-m2.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f32-m4.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f32-mf2.c: New test.
+ 
+ 2026-07-18  Pan Li  <pan2.li@intel.com>
+ 
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-m1.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-m2.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-m4.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-mf2.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-mf4.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f32-m1.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f32-m2.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f32-m4.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f32-mf2.c: New test.
+ 
+ 2026-07-17  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* gcc.target/aarch64/and-be.c: Require big-endian support.
+ 	* gcc.target/aarch64/fmov-1-be.c: Likewise.
+ 	* gcc.target/aarch64/fmov-2-be.c: Likewise.
+ 	* gcc.target/aarch64/fmov-3-be.c: Likewise.
+ 	* gcc.target/aarch64/fmov-4-be.c: Likewise.
+ 	* gcc.target/aarch64/fmov-5-be.c: Likewise.
+ 	* gcc.target/aarch64/ins_bitfield_2.c: Likewise.
+ 	* gcc.target/aarch64/ins_bitfield_4.c: Likewise.
+ 	* gcc.target/aarch64/ins_bitfield_6.c: Likewise.
+ 	* gcc.target/aarch64/pr124078-1.c: Likewise.
+ 	* gcc.target/aarch64/pr62308.c: Likewise.
+ 	* gcc.target/aarch64/pr87305.c: Likewise.
+ 	* gcc.target/aarch64/sve/acle/general/dupq_2.c: Likewise.
+ 	* gcc.target/aarch64/sve/acle/general/dupq_4.c: Likewise.
+ 	* gcc.target/aarch64/sve/acle/general/dupq_6.c: Likewise.
+ 	* gcc.target/aarch64/sve/acle/general/dupq_lane_9.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/args_5_be_bf16.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/args_5_be_f16.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/args_5_be_f32.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/args_5_be_f64.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/args_5_be_mf8.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/args_5_be_s16.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/args_5_be_s32.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/args_5_be_s64.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/args_5_be_s8.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/args_5_be_u16.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/args_5_be_u32.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/args_5_be_u64.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/args_5_be_u8.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/args_6_be_bf16.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/args_6_be_f16.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/args_6_be_f32.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/args_6_be_f64.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/args_6_be_mf8.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/args_6_be_s16.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/args_6_be_s32.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/args_6_be_s64.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/args_6_be_s8.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/args_6_be_u16.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/args_6_be_u32.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/args_6_be_u64.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/args_6_be_u8.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/saves_1_be_nowrap.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/saves_1_be_wrap.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/saves_2_be_nowrap.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/saves_2_be_wrap.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/saves_4_be.c: Likewise.
+ 	* gcc.target/aarch64/sve/pcs/saves_5_be.c: Likewise.
+ 	* gcc.target/aarch64/sve/pr88847.c: Likewise.
+ 	* gcc.target/aarch64/sve/revb_2.c: Likewise.
+ 	* gcc.target/aarch64/sve/revh_2.c: Likewise.
+ 	* gcc.target/aarch64/sve/revhw_2.c: Likewise.
+ 	* gcc.target/aarch64/sve/revw_2.c: Likewise.
+ 	* gcc.target/aarch64/sve/struct_move_1.c: Likewise.
+ 	* gcc.target/aarch64/sve/struct_move_2.c: Likewise.
+ 	* gcc.target/aarch64/sve/struct_move_3.c: Likewise.
+ 	* gcc.target/aarch64/sve/vec_init_4.c: Likewise.
+ 	* lib/target-supports.exp: Provide aarch64_mbig_endian.
+ 
+ 2026-07-17  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	* gcc.target/aarch64/pragma_cpp_predefs_2.c: Drop tests for TME.
+ 	* gcc.target/aarch64/acle/tme.c: Removed.
+ 	* gcc.target/aarch64/acle/tme_guard-1.c: Removed.
+ 	* gcc.target/aarch64/acle/tme_guard-2.c: Removed.
+ 	* gcc.target/aarch64/acle/tme_guard-3.c: Removed.
+ 	* gcc.target/aarch64/acle/tme_guard-4.c: Removed.
+ 
+ 2026-07-17  Matt Turner  <mattst88@gmail.com>
+ 
+ 	* gcc.target/alpha/tlsgd-dup-1.c: New test.
+ 
+ 2026-07-17  Robert Dubner  <rdubner@symas.com>
+ 
+ 	* cobol.dg/group2/INITIALIZE_with_-defaultbyte__ASCII_.cob: Use
+ 	"VALUE '-'" instead of "VALUE'-'".
+ 	* cobol.dg/group2/INITIALIZE_with_-defaultbyte__EBCDIC_.cob:
+ 	Likewise.
+ 	* cobol.dg/group2/PR59_RT3586_-_Code_format_heuristic_fails.cob: Removed.
+ 	* cobol.dg/group2/RT3609_Unexpected_PROCESS.cob: Removed.
+ 	* cobol.dg/group2/DEBUG-ITEM_using_mh_identical.cob: New test.
+ 	* cobol.dg/group2/DEBUG-ITEM_using_mh_identical.out: New test.
+ 
+ 2026-07-17  Jeff Law  <jeffrey.law@oss.qualcomm.com>
+ 
+ 	* gcc.dg/torture/pr126136.c: Make chars explicitly signed.
+ 
+ 2026-07-17  Wang Yaduo  <wangyaduo@linux.alibaba.com>
+ 
+ 	* gcc.target/riscv/mcpu-xt-c9501fdvt.c: Expect __riscv_zama16b
+ 	to be undefined.
+ 
+ 2026-07-17  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	PR middle-end/80922
+ 	PR middle-end/106823
+ 	PR lto/107936
+ 	* gcc.dg/lto/pr106823_0.c: New test.
+ 	* gcc.dg/lto/pr107936_0.c: New test.
+ 	* gcc.dg/lto/pr107936_1.c: New test.
+ 	* gcc.dg/lto/pr80922-1_0.c: New test.
+ 	* gcc.dg/lto/pr80922-1_1.c: New test.
+ 	* gcc.dg/lto/pr80922-2_0.c: New test.
+ 	* gcc.dg/lto/pr80922-2_1.c: New test.
+ 	* gcc.dg/lto/pr80922-2_2.c: New test.
+ 
+ 2026-07-17  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	PR lto/65536
+ 	* gcc.misc-tests/outputs.exp: Adjust LTO -save-temps tests to expect
+ 	the new linemap file.
+ 
+ 2026-07-17  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	* gcc.dg/lto/README: Update to document ar-link and incr-link.
+ 	* lib/lto.exp: Support incr-link directive throughout.
+ 
+ 2026-07-17  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	* gcc.dg/lto/README: Document dg-lto-additional-options directive.
+ 	* lib/lto.exp (lto-get-options-main): Implement
+ 	dg-lto-additional-options directive.
+ 	(lto-execute-1): Likewise.
+ 
+ 2026-07-17  Neal Patalay  <nealpatalay0@gmail.com>
+ 
+ 	PR tree-optimization/126087
+ 	* gcc.dg/tree-ssa/pr126087.c: New test.
+ 
+ 2026-07-17  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/126283
+ 	* gcc.target/i386/xchg-1.c: Scan for XCHG instead of ROL.
+ 	* gcc.target/i386/pr126283.c: New test.
+ 
+ 2026-07-17  Naveen  <naveen.siddegowda@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/81549
+ 	* gcc.dg/tree-ssa/pr81549.c: New test.
+ 	* gcc.dg/tree-ssa/pr81549-2.c: New test.
+ 
+ 2026-07-17  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	* c-c++-common/gomp/masked-1.c: Check new builtin is not emitted.
+ 	* c-c++-common/gomp/masked-3.c: Check new builtin is emitted with
+ 	-fopenmp-ompt.
+ 
+ 2026-07-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/125833
+ 	* g++.dg/cpp0x/dealloc2.C: Expect extra diagnostics in C++29.
+ 	* g++.dg/cpp29/dealloc1.C: New test.
+ 
+ 2026-07-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* lib/et-static.def: New file.
+ 	* lib/target-supports.exp: Load et-static.exp.
+ 	* gcc.misc-tests/outputs.exp: Use ld_at_file effective target
+ 	instead of gld.
+ 	Update comment.
+ 
+ 2026-07-17  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/126275
+ 	* gcc.target/i386/pr126275.c: New.
+ 
+ 2026-07-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/126028
+ 	* gcc.dg/vect/bb-slp-reduc-2.c: New testcase.
+ 	* gcc.dg/vect/bb-slp-reduc-3.c: Likewise.
+ 	* gcc.dg/vect/pr106081.c: Disable BB vectorization.
+ 
+ 2026-07-16  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	* c-c++-common/gomp/for-static-3.c: Update scan pattern to match new
+ 	arguments.
+ 
+ 2026-07-16  Craig Blackmore  <craig.blackmore@embecosm.com>
+ 
+ 	* gcc.dg/asm-hard-reg-4.c: Fix typo in target selector.
+ 
+ 2026-07-16  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* gcc.target/riscv/sibcall-materialize-pseudo.c: New test.
+ 
+ 2026-07-16  Jin Ma  <jinma@linux.alibaba.com>
+ 
+ 	* g++.target/riscv/pr97682.C: Accept registers in SIBCALL_REGS.
+ 	* gcc.target/riscv/rvv/base/sibcall-scalable-frame-indirect.c:
+ 	New test.
+ 	* gcc.target/riscv/rvv/base/sibcall-scalable-frame-weak.c: New test.
+ 
+ 2026-07-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+ 
+ 	* gcc.dg/gcov-atomic-or-zero.c: New test.
+ 	* gcc.misc-tests/gcov-35.c: Likewise.
+ 	* gcc.misc-tests/gcov-36.c: Likewise.
+ 
+ 2026-07-16  Pan Li  <pan2.li@intel.com>
+ 
+ 	* gcc.target/riscv/rvv/base/pr112431-1.c: Remove xfail.
+ 	* gcc.target/riscv/rvv/base/pr112431-2.c: Ditto.
+ 	* gcc.target/riscv/rvv/base/pr112431-3.c: Ditto.
+ 	* gcc.target/riscv/rvv/base/pr112431-39.c: Ditto.
+ 	* gcc.target/riscv/rvv/base/pr112431-40.c: Ditto.
+ 	* gcc.target/riscv/rvv/base/pr112431-41.c: Ditto.
+ 
+ 2026-07-16  Pan Li  <pan2.li@intel.com>
+ 
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-m1.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-m2.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-m4.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-mf2.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-mf4.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i32-m1.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i32-m2.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i32-m4.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i32-mf2.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-m1.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-m2.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-m4.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-mf2.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-mf4.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-mf8.c: New test.
+ 
+ 2026-07-16  Pan Li  <pan2.li@intel.com>
+ 
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-m1.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-m2.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-m4.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-mf2.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-mf4.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i32-m1.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i32-m2.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i32-m4.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i32-mf2.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-m1.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-m2.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-m4.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-mf2.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-mf4.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-mf8.c: New test.
+ 
+ 2026-07-16  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* gcc.target/aarch64/neon/aarch64-neon.exp: Remove section
+ 	re-runing the tests as big-endian.
+ 
+ 2026-07-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* gcc.dg/vect/tsvc/tsvc.h (init): Don't use memalign on NetBSD.
+ 
+ 2026-07-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* gcc.dg/torture/bitint-101.c: Require bitint.
+ 
+ 2026-07-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/126262
+ 	* gcc.dg/torture/bitint-102.c: New test.
+ 
+ 2026-07-15  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* gfortran.dg/coarray/caf.exp: Run test with -pthread option.
+ 
+ 2026-07-15  wangjue  <juewang@linux.alibaba.com>
+ 
+ 	* gcc.target/riscv/large-frame-indexed-base.c: New test.
+ 	* gcc.target/riscv/small-frame-indexed-base.c: New test.
+ 
+ 2026-07-15  Andrew MacLeod  <amacleod@redhat.com>
+ 
+ 	PR tree-optimization/126110
+ 	* gcc.dg/pr126110.c: New.
+ 
+ 2026-07-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/126058
+ 	* gfortran.dg/warn_undefined_vars_7.f90: New test.
+ 	* gfortran.dg/warn_unused_but_set_variable_4.f90: New test.
+ 
+ 2026-07-15  Jeff Law  <jeffrey.law@oss.qualcomm.com>
+ 
+ 	Revert:
+ 	2026-07-15  Matthew Fortune  <matthew.fortune@imgtec.com>
+ 
+ 	* gcc.target/mips/mxu-compile-no.c: New test.
+ 	* gcc.target/mips/mxu-compile.c: New test.
+ 	* gcc.target/mips/mxu-driver-no.c: New test.
+ 	* gcc.target/mips/mxu-driver.c: New test.
+ 
+ 2026-07-15  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* c-c++-common/gomp/uses_allocators-3.c: New test.
+ 
+ 2026-07-15  Michal Jires  <mjires@suse.cz>
+ 
+ 	PR lto/125257
+ 	* gcc.dg/lto/pr125257_0.c: New test.
+ 
+ 2026-07-15  James K. Lowden  <jklowden@cobolworx.com>
+ 
+ 	* cobol.dg/group2/CBL_CREATE_FILE___CBL_WRITE_FILE___CBL_CLOSE_FILE.cob: Add gcobc.
+ 	* cobol.dg/group2/CBL_DELETE_FILE.cob: Same.
+ 	* cobol.dg/group2/CBL_OPEN_FILE___CBL_CLOSE_FILE.cob: Same.
+ 	* cobol.dg/group2/CBL_OPEN_FILE___CBL_READ_FILE___CBL_CLOSE_FILE.cob: Same.
+ 	* cobol.dg/group2/CBL_READ_FILE__check_file_size_with_flags___128.cob: Same.
+ 	* cobol.dg/.gitignore: New test.
+ 
+ 2026-07-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* gcc.target/i386/pr64731.c (dg-options): Add -mno-stackrealign.
+ 
+ 2026-07-15  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* gcc.target/s390/asm-hard-reg-7.c: Utilize constraint f for
+ 	floating-point registers.
+ 
+ 2026-07-15  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	PR c/122748
+ 	* c-c++-common/gomp/uses_allocators-1.c: New test.
+ 	* c-c++-common/gomp/uses_allocators-2.c: New test.
+ 
+ 2026-07-15  Roger Sayle  <roger@nextmovesoftware.com>
+ 
+ 	PR rtl-optimization/123236
+ 	* gcc.target/i386/pr123236-1.c: New test case.
+ 
+ 2026-07-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/126171
+ 	* gcc.dg/pr126171-1.c: New testcase.
+ 	* gcc.dg/torture/pr126171-2.c: Likewise.
+ 
+ 2026-07-15  Luke Zhuang  <luke.zhuang@linux.alibaba.com>
+ 
+ 	* gcc.target/riscv/tlsdesc_clobber.c: New test.
+ 	* gcc.target/riscv/tlsdesc_clobber_v.c: New test.
+ 	* gcc.target/riscv/tlsdesc_clobber_v_csr.c: New test.
+ 
+ 2026-07-15  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/126231
+ 	* gcc.target/i386/zext-avx10-1.c: New test.
+ 	* gcc.target/i386/zext-avx512f-1.c: Likewise.
+ 	* gcc.target/i386/zext-avx512fp16-1.c: Likewise.
+ 	* gcc.target/i386/zext-sse-1.c: Likewise.
+ 	* gcc.target/i386/zext-sse-2.c: Likewise.
+ 
+ 2026-07-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/126257
+ 	* gcc.dg/torture/bitint-101.c: New test.
+ 
+ 2026-07-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/120635
+ 	* g++.dg/cpp0x/attr-trivial_abi8.C: Add further tests.
+ 	* g++.dg/cpp0x/attr-trivial_abi11.C: New test.
+ 	* g++.dg/ext/attr-no_specializations1.C: Use _Clang:: instead of
+ 	__clang__.
+ 	* g++.dg/ext/attr-no_specializations2.C: Likewise.
+ 	* g++.dg/ext/attr-no_specializations6.C: Likewise.
+ 	* g++.dg/ext/attr-no_specializations7.C: Likewise.
+ 	* g++.dg/ext/attr-no_specializations8.C: Likewise.
+ 	* g++.dg/ext/attr-no_specializations10.C: Add further tests.
+ 	* g++.dg/ext/attr-no_specializations12.C: New test.
+ 
+ 2026-07-15  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* c-c++-common/gomp/target-device-type-1.c: Remove dg-sorry.
+ 	* gfortran.dg/gomp/target-device-type-1.f90: Likewise.
+ 
+ 2026-07-15  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	PR middle-end/126203
+ 	PR middle-end/126221
+ 	PR middle-end/126232
+ 	* gcc.target/i386/pr126221-1.c: New test.
+ 	* gcc.target/i386/pr126221-2.c: Ditto.
+ 	* gfortran.dg/pr126221.f90: Ditto.
+ 
+ 2026-07-14  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* c-c++-common/gomp/target-device-type-1.c: Update dg-sorry
+ 	as now only device_type(host) remains unimplemented.
+ 	* gfortran.dg/gomp/target-device-type-1.f90: Likewise.
+ 
+ 2026-07-14  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* objc.dg/gnu-api-2-class.m: Replace void ** with char **
+ 	in the main function signature.
+ 	* objc.dg/gnu-api-2-ivar.m: Likewise.
+ 	* objc.dg/gnu-api-2-method.m: Likewise.
+ 	* objc.dg/gnu-api-2-objc.m: Likewise.
+ 	* objc.dg/gnu-api-2-objc_msg_lookup.m: Likewise.
+ 	* objc.dg/gnu-api-2-object.m: Likewise.
+ 	* objc.dg/gnu-api-2-property.m: Likewise.
+ 	* objc.dg/gnu-api-2-protocol.m: Likewise.
+ 	* objc.dg/gnu-api-2-resolve-method.m: Likewise.
+ 	* objc.dg/gnu-api-2-sel.m: Likewise.
+ 	* objc.dg/gnu-runtime-2.m: Likewise.
+ 	* objc.dg/gnu-runtime-3.m: Likewise.
+ 	* objc.dg/pr48177.m: Likewise.
+ 	* objc.dg/torture/strings/string1.m: Likewise.
+ 	* objc.dg/torture/strings/string2.m: Likewise.
+ 	* objc.dg/torture/strings/string3.m: Likewise.
+ 	* objc.dg/torture/strings/string4.m: Likewise.
+ 
+ 2026-07-14  Karl Meakin  <karl.meakin@arm.com>
+ 
+ 	PR target/126064
+ 	* gcc.target/aarch64/pr126064.c: New test.
+ 
+ 2026-07-14  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	* gcc.target/arm/pr110268-1.c: Use arm_v8_1m_mve_link.
+ 	* gcc.target/arm/pr110268-2.c: Likewise
+ 	* lib/target-supports.exp (arm_v8_1m_mve_link): New.
+ 
+ 2026-07-14  Cem Akgok  <cemakgok@gmail.com>
+ 
+ 	PR tree-optimization/126225
+ 	* gcc.dg/vect/vect-iv-12.c: New test.
+ 	* gcc.dg/vect/vect-iv-13.c: New test.
+ 	* gcc.dg/vect/vect-iv-14.c: New test.
+ 
+ 2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/124948
+ 	* gcc.dg/torture/bitint-100.c: New test.
+ 
+ 2026-07-14  Naveen  <naveen.siddegowda@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/102202
+ 	* gcc.dg/pr102202-fold.c: New test.
+ 
+ 2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/126084
+ 	* gcc.dg/asan/bitint-1.c: New test.
+ 	* gcc.dg/asan/bitint-2.c: New test.
+ 
+ 2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 	    H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR tree-optimization/120201
+ 	* g++.dg/asan/pr120201-1.C: New test.
+ 
+ 2026-07-14  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	PR target/123625
+ 	PR target/121957
+ 	* gcc.c-torture/execute/pr121957.c: New test.
+ 	* gcc.c-torture/execute/pr123625.c: New test.
+ 	* gcc.c-torture/execute/pr123625-2.c: New test.
+ 	* gcc.c-torture/execute/pr123625-3.c: New test.
+ 	* gcc.dg/pr123625-1.c: New test.
+ 
+ 2026-07-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/126194
+ 	* g++.dg/lto/pr126194.h: New testcase.
+ 	* g++.dg/lto/pr126194_0.C: Likewise.
+ 	* g++.dg/lto/pr126194_1.C: Likewise.
+ 	* g++.dg/lto/pr126194_2.C: Likewise.
+ 
+ 2026-07-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* g++.dg/cpp0x/dealloc1.C: New test.
+ 	* g++.dg/cpp0x/dealloc2.C: New test.
+ 	* g++.dg/cpp2a/destroying-delete7.C: New test.
+ 	* g++.dg/reflect/is_noexcept5.C: New test.
+ 	* g++.dg/cpp1z/aligned-new3.C (operator delete): Don't expect
+ 	a warning.
+ 
+ 2026-07-14  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/126202
+ 	* g++.target/i386/pr126202-1.C: New test.
+ 	* gcc.target/i386/pr126202-1.c: Likewise.
+ 
+ 2026-07-14  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/110533
+ 	* gcc.target/i386/pr110533-2a.c: New test.
+ 	* gcc.target/i386/pr110533-2b.c: Likewise.
+ 
+ 2026-07-14  Pan Li  <pan2.li@intel.com>
+ 
+ 	* gcc.target/riscv/rvv/base/pr112431-18.c: Remove xfail.
+ 
+ 2026-07-14  Pan Li  <pan2.li@intel.com>
+ 
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-m1.c:
+ 	Add non-number boundary for reg num check.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-m2.c:
+ 	Ditto.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-mf2.c:
+ 	Ditto.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-mf4.c:
+ 	Ditto.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u32-m1.c:
+ 	Ditto.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u32-mf2.c:
+ 	Ditto.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-m1.c:
+ 	Ditto.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-m2.c:
+ 	Ditto.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-mf2.c:
+ 	Ditto.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-mf4.c:
+ 	Ditto.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-mf8.c:
+ 	Ditto.
+ 
+ 2026-07-14  Pan Li  <pan2.li@intel.com>
+ 
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf8-u8-m1.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf8-u8-mf2.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf8-u8-mf4.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf8-u8-mf8.c: New test.
+ 
+ 2026-07-14  Pan Li  <pan2.li@intel.com>
+ 
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-m1.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf2.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf4.c: New test.
+ 	* gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf8.c: New test.
+ 
+ 2026-07-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	PR fortran/126234
+ 	* gfortran.dg/pr126234.f90: New test.
+ 
+ 2026-07-13  Yuxuan Chen  <i@yuxuan.ch>
+ 
+ 	PR c++/125066
+ 	* g++.dg/cpp0x/attr-trivial_abi10.C: New test.
+ 
+ 2026-07-13  Yuxuan Chen  <i@yuxuan.ch>
+ 
+ 	PR c++/125064
+ 	* g++.dg/cpp0x/attr-trivial_abi9.C: New test.
+ 
+ 2026-07-13  Sunil Dora  <sunilkumar.dora@windriver.com>
+ 
+ 	PR driver/111527
+ 	* gcc.misc-tests/pr111527.exp: Serialize with
+ 	gcc_parallel_test_run_p to avoid duplicate test names.
+ 
+ 2026-07-13  MITSUNARI Shigeo  <herumi@nifty.com>
+ 
+ 	* gcc.target/i386/bmi2-mulx-highpart-1.c: Add -mtune=generic
+ 	to dg-options.
+ 	* gcc.target/i386/mulq-highpart.c: Likewise.
+ 
+ 2026-07-13  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	PR driver/124058
+ 	* c-c++-common/Wuse-after-free-8.c: New test.
+ 
+ 2026-07-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/120635
+ 	* g++.dg/ext/attr-no_specializations1.C: New test.
+ 	* g++.dg/ext/attr-no_specializations2.C: New test.
+ 	* g++.dg/ext/attr-no_specializations3.C: New test.
+ 	* g++.dg/ext/attr-no_specializations4.C: New test.
+ 	* g++.dg/ext/attr-no_specializations5.C: New test.
+ 	* g++.dg/ext/attr-no_specializations6.C: New test.
+ 	* g++.dg/ext/attr-no_specializations7.C: New test.
+ 	* g++.dg/ext/attr-no_specializations8.C: New test.
+ 	* g++.dg/ext/attr-no_specializations9.C: New test.
+ 	* g++.dg/ext/attr-no_specializations10.C: New test.
+ 	* g++.dg/ext/attr-no_specializations11.C: New test.
+ 
+ 2026-07-13  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/126066
+ 	* g++.dg/cpp2a/concepts-pr126066.C: New test.
+ 
+ 2026-07-13  Odysseas Georgoudis  <odygrd@hotmail.com>
+ 
+ 	PR tree-optimization/113894
+ 	* gcc.dg/tree-ssa/pr113894.c: New test.
+ 
+ 2026-07-13  Oleg Tolmatcev  <oleg.tolmatcev@gmail.com>
+ 
+ 	* gcc.target/i386/pr78799.c: New test.
+ 
+ 2026-07-13  Joyee Cheung  <joyee@igalia.com>
+ 
+ 	PR c++/96496
+ 	* g++.dg/cpp0x/enum-bool-conv.C: New test.
+ 	* g++.dg/warn/Wconversion-enum-fixed.C: New test.
+ 	* g++.dg/warn/Wint-in-bool-context-bool-enum.C: New test.
+ 
+ 2026-07-13  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* gcc.dg/tree-ssa/vrp102.c: Scan evrp instead of vrp1.
+ 
+ 2026-07-13  Dylan Rees  <dylan.rees@arm.com>
+ 
+ 	* gcc.target/aarch64/simd/fold_to_highpart_7.c:
+ 	Extended test.
+ 	* gcc.target/i386/pr81501-9a.c: Updated test.
+ 	* gcc.target/i386/pr81501-9b.c: Updated test.
+ 
+ 2026-07-13  Dylan Rees  <dylan.rees@arm.com>
+ 
+ 	* gcc.target/aarch64/simd/fold_to_highpart_7.c: New test.
+ 
+ 2026-07-13  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	PR target/124146
+ 	* g++.target/aarch64/pr124146.C: New test.
+ 
+ 2026-07-13  Josef Melcr  <josef.melcr@suse.com>
+ 
+ 	PR ipa/125121
+ 	* c-c++-common/gomp/pr125121.c: New test.
+ 
+ 2026-07-12  Steve Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/101951
+ 	PR fortran/101967
+ 	* gfortran.dg/f2018c937.f90: New test.
+ 	* gfortran.dg/f2018c949.f90: New test.
+ 	* gfortran.dg/allocate_alloc_opt_4.f90: Substitute 'typespec' with
+ 	'type-spec' in error checks.
+ 	* gfortran.dg/allocate_derived_1.f90: Ditto.
+ 
+ 2026-07-12  MITSUNARI Shigeo  <herumi@nifty.com>
+ 
+ 	* gcc.target/i386/bmi2-mulx-highpart-1.c: New test.
+ 
+ 2026-07-12  Jeff Law  <jeffrey.law@oss.qualcomm.com>
+ 
+ 	* gcc.target/i386/mulq-highpart.c: New test.
+ 
  2026-07-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
  
  	PR fortran/126210
diff -Nrcpad gcc-17-20260712/gcc/testsuite/c-c++-common/Wuse-after-free-8.c gcc-17-20260719/gcc/testsuite/c-c++-common/Wuse-after-free-8.c
*** gcc-17-20260712/gcc/testsuite/c-c++-common/Wuse-after-free-8.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/c-c++-common/Wuse-after-free-8.c	Sun Jul 19 22:32:10 2026
***************
*** 0 ****
--- 1,26 ----
+ /* Verify -Wuse-after-free is an alias for -Wuse-after-free=1. */
+ /* { dg-do compile } */
+ /* { dg-options "-O0 -Wuse-after-free" } */
+ 
+ #if __cplusplus
+ #  define EXTERN_C extern "C"
+ #else
+ #  define EXTERN_C extern
+ #endif
+ 
+ EXTERN_C void free (void *);
+ 
+ void sink (void *);
+ 
+ void warn_call_after_free (void *p)
+ {
+   free (p);
+   sink (p);         // { dg-warning "pointer 'p' used" }
+ }
+ 
+ void warn_cond_call_after_free (void *p, int c)
+ {
+   free (p);
+   if (c)
+     sink (p);
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/c-c++-common/gomp/for-static-3.c gcc-17-20260719/gcc/testsuite/c-c++-common/gomp/for-static-3.c
*** gcc-17-20260712/gcc/testsuite/c-c++-common/gomp/for-static-3.c	Sun Jul 12 22:32:11 2026
--- gcc-17-20260719/gcc/testsuite/c-c++-common/gomp/for-static-3.c	Sun Jul 19 22:32:10 2026
***************
*** 8,18 ****
  
  /* { dg-final { scan-tree-dump-not "GOMP_loop_static_worksharing \\(" "ompexp" } } */
  /* { dg-final { scan-tree-dump-times "GOMP_loop_static_worksharing_start \\(\[^\\)\]" 2 "ompexp" } } */
! /* { dg-final { scan-tree-dump-times "GOMP_loop_static_worksharing_dispatch \\(\\)" 2 "ompexp" } } */
  /* { dg-final { scan-tree-dump-times "GOMP_loop_static_worksharing_end \\(\\)" 2 "ompexp" } } */
  /* { dg-final { scan-tree-dump-not "GOMP_distribute_static_worksharing \\(" "ompexp" } } */
  /* { dg-final { scan-tree-dump-times "GOMP_distribute_static_worksharing_start \\(\[^\\)\]" 2 "ompexp" } } */
! /* { dg-final { scan-tree-dump-times "GOMP_distribute_static_worksharing_dispatch \\(\\)" 2 "ompexp" } } */
  /* { dg-final { scan-tree-dump-times "GOMP_distribute_static_worksharing_end \\(\\)" 2 "ompexp" } } */
  /* { dg-final { scan-tree-dump-not "omp_get_num_threads" "ompexp" } } */
  /* { dg-final { scan-tree-dump-not "omp_get_thread_num" "ompexp" } } */
--- 8,20 ----
  
  /* { dg-final { scan-tree-dump-not "GOMP_loop_static_worksharing \\(" "ompexp" } } */
  /* { dg-final { scan-tree-dump-times "GOMP_loop_static_worksharing_start \\(\[^\\)\]" 2 "ompexp" } } */
! /* { dg-final { scan-tree-dump-times "GOMP_loop_static_worksharing_dispatch \\(\[^,\]+, \[^,\]+, \[^,\]+, 0, \[^)\]+\\)" 1 "ompexp" } } */
! /* { dg-final { scan-tree-dump-times "GOMP_loop_static_worksharing_dispatch \\(\[^,\]+, \[^,\]+, \[^,\]+, 4, \[^)\]+\\)" 1 "ompexp" } } */
  /* { dg-final { scan-tree-dump-times "GOMP_loop_static_worksharing_end \\(\\)" 2 "ompexp" } } */
  /* { dg-final { scan-tree-dump-not "GOMP_distribute_static_worksharing \\(" "ompexp" } } */
  /* { dg-final { scan-tree-dump-times "GOMP_distribute_static_worksharing_start \\(\[^\\)\]" 2 "ompexp" } } */
! /* { dg-final { scan-tree-dump-times "GOMP_distribute_static_worksharing_dispatch \\(\[^,\]+, \[^,\]+, \[^,\]+, 0, \[^)\]+\\)" 1 "ompexp" } } */
! /* { dg-final { scan-tree-dump-times "GOMP_distribute_static_worksharing_dispatch \\(\[^,\]+, \[^,\]+, \[^,\]+, 4, \[^)\]+\\)" 1 "ompexp" } } */
  /* { dg-final { scan-tree-dump-times "GOMP_distribute_static_worksharing_end \\(\\)" 2 "ompexp" } } */
  /* { dg-final { scan-tree-dump-not "omp_get_num_threads" "ompexp" } } */
  /* { dg-final { scan-tree-dump-not "omp_get_thread_num" "ompexp" } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/c-c++-common/gomp/masked-1.c gcc-17-20260719/gcc/testsuite/c-c++-common/gomp/masked-1.c
*** gcc-17-20260712/gcc/testsuite/c-c++-common/gomp/masked-1.c	Sun Jul 12 22:32:11 2026
--- gcc-17-20260719/gcc/testsuite/c-c++-common/gomp/masked-1.c	Sun Jul 19 22:32:10 2026
*************** foo (int x, int *a)
*** 26,30 ****
--- 26,31 ----
  }
  
  /* { dg-final { scan-tree-dump "GOMP_has_masked_thread_num" "omplower" } } */
+ /* { dg-final { scan-tree-dump-not "GOMP_has_masked_thread_num_with_end" "omplower" } } */
  /* { dg-final { scan-tree-dump-not "GOMP_masked_end" "omplower" } } */
  /* { dg-final { scan-tree-dump-not "omp_get_thread_num" "omplower" } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/c-c++-common/gomp/masked-3.c gcc-17-20260719/gcc/testsuite/c-c++-common/gomp/masked-3.c
*** gcc-17-20260712/gcc/testsuite/c-c++-common/gomp/masked-3.c	Sun Jul 12 22:32:11 2026
--- gcc-17-20260719/gcc/testsuite/c-c++-common/gomp/masked-3.c	Sun Jul 19 22:32:10 2026
***************
*** 1,6 ****
--- 1,8 ----
  /* { dg-do compile } */
  /* { dg-additional-options "-fopenmp-ompt -fdump-tree-omplower" } */
  
+ /* Check that OMPT variants of libgomp calls are emitted.  */
+ 
  void bar (void);
  
  void
*************** foo (void)
*** 10,15 ****
    bar ();
  }
  
! /* { dg-final { scan-tree-dump-times "GOMP_has_masked_thread_num" 1 "omplower" } } */
  /* { dg-final { scan-tree-dump-times "GOMP_masked_end" 1 "omplower" } } */
  /* { dg-final { scan-tree-dump-not "omp_get_thread_num" "omplower" } } */
--- 12,17 ----
    bar ();
  }
  
! /* { dg-final { scan-tree-dump-times "GOMP_has_masked_thread_num_with_end" 1 "omplower" } } */
  /* { dg-final { scan-tree-dump-times "GOMP_masked_end" 1 "omplower" } } */
  /* { dg-final { scan-tree-dump-not "omp_get_thread_num" "omplower" } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/c-c++-common/gomp/pr125121.c gcc-17-20260719/gcc/testsuite/c-c++-common/gomp/pr125121.c
*** gcc-17-20260712/gcc/testsuite/c-c++-common/gomp/pr125121.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/c-c++-common/gomp/pr125121.c	Sun Jul 19 22:32:10 2026
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fno-ipa-cp" } */
+ 
+ void
+ a ()
+ {
+ #pragma omp parallel sections
+   {
+     ;
+   }
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/c-c++-common/gomp/target-device-type-1.c gcc-17-20260719/gcc/testsuite/c-c++-common/gomp/target-device-type-1.c
*** gcc-17-20260712/gcc/testsuite/c-c++-common/gomp/target-device-type-1.c	Sun Jul 12 22:32:11 2026
--- gcc-17-20260719/gcc/testsuite/c-c++-common/gomp/target-device-type-1.c	Sun Jul 19 22:32:10 2026
*************** void f ()
*** 10,16 ****
  #pragma omp target device_type ( any )
    ;
  
! #pragma omp target device_type ( nohost )  // { dg-message "sorry, unimplemented: only the 'device_type\\(any\\)' is supported" }
    ;
  
  #pragma omp target device_type ( host )
--- 10,16 ----
  #pragma omp target device_type ( any )
    ;
  
! #pragma omp target device_type ( nohost )
    ;
  
  #pragma omp target device_type ( host )
diff -Nrcpad gcc-17-20260712/gcc/testsuite/c-c++-common/gomp/uses_allocators-1.c gcc-17-20260719/gcc/testsuite/c-c++-common/gomp/uses_allocators-1.c
*** gcc-17-20260712/gcc/testsuite/c-c++-common/gomp/uses_allocators-1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/c-c++-common/gomp/uses_allocators-1.c	Sun Jul 19 22:32:10 2026
***************
*** 0 ****
--- 1,74 ----
+ // { dg-do compile }
+ // { dg-additional-options "-Wall -Wno-deprecated-openmp" }
+ 
+ // Check check that there is no 'unsed but set' warning for 'traits'
+ 
+ // #include <omp.h>
+ 
+ typedef __UINTPTR_TYPE__ omp_uintptr_t;
+ 
+ typedef enum omp_alloctrait_key_t
+ {
+   omp_atk_alignment = 2,
+ } omp_alloctrait_key_t;
+ 
+ typedef enum omp_alloctrait_value_t
+ {
+   omp_atv_default = (__UINTPTR_TYPE__) -1,
+ } omp_alloctrait_value_t;
+ 
+ typedef struct omp_alloctrait_t
+ {
+   omp_alloctrait_key_t key;
+   omp_uintptr_t value;
+ } omp_alloctrait_t;
+ 
+ typedef enum omp_allocator_handle_t
+ {
+   omp_null_allocator = 0,
+   __omp_allocator_handle_t_max__ = __UINTPTR_MAX__
+ } omp_allocator_handle_t;
+ 
+ typedef enum omp_memspace_handle_t
+ {
+   omp_default_mem_space = 0,
+   omp_low_lat_mem_space = 4,
+   __omp_memspace_handle_t_max__ = __UINTPTR_MAX__
+ } omp_memspace_handle_t;
+ 
+ 
+ extern void *omp_alloc (__SIZE_TYPE__, omp_allocator_handle_t);
+ extern void omp_free (void *, omp_allocator_handle_t);
+ 
+ // ------------------------
+ 
+ int main() {
+   double x;  // { dg-warning "variable 'x' set but not used" }
+ 
+   const omp_alloctrait_t traits1[] = {{omp_atk_alignment, 1024}};  // { dg-bogus "variable 'traits1' set but not used" }
+   const omp_alloctrait_t traits2[] = {{omp_atk_alignment, 1024}};  // { dg-bogus "variable 'traits2' set but not used" }
+   const omp_alloctrait_t traits3[] = {{omp_atk_alignment, 1024}};  // { dg-bogus "variable 'traits3' set but not used" }
+   omp_allocator_handle_t alloc1 = omp_null_allocator;
+   omp_allocator_handle_t alloc2 = omp_null_allocator;
+   omp_allocator_handle_t alloc3 = omp_null_allocator;
+ 
+   #pragma omp target \
+      uses_allocators(traits(traits1), memspace(omp_low_lat_mem_space) : alloc1) \
+      uses_allocators(memspace(omp_default_mem_space), traits(traits2) : alloc2) \
+      uses_allocators(alloc3(traits3))
+     {
+       __builtin_printf ("%p\n", (void*) alloc1);
+       __builtin_printf ("%p\n", (void*) alloc2);
+       __builtin_printf ("%p\n", (void*) alloc3);
+       int *ptr1 = (int*) omp_alloc(sizeof(int), alloc1);
+       int *ptr2 = (int*) omp_alloc(sizeof(int), alloc2);
+       int *ptr3 = (int*) omp_alloc(sizeof(int), alloc3);
+       x = 5;
+       *ptr1 = 5;
+       *ptr2 = 6;
+       *ptr3 = 7;
+       omp_free (ptr1, omp_null_allocator);
+       omp_free (ptr2, omp_null_allocator);
+       omp_free (ptr3, omp_null_allocator);
+     }
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/c-c++-common/gomp/uses_allocators-2.c gcc-17-20260719/gcc/testsuite/c-c++-common/gomp/uses_allocators-2.c
*** gcc-17-20260712/gcc/testsuite/c-c++-common/gomp/uses_allocators-2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/c-c++-common/gomp/uses_allocators-2.c	Sun Jul 19 22:32:10 2026
***************
*** 0 ****
--- 1,23 ----
+ // { dg-do compile }
+ 
+ // PR c/122748
+ // Was previously ICEing
+ 
+ void f()
+ {
+   int x;
+ #pragma omp target parallel \
+     uses_allocators(omp_thread_mem_alloc) \
+     allocate(omp_thread_mem_alloc: x) private(x)
+   { }
+ }
+ 
+ // C
+ // { dg-error "'omp_thread_mem_alloc' undeclared \\(first use in this function\\)" "" { target c } 10 }
+ // { dg-note  "each undeclared identifier is reported only once for each function it appears in" "" { target c } 10 }
+ // { dg-error "allocate' clause must specify an allocator here" "" { target c } 11 }
+ 
+ // C++
+ // { dg-error "'omp_thread_mem_alloc' has not been declared" "" { target c++ } 10 }
+ // { dg-error "'omp_thread_mem_alloc' was not declared in this scope" "" { target c++ } 11 }
+ // { dg-error "'allocate' clause must specify an allocator here" "" { target c++ } 11 }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/c-c++-common/gomp/uses_allocators-3.c gcc-17-20260719/gcc/testsuite/c-c++-common/gomp/uses_allocators-3.c
*** gcc-17-20260712/gcc/testsuite/c-c++-common/gomp/uses_allocators-3.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/c-c++-common/gomp/uses_allocators-3.c	Sun Jul 19 22:32:10 2026
***************
*** 0 ****
--- 1,65 ----
+ // { dg-do compile }
+ 
+ // Check that the all non-predefined allocators used in
+ // target's allocator clauses are in 'uses_allocators'
+ 
+ //#include <omp.h>
+ 
+ typedef __UINTPTR_TYPE__ omp_uintptr_t;
+ 
+ typedef enum omp_alloctrait_key_t
+ {
+   omp_atk_alignment = 2,
+ } omp_alloctrait_key_t;
+ 
+ typedef enum omp_alloctrait_value_t
+ {
+   omp_atv_default = (__UINTPTR_TYPE__) -1,
+ } omp_alloctrait_value_t;
+ 
+ typedef struct omp_alloctrait_t
+ {
+   omp_alloctrait_key_t key;
+   omp_uintptr_t value;
+ } omp_alloctrait_t;
+ 
+ typedef enum omp_allocator_handle_t
+ {
+   omp_null_allocator = 0,
+   __omp_allocator_handle_t_max__ = __UINTPTR_MAX__
+ } omp_allocator_handle_t;
+ 
+ typedef enum omp_memspace_handle_t
+ {
+   omp_default_mem_space = 0,
+   omp_low_lat_mem_space = 4,
+   __omp_memspace_handle_t_max__ = __UINTPTR_MAX__
+ } omp_memspace_handle_t;
+ 
+ 
+ int main ()
+ {
+   const omp_alloctrait_t traits[] = {{omp_atk_alignment, 1024}};
+   omp_allocator_handle_t alloc = omp_null_allocator;
+   omp_allocator_handle_t alloc2 = omp_null_allocator;
+ 
+   int array[2], var2 = 124;
+   int res = 1;
+ 
+   #pragma omp target map(from: res) \
+      uses_allocators(traits(traits) : alloc2) \
+      allocate(alloc : array, var2) private(array) firstprivate(var2)
+   {
+ // { dg-error "allocator 'alloc' requires 'uses_allocators\\(alloc\\)' clause in target region" "" { target *-*-* } .-2 }
+      array[0] = 1; 
+      array[1] = 2; 
+      if (var2 != 124 || ((omp_uintptr_t) &var2) % 1024 != 0)
+        __builtin_abort ();
+      else if (array[0] != 1 || array[1] != 2 || ((omp_uintptr_t) &array[0]) % 1024 != 0)
+        __builtin_abort ();
+      else
+        res = 42;
+   }
+   if (res != 42)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/cobol.dg/.gitignore gcc-17-20260719/gcc/testsuite/cobol.dg/.gitignore
*** gcc-17-20260712/gcc/testsuite/cobol.dg/.gitignore	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/cobol.dg/.gitignore	Sun Jul 19 22:32:10 2026
***************
*** 0 ****
--- 1 ----
+ *.txt0
diff -Nrcpad gcc-17-20260712/gcc/testsuite/cobol.dg/group2/CBL_CREATE_FILE___CBL_WRITE_FILE___CBL_CLOSE_FILE.cob gcc-17-20260719/gcc/testsuite/cobol.dg/group2/CBL_CREATE_FILE___CBL_WRITE_FILE___CBL_CLOSE_FILE.cob
*** gcc-17-20260712/gcc/testsuite/cobol.dg/group2/CBL_CREATE_FILE___CBL_WRITE_FILE___CBL_CLOSE_FILE.cob	Sun Jul 12 22:32:11 2026
--- gcc-17-20260719/gcc/testsuite/cobol.dg/group2/CBL_CREATE_FILE___CBL_WRITE_FILE___CBL_CLOSE_FILE.cob	Sun Jul 19 22:32:10 2026
***************
*** 1,5 ****
         *> { dg-do run }
!        *> { dg-options "-dialect mf" }
  
          identification division.
          program-id. test_cbl_write_file.
--- 1,5 ----
         *> { dg-do run }
!        *> { dg-options "-dialect mf -fcobol-exceptions EC-ALL" }
  
          identification division.
          program-id. test_cbl_write_file.
diff -Nrcpad gcc-17-20260712/gcc/testsuite/cobol.dg/group2/CBL_DELETE_FILE.cob gcc-17-20260719/gcc/testsuite/cobol.dg/group2/CBL_DELETE_FILE.cob
*** gcc-17-20260712/gcc/testsuite/cobol.dg/group2/CBL_DELETE_FILE.cob	Sun Jul 12 22:32:11 2026
--- gcc-17-20260719/gcc/testsuite/cobol.dg/group2/CBL_DELETE_FILE.cob	Sun Jul 19 22:32:10 2026
***************
*** 21,26 ****
--- 21,27 ----
            perform create-file.
            perform delete-file.
            perform delete-invalid-file.
+           move zero to return-code.
            goback.
  
          create-file section.
diff -Nrcpad gcc-17-20260712/gcc/testsuite/cobol.dg/group2/CBL_OPEN_FILE___CBL_CLOSE_FILE.cob gcc-17-20260719/gcc/testsuite/cobol.dg/group2/CBL_OPEN_FILE___CBL_CLOSE_FILE.cob
*** gcc-17-20260712/gcc/testsuite/cobol.dg/group2/CBL_OPEN_FILE___CBL_CLOSE_FILE.cob	Sun Jul 12 22:32:11 2026
--- gcc-17-20260719/gcc/testsuite/cobol.dg/group2/CBL_OPEN_FILE___CBL_CLOSE_FILE.cob	Sun Jul 19 22:32:10 2026
***************
*** 41,53 ****
          open-ro.
            move 1 to access-mode.
            display "Opening /dev/null as read-only"
!           call "CBL_OPEN_FILE" using "/dev/null"
                                       access-mode
                                       deny-mode
                                       device
                                       file-handle
            if return-code <> 0
!             display "Failed to open " FILE_NAME " with " return-code
            else
              call "CBL_CLOSE_FILE" using file-handle
            end-if.
--- 41,53 ----
          open-ro.
            move 1 to access-mode.
            display "Opening /dev/null as read-only"
!           call "CBL_OPEN_FILE" using Z"/dev/null"
                                       access-mode
                                       deny-mode
                                       device
                                       file-handle
            if return-code <> 0
!             display "Failed to open " Z"/dev/null" " with " return-code
            else
              call "CBL_CLOSE_FILE" using file-handle
            end-if.
diff -Nrcpad gcc-17-20260712/gcc/testsuite/cobol.dg/group2/CBL_OPEN_FILE___CBL_READ_FILE___CBL_CLOSE_FILE.cob gcc-17-20260719/gcc/testsuite/cobol.dg/group2/CBL_OPEN_FILE___CBL_READ_FILE___CBL_CLOSE_FILE.cob
*** gcc-17-20260712/gcc/testsuite/cobol.dg/group2/CBL_OPEN_FILE___CBL_READ_FILE___CBL_CLOSE_FILE.cob	Sun Jul 12 22:32:11 2026
--- gcc-17-20260719/gcc/testsuite/cobol.dg/group2/CBL_OPEN_FILE___CBL_READ_FILE___CBL_CLOSE_FILE.cob	Sun Jul 19 22:32:10 2026
***************
*** 35,41 ****
        *> Deny both read and write.
            move 0 to deny-mode.
            display "Opening /dev/zero as read-only".
!           call "CBL_OPEN_FILE" using "/dev/zero"
                                       access-mode
                                       deny-mode
                                       device
--- 35,41 ----
        *> Deny both read and write.
            move 0 to deny-mode.
            display "Opening /dev/zero as read-only".
!           call "CBL_OPEN_FILE" using Z"/dev/zero"
                                       access-mode
                                       deny-mode
                                       device
diff -Nrcpad gcc-17-20260712/gcc/testsuite/cobol.dg/group2/CBL_READ_FILE__check_file_size_with_flags___128.cob gcc-17-20260719/gcc/testsuite/cobol.dg/group2/CBL_READ_FILE__check_file_size_with_flags___128.cob
*** gcc-17-20260712/gcc/testsuite/cobol.dg/group2/CBL_READ_FILE__check_file_size_with_flags___128.cob	Sun Jul 12 22:32:11 2026
--- gcc-17-20260719/gcc/testsuite/cobol.dg/group2/CBL_READ_FILE__check_file_size_with_flags___128.cob	Sun Jul 19 22:32:10 2026
***************
*** 29,34 ****
--- 29,35 ----
          procedure division.
            perform write-file.
            perform check-file-size.
+           move zero to return-code.
            goback.
  
          write-file section.
***************
*** 77,82 ****
--- 78,84 ----
                                       file-handle.
  
            if return-code <> 0
+             display "Failed to open file " filename
              display "CBL_OPEN_FILE failed with " return-code
              goback
            end-if.
diff -Nrcpad gcc-17-20260712/gcc/testsuite/cobol.dg/group2/DEBUG-ITEM_using_mh_identical.cob gcc-17-20260719/gcc/testsuite/cobol.dg/group2/DEBUG-ITEM_using_mh_identical.cob
*** gcc-17-20260712/gcc/testsuite/cobol.dg/group2/DEBUG-ITEM_using_mh_identical.cob	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/cobol.dg/group2/DEBUG-ITEM_using_mh_identical.cob	Sun Jul 19 22:32:10 2026
***************
*** 0 ****
--- 1,52 ----
+        *> { dg-do run }
+        *> { dg-output-file "group2/DEBUG-ITEM_using_mh_identical.out" }
+         identification division.
+         program-id. dbgline.
+         data division.
+         working-storage section.
+         01 var  picture is x(3).
+         01 var2 picture is x(6).
+         01 ws-debug-item.
+             02 ws-debug-line picture is x(6) value "burp".
+             02 filler picture is x value space.
+             02 ws-debug-name picture is x(30).
+             02 filler picture is x value space.
+             02 ws-debug-sub-1 picture is s9999 
+                                     sign is leading separate character.
+             02 filler picture is x value space.
+             02 ws-debug-sub-2 picture is s9999 
+                                     sign is leading separate character.
+             02 filler picture is x value space.
+             02 ws-debug-sub-3 picture is s9999 
+                                     sign is leading separate character.
+             02 filler picture is x value space.
+             02 ws-debug-contents picture is x(76).
+         procedure division.
+             display "defaults"
+             display """" debug-line """"
+             display """" debug-name """"
+             display      debug-sub-1
+             display      debug-sub-2
+             display      debug-sub-3
+             display """" debug-contents """"
+             move  "aaLINE"               to ws-debug-line
+             move  "bbNAME"               to ws-debug-name
+             move  1234                 to ws-debug-sub-1
+             move -2345                 to ws-debug-sub-2
+             move  3456                 to ws-debug-sub-3
+             move  "ccDebugging contents" to ws-debug-contents
+             move ws-debug-line         to debug-line
+             move ws-debug-name         to debug-name
+             move ws-debug-sub-1        to debug-sub-1
+             move ws-debug-sub-2        to debug-sub-2
+             move ws-debug-sub-3        to debug-sub-3
+             move ws-debug-contents     to debug-contents
+             display "after the moves"
+             display """" debug-line """"
+             display """" debug-name """"
+             display      debug-sub-1
+             display      debug-sub-2
+             display      debug-sub-3
+             display """" debug-contents """"
+            stop run.
+ 
diff -Nrcpad gcc-17-20260712/gcc/testsuite/cobol.dg/group2/DEBUG-ITEM_using_mh_identical.out gcc-17-20260719/gcc/testsuite/cobol.dg/group2/DEBUG-ITEM_using_mh_identical.out
*** gcc-17-20260712/gcc/testsuite/cobol.dg/group2/DEBUG-ITEM_using_mh_identical.out	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/cobol.dg/group2/DEBUG-ITEM_using_mh_identical.out	Sun Jul 19 22:32:10 2026
***************
*** 0 ****
--- 1,15 ----
+ defaults
+ "      "
+ "                              "
+ +0000
+ +0000
+ +0000
+ "                                                                           "
+ after the moves
+ "aaLINE"
+ "bbNAME                        "
+ +1234
+ -2345
+ +3456
+ "ccDebugging contents                                                        "
+ 
diff -Nrcpad gcc-17-20260712/gcc/testsuite/cobol.dg/group2/INITIALIZE_with_-defaultbyte__ASCII_.cob gcc-17-20260719/gcc/testsuite/cobol.dg/group2/INITIALIZE_with_-defaultbyte__ASCII_.cob
*** gcc-17-20260712/gcc/testsuite/cobol.dg/group2/INITIALIZE_with_-defaultbyte__ASCII_.cob	Sun Jul 12 22:32:11 2026
--- gcc-17-20260719/gcc/testsuite/cobol.dg/group2/INITIALIZE_with_-defaultbyte__ASCII_.cob	Sun Jul 19 22:32:10 2026
***************
*** 19,27 ****
             02 PHONE-NUMBER.
                03 NAME      PIC A(30).
                03 AREA-CODE PIC 999.
!               03 DASH      PIC X VALUE'-'.
                03 PREFIX    PIC 999.
!               03 DASH      PIC X VALUE'-'.
                03 LOCAL     PIC 999.
          77 WHO-AM-I PIC X(12).
          PROCEDURE        DIVISION.
--- 19,27 ----
             02 PHONE-NUMBER.
                03 NAME      PIC A(30).
                03 AREA-CODE PIC 999.
!               03 DASH      PIC X VALUE '-'.
                03 PREFIX    PIC 999.
!               03 DASH      PIC X VALUE '-'.
                03 LOCAL     PIC 999.
          77 WHO-AM-I PIC X(12).
          PROCEDURE        DIVISION.
diff -Nrcpad gcc-17-20260712/gcc/testsuite/cobol.dg/group2/INITIALIZE_with_-defaultbyte__EBCDIC_.cob gcc-17-20260719/gcc/testsuite/cobol.dg/group2/INITIALIZE_with_-defaultbyte__EBCDIC_.cob
*** gcc-17-20260712/gcc/testsuite/cobol.dg/group2/INITIALIZE_with_-defaultbyte__EBCDIC_.cob	Sun Jul 12 22:32:11 2026
--- gcc-17-20260719/gcc/testsuite/cobol.dg/group2/INITIALIZE_with_-defaultbyte__EBCDIC_.cob	Sun Jul 19 22:32:10 2026
***************
*** 19,27 ****
             02 PHONE-NUMBER.
                03 NAME      PIC A(30).
                03 AREA-CODE PIC 999.
!               03 DASH      PIC X VALUE'-'.
                03 PREFIX    PIC 999.
!               03 DASH      PIC X VALUE'-'.
                03 LOCAL     PIC 999.
          77 WHO-AM-I PIC X(12).
          PROCEDURE        DIVISION.
--- 19,27 ----
             02 PHONE-NUMBER.
                03 NAME      PIC A(30).
                03 AREA-CODE PIC 999.
!               03 DASH      PIC X VALUE '-'.
                03 PREFIX    PIC 999.
!               03 DASH      PIC X VALUE '-'.
                03 LOCAL     PIC 999.
          77 WHO-AM-I PIC X(12).
          PROCEDURE        DIVISION.
diff -Nrcpad gcc-17-20260712/gcc/testsuite/cobol.dg/group2/PR59_RT3586_-_Code_format_heuristic_fails.cob gcc-17-20260719/gcc/testsuite/cobol.dg/group2/PR59_RT3586_-_Code_format_heuristic_fails.cob
*** gcc-17-20260712/gcc/testsuite/cobol.dg/group2/PR59_RT3586_-_Code_format_heuristic_fails.cob	Sun Jul 12 22:32:11 2026
--- gcc-17-20260719/gcc/testsuite/cobol.dg/group2/PR59_RT3586_-_Code_format_heuristic_fails.cob	Thu Jan  1 00:00:00 1970
***************
*** 1,7 ****
-       *> { dg-do compile }
- 
- 00002  PROGRAM-ID.      PROG.                                           RJD0002
- 00003  PROCEDURE        DIVISION.                                       RJD0003
- 00004      GOBACK.                                                      RJD0004
- 00005  END PROGRAM      PROG.                                           RJD0005
- 
--- 0 ----
diff -Nrcpad gcc-17-20260712/gcc/testsuite/cobol.dg/group2/RT3609_Unexpected_PROCESS.cob gcc-17-20260719/gcc/testsuite/cobol.dg/group2/RT3609_Unexpected_PROCESS.cob
*** gcc-17-20260712/gcc/testsuite/cobol.dg/group2/RT3609_Unexpected_PROCESS.cob	Sun Jul 12 22:32:11 2026
--- gcc-17-20260719/gcc/testsuite/cobol.dg/group2/RT3609_Unexpected_PROCESS.cob	Thu Jan  1 00:00:00 1970
***************
*** 1,9 ****
-        *> { dg-do run }
-        *> { dg-options "-O0 -Wno-ibm-cdf -I copybooks -Wno-recording-mode -ffixed-form -dialect ibm -fno-static-call -fexec-charset=CP037 -fexec-national-charset=CP037" }
- 
- 00001  PROCESS FLAG(I,W) FDUMP
- 00002  IDENTIFICATION DIVISION.
- 00003     PROGRAM-ID. prog.
- 00004  PROCEDURE DIVISION.
- 00005    DISPLAY "OK".
- 
--- 0 ----
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/asan/pr120201-1.C gcc-17-20260719/gcc/testsuite/g++.dg/asan/pr120201-1.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/asan/pr120201-1.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.dg/asan/pr120201-1.C	Sun Jul 19 22:32:10 2026
***************
*** 0 ****
--- 1,42 ----
+ // { dg-do run }
+ // { dg-options "-O3 -std=c++23 -fsanitize=address" }
+ 
+ using size_t = decltype (sizeof 0);
+ 
+ float* shaderLightData;
+ 
+ using ShaderShadowTransform = float[4z * 4z * 6z];
+ using Transform = float[4 * 4];
+ 
+ __attribute__ ((noipa))
+ #if defined(__i386__) || defined(__x86_64__)
+ __attribute__ ((target ("arch=x86-64-v4")))
+ #endif
+ static void
+ do_test (void)
+ {
+   int lightCount = 3;
+   ShaderShadowTransform* shaderShadowData = new ShaderShadowTransform[lightCount];
+   for (int index = 0; index < lightCount; index++)
+     {
+       Transform transforms[6];
+ 
+       const size_t matSize = 4z * 4z;
+       float* transformBlockStart = shaderShadowData[index];
+       for (int face = 0; face < 6; face++)
+ 	__builtin_memcpy(transformBlockStart + (matSize * face),
+ 			 &transforms[face][0], matSize * sizeof(float));
+   }
+ 
+   delete [] shaderShadowData;
+ }
+ 
+ int
+ main (void)
+ {
+ #if defined(__i386__) || defined(__x86_64__)
+   if (__builtin_cpu_supports ("x86-64-v4"))
+ #endif
+     do_test ();
+   return 0;
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi10.C gcc-17-20260719/gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi10.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi10.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi10.C	Sun Jul 19 22:32:11 2026
***************
*** 0 ****
--- 1,14 ----
+ // PR c++/125066
+ // { dg-do compile { target c++11 } }
+ 
+ class Callback;
+ struct Handler {
+   Handler(Callback);
+ };
+ struct [[clang::trivial_abi]] Holder {
+   ~Holder();
+ };
+ struct [[clang::trivial_abi]] Callback {
+   Holder holder;
+ };
+ Handler::Handler(Callback) {}
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi11.C gcc-17-20260719/gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi11.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi11.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi11.C	Sun Jul 19 22:32:11 2026
***************
*** 0 ****
--- 1,11 ----
+ // { dg-do compile { target c++11 } }
+ // Test basic functionality of [[clang::trivial_abi]] attribute
+ 
+ struct [[_Clang::__trivial_abi__]] A { int a; ~A () {} };
+ #if __cplusplus >= 201703L
+ struct [[using _Clang:__trivial_abi__]] B { int b; ~B () {} };
+ #endif
+ struct [[__clang__::__trivial_abi__]] C { int c; ~C () {} };		// { dg-warning "alternate attribute namespace for 'clang' is '_Clang' rather than '__clang__'" }
+ #if __cplusplus >= 201703L
+ struct [[using __clang__:__trivial_abi__]] D { int d; ~D () {} };	// { dg-warning "alternate attribute namespace for 'clang' is '_Clang' rather than '__clang__'" "" { target c++17 } }
+ #endif
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi8.C gcc-17-20260719/gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi8.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi8.C	Sun Jul 12 22:32:12 2026
--- gcc-17-20260719/gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi8.C	Sun Jul 19 22:32:11 2026
***************
*** 19,21 ****
--- 19,46 ----
  #if __has_attribute (trivial_abi) != 1
  #error
  #endif
+ #if __has_cpp_attribute (_Clang::__trivial_abi__) != 1
+ #error
+ #endif
+ #if __has_cpp_attribute (__gnu__::__trivial_abi__) != 0
+ #error
+ #endif
+ #if __has_cpp_attribute (__trivial_abi__) != 0
+ #error This fails for now
+ // { dg-bogus "This fails for now" "" { xfail *-*-* } .-1 }
+ #endif
+ #if __has_attribute (_Clang::__trivial_abi__) != 1
+ #error
+ #endif
+ #if __has_attribute (__gnu__::__trivial_abi__) != 0
+ #error
+ #endif
+ #if __has_attribute (__trivial_abi__) != 1
+ #error
+ #endif
+ #if __has_cpp_attribute (__clang__::__trivial_abi__) != 0
+ #error
+ #endif
+ #if __has_attribute (__clang__::__trivial_abi__) != 0
+ #error
+ #endif
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi9.C gcc-17-20260719/gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi9.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi9.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.dg/cpp0x/attr-trivial_abi9.C	Sun Jul 19 22:32:11 2026
***************
*** 0 ****
--- 1,13 ----
+ // PR c++/125064
+ // { dg-do compile { target c++17 } }
+ 
+ struct A;
+ class [[clang::trivial_abi]] B {
+   B(B &&);
+ };
+ void f(A);
+ struct [[clang::trivial_abi]] A { // { dg-warning "cannot be applied" }
+   A(...);
+   B b;
+ };
+ void g() { f(1); }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/cpp0x/dealloc1.C gcc-17-20260719/gcc/testsuite/g++.dg/cpp0x/dealloc1.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/cpp0x/dealloc1.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.dg/cpp0x/dealloc1.C	Sun Jul 19 22:32:11 2026
***************
*** 0 ****
--- 1,8 ----
+ // { dg-do compile { target c++11 } }
+ 
+ struct A {};
+ void operator delete (void *, A);
+ void operator delete (void *, A) noexcept;
+ struct B {};
+ void operator delete (void *, B) noexcept (true);
+ void operator delete (void *, B);
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/cpp0x/dealloc2.C gcc-17-20260719/gcc/testsuite/g++.dg/cpp0x/dealloc2.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/cpp0x/dealloc2.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.dg/cpp0x/dealloc2.C	Sun Jul 19 22:32:11 2026
***************
*** 0 ****
--- 1,9 ----
+ // { dg-do compile { target c++11 } }
+ 
+ struct A {};
+ void operator delete (void *, A);
+ void operator delete (void *, A) noexcept (false);	// { dg-error "declaration of 'void operator delete\\\(void\\\*, A\\\) noexcept \\\(false\\\)' has a different exception specifier" }
+ // { dg-error "deallocation function 'void operator delete\\\(void\\\*, A\\\)' declared possibly throwing" "" { target c++29 } .-1 }
+ struct B {};
+ void operator delete (void *, B) noexcept (false);	// { dg-error "deallocation function 'void operator delete\\\(void\\\*, B\\\)' declared possibly throwing" "" { target c++29 } }
+ void operator delete (void *, B);			// { dg-error "declaration of 'void operator delete\\\(void\\\*, B\\\) noexcept' has a different exception specifier" }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/cpp0x/enum-bool-conv.C gcc-17-20260719/gcc/testsuite/g++.dg/cpp0x/enum-bool-conv.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/cpp0x/enum-bool-conv.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.dg/cpp0x/enum-bool-conv.C	Sun Jul 19 22:32:11 2026
***************
*** 0 ****
--- 1,109 ----
+ // PR c++/96496
+ // { dg-do run { target c++11 } }
+ // Conversion to an enum with a fixed underlying type of bool should convert
+ // the value to bool first ([expr.static.cast]/8, CWG 2338).
+ 
+ enum Flag : bool { kNo, kYes };
+ enum class ScopedFlag : bool { kOff, kOn };
+ 
+ struct S {
+   constexpr operator Flag () const { return kYes; }
+   operator bool() = delete;	// but not using this conversion function
+ };
+ 
+ template <typename T> struct A
+ {
+   enum E : T { kZero, kOne };
+ };
+ 
+ static_assert (static_cast<Flag> (2) == kYes, "");
+ static_assert (static_cast<Flag> (-1) == kYes, "");
+ static_assert ((Flag) 2 == kYes, "");
+ static_assert (static_cast<Flag> (true) == kYes, "");
+ static_assert (static_cast<Flag> (false) == kNo, "");
+ static_assert (static_cast<Flag> (0) == kNo, "");
+ static_assert (static_cast<Flag> (1) == kYes, "");
+ static_assert (static_cast<Flag> (0.5) == kYes, "");
+ static_assert (static_cast<Flag> (0.0) == kNo, "");
+ static_assert (static_cast<ScopedFlag> (6) == ScopedFlag::kOn, "");
+ static_assert (static_cast<Flag> (ScopedFlag::kOn) == kYes, "");
+ static_assert (static_cast<Flag> (S{}) == kYes, "");
+ static_assert (static_cast<A<bool>::E> (6) == A<bool>::kOne, "");
+ static_assert (static_cast<A<char>::E> (6) == 6, "");
+ 
+ // Helpers to keep the operands non-constant and exercise the
+ // runtime conversion.
+ 
+ Flag
+ convert (int x)
+ {
+   return static_cast<Flag> (x);
+ }
+ 
+ Flag
+ convert (double d)
+ {
+   return static_cast<Flag> (d);
+ }
+ 
+ Flag
+ convert_cstyle (int x)
+ {
+   return (Flag) x;
+ }
+ 
+ Flag
+ convert_from_bool (bool b)
+ {
+   return static_cast<Flag> (b);
+ }
+ 
+ ScopedFlag
+ convert_scoped (int x)
+ {
+   return static_cast<ScopedFlag> (x);
+ }
+ 
+ A<bool>::E
+ convert_dep_bool (int x)
+ {
+   return static_cast<A<bool>::E> (x);
+ }
+ 
+ A<char>::E
+ convert_dep_char (int x)
+ {
+   return static_cast<A<char>::E> (x);
+ }
+ 
+ Flag
+ convert_from_scoped (ScopedFlag f)
+ {
+   return static_cast<Flag> (f);
+ }
+ 
+ Flag
+ convert_via_operator (S s)
+ {
+   return static_cast<Flag> (s);
+ }
+ 
+ int
+ main ()
+ {
+   if (convert (2) != kYes) __builtin_abort ();
+   if (convert (-1) != kYes) __builtin_abort ();
+   if (convert (0) != kNo) __builtin_abort ();
+   if (convert (1) != kYes) __builtin_abort ();
+   if (convert (0.5) != kYes) __builtin_abort ();
+   if (convert (0.0) != kNo) __builtin_abort ();
+   if (convert_cstyle (2) != kYes) __builtin_abort ();
+   if (convert_cstyle (0) != kNo) __builtin_abort ();
+   if (convert_from_bool (true) != kYes) __builtin_abort ();
+   if (convert_from_bool (false) != kNo) __builtin_abort ();
+   if (convert_scoped (6) != ScopedFlag::kOn) __builtin_abort ();
+   if (convert_from_scoped (ScopedFlag::kOn) != kYes) __builtin_abort ();
+   if (convert_via_operator (S{}) != kYes) __builtin_abort ();
+   if (convert_dep_bool (6) != A<bool>::kOne) __builtin_abort ();
+   if (convert_dep_char (6) != 6) __builtin_abort ();
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/cpp1z/aligned-new3.C gcc-17-20260719/gcc/testsuite/g++.dg/cpp1z/aligned-new3.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/cpp1z/aligned-new3.C	Sun Jul 12 22:32:12 2026
--- gcc-17-20260719/gcc/testsuite/g++.dg/cpp1z/aligned-new3.C	Sun Jul 19 22:32:11 2026
*************** void* operator new (std::size_t n, std::
*** 13,19 ****
  }
  
  bool deleted = false;
! void operator delete (void *p, std::size_t, std::align_val_t) // { dg-warning "exception specifier" }
  {
    deleted = true;
    operator delete (p);
--- 13,19 ----
  }
  
  bool deleted = false;
! void operator delete (void *p, std::size_t, std::align_val_t)
  {
    deleted = true;
    operator delete (p);
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/cpp29/dealloc1.C gcc-17-20260719/gcc/testsuite/g++.dg/cpp29/dealloc1.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/cpp29/dealloc1.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.dg/cpp29/dealloc1.C	Sun Jul 19 22:32:11 2026
***************
*** 0 ****
--- 1,45 ----
+ // P3424R2 - Deallocation Functions with Throwing Exception Specification Are Ill-formed
+ // { dg-do compile { target c++11 } }
+ 
+ struct A {};
+ struct B {};
+ void operator delete (void *, A) noexcept (false);	// { dg-error "deallocation function 'void operator delete\\\(void\\\*, A\\\)' declared possibly throwing" "" { target c++29 } }
+ void operator delete (void *, B) noexcept (false) {}	// { dg-error "deallocation function 'void operator delete\\\(void\\\*, B\\\)' declared possibly throwing" "" { target c++29 } }
+ void operator delete[] (void *, A) noexcept (false);	// { dg-error "deallocation function 'void operator delete \\\[\\\]\\\(void\\\*, A\\\)' declared possibly throwing" "" { target c++29 } }
+ void operator delete[] (void *, B) noexcept (false) {}	// { dg-error "deallocation function 'void operator delete \\\[\\\]\\\(void\\\*, B\\\)' declared possibly throwing" "" { target c++29 } }
+ template <bool T, bool U>
+ struct C {
+   static void operator delete (void *) noexcept (T);	// { dg-error "deallocation function 'static void C<T, U>::operator delete\\\(void\\\*\\\) \\\[with bool T = false; bool U = true\\\]' declared possibly throwing" "" { target c++29 } }
+   static void operator delete[] (void *) noexcept (T);	// { dg-error "deallocation function 'static void C<T, U>::operator delete \\\[\\\]\\\(void\\\*\\\) \\\[with bool T = false; bool U = true\\\]' declared possibly throwing" "" { target c++29 } }
+ };
+ template <bool T, bool U>
+ struct D {
+   static void operator delete (void *) noexcept (T) {}	// { dg-error "deallocation function 'static void D<T, U>::operator delete\\\(void\\\*\\\) \\\[with bool T = false; bool U = true\\\]' declared possibly throwing" "" { target c++29 } }
+   static void operator delete[] (void *) noexcept (T) {}// { dg-error "deallocation function 'static void D<T, U>::operator delete \\\[\\\]\\\(void\\\*\\\) \\\[with bool T = false; bool U = true\\\]' declared possibly throwing" "" { target c++29 } }
+ };
+ C <false, false> a;
+ C <true, false> b;
+ D <false, false> c;
+ D <true, false> d;
+ auto e = &C <false, true>::operator delete;
+ auto f = &C <true, true>::operator delete;
+ auto g = &D <false, true>::operator delete;
+ auto h = &D <true, true>::operator delete;
+ auto i = &C <false, true>::operator delete[];
+ auto j = &C <true, true>::operator delete[];
+ auto k = &D <false, true>::operator delete[];
+ auto l = &D <true, true>::operator delete[];
+ struct E {
+   static void operator delete (void *) noexcept (C) {}	// { dg-error "deallocation function 'static void E::operator delete\\\(void\\\*\\\)' declared possibly throwing" "" { target c++29 } }
+   static constexpr bool C = false;
+ };
+ template <int N>
+ struct F {
+   static void operator delete (void *) noexcept (false);	// { dg-error "deallocation function 'static void F<N>::operator delete\\\(void\\\*\\\)' declared possibly throwing" "" { target c++29 } }
+   static void operator delete[] (void *) noexcept (false);	// { dg-error "deallocation function 'static void F<N>::operator delete \\\[\\\]\\\(void\\\*\\\)' declared possibly throwing" "" { target c++29 } }
+ };
+ template <int N>
+ struct G {
+   static void operator delete (void *) noexcept (false) {}	// { dg-error "deallocation function 'static void G<N>::operator delete\\\(void\\\*\\\)' declared possibly throwing" "" { target c++29 } }
+   static void operator delete[] (void *) noexcept (false) {}	// { dg-error "deallocation function 'static void G<N>::operator delete \\\[\\\]\\\(void\\\*\\\)' declared possibly throwing" "" { target c++29 } }
+ };
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/cpp2a/concepts-pr126066.C gcc-17-20260719/gcc/testsuite/g++.dg/cpp2a/concepts-pr126066.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/cpp2a/concepts-pr126066.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.dg/cpp2a/concepts-pr126066.C	Sun Jul 19 22:32:11 2026
***************
*** 0 ****
--- 1,15 ----
+ // PR c++/126066
+ // { dg-do compile { target c++20 } }
+ // { dg-options "-Wall" }
+ 
+ struct S { S& operator=(int); };
+ 
+ void
+ fn ()
+ {
+   if constexpr (requires(int &a) { a = 0; }) { }
+   if constexpr (requires(S &s) { s = 0; }) { }
+ }
+ 
+ constexpr bool b = requires(int &a) { a = 0; };
+ static_assert(requires(int &a) { a = 0; });
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/cpp2a/destroying-delete7.C gcc-17-20260719/gcc/testsuite/g++.dg/cpp2a/destroying-delete7.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/cpp2a/destroying-delete7.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.dg/cpp2a/destroying-delete7.C	Sun Jul 19 22:32:11 2026
***************
*** 0 ****
--- 1,10 ----
+ // { dg-do compile { target c++20 } }
+ 
+ #include <new>
+ 
+ struct T {
+   ~T () noexcept (false);
+   static void operator delete (T *, std::destroying_delete_t);
+ };
+ T *p = nullptr;
+ static_assert (noexcept (delete (p)));
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/ext/attr-no_specializations1.C gcc-17-20260719/gcc/testsuite/g++.dg/ext/attr-no_specializations1.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/ext/attr-no_specializations1.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.dg/ext/attr-no_specializations1.C	Sun Jul 19 22:32:11 2026
***************
*** 0 ****
--- 1,102 ----
+ // PR c++/120635
+ // { dg-do compile { target c++11 } }
+ 
+ template <typename T, typename U>
+ struct [[clang::no_specializations]] A {};		// { dg-message "declared 'clang::no_specializations' here" }
+ #if __cpp_variable_templates >= 201304
+ template <typename T, typename U>
+ [[clang::no_specializations]] int b = 1;		// { dg-message "declared 'clang::no_specializations' here" "" { target c++14 } }
+ #endif
+ template <typename T, typename U>
+ [[_Clang::__no_specializations__]] int foo () { return 0; }	// { dg-message "declared 'clang::no_specializations' here" }
+ template <typename T>
+ struct B {
+   struct [[clang::no_specializations]] C {};		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+   [[clang::no_specializations]] static int b;		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+   [[clang::no_specializations]] int foo () { return 0; }// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+   template <typename U>
+   class [[clang::no_specializations]] D {};
+ };
+ A <int, long> c;
+ #if __cpp_variable_templates >= 201304
+ int d = b <int, long>;
+ #endif
+ int e = foo <int, long> ();
+ template <typename T>
+ struct D {};
+ template <>
+ struct A <int, int> { int a; };				// { dg-error "'struct A<int, int>' cannot be specialized" }
+ template <typename T>
+ struct A <long, T> { long b; };				// { dg-error "'struct A<long int, T>' cannot be specialized" }
+ template <typename T>
+ struct A <D <T>, D <T>> { D<T> c; };			// { dg-error "'struct A<D<T>, D<T> >' cannot be specialized" }
+ #if __cpp_variable_templates >= 201304
+ template <>
+ int b <int, int> = 2;					// { dg-error "'b<int, int>' cannot be specialized" "" { target c++14 } }
+ template <typename T>
+ int b <long, T> = 3;					// { dg-error "'b<long int, T>' cannot be specialized" "" { target c++14 } }
+ template <typename T>
+ int b <D <T>, D <T>> = 4;				// { dg-error "'b<D<T>, D<T> >' cannot be specialized" "" { target c++14 } }
+ #endif
+ template <>
+ int foo <int, int> () { return 1; }			// { dg-error "'int foo\\\(\\\) \\\[with T = int; U = int\\\]' cannot be specialized" }
+ struct [[clang::no_specializations]] E {};		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ template <typename T>
+ using F [[clang::no_specializations]] = T;		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ [[clang::no_specializations]] int f = 1;		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ [[clang::no_specializations]] int bar () { return 0; }	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ template <typename T, typename U>
+ struct G {};
+ #if __cpp_variable_templates >= 201304
+ template <typename T, typename U>
+ int g = 1;
+ #endif
+ template <typename T, typename U>
+ int baz () { return 0; }
+ template <>
+ struct [[clang::no_specializations]] G <int, int> { int a; };		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ template <typename T>
+ struct [[clang::no_specializations]] G <long, T> { long b; };		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ template <typename T>
+ struct [[clang::no_specializations]] G <D <T>, D <T>> { D<T> c; };	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ #if __cpp_variable_templates >= 201304
+ template <>
+ [[clang::no_specializations]] int g <int, int> = 2;	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" "" { target c++14 } }
+ template <typename T>
+ [[clang::no_specializations]] int g <long, T> = 3;	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" "" { target c++14 } }
+ template <typename T>
+ [[clang::no_specializations]] int g <D <T>, D <T>> = 4;	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" "" { target c++14 } }
+ #endif
+ template <>
+ [[clang::no_specializations]] int baz <int, int> () { return 1; }	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ template <typename T>
+ using H [[clang::no_specializations]] = int;		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ template struct A <double, double>;
+ extern template struct A <float, float>;
+ #if __cpp_variable_templates >= 201304
+ template int b <double, double>;
+ extern template int b <float, float>;
+ #endif
+ template int foo <double, double> ();
+ extern template int foo <float, float> ();
+ template <typename T>
+ struct D2 {};
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Winvalid-specialization"
+ template <>
+ struct A <short, int> { int a; };			// { dg-bogus "'struct A<int, int>' cannot be specialized" }
+ template <typename T>
+ struct A <long long, T> { long b; };			// { dg-bogus "'struct A<long int, T>' cannot be specialized" }
+ template <typename T>
+ struct A <D2 <T>, D2 <T>> { D2<T> c; };			// { dg-bogus "'struct A<D<T>, D<T> >' cannot be specialized" }
+ #if __cpp_variable_templates >= 201304
+ template <>
+ constexpr int b <short, int> = 2;			// { dg-bogus "'b<short, int>' cannot be specialized" }
+ template <typename T>
+ constexpr int b <long long, T> = 3;			// { dg-bogus "'b<long long int, T>' cannot be specialized" }
+ template <typename T>
+ constexpr int b <D2 <T>, D2 <T>> = 4;			// { dg-bogus "'b<D2<T>, D2<T> >' cannot be specialized" }
+ #endif
+ template <>
+ int foo <short, int> () { return 1; }			// { dg-bogus "'int foo\\\(\\\) \\\[with T = short; U = int\\\]' cannot be specialized" }
+ #pragma GCC diagnostic pop
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/ext/attr-no_specializations10.C gcc-17-20260719/gcc/testsuite/g++.dg/ext/attr-no_specializations10.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/ext/attr-no_specializations10.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.dg/ext/attr-no_specializations10.C	Sun Jul 19 22:32:11 2026
***************
*** 0 ****
--- 1,47 ----
+ // PR c++/120635
+ // { dg-do preprocess { target c++11 } }
+ 
+ #if __has_cpp_attribute (clang::no_specializations) != 1
+ #error
+ #endif
+ #if __has_cpp_attribute (gnu::no_specializations) != 0
+ #error
+ #endif
+ #if __has_cpp_attribute (no_specializations) != 0
+ #error This fails for now
+ // { dg-bogus "This fails for now" "" { xfail *-*-* } .-1 }
+ #endif
+ #if __has_attribute (clang::no_specializations) != 1
+ #error
+ #endif
+ #if __has_attribute (gnu::no_specializations) != 0
+ #error
+ #endif
+ #if __has_attribute (no_specializations) != 1
+ #error
+ #endif
+ #if __has_cpp_attribute (_Clang::__no_specializations__) != 1
+ #error
+ #endif
+ #if __has_cpp_attribute (__gnu__::__no_specializations__) != 0
+ #error
+ #endif
+ #if __has_cpp_attribute (__no_specializations__) != 0
+ #error This fails for now
+ // { dg-bogus "This fails for now" "" { xfail *-*-* } .-1 }
+ #endif
+ #if __has_attribute (_Clang::__no_specializations__) != 1
+ #error
+ #endif
+ #if __has_attribute (__gnu__::__no_specializations__) != 0
+ #error
+ #endif
+ #if __has_attribute (__no_specializations__) != 1
+ #error
+ #endif
+ #if __has_cpp_attribute (__clang__::__no_specializations__) != 0
+ #error
+ #endif
+ #if __has_attribute (__clang__::__no_specializations__) != 0
+ #error
+ #endif
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/ext/attr-no_specializations11.C gcc-17-20260719/gcc/testsuite/g++.dg/ext/attr-no_specializations11.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/ext/attr-no_specializations11.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.dg/ext/attr-no_specializations11.C	Sun Jul 19 22:32:11 2026
***************
*** 0 ****
--- 1,11 ----
+ // PR c++/120635
+ // { dg-do compile { target c++11 } }
+ 
+ template <typename T, typename U>
+ struct [[gnu::no_specializations]] A {};			// { dg-warning "'\\\[\\\[gnu::no_specializations\\\]\\\]' is not supported; use '\\\[\\\[clang::no_specializations\\\]\\\]' or '__attribute__\\\(\\\(no_specializations\\\)\\\)' instead" }
+ #if __cpp_variable_templates >= 201304
+ template <typename T, typename U>
+ [[gnu::no_specializations ("foo")]] int b = 1;			// { dg-warning "'\\\[\\\[gnu::no_specializations\\\]\\\]' is not supported; use '\\\[\\\[clang::no_specializations\\\]\\\]' or '__attribute__\\\(\\\(no_specializations\\\)\\\)' instead" "" { target c++14 } }
+ #endif
+ template <typename T, typename U>
+ [[__gnu__::__no_specializations__]] int foo () { return 0; }	// { dg-warning "'\\\[\\\[gnu::no_specializations\\\]\\\]' is not supported; use '\\\[\\\[clang::no_specializations\\\]\\\]' or '__attribute__\\\(\\\(no_specializations\\\)\\\)' instead" }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/ext/attr-no_specializations12.C gcc-17-20260719/gcc/testsuite/g++.dg/ext/attr-no_specializations12.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/ext/attr-no_specializations12.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.dg/ext/attr-no_specializations12.C	Sun Jul 19 22:32:11 2026
***************
*** 0 ****
--- 1,15 ----
+ // PR c++/120635
+ // { dg-do compile { target c++17 } }
+ 
+ template <typename T, typename U>
+ struct [[using _Clang:__no_specializations__]] A {};
+ template <typename T, typename U>
+ struct [[using _Clang:__no_specializations__ ("foo")]] B {};
+ template <typename T, typename U>
+ struct [[__clang__::__no_specializations__]] C {};		// { dg-warning "alternate attribute namespace for 'clang' is '_Clang' rather than '__clang__'" }
+ template <typename T, typename U>
+ struct [[__clang__::__no_specializations__ ("foo")]] D {};	// { dg-warning "alternate attribute namespace for 'clang' is '_Clang' rather than '__clang__'" }
+ template <typename T, typename U>
+ struct [[using __clang__:__no_specializations__]] E {};		// { dg-warning "alternate attribute namespace for 'clang' is '_Clang' rather than '__clang__'" }
+ template <typename T, typename U>
+ struct [[using __clang__:__no_specializations__ ("foo")]] F {};	// { dg-warning "alternate attribute namespace for 'clang' is '_Clang' rather than '__clang__'" }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/ext/attr-no_specializations2.C gcc-17-20260719/gcc/testsuite/g++.dg/ext/attr-no_specializations2.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/ext/attr-no_specializations2.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.dg/ext/attr-no_specializations2.C	Sun Jul 19 22:32:11 2026
***************
*** 0 ****
--- 1,102 ----
+ // PR c++/120635
+ // { dg-do compile { target c++11 } }
+ 
+ template <typename T, typename U>
+ union [[clang::no_specializations ("reason1")]] A {};			// { dg-message "declared 'clang::no_specializations' here" }
+ #if __cpp_variable_templates >= 201304
+ template <typename T, typename U>
+ [[_Clang::__no_specializations__ ("reason2")]] int b = 1;		// { dg-message "declared 'clang::no_specializations' here" "" { target c++14 } }
+ #endif
+ template <typename T, typename U>
+ [[clang::no_specializations ("reason3")]] int foo () { return 0; }	// { dg-message "declared 'clang::no_specializations' here" }
+ template <typename T>
+ struct B {
+   struct [[clang::no_specializations ("reason4")]] C {};		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+   [[clang::no_specializations ("reason5")]] static int b;		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+   [[clang::no_specializations ("reason6")]] int foo () { return 0; }	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+   template <typename U>
+   class [[clang::no_specializations ("reason7")]] D {};
+ };
+ A <int, long> c;
+ #if __cpp_variable_templates >= 201304
+ int d = b <int, long>;
+ #endif
+ int e = foo <int, long> ();
+ template <typename T>
+ struct D {};
+ template <>
+ union A <int, int> { int a; };				// { dg-error "'union A<int, int>' cannot be specialized: 'reason1'" }
+ template <typename T>
+ union A <long, T> { long b; };				// { dg-error "'union A<long int, T>' cannot be specialized: 'reason1'" }
+ template <typename T>
+ union A <D <T>, D <T>> { D<T> c; };			// { dg-error "'union A<D<T>, D<T> >' cannot be specialized: 'reason1'" }
+ #if __cpp_variable_templates >= 201304
+ template <>
+ int b <int, int> = 2;					// { dg-error "'b<int, int>' cannot be specialized: 'reason2'" "" { target c++14 } }
+ template <typename T>
+ int b <long, T> = 3;					// { dg-error "'b<long int, T>' cannot be specialized: 'reason2'" "" { target c++14 } }
+ template <typename T>
+ int b <D <T>, D <T>> = 4;				// { dg-error "'b<D<T>, D<T> >' cannot be specialized: 'reason2'" "" { target c++14 } }
+ #endif
+ template <>
+ int foo <int, int> () { return 1; }			// { dg-error "'int foo\\\(\\\) \\\[with T = int; U = int\\\]' cannot be specialized: 'reason3'" }
+ struct [[clang::no_specializations ("reason8")]] E {};	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ template <typename T>
+ using F [[clang::no_specializations ("reason9")]] = T;	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ [[clang::no_specializations ("reason10")]] int f = 1;	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ [[clang::no_specializations ("reason11")]] int bar () { return 0; } // { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ template <typename T, typename U>
+ union G {};
+ #if __cpp_variable_templates >= 201304
+ template <typename T, typename U>
+ int g = 1;
+ #endif
+ template <typename T, typename U>
+ int baz () { return 0; }
+ template <>
+ union [[clang::no_specializations ("reason12")]] G <int, int> { int a; };		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ template <typename T>
+ union [[clang::no_specializations ("reason13")]] G <long, T> { long b; };		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ template <typename T>
+ union [[clang::no_specializations ("reason14")]] G <D <T>, D <T>> { D<T> c; };		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ #if __cpp_variable_templates >= 201304
+ template <>
+ [[clang::no_specializations ("reason15")]] int g <int, int> = 2;	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" "" { target c++14 } }
+ template <typename T>
+ [[clang::no_specializations ("reason16")]] int g <long, T> = 3;		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" "" { target c++14 } }
+ template <typename T>
+ [[clang::no_specializations ("reason17")]] int g <D <T>, D <T>> = 4;	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" "" { target c++14 } }
+ #endif
+ template <>
+ [[clang::no_specializations ("reason18")]] int baz <int, int> () { return 1; } // { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ template <typename T>
+ using H [[clang::no_specializations ("reason19")]] = int;		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ template union A <double, double>;
+ extern template union A <float, float>;
+ #if __cpp_variable_templates >= 201304
+ template int b <double, double>;
+ extern template int b <float, float>;
+ #endif
+ template int foo <double, double> ();
+ extern template int foo <float, float> ();
+ template <typename T>
+ struct D2 {};
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Winvalid-specialization"
+ template <>
+ union A <short, int> { int a; };			// { dg-bogus "'union A<int, int>' cannot be specialized: 'reason1'" }
+ template <typename T>
+ union A <long long, T> { long b; };			// { dg-bogus "'union A<long int, T>' cannot be specialized: 'reason1'" }
+ template <typename T>
+ union A <D2 <T>, D2 <T>> { D2<T> c; };			// { dg-bogus "'union A<D<T>, D<T> >' cannot be specialized: 'reason1'" }
+ #if __cpp_variable_templates >= 201304
+ template <>
+ constexpr int b <short, int> = 2;			// { dg-bogus "'b<short, int>' cannot be specialized: 'reason2'" }
+ template <typename T>
+ constexpr int b <long long, T> = 3;			// { dg-bogus "'b<long long int, T>' cannot be specialized: 'reason2'" }
+ template <typename T>
+ constexpr int b <D2 <T>, D2 <T>> = 4;			// { dg-bogus "'b<D2<T>, D2<T> >' cannot be specialized: 'reason2'" }
+ #endif
+ template <>
+ int foo <short, int> () { return 1; }			// { dg-bogus "'int foo\\\(\\\) \\\[with T = short; U = int\\\]' cannot be specialized: 'reason3'" }
+ #pragma GCC diagnostic pop
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/ext/attr-no_specializations3.C gcc-17-20260719/gcc/testsuite/g++.dg/ext/attr-no_specializations3.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/ext/attr-no_specializations3.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.dg/ext/attr-no_specializations3.C	Sun Jul 19 22:32:11 2026
***************
*** 0 ****
--- 1,108 ----
+ // PR c++/120635
+ // { dg-do compile }
+ 
+ template <typename T, typename U>
+ struct __attribute__((no_specializations)) A {};	// { dg-message "declared 'clang::no_specializations' here" }
+ #if __cpp_variable_templates >= 201304
+ template <typename T, typename U>
+ __attribute__((__no_specializations__)) int b = 1;	// { dg-message "declared 'clang::no_specializations' here" "" { target c++14 } }
+ #endif
+ template <typename T, typename U>
+ __attribute__((no_specializations)) int foo () { return 0; }	// { dg-message "declared 'clang::no_specializations' here" }
+ template <typename T>
+ struct B {
+   struct __attribute__((no_specializations)) C {};	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+   __attribute__((no_specializations)) static int b;	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+   __attribute__((no_specializations)) int foo () { return 0; }	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+   template <typename U>
+   class __attribute__((no_specializations)) D {};
+ };
+ A <int, long> c;
+ #if __cpp_variable_templates >= 201304
+ int d = b <int, long>;
+ #endif
+ int e = foo <int, long> ();
+ template <typename T>
+ struct D {};
+ template <>
+ struct A <int, int> { int a; };				// { dg-error "'struct A<int, int>' cannot be specialized" }
+ template <typename T>
+ struct A <long, T> { long b; };				// { dg-error "'struct A<long int, T>' cannot be specialized" }
+ template <typename T>
+ struct A <D <T>, D <T> > { D<T> c; };			// { dg-error "'struct A<D<T>, D<T> >' cannot be specialized" }
+ #if __cpp_variable_templates >= 201304
+ template <>
+ int b <int, int> = 2;					// { dg-error "'b<int, int>' cannot be specialized" "" { target c++14 } }
+ template <typename T>
+ int b <long, T> = 3;					// { dg-error "'b<long int, T>' cannot be specialized" "" { target c++14 } }
+ template <typename T>
+ int b <D <T>, D <T>> = 4;				// { dg-error "'b<D<T>, D<T> >' cannot be specialized" "" { target c++14 } }
+ #endif
+ template <>
+ int foo <int, int> () { return 1; }			// { dg-error "'int foo\\\(\\\) \\\[with T = int; U = int\\\]' cannot be specialized" }
+ struct __attribute__((no_specializations)) E {};	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ #if __cplusplus >= 201103
+ template <typename T>
+ using F __attribute__((no_specializations)) = T;	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" "" { target c++11 } }
+ #endif
+ __attribute__((no_specializations)) int f = 1;		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ __attribute__((no_specializations)) int bar () { return 0; }	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ template <typename T, typename U>
+ struct G {};
+ #if __cpp_variable_templates >= 201304
+ template <typename T, typename U>
+ int g = 1;
+ #endif
+ template <typename T, typename U>
+ int baz () { return 0; }
+ template <>
+ struct __attribute__((no_specializations)) G <int, int> { int a; };		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ template <typename T>
+ struct __attribute__((no_specializations)) G <long, T> { long b; };		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ template <typename T>
+ struct __attribute__((no_specializations)) G <D <T>, D <T> > { D<T> c; };	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ #if __cpp_variable_templates >= 201304
+ template <>
+ __attribute__((no_specializations)) int g <int, int> = 2;	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" "" { target c++14 } }
+ template <typename T>
+ __attribute__((no_specializations)) int g <long, T> = 3;	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" "" { target c++14 } }
+ template <typename T>
+ __attribute__((no_specializations)) int g <D <T>, D <T>> = 4;	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" "" { target c++14 } }
+ #endif
+ template <>
+ __attribute__((no_specializations)) int baz <int, int> () { return 1; }	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ #if __cplusplus >= 201103
+ template <typename T>
+ using H __attribute__((no_specializations)) = int;		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" "" { target c++11 } }
+ template struct A <double, double>;
+ extern template struct A <float, float>;
+ #endif
+ #if __cpp_variable_templates >= 201304
+ template int b <double, double>;
+ extern template int b <float, float>;
+ #endif
+ template int foo <double, double> ();
+ #if __cplusplus >= 201103
+ extern template int foo <float, float> ();
+ #endif
+ template <typename T>
+ struct D2 {};
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Winvalid-specialization"
+ template <>
+ struct A <short, int> { int a; };			// { dg-bogus "'struct A<int, int>' cannot be specialized" }
+ template <typename T>
+ struct A <long long, T> { long b; };			// { dg-bogus "'struct A<long int, T>' cannot be specialized" }
+ template <typename T>
+ struct A <D2 <T>, D2 <T> > { D2<T> c; };		// { dg-bogus "'struct A<D<T>, D<T> >' cannot be specialized" }
+ #if __cpp_variable_templates >= 201304
+ template <>
+ constexpr int b <short, int> = 2;			// { dg-bogus "'b<short, int>' cannot be specialized" }
+ template <typename T>
+ constexpr int b <long long, T> = 3;			// { dg-bogus "'b<long long int, T>' cannot be specialized" }
+ template <typename T>
+ constexpr int b <D2 <T>, D2 <T>> = 4;			// { dg-bogus "'b<D2<T>, D2<T> >' cannot be specialized" }
+ #endif
+ template <>
+ int foo <short, int> () { return 1; }			// { dg-bogus "'int foo\\\(\\\) \\\[with T = short; U = int\\\]' cannot be specialized" }
+ #pragma GCC diagnostic pop
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/ext/attr-no_specializations4.C gcc-17-20260719/gcc/testsuite/g++.dg/ext/attr-no_specializations4.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/ext/attr-no_specializations4.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.dg/ext/attr-no_specializations4.C	Sun Jul 19 22:32:11 2026
***************
*** 0 ****
--- 1,108 ----
+ // PR c++/120635
+ // { dg-do compile }
+ 
+ template <typename T, typename U>
+ struct __attribute__((no_specializations ("reason1"))) A {};		// { dg-message "declared 'clang::no_specializations' here" }
+ #if __cpp_variable_templates >= 201304
+ template <typename T, typename U>
+ __attribute__((__no_specializations__ ("reason2"))) int b = 1;		// { dg-message "declared 'clang::no_specializations' here" "" { target c++14 } }
+ #endif
+ template <typename T, typename U>
+ __attribute__((no_specializations ("reason3"))) int foo () { return 0; }// { dg-message "declared 'clang::no_specializations' here" }
+ template <typename T>
+ struct B {
+   struct __attribute__((no_specializations ("reason4"))) C {};		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+   __attribute__((no_specializations ("reason5"))) static int b;		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+   __attribute__((no_specializations ("reason6"))) int foo () { return 0; }	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+   template <typename U>
+   class __attribute__((no_specializations ("reason7"))) D {};
+ };
+ A <int, long> c;
+ #if __cpp_variable_templates >= 201304
+ int d = b <int, long>;
+ #endif
+ int e = foo <int, long> ();
+ template <typename T>
+ struct D {};
+ template <>
+ struct A <int, int> { int a; };				// { dg-error "'struct A<int, int>' cannot be specialized: 'reason1'" }
+ template <typename T>
+ struct A <long, T> { long b; };				// { dg-error "'struct A<long int, T>' cannot be specialized: 'reason1'" }
+ template <typename T>
+ struct A <D <T>, D <T> > { D<T> c; };			// { dg-error "'struct A<D<T>, D<T> >' cannot be specialized: 'reason1'" }
+ #if __cpp_variable_templates >= 201304
+ template <>
+ int b <int, int> = 2;					// { dg-error "'b<int, int>' cannot be specialized: 'reason2'" "" { target c++14 } }
+ template <typename T>
+ int b <long, T> = 3;					// { dg-error "'b<long int, T>' cannot be specialized: 'reason2'" "" { target c++14 } }
+ template <typename T>
+ int b <D <T>, D <T> > = 4;				// { dg-error "'b<D<T>, D<T> >' cannot be specialized: 'reason2'" "" { target c++14 } }
+ #endif
+ template <>
+ int foo <int, int> () { return 1; }			// { dg-error "'int foo\\\(\\\) \\\[with T = int; U = int\\\]' cannot be specialized: 'reason3'" }
+ struct __attribute__((no_specializations ("reason8"))) E {};	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ #if __cplusplus >= 201103
+ template <typename T>
+ using F __attribute__((no_specializations ("reason9"))) = T;	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" "" { target c++11 } }
+ #endif
+ __attribute__((no_specializations ("reason10"))) int f = 1;	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ __attribute__((no_specializations ("reason11"))) int bar () { return 0; } // { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ template <typename T, typename U>
+ struct G {};
+ #if __cpp_variable_templates >= 201304
+ template <typename T, typename U>
+ int g = 1;
+ #endif
+ template <typename T, typename U>
+ int baz () { return 0; }
+ template <>
+ struct __attribute__((no_specializations ("reason12"))) G <int, int> { int a; };		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ template <typename T>
+ struct __attribute__((no_specializations ("reason13"))) G <long, T> { long b; };		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ template <typename T>
+ struct __attribute__((no_specializations ("reason14"))) G <D <T>, D <T> > { D<T> c; };		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ #if __cpp_variable_templates >= 201304
+ template <>
+ __attribute__((no_specializations ("reason15"))) int g <int, int> = 2;		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" "" { target c++14 } }
+ template <typename T>
+ __attribute__((no_specializations ("reason16"))) int g <long, T> = 3;		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" "" { target c++14 } }
+ template <typename T>
+ __attribute__((no_specializations ("reason17"))) int g <D <T>, D <T> > = 4;	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" "" { target c++14 } }
+ #endif
+ template <>
+ __attribute__((no_specializations ("reason18"))) int baz <int, int> () { return 1; } // { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ #if __cplusplus >= 201103
+ template <typename T>
+ using H __attribute__((no_specializations ("reason19"))) = int;			// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" "" { target c++11 } }
+ template struct A <double, double>;
+ extern template struct A <float, float>;
+ #endif
+ #if __cpp_variable_templates >= 201304
+ template int b <double, double>;
+ extern template int b <float, float>;
+ #endif
+ template int foo <double, double> ();
+ #if __cplusplus >= 201103
+ extern template int foo <float, float> ();
+ #endif
+ template <typename T>
+ struct D2 {};
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Winvalid-specialization"
+ template <>
+ struct A <short, int> { int a; };			// { dg-bogus "'struct A<int, int>' cannot be specialized: 'reason1'" }
+ template <typename T>
+ struct A <long long, T> { long b; };			// { dg-bogus "'struct A<long int, T>' cannot be specialized: 'reason1'" }
+ template <typename T>
+ struct A <D2 <T>, D2 <T> > { D2<T> c; };		// { dg-bogus "'struct A<D<T>, D<T> >' cannot be specialized: 'reason1'" }
+ #if __cpp_variable_templates >= 201304
+ template <>
+ constexpr int b <short, int> = 2;			// { dg-bogus "'b<short, int>' cannot be specialized: 'reason2'" }
+ template <typename T>
+ constexpr int b <long long, T> = 3;			// { dg-bogus "'b<long long int, T>' cannot be specialized: 'reason2'" }
+ template <typename T>
+ constexpr int b <D2 <T>, D2 <T> > = 4;			// { dg-bogus "'b<D2<T>, D2<T> >' cannot be specialized: 'reason2'" }
+ #endif
+ template <>
+ int foo <short, int> () { return 1; }			// { dg-bogus "'int foo\\\(\\\) \\\[with T = short; U = int\\\]' cannot be specialized: 'reason3'" }
+ #pragma GCC diagnostic pop
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/ext/attr-no_specializations5.C gcc-17-20260719/gcc/testsuite/g++.dg/ext/attr-no_specializations5.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/ext/attr-no_specializations5.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.dg/ext/attr-no_specializations5.C	Sun Jul 19 22:32:11 2026
***************
*** 0 ****
--- 1,160 ----
+ // PR c++/120635
+ // { dg-do compile { target c++11 } }
+ 
+ int arr[2];
+ struct S { int a, b; };
+ S arr2[2];
+ 
+ template <typename T>
+ struct [[clang::no_specializations]] S1 {};
+ template <typename T>
+ struct [[clang::no_specializations ("foobar")]] S2 {};
+ template <typename T>
+ struct [[clang::no_specializations (0)]] S3 {};			// { dg-error "'no_specializations' attribute argument must be a string constant|expected string-literal" }
+ template <typename T>
+ struct [[clang::no_specializations ("foo", "bar", "baz")]] S4 {};// { dg-error "wrong number of arguments specified for 'no_specializations' attribute" }
+ template <typename T>
+ struct [[clang::no_specializations (0, 1, 2)]] S5 {};		// { dg-error "wrong number of arguments specified for 'no_specializations' attribute|expected string-literal" }
+ 
+ void
+ foo (int n)
+ {
+   auto a = [] [[clang::no_specializations]] () {};		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+   auto b = [] constexpr [[clang::no_specializations]] {};	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ 								// { dg-error "parameter declaration before lambda declaration specifiers only optional with" "" { target c++20_down } .-1 }
+ 								// { dg-error "'constexpr' lambda only available with" "" { target c++14_down } .-2 }
+   auto c = [] noexcept [[clang::no_specializations]] {};	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ 								// { dg-error "parameter declaration before lambda exception specification only optional with" "" { target c++20_down } .-1 }
+   auto d = [] () [[clang::no_specializations]] {};		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+   auto e = new int [n] [[clang::no_specializations]];		// { dg-warning "attributes ignored on outermost array type in new expression" }
+   auto e2 = new int [n] [[clang::no_specializations]] [42];	// { dg-warning "attributes ignored on outermost array type in new expression" }
+   auto f = new int [n][42] [[clang::no_specializations]];	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+   [[clang::no_specializations]];				// { dg-warning "attributes at the beginning of statement are ignored" }
+   [[clang::no_specializations]] {}				// { dg-warning "attributes at the beginning of statement are ignored" }
+   [[clang::no_specializations]] if (true) {}			// { dg-warning "attributes at the beginning of statement are ignored" }
+   [[clang::no_specializations]] while (false) {}		// { dg-warning "attributes at the beginning of statement are ignored" }
+   [[clang::no_specializations]] goto lab;			// { dg-warning "attributes at the beginning of statement are ignored" }
+   [[clang::no_specializations]] lab:;				// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+   [[clang::no_specializations]] try {} catch (int) {}		// { dg-warning "attributes at the beginning of statement are ignored" }
+   if ([[clang::no_specializations]] int x = 0) {}		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+   switch (n)
+     {
+     [[clang::no_specializations]] case 1:			// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+     [[clang::no_specializations]] break;			// { dg-warning "attributes at the beginning of statement are ignored" }
+     [[clang::no_specializations]] default:			// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ 	 break;
+     }
+   for ([[clang::no_specializations]] auto a : arr) {}		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+   for ([[clang::no_specializations]] auto [a, b] : arr2) {}	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ 								// { dg-error "structured bindings only available with" "" { target c++14_down } .-1 }
+   [[clang::no_specializations]] asm ("");			// { dg-warning "attributes ignored on 'asm' declaration" }
+   try {} catch ([[clang::no_specializations]] int x) {}		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+   try {} catch ([[clang::no_specializations]] int) {}		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+   try {} catch (int [[clang::no_specializations]] x) {}		// { dg-warning "attribute ignored" }
+   try {} catch (int [[clang::no_specializations]]) {}		// { dg-warning "attribute ignored" }
+   try {} catch (int x [[clang::no_specializations]]) {}		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ }
+ 
+ [[clang::no_specializations]] int bar ();			// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ using foobar [[clang::no_specializations]] = int;		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ [[clang::no_specializations]] int a;				// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ [[clang::no_specializations]] auto [b, c] = arr;		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ 								// { dg-error "structured bindings only available with" "" { target c++14_down } .-1 }
+ [[clang::no_specializations]];					// { dg-warning "attribute ignored" }
+ inline [[clang::no_specializations]] void baz () {}		// { dg-warning "attribute ignored" }
+ 								// { dg-error "standard attributes in middle of decl-specifiers" "" { target *-*-* } .-1 }
+ constexpr [[clang::no_specializations]] int qux () { return 0; }// { dg-warning "attribute ignored" }
+ 								// { dg-error "standard attributes in middle of decl-specifiers" "" { target *-*-* } .-1 }
+ int [[clang::no_specializations]] d;				// { dg-warning "attribute ignored" }
+ int const [[clang::no_specializations]] e = 1;			// { dg-warning "attribute ignored" }
+ struct A {} [[clang::no_specializations]];			// { dg-warning "attribute ignored in declaration of 'struct A'" }
+ struct A [[clang::no_specializations]];				// { dg-warning "attribute ignored" }
+ struct A [[clang::no_specializations]] a1;			// { dg-warning "attribute ignored" }
+ A [[clang::no_specializations]] a2;				// { dg-warning "attribute ignored" }
+ enum B { B0 } [[clang::no_specializations]];			// { dg-warning "attribute ignored in declaration of 'enum B'" }
+ enum B [[clang::no_specializations]];				// { dg-warning "attribute ignored" }
+ enum B [[clang::no_specializations]] b1;			// { dg-warning "attribute ignored" }
+ B [[clang::no_specializations]] b2;				// { dg-warning "attribute ignored" }
+ struct [[clang::no_specializations]] C {};			// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ int f [[clang::no_specializations]];				// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ int g[2] [[clang::no_specializations]];				// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ int g2 [[clang::no_specializations]] [2];			// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ int corge () [[clang::no_specializations]];			// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ int *[[clang::no_specializations]] h;				// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ int & [[clang::no_specializations]] i = f;			// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ int && [[clang::no_specializations]] j = 0;			// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ int S::* [[clang::no_specializations]] k;			// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ auto l = sizeof (int [2] [[clang::no_specializations]]);	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ int freddy ([[clang::no_specializations]] int a,		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ 	    [[clang::no_specializations]] int,			// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ 	    [[clang::no_specializations]] int c = 0,		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ 	    [[clang::no_specializations]] int = 0);		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ void
+ corge ([[clang::no_specializations]] int a,			// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+        [[clang::no_specializations]] int,			// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+        [[clang::no_specializations]] int c = 0,			// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+        [[clang::no_specializations]] int = 0)			// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ {
+ }
+ [[clang::no_specializations]] void
+ garply ()							// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ {
+ }
+ [[clang::no_specializations]] int
+ xyzzyy ()							// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ {
+   return 0;
+ }
+ int grault (int [[clang::no_specializations]] a,		// { dg-warning "attribute ignored" }
+ 	    int [[clang::no_specializations]],			// { dg-warning "attribute ignored" }
+ 	    int [[clang::no_specializations]] c = 0,		// { dg-warning "attribute ignored" }
+ 	    int [[clang::no_specializations]] = 0);		// { dg-warning "attribute ignored" }
+ void
+ waldo (int [[clang::no_specializations]] a,			// { dg-warning "attribute ignored" }
+        int [[clang::no_specializations]],			// { dg-warning "attribute ignored" }
+        int [[clang::no_specializations]] c = 0,			// { dg-warning "attribute ignored" }
+        int [[clang::no_specializations]] = 0)			// { dg-warning "attribute ignored" }
+ {
+ }
+ int plugh (int a [[clang::no_specializations]],			// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ 	    int b [[clang::no_specializations]] = 0);		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ void
+ thud (int a [[clang::no_specializations]],			// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+       int b [[clang::no_specializations]] = 0)			// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ {
+ }
+ enum [[clang::no_specializations]] D { D0 };			// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ enum class [[clang::no_specializations]] E { E0 };		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ enum F {};
+ enum [[clang::no_specializations]] F;				// { dg-warning "type attributes ignored after type is already defined" }
+ enum G {
+   G0 [[clang::no_specializations]],				// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+   G1 [[clang::no_specializations]] = 2				// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ };
+ namespace [[clang::no_specializations]] H { using H0 = int; }	// { dg-warning "'no_specializations' attribute directive ignored" }
+ namespace [[clang::no_specializations]] {}			// { dg-warning "'no_specializations' attribute directive ignored" }
+ [[clang::no_specializations]] using namespace H;		// { dg-warning "'no_specializations' attribute directive ignored" }
+ struct [[clang::no_specializations]] I				// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ {
+   [[clang::no_specializations]];				// { dg-error "declaration does not declare anything" }
+   [[clang::no_specializations]] int i;				// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+   [[clang::no_specializations]] int foo ();			// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+   [[clang::no_specializations]] int bar () { return 1; }	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+   [[clang::no_specializations]] int : 0;			// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+   [[clang::no_specializations]] int i2 : 5;			// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+   [[clang::no_specializations]] static int i3;			// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+   static int i4;
+ };
+ [[clang::no_specializations]] int I::i4 = 0;			// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ struct J : [[clang::no_specializations]] C {};			// { dg-warning "attributes on base specifiers are ignored" }
+ #if __cpp_concepts >= 201907L
+ template <typename T>
+ concept K [[clang::no_specializations]] = requires { true; };	// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" "" { target c++20 } }
+ #endif
+ typedef int L [[clang::no_specializations]];			// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ template <typename T>
+ struct M {};
+ template <>
+ struct [[clang::no_specializations]] M<int> { int m; };		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ typedef int N[2] [[clang::no_specializations]];			// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
+ typedef int O [[clang::no_specializations]] [2];		// { dg-warning "'no_specializations' attribute only applies to class, function or variable templates" }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/ext/attr-no_specializations6.C gcc-17-20260719/gcc/testsuite/g++.dg/ext/attr-no_specializations6.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/ext/attr-no_specializations6.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.dg/ext/attr-no_specializations6.C	Sun Jul 19 22:32:11 2026
***************
*** 0 ****
--- 1,75 ----
+ // PR c++/120635
+ // { dg-do compile { target c++11 } }
+ // { dg-options "-Winvalid-specialization" }
+ 
+ template <typename T, typename U>
+ class [[clang::no_specializations]] A {};		// { dg-message "declared 'clang::no_specializations' here" }
+ #if __cpp_variable_templates >= 201304
+ template <typename T, typename U>
+ [[clang::no_specializations]] constexpr int b = 1;	// { dg-message "declared 'clang::no_specializations' here" "" { target c++14 } }
+ #endif
+ template <typename T, typename U>
+ [[_Clang::__no_specializations__]] int foo () { return 0; }	// { dg-message "declared 'clang::no_specializations' here" }
+ template <typename T>
+ struct D {};
+ template <>
+ struct A <int, int> { int a; };				// { dg-error "'class A<int, int>' cannot be specialized" }
+ template <typename T>
+ struct A <long, T> { long b; };				// { dg-error "'class A<long int, T>' cannot be specialized" }
+ template <typename T>
+ struct A <D <T>, D <T>> { D<T> c; };			// { dg-error "'class A<D<T>, D<T> >' cannot be specialized" }
+ #if __cpp_variable_templates >= 201304
+ template <>
+ constexpr int b <int, int> = 2;				// { dg-error "'b<int, int>' cannot be specialized" "" { target c++14 } }
+ template <typename T>
+ constexpr int b <long, T> = 3;				// { dg-error "'b<long int, T>' cannot be specialized" "" { target c++14 } }
+ template <typename T>
+ constexpr int b <D <T>, D <T>> = 4;			// { dg-error "'b<D<T>, D<T> >' cannot be specialized" "" { target c++14 } }
+ #endif
+ template <>
+ int foo <int, int> () { return 1; }			// { dg-error "'int foo\\\(\\\) \\\[with T = int; U = int\\\]' cannot be specialized" }
+ template <typename T, typename U>
+ struct [[clang::no_specializations ("this is why")]] B {}; // { dg-message "declared 'clang::no_specializations' here" }
+ #if __cpp_variable_templates >= 201304
+ template <typename T, typename U>
+ [[clang::no_specializations ("my other reason")]] int c = 1; // { dg-message "declared 'clang::no_specializations' here" "" { target c++14 } }
+ #endif
+ template <typename T, typename U>
+ [[_Clang::__no_specializations__ ("bar cannot be specialized")]] int bar () { return 0; } // { dg-message "declared 'clang::no_specializations' here" }
+ template <>
+ struct B <int, int> { int a; };				// { dg-error "'struct B<int, int>' cannot be specialized: 'this is why'" }
+ template <typename T>
+ struct B <long, T> { long c; };				// { dg-error "'struct B<long int, T>' cannot be specialized: 'this is why'" }
+ template <typename T>
+ struct B <D <T>, D <T>> { D<T> c; };			// { dg-error "'struct B<D<T>, D<T> >' cannot be specialized: 'this is why'" }
+ #if __cpp_variable_templates >= 201304
+ template <>
+ int c <int, int> = 2;					// { dg-error "'c<int, int>' cannot be specialized: 'my other reason'" "" { target c++14 } }
+ template <typename T>
+ int c <long, T> = 3;					// { dg-error "'c<long int, T>' cannot be specialized: 'my other reason'" "" { target c++14 } }
+ template <typename T>
+ int c <D <T>, D <T>> = 4;				// { dg-error "'c<D<T>, D<T> >' cannot be specialized: 'my other reason'" "" { target c++14 } }
+ #endif
+ template <>
+ int bar <int, int> () { return 1; }			// { dg-error "'int bar\\\(\\\) \\\[with T = int; U = int\\\]' cannot be specialized: 'bar cannot be specialized'" }
+ template <typename T>
+ struct D2 {};
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Winvalid-specialization"
+ template <>
+ struct A <short, int> { int a; };			// { dg-bogus "'class A<int, int>' cannot be specialized" }
+ template <typename T>
+ struct A <long long, T> { long b; };			// { dg-bogus "'class A<long int, T>' cannot be specialized" }
+ template <typename T>
+ struct A <D2 <T>, D2 <T>> { D2<T> c; };			// { dg-bogus "'class A<D<T>, D<T> >' cannot be specialized" }
+ #if __cpp_variable_templates >= 201304
+ template <>
+ constexpr int b <short, int> = 2;			// { dg-bogus "'b<short, int>' cannot be specialized" }
+ template <typename T>
+ constexpr int b <long long, T> = 3;			// { dg-bogus "'b<long long int, T>' cannot be specialized" }
+ template <typename T>
+ constexpr int b <D2 <T>, D2 <T>> = 4;			// { dg-bogus "'b<D2<T>, D2<T> >' cannot be specialized" }
+ #endif
+ template <>
+ int foo <short, int> () { return 1; }			// { dg-bogus "'int foo\\\(\\\) \\\[with T = short; U = int\\\]' cannot be specialized" }
+ #pragma GCC diagnostic pop
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/ext/attr-no_specializations7.C gcc-17-20260719/gcc/testsuite/g++.dg/ext/attr-no_specializations7.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/ext/attr-no_specializations7.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.dg/ext/attr-no_specializations7.C	Sun Jul 19 22:32:11 2026
***************
*** 0 ****
--- 1,54 ----
+ // PR c++/120635
+ // { dg-do compile { target c++11 } }
+ // { dg-options "-Wno-invalid-specialization" }
+ 
+ template <typename T, typename U>
+ class [[clang::no_specializations]] A {};		// { dg-bogus "declared 'clang::no_specializations' here" }
+ #if __cpp_variable_templates >= 201304
+ template <typename T, typename U>
+ [[clang::no_specializations]] constexpr int b = 1;	// { dg-bogus "declared 'clang::no_specializations' here" }
+ #endif
+ template <typename T, typename U>
+ [[_Clang::__no_specializations__]] int foo () { return 0; }	// { dg-bogus "declared 'clang::no_specializations' here" }
+ template <typename T>
+ struct D {};
+ template <>
+ struct A <int, int> { int a; };				// { dg-bogus "'class A<int, int>' cannot be specialized" }
+ template <typename T>
+ struct A <long, T> { long b; };				// { dg-bogus "'class A<long int, T>' cannot be specialized" }
+ template <typename T>
+ struct A <D <T>, D <T>> { D<T> c; };			// { dg-bogus "'class A<D<T>, D<T> >' cannot be specialized" }
+ #if __cpp_variable_templates >= 201304
+ template <>
+ constexpr int b <int, int> = 2;				// { dg-bogus "'b<int, int>' cannot be specialized" }
+ template <typename T>
+ constexpr int b <long, T> = 3;				// { dg-bogus "'b<long int, T>' cannot be specialized" }
+ template <typename T>
+ constexpr int b <D <T>, D <T>> = 4;			// { dg-bogus "'b<D<T>, D<T> >' cannot be specialized" }
+ #endif
+ template <>
+ int foo <int, int> () { return 1; }			// { dg-bogus "'int foo\\\(\\\) \\\[with T = int; U = int\\\]' cannot be specialized" }
+ template <typename T, typename U>
+ struct [[clang::no_specializations ("this is why")]] B {}; // { dg-bogus "declared 'clang::no_specializations' here" }
+ #if __cpp_variable_templates >= 201304
+ template <typename T, typename U>
+ [[clang::no_specializations ("my other reason")]] int c = 1; // { dg-bogus "declared 'clang::no_specializations' here" }
+ #endif
+ template <typename T, typename U>
+ [[_Clang::__no_specializations__ ("bar cannot be specialized")]] int bar () { return 0; } // { dg-bogus "declared 'clang::no_specializations' here" }
+ template <>
+ struct B <int, int> { int a; };				// { dg-bogus "'struct B<int, int>' cannot be specialized: 'this is why'" }
+ template <typename T>
+ struct B <long, T> { long c; };				// { dg-bogus "'struct B<long int, T>' cannot be specialized: 'this is why'" }
+ template <typename T>
+ struct B <D <T>, D <T>> { D<T> c; };			// { dg-bogus "'struct B<D<T>, D<T> >' cannot be specialized: 'this is why'" }
+ #if __cpp_variable_templates >= 201304
+ template <>
+ int c <int, int> = 2;					// { dg-bogus "'c<int, int>' cannot be specialized: 'my other reason'" }
+ template <typename T>
+ int c <long, T> = 3;					// { dg-bogus "'c<long int, T>' cannot be specialized: 'my other reason'" }
+ template <typename T>
+ int c <D <T>, D <T>> = 4;				// { dg-bogus "'c<D<T>, D<T> >' cannot be specialized: 'my other reason'" }
+ #endif
+ template <>
+ int bar <int, int> () { return 1; }			// { dg-bogus "'int bar\\\(\\\) \\\[with T = int; U = int\\\]' cannot be specialized: 'bar cannot be specialized'" }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/ext/attr-no_specializations8.C gcc-17-20260719/gcc/testsuite/g++.dg/ext/attr-no_specializations8.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/ext/attr-no_specializations8.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.dg/ext/attr-no_specializations8.C	Sun Jul 19 22:32:11 2026
***************
*** 0 ****
--- 1,31 ----
+ // PR c++/120635
+ // { dg-do compile { target c++11 } }
+ // { dg-require-iconv "IBM1047" }
+ // { dg-options "-fexec-charset=IBM1047" }
+ 
+ template <typename T, typename U>
+ struct [[clang::no_specializations ("this is why")]] B {}; // { dg-message "declared 'clang::no_specializations' here" }
+ #if __cpp_variable_templates >= 201304
+ template <typename T, typename U>
+ [[clang::no_specializations ("my other reason")]] int c = 1; // { dg-message "declared 'clang::no_specializations' here" "" { target c++14 } }
+ #endif
+ template <typename T, typename U>
+ [[_Clang::__no_specializations__ ("bar cannot be specialized")]] int bar () { return 0; } // { dg-message "declared 'clang::no_specializations' here" }
+ template <typename T>
+ struct D {};
+ template <>
+ struct B <int, int> { int a; };				// { dg-error "'struct B<int, int>' cannot be specialized: 'this is why'" }
+ template <typename T>
+ struct B <long, T> { long c; };				// { dg-error "'struct B<long int, T>' cannot be specialized: 'this is why'" }
+ template <typename T>
+ struct B <D <T>, D <T>> { D<T> c; };			// { dg-error "'struct B<D<T>, D<T> >' cannot be specialized: 'this is why'" }
+ #if __cpp_variable_templates >= 201304
+ template <>
+ int c <int, int> = 2;					// { dg-error "'c<int, int>' cannot be specialized: 'my other reason'" "" { target c++14 } }
+ template <typename T>
+ int c <long, T> = 3;					// { dg-error "'c<long int, T>' cannot be specialized: 'my other reason'" "" { target c++14 } }
+ template <typename T>
+ int c <D <T>, D <T>> = 4;				// { dg-error "'c<D<T>, D<T> >' cannot be specialized: 'my other reason'" "" { target c++14 } }
+ #endif
+ template <>
+ int bar <int, int> () { return 1; }			// { dg-error "'int bar\\\(\\\) \\\[with T = int; U = int\\\]' cannot be specialized: 'bar cannot be specialized'" }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/ext/attr-no_specializations9.C gcc-17-20260719/gcc/testsuite/g++.dg/ext/attr-no_specializations9.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/ext/attr-no_specializations9.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.dg/ext/attr-no_specializations9.C	Sun Jul 19 22:32:11 2026
***************
*** 0 ****
--- 1,31 ----
+ // PR c++/120635
+ // { dg-do compile { target c++11 } }
+ // { dg-require-iconv "IBM1047" }
+ // { dg-options "-fexec-charset=IBM1047" }
+ 
+ template <typename T, typename U>
+ struct __attribute__((no_specializations ("this is why"))) B {}; // { dg-message "declared 'clang::no_specializations' here" }
+ #if __cpp_variable_templates >= 201304
+ template <typename T, typename U>
+ __attribute__((no_specializations ("my other reason"))) int c = 1; // { dg-message "declared 'clang::no_specializations' here" "" { target c++14 } }
+ #endif
+ template <typename T, typename U>
+ __attribute__((__no_specializations__ ("bar cannot be specialized"))) int bar () { return 0; } // { dg-message "declared 'clang::no_specializations' here" }
+ template <typename T>
+ struct D {};
+ template <>
+ struct B <int, int> { int a; };				// { dg-error "'struct B<int, int>' cannot be specialized: 'this is why'" }
+ template <typename T>
+ struct B <long, T> { long c; };				// { dg-error "'struct B<long int, T>' cannot be specialized: 'this is why'" }
+ template <typename T>
+ struct B <D <T>, D <T>> { D<T> c; };			// { dg-error "'struct B<D<T>, D<T> >' cannot be specialized: 'this is why'" }
+ #if __cpp_variable_templates >= 201304
+ template <>
+ int c <int, int> = 2;					// { dg-error "'c<int, int>' cannot be specialized: 'my other reason'" "" { target c++14 } }
+ template <typename T>
+ int c <long, T> = 3;					// { dg-error "'c<long int, T>' cannot be specialized: 'my other reason'" "" { target c++14 } }
+ template <typename T>
+ int c <D <T>, D <T>> = 4;				// { dg-error "'c<D<T>, D<T> >' cannot be specialized: 'my other reason'" "" { target c++14 } }
+ #endif
+ template <>
+ int bar <int, int> () { return 1; }			// { dg-error "'int bar\\\(\\\) \\\[with T = int; U = int\\\]' cannot be specialized: 'bar cannot be specialized'" }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/lto/pr126194.h gcc-17-20260719/gcc/testsuite/g++.dg/lto/pr126194.h
*** gcc-17-20260712/gcc/testsuite/g++.dg/lto/pr126194.h	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.dg/lto/pr126194.h	Sun Jul 19 22:32:11 2026
***************
*** 0 ****
--- 1,87 ----
+ #pragma once
+ 
+ using Size = decltype(sizeof(0));
+ 
+ struct A
+ {
+     void (*const f_)(void**) noexcept;
+     void** const p_;
+     Size const a_;
+ 
+     A(void** pp, void (*f)(void**) noexcept, Size a) noexcept
+         : f_(f), p_(pp), a_(a) {}
+ 
+     void reset() const noexcept
+     {
+         if (*p_) {
+             (*f_)(p_);
+         }
+     }
+ 
+     A& operator=(const A&) = delete;
+ 
+     void* create(Size size, const void* caller, struct R& r) const;
+     void destroy(void* p, const void* caller, struct R& r) const noexcept;
+ };
+ 
+ struct R
+ {
+     virtual ~R() = default;
+     virtual void* allocate(Size size, const void* caller) = 0;
+     virtual void deallocate(void* p, const void* caller) noexcept = 0;
+ };
+ 
+ R& get_r() noexcept;
+ void touch(const void* p) noexcept;
+ 
+ struct B
+ {
+     void* q = nullptr;
+ 
+     static void cb(void** pp) noexcept
+     {
+         B* self = reinterpret_cast<B*>(pp);
+         if (self->q) {
+             extern void release_q(void*);
+             release_q(self->q);
+         }
+         self->q = nullptr;
+     }
+ 
+     ~B() noexcept
+     {
+         touch(this);
+         if (q) {
+             extern void release_q(void*);
+             release_q(q);
+         }
+     }
+ 
+     B() noexcept = default;
+     B(const B&) = delete;
+     B& operator=(const B&) = delete;
+     B(B&& other) noexcept : q(other.q)
+     {
+         other.q = nullptr;
+     }
+     B& operator=(B&& other) noexcept
+     {
+         if (this != &other) {
+             if (q) {
+                 extern void release_q(void*);
+                 release_q(q);
+             }
+             q = other.q;
+             other.q = nullptr;
+         }
+         return *this;
+     }
+ 
+     operator A() noexcept
+     {
+         return A(&q, &cb, alignof(void*));
+     }
+ };
+ 
+ void* operator new(Size size, A const& a, R& r) noexcept(false);
+ void  operator delete(void* p, A const& a, R& r) noexcept;
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/lto/pr126194_0.C gcc-17-20260719/gcc/testsuite/g++.dg/lto/pr126194_0.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/lto/pr126194_0.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.dg/lto/pr126194_0.C	Sun Jul 19 22:32:11 2026
***************
*** 0 ****
--- 1,71 ----
+ // { dg-lto-do run }
+ // { dg-lto-options { { -O2 -flto } } }
+ 
+ #include "pr126194.h"
+ 
+ extern "C" void* malloc(Size size) noexcept;
+ extern "C" void free(void* p) noexcept;
+ 
+ namespace {
+ class M final : public R
+ {
+ public:
+     void* allocate(Size size, const void* /*caller*/) override
+     {
+         return malloc(size);
+     }
+ 
+     void deallocate(void* p, const void* /*caller*/) noexcept override
+     {
+         free(p);
+     }
+ };
+ 
+ M g_r;
+ }
+ 
+ R& get_r() noexcept
+ {
+     return g_r;
+ }
+ 
+ void touch(const void* p) noexcept
+ {
+     static const volatile void* sink = nullptr;
+     sink = p;
+ }
+ 
+ void release_q(void* p)
+ {
+     free(p);
+ }
+ 
+ int g_should_throw = 0;
+ 
+ void* A::create(Size size, const void* caller, R& r) const
+ {
+     reset();
+     if (size < a_) size = a_;
+     void* p = r.allocate(size, caller);
+     if (!p) throw 2;
+     *p_ = p;
+     return p;
+ }
+ 
+ __attribute__((noinline))
+ void A::destroy(void* p, const void* caller, R& r) const noexcept
+ {
+     *p_ = nullptr;
+     r.deallocate(p, caller);
+ }
+ 
+ void* operator new(Size size, A const& a, R& r) noexcept(false)
+ {
+     return a.create(size, __builtin_return_address(0), r);
+ }
+ 
+ __attribute__((noinline))
+ void operator delete(void* p, A const& a, R& r) noexcept
+ {
+     a.destroy(p, __builtin_return_address(0), r);
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/lto/pr126194_1.C gcc-17-20260719/gcc/testsuite/g++.dg/lto/pr126194_1.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/lto/pr126194_1.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.dg/lto/pr126194_1.C	Sun Jul 19 22:32:11 2026
***************
*** 0 ****
--- 1,41 ----
+ #include "pr126194.h"
+ 
+ extern int g_should_throw;
+ 
+ struct T
+ {
+     int a;
+     __attribute__((noinline)) T() : a(0)
+     {
+         if (g_should_throw) {
+             throw 1;
+         }
+     }
+ };
+ 
+ __attribute__((noinline))
+ int make_widget(bool go, void** out_ptr)
+ {
+     B b;
+     R& r = get_r();
+     if (go) {
+         T* t = new(b, r) T();
+         (void)t;
+     }
+     *out_ptr = b.q;
+     b.q = nullptr;
+     return 42;
+ }
+ 
+ extern "C" __attribute__((visibility("default")))
+ int run_repro(int argc)
+ {
+     g_should_throw = (argc > 0);
+     void* p = nullptr;
+     try {
+         (void)make_widget(argc > 0, &p);
+         return 1;
+     } catch (...) {
+         return 0;
+     }
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/lto/pr126194_2.C gcc-17-20260719/gcc/testsuite/g++.dg/lto/pr126194_2.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/lto/pr126194_2.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.dg/lto/pr126194_2.C	Sun Jul 19 22:32:11 2026
***************
*** 0 ****
--- 1,8 ----
+ // { dg-options "-fno-lto" }
+ 
+ extern "C" int run_repro(int argc);
+ 
+ int main(int argc, char**)
+ {
+     return run_repro(argc);
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/reflect/is_noexcept5.C gcc-17-20260719/gcc/testsuite/g++.dg/reflect/is_noexcept5.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/reflect/is_noexcept5.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.dg/reflect/is_noexcept5.C	Sun Jul 19 22:32:12 2026
***************
*** 0 ****
--- 1,25 ----
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ // Test std::meta::is_noexcept.
+ 
+ #include <meta>
+ #include <new>
+ 
+ struct A {
+   ~A ();
+ };
+ static_assert (is_noexcept (^^A::~A));
+ struct B {
+   ~B () noexcept (false);
+ };
+ static_assert (!is_noexcept (^^B::~B));
+ struct C {
+   ~C () noexcept (false);
+   static void operator delete (void *);
+ };
+ static_assert (is_noexcept (^^C::operator delete));
+ struct D {
+   ~D () noexcept (false);
+   static void operator delete (D *, std::destroying_delete_t);
+ };
+ static_assert (is_noexcept (^^D::operator delete));
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/warn/Wconversion-enum-fixed.C gcc-17-20260719/gcc/testsuite/g++.dg/warn/Wconversion-enum-fixed.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/warn/Wconversion-enum-fixed.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.dg/warn/Wconversion-enum-fixed.C	Sun Jul 19 22:32:12 2026
***************
*** 0 ****
--- 1,24 ----
+ // PR c++/96496
+ // { dg-do compile { target c++11 } }
+ // { dg-options "-Wconversion" }
+ // Conversion to an enum with a fixed underlying type is well-defined
+ // ([expr.static.cast]/8, CWG 2338), so -Wconversion should not warn.
+ 
+ enum Flag : bool { kNo, kYes };
+ enum C2 : unsigned char { C0 };
+ enum SC : signed char { SC0 };
+ enum class SI : short { SI0 };
+ 
+ int f1 () { return (Flag) 6; }		 // { dg-bogus "outside the range" }
+ int f2 () { return (C2) -1; }		 // { dg-bogus "outside the range" }
+ int f3 () { return (C2) 257; }		 // { dg-bogus "outside the range" }
+ int f4 () { return (SC) 128; }		 // { dg-bogus "outside the range" }
+ int f5 () { return (int) (SI) 65537; }	 // { dg-bogus "outside the range" }
+ int f6 (double d) { return (Flag) d; }	 // { dg-bogus "conversion" }
+ int f7 () { return (Flag) 2.5; }	 // { dg-bogus "conversion" }
+ 
+ // The conversion gives the same value as converting to the underlying type.
+ static_assert (static_cast<C2> (257) == static_cast<unsigned char> (257), "");
+ static_assert (static_cast<SC> (128) == static_cast<signed char> (128), "");
+ static_assert (static_cast<SI> (65537)
+ 	       == static_cast<SI> (static_cast<short> (65537)), "");
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.dg/warn/Wint-in-bool-context-bool-enum.C gcc-17-20260719/gcc/testsuite/g++.dg/warn/Wint-in-bool-context-bool-enum.C
*** gcc-17-20260712/gcc/testsuite/g++.dg/warn/Wint-in-bool-context-bool-enum.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.dg/warn/Wint-in-bool-context-bool-enum.C	Sun Jul 19 22:32:12 2026
***************
*** 0 ****
--- 1,13 ----
+ // PR c++/96496
+ // { dg-do compile { target c++11 } }
+ // { dg-options "-Wint-in-bool-context" }
+ // For static_cast<Flag>(expr), -Wint-in-bool-context applies similarly
+ // to static_cast<bool>(expr).
+ 
+ enum Flag : bool { kNo, kYes };
+ 
+ Flag f1 (int x) { return static_cast<Flag> (x << 1); } // { dg-warning "in boolean context" }
+ Flag f2 (int x, int y) { return static_cast<Flag> (x * y); } // { dg-warning "in boolean context" }
+ Flag f3 (bool c) { return static_cast<Flag> (c ? 2 : 3); } // { dg-warning "in boolean context" }
+ Flag f4 (int x) { return static_cast<Flag> (x); } // { dg-bogus "in boolean context" }
+ Flag f5 (int x) { return static_cast<Flag> (x != 0); } // { dg-bogus "in boolean context" }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.target/aarch64/pr124146.C gcc-17-20260719/gcc/testsuite/g++.target/aarch64/pr124146.C
*** gcc-17-20260712/gcc/testsuite/g++.target/aarch64/pr124146.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.target/aarch64/pr124146.C	Sun Jul 19 22:32:12 2026
***************
*** 0 ****
--- 1,25 ----
+ /* PR target/124146 */
+ /* { dg-do compile } */
+ /* { dg-options "-O1" } */
+ 
+ /* Verify that the C++ version of the original reproducer does not ICE.  */
+ 
+ long a;
+ void *b;
+ char c;
+ 
+ long
+ foo (void *)
+ {
+   typedef __attribute__((__aligned__))
+     __attribute__((__may_alias__)) unsigned long T;
+   a = *(T *) b;
+   return a;
+ }
+ 
+ void
+ bar (unsigned long)
+ {
+   long d = foo (&c);
+   bar (d);
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.target/i386/pr126202-1.C gcc-17-20260719/gcc/testsuite/g++.target/i386/pr126202-1.C
*** gcc-17-20260712/gcc/testsuite/g++.target/i386/pr126202-1.C	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/g++.target/i386/pr126202-1.C	Sun Jul 19 22:32:12 2026
***************
*** 0 ****
--- 1,71 ----
+ /* { dg-do compile { target pie } } */
+ /* { dg-options "-O3 -std=gnu++20 -march=znver5 -fPIE" } */
+ 
+ typedef int fixed16_16;
+ struct vec2_fixed
+ {
+   fixed16_16 x, z;
+ } s_polygonUv[32];
+ struct vec3_fixed
+ {
+   fixed16_16 x, y, z;
+ };
+ template <typename> struct allocator_traits;
+ template <typename> class allocator;
+ template <typename _Tp> struct allocator_traits<allocator<_Tp>>
+ {
+   using value_type = _Tp;
+   using pointer = _Tp *;
+   template <typename _Up> using rebind_alloc = allocator<_Up>;
+ };
+ template <typename _Alloc> struct __alloc_traits : allocator_traits<_Alloc>
+ {
+   typedef allocator_traits<_Alloc> _Base_type;
+   typedef _Base_type::value_type reference;
+   template <typename _Tp> struct rebind
+   {
+     typedef typename _Base_type::rebind_alloc<_Tp> other;
+   };
+ };
+ template <typename _Tp, typename _Alloc> struct _Vector_base
+ {
+   typedef __alloc_traits<_Alloc>::template rebind<_Tp>::other _Tp_alloc_type;
+   struct
+   {
+     __alloc_traits<_Tp_alloc_type>::pointer _M_start;
+   } _M_impl;
+ };
+ template <typename _Tp, typename _Alloc = allocator<_Tp>>
+ struct vector : _Vector_base<_Tp, _Alloc>
+ {
+   __alloc_traits<typename _Vector_base<_Tp, _Alloc>::_Tp_alloc_type>::reference
+   operator[] (int __n)
+   {
+     return *(this->_M_impl._M_start + __n);
+   }
+ };
+ extern int vertexCount, s_polygonIntensity_0;
+ struct JmPolygon
+ {
+   int *indices;
+ };
+ extern vector<vec3_fixed> s_verticesVS;
+ extern vector<fixed16_16> s_vertexIntensity;
+ extern vec3_fixed s_polygonVerticesVS[2];
+ extern JmPolygon *robj3d_setupPolygon_polygon;
+ void
+ robj3d_setupPolygon ()
+ {
+   for (int v = 0; v < vertexCount; v++)
+     s_polygonVerticesVS[v]
+         = s_verticesVS[robj3d_setupPolygon_polygon->indices[v]];
+   vec2_fixed *uv = (vec2_fixed *)robj3d_setupPolygon_polygon;
+   vec2_fixed zero{};
+   for (int v = 0; v < vertexCount; v++)
+     s_polygonUv[v] = uv[v];
+   for (int v = 0; v < vertexCount; v++)
+     s_polygonUv[v] = zero;
+   for (int v;;)
+     s_polygonIntensity_0
+         = s_vertexIntensity[robj3d_setupPolygon_polygon->indices[v]];
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/g++.target/riscv/pr97682.C gcc-17-20260719/gcc/testsuite/g++.target/riscv/pr97682.C
*** gcc-17-20260712/gcc/testsuite/g++.target/riscv/pr97682.C	Sun Jul 12 22:32:13 2026
--- gcc-17-20260719/gcc/testsuite/g++.target/riscv/pr97682.C	Sun Jul 19 22:32:12 2026
*************** namespace llvm
*** 156,160 ****
    void bm::bl() { bk->bl(); }
  }
  
! /* The t1 register is to initial symbol reference for call instruction.  */
! /* { dg-final { scan-assembler "la\tt1,.*FrequencyData.*_M_default_append.*" } } */
--- 156,160 ----
    void bm::bl() { bk->bl(); }
  }
  
! /* A register in SIBCALL_REGS is used for the call address.  */
! /* { dg-final { scan-assembler {la\t(t[2-6]|a[0-7]),.*FrequencyData.*_M_default_append.*} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.c-torture/execute/pr121957.c gcc-17-20260719/gcc/testsuite/gcc.c-torture/execute/pr121957.c
*** gcc-17-20260712/gcc/testsuite/gcc.c-torture/execute/pr121957.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.c-torture/execute/pr121957.c	Sun Jul 19 22:32:12 2026
***************
*** 0 ****
--- 1,27 ----
+ /* AArch64 wrong code at -O2/-O3.  An oversized vector
+    (V16DI, 128 bytes, with no register mode) is expanded into two distinct
+    stack slots that share the same MEM_EXPR.  The load/store pair-fusion pass
+    then discovers "adjacent" store pairs across the two slots via the shared
+    MEM_EXPR and fuses them, redirecting a store to the wrong slot and leaving
+    part of a slot uninitialised.  Self-checking: aborts if the result is
+    wrong.  */
+ 
+ typedef long __attribute__((vector_size (16 * sizeof (long)))) v16di;
+ 
+ int
+ main (void)
+ {
+   v16di v = {};
+   asm goto ("" : : : : L1);
+ L2:
+   asm goto ("" : : : : L1);
+ L0:
+   asm goto ("" : : : : L2);
+   v = (v16di){ -1 };
+   asm goto ("" : : : : L0);
+ L1:
+   asm goto ("" : : : : L0);
+   if (v[3])
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.c-torture/execute/pr123625-2.c gcc-17-20260719/gcc/testsuite/gcc.c-torture/execute/pr123625-2.c
*** gcc-17-20260712/gcc/testsuite/gcc.c-torture/execute/pr123625-2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.c-torture/execute/pr123625-2.c	Sun Jul 19 22:32:12 2026
***************
*** 0 ****
--- 1,34 ----
+ /* With -ftree-coalesce-vars, one variable can have SSA names coalesced into
+    partitions of other variables: the PHIs below put the two names of b into
+    the partitions of a and of c.  All three variables are oversized vectors
+    with no register mode, so both partitions are spilled and b legitimately
+    lives in two distinct stack slots (its DECL_RTL becomes the "multiple
+    places" marker).  Out-of-SSA must keep the two slots distinguishable
+    without rejecting this state.  */
+ 
+ typedef long __attribute__((vector_size (16 * sizeof (long)))) v16di;
+ 
+ v16di g0 = { 1 }, g1 = { 5 }, g2 = { 3 }, g3 = { 7 };
+ volatile int p, q;
+ 
+ int
+ main (void)
+ {
+   v16di b = g0;
+   v16di a;
+   if (p)
+     a = b;
+   else
+     a = g1;
+   g1 = a;
+   b = g2;
+   v16di c;
+   if (q)
+     c = b;
+   else
+     c = g3;
+   g3 = c;
+   if (g1[0] != 5 || g1[1] != 0 || g3[0] != 7 || g3[1] != 0)
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.c-torture/execute/pr123625-3.c gcc-17-20260719/gcc/testsuite/gcc.c-torture/execute/pr123625-3.c
*** gcc-17-20260712/gcc/testsuite/gcc.c-torture/execute/pr123625-3.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.c-torture/execute/pr123625-3.c	Sun Jul 19 22:32:12 2026
***************
*** 0 ****
--- 1,32 ----
+ /* Same state as pr123625-2.c (one variable coalesced into two other
+    variables' spilled partitions) reached through asm goto control flow.  */
+ 
+ typedef long __attribute__((vector_size (16 * sizeof (long)))) v16di;
+ 
+ v16di g0, g1, g2, g3;
+ 
+ int
+ main (void)
+ {
+   v16di b = g0;
+   v16di a;
+   asm goto ("" : : : : L0);
+   a = b;
+   goto L1;
+ L0:
+   a = g1;
+ L1:
+   g1 = a;
+   b = g2;
+   v16di c;
+   asm goto ("" : : : : L2);
+   c = b;
+   goto L3;
+ L2:
+   c = g3;
+ L3:
+   g3 = c;
+   if (g1[0] | g1[1] | g3[0] | g3[1])
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.c-torture/execute/pr123625.c gcc-17-20260719/gcc/testsuite/gcc.c-torture/execute/pr123625.c
*** gcc-17-20260712/gcc/testsuite/gcc.c-torture/execute/pr123625.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.c-torture/execute/pr123625.c	Sun Jul 19 22:32:12 2026
***************
*** 0 ****
--- 1,48 ----
+ /* AArch64 wrong code at -O3.  An oversized vector
+    (V16DI, 128 bytes, no register mode) is expanded into two distinct
+    stack slots that shared the same MEM_EXPR.  The load/store pair fusion
+    pass then fused stores belonging to different slots, leaving part of a
+    slot uninitialized.  Self-checking: the checksum is target-independent.  */
+ 
+ #include <stdint.h>
+ 
+ #define BS_VEC(type, num) type __attribute__((vector_size(num * sizeof(type))))
+ uint64_t BS_CHECKSUM, g_284;
+ struct U0
+ {
+   int16_t f0;
+   int64_t f2;
+ } g_205;
+ int16_t g_8, func_2_BS_COND_1;
+ uint8_t g_9[2][1];
+ volatile struct U0 g_121[1];
+ int64_t *g_565 = &g_284;
+ 
+ int
+ main (void)
+ {
+   BS_VEC (int64_t, 16) BS_VAR_3 = { 1, 8096386231136, 9039249955151 };
+   uint64_t LOCAL_CHECKSUM = 0;
+   switch (func_2_BS_COND_1)
+     {
+     case 2: goto BS_LABEL_0;
+     case 4: goto BS_LABEL_0;
+     }
+   for (g_8 = 0; g_8 <= 0; g_8 += 1)
+     for (g_205.f2 = 0; g_205.f2 <= 1; g_205.f2 += 1)
+       {
+ 	if (g_9[g_205.f2][0])
+ 	BS_LABEL_0:
+ 	  for (;;)
+ 	    ;
+ 	for (uint32_t BS_TEMP_371 = 0; BS_TEMP_371 < 16; BS_TEMP_371++)
+ 	  LOCAL_CHECKSUM ^= BS_VAR_3[BS_TEMP_371] + 9
+ 	    + (LOCAL_CHECKSUM << 6) + LOCAL_CHECKSUM
+ 	    >> (*g_565 |= g_121[0].f0);
+ 	BS_VAR_3 = (BS_VEC (int64_t, 16)){};
+       }
+   BS_CHECKSUM = LOCAL_CHECKSUM;
+   if (BS_CHECKSUM != 0x7237237237237237ULL)
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/asan/bitint-1.c gcc-17-20260719/gcc/testsuite/gcc.dg/asan/bitint-1.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/asan/bitint-1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/asan/bitint-1.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,26 ----
+ /* PR middle-end/126084 */
+ /* { dg-do run { target bitint575 } } */
+ /* { dg-shouldfail "asan" } */
+ /* { dg-skip-if "" { *-*-* }  { "*" } { "-O2" } } */
+ 
+ _BitInt(135)
+ foo ()
+ {
+   _BitInt(135) *p, *q;
+   {
+     _BitInt(135) a, b;
+     p = &a;
+     q = &b;
+   }
+   return *p + *q;
+ }
+ 
+ int
+ main ()
+ {
+   volatile _BitInt(135) x = foo ();
+ }
+ 
+ /* { dg-output "ERROR: AddressSanitizer: stack-use-after-scope on address.*(\n|\r\n|\r)" } */
+ /* { dg-output "READ of size .*" } */
+ /* { dg-output ".*'a' \\(line 11\\) <== Memory access at offset \[0-9\]* is inside this variable.*" } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/asan/bitint-2.c gcc-17-20260719/gcc/testsuite/gcc.dg/asan/bitint-2.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/asan/bitint-2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/asan/bitint-2.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,27 ----
+ /* PR middle-end/126084 */
+ /* { dg-do run { target bitint575 } } */
+ /* { dg-shouldfail "asan" } */
+ /* { dg-skip-if "" { *-*-* }  { "*" } { "-O2" } } */
+ 
+ void
+ foo ()
+ {
+   _BitInt(135) *p, *q;
+   {
+     _BitInt(135) a, b;
+     p = &a;
+     q = &b;
+   }
+   *p = 1;
+   *q = 2;
+ }
+ 
+ int
+ main ()
+ {
+   foo ();
+ }
+ 
+ /* { dg-output "ERROR: AddressSanitizer: stack-use-after-scope on address.*(\n|\r\n|\r)" } */
+ /* { dg-output "WRITE of size .*" } */
+ /* { dg-output ".*'a' \\(line 11\\) <== Memory access at offset \[0-9\]* is inside this variable.*" } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/asm-hard-reg-4.c gcc-17-20260719/gcc/testsuite/gcc.dg/asm-hard-reg-4.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/asm-hard-reg-4.c	Sun Jul 12 22:32:13 2026
--- gcc-17-20260719/gcc/testsuite/gcc.dg/asm-hard-reg-4.c	Sun Jul 19 22:32:13 2026
***************
*** 13,19 ****
  /* { dg-final { scan-assembler-times "foo\t5" 4 { target { powerpc*-*-* } } } } */
  #elif defined (__riscv)
  # define FPR "{fa5}"
! /* { dg-final { scan-assembler-times "foo\tfa5" 4 { target { rsicv*-*-* } } } } */
  #elif defined (__s390__)
  # define FPR "{f5}"
  /* { dg-final { scan-assembler-times "foo\t%f5" 4 { target { s390*-*-* } } } } */
--- 13,19 ----
  /* { dg-final { scan-assembler-times "foo\t5" 4 { target { powerpc*-*-* } } } } */
  #elif defined (__riscv)
  # define FPR "{fa5}"
! /* { dg-final { scan-assembler-times "foo\tfa5" 4 { target { riscv*-*-* } } } } */
  #elif defined (__s390__)
  # define FPR "{f5}"
  /* { dg-final { scan-assembler-times "foo\t%f5" 4 { target { s390*-*-* } } } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/gcov-atomic-or-zero.c gcc-17-20260719/gcc/testsuite/gcc.dg/gcov-atomic-or-zero.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/gcov-atomic-or-zero.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/gcov-atomic-or-zero.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,27 ----
+ /* Test case to check that no atomic bitwise-or operations with a zero operand
+    are emitted by instrument_decisions().  */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fprofile-update=atomic -fcondition-coverage -fdump-tree-optimized" } */
+ /* { dg-require-effective-target profile_update_atomic } */
+ 
+ int a (void);
+ int b (void);
+ int c (int);
+ 
+ int
+ f (int *p)
+ {
+   /* Force a condition chain so tree-profile's decision instrumentation kicks in.  */
+   if (c (p[0]) || c (p[1]) || c (p[2]) || c (p[3]))
+     return a ();
+   else
+     return b ();
+ }
+ 
+ /* We expect __atomic_fetch_or_() calls for condition counters.  */
+ /* { dg-final { scan-tree-dump "__atomic_fetch_or_" "optimized" } } */
+ 
+ /* After the optimization, no atomic bitwise-or operations with a zero
+    operand should be present.  Match ", 0, 0)" in the __atomic_fetch_or_() call
+    argument list.  */
+ /* { dg-final { scan-tree-dump-not "__atomic_fetch_or_. \\(\[^\n\r]*, 0, 0\\)" "optimized" } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/lto/README gcc-17-20260719/gcc/testsuite/gcc.dg/lto/README
*** gcc-17-20260712/gcc/testsuite/gcc.dg/lto/README	Sun Jul 12 22:32:13 2026
--- gcc-17-20260719/gcc/testsuite/gcc.dg/lto/README	Sun Jul 19 22:32:13 2026
*************** The LTO harness recognizes the following
*** 8,13 ****
--- 8,15 ----
   *  dg-lto-options - the equivalent of dg-options with additional syntax
        to support different sets of options for different files compiled
        as part of the same test case,
+  *  dg-lto-additional-options - the equivalent of dg-additional-options;
+       adds to the default options instead of overwriting them
   *  dg-lto-warning - the equivalent of dg-warning for diagnostics expected
        to be emitted at LTO link time,
   *  dg-lto-message - the equivakent of dg-message for informational notes
*************** where there is a single file named 'foo_
*** 42,53 ****
  
  === The dg-lto-do Directive ==
  
! The only supported dg-lto-do options are 'assemble', 'run' and 'link'.
! Additionally, these can only be used in the main file.  If
! 'assemble' is used, only the individual object files are
! generated.  If 'link' is used, the final executable is generated
! but not executed (in this case, function main() needs to exist
! but it does not need to do anything).  If 'run' is used, the
! final executable is generated and the resulting binary executed.
  
  The default value for dg-lto-do is 'run'.
--- 44,58 ----
  
  === The dg-lto-do Directive ==
  
! The supported dg-lto-do options are 'assemble', 'run', 'link', 'ar-link',
! and 'incr-link'.  This option can only be used in the main file.  If
! 'assemble' is used, only the individual object files are generated.  If
! 'link' is used, the final executable is generated but not executed (in
! this case, function main() needs to exist but it does not need to do
! anything).  If 'run' is used, the final executable is generated and the
! resulting binary executed.  'ar-link' and 'incr-link' are similar to
! 'link', except that the non-main object files are combined together before
! the final link, into either an archive, in the former case, or an object
! file via incremental linking, in the latter.
  
  The default value for dg-lto-do is 'run'.
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/lto/pr106823_0.c gcc-17-20260719/gcc/testsuite/gcc.dg/lto/pr106823_0.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/lto/pr106823_0.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/lto/pr106823_0.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,17 ----
+ /* PR middle-end/106823 */
+ /* { dg-lto-do link } */
+ __attribute__((__warning__("w"))) void f (int) {}
+ void g (int i)
+ {
+   /* It would be nice to also confirm that the warning is issued in the
+      absence of the pragma, but the LTO testsuite is not currently set up to
+      test for warnings emitted during the compile stage.  But pr80922
+      testcases do test this functionality.  */
+   #pragma GCC diagnostic ignored "-Wattribute-warning"
+   f (i);
+ }
+ 
+ int main ()
+ {
+   g (1);
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/lto/pr107936_0.c gcc-17-20260719/gcc/testsuite/gcc.dg/lto/pr107936_0.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/lto/pr107936_0.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/lto/pr107936_0.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,16 ----
+ /* PR lto/107936 */
+ /* { dg-lto-do link } */
+ /* { dg-lto-additional-options "-Wstringop-overflow" } */
+ void foo (char x[2]);
+ 
+ int
+ main ()
+ {
+   char x[2];
+   /* It would be nice to also confirm that the warning is issued in the
+      absence of the pragma, but the LTO testsuite is not currently set up to
+      test for warnings emitted during the compile stage.  But pr80922
+      testcases do test this functionality.  */
+   #pragma GCC diagnostic ignored "-Wstringop-overflow"
+   foo (x + 1);
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/lto/pr107936_1.c gcc-17-20260719/gcc/testsuite/gcc.dg/lto/pr107936_1.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/lto/pr107936_1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/lto/pr107936_1.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,5 ----
+ void
+ foo (char x[2])
+ {
+   asm volatile ("" : : "r" (&x[0]) : "memory");
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/lto/pr125257_0.c gcc-17-20260719/gcc/testsuite/gcc.dg/lto/pr125257_0.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/lto/pr125257_0.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/lto/pr125257_0.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,6 ----
+ /* PR lto/125257 */
+ /* { dg-lto-do link } */
+ /* { dg-lto-options { "-O0 -flto --param=lto-min-partition=0 --param=lto-max-partition=0" } } */
+ 
+ int main() {}
+ __attribute__((used)) void foo() {}
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/lto/pr80922-1_0.c gcc-17-20260719/gcc/testsuite/gcc.dg/lto/pr80922-1_0.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/lto/pr80922-1_0.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/lto/pr80922-1_0.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,29 ----
+ /* PR middle-end/80922 */
+ 
+ /* { dg-lto-do link } */
+ /* { dg-lto-additional-options "-O2 -Wfree-nonheap-object" } */
+ 
+ void myfree (void *ptr1, void *ptr2, void *ptr3, void *ptr4)
+ {
+   __builtin_free (ptr1); /* { dg-lto-warning "-Wfree-nonheap-object" } */
+   #pragma GCC diagnostic push
+   #pragma GCC diagnostic ignored "-Wfree-nonheap-object"
+   __builtin_free (ptr2);
+   #pragma GCC diagnostic pop
+   __builtin_free (ptr3); /* { dg-lto-warning "-Wfree-nonheap-object" } */
+   _Pragma("GCC diagnostic push");
+   _Pragma("GCC diagnostic ignored \"-Wfree-nonheap-object\"");
+   #pragma GCC diagnostic push
+   __builtin_free (ptr4);
+ }
+ 
+ /* Since these two functions are in the same translation unit, the
+    diagnostic pragmas applied above are still in force.  */
+ void myfree2 (void *ptr1, void *ptr2, void *ptr3)
+ {
+   __builtin_free (ptr1);
+   #pragma GCC diagnostic pop
+   __builtin_free (ptr2);
+   _Pragma("GCC diagnostic pop");
+   __builtin_free (ptr3); /* { dg-lto-warning "-Wfree-nonheap-object" } */
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/lto/pr80922-1_1.c gcc-17-20260719/gcc/testsuite/gcc.dg/lto/pr80922-1_1.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/lto/pr80922-1_1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/lto/pr80922-1_1.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,9 ----
+ void myfree (void *, void *, void *, void *);
+ void myfree2 (void *, void *, void *);
+ 
+ static char a, b, c, d;
+ int main ()
+ {
+   myfree (&a, &b, &c, &d);
+   myfree2 (&a, &b, &c);
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/lto/pr80922-2_0.c gcc-17-20260719/gcc/testsuite/gcc.dg/lto/pr80922-2_0.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/lto/pr80922-2_0.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/lto/pr80922-2_0.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,18 ----
+ /* PR middle-end/80922 */
+ /* This is similar to pr80922-1, but myfree() and myfree2() are split into
+    separate objects, so that they use two different line maps.  */
+ 
+ /* { dg-lto-do incr-link } */
+ /* { dg-lto-additional-options "-O2 -Wfree-nonheap-object" } */
+ 
+ void myfree (void *ptr1, void *ptr2, void *ptr3, void *ptr4)
+ {
+   __builtin_free (ptr1); /* { dg-lto-warning "-Wfree-nonheap-object" } */
+   #pragma GCC diagnostic push
+   #pragma GCC diagnostic ignored "-Wfree-nonheap-object"
+   __builtin_free (ptr2);
+   #pragma GCC diagnostic pop
+   __builtin_free (ptr3); /* { dg-lto-warning "-Wfree-nonheap-object" } */
+   _Pragma("GCC diagnostic ignored \"-Wfree-nonheap-object\"");
+   __builtin_free (ptr4);
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/lto/pr80922-2_1.c gcc-17-20260719/gcc/testsuite/gcc.dg/lto/pr80922-2_1.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/lto/pr80922-2_1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/lto/pr80922-2_1.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,11 ----
+ /* The diagnostic pragmas left active in pr80922-2_0.c should not be in
+    force anymore.  */
+ void myfree2 (void *ptr1, void *ptr2, void *ptr3)
+ {
+   __builtin_free (ptr1); /* { dg-lto-warning "-Wfree-nonheap-object" } */
+   _Pragma("GCC diagnostic push")
+   #pragma GCC diagnostic ignored "-Wfree-nonheap-object"
+   __builtin_free (ptr2);
+   _Pragma("GCC diagnostic pop");
+   __builtin_free (ptr3); /* { dg-lto-warning "-Wfree-nonheap-object" } */
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/lto/pr80922-2_2.c gcc-17-20260719/gcc/testsuite/gcc.dg/lto/pr80922-2_2.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/lto/pr80922-2_2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/lto/pr80922-2_2.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1 ----
+ #include "pr80922-1_1.c"
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/pr102202-fold.c gcc-17-20260719/gcc/testsuite/gcc.dg/pr102202-fold.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/pr102202-fold.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/pr102202-fold.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,35 ----
+ /* PR tree-optimization/102202 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-optimized" } */
+ 
+ /* A constant-length-one memset is folded to a single byte store, even for a
+    store through an arbitrary pointer.  */
+ 
+ void *
+ g1 (char *d, int c)
+ {
+   return __builtin_memset (d, c, 1);
+ }
+ 
+ void
+ g2 (char *d, int c)
+ {
+   __builtin_memset (d, c, 1);
+ }
+ 
+ void *
+ g3 (int *p, int c)
+ {
+   return __builtin_memset (p, c, 1);
+ }
+ 
+ void *
+ g4 (char *d)
+ {
+   return __builtin_memset (d, 7, 1);
+ }
+ 
+ /* { dg-final { scan-tree-dump-not "__builtin_memset" "optimized" } } */
+ /* { dg-final { scan-tree-dump-times {\(unsigned char\) c_[0-9]+\(D\)} 3 "optimized" } } */
+ /* { dg-final { scan-tree-dump-times {MEM[^;\n\r]*= _[0-9]+;} 3 "optimized" } } */
+ /* { dg-final { scan-tree-dump-times {MEM[^;\n\r]*= 7;} 1 "optimized" } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/pr123625-1.c gcc-17-20260719/gcc/testsuite/gcc.dg/pr123625-1.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/pr123625-1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/pr123625-1.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fgimple -ffloat-store -ftree-coalesce-vars -fdump-rtl-expand" } */
+ 
+ double in1, in2, out1, out2;
+ 
+ void __GIMPLE (ssa, startwith ("expand"))
+ f (void)
+ {
+   double v;
+ 
+ __BB(2):
+   v_1 = in1;
+   v_2 = in2;
+   out1 = v_1;
+   out2 = v_2;
+   return;
+ }
+ 
+ /* The scalar floating-point SSA names overlap, and -ffloat-store assigns
+    both partitions to memory.  */
+ /* { dg-final { scan-rtl-dump {\[[0-9]+ v\+0} "expand" } } */
+ /* { dg-final { scan-rtl-dump {\[[0-9]+ D\.[0-9]+\+0} "expand" } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/pr126110.c gcc-17-20260719/gcc/testsuite/gcc.dg/pr126110.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/pr126110.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/pr126110.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,38 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-evrp" } */
+ 
+ struct rtx {
+   int code;
+ };
+ 
+ static inline void *zero ()
+ {
+   return 0;
+ }
+ static inline int three ()
+ {
+   return 3;
+ }
+ 
+ int
+ can_combine_p (struct rtx *insn, struct rtx *elt)
+ {
+   struct rtx *set;
+ 
+   set = zero ();
+   if (insn->code == three ())
+     set = insn;
+   else
+     {
+       set = elt;
+       if (set == zero ())
+         return 0;
+     }
+ 
+   return (set == zero ());
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump "Global Exported: set_.*1," "evrp" } } */
+ 
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/pr126171-1.c gcc-17-20260719/gcc/testsuite/gcc.dg/pr126171-1.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/pr126171-1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/pr126171-1.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,107 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target int32plus } */
+ /* { dg-options "-O2 -fgimple" } */
+ 
+ static int o;
+ 
+ __attribute__((noipa))
+ int
+ n ()
+ {
+   return 129105662;
+ }
+ 
+ 
+ int __GIMPLE (ssa,startwith("vrp1"),guessed_local(1073741824))
+ main ()
+ {
+   int am;
+   int ak;
+   int ay;
+   int D_3044;
+   int tem[1];
+   int _10;
+   int _11;
+   int _12;
+   int _21;
+   int _23;
+   int _24;
+   int _25;
+   int _26;
+   int _27;
+   int _29;
+ 
+   __BB(2,guessed_local(1073741824)):
+   tem[0ul] = _Literal (int) -1;
+   o = 2147483645;
+   goto __BB6(precise(134217728));
+ 
+   __BB(10,guessed_local(17434151171)):
+   goto __BB3(precise(134217728));
+ 
+   __BB(3,loop_header(2),guessed_local(19522579055)):
+   ak_20 = __PHI (__BB10: ak_22, __BB6: ak_30);
+   am_7 = __PHI (__BB10: am_9, __BB6: am_31);
+   ay_16 = __PHI (__BB10: ay_17, __BB6: ay_32);
+ be:
+   am_9 = am_7 + 1;
+   _10 = n ();
+   _11 = _10 + _Literal (int) -129105632;
+   _12 = am_9 << _11;
+   if (_12 == 0)
+     goto __BB4(guessed(126835753));
+   else
+     goto __BB5(guessed(7381975));
+ 
+   __BB(4,guessed_local(18448837212)):
+   ay_17 = ay_16 - _Literal (int) -2147483648;
+   _21 = ak_20 + _Literal (int) -1;
+   ak_22 = _21 + 2147483647;
+   if (ak_22 != 0)
+     goto __BB10(guessed(126835753));
+   else
+     goto __BB9(guessed(7381975));
+ 
+   __BB(5,guessed_local(1073741842)):
+   _23 = o;
+   _24 = _Literal (int) -2 - _23;
+   o = _24;
+   _25 = ak_20 + _Literal (int) -1;
+   __MEM <int> ((int *)&tem) = _25;
+   _26 = ay_16 >> 31;
+   _27 = ak_20 + _26;
+   if (_27 != 2147483645)
+     goto __BB7(guessed(67108864));
+   else
+     goto __BB8(guessed(67108864));
+ 
+   __BB(9,guessed_local(1014686041)):
+   goto __BB6(precise(134217728));
+ 
+   __BB(6,loop_header(1),guessed_local(2088427865)):
+   ak_30 = __PHI (__BB2: _Literal (int) -1, __BB9: 0);
+   am_31 = __PHI (__BB2: _Literal (int) -1, __BB9: am_9);
+   ay_32 = __PHI (__BB2: _Literal (int) -1782460880, __BB9: 3);
+ az:
+   goto __BB3(precise(134217728));
+ 
+   __BB(7,guessed_local(536870921)):
+   goto __BB8(precise(134217728));
+ 
+   __BB(8,guessed_local(1073741842)):
+   _29 = __PHI (__BB5: 0, __BB7: 1);
+   if (_29 != 0)
+     goto __BB11;
+   else
+     goto __BB12;
+ 
+   __BB(11):
+     __builtin_abort ();
+ 
+   __BB(12):
+   return _29;
+ 
+ }
+ 
+ 
+ 
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/pr126212.c gcc-17-20260719/gcc/testsuite/gcc.dg/pr126212.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/pr126212.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/pr126212.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,25 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-evrp" } */
+ 
+ extern void keep (void);
+ extern void kill (void);
+ void
+ f (void *p, void *q, int flag, int x)
+ {
+   int eq = p == q;
+   int nz = flag != 0;
+   int both = eq & nz;
+ 
+   if (both)
+     return;
+ 
+   if (!nz)
+     return;
+ 
+   if (p == q)
+     kill ();
+   else
+     keep ();
+ }
+ 
+ /* { dg-final { scan-tree-dump-not "kill" "evrp" } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/torture/bitint-100.c gcc-17-20260719/gcc/testsuite/gcc.dg/torture/bitint-100.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/torture/bitint-100.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/torture/bitint-100.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,197 ----
+ /* PR target/124948 */
+ /* { dg-do run { target bitint } } */
+ /* { dg-options "-std=c23 -pedantic-errors" } */
+ /* { dg-skip-if "" { ! run_expensive_tests }  { "*" } { "-O0" "-O2" } } */
+ /* { dg-skip-if "" { ! run_expensive_tests } { "-flto" } { "" } } */
+ 
+ _BitInt(17) a;
+ unsigned _BitInt(17) b;
+ 
+ #include "../bitintext.h"
+ 
+ [[gnu::noipa]] _BitInt(17)
+ f1 (_BitInt(17) *p, _BitInt(32) q)
+ {
+   return __atomic_add_fetch (p, q, __ATOMIC_RELAXED);
+ }
+ 
+ [[gnu::noipa]] _BitInt(17)
+ f2 (_BitInt(17) *p, _BitInt(32) q)
+ {
+   return __atomic_sub_fetch (p, q, __ATOMIC_RELAXED);
+ }
+ 
+ [[gnu::noipa]] _BitInt(17)
+ f3 (_BitInt(17) *p, _BitInt(32) q)
+ {
+   return __atomic_fetch_add (p, q, __ATOMIC_RELAXED);
+ }
+ 
+ [[gnu::noipa]] _BitInt(17)
+ f4 (_BitInt(17) *p, _BitInt(32) q)
+ {
+   return __atomic_fetch_sub (p, q, __ATOMIC_RELAXED);
+ }
+ 
+ [[gnu::noipa]] _BitInt(17)
+ f5 (_BitInt(17) *p, _BitInt(32) q)
+ {
+   return __sync_add_and_fetch (p, q);
+ }
+ 
+ [[gnu::noipa]] _BitInt(17)
+ f6 (_BitInt(17) *p, _BitInt(32) q)
+ {
+   return __sync_sub_and_fetch (p, q);
+ }
+ 
+ [[gnu::noipa]] _BitInt(17)
+ f7 (_BitInt(17) *p, _BitInt(32) q)
+ {
+   return __sync_fetch_and_add (p, q);
+ }
+ 
+ [[gnu::noipa]] _BitInt(17)
+ f8 (_BitInt(17) *p, _BitInt(32) q)
+ {
+   return __sync_fetch_and_sub (p, q);
+ }
+ 
+ [[gnu::noipa]] unsigned _BitInt(17)
+ f9 (unsigned _BitInt(17) *p, unsigned _BitInt(32) q)
+ {
+   return __atomic_add_fetch (p, q, __ATOMIC_RELAXED);
+ }
+ 
+ [[gnu::noipa]] unsigned _BitInt(17)
+ f10 (unsigned _BitInt(17) *p, unsigned _BitInt(32) q)
+ {
+   return __atomic_sub_fetch (p, q, __ATOMIC_RELAXED);
+ }
+ 
+ [[gnu::noipa]] unsigned _BitInt(17)
+ f11 (unsigned _BitInt(17) *p, unsigned _BitInt(32) q)
+ {
+   return __atomic_fetch_add (p, q, __ATOMIC_RELAXED);
+ }
+ 
+ [[gnu::noipa]] unsigned _BitInt(17)
+ f12 (unsigned _BitInt(17) *p, unsigned _BitInt(32) q)
+ {
+   return __atomic_fetch_sub (p, q, __ATOMIC_RELAXED);
+ }
+ 
+ [[gnu::noipa]] unsigned _BitInt(17)
+ f13 (unsigned _BitInt(17) *p, unsigned _BitInt(32) q)
+ {
+   return __sync_add_and_fetch (p, q);
+ }
+ 
+ [[gnu::noipa]] unsigned _BitInt(17)
+ f14 (unsigned _BitInt(17) *p, unsigned _BitInt(32) q)
+ {
+   return __sync_sub_and_fetch (p, q);
+ }
+ 
+ [[gnu::noipa]] unsigned _BitInt(17)
+ f15 (unsigned _BitInt(17) *p, unsigned _BitInt(32) q)
+ {
+   return __sync_fetch_and_add (p, q);
+ }
+ 
+ [[gnu::noipa]] unsigned _BitInt(17)
+ f16 (unsigned _BitInt(17) *p, unsigned _BitInt(32) q)
+ {
+   return __sync_fetch_and_sub (p, q);
+ }
+ 
+ int
+ main ()
+ {
+   _BitInt(17) c;
+   unsigned _BitInt(17) d;
+   a = 64295wb;
+   BEXTC (a);
+   c = f1 (&a, 187040987wb);
+   BEXTC (a);
+   BEXTC (c);
+   if (a != -65534wb || c != a)
+     __builtin_abort ();
+   c = f2 (&a, 394264674wb);
+   BEXTC (a);
+   BEXTC (c);
+   if (a != 65440wb || c != a)
+     __builtin_abort ();
+   c = f3 (&a, 840434595wb);
+   BEXTC (a);
+   BEXTC (c);
+   if (a != -64701wb || c != 65440wb)
+     __builtin_abort ();
+   c = f4 (&a, 591403122wb);
+   BEXTC (a);
+   BEXTC (c);
+   if (a != 60113wb || c != -64701wb)
+     __builtin_abort ();
+   c = f5 (&a, 1215571163wb);
+   BEXTC (a);
+   BEXTC (c);
+   if (a != -61524wb || c != a)
+     __builtin_abort ();
+   c = f6 (&a, 1913664021wb);
+   BEXTC (a);
+   BEXTC (c);
+   if (a != 56727wb || c != a)
+     __builtin_abort ();
+   c = f7 (&a, 858931586wb);
+   BEXTC (a);
+   BEXTC (c);
+   if (a != -57575wb || c != 56727wb)
+     __builtin_abort ();
+   c = f8 (&a, 286413601wb);
+   BEXTC (a);
+   BEXTC (c);
+   if (a != 52216wb || c != -57575wb)
+     __builtin_abort ();
+   b = 77593uwb;
+   BEXTC (b);
+   d = f9 (&b, 858861337uwb);
+   BEXTC (b);
+   BEXTC (d);
+   if (b != 24114uwb || d != b)
+     __builtin_abort ();
+   d = f10 (&b, 1431383831uwb);
+   BEXTC (b);
+   BEXTC (d);
+   if (b != 77595uwb || d != b)
+     __builtin_abort ();
+   d = f11 (&b, 305231735uwb);
+   BEXTC (b);
+   BEXTC (d);
+   if (b != 42642uwb || d != 77595uwb)
+     __builtin_abort ();
+   d = f12 (&b, 591497352uwb);
+   BEXTC (b);
+   BEXTC (d);
+   if (b != 73226uwb || d != 42642uwb)
+     __builtin_abort ();
+   d = f13 (&b, 1985058934uwb);
+   BEXTC (b);
+   BEXTC (d);
+   if (b != 46720uwb || d != b)
+     __builtin_abort ();
+   d = f14 (&b, 840018893uwb);
+   BEXTC (b);
+   BEXTC (d);
+   if (b != 68275uwb || d != b)
+     __builtin_abort ();
+   d = f15 (&b, 1698807006uwb);
+   BEXTC (b);
+   BEXTC (d);
+   if (b != 51089uwb || d != 68275uwb)
+     __builtin_abort ();
+   d = f16 (&b, 877788892uwb);
+   BEXTC (b);
+   BEXTC (d);
+   if (b != 51381uwb || d != 51089uwb)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/torture/bitint-101.c gcc-17-20260719/gcc/testsuite/gcc.dg/torture/bitint-101.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/torture/bitint-101.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/torture/bitint-101.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,26 ----
+ /* PR tree-optimization/126257 */
+ /* { dg-do run { target bitint } } */
+ 
+ _BitInt(2) a;
+ long long b, c, d;
+ 
+ int
+ main ()
+ {
+   int e;
+   _BitInt(2) f;
+   bool g;
+   long long h = b;
+ lab:
+   e = h;
+   if (e != 4)
+     f = -1;
+   f = f + f;
+   a = f;
+   g = d - 4;
+   if (!g)
+     goto lab;
+   c = a;
+   if (c != -2)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/torture/bitint-102.c gcc-17-20260719/gcc/testsuite/gcc.dg/torture/bitint-102.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/torture/bitint-102.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/torture/bitint-102.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,33 ----
+ /* PR tree-optimization/126262 */
+ /* { dg-do run { target bitint } } */
+ /* { dg-options "-std=gnu23" } */
+ 
+ #if __BITINT_MAXWIDTH__ >= 1024
+ typedef unsigned _BitInt (512) A;
+ typedef _BitInt (1024) B;
+ 
+ [[gnu::noipa]] int
+ foo (signed char x, A y)
+ {
+   B b = -(B) y;
+   A c;
+   if (__builtin_mul_overflow (1, b, &c))
+     c = 42;
+   B f;
+   if (__builtin_mul_overflow (x, 9, &f))
+     f = 42;
+   int i;
+   if (__builtin_mul_overflow (f, 1, &i))
+     i = 42;
+   return c + i;
+ }
+ #endif
+ 
+ int
+ main ()
+ {
+ #if __BITINT_MAXWIDTH__ >= 1024
+   if (foo (1, -2) != 51)
+     __builtin_abort ();
+ #endif
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/torture/pr126136.c gcc-17-20260719/gcc/testsuite/gcc.dg/torture/pr126136.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/torture/pr126136.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.dg/torture/pr126136.c	Sun Jul 19 22:32:13 2026
***************
*** 3,9 ****
  int i;
  
  __attribute__ ((noipa,noclone,noinline))
! char foo(char val)
  {
    i++;
    if (i > 1)
--- 3,9 ----
  int i;
  
  __attribute__ ((noipa,noclone,noinline))
! signed char foo(signed char val)
  {
    i++;
    if (i > 1)
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/torture/pr126171-2.c gcc-17-20260719/gcc/testsuite/gcc.dg/torture/pr126171-2.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/torture/pr126171-2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/torture/pr126171-2.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,52 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target int32plus } */
+ 
+ int ah, o, t, q, aq, as, at;
+ 
+ int __attribute__ ((noipa)) n () {
+   return 129105662;
+ }
+ 
+ int a (int ak, int al[1], int am, int bj) {
+   int ay = as = -1782460880;
+   at = -28702851;
+   o = 0 % al[0] + -1 + bj - 1;
+   goto az;
+ ba:
+   al[0] = ak - 1;
+   am = -1;
+   goto bb;
+ bc:
+   t = -(bj - 2147483646);
+   ay = ay - (-1 % bj - 2147483647);
+   goto bd;
+ be:
+   aq = -1704571560;
+   am = am + bj - 2147483646;
+   if (am << (n () - 129105632) == 0)
+     goto bc;
+   goto bf;
+ bd:
+   ak = (-1 ^ al[0]) - 1 + ak + 2147483647;
+   if (ak)
+     goto be;
+   goto bg;
+ bf:
+   bj = -1 - am - 1 + 2147483647;
+   o = -1 - o - 1;
+   goto ba;
+ bg:
+   ay = 3;
+ az:
+   goto be;
+ bb:
+   q = (ay >> 31) - -ak - 2147483646;
+   if (q != -1) return 1;
+   return 0;
+ }
+ 
+ int main () {
+   if (a (-1, (int[]) { -1 }, -1, 2147483647) != 0)
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/tree-ssa/pr113894.c gcc-17-20260719/gcc/testsuite/gcc.dg/tree-ssa/pr113894.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/tree-ssa/pr113894.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/tree-ssa/pr113894.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,63 ----
+ /* PR tree-optimization/113894 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-forwprop1" } */
+ 
+ int f_cmp_lt(int x, int y)
+ {
+   int cmp = x < y;
+   return (x ^ -cmp) + cmp;
+ }
+ 
+ int f_cmp_gt_commuted(int x, int y)
+ {
+   int cmp = x > y;
+   return cmp + (-cmp ^ x);
+ }
+ 
+ unsigned f_unsigned_cmp(unsigned x, unsigned y)
+ {
+   unsigned cmp = x < y;
+   return (x ^ -cmp) + cmp;
+ }
+ 
+ int f_mask(int x, unsigned y)
+ {
+   int cmp = y & 1;
+   return (x ^ -cmp) + cmp;
+ }
+ 
+ int f_bool(int x, _Bool cmp)
+ {
+   int icmp = cmp;
+   return (x ^ -icmp) + icmp;
+ }
+ 
+ int f_abs_int(int x)
+ {
+   int cmp = x < 0;
+   return (x ^ -cmp) + cmp;
+ }
+ 
+ long f_abs_long(long x)
+ {
+   long cmp = x < 0;
+   return (x ^ -cmp) + cmp;
+ }
+ 
+ int f_signed_not_zero_one(int x, int cmp)
+ {
+   return (x ^ -cmp) + cmp;
+ }
+ 
+ unsigned f_unsigned_not_zero_one(unsigned x, unsigned cmp)
+ {
+   return (x ^ -cmp) + cmp;
+ }
+ 
+ /* The branchless conditional negate spelling should only survive when cmp is
+    not known to be 0 or 1.  */
+ /* { dg-final { scan-tree-dump-times " \\^ " 2 "forwprop1" } } */
+ /* Sign tests should expose absolute value.  */
+ /* { dg-final { scan-tree-dump-times " = ABS_EXPR" 2 "forwprop1" } } */
+ /* Other zero-one predicates should expose conditional negation.  */
+ /* { dg-final { scan-tree-dump-times " \\? " 5 "forwprop1" } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/tree-ssa/pr126087.c gcc-17-20260719/gcc/testsuite/gcc.dg/tree-ssa/pr126087.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/tree-ssa/pr126087.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/tree-ssa/pr126087.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,36 ----
+ /* PR tree-optimization/126087 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-optimized" } */
+ 
+ void use();
+ 
+ void f2(int a, unsigned short bb) {
+     int b = bb;
+     int m = a < b ? a : b;
+     if (m >= 0)
+       use();
+ }
+ 
+ void f3(int a, unsigned short bb) {
+     int b = bb;
+     int m = a | b;
+     if (m >= 0)
+       use();
+ }
+ 
+ void f4(int a, unsigned short bb) {
+     int b = bb;
+     int m = a < b ? a : b;
+     if (m < 0)
+       use();
+ }
+ 
+ void f5(int a, unsigned short bb) {
+     int b = bb;
+     int m = a | b;
+     if (m < 0)
+       use();
+ }
+ 
+ /* { dg-final { scan-tree-dump-not "MIN_EXPR" "optimized" } } */
+ /* { dg-final { scan-tree-dump-not " \\| " "optimized" } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/tree-ssa/pr81549-2.c gcc-17-20260719/gcc/testsuite/gcc.dg/tree-ssa/pr81549-2.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/tree-ssa/pr81549-2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/tree-ssa/pr81549-2.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,46 ----
+ /* PR tree-optimization/81549 */
+ /* { dg-do run } */
+ /* { dg-options "-O2" } */
+ 
+ int a[4];
+ 
+ __attribute__((noipa)) int
+ f (int n)
+ {
+   int t0 = a[0];
+   int t1 = a[1];
+ 
+   for (int i = 0; i < n; ++i)
+     {
+       t0 = t1;
+       t1 = 2;
+     }
+ 
+   return t0;
+ }
+ 
+ __attribute__((noipa)) int
+ g (void)
+ {
+   int t0 = a[0];
+   int t1 = a[1];
+ 
+   for (int i = 0; i < 1; ++i)
+     {
+       t0 = t1;
+       t1 = 2;
+     }
+ 
+   return t0;
+ }
+ 
+ int
+ main (void)
+ {
+   a[0] = 11;
+   a[1] = 22;
+ 
+   if (f (0) != 11 || f (1) != 22 || f (2) != 2 || g () != 22)
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/tree-ssa/pr81549.c gcc-17-20260719/gcc/testsuite/gcc.dg/tree-ssa/pr81549.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/tree-ssa/pr81549.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/tree-ssa/pr81549.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,28 ----
+ /* PR tree-optimization/81549 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-sccp-details -fdump-tree-optimized" } */
+ 
+ int a[10000];
+ 
+ int
+ f (void)
+ {
+   int t0 = a[0];
+   int t1 = a[1];
+ 
+   for (int i = 0; i < 100; ++i)
+     {
+       a[i] = 1;
+       t0 = t1;
+       t1 = 2;
+     }
+ 
+   a[100] = t0;
+   a[101] = t1;
+   return t0 + t1;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "with expr: 2" 1 "sccp" } } */
+ /* { dg-final { scan-tree-dump {a\[100\] = 2;} "sccp" } } */
+ /* { dg-final { scan-tree-dump {a\[101\] = 2;} "sccp" } } */
+ /* { dg-final { scan-tree-dump "return 4;" "optimized" } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/tree-ssa/vrp102.c gcc-17-20260719/gcc/testsuite/gcc.dg/tree-ssa/vrp102.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/tree-ssa/vrp102.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.dg/tree-ssa/vrp102.c	Sun Jul 19 22:32:13 2026
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -fno-tree-dominator-opts -fdump-tree-vrp1" } */
  
  int f(int x, int y)
  { 
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -fno-tree-dominator-opts -fdump-tree-evrp" } */
  
  int f(int x, int y)
  { 
*************** int f(int x, int y)
*** 15,18 ****
  /* We should have computed x ^ y as zero and propagated the result into the
     PHI feeding the result.  */
  
! /* { dg-final { scan-tree-dump "ret_\[0-9\]+ = PHI <\[01\]\\\(\[0-9\]+\\\), \[01\]\\\(\[0-9\]+\\\)>" "vrp1" } } */
--- 15,18 ----
  /* We should have computed x ^ y as zero and propagated the result into the
     PHI feeding the result.  */
  
! /* { dg-final { scan-tree-dump "ret_\[0-9\]+ = PHI <\[01\]\\\(\[0-9\]+\\\), \[01\]\\\(\[0-9\]+\\\)>" "evrp" } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/vect/bb-slp-reduc-2.c gcc-17-20260719/gcc/testsuite/gcc.dg/vect/bb-slp-reduc-2.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/vect/bb-slp-reduc-2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/vect/bb-slp-reduc-2.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_int } */
+ 
+ int foo (int *a, int *b, int c)
+ {
+   return (c ^ 1) + ((a[0] | b[0]) + (a[1] | b[1]) + (a[2] | b[2]) + (a[3] | b[3]));
+ }
+ 
+ /* Make sure that we pick matching lanes when attempting to BB vectorize
+    a reduction rather than arbitrarily cutting back to the number of
+    vector lanes.  */
+ /* { dg-final { scan-tree-dump "optimized: basic block part vectorized" "slp2" { target { vect_hw_misalign && { x86_64-*-* i?86-*-* aarch64-*-* } } } } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/vect/bb-slp-reduc-3.c gcc-17-20260719/gcc/testsuite/gcc.dg/vect/bb-slp-reduc-3.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/vect/bb-slp-reduc-3.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/vect/bb-slp-reduc-3.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_int } */
+ 
+ int foo (int *a, int *b, int c)
+ {
+   return (c ^ 1) + ((a[0] | b[0]) + (a[1] | b[1]) + (a[2] | b[2]) + (a[3] | b[3]) + (a[4] | b[4]));
+ }
+ 
+ /* Make sure that we pick matching lanes when attempting to BB vectorize
+    a reduction rather than arbitrarily cutting back to the number of
+    vector lanes.  */
+ /* { dg-final { scan-tree-dump "optimized: basic block part vectorized" "slp2" { target { vect_hw_misalign && { x86_64-*-* i?86-*-* aarch64-*-* } } } } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/vect/pr106081.c gcc-17-20260719/gcc/testsuite/gcc.dg/vect/pr106081.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/vect/pr106081.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.dg/vect/pr106081.c	Sun Jul 19 22:32:13 2026
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-additional-options "-ffast-math -fdump-tree-optimized" } */
  /* { dg-additional-options "-mavx2" { target x86_64-*-* i?86-*-* } } */
  /* { dg-require-effective-target vect_double } */
  /* { dg-require-effective-target vect_unpack } */
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-additional-options "-ffast-math -fno-tree-slp-vectorize -fdump-tree-optimized" } */
  /* { dg-additional-options "-mavx2" { target x86_64-*-* i?86-*-* } } */
  /* { dg-require-effective-target vect_double } */
  /* { dg-require-effective-target vect_unpack } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/vect/tsvc/tsvc.h gcc-17-20260719/gcc/testsuite/gcc.dg/vect/tsvc/tsvc.h
*** gcc-17-20260712/gcc/testsuite/gcc.dg/vect/tsvc/tsvc.h	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.dg/vect/tsvc/tsvc.h	Sun Jul 19 22:32:13 2026
*************** void set_2d_array(real_t arr[LEN_2D][LEN
*** 195,201 ****
  }
  
  void init(int** ip, real_t* s1, real_t* s2){
! #if !defined (__APPLE__) && !defined (_AIX) && !defined(__DragonFly__)
      xx = (real_t*) memalign(ARRAY_ALIGNMENT, LEN_1D*sizeof(real_t));
      *ip = (int *) memalign(ARRAY_ALIGNMENT, LEN_1D*sizeof(real_t));
  #else
--- 195,201 ----
  }
  
  void init(int** ip, real_t* s1, real_t* s2){
! #if !defined (__APPLE__) && !defined (_AIX) && !defined(__DragonFly__) && !defined(__NetBSD__)
      xx = (real_t*) memalign(ARRAY_ALIGNMENT, LEN_1D*sizeof(real_t));
      *ip = (int *) memalign(ARRAY_ALIGNMENT, LEN_1D*sizeof(real_t));
  #else
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/vect/vect-iv-12.c gcc-17-20260719/gcc/testsuite/gcc.dg/vect/vect-iv-12.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/vect/vect-iv-12.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/vect/vect-iv-12.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,60 ----
+ /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-mprefer-vector-width=128" { target { x86_64-*-* i?86-*-* } } } */
+ 
+ /* Ensure that SLP induction does not blindly reuse IVs when the scalar
+    initial values of the lanes differ.  */
+ 
+ #include "tree-vect.h"
+ 
+ #define N 16
+ 
+ static const int expected[N] = {
+   1, 1, 1, 1, 2, 2, 2, 2,
+   3, 3, 3, 3, 4, 4, 4, 4
+ };
+ 
+ __attribute__ ((noipa))
+ void
+ fill (int *ans, int rounds)
+ {
+   int x = 1;
+   int y = 2;
+   int i = 0;
+ 
+   while (rounds > 0)
+     {
+       ans[i++] = x;
+       ans[i++] = x;
+       ans[i++] = x;
+       ans[i++] = x;
+       ans[i++] = y;
+       ans[i++] = y;
+       ans[i++] = y;
+       ans[i++] = y;
+ 
+       --rounds;
+       x += 2;
+       y += 2;
+     }
+ }
+ 
+ int
+ main (void)
+ {
+   int ans[N] = { 0 };
+ 
+   check_vect ();
+ 
+   fill (ans, 2);
+ 
+ #pragma GCC novector
+   for (int i = 0; i < N; ++i)
+     if (ans[i] != expected[i])
+       abort ();
+ 
+   return 0;
+ }
+ 
+ /* Multi-lane SLP inductions are not yet supported for variable-length
+    vectors.  */
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_variable_length } } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/vect/vect-iv-13.c gcc-17-20260719/gcc/testsuite/gcc.dg/vect/vect-iv-13.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/vect/vect-iv-13.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/vect/vect-iv-13.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,60 ----
+ /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-mprefer-vector-width=128" { target { x86_64-*-* i?86-*-* } } } */
+ 
+ /* Ensure that SLP induction does not blindly reuse IVs when the scalar
+    steps of the lanes differ.  */
+ 
+ #include "tree-vect.h"
+ 
+ #define N 16
+ 
+ static const int expected[N] = {
+   1, 1, 1, 1, 1, 1, 1, 1,
+   3, 3, 3, 3, 4, 4, 4, 4
+ };
+ 
+ __attribute__ ((noipa))
+ void
+ fill (int *ans, int rounds)
+ {
+   int x = 1;
+   int y = 1;
+   int i = 0;
+ 
+   while (rounds > 0)
+     {
+       ans[i++] = x;
+       ans[i++] = x;
+       ans[i++] = x;
+       ans[i++] = x;
+       ans[i++] = y;
+       ans[i++] = y;
+       ans[i++] = y;
+       ans[i++] = y;
+ 
+       --rounds;
+       x += 2;
+       y += 3;
+     }
+ }
+ 
+ int
+ main (void)
+ {
+   int ans[N] = { 0 };
+ 
+   check_vect ();
+ 
+   fill (ans, 2);
+ 
+ #pragma GCC novector
+   for (int i = 0; i < N; ++i)
+     if (ans[i] != expected[i])
+       abort ();
+ 
+   return 0;
+ }
+ 
+ /* Multi-lane SLP inductions are not yet supported for variable-length
+    vectors.  */
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_variable_length } } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.dg/vect/vect-iv-14.c gcc-17-20260719/gcc/testsuite/gcc.dg/vect/vect-iv-14.c
*** gcc-17-20260712/gcc/testsuite/gcc.dg/vect/vect-iv-14.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.dg/vect/vect-iv-14.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,78 ----
+ /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-mprefer-vector-width=128" { target { x86_64-*-* i?86-*-* } } } */
+ 
+ #include "tree-vect.h"
+ 
+ #define N 48
+ 
+ #define STORE4(RESULT, VALUE) \
+   do { \
+     (RESULT)[i++] = (VALUE); \
+     (RESULT)[i++] = (VALUE); \
+     (RESULT)[i++] = (VALUE); \
+     (RESULT)[i++] = (VALUE); \
+   } while (0)
+ 
+ static const int expected[N] = {
+   /* Round 1.  */
+    1,  1,  1,  1,   10, 10, 10, 10,    1,  1,  1,  1,
+    1,  1,  1,  1,   10, 10, 10, 10,    1,  1,  1,  1,
+   /* Round 2 (x + 2, y + 3).  */
+    3,  3,  3,  3,   13, 13, 13, 13,    3,  3,  3,  3,
+    3,  3,  3,  3,   13, 13, 13, 13,    3,  3,  3,  3
+ };
+ 
+ /* To test the multi-IV generation path (CANDIDATE_NIVS > 1), force a
+    geometry where CANDIDATE_NIVS < NIVS.  On four-lane integer vectors,
+    the minimum SLP group size that satisfies this is 24, creating 6 vectors.
+ 
+    The first three (X, Y, X) vectors form the first period.  The last three
+    form the repeated period, which exercises the IVN % CANDIDATE_NIVS reuse
+    path.  */
+ __attribute__ ((noipa))
+ void
+ fill (int *ans, int rounds)
+ {
+   int x = 1;
+   int y = 10;
+   int i = 0;
+ 
+   while (rounds > 0)
+     {
+       /* First period.  */
+       STORE4 (ans, x);
+       STORE4 (ans, y);
+       STORE4 (ans, x);
+ 
+       /* Repeated period.  */
+       STORE4 (ans, x);
+       STORE4 (ans, y);
+       STORE4 (ans, x);
+ 
+       --rounds;
+       x += 2;
+       y += 3;
+     }
+ }
+ 
+ int
+ main (void)
+ {
+   int ans[N] = { 0 };
+ 
+   check_vect ();
+ 
+   fill (ans, 2);
+ 
+ #pragma GCC novector
+   for (int i = 0; i < N; ++i)
+     if (ans[i] != expected[i])
+       abort ();
+ 
+   return 0;
+ }
+ 
+ /* Multi-lane SLP inductions are not yet supported for variable-length
+    vectors.  */
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_variable_length } } } */
+ /* { dg-final { scan-tree-dump-times "reusing 3 SLP induction IVs for 6 vector chunks" 1 "vect" { target { x86_64-*-* i?86-*-* } } } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.misc-tests/gcov-35.c gcc-17-20260719/gcc/testsuite/gcc.misc-tests/gcov-35.c
*** gcc-17-20260712/gcc/testsuite/gcc.misc-tests/gcov-35.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.misc-tests/gcov-35.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-options "-fcondition-coverage -ftest-coverage -fprofile-update=atomic" } */
+ /* { dg-do run } */
+ /* { dg-require-effective-target profile_update_atomic } */
+ 
+ /* Some side effect to stop branches from being pruned.  */
+ int x = 0;
+ 
+ void
+ zero_elision_atomic (int a, int b, int c, int d)
+ {
+     if (a || b || c || d) /* conditions(5/8) true(1 2 3) */
+ 			   /* conditions(end) */
+ 	x = 1;
+     else
+ 	x = 2;
+ }
+ 
+ int main ()
+ {
+     zero_elision_atomic (1, 0, 0, 0);
+     zero_elision_atomic (0, 0, 0, 0);
+ }
+ 
+ /* { dg-final { run-gcov conditions { --conditions gcov-35.c } } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.misc-tests/gcov-36.c gcc-17-20260719/gcc/testsuite/gcc.misc-tests/gcov-36.c
*** gcc-17-20260712/gcc/testsuite/gcc.misc-tests/gcov-36.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.misc-tests/gcov-36.c	Sun Jul 19 22:32:13 2026
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-options "-fcondition-coverage -ftest-coverage" } */
+ /* { dg-do run } */
+ 
+ /* Some side effect to stop branches from being pruned.  */
+ int x = 0;
+ 
+ void
+ zero_elision_single (int a, int b, int c, int d)
+ {
+     if (a || b || c || d) /* conditions(5/8) true(1 2 3) */
+ 			   /* conditions(end) */
+ 	x = 1;
+     else
+ 	x = 2;
+ }
+ 
+ int main ()
+ {
+     zero_elision_single (1, 0, 0, 0);
+     zero_elision_single (0, 0, 0, 0);
+ }
+ 
+ /* { dg-final { run-gcov conditions { --conditions gcov-36.c } } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.misc-tests/outputs.exp gcc-17-20260719/gcc/testsuite/gcc.misc-tests/outputs.exp
*** gcc-17-20260712/gcc/testsuite/gcc.misc-tests/outputs.exp	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.misc-tests/outputs.exp	Sun Jul 19 22:32:13 2026
*************** if !$skip_lto {
*** 50,58 ****
      set ltop [check_linker_plugin_available]
  }
  
! # Check for GNU ld.  Some files like .ld1_args depend on this.  This
! # should really be testing whether the linker supports GNU style response files.
! set gld [check_effective_target_gld]
  # Darwin's linker is not silent about missing -L values.
  set ld64 [istarget *-*-darwin*]
  
--- 50,58 ----
      set ltop [check_linker_plugin_available]
  }
  
! # Check if the linker supports GNU style response files.  Some files like
! # .ld1_args depend on this.
! set ld_at_file [check_effective_target_ld_at_file]
  # Darwin's linker is not silent about missing -L values.
  set ld64 [istarget *-*-darwin*]
  
*************** proc outest { test sources opts dirs out
*** 180,186 ****
  	foreach og $olist {
  	    if { [string index $og 0] == "!" } {
  		global gspd ltop
! 		global gld ld64
  		set cond [expr $og]
  		continue
  	    }
--- 180,186 ----
  	foreach og $olist {
  	    if { [string index $og 0] == "!" } {
  		global gspd ltop
! 		global ld_at_file ld64
  		set cond [expr $og]
  		continue
  	    }
*************** outest "$b-21 exe savetmp named2" $mult
*** 363,376 ****
  
  # Additional files are created when an @file is used
  if !$skip_atsave {
! outest "$b-22 exe savetmp namedb-2" $sing "@$devnull -o $b.exe -save-temps" {} {{--0.i --0.s --0.o .args.0 !!$gld .ld1_args !0 .exe}}
! outest "$b-23 exe savetmp named2-2" $mult "@$devnull -o $b.exe -save-temps" {} {{--1.i --1.s --1.o --2.i --2.s --2.o .args.0 !!$gld .ld1_args !0 .exe}}
! outest "$b-24 exe savetmp named2-3" $mult "@$devnull -I dummy -o $b.exe -save-temps" {} {{--1.i --1.s --1.o --2.i --2.s --2.o -args.0 -args.1 .args.2 !!$gld .ld1_args !0 .exe}}
    if $ld64 {
      # Darwin's linker warns about missing args to -L.
!     outest "$b-25 exe savetmp named2-4" $mult "@$devnull -I dummy -L dummy -o $b.exe -save-temps -Wl,-w" {} {{--1.i --1.s --1.o --2.i --2.s --2.o -args.0 -args.1 .args.2 !!0 .args.3 !!$gld .ld1_args !0 .exe}}
    } else {
!     outest "$b-25 exe savetmp named2-4" $mult "@$devnull -I dummy -L dummy -o $b.exe -save-temps" {} {{--1.i --1.s --1.o --2.i --2.s --2.o -args.0 -args.1 .args.2 .args.3 !!$gld .ld1_args !0 .exe}}
    }
  }
  
--- 363,376 ----
  
  # Additional files are created when an @file is used
  if !$skip_atsave {
! outest "$b-22 exe savetmp namedb-2" $sing "@$devnull -o $b.exe -save-temps" {} {{--0.i --0.s --0.o .args.0 !!$ld_at_file .ld1_args !0 .exe}}
! outest "$b-23 exe savetmp named2-2" $mult "@$devnull -o $b.exe -save-temps" {} {{--1.i --1.s --1.o --2.i --2.s --2.o .args.0 !!$ld_at_file .ld1_args !0 .exe}}
! outest "$b-24 exe savetmp named2-3" $mult "@$devnull -I dummy -o $b.exe -save-temps" {} {{--1.i --1.s --1.o --2.i --2.s --2.o -args.0 -args.1 .args.2 !!$ld_at_file .ld1_args !0 .exe}}
    if $ld64 {
      # Darwin's linker warns about missing args to -L.
!     outest "$b-25 exe savetmp named2-4" $mult "@$devnull -I dummy -L dummy -o $b.exe -save-temps -Wl,-w" {} {{--1.i --1.s --1.o --2.i --2.s --2.o -args.0 -args.1 .args.2 !!0 .args.3 !!$ld_at_file .ld1_args !0 .exe}}
    } else {
!     outest "$b-25 exe savetmp named2-4" $mult "@$devnull -I dummy -L dummy -o $b.exe -save-temps" {} {{--1.i --1.s --1.o --2.i --2.s --2.o -args.0 -args.1 .args.2 .args.3 !!$ld_at_file .ld1_args !0 .exe}}
    }
  }
  
*************** outest "$b-291 lto mult named-2" $mult "
*** 729,735 ****
  outest "$b-292 lto sing nameddir-2" $sing "-o dir/$b.exe -O2 -flto -fno-use-linker-plugin -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage" {dir/} {{--0.c.???i.icf --0.c.???r.final .wpa.???i.icf .ltrans0.ltrans.???r.final .ltrans0.ltrans.su .exe} {}}
  outest "$b-293 lto mult nameddir-2" $mult "-o dir/$b.exe -O2 -flto -fno-use-linker-plugin -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage" {dir/} {{--1.c.???i.icf --1.c.???r.final --2.c.???i.icf --2.c.???r.final .wpa.???i.icf .ltrans0.ltrans.???r.final .ltrans0.ltrans.su .exe} {}}
  if !$skip_atsave {
! outest "$b-294 lto sing unnamed-3" $sing "@$devnull -O2 -flto -fno-use-linker-plugin -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage -save-temps $oaout" {} {{a--0.c.???i.icf a--0.c.???r.final a.wpa.???i.icf a.ltrans0.ltrans.???r.final a.ltrans0.ltrans.su a--0.o a--0.s a--0.i a.ltrans0.o a.ltrans.out a.ltrans0.ltrans.o a.ltrans0.ltrans_args a.args.0 a.ltrans0.ltrans.s a.wpa.args.0 a.lto_args a.ld1_args a.ltrans_args a.ltrans0.ltrans.args.0 a.ld_args $aout}}
  }
  }
  
--- 729,735 ----
  outest "$b-292 lto sing nameddir-2" $sing "-o dir/$b.exe -O2 -flto -fno-use-linker-plugin -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage" {dir/} {{--0.c.???i.icf --0.c.???r.final .wpa.???i.icf .ltrans0.ltrans.???r.final .ltrans0.ltrans.su .exe} {}}
  outest "$b-293 lto mult nameddir-2" $mult "-o dir/$b.exe -O2 -flto -fno-use-linker-plugin -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage" {dir/} {{--1.c.???i.icf --1.c.???r.final --2.c.???i.icf --2.c.???r.final .wpa.???i.icf .ltrans0.ltrans.???r.final .ltrans0.ltrans.su .exe} {}}
  if !$skip_atsave {
! outest "$b-294 lto sing unnamed-3" $sing "@$devnull -O2 -flto -fno-use-linker-plugin -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage -save-temps $oaout" {} {{a--0.c.???i.icf a--0.c.???r.final a.wpa.???i.icf a.ltrans0.ltrans.???r.final a.ltrans0.ltrans.su a--0.o a--0.s a--0.i a.ltrans0.o a.ltrans1.o a.ltrans.out a.ltrans0.ltrans.o a.ltrans0.ltrans_args a.args.0 a.ltrans0.ltrans.s a.wpa.args.0 a.lto_args a.ld1_args a.ltrans_args a.ltrans0.ltrans.args.0 a.ld_args $aout}}
  }
  }
  
*************** outest "$b-335 lto sing empty dumpdir em
*** 796,815 ****
  outest "$b-336 lto mult empty dumpdir empty dumpbase namedb" $mult "-dumpdir \"\" -dumpbase \"\" -o dir/$b.exe -O2 -flto -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage" {dir/} {{.exe} {-1.c.???i.icf !$ltop -1.c.???r.final !0 -2.c.???i.icf !$ltop -2.c.???r.final !0 .wpa.???i.icf .ltrans0.ltrans.???r.final .ltrans0.ltrans.su}}
  
  # Now -flto with -save-temps, not exhaustive.
! outest "$b-337 lto st sing empty dumpbase unnamed" $sing "-dumpbase \"\" -save-temps -O2 -flto -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage $oaout" {} {{-0.i -0.s -0.o -0.c.???i.icf !$ltop -0.c.???r.final !!$ltop a.lto_wrapper_args !0 a.wpa.???i.icf a.ltrans.out a.ltrans_args !!$ltop a.res !0 a.ltrans0.o a.ltrans0.ltrans.???r.final a.ltrans0.ltrans.su a.ltrans0.ltrans.s a.ltrans0.ltrans.o a.ltrans0.ltrans_args a.ltrans0.ltrans.args.0 a.wpa.args.0 $aout}}
! outest "$b-338 lto st mult empty dumpbase unnamed" $mult "-dumpbase \"\" -save-temps -O2 -flto -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage $oaout" {} {{-1.i -1.s -1.o -1.c.???i.icf !$ltop -1.c.???r.final !0 -2.i -2.s -2.o -2.c.???i.icf !$ltop -2.c.???r.final !!$ltop a.lto_wrapper_args !0 a.wpa.???i.icf a.ltrans.out a.ltrans_args !!$ltop a.res !0 a.ltrans0.o a.ltrans0.ltrans.???r.final a.ltrans0.ltrans.su a.ltrans0.ltrans.s a.ltrans0.ltrans.o a.ltrans0.ltrans_args a.ltrans0.ltrans.args.0 a.wpa.args.0 $aout}}
! outest "$b-339 lto st sing dumpdir empty dumpbase named" $sing "-dumpdir dir/ -dumpbase \"\" -o $b-0.exe -save-temps -O2 -flto -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage" {dir/} {{-0.i -0.s -0.o -0.c.???i.icf !$ltop -0.c.???r.final !!$ltop -0.lto_wrapper_args !0 -0.wpa.???i.icf -0.ltrans.out -0.ltrans_args !!$ltop -0.res !0 -0.ltrans0.o -0.ltrans0.ltrans.???r.final -0.ltrans0.ltrans.su -0.ltrans0.ltrans.s -0.ltrans0.ltrans.o -0.ltrans0.ltrans_args -0.ltrans0.ltrans.args.0 -0.wpa.args.0} {-0.exe}}
! outest "$b-340 lto st mult dumpdir empty dumpbase named" $mult "-dumpdir dir/ -dumpbase \"\" -o $b-1.exe -save-temps -O2 -flto -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage" {dir/} {{-1.i -1.s -1.o -1.c.???i.icf !$ltop -1.c.???r.final !0 -2.i -2.s -2.o -2.c.???i.icf !$ltop -2.c.???r.final !!$ltop -1.lto_wrapper_args !0 -1.wpa.???i.icf -1.ltrans.out -1.ltrans_args !!$ltop -1.res !0 -1.ltrans0.o -1.ltrans0.ltrans.???r.final -1.ltrans0.ltrans.su -1.ltrans0.ltrans.s -1.ltrans0.ltrans.o -1.ltrans0.ltrans_args -1.ltrans0.ltrans.args.0 -1.wpa.args.0} {-1.exe}}
! outest "$b-341 lto st sing empty dumpbase namedb" $sing "-dumpbase \"\" -o dir/$b.exe -save-temps -O2 -flto -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage" {dir/} {{-0.i -0.s -0.o -0.c.???i.icf !$ltop -0.c.???r.final !!$ltop .lto_wrapper_args !0 .wpa.???i.icf .ltrans.out .ltrans_args !!$ltop .res !0 .ltrans0.o .ltrans0.ltrans.???r.final .ltrans0.ltrans.su .ltrans0.ltrans.s .ltrans0.ltrans.o .ltrans0.ltrans_args .ltrans0.ltrans.args.0 .wpa.args.0 .exe} {}}
! outest "$b-342 lto st mult empty dumpbase namedb" $mult "-dumpbase \"\" -o dir/$b.exe -save-temps -O2 -flto -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage" {dir/} {{-1.i -1.s -1.o -1.c.???i.icf !$ltop -1.c.???r.final !0 -2.i -2.s -2.o -2.c.???i.icf !$ltop -2.c.???r.final !!$ltop .lto_wrapper_args !0 .wpa.???i.icf .ltrans.out .ltrans_args !!$ltop .res !0 .ltrans0.o .ltrans0.ltrans.???r.final .ltrans0.ltrans.su .ltrans0.ltrans.s .ltrans0.ltrans.o .ltrans0.ltrans_args .ltrans0.ltrans.args.0 .wpa.args.0 .exe} {}}
  
  # lto save-temps without -dumpbase.
! outest "$b-343 lto st sing unnamed" $sing "-save-temps -O2 -flto -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage $oaout" {} {{a--0.i a--0.s a--0.o a--0.c.???i.icf !$ltop a--0.c.???r.final !!$ltop a.lto_wrapper_args !0 a.wpa.???i.icf a.ltrans.out a.ltrans_args !!$ltop a.res !0 a.ltrans0.o a.ltrans0.ltrans.???r.final a.ltrans0.ltrans.su a.ltrans0.ltrans.s a.ltrans0.ltrans.o a.ltrans0.ltrans_args a.ltrans0.ltrans.args.0 a.wpa.args.0 $aout}}
! outest "$b-344 lto st mult unnamed" $mult "-save-temps -O2 -flto -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage $oaout" {} {{a--1.i a--1.s a--1.o a--1.c.???i.icf !$ltop a--1.c.???r.final !0 a--2.i a--2.s a--2.o a--2.c.???i.icf !$ltop a--2.c.???r.final !!$ltop a.lto_wrapper_args !0 a.wpa.???i.icf a.ltrans.out a.ltrans_args !!$ltop a.res !0 a.ltrans0.o a.ltrans0.ltrans.???r.final a.ltrans0.ltrans.su a.ltrans0.ltrans.s a.ltrans0.ltrans.o a.ltrans0.ltrans_args a.ltrans0.ltrans.args.0 a.wpa.args.0 $aout}}
! outest "$b-345 lto st sing dumpdir named" $sing "-dumpdir dir/$b- -o $b-0.exe -save-temps -O2 -flto -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage" {dir/} {{--0.i --0.s --0.o --0.c.???i.icf !$ltop --0.c.???r.final !!$ltop -lto_wrapper_args !0 -wpa.???i.icf -ltrans.out -ltrans_args !!$ltop -res !0 -ltrans0.o -ltrans0.ltrans.???r.final -ltrans0.ltrans.su -ltrans0.ltrans.s -ltrans0.ltrans.o -ltrans0.ltrans_args -ltrans0.ltrans.args.0 -wpa.args.0} {-0.exe}}
! outest "$b-346 lto st mult dumpdir named" $mult "-dumpdir dir/$b- -o $b-1.exe -save-temps -O2 -flto -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage" {dir/} {{--1.i --1.s --1.o --1.c.???i.icf !$ltop --1.c.???r.final !0 --2.i --2.s --2.o --2.c.???i.icf !$ltop --2.c.???r.final !!$ltop -lto_wrapper_args !0 -wpa.???i.icf -ltrans.out -ltrans_args !!$ltop -res !0 -ltrans0.o -ltrans0.ltrans.???r.final -ltrans0.ltrans.su -ltrans0.ltrans.s -ltrans0.ltrans.o -ltrans0.ltrans_args -ltrans0.ltrans.args.0 -wpa.args.0} {-1.exe}}
! outest "$b-347 lto st sing namedb" $sing "-o dir/$b.exe -save-temps -O2 -flto -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage" {dir/} {{--0.i --0.s --0.o --0.c.???i.icf !$ltop --0.c.???r.final !!$ltop .lto_wrapper_args !0 .wpa.???i.icf .ltrans.out .ltrans_args !!$ltop .res !0 .ltrans0.o .ltrans0.ltrans.???r.final .ltrans0.ltrans.su .ltrans0.ltrans.s .ltrans0.ltrans.o .ltrans0.ltrans_args .ltrans0.ltrans.args.0 .wpa.args.0 .exe} {}}
! outest "$b-348 lto st mult namedb" $mult "-o dir/$b.exe -save-temps -O2 -flto -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage" {dir/} {{--1.i --1.s --1.o --1.c.???i.icf !$ltop --1.c.???r.final !0 --2.i --2.s --2.o --2.c.???i.icf !$ltop --2.c.???r.final !!$ltop .lto_wrapper_args !0 .wpa.???i.icf .ltrans.out .ltrans_args !!$ltop .res !0 .ltrans0.o .ltrans0.ltrans.???r.final .ltrans0.ltrans.su .ltrans0.ltrans.s .ltrans0.ltrans.o .ltrans0.ltrans_args .ltrans0.ltrans.args.0 .wpa.args.0 .exe} {}}
  
  # !$skip_lto
  }
--- 796,815 ----
  outest "$b-336 lto mult empty dumpdir empty dumpbase namedb" $mult "-dumpdir \"\" -dumpbase \"\" -o dir/$b.exe -O2 -flto -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage" {dir/} {{.exe} {-1.c.???i.icf !$ltop -1.c.???r.final !0 -2.c.???i.icf !$ltop -2.c.???r.final !0 .wpa.???i.icf .ltrans0.ltrans.???r.final .ltrans0.ltrans.su}}
  
  # Now -flto with -save-temps, not exhaustive.
! outest "$b-337 lto st sing empty dumpbase unnamed" $sing "-dumpbase \"\" -save-temps -O2 -flto -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage $oaout" {} {{-0.i -0.s -0.o -0.c.???i.icf !$ltop -0.c.???r.final !!$ltop a.lto_wrapper_args !0 a.wpa.???i.icf a.ltrans.out a.ltrans_args !!$ltop a.res !0 a.ltrans0.o a.ltrans1.o a.ltrans0.ltrans.???r.final a.ltrans0.ltrans.su a.ltrans0.ltrans.s a.ltrans0.ltrans.o a.ltrans0.ltrans_args a.ltrans0.ltrans.args.0 a.wpa.args.0 $aout}}
! outest "$b-338 lto st mult empty dumpbase unnamed" $mult "-dumpbase \"\" -save-temps -O2 -flto -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage $oaout" {} {{-1.i -1.s -1.o -1.c.???i.icf !$ltop -1.c.???r.final !0 -2.i -2.s -2.o -2.c.???i.icf !$ltop -2.c.???r.final !!$ltop a.lto_wrapper_args !0 a.wpa.???i.icf a.ltrans.out a.ltrans_args !!$ltop a.res !0 a.ltrans0.o a.ltrans1.o a.ltrans0.ltrans.???r.final a.ltrans0.ltrans.su a.ltrans0.ltrans.s a.ltrans0.ltrans.o a.ltrans0.ltrans_args a.ltrans0.ltrans.args.0 a.wpa.args.0 $aout}}
! outest "$b-339 lto st sing dumpdir empty dumpbase named" $sing "-dumpdir dir/ -dumpbase \"\" -o $b-0.exe -save-temps -O2 -flto -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage" {dir/} {{-0.i -0.s -0.o -0.c.???i.icf !$ltop -0.c.???r.final !!$ltop -0.lto_wrapper_args !0 -0.wpa.???i.icf -0.ltrans.out -0.ltrans_args !!$ltop -0.res !0 -0.ltrans0.o -0.ltrans1.o -0.ltrans0.ltrans.???r.final -0.ltrans0.ltrans.su -0.ltrans0.ltrans.s -0.ltrans0.ltrans.o -0.ltrans0.ltrans_args -0.ltrans0.ltrans.args.0 -0.wpa.args.0} {-0.exe}}
! outest "$b-340 lto st mult dumpdir empty dumpbase named" $mult "-dumpdir dir/ -dumpbase \"\" -o $b-1.exe -save-temps -O2 -flto -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage" {dir/} {{-1.i -1.s -1.o -1.c.???i.icf !$ltop -1.c.???r.final !0 -2.i -2.s -2.o -2.c.???i.icf !$ltop -2.c.???r.final !!$ltop -1.lto_wrapper_args !0 -1.wpa.???i.icf -1.ltrans.out -1.ltrans_args !!$ltop -1.res !0 -1.ltrans0.o -1.ltrans1.o -1.ltrans0.ltrans.???r.final -1.ltrans0.ltrans.su -1.ltrans0.ltrans.s -1.ltrans0.ltrans.o -1.ltrans0.ltrans_args -1.ltrans0.ltrans.args.0 -1.wpa.args.0} {-1.exe}}
! outest "$b-341 lto st sing empty dumpbase namedb" $sing "-dumpbase \"\" -o dir/$b.exe -save-temps -O2 -flto -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage" {dir/} {{-0.i -0.s -0.o -0.c.???i.icf !$ltop -0.c.???r.final !!$ltop .lto_wrapper_args !0 .wpa.???i.icf .ltrans.out .ltrans_args !!$ltop .res !0 .ltrans0.o .ltrans1.o .ltrans0.ltrans.???r.final .ltrans0.ltrans.su .ltrans0.ltrans.s .ltrans0.ltrans.o .ltrans0.ltrans_args .ltrans0.ltrans.args.0 .wpa.args.0 .exe} {}}
! outest "$b-342 lto st mult empty dumpbase namedb" $mult "-dumpbase \"\" -o dir/$b.exe -save-temps -O2 -flto -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage" {dir/} {{-1.i -1.s -1.o -1.c.???i.icf !$ltop -1.c.???r.final !0 -2.i -2.s -2.o -2.c.???i.icf !$ltop -2.c.???r.final !!$ltop .lto_wrapper_args !0 .wpa.???i.icf .ltrans.out .ltrans_args !!$ltop .res !0 .ltrans0.o .ltrans1.o .ltrans0.ltrans.???r.final .ltrans0.ltrans.su .ltrans0.ltrans.s .ltrans0.ltrans.o .ltrans0.ltrans_args .ltrans0.ltrans.args.0 .wpa.args.0 .exe} {}}
  
  # lto save-temps without -dumpbase.
! outest "$b-343 lto st sing unnamed" $sing "-save-temps -O2 -flto -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage $oaout" {} {{a--0.i a--0.s a--0.o a--0.c.???i.icf !$ltop a--0.c.???r.final !!$ltop a.lto_wrapper_args !0 a.wpa.???i.icf a.ltrans.out a.ltrans_args !!$ltop a.res !0 a.ltrans0.o a.ltrans1.o a.ltrans0.ltrans.???r.final a.ltrans0.ltrans.su a.ltrans0.ltrans.s a.ltrans0.ltrans.o a.ltrans0.ltrans_args a.ltrans0.ltrans.args.0 a.wpa.args.0 $aout}}
! outest "$b-344 lto st mult unnamed" $mult "-save-temps -O2 -flto -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage $oaout" {} {{a--1.i a--1.s a--1.o a--1.c.???i.icf !$ltop a--1.c.???r.final !0 a--2.i a--2.s a--2.o a--2.c.???i.icf !$ltop a--2.c.???r.final !!$ltop a.lto_wrapper_args !0 a.wpa.???i.icf a.ltrans.out a.ltrans_args !!$ltop a.res !0 a.ltrans0.o a.ltrans1.o a.ltrans0.ltrans.???r.final a.ltrans0.ltrans.su a.ltrans0.ltrans.s a.ltrans0.ltrans.o a.ltrans0.ltrans_args a.ltrans0.ltrans.args.0 a.wpa.args.0 $aout}}
! outest "$b-345 lto st sing dumpdir named" $sing "-dumpdir dir/$b- -o $b-0.exe -save-temps -O2 -flto -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage" {dir/} {{--0.i --0.s --0.o --0.c.???i.icf !$ltop --0.c.???r.final !!$ltop -lto_wrapper_args !0 -wpa.???i.icf -ltrans.out -ltrans_args !!$ltop -res !0 -ltrans0.o -ltrans1.o -ltrans0.ltrans.???r.final -ltrans0.ltrans.su -ltrans0.ltrans.s -ltrans0.ltrans.o -ltrans0.ltrans_args -ltrans0.ltrans.args.0 -wpa.args.0} {-0.exe}}
! outest "$b-346 lto st mult dumpdir named" $mult "-dumpdir dir/$b- -o $b-1.exe -save-temps -O2 -flto -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage" {dir/} {{--1.i --1.s --1.o --1.c.???i.icf !$ltop --1.c.???r.final !0 --2.i --2.s --2.o --2.c.???i.icf !$ltop --2.c.???r.final !!$ltop -lto_wrapper_args !0 -wpa.???i.icf -ltrans.out -ltrans_args !!$ltop -res !0 -ltrans0.o -ltrans1.o -ltrans0.ltrans.???r.final -ltrans0.ltrans.su -ltrans0.ltrans.s -ltrans0.ltrans.o -ltrans0.ltrans_args -ltrans0.ltrans.args.0 -wpa.args.0} {-1.exe}}
! outest "$b-347 lto st sing namedb" $sing "-o dir/$b.exe -save-temps -O2 -flto -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage" {dir/} {{--0.i --0.s --0.o --0.c.???i.icf !$ltop --0.c.???r.final !!$ltop .lto_wrapper_args !0 .wpa.???i.icf .ltrans.out .ltrans_args !!$ltop .res !0 .ltrans0.o .ltrans1.o .ltrans0.ltrans.???r.final .ltrans0.ltrans.su .ltrans0.ltrans.s .ltrans0.ltrans.o .ltrans0.ltrans_args .ltrans0.ltrans.args.0 .wpa.args.0 .exe} {}}
! outest "$b-348 lto st mult namedb" $mult "-o dir/$b.exe -save-temps -O2 -flto -flto-partition=one -fdump-ipa-icf-optimized -fdump-rtl-final -fstack-usage" {dir/} {{--1.i --1.s --1.o --1.c.???i.icf !$ltop --1.c.???r.final !0 --2.i --2.s --2.o --2.c.???i.icf !$ltop --2.c.???r.final !!$ltop .lto_wrapper_args !0 .wpa.???i.icf .ltrans.out .ltrans_args !!$ltop .res !0 .ltrans0.o .ltrans1.o .ltrans0.ltrans.???r.final .ltrans0.ltrans.su .ltrans0.ltrans.s .ltrans0.ltrans.o .ltrans0.ltrans_args .ltrans0.ltrans.args.0 .wpa.args.0 .exe} {}}
  
  # !$skip_lto
  }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.misc-tests/pr111527.exp gcc-17-20260719/gcc/testsuite/gcc.misc-tests/pr111527.exp
*** gcc-17-20260712/gcc/testsuite/gcc.misc-tests/pr111527.exp	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.misc-tests/pr111527.exp	Sun Jul 19 22:32:13 2026
*************** if { [is_remote host] } {
*** 24,29 ****
--- 24,37 ----
      return
  }
  
+ # This file doesn't use runtest_file_p, so disable parallelization
+ # of this *.exp file.  The first parallel runtest to reach this
+ # will run the tests.
+ if { ![gcc_parallel_test_run_p pr111527] } {
+     return
+ }
+ gcc_parallel_test_enable 0
+ 
  global GCC_UNDER_TEST
  if { ![info exists GCC_UNDER_TEST] } {
      set GCC_UNDER_TEST [find_gcc]
*************** if { [regexp {COLLECT_GCC_OPTIONS=@[^[:s
*** 76,78 ****
--- 84,88 ----
  file delete -force $obj
  file delete -force $rsp
  file delete -force $src
+ 
+ gcc_parallel_test_enable 1
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/acle/tme.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/acle/tme.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/acle/tme.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/acle/tme.c	Thu Jan  1 00:00:00 1970
***************
*** 1,34 ****
- /* Test the TME intrinsics.  */
- 
- /* { dg-do compile } */
- /* { dg-options "-save-temps -O2 -march=armv8-a+tme" } */
- 
- #include "arm_acle.h"
- 
- #define tcancel_reason 0x234
- 
- unsigned
- check_tme (void)
- {
-   unsigned status = __tstart ();
-   if (status == 0)
-     {
-       if (__ttest () == 2)
- 	{
- 	  __tcancel (tcancel_reason & _TMFAILURE_REASON);
- 	  return tcancel_reason;
- 	}
- 
-       __tcommit ();
-       return 0;
-     }
-   else if (status & _TMFAILURE_NEST)
-     return _TMFAILURE_NEST;
-   else if (status & _TMFAILURE_TRIVIAL)
-     return _TMFAILURE_TRIVIAL;
- }
- 
- /* { dg-final { scan-assembler "tstart\tx..?\n" } } */
- /* { dg-final { scan-assembler "tcancel\t#564\n" } } */
- /* { dg-final { scan-assembler "ttest\tx..?\n" } } */
- /* { dg-final { scan-assembler "tcommit\n" } } */
--- 0 ----
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-1.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-1.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,9 ****
- /* { dg-do compile } */
- /* { dg-additional-options "-march=armv8-a" } */
- 
- #include <arm_acle.h>
- 
- void foo (void)
- {
-   __tcommit (); /* { dg-error {ACLE function '__tcommit' requires ISA extension 'tme'} } */
- }
--- 0 ----
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-2.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-2.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- /* { dg-do compile } */
- /* { dg-additional-options "-march=armv8-a" } */
- 
- #include <arm_acle.h>
- 
- #pragma GCC target("arch=armv8-a+tme")
- void foo (void)
- {
-   __tcommit ();
- }
--- 0 ----
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-3.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-3.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-3.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-3.c	Thu Jan  1 00:00:00 1970
***************
*** 1,9 ****
- /* { dg-do compile } */
- /* { dg-additional-options "-march=armv8-a+tme -mgeneral-regs-only" } */
- 
- #include <arm_acle.h>
- 
- void foo (void)
- {
-   __tcommit ();
- }
--- 0 ----
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-4.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-4.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-4.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-4.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- /* { dg-do compile } */
- /* { dg-additional-options "-march=armv8-a+tme" } */
- 
- #include <arm_acle.h>
- 
- #pragma GCC target("arch=armv8-a")
- void foo (void)
- {
-   __tcommit (); /* { dg-error {ACLE function '__tcommit' requires ISA extension 'tme'} } */
- }
--- 0 ----
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/and-be.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/and-be.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/and-be.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/and-be.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O2 -mbig-endian" } */
  /* { dg-final { check-function-bodies "**" "" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/fmov-1-be.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/fmov-1-be.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/fmov-1-be.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/fmov-1-be.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O2 -mbig-endian" } */
  /* { dg-final { check-function-bodies "**" "" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/fmov-2-be.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/fmov-2-be.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/fmov-2-be.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/fmov-2-be.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O2 -mbig-endian" } */
  /* { dg-final { check-function-bodies "**" "" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/fmov-3-be.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/fmov-3-be.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/fmov-3-be.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/fmov-3-be.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O2 -mbig-endian" } */
  /* { dg-final { check-function-bodies "**" "" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/fmov-4-be.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/fmov-4-be.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/fmov-4-be.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/fmov-4-be.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O2 -mbig-endian" } */
  /* { dg-final { check-function-bodies "**" "" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/fmov-5-be.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/fmov-5-be.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/fmov-5-be.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/fmov-5-be.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O2 -mbig-endian" } */
  /* { dg-final { check-function-bodies "**" "" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/ins_bitfield_2.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/ins_bitfield_2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/ins_bitfield_2.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/ins_bitfield_2.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do assemble } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O2 -mbig-endian --save-temps" } */
  /* { dg-final { check-function-bodies "**" "" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/ins_bitfield_4.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/ins_bitfield_4.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/ins_bitfield_4.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/ins_bitfield_4.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do assemble } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O2 -mbig-endian --save-temps" } */
  /* { dg-final { check-function-bodies "**" "" "" { target lp64 } } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/ins_bitfield_6.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/ins_bitfield_6.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/ins_bitfield_6.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/ins_bitfield_6.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do assemble } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O2 -mbig-endian --save-temps" } */
  /* { dg-final { check-function-bodies "**" "" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/neon/aarch64-neon.exp gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/neon/aarch64-neon.exp
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/neon/aarch64-neon.exp	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/neon/aarch64-neon.exp	Sun Jul 19 22:32:14 2026
*************** dg-init
*** 35,43 ****
  dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*\[cCs\]]] \
  	" -ansi -pedantic-errors -std=c23 -O2 -march=armv8-a+simd" ""
  
- # Again, for big-endian targets.
- dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*\[cCs\]]] \
- 	" -ansi -pedantic-errors -std=c23 -O2 -march=armv8-a+simd -mbig-endian" ""
- 
  # All done.
  dg-finish
--- 35,39 ----
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/pr124078-1.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/pr124078-1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/pr124078-1.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/pr124078-1.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O1 -mbig-endian" } */
  
  /* PR rtl-optimization/124078 */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/pr126064.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/pr126064.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/pr126064.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/pr126064.c	Sun Jul 19 22:32:14 2026
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-options "-std=c99" } */
+ 
+ /* Check that `gimple_permute_pair::fold()` does not trip an assert when the LHS
+    type is `uint32x2_t` and the RHS type is `__Uint32x2_t`.  */
+ 
+ #include <arm_neon.h>
+ 
+ void
+ repro (uint8_t *dst, uint8x8_t a, uint8x8_t b)
+ {
+   uint32x2x2_t t;
+   uint32x2_t r;
+   uint8x8_t c;
+ 
+   r = vrev64_u32 (vreinterpret_u32_u8 (b));
+   t = vtrn_u32 (vreinterpret_u32_u8 (a), r);
+   c = vreinterpret_u8_u32 (t.val[1]);
+   t = vtrn_u32 (t.val[0], vreinterpret_u32_u8 (c));
+   t.val[1] = vrev64_u32 (t.val[1]);
+ 
+   vst1_u8 (dst, vreinterpret_u8_u32 (t.val[1]));
+ }
+ 
+ uint32x2_t
+ minimized_repro (uint32x2_t a, uint32x2_t b)
+ {
+   return vtrn_u32 (a, vrev64_u32 (b)).val[1];
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/pr126291.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/pr126291.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/pr126291.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/pr126291.c	Sun Jul 19 22:32:14 2026
***************
*** 0 ****
--- 1,20 ----
+ /* PR tree-optimization/126291 */
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -funsafe-math-optimizations -mcpu=ampere1a" } */
+ 
+ double
+ f (const double *p, double x, double y, long n)
+ {
+   double best = 1e30;
+   for (long i = 0; i < n; i++)
+     {
+       int dx = p[2 * i] - x;
+       int dy = p[2 * i + 1] - y;
+       double ax = __builtin_abs (dx);
+       double ay = __builtin_abs (dy);
+       double d = ax * ax + ay * ay;
+       if (d < best)
+ 	best = d;
+     }
+   return best;
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/pr62308.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/pr62308.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/pr62308.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/pr62308.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-mbig-endian" } */
  
  typedef int __attribute__((vector_size(16))) v4si;
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/pr87305.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/pr87305.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/pr87305.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/pr87305.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-fpermissive -Ofast -mbig-endian -w" } */
  
  int cc;
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_2.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_2.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_2.c	Sun Jul 19 22:32:14 2026
***************
*** 4,21 ****
  #pragma GCC push_options
  #pragma GCC target ("arch=armv8-a")
  
- #pragma GCC push_options
- #pragma GCC target ("arch=armv8-a+tme")
- #ifndef __ARM_FEATURE_TME
- #error "__ARM_FEATURE_TME is not defined but should be!"
- #endif
- 
- #pragma GCC pop_options
- 
- #ifdef __ARM_FEATURE_TME
- #error "__ARM_FEATURE_TME is defined but should not be!"
- #endif
- 
  /* Test Armv8.6-A features.  */
  
  #ifdef __ARM_FEATURE_MATMUL_INT8
--- 4,9 ----
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_7.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_7.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_7.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_7.c	Sun Jul 19 22:32:14 2026
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-O3" } */
+ /* { dg-final { check-function-bodies "**" "" } } */
+ 
+ #include <arm_neon.h>
+ 
+ /* We should fold to the highpart builtin when the multiplying the highpart of a
+    128b vector with a uniform vector. Also the uniform vector should be loaded
+    as a single wider vector duplicate load (ld1r) using the lower half for the
+    lowpart builtin and the full vector duplicate for the highpart builtin.
+ 
+    Use vdup_n_u8 to create an 8x8 splat vector.  */
+ 
+ /*
+ ** foo:
+ **	...
+ **	ld1r	{v([0-9]+).16b}, \[x([0-9]+)\]
+ **	...
+ **	umull2	v([0-9]+).8h, v([0-9]+).16b, v([0-9]+).16b
+ **	...
+ */
+ uint16x8_t foo(uint8_t *a, uint8_t *b) {
+     const uint8x8_t uniform_vec = vdup_n_u8(*a);
+     const uint8x16_t hipart_vec = vld1q_u8(b);
+     return vmull_u8(vget_high_u8(hipart_vec), uniform_vec);
+ }
+ 
+ /* { dg-final { scan-assembler-not {\tdup\tv} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_2.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_2.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_2.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O2 -mbig-endian" } */
  
  /* To avoid needing big-endian header files.  */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_4.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_4.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_4.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_4.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O2 -mbig-endian" } */
  
  /* To avoid needing big-endian header files.  */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_6.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_6.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_6.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_6.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O2 -mbig-endian" } */
  
  /* To avoid needing big-endian header files.  */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_lane_9.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_lane_9.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_lane_9.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_lane_9.c	Sun Jul 19 22:32:14 2026
***************
*** 1,3 ****
--- 1,4 ----
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O2 -mbig-endian" } */
  
  #pragma GCC aarch64 "arm_sve.h"
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_bf16.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_bf16.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_bf16.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_bf16.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target lp64 } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f16.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f16.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f16.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f16.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target lp64 } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f32.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f32.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f32.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f32.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target lp64 } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f64.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f64.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f64.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_f64.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target lp64 } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_mf8.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_mf8.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_mf8.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_mf8.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target lp64 } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s16.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s16.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s16.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s16.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target lp64 } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s32.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s32.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s32.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s32.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target lp64 } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s64.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s64.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s64.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s64.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target lp64 } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s8.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s8.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s8.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_s8.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target lp64 } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u16.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u16.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u16.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u16.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target lp64 } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u32.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u32.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u32.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u32.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target lp64 } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u64.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u64.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u64.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u64.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target lp64 } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u8.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u8.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u8.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_5_be_u8.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target lp64 } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_bf16.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_bf16.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_bf16.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_bf16.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target lp64 } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -fno-cprop-registers -fdisable-rtl-combine -g" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f16.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f16.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f16.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f16.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target lp64 } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -fno-cprop-registers -fdisable-rtl-combine -g" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f32.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f32.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f32.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f32.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target lp64 } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -fno-cprop-registers -fdisable-rtl-combine -g" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f64.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f64.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f64.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_f64.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target lp64 } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -fno-cprop-registers -fdisable-rtl-combine -g" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_mf8.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_mf8.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_mf8.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_mf8.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target lp64 } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -fno-cprop-registers -fdisable-rtl-combine -g" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s16.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s16.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s16.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s16.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target lp64 } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -fno-cprop-registers -fdisable-rtl-combine -g" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s32.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s32.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s32.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s32.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target lp64 } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -fno-cprop-registers -fdisable-rtl-combine -g" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s64.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s64.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s64.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s64.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target lp64 } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -fno-cprop-registers -fdisable-rtl-combine -g" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s8.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s8.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s8.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_s8.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target lp64 } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -fno-cprop-registers -fdisable-rtl-combine -g" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u16.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u16.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u16.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u16.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target lp64 } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -fno-cprop-registers -fdisable-rtl-combine -g" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u32.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u32.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u32.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u32.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target lp64 } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -fno-cprop-registers -fdisable-rtl-combine -g" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u64.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u64.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u64.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u64.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target lp64 } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -fno-cprop-registers -fdisable-rtl-combine -g" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u8.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u8.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u8.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/args_6_be_u8.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target lp64 } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -fno-cprop-registers -fdisable-rtl-combine -g" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_be_nowrap.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_be_nowrap.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_be_nowrap.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_be_nowrap.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-shrink-wrap -fno-stack-clash-protection -g" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_be_wrap.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_be_wrap.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_be_wrap.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_be_wrap.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fshrink-wrap -fno-stack-clash-protection -g" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_2_be_nowrap.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_2_be_nowrap.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_2_be_nowrap.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_2_be_nowrap.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-shrink-wrap -fno-stack-clash-protection -g" } */
  /* { dg-final { check-function-bodies "**" "" "" { target lp64 } } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_2_be_wrap.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_2_be_wrap.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_2_be_wrap.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_2_be_wrap.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fshrink-wrap -fno-stack-clash-protection -g" } */
  /* { dg-final { check-function-bodies "**" "" "" { target lp64 } } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_4_be.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_4_be.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_4_be.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_4_be.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
  /* { dg-final { check-function-bodies "**" "" "" { target lp64 } } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_5_be.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_5_be.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_5_be.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_5_be.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -mbig-endian -fno-stack-clash-protection -g" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pr88847.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pr88847.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/pr88847.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/pr88847.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do assemble { target aarch64_asm_sve_ok } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-additional-options "-O0 -msve-vector-bits=256 -mbig-endian --save-temps" } */
  
  typedef struct _b {
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/revb_2.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/revb_2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/revb_2.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/revb_2.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do assemble { target aarch64_asm_sve_ok } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -msve-vector-bits=256 --save-temps -mbig-endian" } */
  
  #include "revb_1.c"
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/revh_2.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/revh_2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/revh_2.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/revh_2.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do assemble { target aarch64_asm_sve_ok } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -msve-vector-bits=256 --save-temps -mbig-endian" } */
  
  #include "revh_1.c"
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/revhw_2.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/revhw_2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/revhw_2.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/revhw_2.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do assemble { target aarch64_asm_sve_ok } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -msve-vector-bits=2048 -mbig-endian --save-temps" } */
  /* { dg-final { check-function-bodies "**" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/revw_2.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/revw_2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/revw_2.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/revw_2.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do assemble { target aarch64_asm_sve_ok } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -msve-vector-bits=256 --save-temps -mbig-endian" } */
  
  #include "revw_1.c"
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/struct_move_1.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/struct_move_1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/struct_move_1.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/struct_move_1.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do assemble { target aarch64_asm_sve_ok } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -msve-vector-bits=256 -mbig-endian --save-temps" } */
  
  typedef char vnx16qi __attribute__((vector_size(32)));
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/struct_move_2.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/struct_move_2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/struct_move_2.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/struct_move_2.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do assemble { target aarch64_asm_sve_ok } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -msve-vector-bits=256 -mbig-endian --save-temps" } */
  
  typedef char vnx16qi __attribute__((vector_size(32)));
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/struct_move_3.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/struct_move_3.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/struct_move_3.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/struct_move_3.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do assemble { target aarch64_asm_sve_ok } } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O -msve-vector-bits=256 -mbig-endian --save-temps" } */
  
  typedef char vnx16qi __attribute__((vector_size(32)));
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/vec_init_4.c gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/vec_init_4.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/aarch64/sve/vec_init_4.c	Sun Jul 12 22:32:14 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/aarch64/sve/vec_init_4.c	Sun Jul 19 22:32:14 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-require-effective-target aarch64_mbig_endian } */
  /* { dg-options "-O2 -mbig-endian" } */
  /* { dg-final { check-function-bodies "**" "" "" } } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/alpha/frame-pointer-save-1.c gcc-17-20260719/gcc/testsuite/gcc.target/alpha/frame-pointer-save-1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/alpha/frame-pointer-save-1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/alpha/frame-pointer-save-1.c	Sun Jul 19 22:32:14 2026
***************
*** 0 ****
--- 1,37 ----
+ /* $15 is call-saved, and a function that needs a frame pointer clobbers it.
+    The VLA lives in a static helper that is inlined into the caller, so the
+    caller acquires dynamic stack allocation without frame_pointer_needed
+    being known when IRA runs; LRA only decides a frame pointer is needed
+    later, while marking the elimination not possible.  The prologue must
+    still save $15 -- the epilogue restores it unconditionally, and used to
+    read it back from the return address slot.  */
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ #include <string.h>
+ 
+ extern void use (const char *, unsigned);
+ extern void sink (char);
+ extern unsigned Indent;
+ 
+ static void
+ ind (const char *s_, unsigned n)
+ {
+   char a[n + 1];
+ 
+   memcpy (a, s_, n + 1);
+   for (unsigned i = 0; i < Indent; i++)
+     sink (' ');
+   use (a, n);
+ }
+ 
+ void
+ caller (unsigned name)
+ {
+   ind ("", 0);
+   use ("x", name);
+ }
+ 
+ /* If the frame pointer is set up from the stack pointer, $15 must have been
+    saved first.  */
+ /* { dg-final { scan-assembler "stq\[ \t\]+\\\$15" } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/alpha/tlsgd-dup-1.c gcc-17-20260719/gcc/testsuite/gcc.target/alpha/tlsgd-dup-1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/alpha/tlsgd-dup-1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/alpha/tlsgd-dup-1.c	Sun Jul 19 22:32:14 2026
***************
*** 0 ****
--- 1,22 ----
+ /* Verify that a TLS sequence insn and its paired call are not duplicated by
+    the pre-RA passes.  Each movdi_er_tlsgd carries a sequence number that must
+    stay in 1-1 correspondence with the !lituse_tlsgd of its call; duplicating
+    the loop body used to copy both halves and make the assembler reject the
+    result with "duplicate !tlsgd!1".  */
+ /* { dg-do assemble } */
+ /* { dg-require-effective-target tls_native } */
+ /* { dg-require-effective-target fpic } */
+ /* { dg-options "-O2 -funroll-loops -fno-move-loop-invariants -fPIC -ftls-model=global-dynamic" } */
+ 
+ extern __thread int tv;
+ extern int cond (int);
+ 
+ int
+ f (int n)
+ {
+   int s = 0;
+   for (int i = 0; i < n; i++)
+     if (cond (i))
+       s += tv;
+   return s;
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/arm/pr110268-1.c gcc-17-20260719/gcc/testsuite/gcc.target/arm/pr110268-1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/arm/pr110268-1.c	Sun Jul 12 22:32:15 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/arm/pr110268-1.c	Sun Jul 19 22:32:14 2026
***************
*** 1,6 ****
  /* { dg-do link }  */
! /* { dg-require-effective-target arm_arch_v8_1m_main_link } */ /* Make sure we have suitable multilibs to link successfully.  */
! /* { dg-require-effective-target arm_v8_1m_mve_ok } */
  /* { dg-add-options arm_v8_1m_mve } */
  /* { dg-additional-options "-O2 -flto" } */
  
--- 1,5 ----
  /* { dg-do link }  */
! /* { dg-require-effective-target arm_v8_1m_mve_link } */
  /* { dg-add-options arm_v8_1m_mve } */
  /* { dg-additional-options "-O2 -flto" } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/arm/pr110268-2.c gcc-17-20260719/gcc/testsuite/gcc.target/arm/pr110268-2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/arm/pr110268-2.c	Sun Jul 12 22:32:15 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/arm/pr110268-2.c	Sun Jul 19 22:32:14 2026
***************
*** 1,6 ****
  /* { dg-do link }  */
! /* { dg-require-effective-target arm_arch_v8_1m_main_link } */ /* Make sure we have suitable multilibs to link successfully.  */
! /* { dg-require-effective-target arm_v8_1m_mve_ok } */
  /* { dg-add-options arm_v8_1m_mve } */
  /* { dg-additional-options "-O2 -flto" } */
  
--- 1,5 ----
  /* { dg-do link }  */
! /* { dg-require-effective-target arm_v8_1m_mve_link } */
  /* { dg-add-options arm_v8_1m_mve } */
  /* { dg-additional-options "-O2 -flto" } */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/i386/bmi2-mulx-highpart-1.c gcc-17-20260719/gcc/testsuite/gcc.target/i386/bmi2-mulx-highpart-1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/i386/bmi2-mulx-highpart-1.c	Sun Jul 12 22:32:15 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/i386/bmi2-mulx-highpart-1.c	Sun Jul 19 22:32:14 2026
***************
*** 1,5 ****
  /* { dg-do compile { target { ! ia32 } } } */
! /* { dg-options "-O2 -mbmi2" } */
  /* { dg-final { check-function-bodies "**" "" "" { target *-*-linux* *-*-gnu* } } } */
  
  /* %edx is fixed by the ISA (implicit mulx source) and %edi by the ABI
--- 1,5 ----
  /* { dg-do compile { target { ! ia32 } } } */
! /* { dg-options "-O2 -mbmi2 -mtune=generic" } */
  /* { dg-final { check-function-bodies "**" "" "" { target *-*-linux* *-*-gnu* } } } */
  
  /* %edx is fixed by the ISA (implicit mulx source) and %edi by the ABI
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/i386/mulq-highpart.c gcc-17-20260719/gcc/testsuite/gcc.target/i386/mulq-highpart.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/i386/mulq-highpart.c	Sun Jul 12 22:32:15 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/i386/mulq-highpart.c	Sun Jul 19 22:32:15 2026
***************
*** 1,5 ****
  /* { dg-do compile { target { ! ia32 } } } */
! /* { dg-options "-O2 -mno-bmi2" } */
  /* { dg-final { check-function-bodies "**" "" "" { target *-*-linux* *-*-gnu* } } } */
  
  /* %rax, %rdx and %edi are fixed by the ISA (mulq) and the ABI (first
--- 1,5 ----
  /* { dg-do compile { target { ! ia32 } } } */
! /* { dg-options "-O2 -mno-bmi2 -mtune=generic" } */
  /* { dg-final { check-function-bodies "**" "" "" { target *-*-linux* *-*-gnu* } } } */
  
  /* %rax, %rdx and %edi are fixed by the ISA (mulq) and the ABI (first
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/i386/pr110533-2a.c gcc-17-20260719/gcc/testsuite/gcc.target/i386/pr110533-2a.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/i386/pr110533-2a.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/i386/pr110533-2a.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O0" } */
+ 
+ struct X {
+   int l1;
+   long long l2;
+ };
+ 
+ __attribute__((naked))
+ void fn(struct X a) {
+     asm("ret");
+ }
+ 
+ /* { dg-final { scan-assembler-not "mov" } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/i386/pr110533-2b.c gcc-17-20260719/gcc/testsuite/gcc.target/i386/pr110533-2b.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/i386/pr110533-2b.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/i386/pr110533-2b.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,6 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1" } */
+ 
+ #include "pr110533-2a.c"
+ 
+ /* { dg-final { scan-assembler-not "mov" } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/i386/pr123236-1.c gcc-17-20260719/gcc/testsuite/gcc.target/i386/pr123236-1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/i386/pr123236-1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/i386/pr123236-1.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-options "-O2" } */
+ 
+ int foo(int a) {
+   long long t = a;
+   return t >> 4;
+ }
+ 
+ /* { dg-final { scan-assembler-not "movslq" } } */
+ /* { dg-final { scan-assembler-not "sarq" } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/i386/pr126202-1.c gcc-17-20260719/gcc/testsuite/gcc.target/i386/pr126202-1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/i386/pr126202-1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/i386/pr126202-1.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,29 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=x86-64 -mavx -O2 -fno-strict-overflow" } */
+ 
+ typedef long __m128i __attribute__ ((__vector_size__ (16)));
+ __m128i _mm_store_si128___B;
+ typedef long __m256i __attribute__ ((__vector_size__ (32)));
+ int vpx_quantize_b_avx___trans_tmp_6, vpx_quantize_b_avx_index;
+ void
+ _mm256_store_si256 (__m256i *__P, __m256i __A)
+ {
+   *__P = __A;
+ }
+ void
+ store_tran_low (int *b)
+ {
+   *(__m128i *)b = _mm_store_si128___B;
+ }
+ void
+ vpx_quantize_b_avx (int, long, int, int *qcoeff_ptr, int, short,
+                     short *eob_ptr)
+ {
+   __m256i __trans_tmp_5 = {};
+   if (vpx_quantize_b_avx___trans_tmp_6)
+     _mm256_store_si256 ((__m256i *)(qcoeff_ptr
+ 				    + vpx_quantize_b_avx_index + 8),
+                         __trans_tmp_5);
+   store_tran_low (qcoeff_ptr + vpx_quantize_b_avx_index + 8);
+   *eob_ptr = 0;
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/i386/pr126221-1.c gcc-17-20260719/gcc/testsuite/gcc.target/i386/pr126221-1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/i386/pr126221-1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/i386/pr126221-1.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,14 ----
+ /* PR middle-end/126221 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -march=x86-64-v4" } */
+ 
+ int a[5];
+ int
+ foo (int t)
+ {
+   for (int c = 0; c < 5; c++)
+     if (a[c] && c == 0)
+       return 0;
+   return t;
+ }
+ 
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/i386/pr126221-2.c gcc-17-20260719/gcc/testsuite/gcc.target/i386/pr126221-2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/i386/pr126221-2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/i386/pr126221-2.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,18 ----
+ /* PR middle-end/126221 */
+ /* { dg-do compile { target bitint } } */
+ /* { dg-options "-O3 -fvect-cost-model=unlimited --param=vect-partial-vector-usage=2 -mavx10.1" } */
+ 
+ #if __BITINT_MAXWIDTH__ >= 10986
+ _BitInt(10986) b;
+ char c;
+ 
+ void
+ foo (void)
+ {
+   int t;
+   if (__builtin_mul_overflow (0xffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffffuwb, c, &t))
+     t = 1;
+   b = t;
+ }
+ 
+ #endif
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/i386/pr126275.c gcc-17-20260719/gcc/testsuite/gcc.target/i386/pr126275.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/i386/pr126275.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/i386/pr126275.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,36 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fno-pic -ftree-loop-distribute-patterns -fno-tree-dominator-opts -fno-tree-scev-cprop -march=x86-64" } */
+ 
+ /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
+ /* { dg-final { check-function-bodies "**" "" "" { target { *-*-linux* && lp64 } } {^\t?\.} } } */
+ 
+ /*
+ **func:
+ **.LFB0:
+ **	.cfi_startproc
+ **	movl	\$0, %eax
+ **	.p2align 3
+ **.L2:
+ **	addl	\$1, %eax
+ **	cmpl	\$18, %eax
+ **	jne	.L2
+ **	cltq
+ **	movabsq	\$506381209866536711, %rdx
+ **	movq	%rdx, %xmm0
+ **	punpcklqdq	%xmm0, %xmm0
+ **	movups	%xmm0, buf\(%rax\)
+ **	movb	\$7, buf\+16\(%rax\)
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ extern char buf[512];
+ 
+ void
+ func (void)
+ {
+   int i = 0;
+   for (; i < 18; i++);
+   for (; i < 35; i++) buf[i] = 7;
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/i386/pr126283.c gcc-17-20260719/gcc/testsuite/gcc.target/i386/pr126283.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/i386/pr126283.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/i386/pr126283.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,9 ----
+ /* PR target/126283 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -masm=att" } */
+ /* { dg-additional-options "-mregparm=1" { target ia32 } } */
+ /* { dg-final { scan-assembler-not "movl\[\\t \]+" } } */
+ 
+ int f (short x) {
+   return __builtin_bswap16(x);
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/i386/pr64731.c gcc-17-20260719/gcc/testsuite/gcc.target/i386/pr64731.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/i386/pr64731.c	Sun Jul 12 22:32:15 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/i386/pr64731.c	Sun Jul 19 22:32:15 2026
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-avx" } */
  
  typedef double double4 __attribute__((vector_size(32)));
  
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-avx -mno-stackrealign" } */
  
  typedef double double4 __attribute__((vector_size(32)));
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/i386/pr78799.c gcc-17-20260719/gcc/testsuite/gcc.target/i386/pr78799.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/i386/pr78799.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/i386/pr78799.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile { target { x86_64-*-mingw* } } } */
+ /* { dg-options "-O2" } */
+ 
+ /* PR78799: verify Win64 __int128 return uses an indirect sret-style path:
+    RCX points to the return slot, RDX points to the argument object.  */
+ __attribute__((ms_abi, noinline, noclone))
+ __int128
+ ret_i128 (__int128 a)
+ {
+   return a;
+ }
+ 
+ /* { dg-final { scan-assembler "movdqa\t\\(%rdx\\), %xmm0" } } */
+ /* { dg-final { scan-assembler "movq\t%rcx, %rax" } } */
+ /* { dg-final { scan-assembler "movaps\t%xmm0, \\(%rcx\\)" } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/i386/pr81501-9a.c gcc-17-20260719/gcc/testsuite/gcc.target/i386/pr81501-9a.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/i386/pr81501-9a.c	Sun Jul 12 22:32:15 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/i386/pr81501-9a.c	Sun Jul 19 22:32:15 2026
***************
*** 7,16 ****
  **foo:
  **.LFB[0-9]+:
  **...
- **	vpbroadcastb	%edi, %zmm0
- **...
  **	call	__tls_get_addr@PLT
  **...
  */
  
  #include <immintrin.h>
--- 7,16 ----
  **foo:
  **.LFB[0-9]+:
  **...
  **	call	__tls_get_addr@PLT
  **...
+ **	vpbroadcastb	%(edi|ebx), %zmm\d
+ **...
  */
  
  #include <immintrin.h>
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/i386/pr81501-9b.c gcc-17-20260719/gcc/testsuite/gcc.target/i386/pr81501-9b.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/i386/pr81501-9b.c	Sun Jul 12 22:32:15 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/i386/pr81501-9b.c	Sun Jul 19 22:32:15 2026
***************
*** 8,14 ****
  **foo:
  **.LFB[0-9]+:
  **...
! **	vpbroadcastb	%edi, %zmm0
  **...
  **	lea(l|q)	var@TLSDESC\(%rip\), %(e|r)ax
  **...
--- 8,14 ----
  **foo:
  **.LFB[0-9]+:
  **...
! **	vpbroadcastb	%(edi|r\d+d), %zmm\d
  **...
  **	lea(l|q)	var@TLSDESC\(%rip\), %(e|r)ax
  **...
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/i386/xchg-1.c gcc-17-20260719/gcc/testsuite/gcc.target/i386/xchg-1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/i386/xchg-1.c	Sun Jul 12 22:32:15 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/i386/xchg-1.c	Sun Jul 19 22:32:15 2026
*************** unsigned short good(unsigned short a)
*** 6,9 ****
         return (a >> 8 | a << 8);
  }
  
! /* { dg-final { scan-assembler "rol" } } */
--- 6,9 ----
         return (a >> 8 | a << 8);
  }
  
! /* { dg-final { scan-assembler "\[ \t\]xchg" } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/i386/zext-avx10-1.c gcc-17-20260719/gcc/testsuite/gcc.target/i386/zext-avx10-1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/i386/zext-avx10-1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/i386/zext-avx10-1.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,139 ----
+ /* PR target/126231  */
+ /* { dg-do compile { target { *-*-linux* && lp64 } } } */
+ /* { dg-options "-O2 -march=x86-64-v4 -mavx10.2" } */
+ /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
+ /* { dg-final { check-function-bodies "**" "" "" { target "*-*-*" } {^\t?\.}  } } */
+ 
+ #include <x86intrin.h>
+ 
+ /*
+ **func1:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvttss2usis	%xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func1 (__m128 x)
+ {
+   return _mm_cvtts_ss_epu32 (x);
+ }
+ 
+ /*
+ **func2:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvttss2usis	\{sae\}, %xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func2 (__m128 x)
+ {
+   return _mm_cvtts_roundss_epu32
+     (x, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
+ }
+ 
+ /*
+ **func3:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvttss2sis	%xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func3 (__m128 x)
+ {
+   return (unsigned int) _mm_cvtts_ss_epi32 (x);
+ }
+ 
+ /*
+ **func4:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvttss2sis	\{sae\}, %xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func4 (__m128 x)
+ {
+   return (unsigned int) _mm_cvtts_roundss_epi32
+     (x, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
+ }
+ 
+ /*
+ **func5:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvttsd2usis	%xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func5 (__m128d x)
+ {
+   return _mm_cvtts_sd_epu32 (x);
+ }
+ 
+ /*
+ **func6:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvttsd2usis	\{sae\}, %xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func6 (__m128d x)
+ {
+   return _mm_cvtts_roundsd_epu32
+     (x, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
+ }
+ 
+ /*
+ **func7:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvttsd2sis	%xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func7 (__m128d x)
+ {
+   return (unsigned int) _mm_cvtts_sd_epi32 (x);
+ }
+ 
+ /*
+ **func8:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvttsd2sis	\{sae\}, %xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func8 (__m128d x)
+ {
+   return (unsigned int) _mm_cvtts_roundsd_epi32
+     (x, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/i386/zext-avx512f-1.c gcc-17-20260719/gcc/testsuite/gcc.target/i386/zext-avx512f-1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/i386/zext-avx512f-1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/i386/zext-avx512f-1.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,241 ----
+ /* PR target/126231  */
+ /* { dg-do compile { target { *-*-linux* && lp64 } } } */
+ /* { dg-options "-O2 -march=x86-64-v4" } */
+ /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
+ /* { dg-final { check-function-bodies "**" "" "" { target "*-*-*" } {^\t?\.}  } } */
+ 
+ #include <x86intrin.h>
+ 
+ /*
+ **func1:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvttss2sil	%xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func1 (__m128 x)
+ {
+   return (unsigned int) _mm_cvttss_i32 (x);
+ }
+ 
+ /*
+ **func2:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvttss2sil	\{sae\}, %xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func2 (__m128 x)
+ {
+   return (unsigned int) _mm_cvtt_roundss_i32
+     (x, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
+ }
+ 
+ /*
+ **func3:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvtss2usi	%xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func3 (__m128 x)
+ {
+   return (unsigned int) _mm_cvtss_u32 (x);
+ }
+ 
+ /*
+ **func4:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvttss2usi	%xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func4 (__m128 x)
+ {
+   return (unsigned int) _mm_cvttss_u32 (x);
+ }
+ 
+ /*
+ **func5:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvttss2usi	\{sae\}, %xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func5 (__m128 x)
+ {
+   return (unsigned int) _mm_cvtt_roundss_u32 
+     (x, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
+ }
+ 
+ /*
+ **func6:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvttsd2usi	%xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func6 (__m128d x)
+ {
+   return (unsigned int) _mm_cvttsd_u32 (x);
+ }
+ 
+ /*
+ **func7:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvttsd2usi	\{sae\}, %xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func7 (__m128d x)
+ {
+   return (unsigned int) _mm_cvtt_roundsd_u32 
+     (x, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
+ }
+ 
+ /*
+ **func8:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvtsd2usi	%xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func8 (__m128d x)
+ {
+   return (unsigned int) _mm_cvtsd_u32 (x);
+ }
+ 
+ /*
+ **func9:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvtsd2usi	\{rn-sae\}, %xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func9 (__m128d x)
+ {
+   return (unsigned int) _mm_cvt_roundsd_u32 
+     (x, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
+ }
+ 
+ 
+ /*
+ **func10:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvtsd2sil	\{rn-sae\}, %xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func10 (__m128d x)
+ {
+   return (unsigned int) _mm_cvt_roundsd_si32
+     (x, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
+ }
+ 
+ /*
+ **func11:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvtsd2sil	\{rn-sae\}, %xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func11 (__m128d x)
+ {
+   return (unsigned int) _mm_cvt_roundsd_i32
+     (x, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
+ }
+ 
+ /*
+ **func12:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvtss2usi	\{rn-sae\}, %xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func12 (__m128 x)
+ {
+   return (unsigned int) _mm_cvt_roundss_u32 
+     (x, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
+ }
+ 
+ /*
+ **func13:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvtss2sil	\{rn-sae\}, %xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func13 (__m128 x)
+ {
+   return (unsigned int) _mm_cvt_roundss_si32
+     (x, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
+ }
+ 
+ /*
+ **func14:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvtss2sil	\{rn-sae\}, %xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func14 (__m128 x)
+ {
+   return (unsigned int) _mm_cvt_roundss_i32
+     (x, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/i386/zext-avx512fp16-1.c gcc-17-20260719/gcc/testsuite/gcc.target/i386/zext-avx512fp16-1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/i386/zext-avx512fp16-1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/i386/zext-avx512fp16-1.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,139 ----
+ /* PR target/126231  */
+ /* { dg-do compile { target { *-*-linux* && lp64 } } } */
+ /* { dg-options "-O2 -march=x86-64-v4 -mavx512fp16" } */
+ /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
+ /* { dg-final { check-function-bodies "**" "" "" { target "*-*-*" } {^\t?\.}  } } */
+ 
+ #include <x86intrin.h>
+ 
+ /*
+ **func1:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvtsh2si	%xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func1 (__m128h x)
+ {
+   return (unsigned int) _mm_cvtsh_i32 (x);
+ }
+ 
+ /*
+ **func2:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvtsh2usi	%xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func2 (__m128h x)
+ {
+   return _mm_cvtsh_u32 (x);
+ }
+ 
+ /*
+ **func3:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvttsh2si	%xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func3 (__m128h x)
+ {
+   return (unsigned int) _mm_cvttsh_i32 (x);
+ }
+ 
+ /*
+ **func4:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvttsh2usi	%xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func4 (__m128h x)
+ {
+   return _mm_cvttsh_u32 (x);
+ }
+ 
+ /*
+ **func5:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvtsh2usi	\{rn-sae\}, %xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func5 (__m128h x)
+ {
+   return _mm_cvt_roundsh_u32
+     (x, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
+ }
+ 
+ /*
+ **func6:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvtsh2si	\{rn-sae\}, %xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func6 (__m128h x)
+ {
+   return (unsigned int) _mm_cvt_roundsh_i32
+     (x, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
+ }
+ 
+ /*
+ **func7:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvttsh2usi	\{sae\}, %xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func7 (__m128h x)
+ {
+   return _mm_cvtt_roundsh_u32
+     (x, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
+ }
+ 
+ /*
+ **func8:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	vcvttsh2si	\{sae\}, %xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func8 (__m128h x)
+ {
+   return (unsigned int) _mm_cvtt_roundsh_i32
+     (x, _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC);
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/i386/zext-sse-1.c gcc-17-20260719/gcc/testsuite/gcc.target/i386/zext-sse-1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/i386/zext-sse-1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/i386/zext-sse-1.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,103 ----
+ /* PR target/126231  */
+ /* { dg-do compile { target { *-*-linux* && lp64 } } } */
+ /* { dg-options "-O2 -march=x86-64" } */
+ /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
+ /* { dg-final { check-function-bodies "**" "" "" { target "*-*-*" } {^\t?\.}  } } */
+ 
+ #include <emmintrin.h>
+ 
+ /*
+ **func1:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	cvttss2sil	%xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func1 (float x)
+ {
+   return (unsigned int) x;
+ }
+ 
+ /*
+ **func2:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	cvttsd2sil	%xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func2 (double x)
+ {
+   return (unsigned int) x;
+ }
+ 
+ /*
+ **func3:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	cvttss2sil	%xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func3 (__m128 x)
+ {
+   return (unsigned int) _mm_cvttss_si32 (x);
+ }
+ 
+ /*
+ **func4:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	cvtss2sil	%xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func4 (__m128 x)
+ {
+   return (unsigned int) _mm_cvtss_si32 (x);
+ }
+ 
+ /*
+ **func5:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	cvttsd2sil	%xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func5 (__m128d x)
+ {
+   return (unsigned int) _mm_cvttsd_si32 (x);
+ }
+ 
+ /*
+ **func6:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	cvtsd2sil	%xmm0, %eax
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ unsigned long long
+ func6 (__m128d x)
+ {
+   return (unsigned int) _mm_cvtsd_si32 (x);
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/i386/zext-sse-2.c gcc-17-20260719/gcc/testsuite/gcc.target/i386/zext-sse-2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/i386/zext-sse-2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/i386/zext-sse-2.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,68 ----
+ /* PR target/126231  */
+ /* { dg-do compile { target { *-*-linux* && lp64 } } } */
+ /* { dg-options "-O2 -march=x86-64" } */
+ /* Keep labels and directives ('.cfi_startproc', '.cfi_endproc').  */
+ /* { dg-final { check-function-bodies "**" "" "" { target "*-*-*" } {^\t?\.}  } } */
+ 
+ struct foo
+ {
+   int i;
+   int j;
+   int k;
+ };
+ 
+ struct bar1
+ {
+   double x;
+   double y;
+   double z;
+ };
+ 
+ struct bar2
+ {
+   float x;
+   float y;
+   float z;
+ };
+ 
+ /*
+ **func1:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	cvttsd2sil	16\(%rdi\), %ecx
+ **	movupd	\(%rdi\), %xmm1
+ **	cvttpd2dq	%xmm1, %xmm0
+ **	movq	%xmm0, %rax
+ **	movq	%rcx, %rdx
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ struct foo
+ func1 (struct bar1 *x)
+ { 
+   return (struct foo) { x->x, x->y, x->z };
+ }
+ 
+ /*
+ **func2:
+ **.LFB[0-9]+:
+ **	.cfi_startproc
+ **	cvttss2sil	8\(%rdi\), %eax
+ **	movq	\(%rdi\), %xmm0
+ **	cvttps2dq	%xmm0, %xmm0
+ **	movq	%xmm0, %rsi
+ **	movq	%rax, %rdi
+ **	movq	%rsi, %rax
+ **	movq	%rdi, %rdx
+ **	ret
+ **	.cfi_endproc
+ **...
+ */
+ 
+ struct foo
+ func2 (struct bar2 *x)
+ { 
+   return (struct foo) { x->x, x->y, x->z };
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/loongarch/vector/lsx/pr126200.c gcc-17-20260719/gcc/testsuite/gcc.target/loongarch/vector/lsx/pr126200.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/loongarch/vector/lsx/pr126200.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/loongarch/vector/lsx/pr126200.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do assemble } */
+ /* { dg-options "-O2 -mlsx" } */
+ 
+ typedef signed char v16i8 __attribute__ ((vector_size (16), aligned (16)));
+ 
+ v16i8
+ lsx_convert_utf16_to_utf8 (v16i8 in)
+ {
+   v16i8 x = __builtin_lsx_vshuf4i_b (in, 0b10110001);
+   return __builtin_lsx_vpickev_b (x, x);
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/mips/mxu-compile-no.c gcc-17-20260719/gcc/testsuite/gcc.target/mips/mxu-compile-no.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/mips/mxu-compile-no.c	Sun Jul 12 22:32:15 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/mips/mxu-compile-no.c	Thu Jan  1 00:00:00 1970
***************
*** 1,8 ****
- /* { dg-do compile } */
- /* { dg-additional-options "-mno-mxu" } */
- 
- int
- main (void)
- {
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/mips/mxu-compile.c gcc-17-20260719/gcc/testsuite/gcc.target/mips/mxu-compile.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/mips/mxu-compile.c	Sun Jul 12 22:32:15 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/mips/mxu-compile.c	Thu Jan  1 00:00:00 1970
***************
*** 1,8 ****
- /* { dg-do compile } */
- /* { dg-additional-options "-mmxu" } */
- 
- int
- main (void)
- {
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/mips/mxu-driver-no.c gcc-17-20260719/gcc/testsuite/gcc.target/mips/mxu-driver-no.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/mips/mxu-driver-no.c	Sun Jul 12 22:32:15 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/mips/mxu-driver-no.c	Thu Jan  1 00:00:00 1970
***************
*** 1,11 ****
- /* { dg-do assemble } */
- /* { dg-additional-options "-mno-mxu -###" } */
- 
- int
- main (void)
- {
-   return 0;
- }
- 
- /* { dg-message ".*/.*as .* -mno-mxu" "assembler options" { target *-*-* } 0 } */
- /* { dg-purne-output ".*" } */
--- 0 ----
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/mips/mxu-driver.c gcc-17-20260719/gcc/testsuite/gcc.target/mips/mxu-driver.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/mips/mxu-driver.c	Sun Jul 12 22:32:15 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/mips/mxu-driver.c	Thu Jan  1 00:00:00 1970
***************
*** 1,11 ****
- /* { dg-do assemble } */
- /* { dg-additional-options "-mmxu -###" } */
- 
- int
- main (void)
- {
-   return 0;
- }
- 
- /* { dg-message ".*/.*as .* -mmxu" "assembler options" { target *-*-* } 0 } */
- /* { dg-purne-output ".*" } */
--- 0 ----
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/large-frame-indexed-base.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/large-frame-indexed-base.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/large-frame-indexed-base.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/large-frame-indexed-base.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,37 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fno-stack-protector -march=rv64gc_zba -mabi=lp64d" } */
+ 
+ struct item
+ {
+   struct item *a;
+   long b;
+   long c;
+   long d;
+ };
+ 
+ extern void init (struct item **);
+ 
+ static __attribute__ ((always_inline)) inline void
+ update (long *index, struct item **perm, struct item *value, long x)
+ {
+   ++*index;
+   perm[*index]->a = value;
+   perm[*index]->b = x;
+   perm[*index]->c = x < 0 ? -x : x;
+   perm[*index]->d = 0;
+ }
+ 
+ __attribute__ ((noinline, noclone))
+ void
+ large_frame_indexed_loop (long *indices, struct item **values, long count)
+ {
+   struct item *perm[4096];
+ 
+   init (perm);
+   for (long i = 0; i < count; ++i)
+     update (&indices[i], perm, values[i], i);
+ }
+ 
+ /* { dg-final { scan-assembler-times {\tli\t[^\n]+,-32768} 1 } } */
+ /* { dg-final { scan-assembler-times {\tli\t[^\n]+,32768} 1 } } */
+ /* { dg-final { scan-assembler {\tsh3add\t} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/mcpu-xt-c9501fdvt.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/mcpu-xt-c9501fdvt.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/mcpu-xt-c9501fdvt.c	Sun Jul 12 22:32:16 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/mcpu-xt-c9501fdvt.c	Sun Jul 19 22:32:15 2026
***************
*** 3,9 ****
  /* { dg-options "-mcpu=xt-c9501fdvt" { target { rv64 } } } */
  /* XuanTie C950 => rv64imafdcv_zic64b_zicbom_zicbop_zicboz_ziccamoa_ziccif
                 _zicclsm_ziccrse_zicfilp_zicfiss_zicntr_zicond_zicsr_zifencei
! 	       _zihintntl_zihintpause_zihpm_zimop_za64rs_zabha_zacas_zama16b
  	       _zawrs_zfa_zfbfmin_zfh_zfhmin_zca_zcb_zcd_zcmop_zba_zbb_zbc_zbs
  	       _zkr_zkt_zmmul_zvbb_zvbc_zvfbfmin_zvfbfwma_zvfh_zvfhmin_zvkb
  	       _zvkg_zvkn_zvknc_zvkned_zvkng_zvknha_zvknhb_zvksc_zvksed_zvksg
--- 3,9 ----
  /* { dg-options "-mcpu=xt-c9501fdvt" { target { rv64 } } } */
  /* XuanTie C950 => rv64imafdcv_zic64b_zicbom_zicbop_zicboz_ziccamoa_ziccif
                 _zicclsm_ziccrse_zicfilp_zicfiss_zicntr_zicond_zicsr_zifencei
! 	       _zihintntl_zihintpause_zihpm_zimop_za64rs_zabha_zacas
  	       _zawrs_zfa_zfbfmin_zfh_zfhmin_zca_zcb_zcd_zcmop_zba_zbb_zbc_zbs
  	       _zkr_zkt_zmmul_zvbb_zvbc_zvfbfmin_zvfbfwma_zvfh_zvfhmin_zvkb
  	       _zvkg_zvkn_zvknc_zvkned_zvkng_zvknha_zvknhb_zvksc_zvksed_zvksg
***************
*** 45,51 ****
        && defined(__riscv_za64rs)	\
        && defined(__riscv_zabha)		\
        && defined(__riscv_zacas)		\
!       && defined(__riscv_zama16b)	\
        && defined(__riscv_zawrs)		\
        && defined(__riscv_zfa)		\
        && defined(__riscv_zfbfmin)	\
--- 45,51 ----
        && defined(__riscv_za64rs)	\
        && defined(__riscv_zabha)		\
        && defined(__riscv_zacas)		\
!       && !defined(__riscv_zama16b)	\
        && defined(__riscv_zawrs)		\
        && defined(__riscv_zfa)		\
        && defined(__riscv_zfbfmin)	\
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/pr123883-a.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/pr123883-a.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/pr123883-a.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/pr123883-a.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,59 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcb -mabi=lp64d" { target rv64 } } */
+ /* { dg-options "-march=rv32gcb -mabi=ilp32" { target rv32 } } */
+ /* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" "-Os" "-Oz" } } */
+ 
+ #define TEST_STORE_NARROW_SHIFT(TYPE, WTYPE, NAME)               \
+ void                                                             \
+ NAME (TYPE *data, unsigned int lo_bit)                           \
+ {                                                                \
+   WTYPE mask = (((WTYPE) 1UL << 1) - 1) << lo_bit;               \
+   *data = (*data & ~mask) | ((1U << lo_bit) & mask);             \
+ }
+ 
+ #define TEST_RET_NARROW_SHIFT(TYPE, WTYPE, NAME)                 \
+ TYPE                                                             \
+ NAME (TYPE data, unsigned int lo_bit)                            \
+ {                                                                \
+   WTYPE mask = (((WTYPE) 1 << 1) - 1) << lo_bit;                 \
+   return (data & ~mask) | ((1U << lo_bit) & mask);               \
+ }
+ 
+ /* WTYPE = unsigned int */
+ TEST_STORE_NARROW_SHIFT(unsigned char,  unsigned int, store_uc_ui_narrow)
+ TEST_STORE_NARROW_SHIFT(unsigned short, unsigned int, store_us_ui_narrow)
+ 
+ TEST_RET_NARROW_SHIFT(unsigned char,    unsigned int, ret_uc_ui_narrow)
+ TEST_RET_NARROW_SHIFT(unsigned short,   unsigned int, ret_us_ui_narrow)
+ 
+ /* WTYPE = unsigned long */
+ TEST_STORE_NARROW_SHIFT(unsigned char,  unsigned long, store_uc_ul_narrow)
+ TEST_STORE_NARROW_SHIFT(unsigned short, unsigned long, store_us_ul_narrow)
+ TEST_STORE_NARROW_SHIFT(unsigned int,   unsigned long, store_ui_ul_narrow)
+ 
+ TEST_RET_NARROW_SHIFT(unsigned char,    unsigned long, ret_uc_ul_narrow)
+ TEST_RET_NARROW_SHIFT(unsigned short,   unsigned long, ret_us_ul_narrow)
+ TEST_RET_NARROW_SHIFT(unsigned int,     unsigned long, ret_ui_ul_narrow)
+ 
+ /* WTYPE = unsigned long long */
+ TEST_STORE_NARROW_SHIFT(unsigned char,  unsigned long long, store_uc_ull_narrow)
+ TEST_STORE_NARROW_SHIFT(unsigned short, unsigned long long, store_us_ull_narrow)
+ TEST_STORE_NARROW_SHIFT(unsigned int,   unsigned long long, store_ui_ull_narrow)
+ 
+ TEST_RET_NARROW_SHIFT(unsigned char,    unsigned long long, ret_uc_ull_narrow)
+ TEST_RET_NARROW_SHIFT(unsigned short,   unsigned long long, ret_us_ull_narrow)
+ TEST_RET_NARROW_SHIFT(unsigned int,     unsigned long long, ret_ui_ull_narrow)
+ 
+ /* { dg-final { scan-assembler-times "\\tbset\\t" 14 { target rv64 } } } */
+ /* Current remaining missed SI-mode cases.  */
+ /* { dg-final { scan-assembler-times "\\tsllw\\t" 4 { target rv64 } } } */
+ /* { dg-final { scan-assembler-times "\\tbinv\\t" 2 { target rv64 } } } */
+ /* { dg-final { scan-assembler-times "\\tsext.w\\t" 4 { target rv64 } } } */
+ 
+ 
+ /* { dg-final { scan-assembler-times "\\tbset\\t" 16 { target rv32 } } } */
+ /* Testcases with ULL. */
+ /* { dg-final { scan-assembler-times "\\tbinv\\t" 2 { target rv32 } } } */
+ /* { dg-final { scan-assembler-times "\\tand\\t" 8 { target rv32 } } } */
+ /* { dg-final { scan-assembler-times "\\tsrai\\t" 6 { target rv32 } } } */
+ 
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/pr123883-b.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/pr123883-b.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/pr123883-b.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/pr123883-b.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,58 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcb -mabi=lp64d" { target rv64 } } */
+ /* { dg-options "-march=rv32gcb -mabi=ilp32" { target rv32 } } */
+ /* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Og" "-Os" "-Oz" } } */
+ 
+ #define TEST_STORE_NARROW_SHIFT(TYPE, WTYPE, NAME)               \
+ void                                                             \
+ NAME (TYPE *data, unsigned int lo_bit)                           \
+ {                                                                \
+   WTYPE mask = ((1UL << 1) - 1) << lo_bit;                 	  \
+   *data = (*data & ~mask) | (((WTYPE) 1U << lo_bit) & mask);     \
+ }
+ 
+ #define TEST_RET_NARROW_SHIFT(TYPE, WTYPE, NAME)                 \
+ TYPE                                                             \
+ NAME (TYPE data, unsigned int lo_bit)                            \
+ {                                                                \
+   WTYPE mask = ((1 << 1) - 1) << lo_bit;                         \
+   return (data & ~mask) | (((WTYPE)1U << lo_bit) & mask);        \
+ }
+ 
+ /* WTYPE = unsigned int */
+ TEST_STORE_NARROW_SHIFT(unsigned char,  unsigned int, store_uc_ui_narrow)
+ TEST_STORE_NARROW_SHIFT(unsigned short, unsigned int, store_us_ui_narrow)
+ 
+ TEST_RET_NARROW_SHIFT(unsigned char,    unsigned int, ret_uc_ui_narrow)
+ TEST_RET_NARROW_SHIFT(unsigned short,   unsigned int, ret_us_ui_narrow)
+ 
+ /* WTYPE = unsigned long */
+ TEST_STORE_NARROW_SHIFT(unsigned char,  unsigned long, store_uc_ul_narrow)
+ TEST_STORE_NARROW_SHIFT(unsigned short, unsigned long, store_us_ul_narrow)
+ TEST_STORE_NARROW_SHIFT(unsigned int,   unsigned long, store_ui_ul_narrow)
+ 
+ TEST_RET_NARROW_SHIFT(unsigned char,    unsigned long, ret_uc_ul_narrow)
+ TEST_RET_NARROW_SHIFT(unsigned short,   unsigned long, ret_us_ul_narrow)
+ TEST_RET_NARROW_SHIFT(unsigned int,     unsigned long, ret_ui_ul_narrow)
+ 
+ /* WTYPE = unsigned long long */
+ TEST_STORE_NARROW_SHIFT(unsigned char,  unsigned long long, store_uc_ull_narrow)
+ TEST_STORE_NARROW_SHIFT(unsigned short, unsigned long long, store_us_ull_narrow)
+ TEST_STORE_NARROW_SHIFT(unsigned int,   unsigned long long, store_ui_ull_narrow)
+ 
+ TEST_RET_NARROW_SHIFT(unsigned char,    unsigned long long, ret_uc_ull_narrow)
+ TEST_RET_NARROW_SHIFT(unsigned short,   unsigned long long, ret_us_ull_narrow)
+ TEST_RET_NARROW_SHIFT(unsigned int,     unsigned long long, ret_ui_ull_narrow)
+ 
+ /* { dg-final { scan-assembler-times "\\tbset\\t" 16 { target rv64 } } } */
+ /* { dg-final { scan-assembler-not "\\tsllw\\t" { target rv64 } } } */
+ /* { dg-final { scan-assembler-not "\\tbinv\\t" { target rv64 } } } */
+ /* { dg-final { scan-assembler-not "\\txor\\t" { target rv64 } } } */
+ /* { dg-final { scan-assembler-not "\\tand\\t" { target rv64 } } } */
+ 
+ /* { dg-final { scan-assembler-times "\\tbset\\t" 16 { target rv32 } } } */
+ /* Testcases with ULL. */
+ /* { dg-final { scan-assembler-times "\\tand\\t" 7 { target rv32 } } } */
+ /* { dg-final { scan-assembler-times "\\tbclr\\t" 5 { target rv32 } } } */
+ /* { dg-final { scan-assembler-times "\\tsrai\\t" 6 { target rv32 } } } */
+ 
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/pr125731-1.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/pr125731-1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/pr125731-1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/pr125731-1.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,30 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-march=rv64gcbv_zicond -mabi=lp64d -mbranch-cost=4" { target rv64 } } */
+ /* { dg-additional-options "-march=rv32gcbv_zicond -mabi=ilp32 -mbranch-cost=4" { target rv32 } } */
+ /* { dg-skip-if "" { *-*-* } { "-O0" "-O1" "-Os" "-Oz" "-Og" } } */
+ 
+ 
+ 
+ extern long lm, lr;
+ 
+ void
+ test_nez ()
+ {
+   if (lm != 0)
+     lr <<= (1 << 4);
+   lr += lm;
+ }
+ 
+ void
+ test_eqz ()
+ {
+   if (lm == 0)
+     lr >>= (1 << 2);
+   lr += lm;
+ }
+ 
+ /* { dg-final { scan-assembler-not "\tczero.eqz\t" } } */
+ /* { dg-final { scan-assembler-not "\tczero.nez\t" } } */
+ /* { dg-final { scan-assembler-times "\tslli\t" 2 } } */
+ /* { dg-final { scan-assembler-times "\tsll\t" 1 } } */
+ /* { dg-final { scan-assembler-times "\tsra\t" 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-m1.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-m1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-m1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-m1.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv_zvfh -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e16m1,
+   vfloat16m1_t,
+   vint32m2_t,
+   __riscv_vle16_v_f16m1,
+   __riscv_vfwcvt_x_f_v_i32m2,
+   __riscv_vse32_v_i32m2,
+   vfwcvt_x,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-times {vfwcvt\.x\.f\.v\s+v0,v1([^0-9]|$)} 1 } } */
+ /* { dg-final { scan-assembler-times {vfwcvt\.x\.f\.v\s+v2,v3([^0-9]|$)} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-m2.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-m2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-m2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-m2.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv_zvfh -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e16m2,
+   vfloat16m2_t,
+   vint32m4_t,
+   __riscv_vle16_v_f16m2,
+   __riscv_vfwcvt_x_f_v_i32m4,
+   __riscv_vse32_v_i32m4,
+   vfwcvt_x,
+   LOOP_UNARY_BODY_X8)
+ 
+ /* { dg-final { scan-assembler-times {vfwcvt\.x\.f\.v\s+v0,v2([^0-9]|$)} 1 } } */
+ /* { dg-final { scan-assembler-times {vfwcvt\.x\.f\.v\s+v4,v6} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-m4.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-m4.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-m4.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-m4.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv_zvfh -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e16m4,
+   vfloat16m4_t,
+   vint32m8_t,
+   __riscv_vle16_v_f16m4,
+   __riscv_vfwcvt_x_f_v_i32m8,
+   __riscv_vse32_v_i32m8,
+   vfwcvt_x,
+   LOOP_UNARY_BODY_X4)
+ 
+ /* { dg-final { scan-assembler-times {vfwcvt\.x\.f\.v\s+v0,v4} 1 } } */
+ /* { dg-final { scan-assembler-times {vfwcvt\.x\.f\.v\s+v8,v12} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-mf2.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-mf2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-mf2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-mf2.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv_zvfh -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e16m1,
+   vfloat16mf2_t,
+   vint32m1_t,
+   __riscv_vle16_v_f16mf2,
+   __riscv_vfwcvt_x_f_v_i32m1,
+   __riscv_vse32_v_i32m1,
+   vfwcvt_x,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v0,v1([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v2,v3([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v4,v5} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v6,v7} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v8,v9} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v10,v11} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v12,v13} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v14,v15} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v16,v17} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v18,v19} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v20,v21} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v22,v23} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v24,v25} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v26,v27} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v28,v29} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v30,v31} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-mf4.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-mf4.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-mf4.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f16-mf4.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv_zvfh -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e16m1,
+   vfloat16mf4_t,
+   vint32mf2_t,
+   __riscv_vle16_v_f16mf4,
+   __riscv_vfwcvt_x_f_v_i32mf2,
+   __riscv_vse32_v_i32mf2,
+   vfwcvt_x,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v0,v1([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v2,v3([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v4,v5} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v6,v7} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v8,v9} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v10,v11} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v12,v13} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v14,v15} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v16,v17} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v18,v19} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v20,v21} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v22,v23} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v24,v25} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v26,v27} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v28,v29} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v30,v31} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f32-m1.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f32-m1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f32-m1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f32-m1.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e32m1,
+   vfloat32m1_t,
+   vint64m2_t,
+   __riscv_vle32_v_f32m1,
+   __riscv_vfwcvt_x_f_v_i64m2,
+   __riscv_vse64_v_i64m2,
+   vfwcvt_x,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-times {vfwcvt\.x\.f\.v\s+v0,v1([^0-9]|$)} 1 } } */
+ /* { dg-final { scan-assembler-times {vfwcvt\.x\.f\.v\s+v2,v3([^0-9]|$)} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f32-m2.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f32-m2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f32-m2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f32-m2.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e32m2,
+   vfloat32m2_t,
+   vint64m4_t,
+   __riscv_vle32_v_f32m2,
+   __riscv_vfwcvt_x_f_v_i64m4,
+   __riscv_vse64_v_i64m4,
+   vfwcvt_x,
+   LOOP_UNARY_BODY_X8)
+ 
+ /* { dg-final { scan-assembler-times {vfwcvt\.x\.f\.v\s+v0,v2([^0-9]|$)} 1 } } */
+ /* { dg-final { scan-assembler-times {vfwcvt\.x\.f\.v\s+v4,v6} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f32-m4.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f32-m4.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f32-m4.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f32-m4.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e32m4,
+   vfloat32m4_t,
+   vint64m8_t,
+   __riscv_vle32_v_f32m4,
+   __riscv_vfwcvt_x_f_v_i64m8,
+   __riscv_vse64_v_i64m8,
+   vfwcvt_x,
+   LOOP_UNARY_BODY_X4)
+ 
+ /* { dg-final { scan-assembler-times {vfwcvt\.x\.f\.v\s+v0,v4} 1 } } */
+ /* { dg-final { scan-assembler-times {vfwcvt\.x\.f\.v\s+v8,v12} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f32-mf2.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f32-mf2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f32-mf2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_x-f32-mf2.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e32m1,
+   vfloat32mf2_t,
+   vint64m1_t,
+   __riscv_vle32_v_f32mf2,
+   __riscv_vfwcvt_x_f_v_i64m1,
+   __riscv_vse64_v_i64m1,
+   vfwcvt_x,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v0,v1([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v2,v3([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v4,v5} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v6,v7} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v8,v9} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v10,v11} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v12,v13} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v14,v15} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v16,v17} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v18,v19} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v20,v21} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v22,v23} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v24,v25} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v26,v27} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v28,v29} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.x\.f\.v\s+v30,v31} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-m1.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-m1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-m1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-m1.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv_zvfh -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e16m1,
+   vfloat16m1_t,
+   vuint32m2_t,
+   __riscv_vle16_v_f16m1,
+   __riscv_vfwcvt_xu_f_v_u32m2,
+   __riscv_vse32_v_u32m2,
+   vfwcvt_xu,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-times {vfwcvt\.xu\.f\.v\s+v0,v1([^0-9]|$)} 1 } } */
+ /* { dg-final { scan-assembler-times {vfwcvt\.xu\.f\.v\s+v2,v3([^0-9]|$)} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-m2.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-m2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-m2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-m2.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv_zvfh -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e16m2,
+   vfloat16m2_t,
+   vuint32m4_t,
+   __riscv_vle16_v_f16m2,
+   __riscv_vfwcvt_xu_f_v_u32m4,
+   __riscv_vse32_v_u32m4,
+   vfwcvt_xu,
+   LOOP_UNARY_BODY_X8)
+ 
+ /* { dg-final { scan-assembler-times {vfwcvt\.xu\.f\.v\s+v0,v2([^0-9]|$)} 1 } } */
+ /* { dg-final { scan-assembler-times {vfwcvt\.xu\.f\.v\s+v4,v6} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-m4.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-m4.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-m4.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-m4.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv_zvfh -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e16m4,
+   vfloat16m4_t,
+   vuint32m8_t,
+   __riscv_vle16_v_f16m4,
+   __riscv_vfwcvt_xu_f_v_u32m8,
+   __riscv_vse32_v_u32m8,
+   vfwcvt_xu,
+   LOOP_UNARY_BODY_X4)
+ 
+ /* { dg-final { scan-assembler-times {vfwcvt\.xu\.f\.v\s+v0,v4} 1 } } */
+ /* { dg-final { scan-assembler-times {vfwcvt\.xu\.f\.v\s+v8,v12} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-mf2.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-mf2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-mf2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-mf2.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv_zvfh -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e16m1,
+   vfloat16mf2_t,
+   vuint32m1_t,
+   __riscv_vle16_v_f16mf2,
+   __riscv_vfwcvt_xu_f_v_u32m1,
+   __riscv_vse32_v_u32m1,
+   vfwcvt_xu,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v0,v1([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v2,v3([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v4,v5} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v6,v7} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v8,v9} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v10,v11} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v12,v13} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v14,v15} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v16,v17} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v18,v19} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v20,v21} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v22,v23} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v24,v25} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v26,v27} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v28,v29} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v30,v31} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-mf4.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-mf4.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-mf4.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f16-mf4.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv_zvfh -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e16m1,
+   vfloat16mf4_t,
+   vuint32mf2_t,
+   __riscv_vle16_v_f16mf4,
+   __riscv_vfwcvt_xu_f_v_u32mf2,
+   __riscv_vse32_v_u32mf2,
+   vfwcvt_xu,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v0,v1([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v2,v3([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v4,v5} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v6,v7} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v8,v9} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v10,v11} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v12,v13} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v14,v15} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v16,v17} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v18,v19} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v20,v21} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v22,v23} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v24,v25} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v26,v27} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v28,v29} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v30,v31} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f32-m1.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f32-m1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f32-m1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f32-m1.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e32m1,
+   vfloat32m1_t,
+   vuint64m2_t,
+   __riscv_vle32_v_f32m1,
+   __riscv_vfwcvt_xu_f_v_u64m2,
+   __riscv_vse64_v_u64m2,
+   vfwcvt_xu,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-times {vfwcvt\.xu\.f\.v\s+v0,v1([^0-9]|$)} 1 } } */
+ /* { dg-final { scan-assembler-times {vfwcvt\.xu\.f\.v\s+v2,v3([^0-9]|$)} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f32-m2.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f32-m2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f32-m2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f32-m2.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e32m2,
+   vfloat32m2_t,
+   vuint64m4_t,
+   __riscv_vle32_v_f32m2,
+   __riscv_vfwcvt_xu_f_v_u64m4,
+   __riscv_vse64_v_u64m4,
+   vfwcvt_xu,
+   LOOP_UNARY_BODY_X8)
+ 
+ /* { dg-final { scan-assembler-times {vfwcvt\.xu\.f\.v\s+v0,v2([^0-9]|$)} 1 } } */
+ /* { dg-final { scan-assembler-times {vfwcvt\.xu\.f\.v\s+v4,v6} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f32-m4.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f32-m4.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f32-m4.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f32-m4.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e32m4,
+   vfloat32m4_t,
+   vuint64m8_t,
+   __riscv_vle32_v_f32m4,
+   __riscv_vfwcvt_xu_f_v_u64m8,
+   __riscv_vse64_v_u64m8,
+   vfwcvt_xu,
+   LOOP_UNARY_BODY_X4)
+ 
+ /* { dg-final { scan-assembler-times {vfwcvt\.xu\.f\.v\s+v0,v4} 1 } } */
+ /* { dg-final { scan-assembler-times {vfwcvt\.xu\.f\.v\s+v8,v12} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f32-mf2.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f32-mf2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f32-mf2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vfwcvt_xu-f32-mf2.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e32m1,
+   vfloat32mf2_t,
+   vuint64m1_t,
+   __riscv_vle32_v_f32mf2,
+   __riscv_vfwcvt_xu_f_v_u64m1,
+   __riscv_vse64_v_u64m1,
+   vfwcvt_xu,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v0,v1([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v2,v3([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v4,v5} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v6,v7} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v8,v9} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v10,v11} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v12,v13} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v14,v15} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v16,v17} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v18,v19} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v20,v21} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v22,v23} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v24,v25} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v26,v27} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v28,v29} } } */
+ /* { dg-final { scan-assembler-not {vfwcvt\.xu\.f\.v\s+v30,v31} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-m1.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-m1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-m1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-m1.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e8m1,
+   vint8m1_t,
+   vint64m8_t,
+   __riscv_vle8_v_i8m1,
+   __riscv_vsext_vf8_i64m8,
+   __riscv_vse64_v_i64m8,
+   vsext_vf,
+   LOOP_UNARY_BODY_X4)
+ 
+ /* { dg-final { scan-assembler-times {vsext\.vf8\s+v0,v7([^0-9]|$)} 1 } } */
+ /* { dg-final { scan-assembler-times {vsext\.vf8\s+v8,v15} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf2.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf2.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e8m1,
+   vint8mf2_t,
+   vint64m4_t,
+   __riscv_vle8_v_i8mf2,
+   __riscv_vsext_vf8_i64m4,
+   __riscv_vse64_v_i64m4,
+   vsext_vf,
+   LOOP_UNARY_BODY_X8)
+ 
+ /* { dg-final { scan-assembler-not {vsext\.vf8\s+v0,v7([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vsext\.vf8\s+v8,v15} } } */
+ /* { dg-final { scan-assembler-not {vsext\.vf8\s+v16,v23} } } */
+ /* { dg-final { scan-assembler-not {vsext\.vf8\s+v24,v31} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf4.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf4.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf4.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf4.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e8m1,
+   vint8mf4_t,
+   vint64m2_t,
+   __riscv_vle8_v_i8mf4,
+   __riscv_vsext_vf8_i64m2,
+   __riscv_vse64_v_i64m2,
+   vsext_vf,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-not {vsext\.vf8\s+v0,v7([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vsext\.vf8\s+v8,v15} } } */
+ /* { dg-final { scan-assembler-not {vsext\.vf8\s+v16,v23} } } */
+ /* { dg-final { scan-assembler-not {vsext\.vf8\s+v24,v31} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf8.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf8.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf8.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf8.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e8m1,
+   vint8mf8_t,
+   vint64m1_t,
+   __riscv_vle8_v_i8mf8,
+   __riscv_vsext_vf8_i64m1,
+   __riscv_vse64_v_i64m1,
+   vsext_vf,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-not {vsext\.vf8\s+v0,v7([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vsext\.vf8\s+v8,v15} } } */
+ /* { dg-final { scan-assembler-not {vsext\.vf8\s+v16,v23} } } */
+ /* { dg-final { scan-assembler-not {vsext\.vf8\s+v24,v31} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-m1.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-m1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-m1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-m1.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e16m1,
+   vint16m1_t,
+   vint32m2_t,
+   __riscv_vle16_v_i16m1,
+   __riscv_vwcvt_x_x_v_i32m2,
+   __riscv_vse32_v_i32m2,
+   vwcvt,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-times {vwcvt\.x\.x\.v\s+v0,v1([^0-9]|$)} 1 } } */
+ /* { dg-final { scan-assembler-times {vwcvt\.x\.x\.v\s+v2,v3([^0-9]|$)} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-m2.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-m2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-m2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-m2.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e16m2,
+   vint16m2_t,
+   vint32m4_t,
+   __riscv_vle16_v_i16m2,
+   __riscv_vwcvt_x_x_v_i32m4,
+   __riscv_vse32_v_i32m4,
+   vwcvt,
+   LOOP_UNARY_BODY_X8)
+ 
+ /* { dg-final { scan-assembler-times {vwcvt\.x\.x\.v\s+v0,v2([^0-9]|$)} 1 } } */
+ /* { dg-final { scan-assembler-times {vwcvt\.x\.x\.v\s+v4,v6} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-m4.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-m4.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-m4.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-m4.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e16m4,
+   vint16m4_t,
+   vint32m8_t,
+   __riscv_vle16_v_i16m4,
+   __riscv_vwcvt_x_x_v_i32m8,
+   __riscv_vse32_v_i32m8,
+   vwcvt,
+   LOOP_UNARY_BODY_X4)
+ 
+ /* { dg-final { scan-assembler-times {vwcvt\.x\.x\.v\s+v0,v4} 1 } } */
+ /* { dg-final { scan-assembler-times {vwcvt\.x\.x\.v\s+v8,v12} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-mf2.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-mf2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-mf2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-mf2.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e16m1,
+   vint16mf2_t,
+   vint32m1_t,
+   __riscv_vle16_v_i16mf2,
+   __riscv_vwcvt_x_x_v_i32m1,
+   __riscv_vse32_v_i32m1,
+   vwcvt,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v0,v1([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v2,v3([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v4,v5} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v6,v7} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v8,v9} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v10,v11} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v12,v13} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v14,v15} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v16,v17} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v18,v19} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v20,v21} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v22,v23} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v24,v25} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v26,v27} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v28,v29} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v30,v31} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-mf4.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-mf4.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-mf4.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i16-mf4.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e16m1,
+   vint16mf4_t,
+   vint32mf2_t,
+   __riscv_vle16_v_i16mf4,
+   __riscv_vwcvt_x_x_v_i32mf2,
+   __riscv_vse32_v_i32mf2,
+   vwcvt,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v0,v1([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v2,v3([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v4,v5} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v6,v7} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v8,v9} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v10,v11} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v12,v13} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v14,v15} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v16,v17} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v18,v19} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v20,v21} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v22,v23} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v24,v25} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v26,v27} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v28,v29} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v30,v31} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i32-m1.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i32-m1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i32-m1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i32-m1.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e32m1,
+   vint32m1_t,
+   vint64m2_t,
+   __riscv_vle32_v_i32m1,
+   __riscv_vwcvt_x_x_v_i64m2,
+   __riscv_vse64_v_i64m2,
+   vwcvt,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-times {vwcvt\.x\.x\.v\s+v0,v1([^0-9]|$)} 1 } } */
+ /* { dg-final { scan-assembler-times {vwcvt\.x\.x\.v\s+v2,v3([^0-9]|$)} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i32-m2.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i32-m2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i32-m2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i32-m2.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e32m2,
+   vint32m2_t,
+   vint64m4_t,
+   __riscv_vle32_v_i32m2,
+   __riscv_vwcvt_x_x_v_i64m4,
+   __riscv_vse64_v_i64m4,
+   vwcvt,
+   LOOP_UNARY_BODY_X8)
+ 
+ /* { dg-final { scan-assembler-times {vwcvt\.x\.x\.v\s+v0,v2([^0-9]|$)} 1 } } */
+ /* { dg-final { scan-assembler-times {vwcvt\.x\.x\.v\s+v4,v6} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i32-m4.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i32-m4.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i32-m4.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i32-m4.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e32m4,
+   vint32m4_t,
+   vint64m8_t,
+   __riscv_vle32_v_i32m4,
+   __riscv_vwcvt_x_x_v_i64m8,
+   __riscv_vse64_v_i64m8,
+   vwcvt,
+   LOOP_UNARY_BODY_X4)
+ 
+ /* { dg-final { scan-assembler-times {vwcvt\.x\.x\.v\s+v0,v4} 1 } } */
+ /* { dg-final { scan-assembler-times {vwcvt\.x\.x\.v\s+v8,v12} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i32-mf2.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i32-mf2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i32-mf2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i32-mf2.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e32m1,
+   vint32mf2_t,
+   vint64m1_t,
+   __riscv_vle32_v_i32mf2,
+   __riscv_vwcvt_x_x_v_i64m1,
+   __riscv_vse64_v_i64m1,
+   vwcvt,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v0,v1([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v2,v3([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v4,v5} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v6,v7} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v8,v9} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v10,v11} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v12,v13} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v14,v15} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v16,v17} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v18,v19} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v20,v21} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v22,v23} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v24,v25} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v26,v27} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v28,v29} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v30,v31} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-m1.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-m1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-m1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-m1.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e8m1,
+   vint8m1_t,
+   vint16m2_t,
+   __riscv_vle8_v_i8m1,
+   __riscv_vwcvt_x_x_v_i16m2,
+   __riscv_vse16_v_i16m2,
+   vwcvt,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-times {vwcvt\.x\.x\.v\s+v0,v1([^0-9]|$)} 1 } } */
+ /* { dg-final { scan-assembler-times {vwcvt\.x\.x\.v\s+v2,v3([^0-9]|$)} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-m2.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-m2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-m2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-m2.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e8m2,
+   vint8m2_t,
+   vint16m4_t,
+   __riscv_vle8_v_i8m2,
+   __riscv_vwcvt_x_x_v_i16m4,
+   __riscv_vse16_v_i16m4,
+   vwcvt,
+   LOOP_UNARY_BODY_X8)
+ 
+ /* { dg-final { scan-assembler-times {vwcvt\.x\.x\.v\s+v0,v2([^0-9]|$)} 1 } } */
+ /* { dg-final { scan-assembler-times {vwcvt\.x\.x\.v\s+v4,v6} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-m4.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-m4.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-m4.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-m4.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e8m4,
+   vint8m4_t,
+   vint16m8_t,
+   __riscv_vle8_v_i8m4,
+   __riscv_vwcvt_x_x_v_i16m8,
+   __riscv_vse16_v_i16m8,
+   vwcvt,
+   LOOP_UNARY_BODY_X4)
+ 
+ /* { dg-final { scan-assembler-times {vwcvt\.x\.x\.v\s+v0,v4} 1 } } */
+ /* { dg-final { scan-assembler-times {vwcvt\.x\.x\.v\s+v8,v12} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-mf2.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-mf2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-mf2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-mf2.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e8m1,
+   vint8mf2_t,
+   vint16m1_t,
+   __riscv_vle8_v_i8mf2,
+   __riscv_vwcvt_x_x_v_i16m1,
+   __riscv_vse16_v_i16m1,
+   vwcvt,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v0,v1([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v2,v3([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v4,v5} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v6,v7} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v8,v9} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v10,v11} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v12,v13} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v14,v15} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v16,v17} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v18,v19} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v20,v21} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v22,v23} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v24,v25} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v26,v27} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v28,v29} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v30,v31} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-mf4.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-mf4.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-mf4.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-mf4.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e8m1,
+   vint8mf4_t,
+   vint16mf2_t,
+   __riscv_vle8_v_i8mf4,
+   __riscv_vwcvt_x_x_v_i16mf2,
+   __riscv_vse16_v_i16mf2,
+   vwcvt,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v0,v1([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v2,v3([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v4,v5} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v6,v7} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v8,v9} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v10,v11} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v12,v13} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v14,v15} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v16,v17} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v18,v19} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v20,v21} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v22,v23} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v24,v25} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v26,v27} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v28,v29} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v30,v31} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-mf8.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-mf8.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-mf8.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvt-i8-mf8.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e8m1,
+   vint8mf8_t,
+   vint16mf4_t,
+   __riscv_vle8_v_i8mf8,
+   __riscv_vwcvt_x_x_v_i16mf4,
+   __riscv_vse16_v_i16mf4,
+   vwcvt,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v0,v1([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v2,v3([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v4,v5} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v6,v7} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v8,v9} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v10,v11} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v12,v13} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v14,v15} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v16,v17} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v18,v19} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v20,v21} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v22,v23} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v24,v25} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v26,v27} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v28,v29} } } */
+ /* { dg-final { scan-assembler-not {vwcvt\.x\.x\.v\s+v30,v31} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-m1.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-m1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-m1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-m1.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e16m1,
+   vuint16m1_t,
+   vuint32m2_t,
+   __riscv_vle16_v_u16m1,
+   __riscv_vwcvtu_x_x_v_u32m2,
+   __riscv_vse32_v_u32m2,
+   vwcvtu,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-times {vwcvtu\.x\.x\.v\s+v0,v1([^0-9]|$)} 1 } } */
+ /* { dg-final { scan-assembler-times {vwcvtu\.x\.x\.v\s+v2,v3([^0-9]|$)} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-m2.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-m2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-m2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-m2.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e16m2,
+   vuint16m2_t,
+   vuint32m4_t,
+   __riscv_vle16_v_u16m2,
+   __riscv_vwcvtu_x_x_v_u32m4,
+   __riscv_vse32_v_u32m4,
+   vwcvtu,
+   LOOP_UNARY_BODY_X8)
+ 
+ /* { dg-final { scan-assembler-times {vwcvtu\.x\.x\.v\s+v0,v2([^0-9]|$)} 1 } } */
+ /* { dg-final { scan-assembler-times {vwcvtu\.x\.x\.v\s+v4,v6} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-m4.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-m4.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-m4.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-m4.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e16m4,
+   vuint16m4_t,
+   vuint32m8_t,
+   __riscv_vle16_v_u16m4,
+   __riscv_vwcvtu_x_x_v_u32m8,
+   __riscv_vse32_v_u32m8,
+   vwcvtu,
+   LOOP_UNARY_BODY_X4)
+ 
+ /* { dg-final { scan-assembler-times {vwcvtu\.x\.x\.v\s+v0,v4} 1 } } */
+ /* { dg-final { scan-assembler-times {vwcvtu\.x\.x\.v\s+v8,v12} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-mf2.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-mf2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-mf2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-mf2.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e16m1,
+   vuint16mf2_t,
+   vuint32m1_t,
+   __riscv_vle16_v_u16mf2,
+   __riscv_vwcvtu_x_x_v_u32m1,
+   __riscv_vse32_v_u32m1,
+   vwcvtu,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v0,v1([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v2,v3([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v4,v5} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v6,v7} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v8,v9} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v10,v11} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v12,v13} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v14,v15} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v16,v17} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v18,v19} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v20,v21} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v22,v23} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v24,v25} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v26,v27} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v28,v29} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v30,v31} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-mf4.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-mf4.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-mf4.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i16-mf4.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e16m1,
+   vuint16mf4_t,
+   vuint32mf2_t,
+   __riscv_vle16_v_u16mf4,
+   __riscv_vwcvtu_x_x_v_u32mf2,
+   __riscv_vse32_v_u32mf2,
+   vwcvtu,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v0,v1([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v2,v3([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v4,v5} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v6,v7} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v8,v9} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v10,v11} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v12,v13} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v14,v15} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v16,v17} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v18,v19} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v20,v21} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v22,v23} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v24,v25} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v26,v27} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v28,v29} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v30,v31} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i32-m1.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i32-m1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i32-m1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i32-m1.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e32m1,
+   vuint32m1_t,
+   vuint64m2_t,
+   __riscv_vle32_v_u32m1,
+   __riscv_vwcvtu_x_x_v_u64m2,
+   __riscv_vse64_v_u64m2,
+   vwcvtu,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-times {vwcvtu\.x\.x\.v\s+v0,v1([^0-9]|$)} 1 } } */
+ /* { dg-final { scan-assembler-times {vwcvtu\.x\.x\.v\s+v2,v3([^0-9]|$)} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i32-m2.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i32-m2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i32-m2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i32-m2.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e32m2,
+   vuint32m2_t,
+   vuint64m4_t,
+   __riscv_vle32_v_u32m2,
+   __riscv_vwcvtu_x_x_v_u64m4,
+   __riscv_vse64_v_u64m4,
+   vwcvtu,
+   LOOP_UNARY_BODY_X8)
+ 
+ /* { dg-final { scan-assembler-times {vwcvtu\.x\.x\.v\s+v0,v2([^0-9]|$)} 1 } } */
+ /* { dg-final { scan-assembler-times {vwcvtu\.x\.x\.v\s+v4,v6} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i32-m4.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i32-m4.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i32-m4.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i32-m4.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e32m4,
+   vuint32m4_t,
+   vuint64m8_t,
+   __riscv_vle32_v_u32m4,
+   __riscv_vwcvtu_x_x_v_u64m8,
+   __riscv_vse64_v_u64m8,
+   vwcvtu,
+   LOOP_UNARY_BODY_X4)
+ 
+ /* { dg-final { scan-assembler-times {vwcvtu\.x\.x\.v\s+v0,v4} 1 } } */
+ /* { dg-final { scan-assembler-times {vwcvtu\.x\.x\.v\s+v8,v12} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i32-mf2.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i32-mf2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i32-mf2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i32-mf2.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e32m1,
+   vuint32mf2_t,
+   vuint64m1_t,
+   __riscv_vle32_v_u32mf2,
+   __riscv_vwcvtu_x_x_v_u64m1,
+   __riscv_vse64_v_u64m1,
+   vwcvtu,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v0,v1([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v2,v3([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v4,v5} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v6,v7} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v8,v9} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v10,v11} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v12,v13} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v14,v15} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v16,v17} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v18,v19} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v20,v21} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v22,v23} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v24,v25} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v26,v27} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v28,v29} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v30,v31} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-m1.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-m1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-m1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-m1.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e8m1,
+   vuint8m1_t,
+   vuint16m2_t,
+   __riscv_vle8_v_u8m1,
+   __riscv_vwcvtu_x_x_v_u16m2,
+   __riscv_vse16_v_u16m2,
+   vwcvtu,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-times {vwcvtu\.x\.x\.v\s+v0,v1([^0-9]|$)} 1 } } */
+ /* { dg-final { scan-assembler-times {vwcvtu\.x\.x\.v\s+v2,v3([^0-9]|$)} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-m2.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-m2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-m2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-m2.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e8m2,
+   vuint8m2_t,
+   vuint16m4_t,
+   __riscv_vle8_v_u8m2,
+   __riscv_vwcvtu_x_x_v_u16m4,
+   __riscv_vse16_v_u16m4,
+   vwcvtu,
+   LOOP_UNARY_BODY_X8)
+ 
+ /* { dg-final { scan-assembler-times {vwcvtu\.x\.x\.v\s+v0,v2([^0-9]|$)} 1 } } */
+ /* { dg-final { scan-assembler-times {vwcvtu\.x\.x\.v\s+v4,v6} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-m4.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-m4.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-m4.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-m4.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e8m4,
+   vuint8m4_t,
+   vuint16m8_t,
+   __riscv_vle8_v_u8m4,
+   __riscv_vwcvtu_x_x_v_u16m8,
+   __riscv_vse16_v_u16m8,
+   vwcvtu,
+   LOOP_UNARY_BODY_X4)
+ 
+ /* { dg-final { scan-assembler-times {vwcvtu\.x\.x\.v\s+v0,v4} 1 } } */
+ /* { dg-final { scan-assembler-times {vwcvtu\.x\.x\.v\s+v8,v12} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-mf2.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-mf2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-mf2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-mf2.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e8m1,
+   vuint8mf2_t,
+   vuint16m1_t,
+   __riscv_vle8_v_u8mf2,
+   __riscv_vwcvtu_x_x_v_u16m1,
+   __riscv_vse16_v_u16m1,
+   vwcvtu,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v0,v1([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v2,v3([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v4,v5} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v6,v7} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v8,v9} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v10,v11} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v12,v13} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v14,v15} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v16,v17} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v18,v19} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v20,v21} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v22,v23} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v24,v25} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v26,v27} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v28,v29} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v30,v31} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-mf4.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-mf4.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-mf4.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-mf4.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e8m1,
+   vuint8mf4_t,
+   vuint16mf2_t,
+   __riscv_vle8_v_u8mf4,
+   __riscv_vwcvtu_x_x_v_u16mf2,
+   __riscv_vse16_v_u16mf2,
+   vwcvtu,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v0,v1([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v2,v3([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v4,v5} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v6,v7} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v8,v9} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v10,v11} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v12,v13} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v14,v15} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v16,v17} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v18,v19} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v20,v21} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v22,v23} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v24,v25} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v26,v27} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v28,v29} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v30,v31} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-mf8.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-mf8.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-mf8.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwcvtu-i8-mf8.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e8m1,
+   vuint8mf8_t,
+   vuint16mf4_t,
+   __riscv_vle8_v_u8mf8,
+   __riscv_vwcvtu_x_x_v_u16mf4,
+   __riscv_vse16_v_u16mf4,
+   vwcvtu,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v0,v1([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v2,v3([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v4,v5} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v6,v7} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v8,v9} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v10,v11} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v12,v13} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v14,v15} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v16,v17} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v18,v19} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v20,v21} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v22,v23} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v24,v25} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v26,v27} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v28,v29} } } */
+ /* { dg-final { scan-assembler-not {vwcvtu\.x\.x\.v\s+v30,v31} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-m1.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-m1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-m1.c	Sun Jul 12 22:32:16 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-m1.c	Sun Jul 19 22:32:15 2026
*************** DEF_GROUP_OVERLAP_UNARY_0(
*** 13,17 ****
    vzext_vf,
    LOOP_UNARY_BODY_X16)
  
! /* { dg-final { scan-assembler-times {vzext\.vf2\s+v0,v1} 1 } } */
! /* { dg-final { scan-assembler-times {vzext\.vf2\s+v2,v3} 1 } } */
--- 13,17 ----
    vzext_vf,
    LOOP_UNARY_BODY_X16)
  
! /* { dg-final { scan-assembler-times {vzext\.vf2\s+v0,v1([^0-9]|$)} 1 } } */
! /* { dg-final { scan-assembler-times {vzext\.vf2\s+v2,v3([^0-9]|$)} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-m2.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-m2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-m2.c	Sun Jul 12 22:32:16 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-m2.c	Sun Jul 19 22:32:15 2026
*************** DEF_GROUP_OVERLAP_UNARY_0(
*** 13,17 ****
    vzext_vf,
    LOOP_UNARY_BODY_X8)
  
! /* { dg-final { scan-assembler-times {vzext\.vf2\s+v0,v2} 1 } } */
  /* { dg-final { scan-assembler-times {vzext\.vf2\s+v4,v6} 1 } } */
--- 13,17 ----
    vzext_vf,
    LOOP_UNARY_BODY_X8)
  
! /* { dg-final { scan-assembler-times {vzext\.vf2\s+v0,v2([^0-9]|$)} 1 } } */
  /* { dg-final { scan-assembler-times {vzext\.vf2\s+v4,v6} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-mf2.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-mf2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-mf2.c	Sun Jul 12 22:32:16 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-mf2.c	Sun Jul 19 22:32:15 2026
*************** DEF_GROUP_OVERLAP_UNARY_0(
*** 13,20 ****
    vzext_vf,
    LOOP_UNARY_BODY_X16)
  
! /* { dg-final { scan-assembler-not {vzext\.vf2\s+v0,v1} } } */
! /* { dg-final { scan-assembler-not {vzext\.vf2\s+v2,v3} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v4,v5} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v6,v7} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v8,v9} } } */
--- 13,20 ----
    vzext_vf,
    LOOP_UNARY_BODY_X16)
  
! /* { dg-final { scan-assembler-not {vzext\.vf2\s+v0,v1([^0-9]|$)} } } */
! /* { dg-final { scan-assembler-not {vzext\.vf2\s+v2,v3([^0-9]|$)} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v4,v5} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v6,v7} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v8,v9} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-mf4.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-mf4.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-mf4.c	Sun Jul 12 22:32:16 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u16-mf4.c	Sun Jul 19 22:32:15 2026
*************** DEF_GROUP_OVERLAP_UNARY_0(
*** 13,20 ****
    vzext_vf,
    LOOP_UNARY_BODY_X16)
  
! /* { dg-final { scan-assembler-not {vzext\.vf2\s+v0,v1} } } */
! /* { dg-final { scan-assembler-not {vzext\.vf2\s+v2,v3} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v4,v5} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v6,v7} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v8,v9} } } */
--- 13,20 ----
    vzext_vf,
    LOOP_UNARY_BODY_X16)
  
! /* { dg-final { scan-assembler-not {vzext\.vf2\s+v0,v1([^0-9]|$)} } } */
! /* { dg-final { scan-assembler-not {vzext\.vf2\s+v2,v3([^0-9]|$)} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v4,v5} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v6,v7} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v8,v9} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u32-m1.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u32-m1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u32-m1.c	Sun Jul 12 22:32:16 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u32-m1.c	Sun Jul 19 22:32:15 2026
*************** DEF_GROUP_OVERLAP_UNARY_0(
*** 13,17 ****
    vzext_vf,
    LOOP_UNARY_BODY_X16)
  
! /* { dg-final { scan-assembler-times {vzext\.vf2\s+v0,v1} 1 } } */
! /* { dg-final { scan-assembler-times {vzext\.vf2\s+v2,v3} 1 } } */
--- 13,17 ----
    vzext_vf,
    LOOP_UNARY_BODY_X16)
  
! /* { dg-final { scan-assembler-times {vzext\.vf2\s+v0,v1([^0-9]|$)} 1 } } */
! /* { dg-final { scan-assembler-times {vzext\.vf2\s+v2,v3([^0-9]|$)} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u32-mf2.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u32-mf2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u32-mf2.c	Sun Jul 12 22:32:16 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u32-mf2.c	Sun Jul 19 22:32:15 2026
*************** DEF_GROUP_OVERLAP_UNARY_0(
*** 13,20 ****
    vzext_vf,
    LOOP_UNARY_BODY_X16)
  
! /* { dg-final { scan-assembler-not {vzext\.vf2\s+v0,v1} } } */
! /* { dg-final { scan-assembler-not {vzext\.vf2\s+v2,v3} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v4,v5} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v6,v7} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v8,v9} } } */
--- 13,20 ----
    vzext_vf,
    LOOP_UNARY_BODY_X16)
  
! /* { dg-final { scan-assembler-not {vzext\.vf2\s+v0,v1([^0-9]|$)} } } */
! /* { dg-final { scan-assembler-not {vzext\.vf2\s+v2,v3([^0-9]|$)} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v4,v5} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v6,v7} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v8,v9} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-m1.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-m1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-m1.c	Sun Jul 12 22:32:16 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-m1.c	Sun Jul 19 22:32:15 2026
*************** DEF_GROUP_OVERLAP_UNARY_0(
*** 13,17 ****
    vzext_vf,
    LOOP_UNARY_BODY_X16)
  
! /* { dg-final { scan-assembler-times {vzext\.vf2\s+v0,v1} 1 } } */
! /* { dg-final { scan-assembler-times {vzext\.vf2\s+v2,v3} 1 } } */
--- 13,17 ----
    vzext_vf,
    LOOP_UNARY_BODY_X16)
  
! /* { dg-final { scan-assembler-times {vzext\.vf2\s+v0,v1([^0-9]|$)} 1 } } */
! /* { dg-final { scan-assembler-times {vzext\.vf2\s+v2,v3([^0-9]|$)} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-m2.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-m2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-m2.c	Sun Jul 12 22:32:16 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-m2.c	Sun Jul 19 22:32:15 2026
*************** DEF_GROUP_OVERLAP_UNARY_0(
*** 13,17 ****
    vzext_vf,
    LOOP_UNARY_BODY_X8)
  
! /* { dg-final { scan-assembler-times {vzext\.vf2\s+v0,v2} 1 } } */
  /* { dg-final { scan-assembler-times {vzext\.vf2\s+v4,v6} 1 } } */
--- 13,17 ----
    vzext_vf,
    LOOP_UNARY_BODY_X8)
  
! /* { dg-final { scan-assembler-times {vzext\.vf2\s+v0,v2([^0-9]|$)} 1 } } */
  /* { dg-final { scan-assembler-times {vzext\.vf2\s+v4,v6} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-mf2.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-mf2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-mf2.c	Sun Jul 12 22:32:16 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-mf2.c	Sun Jul 19 22:32:15 2026
*************** DEF_GROUP_OVERLAP_UNARY_0(
*** 13,20 ****
    vzext_vf,
    LOOP_UNARY_BODY_X16)
  
! /* { dg-final { scan-assembler-not {vzext\.vf2\s+v0,v1} } } */
! /* { dg-final { scan-assembler-not {vzext\.vf2\s+v2,v3} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v4,v5} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v6,v7} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v8,v9} } } */
--- 13,20 ----
    vzext_vf,
    LOOP_UNARY_BODY_X16)
  
! /* { dg-final { scan-assembler-not {vzext\.vf2\s+v0,v1([^0-9]|$)} } } */
! /* { dg-final { scan-assembler-not {vzext\.vf2\s+v2,v3([^0-9]|$)} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v4,v5} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v6,v7} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v8,v9} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-mf4.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-mf4.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-mf4.c	Sun Jul 12 22:32:16 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-mf4.c	Sun Jul 19 22:32:15 2026
*************** DEF_GROUP_OVERLAP_UNARY_0(
*** 13,20 ****
    vzext_vf,
    LOOP_UNARY_BODY_X16)
  
! /* { dg-final { scan-assembler-not {vzext\.vf2\s+v0,v1} } } */
! /* { dg-final { scan-assembler-not {vzext\.vf2\s+v2,v3} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v4,v5} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v6,v7} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v8,v9} } } */
--- 13,20 ----
    vzext_vf,
    LOOP_UNARY_BODY_X16)
  
! /* { dg-final { scan-assembler-not {vzext\.vf2\s+v0,v1([^0-9]|$)} } } */
! /* { dg-final { scan-assembler-not {vzext\.vf2\s+v2,v3([^0-9]|$)} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v4,v5} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v6,v7} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v8,v9} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-mf8.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-mf8.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-mf8.c	Sun Jul 12 22:32:16 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf2-u8-mf8.c	Sun Jul 19 22:32:15 2026
*************** DEF_GROUP_OVERLAP_UNARY_0(
*** 13,20 ****
    vzext_vf,
    LOOP_UNARY_BODY_X16)
  
! /* { dg-final { scan-assembler-not {vzext\.vf2\s+v0,v1} } } */
! /* { dg-final { scan-assembler-not {vzext\.vf2\s+v2,v3} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v4,v5} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v6,v7} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v8,v9} } } */
--- 13,20 ----
    vzext_vf,
    LOOP_UNARY_BODY_X16)
  
! /* { dg-final { scan-assembler-not {vzext\.vf2\s+v0,v1([^0-9]|$)} } } */
! /* { dg-final { scan-assembler-not {vzext\.vf2\s+v2,v3([^0-9]|$)} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v4,v5} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v6,v7} } } */
  /* { dg-final { scan-assembler-not {vzext\.vf2\s+v8,v9} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf8-u8-m1.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf8-u8-m1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf8-u8-m1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf8-u8-m1.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e8m1,
+   vuint8m1_t,
+   vuint64m8_t,
+   __riscv_vle8_v_u8m1,
+   __riscv_vzext_vf8_u64m8,
+   __riscv_vse64_v_u64m8,
+   vzext_vf,
+   LOOP_UNARY_BODY_X4)
+ 
+ /* { dg-final { scan-assembler-times {vzext\.vf8\s+v0,v7([^0-9]|$)} 1 } } */
+ /* { dg-final { scan-assembler-times {vzext\.vf8\s+v8,v15} 1 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf8-u8-mf2.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf8-u8-mf2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf8-u8-mf2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf8-u8-mf2.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e8m1,
+   vuint8mf2_t,
+   vuint64m4_t,
+   __riscv_vle8_v_u8mf2,
+   __riscv_vzext_vf8_u64m4,
+   __riscv_vse64_v_u64m4,
+   vzext_vf,
+   LOOP_UNARY_BODY_X8)
+ 
+ /* { dg-final { scan-assembler-not {vzext\.vf8\s+v0,v7([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vzext\.vf8\s+v8,v15} } } */
+ /* { dg-final { scan-assembler-not {vzext\.vf8\s+v16,v23} } } */
+ /* { dg-final { scan-assembler-not {vzext\.vf8\s+v24,v31} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf8-u8-mf4.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf8-u8-mf4.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf8-u8-mf4.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf8-u8-mf4.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e8m1,
+   vuint8mf4_t,
+   vuint64m2_t,
+   __riscv_vle8_v_u8mf4,
+   __riscv_vzext_vf8_u64m2,
+   __riscv_vse64_v_u64m2,
+   vzext_vf,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-not {vzext\.vf8\s+v0,v7([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vzext\.vf8\s+v8,v15} } } */
+ /* { dg-final { scan-assembler-not {vzext\.vf8\s+v16,v23} } } */
+ /* { dg-final { scan-assembler-not {vzext\.vf8\s+v24,v31} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf8-u8-mf8.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf8-u8-mf8.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf8-u8-mf8.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vzext_vf8-u8-mf8.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+ 
+ #include "group_overlap.h"
+ 
+ DEF_GROUP_OVERLAP_UNARY_0(
+   __riscv_vsetvlmax_e8m1,
+   vuint8mf8_t,
+   vuint64m1_t,
+   __riscv_vle8_v_u8mf8,
+   __riscv_vzext_vf8_u64m1,
+   __riscv_vse64_v_u64m1,
+   vzext_vf,
+   LOOP_UNARY_BODY_X16)
+ 
+ /* { dg-final { scan-assembler-not {vzext\.vf8\s+v0,v7([^0-9]|$)} } } */
+ /* { dg-final { scan-assembler-not {vzext\.vf8\s+v8,v15} } } */
+ /* { dg-final { scan-assembler-not {vzext\.vf8\s+v16,v23} } } */
+ /* { dg-final { scan-assembler-not {vzext\.vf8\s+v24,v31} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-1.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-1.c	Sun Jul 12 22:32:16 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-1.c	Sun Jul 19 22:32:15 2026
*************** foo (char const *buf, size_t len)
*** 101,104 ****
  /* { dg-final { scan-assembler-not {vmv2r} } } */
  /* { dg-final { scan-assembler-not {vmv4r} } } */
  /* { dg-final { scan-assembler-not {vmv8r} } } */
! /* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */
--- 101,104 ----
  /* { dg-final { scan-assembler-not {vmv2r} } } */
  /* { dg-final { scan-assembler-not {vmv4r} } } */
  /* { dg-final { scan-assembler-not {vmv8r} } } */
! /* { dg-final { scan-assembler-not {csrr} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-13-0.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-13-0.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-13-0.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-13-0.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,104 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d -O3" } */
+ 
+ #include "riscv_vector.h"
+ 
+ double __attribute__ ((noinline))
+ sumation (double sum0, double sum1, double sum2, double sum3, double sum4,
+ 	  double sum5, double sum6, double sum7, double sum8, double sum9,
+ 	  double sum10, double sum11, double sum12, double sum13, double sum14,
+ 	  double sum15)
+ {
+   return sum0 + sum1 + sum2 + sum3 + sum4 + sum5 + sum6 + sum7 + sum8 + sum9
+ 	 + sum10 + sum11 + sum12 + sum13 + sum14 + sum15;
+ }
+ 
+ double
+ foo (char const *buf, size_t len)
+ {
+   double sum = 0;
+   size_t vl = __riscv_vsetvlmax_e8m8 ();
+   size_t step = vl * 4;
+   const char *it = buf, *end = buf + len;
+   for (; it + step <= end;)
+     {
+       vfloat32m1_t v0 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v1 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v2 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v3 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v4 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v5 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v6 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v7 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v8 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v9 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v10 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v11 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v12 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v13 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v14 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v15 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       
+       asm volatile("nop" ::: "memory");
+       vint64m2_t vw0 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v0, vl);
+       vint64m2_t vw1 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v1, vl);
+       vint64m2_t vw2 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v2, vl);
+       vint64m2_t vw3 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v3, vl);
+       vint64m2_t vw4 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v4, vl);
+       vint64m2_t vw5 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v5, vl);
+       vint64m2_t vw6 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v6, vl);
+       vint64m2_t vw7 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v7, vl);
+       vint64m2_t vw8 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v8, vl);
+       vint64m2_t vw9 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v9, vl);
+       vint64m2_t vw10 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v10, vl);
+       vint64m2_t vw11 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v11, vl);
+       vint64m2_t vw12 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v12, vl);
+       vint64m2_t vw13 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v13, vl);
+       vint64m2_t vw14 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v14, vl);
+       vint64m2_t vw15 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v15, vl);
+ 
+       asm volatile("nop" ::: "memory");
+       double sum0 = __riscv_vmv_x_s_i64m2_i64 (vw0);
+       double sum1 = __riscv_vmv_x_s_i64m2_i64 (vw1);
+       double sum2 = __riscv_vmv_x_s_i64m2_i64 (vw2);
+       double sum3 = __riscv_vmv_x_s_i64m2_i64 (vw3);
+       double sum4 = __riscv_vmv_x_s_i64m2_i64 (vw4);
+       double sum5 = __riscv_vmv_x_s_i64m2_i64 (vw5);
+       double sum6 = __riscv_vmv_x_s_i64m2_i64 (vw6);
+       double sum7 = __riscv_vmv_x_s_i64m2_i64 (vw7);
+       double sum8 = __riscv_vmv_x_s_i64m2_i64 (vw8);
+       double sum9 = __riscv_vmv_x_s_i64m2_i64 (vw9);
+       double sum10 = __riscv_vmv_x_s_i64m2_i64 (vw10);
+       double sum11 = __riscv_vmv_x_s_i64m2_i64 (vw11);
+       double sum12 = __riscv_vmv_x_s_i64m2_i64 (vw12);
+       double sum13 = __riscv_vmv_x_s_i64m2_i64 (vw13);
+       double sum14 = __riscv_vmv_x_s_i64m2_i64 (vw14);
+       double sum15 = __riscv_vmv_x_s_i64m2_i64 (vw15);
+ 
+       sum += sumation (sum0, sum1, sum2, sum3, sum4, sum5, sum6, sum7, sum8,
+ 		       sum9, sum10, sum11, sum12, sum13, sum14, sum15);
+     }
+   return sum;
+ }
+ 
+ /* { dg-final { scan-assembler-not {vmv1r} } } */
+ /* { dg-final { scan-assembler-not {vmv2r} } } */
+ /* { dg-final { scan-assembler-not {vmv4r} } } */
+ /* { dg-final { scan-assembler-not {vmv8r} } } */
+ /* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-13-1.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-13-1.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-13-1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-13-1.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,104 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=rv64gcv -mabi=lp64d -O3" } */
+ 
+ #include "riscv_vector.h"
+ 
+ double __attribute__ ((noinline))
+ sumation (double sum0, double sum1, double sum2, double sum3, double sum4,
+ 	  double sum5, double sum6, double sum7, double sum8, double sum9,
+ 	  double sum10, double sum11, double sum12, double sum13, double sum14,
+ 	  double sum15)
+ {
+   return sum0 + sum1 + sum2 + sum3 + sum4 + sum5 + sum6 + sum7 + sum8 + sum9
+ 	 + sum10 + sum11 + sum12 + sum13 + sum14 + sum15;
+ }
+ 
+ double
+ foo2 (char const *buf, size_t len)
+ {
+   double sum = 0;
+   size_t vl = __riscv_vsetvlmax_e8m8 ();
+   size_t step = vl * 4;
+   const char *it = buf, *end = buf + len;
+   for (; it + step <= end;)
+     {
+       vfloat32m1_t v0 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v1 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v2 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v3 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v4 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v5 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v6 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v7 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v8 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v9 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v10 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v11 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v12 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v13 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v14 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       vfloat32m1_t v15 = __riscv_vle32_v_f32m1 ((void *) it, vl);
+       it += vl;
+       
+       asm volatile("nop" ::: "memory");
+       vint64m2_t vw0 = __riscv_vfwcvt_x_f_v_i64m2 (v0, vl);
+       vint64m2_t vw1 = __riscv_vfwcvt_x_f_v_i64m2 (v1, vl);
+       vint64m2_t vw2 = __riscv_vfwcvt_x_f_v_i64m2 (v2, vl);
+       vint64m2_t vw3 = __riscv_vfwcvt_x_f_v_i64m2 (v3, vl);
+       vint64m2_t vw4 = __riscv_vfwcvt_x_f_v_i64m2 (v4, vl);
+       vint64m2_t vw5 = __riscv_vfwcvt_x_f_v_i64m2 (v5, vl);
+       vint64m2_t vw6 = __riscv_vfwcvt_x_f_v_i64m2 (v6, vl);
+       vint64m2_t vw7 = __riscv_vfwcvt_x_f_v_i64m2 (v7, vl);
+       vint64m2_t vw8 = __riscv_vfwcvt_x_f_v_i64m2 (v8, vl);
+       vint64m2_t vw9 = __riscv_vfwcvt_x_f_v_i64m2 (v9, vl);
+       vint64m2_t vw10 = __riscv_vfwcvt_x_f_v_i64m2 (v10, vl);
+       vint64m2_t vw11 = __riscv_vfwcvt_x_f_v_i64m2 (v11, vl);
+       vint64m2_t vw12 = __riscv_vfwcvt_x_f_v_i64m2 (v12, vl);
+       vint64m2_t vw13 = __riscv_vfwcvt_x_f_v_i64m2 (v13, vl);
+       vint64m2_t vw14 = __riscv_vfwcvt_x_f_v_i64m2 (v14, vl);
+       vint64m2_t vw15 = __riscv_vfwcvt_x_f_v_i64m2 (v15, vl);
+ 
+       asm volatile("nop" ::: "memory");
+       double sum0 = __riscv_vmv_x_s_i64m2_i64 (vw0);
+       double sum1 = __riscv_vmv_x_s_i64m2_i64 (vw1);
+       double sum2 = __riscv_vmv_x_s_i64m2_i64 (vw2);
+       double sum3 = __riscv_vmv_x_s_i64m2_i64 (vw3);
+       double sum4 = __riscv_vmv_x_s_i64m2_i64 (vw4);
+       double sum5 = __riscv_vmv_x_s_i64m2_i64 (vw5);
+       double sum6 = __riscv_vmv_x_s_i64m2_i64 (vw6);
+       double sum7 = __riscv_vmv_x_s_i64m2_i64 (vw7);
+       double sum8 = __riscv_vmv_x_s_i64m2_i64 (vw8);
+       double sum9 = __riscv_vmv_x_s_i64m2_i64 (vw9);
+       double sum10 = __riscv_vmv_x_s_i64m2_i64 (vw10);
+       double sum11 = __riscv_vmv_x_s_i64m2_i64 (vw11);
+       double sum12 = __riscv_vmv_x_s_i64m2_i64 (vw12);
+       double sum13 = __riscv_vmv_x_s_i64m2_i64 (vw13);
+       double sum14 = __riscv_vmv_x_s_i64m2_i64 (vw14);
+       double sum15 = __riscv_vmv_x_s_i64m2_i64 (vw15);
+ 
+       sum += sumation (sum0, sum1, sum2, sum3, sum4, sum5, sum6, sum7, sum8,
+ 		       sum9, sum10, sum11, sum12, sum13, sum14, sum15);
+     }
+   return sum;
+ }
+ 
+ /* { dg-final { scan-assembler-not {vmv1r} } } */
+ /* { dg-final { scan-assembler-not {vmv2r} } } */
+ /* { dg-final { scan-assembler-not {vmv4r} } } */
+ /* { dg-final { scan-assembler-not {vmv8r} } } */
+ /* { dg-final { scan-assembler-not {csrr} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-13.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-13.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-13.c	Sun Jul 12 22:32:16 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-13.c	Thu Jan  1 00:00:00 1970
***************
*** 1,188 ****
- /* { dg-do compile } */
- /* { dg-options "-march=rv64gcv -mabi=lp64d -O3" } */
- 
- #include "riscv_vector.h"
- 
- double __attribute__ ((noinline))
- sumation (double sum0, double sum1, double sum2, double sum3, double sum4,
- 	  double sum5, double sum6, double sum7, double sum8, double sum9,
- 	  double sum10, double sum11, double sum12, double sum13, double sum14,
- 	  double sum15)
- {
-   return sum0 + sum1 + sum2 + sum3 + sum4 + sum5 + sum6 + sum7 + sum8 + sum9
- 	 + sum10 + sum11 + sum12 + sum13 + sum14 + sum15;
- }
- 
- double
- foo (char const *buf, size_t len)
- {
-   double sum = 0;
-   size_t vl = __riscv_vsetvlmax_e8m8 ();
-   size_t step = vl * 4;
-   const char *it = buf, *end = buf + len;
-   for (; it + step <= end;)
-     {
-       vfloat32m1_t v0 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v1 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v2 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v3 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v4 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v5 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v6 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v7 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v8 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v9 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v10 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v11 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v12 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v13 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v14 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v15 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       
-       asm volatile("nop" ::: "memory");
-       vint64m2_t vw0 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v0, vl);
-       vint64m2_t vw1 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v1, vl);
-       vint64m2_t vw2 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v2, vl);
-       vint64m2_t vw3 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v3, vl);
-       vint64m2_t vw4 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v4, vl);
-       vint64m2_t vw5 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v5, vl);
-       vint64m2_t vw6 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v6, vl);
-       vint64m2_t vw7 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v7, vl);
-       vint64m2_t vw8 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v8, vl);
-       vint64m2_t vw9 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v9, vl);
-       vint64m2_t vw10 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v10, vl);
-       vint64m2_t vw11 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v11, vl);
-       vint64m2_t vw12 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v12, vl);
-       vint64m2_t vw13 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v13, vl);
-       vint64m2_t vw14 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v14, vl);
-       vint64m2_t vw15 = __riscv_vfwcvt_rtz_x_f_v_i64m2 (v15, vl);
- 
-       asm volatile("nop" ::: "memory");
-       double sum0 = __riscv_vmv_x_s_i64m2_i64 (vw0);
-       double sum1 = __riscv_vmv_x_s_i64m2_i64 (vw1);
-       double sum2 = __riscv_vmv_x_s_i64m2_i64 (vw2);
-       double sum3 = __riscv_vmv_x_s_i64m2_i64 (vw3);
-       double sum4 = __riscv_vmv_x_s_i64m2_i64 (vw4);
-       double sum5 = __riscv_vmv_x_s_i64m2_i64 (vw5);
-       double sum6 = __riscv_vmv_x_s_i64m2_i64 (vw6);
-       double sum7 = __riscv_vmv_x_s_i64m2_i64 (vw7);
-       double sum8 = __riscv_vmv_x_s_i64m2_i64 (vw8);
-       double sum9 = __riscv_vmv_x_s_i64m2_i64 (vw9);
-       double sum10 = __riscv_vmv_x_s_i64m2_i64 (vw10);
-       double sum11 = __riscv_vmv_x_s_i64m2_i64 (vw11);
-       double sum12 = __riscv_vmv_x_s_i64m2_i64 (vw12);
-       double sum13 = __riscv_vmv_x_s_i64m2_i64 (vw13);
-       double sum14 = __riscv_vmv_x_s_i64m2_i64 (vw14);
-       double sum15 = __riscv_vmv_x_s_i64m2_i64 (vw15);
- 
-       sum += sumation (sum0, sum1, sum2, sum3, sum4, sum5, sum6, sum7, sum8,
- 		       sum9, sum10, sum11, sum12, sum13, sum14, sum15);
-     }
-   return sum;
- }
- 
- double
- foo2 (char const *buf, size_t len)
- {
-   double sum = 0;
-   size_t vl = __riscv_vsetvlmax_e8m8 ();
-   size_t step = vl * 4;
-   const char *it = buf, *end = buf + len;
-   for (; it + step <= end;)
-     {
-       vfloat32m1_t v0 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v1 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v2 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v3 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v4 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v5 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v6 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v7 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v8 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v9 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v10 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v11 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v12 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v13 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v14 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       vfloat32m1_t v15 = __riscv_vle32_v_f32m1 ((void *) it, vl);
-       it += vl;
-       
-       asm volatile("nop" ::: "memory");
-       vint64m2_t vw0 = __riscv_vfwcvt_x_f_v_i64m2 (v0, vl);
-       vint64m2_t vw1 = __riscv_vfwcvt_x_f_v_i64m2 (v1, vl);
-       vint64m2_t vw2 = __riscv_vfwcvt_x_f_v_i64m2 (v2, vl);
-       vint64m2_t vw3 = __riscv_vfwcvt_x_f_v_i64m2 (v3, vl);
-       vint64m2_t vw4 = __riscv_vfwcvt_x_f_v_i64m2 (v4, vl);
-       vint64m2_t vw5 = __riscv_vfwcvt_x_f_v_i64m2 (v5, vl);
-       vint64m2_t vw6 = __riscv_vfwcvt_x_f_v_i64m2 (v6, vl);
-       vint64m2_t vw7 = __riscv_vfwcvt_x_f_v_i64m2 (v7, vl);
-       vint64m2_t vw8 = __riscv_vfwcvt_x_f_v_i64m2 (v8, vl);
-       vint64m2_t vw9 = __riscv_vfwcvt_x_f_v_i64m2 (v9, vl);
-       vint64m2_t vw10 = __riscv_vfwcvt_x_f_v_i64m2 (v10, vl);
-       vint64m2_t vw11 = __riscv_vfwcvt_x_f_v_i64m2 (v11, vl);
-       vint64m2_t vw12 = __riscv_vfwcvt_x_f_v_i64m2 (v12, vl);
-       vint64m2_t vw13 = __riscv_vfwcvt_x_f_v_i64m2 (v13, vl);
-       vint64m2_t vw14 = __riscv_vfwcvt_x_f_v_i64m2 (v14, vl);
-       vint64m2_t vw15 = __riscv_vfwcvt_x_f_v_i64m2 (v15, vl);
- 
-       asm volatile("nop" ::: "memory");
-       double sum0 = __riscv_vmv_x_s_i64m2_i64 (vw0);
-       double sum1 = __riscv_vmv_x_s_i64m2_i64 (vw1);
-       double sum2 = __riscv_vmv_x_s_i64m2_i64 (vw2);
-       double sum3 = __riscv_vmv_x_s_i64m2_i64 (vw3);
-       double sum4 = __riscv_vmv_x_s_i64m2_i64 (vw4);
-       double sum5 = __riscv_vmv_x_s_i64m2_i64 (vw5);
-       double sum6 = __riscv_vmv_x_s_i64m2_i64 (vw6);
-       double sum7 = __riscv_vmv_x_s_i64m2_i64 (vw7);
-       double sum8 = __riscv_vmv_x_s_i64m2_i64 (vw8);
-       double sum9 = __riscv_vmv_x_s_i64m2_i64 (vw9);
-       double sum10 = __riscv_vmv_x_s_i64m2_i64 (vw10);
-       double sum11 = __riscv_vmv_x_s_i64m2_i64 (vw11);
-       double sum12 = __riscv_vmv_x_s_i64m2_i64 (vw12);
-       double sum13 = __riscv_vmv_x_s_i64m2_i64 (vw13);
-       double sum14 = __riscv_vmv_x_s_i64m2_i64 (vw14);
-       double sum15 = __riscv_vmv_x_s_i64m2_i64 (vw15);
- 
-       sum += sumation (sum0, sum1, sum2, sum3, sum4, sum5, sum6, sum7, sum8,
- 		       sum9, sum10, sum11, sum12, sum13, sum14, sum15);
-     }
-   return sum;
- }
- 
- /* { dg-final { scan-assembler-not {vmv1r} } } */
- /* { dg-final { scan-assembler-not {vmv2r} } } */
- /* { dg-final { scan-assembler-not {vmv4r} } } */
- /* { dg-final { scan-assembler-not {vmv8r} } } */
- /* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */
--- 0 ----
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-18.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-18.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-18.c	Sun Jul 12 22:32:16 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-18.c	Sun Jul 19 22:32:15 2026
*************** foo (char const *buf, size_t len)
*** 48,51 ****
  /* { dg-final { scan-assembler-not {vmv2r} } } */
  /* { dg-final { scan-assembler-not {vmv4r} } } */
  /* { dg-final { scan-assembler-not {vmv8r} } } */
! /* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */
--- 48,51 ----
  /* { dg-final { scan-assembler-not {vmv2r} } } */
  /* { dg-final { scan-assembler-not {vmv4r} } } */
  /* { dg-final { scan-assembler-not {vmv8r} } } */
! /* { dg-final { scan-assembler-not {csrr} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-2.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-2.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-2.c	Sun Jul 12 22:32:16 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-2.c	Sun Jul 19 22:32:15 2026
*************** foo (char const *buf, size_t len)
*** 65,68 ****
  /* { dg-final { scan-assembler-not {vmv2r} } } */
  /* { dg-final { scan-assembler-not {vmv4r} } } */
  /* { dg-final { scan-assembler-not {vmv8r} } } */
! /* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */
--- 65,68 ----
  /* { dg-final { scan-assembler-not {vmv2r} } } */
  /* { dg-final { scan-assembler-not {vmv4r} } } */
  /* { dg-final { scan-assembler-not {vmv8r} } } */
! /* { dg-final { scan-assembler-not {csrr} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-3.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-3.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-3.c	Sun Jul 12 22:32:16 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-3.c	Sun Jul 19 22:32:15 2026
*************** foo (char const *buf, size_t len)
*** 48,51 ****
  /* { dg-final { scan-assembler-not {vmv2r} } } */
  /* { dg-final { scan-assembler-not {vmv4r} } } */
  /* { dg-final { scan-assembler-not {vmv8r} } } */
! /* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */
--- 48,51 ----
  /* { dg-final { scan-assembler-not {vmv2r} } } */
  /* { dg-final { scan-assembler-not {vmv4r} } } */
  /* { dg-final { scan-assembler-not {vmv8r} } } */
! /* { dg-final { scan-assembler-not {csrr} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-39.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-39.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-39.c	Sun Jul 12 22:32:16 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-39.c	Sun Jul 19 22:32:15 2026
*************** foo2 (void *in, void *out, int n)
*** 155,158 ****
  /* { dg-final { scan-assembler-not {vmv2r} { xfail riscv*-*-* } } } */
  /* { dg-final { scan-assembler-not {vmv4r} } } */
  /* { dg-final { scan-assembler-not {vmv8r} } } */
! /* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */
--- 155,158 ----
  /* { dg-final { scan-assembler-not {vmv2r} { xfail riscv*-*-* } } } */
  /* { dg-final { scan-assembler-not {vmv4r} } } */
  /* { dg-final { scan-assembler-not {vmv8r} } } */
! /* { dg-final { scan-assembler-not {csrr} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-40.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-40.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-40.c	Sun Jul 12 22:32:16 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-40.c	Sun Jul 19 22:32:15 2026
*************** foo2 (void *in, void *out, int n)
*** 91,94 ****
  /* { dg-final { scan-assembler-not {vmv2r} } } */
  /* { dg-final { scan-assembler-not {vmv4r} { xfail riscv*-*-* } } } */
  /* { dg-final { scan-assembler-not {vmv8r} } } */
! /* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */
--- 91,94 ----
  /* { dg-final { scan-assembler-not {vmv2r} } } */
  /* { dg-final { scan-assembler-not {vmv4r} { xfail riscv*-*-* } } } */
  /* { dg-final { scan-assembler-not {vmv8r} } } */
! /* { dg-final { scan-assembler-not {csrr} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-41.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-41.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-41.c	Sun Jul 12 22:32:16 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-41.c	Sun Jul 19 22:32:15 2026
*************** foo2 (void *in, void *out, int n)
*** 59,62 ****
  /* { dg-final { scan-assembler-not {vmv2r} } } */
  /* { dg-final { scan-assembler-not {vmv4r} } } */
  /* { dg-final { scan-assembler-not {vmv8r} { xfail riscv*-*-* } } } */
! /* { dg-final { scan-assembler-not {csrr} { xfail riscv*-*-* } } } */
--- 59,62 ----
  /* { dg-final { scan-assembler-not {vmv2r} } } */
  /* { dg-final { scan-assembler-not {vmv4r} } } */
  /* { dg-final { scan-assembler-not {vmv8r} { xfail riscv*-*-* } } } */
! /* { dg-final { scan-assembler-not {csrr} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/base/sibcall-scalable-frame-indirect.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/base/sibcall-scalable-frame-indirect.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/base/sibcall-scalable-frame-indirect.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/base/sibcall-scalable-frame-indirect.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -march=rv64gcv -mabi=lp64d" } */
+ 
+ #include <riscv_vector.h>
+ 
+ typedef int (*fn_t) (int);
+ 
+ int __attribute__ ((noinline))
+ victim (float *p, int n, fn_t fn)
+ {
+   register fn_t target asm ("t1") = fn;
+ 
+   size_t vl = __riscv_vsetvl_e32m4 (n);
+   volatile vfloat32m4_t v0 = __riscv_vle32_v_f32m4 (p, vl);
+   volatile vfloat32m4_t v1 = __riscv_vle32_v_f32m4 (p + vl, vl);
+   vfloat32m4_t x0 = v0;
+   vfloat32m4_t x1 = v1;
+ 
+   x0 = __riscv_vfadd_vv_f32m4 (x0, x1, vl);
+   __riscv_vse32_v_f32m4 (p, x0, vl);
+   asm volatile ("" : "+r" (target));
+ 
+   return target (n);
+ }
+ 
+ /* { dg-final { scan-assembler {csrr\t[^,]+,vlenb} } } */
+ /* { dg-final { scan-assembler {\tjr\t(t[2-6]|a[0-7])\n} } } */
+ /* { dg-final { scan-assembler-not {\tjr\tt[01]\n} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/base/sibcall-scalable-frame-weak.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/base/sibcall-scalable-frame-weak.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/base/sibcall-scalable-frame-weak.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/base/sibcall-scalable-frame-weak.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,32 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fPIC -march=rv64gcv -mabi=lp64d" } */
+ 
+ #include <riscv_vector.h>
+ 
+ extern int wrap (int (*)(int), int) __attribute__ ((weak));
+ 
+ static int __attribute__ ((noinline))
+ kernel (int x)
+ {
+   return x + 1;
+ }
+ 
+ int __attribute__ ((noinline))
+ victim (float *p, int n)
+ {
+   size_t vl = __riscv_vsetvl_e32m4 (n);
+   volatile vfloat32m4_t v0 = __riscv_vle32_v_f32m4 (p, vl);
+   volatile vfloat32m4_t v1 = __riscv_vle32_v_f32m4 (p + vl, vl);
+   vfloat32m4_t x0 = v0;
+   vfloat32m4_t x1 = v1;
+ 
+   x0 = __riscv_vfadd_vv_f32m4 (x0, x1, vl);
+   __riscv_vse32_v_f32m4 (p, x0, vl);
+ 
+   return wrap (kernel, n);
+ }
+ 
+ /* { dg-final { scan-assembler "wrap" } } */
+ /* { dg-final { scan-assembler {csrr\t[^,]+,vlenb} } } */
+ /* { dg-final { scan-assembler {\tjr\t(t[2-6]|a[0-7])\n} } } */
+ /* { dg-final { scan-assembler-not {\tjr\tt[01]\n} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-15.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-15.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-15.c	Sun Jul 12 22:32:16 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/rvv/vsetvl/vsetvl-15.c	Sun Jul 19 22:32:15 2026
*************** void foo(int32_t *in1, int32_t *in2, int
*** 19,22 ****
  }
  
  /* { dg-final { scan-assembler-times {vsetvli} 2 { target { no-opts "-O0" no-opts "-O1" no-opts "-Os" no-opts "-g" no-opts "-funroll-loops" } } } } */
- /* { dg-final { scan-assembler-times {srli\s+[a-x0-9]+,\s*[a-x0-9]+,\s*4} 1 { target { no-opts "-O0" no-opts "-g" no-opts "-funroll-loops" } } } } */
--- 19,21 ----
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/sibcall-materialize-pseudo.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/sibcall-materialize-pseudo.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/sibcall-materialize-pseudo.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/sibcall-materialize-pseudo.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile { target { rv64 } } } */
+ /* { dg-options "-O2 -fPIC -fdump-rtl-expand" } */
+ 
+ extern int callee_value (int) __attribute__ ((weak));
+ extern void callee_void (int) __attribute__ ((weak));
+ 
+ int
+ caller_value (int x)
+ {
+   return callee_value (x);
+ }
+ 
+ void
+ caller_void (int x)
+ {
+   callee_void (x);
+ }
+ 
+ /* { dg-final { scan-rtl-dump-times {call_insn/j} 2 "expand" } } */
+ /* { dg-final { scan-rtl-dump-not {reg:DI 6 t1} "expand" } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/small-frame-indexed-base.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/small-frame-indexed-base.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/small-frame-indexed-base.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/small-frame-indexed-base.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,35 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fno-stack-protector -march=rv64gc_zba -mabi=lp64d" } */
+ 
+ struct item
+ {
+   struct item *a;
+   long b;
+   long c;
+   long d;
+ };
+ 
+ extern void init (struct item **);
+ 
+ static __attribute__ ((always_inline)) inline void
+ update (long *index, struct item **perm, struct item *value, long x)
+ {
+   ++*index;
+   perm[*index]->a = value;
+   perm[*index]->b = x;
+   perm[*index]->c = x < 0 ? -x : x;
+   perm[*index]->d = 0;
+ }
+ 
+ __attribute__ ((noinline, noclone))
+ void
+ small_frame_indexed_access (long *index, struct item *value, long x)
+ {
+   struct item *perm[64];
+ 
+   init (perm);
+   update (index, perm, value, x);
+ }
+ 
+ /* { dg-final { scan-assembler-not {\tli\t} } } */
+ /* { dg-final { scan-assembler-times {\tsh3add\t} 3 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/smcdeleg-version.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/smcdeleg-version.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/smcdeleg-version.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/smcdeleg-version.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-options "-mriscv-attribute -march=rv64i_smcdeleg1p0 -mabi=lp64" { target { rv64 } } } */
+ /* { dg-options "-mriscv-attribute -march=rv32i_smcdeleg1p0 -mabi=ilp32" { target { rv32 } } } */
+ 
+ #ifndef __riscv_smcdeleg
+ #error "Feature macro for 'smcdeleg' not defined"
+ #endif
+ 
+ int
+ foo (void)
+ {
+   return 0;
+ }
+ 
+ /* { dg-final { scan-assembler ".attribute arch, .*smcdeleg1p0" } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/smctr-version.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/smctr-version.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/smctr-version.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/smctr-version.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-options "-mriscv-attribute -march=rv64i_smctr1p0 -mabi=lp64" { target { rv64 } } } */
+ /* { dg-options "-mriscv-attribute -march=rv32i_smctr1p0 -mabi=ilp32" { target { rv32 } } } */
+ 
+ #ifndef __riscv_smctr
+ #error "Feature macro for 'smctr' not defined"
+ #endif
+ 
+ int
+ foo (void)
+ {
+   return 0;
+ }
+ 
+ /* { dg-final { scan-assembler ".attribute arch, .*smctr1p0" } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/ssccfg-version.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/ssccfg-version.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/ssccfg-version.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/ssccfg-version.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-options "-mriscv-attribute -march=rv64i_ssccfg1p0 -mabi=lp64" { target { rv64 } } } */
+ /* { dg-options "-mriscv-attribute -march=rv32i_ssccfg1p0 -mabi=ilp32" { target { rv32 } } } */
+ 
+ #ifndef __riscv_ssccfg
+ #error "Feature macro for 'ssccfg' not defined"
+ #endif
+ 
+ int
+ foo (void)
+ {
+   return 0;
+ }
+ 
+ /* { dg-final { scan-assembler ".attribute arch, .*ssccfg1p0" } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/ssctr-version.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/ssctr-version.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/ssctr-version.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/ssctr-version.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-options "-mriscv-attribute -march=rv64i_ssctr1p0 -mabi=lp64" { target { rv64 } } } */
+ /* { dg-options "-mriscv-attribute -march=rv32i_ssctr1p0 -mabi=ilp32" { target { rv32 } } } */
+ 
+ #ifndef __riscv_ssctr
+ #error "Feature macro for 'ssctr' not defined"
+ #endif
+ 
+ int
+ foo (void)
+ {
+   return 0;
+ }
+ 
+ /* { dg-final { scan-assembler ".attribute arch, .*ssctr1p0" } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/ssqosid-version.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/ssqosid-version.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/ssqosid-version.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/ssqosid-version.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-options "-mriscv-attribute -march=rv64i_ssqosid1p0 -mabi=lp64" { target { rv64 } } } */
+ /* { dg-options "-mriscv-attribute -march=rv32i_ssqosid1p0 -mabi=ilp32" { target { rv32 } } } */
+ 
+ #ifndef __riscv_ssqosid
+ #error "Feature macro for 'ssqosid' not defined"
+ #endif
+ 
+ int
+ foo (void)
+ {
+   return 0;
+ }
+ 
+ /* { dg-final { scan-assembler ".attribute arch, .*ssqosid1p0" } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/svrsw60t59b-version.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/svrsw60t59b-version.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/svrsw60t59b-version.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/svrsw60t59b-version.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-options "-mriscv-attribute -march=rv64i_svrsw60t59b1p0 -mabi=lp64" { target { rv64 } } } */
+ /* { dg-options "-mriscv-attribute -march=rv32i_svrsw60t59b1p0 -mabi=ilp32" { target { rv32 } } } */
+ 
+ #ifndef __riscv_svrsw60t59b
+ #error "Feature macro for 'svrsw60t59b' not defined"
+ #endif
+ 
+ int
+ foo (void)
+ {
+   return 0;
+ }
+ 
+ /* { dg-final { scan-assembler ".attribute arch, .*svrsw60t59b1p0" } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/tlsdesc_clobber.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/tlsdesc_clobber.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/tlsdesc_clobber.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/tlsdesc_clobber.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,29 ----
+ /* Verify that the TLSDESC resolver only clobbers a0 and t0 while assuming
+    all other registers as preserved per its custom ABI (no vector case),
+    which is different from a normal call.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-require-effective-target tls_native } */
+ /* { dg-options "-O2 -fpic -mtls-dialect=desc -march=rv64gc -mabi=lp64d" } */
+ /* { dg-require-effective-target fpic } */
+ 
+ extern __thread int tls_var;
+ 
+ long
+ test_clobber (long a, long b, long c, long d)
+ {
+   /* a=a0, b=a1, c=a2, d=a3.
+      TLSDESC clobbers a0 and t0 only, so the compiler must save/restore
+      a0 (by stack or mv or whatever), but should not do the same thing
+      for a1-a3 like a normal call.  */
+   tls_var = 1;
+   return a + b + c + d;
+ }
+ 
+ /* The TLSDESC call should be present.  */
+ /* { dg-final { scan-assembler-times {jalr\tt0,} 1 } } */
+ 
+ /* ra/a1-a3 should NOT be moved to s-regs or saved to stack.  */
+ /* { dg-final { scan-assembler-not {mv\ts[0-9]+,a[0-9]+} } } */
+ /* { dg-final { scan-assembler-not {sd\ta[0-9]+,.*\(sp\)} } } */
+ /* { dg-final { scan-assembler-not {sd\tra,.*\(sp\)} } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/tlsdesc_clobber_lra.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/tlsdesc_clobber_lra.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/tlsdesc_clobber_lra.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/tlsdesc_clobber_lra.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,16 ----
+ /* Verify we don't ICE on the following test case.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-require-effective-target tls_native } */
+ /* { dg-options "-O -fpic -mtls-dialect=desc -march=rv64gcv -mabi=lp64d" } */
+ /* { dg-require-effective-target fpic } */
+ 
+ extern __thread int x;
+ extern int bar(int);
+ 
+ int f(int id) {
+   x = id * 1000;
+   bar(0);
+   if (x != id * 1000) return bar(x);
+   return 0;
+ }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/tlsdesc_clobber_v.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/tlsdesc_clobber_v.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/tlsdesc_clobber_v.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/tlsdesc_clobber_v.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,56 ----
+ /* Verify that when the V extension is enabled, the TLSDESC resolver clobbers
+    all vector registers per the psABI.  The compiler must save/restore any
+    live vector registers across the TLSDESC call.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-require-effective-target tls_native } */
+ /* { dg-options "-O2 -fpic -mtls-dialect=desc -march=rv64gcv -mabi=lp64d" } */
+ /* { dg-require-effective-target fpic } */
+ 
+ extern __thread int tls_var;
+ 
+ void
+ test_vector_reg_clobber (void)
+ {
+   __rvv_int32m1_t v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12;
+ 
+   /* Write two v-regs.  */
+   asm volatile ("# def v1" : "=vr"(v1));
+   asm volatile ("# def v2" : "=vr"(v2));
+   asm volatile ("# def v3" : "=vr"(v3));
+   asm volatile ("# def v4" : "=vr"(v4));
+   asm volatile ("# def v5" : "=vr"(v5));
+   asm volatile ("# def v6" : "=vr"(v6));
+   asm volatile ("# def v7" : "=vr"(v7));
+   asm volatile ("# def v8" : "=vr"(v8));
+   asm volatile ("# def v9" : "=vr"(v9));
+   asm volatile ("# def v10" : "=vr"(v10));
+   asm volatile ("# def v11" : "=vr"(v11));
+   asm volatile ("# def v12" : "=vr"(v12));
+ 
+   /* TLSDESC call — clobbers all vector regs.  */
+   asm volatile ("" ::: "memory");  /* Prevent scheduling...  */
+   tls_var = 1;
+   asm volatile ("" ::: "memory");  /* Prevent scheduling...  */
+ 
+   /* Read the two v-regs; their live-range spans across the TLSDESC call,
+      so the compiler must emit vector store/load pairs to preserve them.  */
+   asm volatile ("# use v1" : : "vr"(v1));
+   asm volatile ("# use v2" : : "vr"(v2));
+   asm volatile ("# use v3" : : "vr"(v3));
+   asm volatile ("# use v4" : : "vr"(v4));
+   asm volatile ("# use v5" : : "vr"(v5));
+   asm volatile ("# use v6" : : "vr"(v6));
+   asm volatile ("# use v7" : : "vr"(v7));
+   asm volatile ("# use v8" : : "vr"(v8));
+   asm volatile ("# use v9" : : "vr"(v9));
+   asm volatile ("# use v10" : : "vr"(v10));
+   asm volatile ("# use v11" : : "vr"(v11));
+   asm volatile ("# use v12" : : "vr"(v12));
+ }
+ 
+ /* { dg-final { scan-assembler-times {jalr\tt0,} 1 } } */
+ 
+ /* Vector stores before and loads after the TLSDESC call.  */
+ /* { dg-final { scan-assembler-times {\tvs[0-9]+r\.v\t} 12 } } */
+ /* { dg-final { scan-assembler-times {\tvl[0-9]+re[0-9]+\.v\t} 12 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/tlsdesc_clobber_v_csr.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/tlsdesc_clobber_v_csr.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/tlsdesc_clobber_v_csr.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/tlsdesc_clobber_v_csr.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,39 ----
+ /* Verify that when the V extension is enabled, the TLSDESC resolver clobbers
+    vector CSRs (vl, vtype, vxrm, vxsat) per the psABI.  The compiler must
+    re-emit a vsetvli after the TLSDESC call to recover the vector status. */
+ 
+ /* { dg-do compile } */
+ /* { dg-require-effective-target tls_native } */
+ /* { dg-options "-O2 -fpic -mtls-dialect=desc -march=rv64gcv -mabi=lp64d" } */
+ /* { dg-require-effective-target fpic } */
+ 
+ typedef int v4si __attribute__ ((vector_size (16)));
+ 
+ extern __thread int tls_var;
+ 
+ void
+ test_vector_csr_clobber (v4si *in, v4si *out)
+ {
+   v4si vec;
+ 
+   /* A pair of local load/store whose live-range does not span accross
+      the TLSDESC.  It has a special size format so it needs a vsetvli.  */
+   vec = *in;
+   *out = vec;
+ 
+   /* TLSDESC call — clobbers all vector CSRs including vl/vtype.  */
+   asm volatile ("" ::: "memory");  /* Prevent scheduling...  */
+   tls_var = 1;
+   asm volatile ("" ::: "memory");  /* Prevent scheduling...  */
+ 
+    /* Another pair of local load/store. But since TLSDESC clobbers vl/vtype, we
+      must re-emit a vsetvli here.  */
+   vec = *in;
+   *out = vec;
+ }
+ 
+ /* { dg-final { scan-assembler-times {jalr\tt0,} 1 } } */
+ 
+ /* Two vsetvli: one before each vector segment.  The second is needed because
+    TLSDESC clobbers vl/vtype.  */
+ /* { dg-final { scan-assembler-times {vsetvli|vsetivli} 2 } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/unroll-explicit-attr-cunroll.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/unroll-explicit-attr-cunroll.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/unroll-explicit-attr-cunroll.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/unroll-explicit-attr-cunroll.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-cunroll-details" } */
+ 
+ unsigned short data;
+ 
+ __attribute__ ((optimize ("unroll-loops")))
+ void
+ explicit_attr_cunroll (void)
+ {
+   unsigned char x;
+ 
+   for (unsigned int i = 0; i < 8; ++i)
+     {
+       x = data & 1;
+       data >>= 1;
+       if (x == 1)
+ 	data ^= 0x4;
+       data >>= 1;
+     }
+ }
+ 
+ /* { dg-final { scan-tree-dump "loop with 7 iterations completely unrolled" "cunroll" } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/unroll-small-loop-cunroll.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/unroll-small-loop-cunroll.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/unroll-small-loop-cunroll.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/unroll-small-loop-cunroll.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-cunroll-details" } */
+ 
+ unsigned short data;
+ 
+ void
+ small_loop_cunroll (void)
+ {
+   unsigned char x;
+ 
+   for (unsigned int i = 0; i < 8; ++i)
+     {
+       x = data & 1;
+       data >>= 1;
+       if (x == 1)
+ 	data ^= 0x4;
+       data >>= 1;
+     }
+ }
+ 
+ /* { dg-final { scan-tree-dump "Not unrolling loop \[0-9\]\+: size would grow" "cunroll" } } */
+ /* { dg-final { scan-tree-dump-not "completely unrolled" "cunroll" } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/zi-ext.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/zi-ext.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/zi-ext.c	Sun Jul 12 22:32:16 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/zi-ext.c	Sun Jul 19 22:32:15 2026
***************
*** 1,6 ****
  /* { dg-do compile { target { ! riscv_abi_e } } } */
! /* { dg-options "-march=rv64gc_zic64b_ziccamoa_ziccif_zicclsm_ziccrse" { target { rv64 } } } */
! /* { dg-options "-march=rv32gc_zic64b_ziccamoa_ziccif_zicclsm_ziccrse" { target { rv32 } } } */
  
  #ifndef __riscv_zic64b
  #error "Feature macro for 'zic64b' not defined"
--- 1,6 ----
  /* { dg-do compile { target { ! riscv_abi_e } } } */
! /* { dg-options "-march=rv64gc_zic64b_ziccamoa_ziccid_ziccif_zicclsm_ziccrse" { target { rv64 } } } */
! /* { dg-options "-march=rv32gc_zic64b_ziccamoa_ziccid_ziccif_zicclsm_ziccrse" { target { rv32 } } } */
  
  #ifndef __riscv_zic64b
  #error "Feature macro for 'zic64b' not defined"
***************
*** 10,15 ****
--- 10,19 ----
  #error "Feature macro for 'ziccamoa' not defined"
  #endif
  
+ #ifndef __riscv_ziccid
+ #error "Feature macro for 'ziccid' not defined"
+ #endif
+ 
  #ifndef __riscv_ziccif
  #error "Feature macro for 'ziccif' not defined"
  #endif
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/ziccamoc-version.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/ziccamoc-version.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/ziccamoc-version.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/ziccamoc-version.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-options "-mriscv-attribute -march=rv64i_ziccamoc1p0 -mabi=lp64" { target { rv64 } } } */
+ /* { dg-options "-mriscv-attribute -march=rv32i_ziccamoc1p0 -mabi=ilp32" { target { rv32 } } } */
+ 
+ #ifndef __riscv_ziccamoc
+ #error "Feature macro for 'ziccamoc' not defined"
+ #endif
+ 
+ int
+ foo (void)
+ {
+   return 0;
+ }
+ 
+ /* { dg-final { scan-assembler ".attribute arch, .*ziccamoc1p0" } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/ziccid-version.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/ziccid-version.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/ziccid-version.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/ziccid-version.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile { target { ! riscv_abi_e } } } */
+ /* { dg-options "-mriscv-attribute -march=rv64i_ziccid1p0 -mabi=lp64" { target { rv64 } } } */
+ /* { dg-options "-mriscv-attribute -march=rv32i_ziccid1p0 -mabi=ilp32" { target { rv32 } } } */
+ 
+ #ifndef __riscv_ziccid
+ #error "Feature macro for 'ziccid' not defined"
+ #endif
+ 
+ #ifndef __riscv_ziccif
+ #error "Feature macro for 'ziccif' not defined"
+ #endif
+ 
+ int
+ foo (void)
+ {
+   return 0;
+ }
+ 
+ /* { dg-final { scan-assembler ".attribute arch, \"rv64i2p1_ziccid1p0_ziccif1p0\"" { target { rv64 } } } } */
+ /* { dg-final { scan-assembler ".attribute arch, \"rv32i2p1_ziccid1p0_ziccif1p0\"" { target { rv32 } } } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/riscv/ziccid.c gcc-17-20260719/gcc/testsuite/gcc.target/riscv/ziccid.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/riscv/ziccid.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gcc.target/riscv/ziccid.c	Sun Jul 19 22:32:15 2026
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile { target { ! riscv_abi_e } } } */
+ /* { dg-options "-mriscv-attribute -march=rv64i_ziccid -mabi=lp64" { target { rv64 } } } */
+ /* { dg-options "-mriscv-attribute -march=rv32i_ziccid -mabi=ilp32" { target { rv32 } } } */
+ 
+ #ifndef __riscv_ziccid
+ #error "Feature macro for 'ziccid' not defined"
+ #endif
+ 
+ #ifndef __riscv_ziccif
+ #error "Feature macro for 'ziccif' not defined"
+ #endif
+ 
+ int
+ foo (void)
+ {
+   return 0;
+ }
+ 
+ /* { dg-final { scan-assembler ".attribute arch, \"rv64i2p1_ziccid1p0_ziccif1p0\"" { target { rv64 } } } } */
+ /* { dg-final { scan-assembler ".attribute arch, \"rv32i2p1_ziccid1p0_ziccif1p0\"" { target { rv32 } } } } */
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gcc.target/s390/asm-hard-reg-7.c gcc-17-20260719/gcc/testsuite/gcc.target/s390/asm-hard-reg-7.c
*** gcc-17-20260712/gcc/testsuite/gcc.target/s390/asm-hard-reg-7.c	Sun Jul 12 22:32:16 2026
--- gcc-17-20260719/gcc/testsuite/gcc.target/s390/asm-hard-reg-7.c	Sun Jul 19 22:32:15 2026
*************** test (void)
*** 13,34 ****
    long double y;
  
    /* Outputs */
!   __asm__ __volatile__ ("" : "=r" (f0), "=r" (f0f2));
!   __asm__ __volatile__ ("" : "=r" (f0f2), "={f0}" (y));  /* { dg-error "multiple outputs to hard register: %f0" } */
!   __asm__ __volatile__ ("" : "={f0}" (x), "=r" (f0f2));  /* { dg-error "multiple outputs to hard register: %f0" } */
  
!   __asm__ __volatile__ ("" : "=r" (f2), "=r" (f0f2));
    __asm__ __volatile__ ("" : "={f2}" (x), "={f0}" (y));  /* { dg-error "multiple outputs to hard register: %f2" } */
!   __asm__ __volatile__ ("" : "=r" (f2), "={f0}" (y));  /* { dg-error "multiple outputs to hard register: %f2" } */
!   __asm__ __volatile__ ("" : "={f2}" (x), "=r" (f0f2));  /* { dg-error "multiple outputs to hard register: %f2" } */
  
    /* Inputs */
!   __asm__ __volatile__ ("" :: "r" (f0), "r" (f0f2));
!   __asm__ __volatile__ ("" :: "r" (f0f2), "{f0}" (y));  /* { dg-error "multiple inputs to hard register: %f0" } */
!   __asm__ __volatile__ ("" :: "{f0}" (x), "r" (f0f2));  /* { dg-error "multiple inputs to hard register: %f0" } */
  
!   __asm__ __volatile__ ("" :: "r" (f2), "r" (f0f2));
    __asm__ __volatile__ ("" :: "{f2}" (x), "{f0}" (y));  /* { dg-error "multiple inputs to hard register: %f2" } */
!   __asm__ __volatile__ ("" :: "r" (f2), "{f0}" (y));  /* { dg-error "multiple inputs to hard register: %f2" } */
!   __asm__ __volatile__ ("" :: "{f2}" (x), "r" (f0f2));  /* { dg-error "multiple inputs to hard register: %f2" } */
  }
--- 13,34 ----
    long double y;
  
    /* Outputs */
!   __asm__ __volatile__ ("" : "=f" (f0), "=f" (f0f2));
!   __asm__ __volatile__ ("" : "=f" (f0f2), "={f0}" (y));  /* { dg-error "multiple outputs to hard register: %f0" } */
!   __asm__ __volatile__ ("" : "={f0}" (x), "=f" (f0f2));  /* { dg-error "multiple outputs to hard register: %f0" } */
  
!   __asm__ __volatile__ ("" : "=f" (f2), "=f" (f0f2));
    __asm__ __volatile__ ("" : "={f2}" (x), "={f0}" (y));  /* { dg-error "multiple outputs to hard register: %f2" } */
!   __asm__ __volatile__ ("" : "=f" (f2), "={f0}" (y));  /* { dg-error "multiple outputs to hard register: %f2" } */
!   __asm__ __volatile__ ("" : "={f2}" (x), "=f" (f0f2));  /* { dg-error "multiple outputs to hard register: %f2" } */
  
    /* Inputs */
!   __asm__ __volatile__ ("" :: "f" (f0), "f" (f0f2));
!   __asm__ __volatile__ ("" :: "f" (f0f2), "{f0}" (y));  /* { dg-error "multiple inputs to hard register: %f0" } */
!   __asm__ __volatile__ ("" :: "{f0}" (x), "f" (f0f2));  /* { dg-error "multiple inputs to hard register: %f0" } */
  
!   __asm__ __volatile__ ("" :: "f" (f2), "f" (f0f2));
    __asm__ __volatile__ ("" :: "{f2}" (x), "{f0}" (y));  /* { dg-error "multiple inputs to hard register: %f2" } */
!   __asm__ __volatile__ ("" :: "f" (f2), "{f0}" (y));  /* { dg-error "multiple inputs to hard register: %f2" } */
!   __asm__ __volatile__ ("" :: "{f2}" (x), "f" (f0f2));  /* { dg-error "multiple inputs to hard register: %f2" } */
  }
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gfortran.dg/EXformat_5.F90 gcc-17-20260719/gcc/testsuite/gfortran.dg/EXformat_5.F90
*** gcc-17-20260712/gcc/testsuite/gfortran.dg/EXformat_5.F90	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gfortran.dg/EXformat_5.F90	Sun Jul 19 22:32:16 2026
***************
*** 0 ****
--- 1,131 ----
+ ! { dg-do run }
+ ! PR93727 Test hex float for list-directed READ.
+ 
+ program main
+   implicit none
+   call test04
+   call test08
+   call test10
+   call test16
+ 
+ contains
+ 
+ subroutine test04
+   real(4) :: r4, a, b
+   real(4) :: arr(3)
+   complex(4) :: z
+   character(len=64) :: s
+ 
+   ! Round-trip
+   s = ' '
+   write(s,'(EX0.0)') -huge(1.0_4)
+   read(s,*) r4
+   if (r4 /= -huge(1.0_4)) stop 1
+ 
+   s = '0X1.8P+0'                ! = 1.5
+   read(s,*) r4
+   if (r4 /= 1.5_4) stop 2
+ 
+   s = '-0X1.P+0'                ! = -1.0
+   read(s,*) r4
+   if (r4 /= -1.0_4) stop 3
+ 
+   ! Lowercase
+   s = '0x1.8p-1'                ! = 0.75
+   read(s,*) r4
+   if (r4 /= 0.75_4) stop 4
+ 
+   ! Hex digit 'E' is not an exponent.
+   s = '0X1.EP+3'                ! (1 + 14/16) * 8 = 15.0
+   read(s,*) r4
+   if (r4 /= 15.0_4) stop 5
+ 
+   ! Comma-separated list of hex values.
+   s = '0X1P0, 0X1.8P+1'
+   read(s,*) a, b
+   if (a /= 1.0_4 .or. b /= 3.0_4) stop 6
+ 
+   ! Using a repeat count
+   s = '3*0X1P+1'
+   read(s,*) arr
+   if (any(arr /= 2.0_4)) stop 7
+ 
+   ! Complex constant with hex real and imaginary parts.
+   s = '(0X1P0, 0X1.8P+1)'
+   read(s,*) z
+   if (z /= (1.0_4, 3.0_4)) stop 8
+ end subroutine test04
+ 
+ 
+ subroutine test08
+   real(8) :: r8, nx
+   character(len=64) :: s
+   namelist /nl8/ nx
+ 
+   ! Round-trip.
+   s = ' '
+   write(s,'(EX0.0)') -huge(1.0_8)
+   read(s,*) r8
+   if (r8 /= -huge(1.0_8)) stop 10
+ 
+   ! Explicit hex: IEEE 754 representation of 1/3.
+   s = '0X1.5555555555555P-2'
+   read(s,*) r8
+   if (r8 /= 1.0_8 / 3.0_8) stop 11
+ 
+   ! pi, double precision.
+   s = '0X1.921FB54442D18P+1'
+   read(s,*) r8
+   if (abs(r8 - acos(-1.0_8)) > 2.0_8 * epsilon(r8)) stop 12
+ 
+   ! Hex value inside a NAMELIST.
+   nx = -999.0_8
+   s = '&nl8 nx=0X1.8P+3 /'
+   read(s,nml=nl8)
+   if (nx /= 12.0_8) stop 13
+ 
+ end subroutine test08
+ 
+ 
+ #ifdef __GFC_REAL_10__
+ subroutine test10
+   real(10) :: r10
+   character(len=64) :: s
+ 
+   s = ' '
+   write(s,'(EX0.0)') -huge(1.0_10)
+   read(s,*) r10
+   if (r10 /= -huge(1.0_10)) stop 14
+ 
+   s = '0X1.8P+0'
+   read(s,*) r10
+   if (r10 /= 1.5_10) stop 15
+ 
+ end subroutine test10
+ #else
+ subroutine test10
+ end subroutine test10
+ #endif
+ 
+ 
+ #ifdef __GFC_REAL_16__
+ subroutine test16
+   real(16) :: r16
+   character(len=64) :: s
+ 
+   s = ' '
+   write(s,'(EX0.0)') -huge(1.0_16)
+   read(s,*) r16
+   if (r16 /= -huge(1.0_16)) stop 16
+ 
+   s = '0X1.8P+0'
+   read(s,*) r16
+   if (r16 /= 1.5_16) stop 17
+ 
+ end subroutine test16
+ #else
+ subroutine test16
+ end subroutine test16
+ #endif
+ 
+ end program main
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gfortran.dg/coarray/caf.exp gcc-17-20260719/gcc/testsuite/gfortran.dg/coarray/caf.exp
*** gcc-17-20260712/gcc/testsuite/gfortran.dg/coarray/caf.exp	Sun Jul 12 22:32:16 2026
--- gcc-17-20260719/gcc/testsuite/gfortran.dg/coarray/caf.exp	Sun Jul 19 22:32:16 2026
*************** foreach test [lsort [glob -nocomplain $s
*** 125,131 ****
          foreach flags $option_list {
              verbose "Testing $nshort (libcaf_shmem), $flags" 1
              set gfortran_aux_module_flags "-fcoarray=lib $flags -lcaf_shmem"
!             if { [istarget *-*-freebsd*] } {
                  dg-test $test "-fcoarray=lib -pthread $flags -lcaf_shmem" {}
              } else {
                  if { [istarget *-linux*] } {
--- 125,131 ----
          foreach flags $option_list {
              verbose "Testing $nshort (libcaf_shmem), $flags" 1
              set gfortran_aux_module_flags "-fcoarray=lib $flags -lcaf_shmem"
!             if { [istarget *-*-freebsd*] || [istarget *-*-hpux*] } {
                  dg-test $test "-fcoarray=lib -pthread $flags -lcaf_shmem" {}
              } else {
                  if { [istarget *-linux*] } {
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gfortran.dg/gomp/target-device-type-1.f90 gcc-17-20260719/gcc/testsuite/gfortran.dg/gomp/target-device-type-1.f90
*** gcc-17-20260712/gcc/testsuite/gfortran.dg/gomp/target-device-type-1.f90	Sun Jul 12 22:32:16 2026
--- gcc-17-20260719/gcc/testsuite/gfortran.dg/gomp/target-device-type-1.f90	Sun Jul 19 22:32:16 2026
***************
*** 7,13 ****
  !$omp target device_type ( any )
  !$omp end target
  
! !$omp target device_type ( nohost )  ! { dg-message "sorry, unimplemented: only the 'device_type\\(any\\)' is supported" }
  !$omp end target
  
  !$omp target device_type ( host )
--- 7,13 ----
  !$omp target device_type ( any )
  !$omp end target
  
! !$omp target device_type ( nohost )
  !$omp end target
  
  !$omp target device_type ( host )
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gfortran.dg/pr126221.f90 gcc-17-20260719/gcc/testsuite/gfortran.dg/pr126221.f90
*** gcc-17-20260712/gcc/testsuite/gfortran.dg/pr126221.f90	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gfortran.dg/pr126221.f90	Sun Jul 19 22:32:16 2026
***************
*** 0 ****
--- 1,9 ----
+ ! { dg-do compile }
+ ! { dg-options "-O3" }
+ ! { dg-additional-options "-mavx10.1 --param=vect-partial-vector-usage=2" { target { i?86-*-* x86_64-*-* } } }
+ !
+ ! PR middle-end/126221
+ 
+ integer A(5,5)
+ if (any (A(:,5) /= [9, 9, 9, 9, 5])) STOP
+ end
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gfortran.dg/pr126234.f90 gcc-17-20260719/gcc/testsuite/gfortran.dg/pr126234.f90
*** gcc-17-20260712/gcc/testsuite/gfortran.dg/pr126234.f90	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gfortran.dg/pr126234.f90	Sun Jul 19 22:32:16 2026
***************
*** 0 ****
--- 1,26 ----
+ ! { dg-do compile }
+ !
+ ! PR fortran/126234
+ ! Test case derived from the PR example
+ module amod
+   real, parameter :: a1 = 1.0
+ end module amod
+ 
+ module bmod
+   real, parameter :: a1 = 2.0
+ end module bmod
+ 
+ module cmod
+   use amod
+ end module cmod
+ 
+ module mmod
+   use amod
+   use bmod
+ contains
+   subroutine sub (x)
+     use cmod
+     real :: x
+     x = 1.0
+   end subroutine sub
+ end module mmod
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gfortran.dg/warn_undefined_vars_7.f90 gcc-17-20260719/gcc/testsuite/gfortran.dg/warn_undefined_vars_7.f90
*** gcc-17-20260712/gcc/testsuite/gfortran.dg/warn_undefined_vars_7.f90	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gfortran.dg/warn_undefined_vars_7.f90	Sun Jul 19 22:32:16 2026
***************
*** 0 ****
--- 1,30 ----
+ ! { dg-do compile }
+ ! { dg-additional-options "-Wundefined-vars" }
+ 
+ ! Allocatable variables passed to INTENT(OUT) formal arguments can
+ ! only be considered allocated if the formal argument is allocatable.
+ 
+ module m
+   implicit none
+   interface
+      subroutine no_allocation(x)
+        real, dimension(:), intent(out) :: x
+      end subroutine no_allocation
+   end interface
+   interface
+      subroutine allocation(x)
+        real, dimension(:), intent(out), allocatable :: x
+      end subroutine allocation
+   end interface
+ contains
+   subroutine foo
+     real, allocatable :: x(:)
+     call no_allocation(x)
+     print *,x ! { dg-warning "Unallocated variable.*referenced" }
+   end subroutine foo
+   subroutine bar
+     real, allocatable :: x(:)
+     call allocation(x)
+     print *,x
+   end subroutine bar
+ end module m
diff -Nrcpad gcc-17-20260712/gcc/testsuite/gfortran.dg/warn_unused_but_set_variable_4.f90 gcc-17-20260719/gcc/testsuite/gfortran.dg/warn_unused_but_set_variable_4.f90
*** gcc-17-20260712/gcc/testsuite/gfortran.dg/warn_unused_but_set_variable_4.f90	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/gfortran.dg/warn_unused_but_set_variable_4.f90	Sun Jul 19 22:32:16 2026
***************
*** 0 ****
--- 1,21 ----
+ ! { dg-do compile }
+ ! { dg-additional-options "-Wall" }
+ ! PR 126058 - this used to give an ICE.
+ PROGRAM p
+   IMPLICIT NONE
+   TYPE t1
+      INTEGER, ALLOCATABLE :: i(:)
+   END TYPE t1
+   call leak
+ CONTAINS
+   SUBROUTINE s1(e)
+     TYPE(t1), ALLOCATABLE, INTENT(OUT) :: e(:)
+     ALLOCATE( e(1) )
+     ALLOCATE( e(1)%i(2) )
+   END SUBROUTINE s1
+   SUBROUTINE leak
+     TYPE(t1), ALLOCATABLE :: e(:)
+     CALL s1(e) ! { dg-warning "maybe allocated" }
+     CALL s1(e)
+   END SUBROUTINE leak
+ END PROGRAM p
diff -Nrcpad gcc-17-20260712/gcc/testsuite/lib/et-static.def gcc-17-20260719/gcc/testsuite/lib/et-static.def
*** gcc-17-20260712/gcc/testsuite/lib/et-static.def	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/gcc/testsuite/lib/et-static.def	Sun Jul 19 22:32:17 2026
***************
*** 0 ****
--- 1,29 ----
+ # Definitions of static effective targets determined from auto-host.h.
+ 
+ #  Copyright (C) 2026 Free Software Foundation, Inc.
+ #
+ # This program is free software; you can redistribute it and/or modify it
+ # under the terms of the GNU General Public License as published by the
+ # Free Software Foundation; either version 3, or (at your option) any
+ # later version.
+ #
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ # GNU General Public License for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+ # along with this program; see the file COPYING3.  If not see
+ # <http://www.gnu.org/licenses/>.
+ 
+ # Each record consist of 3 lines:
+ #
+ # <effective target>
+ # <MACRO>
+ # <comment> to be emitted as "Return 0 if <comment>, 1 otherwise."
+ 
+ # Keep this sorted alphabetically by effective-target name.  */
+ 
+ ld_at_file
+ HAVE_LD_AT_FILE
+ your linker supports GNU style response files
diff -Nrcpad gcc-17-20260712/gcc/testsuite/lib/lto.exp gcc-17-20260719/gcc/testsuite/lib/lto.exp
*** gcc-17-20260712/gcc/testsuite/lib/lto.exp	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/testsuite/lib/lto.exp	Sun Jul 19 22:32:17 2026
*************** proc lto-link-and-maybe-run { testname o
*** 417,423 ****
      }
  
      # Check for diagnostics specified by directives
!     set comp_output [lto_handle_diagnostics $comp_output $optstr]
  
      # Prune unimportant visibility warnings before checking output.
      set comp_output [lto_prune_warns $comp_output]
--- 417,425 ----
      }
  
      # Check for diagnostics specified by directives
!     if { ! [string equal "incr-link" $optstr] } {
! 	set comp_output [lto_handle_diagnostics $comp_output $optstr]
!     }
  
      # Prune unimportant visibility warnings before checking output.
      set comp_output [lto_prune_warns $comp_output]
*************** proc lto-link-and-maybe-run { testname o
*** 432,438 ****
  
      # Return if we only needed to link.
      if { ![string compare "link" $compile_type] \
!         || ![string compare "ar-link" $compile_type] } {
  	return
      }
  
--- 434,441 ----
  
      # Return if we only needed to link.
      if { ![string compare "link" $compile_type] \
!         || ![string compare "ar-link" $compile_type] \
!         || ![string compare "incr-link" $compile_type] } {
  	return
      }
  
*************** proc lto-get-options-main { src } {
*** 507,512 ****
--- 510,516 ----
  
      # dg-options sets a variable called dg-extra-tool-flags.
      set dg-extra-tool-flags ""
+     set lto-additional-tool-flags ""
  
      # dg-options sets a variable called tool_flags.
      set tool_flags ""
*************** proc lto-get-options-main { src } {
*** 541,546 ****
--- 545,562 ----
  		unresolved "$src: $errmsg for \"$op\""
  		return
  	    }
+ 	} elseif { [string match "dg-lto-additional-options" $cmd] } {
+ 	    set op [lreplace $op 0 0 "dg-additional-options"]
+ 	    set saved-dg-extra-tool-flags ${dg-extra-tool-flags}
+ 	    set dg-extra-tool-flags ${lto-additional-tool-flags}
+ 	    set status [catch "$op" errmsg]
+ 	    if { $status != 0 } {
+ 		perror "src: $errmsg for \"$op\"\n"
+ 		unresolved "$src: $errmsg for \"$op\""
+ 		return
+ 	    }
+ 	    set lto-additional-tool-flags ${dg-extra-tool-flags}
+ 	    set dg-extra-tool-flags ${saved-dg-extra-tool-flags}
  	} elseif { ![string compare "dg-xfail-if" $cmd] \
  		   || ![string compare "dg-options" $cmd] } {
  	    warning "lto.exp does not support $cmd in primary source file"
*************** proc lto-get-options-main { src } {
*** 565,570 ****
--- 581,588 ----
  		set compile_type "link"
  	    } elseif { ![string compare "ar-link" $dgdo] } {
  		set compile_type "ar-link"
+ 	    } elseif { ![string compare "incr-link" $dgdo] } {
+ 		set compile_type "incr-link"
  	    } else {
  		warning "lto.exp does not support dg-lto-do $dgdo"
  	    }
*************** proc lto-get-options-main { src } {
*** 610,616 ****
      # Return flags to use for compiling the primary source file and for
      # linking.
      verbose "dg-extra-tool-flags for main is ${dg-extra-tool-flags}"
!     return ${dg-extra-tool-flags}
  }
  
  
--- 628,635 ----
      # Return flags to use for compiling the primary source file and for
      # linking.
      verbose "dg-extra-tool-flags for main is ${dg-extra-tool-flags}"
!     verbose "lto-additional-tool-flags for main is ${lto-additional-tool-flags}"
!     return [list ${dg-extra-tool-flags} ${lto-additional-tool-flags}]
  }
  
  
*************** proc lto-execute-1 { src1 sid } {
*** 692,698 ****
      set compile_type "run"
      set dg-do-what [list ${dg-do-what-default} "" P]
      array set dg-messages-by-file [list]
!     set extra_flags(0) [lto-get-options-main $src1]
      set compile_xfail(0) "" 
  
      # If the main file defines dg-options, those flags are used to
--- 711,717 ----
      set compile_type "run"
      set dg-do-what [list ${dg-do-what-default} "" P]
      array set dg-messages-by-file [list]
!     lassign [lto-get-options-main $src1] extra_flags(0) additional-flags
      set compile_xfail(0) "" 
  
      # If the main file defines dg-options, those flags are used to
*************** proc lto-execute-1 { src1 sid } {
*** 758,765 ****
  
      # The test needs to build all but the main file into an archive and then
      # link them all together.
!     if { ![string compare "ar-link" $compile_type] } {
          set arname "${sid}_${base}.a"
      }
  
      # Remove the $srcdir and $tmpdir prefixes from $src1.  (It would
--- 777,788 ----
  
      # The test needs to build all but the main file into an archive and then
      # link them all together.
!     set is_incr_link [string equal "incr-link" $compile_type]
!     set is_ar_link [string equal "ar-link" $compile_type]
!     if { $is_ar_link } {
          set arname "${sid}_${base}.a"
+     } elseif { $is_incr_link } {
+         set arname "${sid}_${base}.o"
      }
  
      # Remove the $srcdir and $tmpdir prefixes from $src1.  (It would
*************** proc lto-execute-1 { src1 sid } {
*** 821,840 ****
  	# Compile pieces with the compiler under test.
  	set i 0
  	foreach src $src_list obj $obj_list {
! 	    lto-obj $src $obj $option $extra_flags($i) $option \
  		    $compile_xfail($i)
  	    incr i
  	}
  
  	# Bundle all but the main file into an archive. Update objlist to only
  	# have the archive and the last file.
! 	if { ![string compare "ar-link" $compile_type] } {
  	    set mainsrc [lindex $obj_list 0]
  	    set obj_list [lrange $obj_list 1 end]
! 	    lto-build-archive \
! 		"[lindex $obj_list 1]-[lindex $obj_list end]" \
! 		$obj_list $arname
! 
  	    set obj_list ""
  	    lappend obj_list $mainsrc
  	    lappend obj_list $arname
--- 844,870 ----
  	# Compile pieces with the compiler under test.
  	set i 0
  	foreach src $src_list obj $obj_list {
! 	    lto-obj $src $obj $option "$extra_flags($i) ${additional-flags}" $option \
  		    $compile_xfail($i)
  	    incr i
  	}
  
  	# Bundle all but the main file into an archive. Update objlist to only
  	# have the archive and the last file.
! 	# Only attempt the incr-link mode if the linker plugin is explicitly in use.
! 	set sav_compile_type $compile_type
! 	set sav_obj_list $obj_list
! 	if { $is_incr_link && [lsearch -exact $option "-fuse-linker-plugin"] < 0 } {
! 	    set compile_type "link"
! 	} elseif { $is_incr_link || $is_ar_link } {
  	    set mainsrc [lindex $obj_list 0]
  	    set obj_list [lrange $obj_list 1 end]
! 	    set testname "[lindex $obj_list 1]-[lindex $obj_list end]"
! 	    if { $is_incr_link } {
! 		lto-link-and-maybe-run $testname $obj_list $arname "-r" "" "incr-link"
! 	    } else {
! 		lto-build-archive $testname $obj_list $arname
! 	    }
  	    set obj_list ""
  	    lappend obj_list $mainsrc
  	    lappend obj_list $arname
*************** proc lto-execute-1 { src1 sid } {
*** 843,849 ****
  
  	# Link (using the compiler under test), run, and clean up tests.
  	if { ![string compare "run" $compile_type] \
! 	     || ![string compare "ar-link" $compile_type] \
  	     || ![string compare "link" $compile_type] } {
  
  	    # Filter out any link options we were asked to suppress.
--- 873,879 ----
  
  	# Link (using the compiler under test), run, and clean up tests.
  	if { ![string compare "run" $compile_type] \
! 	     || $is_ar_link || $is_incr_link \
  	     || ![string compare "link" $compile_type] } {
  
  	    # Filter out any link options we were asked to suppress.
*************** proc lto-execute-1 { src1 sid } {
*** 857,866 ****
  
  	    lto-link-and-maybe-run \
  		    "[lindex $obj_list 0]-[lindex $obj_list end]" \
! 		    $obj_list $execname $filtered ${dg-extra-ld-options} \
  		    $filtered
  
! 	    if (![string compare "ar-link" $compile_type]) {
  		file_on_host delete $arname
  	      }
  	}
--- 887,896 ----
  
  	    lto-link-and-maybe-run \
  		    "[lindex $obj_list 0]-[lindex $obj_list end]" \
! 		$obj_list $execname $filtered "${additional-flags} ${dg-extra-ld-options}" \
  		    $filtered
  
! 	    if { $is_ar_link || $is_incr_link } {
  		file_on_host delete $arname
  	      }
  	}
*************** proc lto-execute-1 { src1 sid } {
*** 909,915 ****
  	unset testname_with_flags
  	
  	if { ![string compare "run" $compile_type] \
! 	     || ![string compare "ar-link" $compile_type] \
  	     || ![string compare "link" $compile_type] } {
  	    file_on_host delete $execname
  	}
--- 939,945 ----
  	unset testname_with_flags
  	
  	if { ![string compare "run" $compile_type] \
! 	     || $is_ar_link || $is_incr_link \
  	     || ![string compare "link" $compile_type] } {
  	    file_on_host delete $execname
  	}
*************** proc lto-execute-1 { src1 sid } {
*** 917,922 ****
--- 947,955 ----
  	if {$sid eq "f_lto"} {
  	    cleanup-modules ""
  	}
+ 
+ 	set compile_type $sav_compile_type
+ 	set obj_list $sav_obj_list
      }
  }
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/lib/target-supports.exp gcc-17-20260719/gcc/testsuite/lib/target-supports.exp
*** gcc-17-20260712/gcc/testsuite/lib/target-supports.exp	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/testsuite/lib/target-supports.exp	Sun Jul 19 22:32:17 2026
***************
*** 19,24 ****
--- 19,49 ----
  
  # This file defines procs for determining features supported by the target.
  
+ # Try to load effective-target procs from the generated et-static.exp in
+ # gcc/testsuite.
+ 
+ global tool_root_dir
+ global et_static
+ 
+ if { ![info exists et_static] } {
+     global GCC_UNDER_TEST
+ 
+     if [info exists GCC_UNDER_TEST] {
+ 	set compiler $GCC_UNDER_TEST
+     } else {
+ 	set compiler [find_gcc]
+     }
+ 
+     set output [remote_exec host "$compiler -print-file-name=testsuite/et-static.exp"]
+     set et_static [string trim [lindex $output 1]]
+ }
+ 
+ if { ![file exists $et_static] } {
+     error "Couldn't find $et_static."
+ }
+ 
+ load_file $et_static
+ 
  # Try to compile the code given by CONTENTS into an output file of
  # type TYPE, where TYPE is as for target_compile.  Return a list
  # whose first element contains the compiler messages and whose
*************** proc check_effective_target_aarch64_big_
*** 5058,5063 ****
--- 5083,5097 ----
      }]
  }
  
+ # Return 1 if this is a AArch64 target supporting big endian code-gen
+ proc check_effective_target_aarch64_mbig_endian { } {
+     return [check_no_compiler_messages aarch64_mbig_endian assembly {
+ 	#if !defined(__aarch64__) || !defined(__AARCH64EB__)
+ 	#error !__aarch64__ || !__AARCH64EB__
+ 	#endif
+     } "-mbig-endian" ]
+ }
+ 
  # Return 1 if this is a AArch64 target supporting little endian
  proc check_effective_target_aarch64_little_endian { } {
      if { ![istarget aarch64*-*-*] } {
*************** proc check_effective_target_arm_v8_1m_mv
*** 7150,7155 ****
--- 7184,7206 ----
  		check_effective_target_arm_v8_1m_mve_ok_nocache]
  }
  
+ # Return 1 if the target can link ARMv8.1-M MVE code using the
+ # options selected by arm_v8_1m_mve_ok, 0 otherwise.
+ 
+ proc check_effective_target_arm_v8_1m_mve_link { } {
+     if { ![check_effective_target_arm_v8_1m_mve_ok] } {
+ 	return 0
+     }
+ 
+     return [check_no_compiler_messages arm_v8_1m_mve_link executable {
+ 	int
+ 	main (void)
+ 	{
+ 	  return 0;
+ 	}
+     } [add_options_for_arm_v8_1m_mve ""]]
+ }
+ 
  proc add_options_for_arm_v8_1m_mve { flags } {
      if { ! [check_effective_target_arm_v8_1m_mve_ok] } {
  	return "$flags"
diff -Nrcpad gcc-17-20260712/gcc/testsuite/objc.dg/gnu-api-2-class.m gcc-17-20260719/gcc/testsuite/objc.dg/gnu-api-2-class.m
*** gcc-17-20260712/gcc/testsuite/objc.dg/gnu-api-2-class.m	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/testsuite/objc.dg/gnu-api-2-class.m	Sun Jul 19 22:32:17 2026
*************** log_2_of (unsigned int x)
*** 87,93 ****
    return result;
  }
  
! int main(int argc, void **args)
  {
    /* Functions are tested in alphabetical order.  */
  
--- 87,93 ----
    return result;
  }
  
! int main(int argc, char **args)
  {
    /* Functions are tested in alphabetical order.  */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/objc.dg/gnu-api-2-ivar.m gcc-17-20260719/gcc/testsuite/objc.dg/gnu-api-2-ivar.m
*** gcc-17-20260712/gcc/testsuite/objc.dg/gnu-api-2-ivar.m	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/testsuite/objc.dg/gnu-api-2-ivar.m	Sun Jul 19 22:32:17 2026
***************
*** 47,53 ****
  @end
  
  
! int main(int argc, void **args)
  {
    /* Functions are tested in alphabetical order.  */
  
--- 47,53 ----
  @end
  
  
! int main(int argc, char **args)
  {
    /* Functions are tested in alphabetical order.  */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/objc.dg/gnu-api-2-method.m gcc-17-20260719/gcc/testsuite/objc.dg/gnu-api-2-method.m
*** gcc-17-20260712/gcc/testsuite/objc.dg/gnu-api-2-method.m	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/testsuite/objc.dg/gnu-api-2-method.m	Sun Jul 19 22:32:17 2026
***************
*** 49,55 ****
  @end
  
  
! int main(int argc, void **args)
  {
    /* Functions are tested in alphabetical order.  */
  
--- 49,55 ----
  @end
  
  
! int main(int argc, char **args)
  {
    /* Functions are tested in alphabetical order.  */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/objc.dg/gnu-api-2-objc.m gcc-17-20260719/gcc/testsuite/objc.dg/gnu-api-2-objc.m
*** gcc-17-20260712/gcc/testsuite/objc.dg/gnu-api-2-objc.m	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/testsuite/objc.dg/gnu-api-2-objc.m	Sun Jul 19 22:32:17 2026
*************** log_2_of (unsigned int x)
*** 68,74 ****
    return result;
  }
  
! int main(int argc, void **args)
  {
    /* Functions are tested in alphabetical order.  */
  
--- 68,74 ----
    return result;
  }
  
! int main(int argc, char **args)
  {
    /* Functions are tested in alphabetical order.  */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/objc.dg/gnu-api-2-objc_msg_lookup.m gcc-17-20260719/gcc/testsuite/objc.dg/gnu-api-2-objc_msg_lookup.m
*** gcc-17-20260712/gcc/testsuite/objc.dg/gnu-api-2-objc_msg_lookup.m	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/testsuite/objc.dg/gnu-api-2-objc_msg_lookup.m	Sun Jul 19 22:32:17 2026
***************
*** 40,46 ****
  - (int) test { return 11; }
  @end
  
! int main (int argc, void **args)
  {
    /* Functions are tested in alphabetical order.  */
  
--- 40,46 ----
  - (int) test { return 11; }
  @end
  
! int main (int argc, char **args)
  {
    /* Functions are tested in alphabetical order.  */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/objc.dg/gnu-api-2-object.m gcc-17-20260719/gcc/testsuite/objc.dg/gnu-api-2-object.m
*** gcc-17-20260712/gcc/testsuite/objc.dg/gnu-api-2-object.m	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/testsuite/objc.dg/gnu-api-2-object.m	Sun Jul 19 22:32:17 2026
***************
*** 56,62 ****
  
  
  
! int main(int argc, void **args)
  {
    /* Functions are tested in alphabetical order.  */
    
--- 56,62 ----
  
  
  
! int main(int argc, char **args)
  {
    /* Functions are tested in alphabetical order.  */
    
diff -Nrcpad gcc-17-20260712/gcc/testsuite/objc.dg/gnu-api-2-property.m gcc-17-20260719/gcc/testsuite/objc.dg/gnu-api-2-property.m
*** gcc-17-20260712/gcc/testsuite/objc.dg/gnu-api-2-property.m	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/testsuite/objc.dg/gnu-api-2-property.m	Sun Jul 19 22:32:17 2026
***************
*** 41,47 ****
  @end
  
  
! int main(int argc, void **args)
  {
    /* Functions are tested in alphabetical order.  */
  
--- 41,47 ----
  @end
  
  
! int main(int argc, char **args)
  {
    /* Functions are tested in alphabetical order.  */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/objc.dg/gnu-api-2-protocol.m gcc-17-20260719/gcc/testsuite/objc.dg/gnu-api-2-protocol.m
*** gcc-17-20260712/gcc/testsuite/objc.dg/gnu-api-2-protocol.m	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/testsuite/objc.dg/gnu-api-2-protocol.m	Sun Jul 19 22:32:17 2026
***************
*** 51,57 ****
  @end
  
  
! int main(int argc, void **args)
  {
    /* Functions are tested in alphabetical order.  */
  
--- 51,57 ----
  @end
  
  
! int main(int argc, char **args)
  {
    /* Functions are tested in alphabetical order.  */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/objc.dg/gnu-api-2-resolve-method.m gcc-17-20260719/gcc/testsuite/objc.dg/gnu-api-2-resolve-method.m
*** gcc-17-20260712/gcc/testsuite/objc.dg/gnu-api-2-resolve-method.m	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/testsuite/objc.dg/gnu-api-2-resolve-method.m	Sun Jul 19 22:32:17 2026
*************** static int hitCount = 0;
*** 165,171 ****
  @end
  
  
! int main (int argc, void **args)
  {
    /* Functions are tested in alphabetical order.  */
  
--- 165,171 ----
  @end
  
  
! int main (int argc, char **args)
  {
    /* Functions are tested in alphabetical order.  */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/objc.dg/gnu-api-2-sel.m gcc-17-20260719/gcc/testsuite/objc.dg/gnu-api-2-sel.m
*** gcc-17-20260712/gcc/testsuite/objc.dg/gnu-api-2-sel.m	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/testsuite/objc.dg/gnu-api-2-sel.m	Sun Jul 19 22:32:17 2026
***************
*** 63,69 ****
  - (void) conflictingSelectorMethod { return; }
  @end
  
! int main(int argc, void **args)
  {
    /* Functions are tested in alphabetical order.  */
  
--- 63,69 ----
  - (void) conflictingSelectorMethod { return; }
  @end
  
! int main(int argc, char **args)
  {
    /* Functions are tested in alphabetical order.  */
  
diff -Nrcpad gcc-17-20260712/gcc/testsuite/objc.dg/gnu-runtime-2.m gcc-17-20260719/gcc/testsuite/objc.dg/gnu-runtime-2.m
*** gcc-17-20260712/gcc/testsuite/objc.dg/gnu-runtime-2.m	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/testsuite/objc.dg/gnu-runtime-2.m	Sun Jul 19 22:32:17 2026
***************
*** 22,28 ****
  -(unsigned int) length  { return len; }
  @end
  
! int main(int argc, void **args)
  {
    if (strcmp ([@"this is a string" cString], "this is a string"))
      abort ();
--- 22,28 ----
  -(unsigned int) length  { return len; }
  @end
  
! int main(int argc, char **args)
  {
    if (strcmp ([@"this is a string" cString], "this is a string"))
      abort ();
diff -Nrcpad gcc-17-20260712/gcc/testsuite/objc.dg/gnu-runtime-3.m gcc-17-20260719/gcc/testsuite/objc.dg/gnu-runtime-3.m
*** gcc-17-20260712/gcc/testsuite/objc.dg/gnu-runtime-3.m	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/testsuite/objc.dg/gnu-runtime-3.m	Sun Jul 19 22:32:17 2026
***************
*** 7,13 ****
  #include <string.h>
  #include <stdlib.h>
  
! int main(int argc, void **args)
  {
    [TestsuiteObject new];
    return 0;
--- 7,13 ----
  #include <string.h>
  #include <stdlib.h>
  
! int main(int argc, char **args)
  {
    [TestsuiteObject new];
    return 0;
diff -Nrcpad gcc-17-20260712/gcc/testsuite/objc.dg/pr48177.m gcc-17-20260719/gcc/testsuite/objc.dg/pr48177.m
*** gcc-17-20260712/gcc/testsuite/objc.dg/pr48177.m	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/testsuite/objc.dg/pr48177.m	Sun Jul 19 22:32:17 2026
***************
*** 5,11 ****
  #include <objc/runtime.h>
  #include <stdlib.h>
  
! int main(int argc, void **args)
  {
  #ifdef __GNU_LIBOBJC__
    /* This special test tests that, if you have a selector already
--- 5,11 ----
  #include <objc/runtime.h>
  #include <stdlib.h>
  
! int main(int argc, char **args)
  {
  #ifdef __GNU_LIBOBJC__
    /* This special test tests that, if you have a selector already
diff -Nrcpad gcc-17-20260712/gcc/testsuite/objc.dg/torture/strings/string1.m gcc-17-20260719/gcc/testsuite/objc.dg/torture/strings/string1.m
*** gcc-17-20260712/gcc/testsuite/objc.dg/torture/strings/string1.m	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/testsuite/objc.dg/torture/strings/string1.m	Sun Jul 19 22:32:17 2026
***************
*** 14,20 ****
  #include "../../../objc-obj-c++-shared/nsconstantstring-class.h"
  #endif
  
! int main(int argc, void **args)
  {
    if (strcmp ([@"this is a string" cString], "this is a string"))
      abort ();
--- 14,20 ----
  #include "../../../objc-obj-c++-shared/nsconstantstring-class.h"
  #endif
  
! int main(int argc, char **args)
  {
    if (strcmp ([@"this is a string" cString], "this is a string"))
      abort ();
diff -Nrcpad gcc-17-20260712/gcc/testsuite/objc.dg/torture/strings/string2.m gcc-17-20260719/gcc/testsuite/objc.dg/torture/strings/string2.m
*** gcc-17-20260712/gcc/testsuite/objc.dg/torture/strings/string2.m	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/testsuite/objc.dg/torture/strings/string2.m	Sun Jul 19 22:32:17 2026
***************
*** 14,20 ****
  #include "../../../objc-obj-c++-shared/nsconstantstring-class.h"
  #endif
  
! int main(int argc, void **args)
  {
    if (strcmp ([@"this " @"is " @"a " @"string" cString],
                "this " "is " "a " "string"))
--- 14,20 ----
  #include "../../../objc-obj-c++-shared/nsconstantstring-class.h"
  #endif
  
! int main(int argc, char **args)
  {
    if (strcmp ([@"this " @"is " @"a " @"string" cString],
                "this " "is " "a " "string"))
diff -Nrcpad gcc-17-20260712/gcc/testsuite/objc.dg/torture/strings/string3.m gcc-17-20260719/gcc/testsuite/objc.dg/torture/strings/string3.m
*** gcc-17-20260712/gcc/testsuite/objc.dg/torture/strings/string3.m	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/testsuite/objc.dg/torture/strings/string3.m	Sun Jul 19 22:32:17 2026
***************
*** 16,22 ****
  
  #define STRING "this is a string"
  
! int main (int argc, void **args)
  {
    if (strcmp ([@STRING cString], STRING))
      abort ();
--- 16,22 ----
  
  #define STRING "this is a string"
  
! int main (int argc, char **args)
  {
    if (strcmp ([@STRING cString], STRING))
      abort ();
diff -Nrcpad gcc-17-20260712/gcc/testsuite/objc.dg/torture/strings/string4.m gcc-17-20260719/gcc/testsuite/objc.dg/torture/strings/string4.m
*** gcc-17-20260712/gcc/testsuite/objc.dg/torture/strings/string4.m	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/testsuite/objc.dg/torture/strings/string4.m	Sun Jul 19 22:32:17 2026
***************
*** 14,20 ****
  #include "../../../objc-obj-c++-shared/nsconstantstring-class.h"
  #endif
  
! int main(int argc, void **args)
  {
    if ([@"this is a string" length] != strlen ("this is a string"))
      abort ();
--- 14,20 ----
  #include "../../../objc-obj-c++-shared/nsconstantstring-class.h"
  #endif
  
! int main(int argc, char **args)
  {
    if ([@"this is a string" length] != strlen ("this is a string"))
      abort ();
diff -Nrcpad gcc-17-20260712/gcc/timevar.def gcc-17-20260719/gcc/timevar.def
*** gcc-17-20260712/gcc/timevar.def	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/timevar.def	Sun Jul 19 22:32:17 2026
*************** DEFTIMEVAR (TV_IPA_LTO_CTORS_OUT     , "
*** 94,99 ****
--- 94,102 ----
  DEFTIMEVAR (TV_IPA_LTO_CGRAPH_IO     , "ipa lto cgraph I/O")
  DEFTIMEVAR (TV_IPA_LTO_DECL_MERGE    , "ipa lto decl merge")
  DEFTIMEVAR (TV_IPA_LTO_CGRAPH_MERGE  , "ipa lto cgraph merge")
+ DEFTIMEVAR (TV_IPA_LTO_LINEMAP_IN    , "ipa lto linemap in")
+ DEFTIMEVAR (TV_IPA_LTO_LINEMAP_OUT   , "ipa lto linemap out")
+ DEFTIMEVAR (TV_IPA_LTO_LINEMAP_COPY  , "ipa lto linemap copy")
  DEFTIMEVAR (TV_LTO                   , "lto")
  DEFTIMEVAR (TV_WHOPR_WPA             , "whopr wpa")
  DEFTIMEVAR (TV_WHOPR_WPA_IO          , "whopr wpa I/O")
diff -Nrcpad gcc-17-20260712/gcc/tree-outof-ssa.cc gcc-17-20260719/gcc/tree-outof-ssa.cc
*** gcc-17-20260712/gcc/tree-outof-ssa.cc	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/tree-outof-ssa.cc	Sun Jul 19 22:32:17 2026
*************** along with GCC; see the file COPYING3.
*** 25,30 ****
--- 25,31 ----
  #include "rtl.h"
  #include "tree.h"
  #include "gimple.h"
+ #include "gimple-expr.h"
  #include "cfghooks.h"
  #include "ssa.h"
  #include "tree-ssa.h"
*************** expand_phi_nodes (struct ssaexpand *sa)
*** 1049,1054 ****
--- 1050,1135 ----
  }
  
  
+ /* Out-of-SSA can leave several partitions sharing one base VAR_DECL, when
+    that variable's SSA versions are simultaneously live and so cannot all be
+    coalesced.  When such a partition is spilled (it has no register mode,
+    e.g.  an oversized vector that is BLKmode), set_mem_attributes would give
+    every one of those slots that single decl as its MEM_EXPR at offset 0, so
+    the distinct slots appear to be the same object and mislead MEM_EXPR-based
+    disambiguation, and the load/store pair-fusion pass then fuses across the
+    slots and corrupts one.  Give every partition but one of such a decl its
+    own artificial decl so the slots are distinguished at the source.
+    The new decl carries a DECL_DEBUG_EXPR back to the user variable so debug
+    info still attributes the storage to it (cf.  create_access_replacement in
+    tree-sra.cc).  PARM_DECLs and RESULT_DECLs are left alone, as they require
+    a single partition holding the canonical RTL.  */
+ 
+ static void
+ split_overlapping_partition_decls (var_map map)
+ {
+   unsigned n = num_var_partitions (map);
+   hash_set<tree> seen;
+   auto_vec<tree> new_decl;
+   new_decl.safe_grow_cleared (n);
+   bool any = false;
+ 
+   for (unsigned i = 0; i < n; i++)
+     {
+       tree repr = partition_to_var (map, i);
+       if (!repr)
+ 	continue;
+       tree var = SSA_NAME_VAR (repr);
+       if (!var || !VAR_P (var))
+ 	continue;
+       /* Only partitions that will live in memory can end up with a
+ 	 misleading shared MEM_EXPR.  Mirror the decision that
+ 	 expand_one_ssa_partition will make.  */
+       if (use_register_for_decl (repr))
+ 	continue;
+       /* One partition of VAR keeps the user decl, the rest are split.
+ 	 A default definition cannot change its variable, so if VAR has a
+ 	 partitioned default definition, its partition is the one that
+ 	 keeps the user decl.  Otherwise the first partition seen does.  */
+       tree ddef = ssa_default_def (cfun, var);
+       int keep = ddef ? var_to_partition (map, ddef) : NO_PARTITION;
+       if (keep == NO_PARTITION)
+ 	{
+ 	  if (!seen.add (var))
+ 	    continue;
+ 	}
+       else if (keep >= 0 && (unsigned) keep == i)
+ 	continue;
+ 
+       tree nvar = create_tmp_var_raw (TREE_TYPE (var));
+       DECL_CONTEXT (nvar) = DECL_CONTEXT (var);
+       DECL_SOURCE_LOCATION (nvar) = DECL_SOURCE_LOCATION (var);
+       SET_DECL_ALIGN (nvar, DECL_ALIGN (var));
+       if (!DECL_ARTIFICIAL (var) && DECL_NAME (var))
+ 	{
+ 	  SET_DECL_DEBUG_EXPR (nvar, var);
+ 	  DECL_HAS_DEBUG_EXPR_P (nvar) = 1;
+ 	}
+       copy_warning (nvar, var);
+       add_local_decl (cfun, nvar);
+       new_decl[i] = nvar;
+       any = true;
+     }
+ 
+   if (!any)
+     return;
+ 
+   unsigned ver;
+   tree name;
+   FOR_EACH_SSA_NAME (ver, name, cfun)
+     {
+       if (SSA_NAME_IS_DEFAULT_DEF (name))
+ 	continue;
+       int p = var_to_partition (map, name);
+       if (p != NO_PARTITION && new_decl[p])
+ 	SET_SSA_NAME_VAR_OR_IDENTIFIER (name, new_decl[p]);
+     }
+ }
+ 
  /* Remove the ssa-names in the current function and translate them into normal
     compiler variables.  PERFORM_TER is true if Temporary Expression Replacement
     should also be used.  */
*************** remove_ssa_form (bool perform_ter, struc
*** 1080,1085 ****
--- 1161,1171 ----
  	dump_replaceable_exprs (dump_file, values);
      }
  
+   /* Distinct partitions of one decl must not share a MEM_EXPR once they are
+      spilled to separate stack slots.  Done after TER so reassigning
+      SSA_NAME_VAR does not perturb find_replaceable_exprs.  */
+   split_overlapping_partition_decls (map);
+ 
    rewrite_trees (map);
  
    sa->map = map;
diff -Nrcpad gcc-17-20260712/gcc/tree-profile.cc gcc-17-20260719/gcc/tree-profile.cc
*** gcc-17-20260712/gcc/tree-profile.cc	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/tree-profile.cc	Sun Jul 19 22:32:17 2026
*************** along with GCC; see the file COPYING3.
*** 43,48 ****
--- 43,49 ----
  #include "tree-nested.h"
  #include "gimplify.h"
  #include "gimple-iterator.h"
+ #include "gimple-fold.h"
  #include "gimplify-me.h"
  #include "tree-cfg.h"
  #include "tree-into-ssa.h"
*************** masking_vectors (conds_ctx& ctx, array_s
*** 611,642 ****
      }
  }
  
! /* Emit LHS = RHS on edges.  This is just a short hand that automates the
!    building of the assign and immediately puts it on the edge, which becomes
!    noisy.  */
! tree
! emit_assign (edge e, tree lhs, tree rhs)
  {
    gassign *w = gimple_build_assign (lhs, rhs);
!   gsi_insert_on_edge (e, w);
    return lhs;
  }
  
! /* Emit lhs = RHS on edges.  The lhs is created.  */
! tree
! emit_assign (edge e, tree rhs)
  {
!   return emit_assign (e, make_ssa_name (gcov_type_node), rhs);
  }
  
! /* Emit LHS = OP1 <OP> OP2 on edges.  */
! tree
! emit_bitwise_op (edge e, tree op1, tree_code op, tree op2 = NULL_TREE)
  {
!   tree lhs = make_ssa_name (gcov_type_node);
!   gassign *w = gimple_build_assign (lhs, op, op1, op2);
!   gsi_insert_on_edge (e, w);
!   return lhs;
  }
  
  /* Visitor for make_top_index.  */
--- 612,643 ----
      }
  }
  
! /* Emit LHS = RHS onto SEQ.  This is just a short hand that automates the
!    building of the assign, which becomes noisy.  */
! static tree
! emit_assign (gimple_seq *seq, tree lhs, tree rhs)
  {
    gassign *w = gimple_build_assign (lhs, rhs);
!   gimple_seq_add_stmt (seq, w);
    return lhs;
  }
  
! /* Emit lhs = RHS onto SEQ.  The lhs is created.  */
! static tree
! emit_assign (gimple_seq *seq, tree rhs)
  {
!   return emit_assign (seq, make_ssa_name (gcov_type_node), rhs);
  }
  
! /* Emit/fold OP1 <OP> [OP2] onto SEQ.
!    Return folded constant or SSA name.  */
! static tree
! emit_bitwise_op (gimple_seq *seq, tree op1, tree_code op,
! 		 tree op2 = NULL_TREE)
  {
!   return op2 == NULL_TREE
!     ? gimple_build (seq, op, gcov_type_node, op1)
!     : gimple_build (seq, op, gcov_type_node, op1, op2);
  }
  
  /* Visitor for make_top_index.  */
*************** instrument_decisions (array_slice<basic_
*** 1101,1115 ****
  	{
  	  counters next = prev;
  	  next.e = e;
  
  	  if (bitmap_bit_p (core, e->src->index) && (e->flags & EDGE_CONDITION))
  	    {
  	      const int k = condition_index (e->flags);
! 	      next[k] = emit_bitwise_op (e, prev[k], BIT_IOR_EXPR, rhs);
  	      if (masks[2 * xi + k])
  		{
  		  tree m = build_int_cst (gcov_type_node, masks[2 * xi + k]);
! 		  next[2] = emit_bitwise_op (e, prev[2], BIT_IOR_EXPR, m);
  		}
  	      increment = true;
  	    }
--- 1102,1117 ----
  	{
  	  counters next = prev;
  	  next.e = e;
+ 	  gimple_seq seq = NULL;
  
  	  if (bitmap_bit_p (core, e->src->index) && (e->flags & EDGE_CONDITION))
  	    {
  	      const int k = condition_index (e->flags);
! 	      next[k] = emit_bitwise_op (&seq, prev[k], BIT_IOR_EXPR, rhs);
  	      if (masks[2 * xi + k])
  		{
  		  tree m = build_int_cst (gcov_type_node, masks[2 * xi + k]);
! 		  next[2] = emit_bitwise_op (&seq, prev[2], BIT_IOR_EXPR, m);
  		}
  	      increment = true;
  	    }
*************** instrument_decisions (array_slice<basic_
*** 1122,1127 ****
--- 1124,1131 ----
  	      next[1] = poison;
  	      next[2] = poison;
  	    }
+ 	  if (seq)
+ 	    gsi_insert_seq_on_edge (e, seq);
  	  table.get_or_insert (e->dest).safe_push (next);
  	}
      }
*************** instrument_decisions (array_slice<basic_
*** 1164,1179 ****
  	  counters *prevp = find_counters (*cands, e);
  	  gcc_assert (prevp);
  	  counters prev = *prevp;
  
  	  /* _true &= ~mask, _false &= ~mask  */
  	  counters next;
! 	  next[2] = emit_bitwise_op (e, prev[2], BIT_NOT_EXPR);
! 	  next[0] = emit_bitwise_op (e, prev[0], BIT_AND_EXPR, next[2]);
! 	  next[1] = emit_bitwise_op (e, prev[1], BIT_AND_EXPR, next[2]);
  
  	  /* _global_true |= _true, _global_false |= _false  */
  	  for (size_t k = 0; k != 2; ++k)
  	    {
  	      tree ref = tree_coverage_counter_ref (GCOV_COUNTER_CONDS,
  						    2 * condno + k);
  	      if (atomic)
--- 1168,1186 ----
  	  counters *prevp = find_counters (*cands, e);
  	  gcc_assert (prevp);
  	  counters prev = *prevp;
+ 	  gimple_seq seq = NULL;
  
  	  /* _true &= ~mask, _false &= ~mask  */
  	  counters next;
! 	  next[2] = emit_bitwise_op (&seq, prev[2], BIT_NOT_EXPR);
! 	  next[0] = emit_bitwise_op (&seq, prev[0], BIT_AND_EXPR, next[2]);
! 	  next[1] = emit_bitwise_op (&seq, prev[1], BIT_AND_EXPR, next[2]);
  
  	  /* _global_true |= _true, _global_false |= _false  */
  	  for (size_t k = 0; k != 2; ++k)
  	    {
+ 	      if (integer_zerop (next[k]))
+ 		continue;
  	      tree ref = tree_coverage_counter_ref (GCOV_COUNTER_CONDS,
  						    2 * condno + k);
  	      if (atomic)
*************** instrument_decisions (array_slice<basic_
*** 1182,1196 ****
  		  gcall *flush = gimple_build_call (atomic_ior, 3,
  						    build_addr (ref),
  						    next[k], relaxed);
! 		  gsi_insert_on_edge (e, flush);
  		}
  	      else
  		{
! 		  tree get = emit_assign (e, ref);
! 		  tree put = emit_bitwise_op (e, next[k], BIT_IOR_EXPR, get);
! 		  emit_assign (e, unshare_expr (ref), put);
  		}
  	    }
  	}
      }
  
--- 1189,1205 ----
  		  gcall *flush = gimple_build_call (atomic_ior, 3,
  						    build_addr (ref),
  						    next[k], relaxed);
! 		  gimple_seq_add_stmt (&seq, flush);
  		}
  	      else
  		{
! 		  tree get = emit_assign (&seq, ref);
! 		  tree put = emit_bitwise_op (&seq, next[k], BIT_IOR_EXPR, get);
! 		  emit_assign (&seq, unshare_expr (ref), put);
  		}
  	    }
+ 	  if (seq)
+ 	    gsi_insert_seq_on_edge (e, seq);
  	}
      }
  
diff -Nrcpad gcc-17-20260712/gcc/tree-scalar-evolution.cc gcc-17-20260719/gcc/tree-scalar-evolution.cc
*** gcc-17-20260712/gcc/tree-scalar-evolution.cc	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/tree-scalar-evolution.cc	Sun Jul 19 22:32:17 2026
*************** private:
*** 607,614 ****
  					   tree *evolution_of_loop, int limit);
    t_bool follow_ssa_edge_inner_loop_phi (gphi *loop_phi_node,
  					 tree *evolution_of_loop, int limit);
!   tree add_to_evolution (tree chrec_before, enum tree_code code,
! 			 tree to_add, gimple *at_stmt);
    tree add_to_evolution_1 (tree chrec_before, tree to_add, gimple *at_stmt);
  
    class loop *loop;
--- 607,613 ----
  					   tree *evolution_of_loop, int limit);
    t_bool follow_ssa_edge_inner_loop_phi (gphi *loop_phi_node,
  					 tree *evolution_of_loop, int limit);
!   tree add_to_evolution (tree chrec_before, tree to_add, gimple *at_stmt);
    tree add_to_evolution_1 (tree chrec_before, tree to_add, gimple *at_stmt);
  
    class loop *loop;
*************** scev_dfs::add_to_evolution_1 (tree chrec
*** 853,862 ****
  */
  
  tree
! scev_dfs::add_to_evolution (tree chrec_before, enum tree_code code,
! 			    tree to_add, gimple *at_stmt)
  {
-   tree type = chrec_type (to_add);
    tree res = NULL_TREE;
  
    if (to_add == NULL_TREE)
--- 852,859 ----
  */
  
  tree
! scev_dfs::add_to_evolution (tree chrec_before, tree to_add, gimple *at_stmt)
  {
    tree res = NULL_TREE;
  
    if (to_add == NULL_TREE)
*************** scev_dfs::add_to_evolution (tree chrec_b
*** 879,903 ****
        fprintf (dump_file, ")\n");
      }
  
-   if (code == MINUS_EXPR)
-     {
-       if (INTEGRAL_TYPE_P (type)
- 	  && TYPE_OVERFLOW_UNDEFINED (type)
- 	  && !expr_not_equal_to (to_add,
- 				 wi::to_wide (TYPE_MIN_VALUE (type))))
- 	{
- 	  tree utype = unsigned_type_for (type);
- 	  to_add = chrec_convert_rhs (utype, to_add);
- 	  to_add = chrec_fold_multiply (utype, to_add,
- 					build_int_cst_type (utype, -1));
- 	  to_add = chrec_convert_rhs (type, to_add);
- 	}
-       else
- 	to_add = chrec_fold_multiply (type, to_add, SCALAR_FLOAT_TYPE_P (type)
- 				      ? build_real (type, dconstm1)
- 				      : build_int_cst_type (type, -1));
-     }
- 
    res = add_to_evolution_1 (chrec_before, to_add, at_stmt);
  
    if (dump_file && (dump_flags & TDF_SCEV))
--- 876,881 ----
*************** scev_dfs::follow_ssa_edge_binary (gimple
*** 942,948 ****
  	      res = follow_ssa_edge_expr (at_stmt, rhs0, &evol, limit);
  	      if (res == t_true)
  		*evolution_of_loop = add_to_evolution
! 		    (chrec_convert (type, evol, at_stmt), code, rhs1, at_stmt);
  	      else if (res == t_false)
  		{
  		  res = follow_ssa_edge_expr
--- 920,926 ----
  	      res = follow_ssa_edge_expr (at_stmt, rhs0, &evol, limit);
  	      if (res == t_true)
  		*evolution_of_loop = add_to_evolution
! 		    (chrec_convert (type, evol, at_stmt), rhs1, at_stmt);
  	      else if (res == t_false)
  		{
  		  res = follow_ssa_edge_expr
*************** scev_dfs::follow_ssa_edge_binary (gimple
*** 950,956 ****
  		  if (res == t_true)
  		    *evolution_of_loop = add_to_evolution
  			(chrec_convert (type, *evolution_of_loop, at_stmt),
! 			 code, rhs0, at_stmt);
  		}
  	    }
  
--- 928,934 ----
  		  if (res == t_true)
  		    *evolution_of_loop = add_to_evolution
  			(chrec_convert (type, *evolution_of_loop, at_stmt),
! 			 rhs0, at_stmt);
  		}
  	    }
  
*************** scev_dfs::follow_ssa_edge_binary (gimple
*** 966,972 ****
  	  if (res == t_true)
  	    *evolution_of_loop = add_to_evolution
  		(chrec_convert (type, *evolution_of_loop, at_stmt),
! 		 code, rhs0, at_stmt);
  	}
  
        else
--- 944,950 ----
  	  if (res == t_true)
  	    *evolution_of_loop = add_to_evolution
  		(chrec_convert (type, *evolution_of_loop, at_stmt),
! 		 rhs0, at_stmt);
  	}
  
        else
*************** scev_dfs::follow_ssa_edge_binary (gimple
*** 976,992 ****
  	res = t_false;
        break;
  
-     case MINUS_EXPR:
-       /* This case is under the form "opnd0 = rhs0 - rhs1".  */
-       if (TREE_CODE (rhs0) == SSA_NAME)
- 	gcc_unreachable (); /* Handled in caller.  */
-       else
- 	/* Otherwise, match an assignment under the form:
- 	   "a = ... - ...".  */
- 	/* And there is nothing to do.  */
- 	res = t_false;
-       break;
- 
      default:
        res = t_false;
      }
--- 954,959 ----
*************** scev_dfs::follow_ssa_edge_expr (gimple *
*** 1283,1292 ****
        /* Fallthru.  */
      case POINTER_PLUS_EXPR:
      case PLUS_EXPR:
-     case MINUS_EXPR:
        /* This case is under the form "rhs0 +- rhs1".  */
!       if (TREE_CODE (rhs0) == SSA_NAME
! 	  && (TREE_CODE (rhs1) != SSA_NAME || code == MINUS_EXPR))
  	{
  	  /* Match an assignment under the form:
  	     "a = b +- ...".  */
--- 1250,1257 ----
        /* Fallthru.  */
      case POINTER_PLUS_EXPR:
      case PLUS_EXPR:
        /* This case is under the form "rhs0 +- rhs1".  */
!       if (TREE_CODE (rhs0) == SSA_NAME && TREE_CODE (rhs1) != SSA_NAME)
  	{
  	  /* Match an assignment under the form:
  	     "a = b +- ...".  */
*************** scev_dfs::follow_ssa_edge_expr (gimple *
*** 1295,1307 ****
  	  if (res == t_true)
  	    *evolution_of_loop = add_to_evolution
  		(chrec_convert (type, *evolution_of_loop, at_stmt),
! 		 code, rhs1, at_stmt);
  	  return res;
  	}
        /* Else search for the SCC in both rhs0 and rhs1.  */
        return follow_ssa_edge_binary (at_stmt, type, rhs0, code, rhs1,
  				     evolution_of_loop, limit);
  
      default:
        return t_false;
      }
--- 1260,1315 ----
  	  if (res == t_true)
  	    *evolution_of_loop = add_to_evolution
  		(chrec_convert (type, *evolution_of_loop, at_stmt),
! 		 rhs1, at_stmt);
  	  return res;
  	}
        /* Else search for the SCC in both rhs0 and rhs1.  */
        return follow_ssa_edge_binary (at_stmt, type, rhs0, code, rhs1,
  				     evolution_of_loop, limit);
  
+ 
+     case MINUS_EXPR:
+       /* This case is under the form "rhs0 - rhs1".  */
+       if (TREE_CODE (rhs0) == SSA_NAME)
+ 	{
+ 	  /* Match an assignment under the form:
+ 	     "a = b +- ...".  */
+ 	  t_bool res = follow_ssa_edge_expr (at_stmt, rhs0,
+ 					     evolution_of_loop, limit);
+ 	  if (res != t_true)
+ 	    return res;
+ 	  /* We have to avoid negating INT_MIN given that a) invokes UB,
+ 	     b) results in a wrong scev_direction.  See PR126171.  */
+ 	  if (INTEGRAL_TYPE_P (type)
+ 	      && TYPE_OVERFLOW_UNDEFINED (type)
+ 	      && !expr_not_equal_to (rhs1,
+ 				     wi::to_wide (TYPE_MIN_VALUE (type))))
+ 	    {
+ 	      tree utype = unsigned_type_for (type);
+ 	      tree to_add = chrec_convert_rhs (utype, rhs1);
+ 	      to_add = chrec_fold_multiply (utype, to_add,
+ 					    build_int_cst_type (utype, -1));
+ 	      *evolution_of_loop
+ 		= chrec_convert (utype, *evolution_of_loop, at_stmt);
+ 	      *evolution_of_loop = add_to_evolution (*evolution_of_loop,
+ 						     to_add, at_stmt);
+ 	      *evolution_of_loop
+ 		= chrec_convert (type, *evolution_of_loop, at_stmt);
+ 	    }
+ 	  else
+ 	    {
+ 	      tree to_add = chrec_fold_multiply (type, rhs1,
+ 						 build_minus_one_cst (type));
+ 	      *evolution_of_loop
+ 		= add_to_evolution (chrec_convert (type, *evolution_of_loop,
+ 						   at_stmt),
+ 				    to_add, at_stmt);
+ 	    }
+ 	  return res;
+ 	}
+       /* There is nothing to do.  */
+       return t_false;
+ 
      default:
        return t_false;
      }
diff -Nrcpad gcc-17-20260712/gcc/tree-switch-conversion.cc gcc-17-20260719/gcc/tree-switch-conversion.cc
*** gcc-17-20260712/gcc/tree-switch-conversion.cc	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/tree-switch-conversion.cc	Sun Jul 19 22:32:17 2026
*************** static gimple_seq
*** 117,134 ****
  gen_log2 (tree op, location_t loc, tree *result, tree type)
  {
    gimple_seq stmts = NULL;
-   gimple_stmt_iterator gsi = gsi_last (stmts);
  
    tree orig_type = TREE_TYPE (op);
    tree tmp1;
    if (type != orig_type)
!     tmp1 = gimple_convert (&gsi, false, GSI_NEW_STMT, loc, type, op);
    else
      tmp1 = op;
    /* Build FFS (op) - 1.  */
!   tree tmp2 = gimple_build (&gsi, false, GSI_NEW_STMT, loc, IFN_FFS, orig_type,
! 			    tmp1);
!   tree tmp3 = gimple_build (&gsi, false, GSI_NEW_STMT, loc, MINUS_EXPR,
  			    orig_type, tmp2, build_one_cst (orig_type));
    *result = tmp3;
    return stmts;
--- 117,132 ----
  gen_log2 (tree op, location_t loc, tree *result, tree type)
  {
    gimple_seq stmts = NULL;
  
    tree orig_type = TREE_TYPE (op);
    tree tmp1;
    if (type != orig_type)
!     tmp1 = gimple_convert (&stmts, loc, type, op);
    else
      tmp1 = op;
    /* Build FFS (op) - 1.  */
!   tree tmp2 = gimple_build (&stmts, loc, IFN_FFS, orig_type, tmp1);
!   tree tmp3 = gimple_build (&stmts, loc, MINUS_EXPR,
  			    orig_type, tmp2, build_one_cst (orig_type));
    *result = tmp3;
    return stmts;
*************** static gimple_seq
*** 143,149 ****
  gen_pow2p (tree op, location_t loc, tree *result)
  {
    gimple_seq stmts = NULL;
-   gimple_stmt_iterator gsi = gsi_last (stmts);
  
    tree type = TREE_TYPE (op);
    tree utype = unsigned_type_for (type);
--- 141,146 ----
*************** gen_pow2p (tree op, location_t loc, tree
*** 153,165 ****
    if (types_compatible_p (type, utype))
      tmp1 = op;
    else
!     tmp1 = gimple_convert (&gsi, false, GSI_NEW_STMT, loc, utype, op);
!   tree tmp2 = gimple_build (&gsi, false, GSI_NEW_STMT, loc, MINUS_EXPR, utype,
  			    tmp1, build_one_cst (utype));
!   tree tmp3 = gimple_build (&gsi, false, GSI_NEW_STMT, loc, BIT_XOR_EXPR,
! 			    utype, tmp1, tmp2);
!   *result = gimple_build (&gsi, false, GSI_NEW_STMT, loc, GT_EXPR,
! 			  boolean_type_node, tmp3, tmp2);
  
    return stmts;
  }
--- 150,160 ----
    if (types_compatible_p (type, utype))
      tmp1 = op;
    else
!     tmp1 = gimple_convert (&stmts, loc, utype, op);
!   tree tmp2 = gimple_build (&stmts, loc, MINUS_EXPR, utype,
  			    tmp1, build_one_cst (utype));
!   tree tmp3 = gimple_build (&stmts, loc, BIT_XOR_EXPR, utype, tmp1, tmp2);
!   *result = gimple_build (&stmts, loc, GT_EXPR, boolean_type_node, tmp3, tmp2);
  
    return stmts;
  }
diff -Nrcpad gcc-17-20260712/gcc/tree-vect-loop.cc gcc-17-20260719/gcc/tree-vect-loop.cc
*** gcc-17-20260712/gcc/tree-vect-loop.cc	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/tree-vect-loop.cc	Sun Jul 19 22:32:17 2026
*************** vectorizable_nonlinear_induction (loop_v
*** 9502,9507 ****
--- 9502,9540 ----
    return true;
  }
  
+ /* Return true if the scalar initial values and steps of the SLP induction
+    lanes allow the first CANDIDATE_NIVS IVs to be reused circularly for the
+    remaining lanes.  */
+ static bool
+ vect_slp_induction_reuse_p (tree *steps, tree *inits, unsigned group_size,
+ 			  unsigned HOST_WIDE_INT const_nunits,
+ 			  unsigned candidate_nivs, unsigned nivs)
+ {
+   gcc_assert (candidate_nivs > 0);
+   gcc_assert (candidate_nivs < nivs);
+ 
+   /* This function compares only STEPS and INITS, so all checked lanes must
+      precede the first wrap of the SLP group.  */
+   gcc_assert (nivs * const_nunits <= group_size);
+ 
+   for (unsigned ivn = candidate_nivs; ivn < nivs; ++ivn)
+     {
+       unsigned reuse_ivn = ivn % candidate_nivs;
+       for (unsigned HOST_WIDE_INT eltn = 0; eltn < const_nunits; ++eltn)
+ 	{
+ 	  unsigned HOST_WIDE_INT elt = ivn * const_nunits + eltn;
+ 	  unsigned HOST_WIDE_INT reused_elt
+ 	    = reuse_ivn * const_nunits + eltn;
+ 
+ 	  if (!operand_equal_p (steps[elt], steps[reused_elt], 0)
+ 	      || !operand_equal_p (inits[elt], inits[reused_elt], 0))
+ 	    return false;
+ 	}
+     }
+ 
+   return true;
+ }
+ 
  /* Function vectorizable_induction
  
     Check if STMT_INFO performs an induction computation that can be vectorized.
*************** vectorizable_induction (loop_vec_info lo
*** 9736,9748 ****
    else if (nunits.is_constant (&const_nunits)
  	   && LOOP_VINFO_IV_INCREMENT_INVARIANT_P (loop_vinfo))
      {
!       /* Compute the number of distinct IVs we need.  First reduce
! 	 group_size if it is a multiple of const_nunits so we get
! 	 one IV for a group_size of 4 but const_nunits 2.  */
        unsigned group_sizep = group_size;
        if (group_sizep % const_nunits == 0)
! 	group_sizep = group_sizep / const_nunits;
!       nivs = least_common_multiple (group_sizep, const_nunits) / const_nunits;
      }
    else
      {
--- 9769,9796 ----
    else if (nunits.is_constant (&const_nunits)
  	   && LOOP_VINFO_IV_INCREMENT_INVARIANT_P (loop_vinfo))
      {
!       gcc_assert (!init_node);
!       /* Compute the number of distinct IVs we need.  We can reduce the
! 	 number when later vector chunks are equal to earlier chunks.  */
!       nivs = least_common_multiple (group_size, const_nunits) / const_nunits;
        unsigned group_sizep = group_size;
        if (group_sizep % const_nunits == 0)
! 	{
! 	  group_sizep = group_sizep / const_nunits;
! 	  unsigned candidate_nivs
! 	    = least_common_multiple (group_sizep, const_nunits) / const_nunits;
! 	  if (candidate_nivs < nivs
! 	      && vect_slp_induction_reuse_p (steps, inits, group_size,
! 					   const_nunits, candidate_nivs, nivs))
! 	    {
! 	      if (dump_enabled_p ())
! 		dump_printf_loc (MSG_NOTE, vect_location,
! 				 "reusing %u SLP induction IVs for %u "
! 				 "vector chunks\n",
! 				 candidate_nivs, nivs);
! 	      nivs = candidate_nivs;
! 	    }
! 	}
      }
    else
      {
*************** vectorizable_induction (loop_vec_info lo
*** 9958,9967 ****
        else
  	nivs = 1;
        vec_steps.reserve (nivs-ivn);
        for (; ivn < nivs; ++ivn)
  	{
! 	  slp_node->push_vec_def (SLP_TREE_VEC_DEFS (slp_node)[0]);
! 	  vec_steps.quick_push (vec_steps[0]);
  	}
      }
  
--- 10006,10018 ----
        else
  	nivs = 1;
        vec_steps.reserve (nivs-ivn);
+       unsigned generated_nivs = ivn;
+       gcc_assert (generated_nivs > 0);
        for (; ivn < nivs; ++ivn)
  	{
! 	  unsigned reuse_ivn = ivn % generated_nivs;
! 	  slp_node->push_vec_def (SLP_TREE_VEC_DEFS (slp_node)[reuse_ivn]);
! 	  vec_steps.quick_push (vec_steps[reuse_ivn]);
  	}
      }
  
diff -Nrcpad gcc-17-20260712/gcc/tree-vect-slp.cc gcc-17-20260719/gcc/tree-vect-slp.cc
*** gcc-17-20260712/gcc/tree-vect-slp.cc	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/tree-vect-slp.cc	Sun Jul 19 22:32:17 2026
*************** vect_build_slp_instance (vec_info *vinfo
*** 4321,4326 ****
--- 4321,4383 ----
       vect_analyze_slp_instance now.  */
    gcc_assert (kind != slp_inst_kind_store || group_size == 1);
  
+   /* For BB vectorization we get failures only in case of the need of
+      unrolling, as otherwise we'll simply get operands built from scalars.
+      Iff there is any mismatches in the toplevel stmts those will prevail,
+      otherwise we get the non-power-of-two tail of the lanes failed.
+      For BB reductions we mainly want to catch the first case so we pick
+      a more useful subset of lanes to reduce.  */
+   if (kind == slp_inst_kind_bb_reduc && matches[0])
+     {
+       unsigned n_matching = 0;
+       for (unsigned i = 0; i < group_size; ++i)
+ 	if (matches[i])
+ 	  n_matching++;
+       vec<stmt_vec_info> scalar_stmts2 = vNULL;
+       /* Try matched parts and put the rest to remain.  */
+       if (n_matching >= 2 && n_matching >= group_size / 2)
+ 	{
+ 	  /* As we know the matches[] stmts match up, recursing for
+ 	     non-power-of-two sizes will just force-fail the tail
+ 	     for us at hopefully optimal vector size and succesfully
+ 	     finish discovery.  */
+ 	  scalar_stmts2.create (n_matching);
+ 	  for (unsigned i = 0; i < group_size; ++i)
+ 	    if (matches[i])
+ 	      scalar_stmts2.quick_push (scalar_stmts[i]);
+ 	    else
+ 	      remain.safe_push
+ 		(gimple_get_lhs (vect_orig_stmt (scalar_stmts[i])->stmt));
+ 	}
+       /* Try the non-matching part.  */
+       else if (group_size - n_matching >= 2)
+ 	{
+ 	  /* We do not know whether the !matches[] part matches, so avoid
+ 	     cutting to a multiple of the vector size too early.  We should
+ 	     make progress by means of remain only growing and most of the
+ 	     time prefering the matching[] part.  */
+ 	  scalar_stmts2.create (scalar_stmts.length () - n_matching);
+ 	  for (unsigned i = 0; i < group_size; ++i)
+ 	    if (!matches[i])
+ 	      scalar_stmts2.quick_push (scalar_stmts[i]);
+ 	    else
+ 	      remain.safe_push
+ 		(gimple_get_lhs (vect_orig_stmt (scalar_stmts[i])->stmt));
+ 	}
+       if (scalar_stmts2.exists ())
+ 	{
+ 	  if (dump_enabled_p ())
+ 	    dump_printf_loc (MSG_NOTE, vect_location, "Splitting %d "
+ 			     "non-matching lanes to scalar remains\n",
+ 			     scalar_stmts.length () - scalar_stmts2.length ());
+ 	  scalar_stmts.release ();
+ 	  return vect_build_slp_instance (vinfo, kind, scalar_stmts2,
+ 					  root_stmt_infos, remain,
+ 					  max_tree_size, limit, bst_map,
+ 					  force_single_lane);
+ 	}
+     }
+ 
    /* Free the allocated memory.  */
    scalar_stmts.release ();
  
*************** vect_bb_slp_mark_live_stmts (bb_vec_info
*** 9082,9088 ****
  		    if (dump_enabled_p ())
  		      dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
  				       "Cannot determine insertion place for "
! 				       "lane extract\n");
  		    can_insert = false;
  		    break;
  		  }
--- 9139,9146 ----
  		    if (dump_enabled_p ())
  		      dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
  				       "Cannot determine insertion place for "
! 				       "lane extract of %T at node %p\n",
! 				       DEF_FROM_PTR (def_p), (void *)node);
  		    can_insert = false;
  		    break;
  		  }
*************** vect_slp_check_for_roots (bb_vec_info bb
*** 9979,9985 ****
  	      /* ???  For now do not allow mixing ops or externs/constants.  */
  	      bool invalid = false;
  	      unsigned remain_cnt = 0;
- 	      unsigned last_idx = 0;
  	      for (unsigned i = 0; i < chain.length (); ++i)
  		{
  		  if (chain[i].code != code)
--- 10037,10042 ----
*************** vect_slp_check_for_roots (bb_vec_info bb
*** 9994,10006 ****
  						      (chain[i].op)->stmt)
  			  != chain[i].op))
  		    remain_cnt++;
- 		  else
- 		    last_idx = i;
  		}
- 	      /* Make sure to have an even number of lanes as we later do
- 		 all-or-nothing discovery, not trying to split further.  */
- 	      if ((chain.length () - remain_cnt) & 1)
- 		remain_cnt++;
  	      if (!invalid && chain.length () - remain_cnt > 1)
  		{
  		  vec<stmt_vec_info> stmts;
--- 10051,10057 ----
*************** vect_slp_check_for_roots (bb_vec_info bb
*** 10013,10021 ****
  		      stmt_vec_info stmt_info;
  		      if (chain[i].dt == vect_internal_def
  			  && ((stmt_info = bb_vinfo->lookup_def (chain[i].op)),
! 			      gimple_get_lhs (stmt_info->stmt) == chain[i].op)
! 			  && (i != last_idx
! 			      || (stmts.length () & 1)))
  			stmts.quick_push (stmt_info);
  		      else
  			remain.quick_push (chain[i].op);
--- 10064,10070 ----
  		      stmt_vec_info stmt_info;
  		      if (chain[i].dt == vect_internal_def
  			  && ((stmt_info = bb_vinfo->lookup_def (chain[i].op)),
! 			      gimple_get_lhs (stmt_info->stmt) == chain[i].op))
  			stmts.quick_push (stmt_info);
  		      else
  			remain.quick_push (chain[i].op);
diff -Nrcpad gcc-17-20260712/gcc/tree-vect-stmts.cc gcc-17-20260719/gcc/tree-vect-stmts.cc
*** gcc-17-20260712/gcc/tree-vect-stmts.cc	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/tree-vect-stmts.cc	Sun Jul 19 22:32:17 2026
*************** vect_analyze_stmt (vec_info *vinfo,
*** 13384,13395 ****
  
     Create a vectorized stmt to replace STMT_INFO, and insert it at GSI.  */
  
! bool
  vect_transform_stmt (vec_info *vinfo,
  		     stmt_vec_info stmt_info, gimple_stmt_iterator *gsi,
  		     slp_tree slp_node, slp_instance slp_node_instance)
  {
-   bool is_store = false;
    bool done;
  
    gcc_assert (slp_node);
--- 13384,13394 ----
  
     Create a vectorized stmt to replace STMT_INFO, and insert it at GSI.  */
  
! void
  vect_transform_stmt (vec_info *vinfo,
  		     stmt_vec_info stmt_info, gimple_stmt_iterator *gsi,
  		     slp_tree slp_node, slp_instance slp_node_instance)
  {
    bool done;
  
    gcc_assert (slp_node);
*************** vect_transform_stmt (vec_info *vinfo,
*** 13435,13441 ****
      case store_vec_info_type:
        done = vectorizable_store (vinfo, stmt_info, gsi, slp_node, NULL);
        gcc_assert (done);
-       is_store = true;
        break;
  
      case condition_vec_info_type:
--- 13434,13439 ----
*************** vect_transform_stmt (vec_info *vinfo,
*** 13523,13530 ****
  	  gcc_assert (done);
  	}
      }
- 
-   return is_store;
  }
  
  
--- 13521,13526 ----
diff -Nrcpad gcc-17-20260712/gcc/tree-vectorizer.h gcc-17-20260719/gcc/tree-vectorizer.h
*** gcc-17-20260712/gcc/tree-vectorizer.h	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/tree-vectorizer.h	Sun Jul 19 22:32:17 2026
*************** void vect_get_vec_defs (vec_info *, slp_
*** 2596,2602 ****
  extern tree vect_init_vector (vec_info *, stmt_vec_info, tree, tree,
                                gimple_stmt_iterator *);
  extern tree vect_get_slp_vect_def (slp_tree, unsigned);
! extern bool vect_transform_stmt (vec_info *, stmt_vec_info,
  				 gimple_stmt_iterator *,
  				 slp_tree, slp_instance);
  extern void vect_remove_stores (vec_info *, stmt_vec_info);
--- 2596,2602 ----
  extern tree vect_init_vector (vec_info *, stmt_vec_info, tree, tree,
                                gimple_stmt_iterator *);
  extern tree vect_get_slp_vect_def (slp_tree, unsigned);
! extern void vect_transform_stmt (vec_info *, stmt_vec_info,
  				 gimple_stmt_iterator *,
  				 slp_tree, slp_instance);
  extern void vect_remove_stores (vec_info *, stmt_vec_info);
diff -Nrcpad gcc-17-20260712/gcc/value-range-storage.cc gcc-17-20260719/gcc/value-range-storage.cc
*** gcc-17-20260712/gcc/value-range-storage.cc	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/value-range-storage.cc	Sun Jul 19 22:32:17 2026
*************** prange_storage::equal_p (const prange &r
*** 817,822 ****
--- 817,823 ----
  
    if (m_pt != r.m_pt)
      return false;
+   // Storage objects are only equal If they point to the same memory.
    if (m_points_to_p != r.m_points_to_p)
      return false;
  
diff -Nrcpad gcc-17-20260712/gcc/value-range.h gcc-17-20260719/gcc/value-range.h
*** gcc-17-20260712/gcc/value-range.h	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/value-range.h	Sun Jul 19 22:32:17 2026
*************** prange::pt_unknown_p () const
*** 1519,1525 ****
  inline bool
  prange::pt_equal_p (const prange &p) const
  {
!   return (m_points_to_p == p.m_points_to_p && m_pt == p.m_pt);
  }
  
  inline bool
--- 1519,1529 ----
  inline bool
  prange::pt_equal_p (const prange &p) const
  {
!   // A prange object invokes vrp_operand_equal_p as we want ranges to compare
!   // equal to each other if they refer to the same object, even if the
!   // tree has become unshared.
!   return (m_points_to_p == p.m_points_to_p
! 	  && vrp_operand_equal_p (m_pt, p.m_pt));
  }
  
  inline bool
diff -Nrcpad gcc-17-20260712/gcc/value-relation.cc gcc-17-20260719/gcc/value-relation.cc
*** gcc-17-20260712/gcc/value-relation.cc	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/value-relation.cc	Sun Jul 19 22:32:17 2026
*************** dom_oracle::set_one_relation (basic_bloc
*** 1227,1233 ****
        // Check for an existing relation further up the DOM chain.
        // By including dominating relations, The first one found in any search
        // will be the aggregate of all the previous ones.
!       curr = find_relation_dom (bb, v1, v2);
        if (curr != VREL_VARYING)
  	k = relation_intersect (curr, k);
  
--- 1227,1234 ----
        // Check for an existing relation further up the DOM chain.
        // By including dominating relations, The first one found in any search
        // will be the aggregate of all the previous ones.
!       curr = find_relation_dom (get_immediate_dominator (CDI_DOMINATORS, bb),
! 				v1, v2);
        if (curr != VREL_VARYING)
  	k = relation_intersect (curr, k);
  
*************** dom_oracle::find_relation_block (int bb,
*** 1437,1461 ****
    return VREL_VARYING;
  }
  
  // Find a relation between SSA version V1 and V2 in the dominator tree
  // starting with block BB
  
  relation_kind
! dom_oracle::find_relation_dom (basic_block bb, unsigned v1, unsigned v2) const
  {
    relation_kind r;
    // IF either name does not occur in a relation anywhere, there isn't one.
    if (!bitmap_bit_p (m_relation_set, v1) || !bitmap_bit_p (m_relation_set, v2))
      return VREL_VARYING;
! 
!   for ( ; bb; bb = get_immediate_dominator (CDI_DOMINATORS, bb))
      {
        r = find_relation_block (bb->index, v1, v2);
        if (r != VREL_VARYING)
  	return r;
      }
    return VREL_VARYING;
- 
  }
  
  // Query if there is a relation between SSA1 and SS2 in block BB or a
--- 1438,1599 ----
    return VREL_VARYING;
  }
  
+ // See if a relation can be found between SSA1 and SSA2 in basic block BB based
+ // on values as they exist in basic block ORIG.   This will only occur
+ // if SSA1 and SSA2 occur in the same statement together.
+ 
+ relation_kind
+ dom_oracle::recomputed_relation (basic_block orig_bb, edge e, tree ssa1,
+ 				 tree ssa2) const
+ {
+   if (ssa1 == ssa2)
+     return VREL_EQ;
+   gori_map *gori_ssa = get_range_query (cfun)->gori_ssa ();
+   if (!gori_ssa)
+     return VREL_VARYING;
+ 
+   // If SSA1 and SSA2 are not BOTH exported from the block, theres no relation.
+   basic_block bb = e->src;
+   if (!gori_ssa->is_export_p (ssa1, bb) || !gori_ssa->is_export_p (ssa2, bb))
+     return VREL_VARYING;
+ 
+   // Verify the edge is a range generating edge.
+   gimple_outgoing_range &gori = get_range_query (cfun)->gori ();
+   int_range_max edge_range;
+   gimple *stmt = gori.edge_range_p (edge_range, e);
+   if (!stmt)
+     return VREL_VARYING;
+ 
+   // Scan back thru the dependency chain recalculating values as if they are
+   // in ORIG_BB, and see if we can find a statement with both op1 and op2
+   // which generates a relation.
+ 
+   value_range lhs_range (edge_range);
+ 
+   while (stmt)
+     {
+       bool ret;
+       gimple_range_op_handler handler (stmt);
+       if (!handler)
+ 	return VREL_VARYING;
+ 
+       tree op1 = handler.operand1 ();
+       tree op2 = handler.operand2 ();
+       value_range op1_range (TREE_TYPE (op1));
+       value_range op2_range;
+ 
+       // Check if this is the statment we are looking for!
+       bool match = (op1 == ssa1 && op2 == ssa2);
+       bool match_rev = (op2 == ssa1 && op1 == ssa2);
+       if (match || match_rev)
+ 	{
+ 	  gcc_checking_assert (op2);
+ 	  op2_range.set_range_class (TREE_TYPE (op2));
+ 	  // Pick up the ranges at ORIG_BB, and see if a relation is generated.
+ 	  get_range_query (cfun)->range_on_entry (op1_range, orig_bb, op1);
+ 	  get_range_query (cfun)->range_on_entry (op2_range, orig_bb, op2);
+ 	  relation_kind relation = handler.op1_op2_relation (lhs_range,
+ 							      op1_range,
+ 							      op2_range);
+ 	  // If the operands are reversed, swap the relation.
+ 	  if (match_rev)
+ 	    relation = relation_swap (relation);
+ 	  return relation;
+ 	}
+ 
+       // Now determine if one of the operands has both SSA1 and SSA2 in
+       // the dependency chain.  Thats the path we want to follow.
+       bool op1_dep = gimple_range_ssa_p (op1)
+ 		     && gori_ssa->in_chain_p (ssa1, op1)
+ 		     && gori_ssa->in_chain_p (ssa2, op1);
+       bool op2_dep = gimple_range_ssa_p (op2)
+ 		     && gori_ssa->in_chain_p (ssa1, op2)
+ 		     && gori_ssa->in_chain_p (ssa2, op2);
+       // If there are no dependencies with both names, or both sides have
+       // both names, simply bail.
+       if (op1_dep == op2_dep)
+ 	return VREL_VARYING;
+ 
+       if (op1_dep)
+ 	{
+ 	  // If operand 1 is the chain we are interested in, calcualte its
+ 	  // range based on LHS_RANGE.
+ 	  if (!op2)
+ 	    ret = handler.calc_op1 (op1_range, lhs_range);
+ 	  else
+ 	    {
+ 	      // Pick up the range of op2 as it occurs in the original block.
+ 	      // and calculate a range for op1.
+ 	      op2_range.set_range_class (TREE_TYPE (op2));
+ 	      get_range_query (cfun)->range_on_entry (op2_range, orig_bb, op2);
+ 	      ret = handler.calc_op1 (op1_range, lhs_range, op2_range);
+ 	    }
+ 	  // If we failed to calculate a range for op1, bail.
+ 	  if (!ret)
+ 	    return VREL_VARYING;
+ 
+ 	  // op1_range will now become the LHS_RANGE for the def statement.
+ 	  lhs_range = op1_range;
+ 	  stmt = SSA_NAME_DEF_STMT (op1);
+ 	}
+       else if (op2_dep)
+ 	{
+ 	  // Pick up the range of op1 as it occurs in the original block.
+ 	  // and calcalute a range for op2.
+ 	  op2_range.set_range_class (TREE_TYPE (op2));
+ 	  get_range_query (cfun)->range_on_entry (op1_range, orig_bb, op1);
+ 	  ret = handler.calc_op2 (op2_range, lhs_range, op1_range);
+ 	  // If we failed to calculate a range for op1, bail.
+ 	  if (!ret)
+ 	    return VREL_VARYING;
+ 
+ 	  // op2_range will now become the LHS_RANGE for the def statement.
+ 	  lhs_range = op2_range;
+ 	  stmt = SSA_NAME_DEF_STMT (op2);
+ 	}
+       else
+ 	gcc_unreachable ();
+ 
+       // Bail if this ssa-name is defined outside this block.
+       if (!stmt || gimple_bb (stmt) != e->src)
+ 	return VREL_VARYING;
+     }
+   return VREL_VARYING;
+ }
+ 
  // Find a relation between SSA version V1 and V2 in the dominator tree
  // starting with block BB
  
  relation_kind
! dom_oracle::find_relation_dom (basic_block start_bb, unsigned v1, unsigned v2) const
  {
    relation_kind r;
    // IF either name does not occur in a relation anywhere, there isn't one.
    if (!bitmap_bit_p (m_relation_set, v1) || !bitmap_bit_p (m_relation_set, v2))
      return VREL_VARYING;
!   edge outgoing_edge = NULL;
!   tree ssa1 = ssa_name (v1);
!   tree ssa2 = ssa_name (v2);
!   for (basic_block bb = start_bb;
!        bb;
!        bb = get_immediate_dominator (CDI_DOMINATORS, bb))
      {
        r = find_relation_block (bb->index, v1, v2);
+       // Now check if recomputed values on the outgoing edge might create
+       // a relation.
+       if (r == VREL_VARYING && outgoing_edge)
+ 	{
+ 	  gcc_checking_assert (outgoing_edge->src == bb);
+ 	  r = recomputed_relation (start_bb, outgoing_edge, ssa1, ssa2);
+ 	}
        if (r != VREL_VARYING)
  	return r;
+ 
+       // If the dominator is not the only predecessor to this block, there is
+       // unlikely to be a viable relation available.
+       outgoing_edge = single_pred_p (bb) ? single_pred_edge (bb) : NULL;
      }
    return VREL_VARYING;
  }
  
  // Query if there is a relation between SSA1 and SS2 in block BB or a
*************** path_oracle::query (basic_block bb, cons
*** 1710,1715 ****
--- 1848,1854 ----
        || bitmap_intersect_p (m_killed_defs, b2))
      return k;
  
+   // Query the root oracle for relations with path local equivalencies.
    if (k == VREL_VARYING && m_root)
      k = m_root->query (bb, b1, b2);
  
*************** path_oracle::query (basic_block bb, tree
*** 1733,1739 ****
    if (bitmap_bit_p (equiv_1, v2) && bitmap_bit_p (equiv_2, v1))
      return VREL_EQ;
  
!   return query (bb, equiv_1, equiv_2);
  }
  
  // Reset any relations registered on this path.  ORACLE is the root
--- 1872,1883 ----
    if (bitmap_bit_p (equiv_1, v2) && bitmap_bit_p (equiv_2, v1))
      return VREL_EQ;
  
!   relation_kind rel = query (bb, equiv_1, equiv_2);
! 
!   // If the path relation query fails, check for relations in the root oracle.
!   if (rel == VREL_VARYING && m_root)
!       rel = m_root->query (bb, ssa1, ssa2);
!   return rel;
  }
  
  // Reset any relations registered on this path.  ORACLE is the root
diff -Nrcpad gcc-17-20260712/gcc/value-relation.h gcc-17-20260719/gcc/value-relation.h
*** gcc-17-20260712/gcc/value-relation.h	Sun Jul 12 22:32:17 2026
--- gcc-17-20260719/gcc/value-relation.h	Sun Jul 19 22:32:17 2026
*************** protected:
*** 251,257 ****
    relation_chain *set_one_relation (basic_block bb, relation_kind k, tree op1,
  				    tree op2);
    void register_transitives (basic_block, const class value_relation &);
! 
  };
  
  // A path_oracle implements relations in a list.  The only sense of ordering
--- 251,257 ----
    relation_chain *set_one_relation (basic_block bb, relation_kind k, tree op1,
  				    tree op2);
    void register_transitives (basic_block, const class value_relation &);
!   relation_kind recomputed_relation (basic_block, edge, tree, tree) const;
  };
  
  // A path_oracle implements relations in a list.  The only sense of ordering
diff -Nrcpad gcc-17-20260712/libcpp/ChangeLog gcc-17-20260719/libcpp/ChangeLog
*** gcc-17-20260712/libcpp/ChangeLog	Sun Jul 12 22:32:18 2026
--- gcc-17-20260719/libcpp/ChangeLog	Sun Jul 19 22:32:17 2026
***************
*** 1,3 ****
--- 1,12 ----
+ 2026-07-17  Lewis Hyatt  <lhyatt@gmail.com>
+ 
+ 	* include/line-map.h (linemap_next_start_location): New function.
+ 	(linemap_add_raw_map): Declare new function.
+ 	* line-map.cc (linemap_add): Minor refactor to make use of
+ 	linemap_next_start_location().
+ 	(linemap_add_raw_map): New function.
+ 	(linemap_lookup): Update the comment for clarity.
+ 
  2026-06-30  Jakub Jelinek  <jakub@redhat.com>
  
  	PR c++/125837
diff -Nrcpad gcc-17-20260712/libcpp/include/line-map.h gcc-17-20260719/libcpp/include/line-map.h
*** gcc-17-20260712/libcpp/include/line-map.h	Sun Jul 12 22:32:18 2026
--- gcc-17-20260719/libcpp/include/line-map.h	Sun Jul 19 22:32:17 2026
*************** extern location_t linemap_line_start
*** 1071,1076 ****
--- 1071,1085 ----
  /* Allocate a raw block of line maps, zero initialized.  */
  extern line_map *line_map_new_raw (line_maps *, bool, line_map_uint_t);
  
+ /* Return the location_t at which a new line map with RANGE_BITS range bits
+    would begin, if it needs to begin at least at START_LOC.  */
+ inline location_t
+ linemap_next_start_location (location_t start_loc, int range_bits)
+ {
+   const auto mask = (location_t (1) << range_bits) - 1;
+   return (start_loc + mask) & ~mask;
+ }
+ 
  /* Add a mapping of logical source line to physical source file and
     line number. This function creates an "ordinary map", which is a
     map that records locations of tokens that are not part of macro
*************** extern const line_map *linemap_add
*** 1088,1093 ****
--- 1097,1113 ----
    (class line_maps *, enum lc_reason, unsigned int sysp,
     const char *to_file, linenum_type to_line);
  
+ /* Create a map with exactly the requested parameters.  Not intended for general
+    use, but useful for applications that need to work with linemap internals
+    directly.  NUM_LINES is the number of lines this map should be able to hold;
+    this just ensures that set->highest_location is set properly so that the next
+    added map will leave sufficient room for NUM_LINES lines in this map.  */
+ extern line_map_ordinary *
+ linemap_add_raw_map (line_maps *set, lc_reason reason, location_t start_loc,
+ 		     unsigned int sysp, int column_and_range_bits,
+ 		     int range_bits, const char *to_file, linenum_type to_line,
+ 		     line_map_uint_t num_lines);
+ 
  /* Create a macro map.  A macro map encodes source locations of tokens
     that are part of a macro replacement-list, at a macro expansion
     point. See the extensive comments of struct line_map and struct
*************** extern location_t linemap_module_restore
*** 1128,1137 ****
  
  /* Given a logical source location, returns the map which the
     corresponding (source file, line, column) triplet can be deduced
!    from. Since the set is built chronologically, the logical lines are
!    monotonic increasing, and so the list is sorted and we can use a
!    binary search. If no line map have been allocated yet, this
!    function returns NULL.  */
  extern const line_map *linemap_lookup
    (const line_maps *, location_t);
  
--- 1148,1155 ----
  
  /* Given a logical source location, returns the map which the
     corresponding (source file, line, column) triplet can be deduced
!    from.  Since the start_location of each map is monotonic increasing,
!    this can be done with binary search.  */
  extern const line_map *linemap_lookup
    (const line_maps *, location_t);
  
diff -Nrcpad gcc-17-20260712/libcpp/line-map.cc gcc-17-20260719/libcpp/line-map.cc
*** gcc-17-20260712/libcpp/line-map.cc	Sun Jul 12 22:32:18 2026
--- gcc-17-20260719/libcpp/line-map.cc	Sun Jul 19 22:32:17 2026
*************** linemap_add (line_maps *set, enum lc_rea
*** 576,584 ****
    unsigned range_bits = 0;
    if (start_location < LINE_MAP_MAX_LOCATION_WITH_COLS)
      range_bits = set->default_range_bits;
!   start_location += (loc_one << range_bits) - 1;
!   start_location &=  ~((loc_one << range_bits) - 1);
! 
    linemap_assert (!LINEMAPS_ORDINARY_USED (set)
  		  || (start_location
  		      >= MAP_START_LOCATION (LINEMAPS_LAST_ORDINARY_MAP (set))));
--- 576,582 ----
    unsigned range_bits = 0;
    if (start_location < LINE_MAP_MAX_LOCATION_WITH_COLS)
      range_bits = set->default_range_bits;
!   start_location = linemap_next_start_location (start_location, range_bits);
    linemap_assert (!LINEMAPS_ORDINARY_USED (set)
  		  || (start_location
  		      >= MAP_START_LOCATION (LINEMAPS_LAST_ORDINARY_MAP (set))));
*************** linemap_add (line_maps *set, enum lc_rea
*** 712,717 ****
--- 710,750 ----
    return map;
  }
  
+ /* Create a map with exactly the requested parameters.  Not intended for general
+    use, but useful for applications that need to work with linemap internals
+    directly.  NUM_LINES is the number of lines this map should be able to hold;
+    this just ensures that set->highest_location is set properly so that the next
+    added map will leave sufficient room for NUM_LINES lines in this map.  */
+ 
+ line_map_ordinary *
+ linemap_add_raw_map (line_maps *set, lc_reason reason, location_t start_loc,
+ 		     unsigned int sysp, int column_and_range_bits,
+ 		     int range_bits, const char *to_file, linenum_type to_line,
+ 		     line_map_uint_t num_lines)
+ {
+   start_loc = linemap_next_start_location (start_loc, range_bits);
+   gcc_assert (start_loc > set->highest_location);
+   location_t last_loc = start_loc + (loc_one << column_and_range_bits) - 1;
+   if (num_lines > 1)
+     last_loc += (num_lines - 1) << column_and_range_bits;
+   if (last_loc >= LINE_MAP_MAX_LOCATION)
+     return nullptr;
+   const auto map = linemap_check_ordinary (new_linemap (set, start_loc));
+   map->reason = reason;
+   map->sysp = sysp;
+   map->m_column_and_range_bits = column_and_range_bits;
+   map->m_range_bits = range_bits;
+   map->to_file = to_file;
+   map->to_line = to_line;
+   set->info_ordinary.m_cache = LINEMAPS_ORDINARY_USED (set) - 1;
+   set->highest_location = last_loc;
+   set->highest_line
+     = start_loc + ((last_loc - start_loc)
+ 		   & (line_map_uint_t (-1) << column_and_range_bits));
+   set->max_column_hint = 1U << (column_and_range_bits - range_bits);
+   return map;
+ }
+ 
  /* Create a location for a module NAME imported at FROM.  */
  
  location_t
*************** linemap_lookup (const line_maps *set, lo
*** 1153,1162 ****
    return linemap_ordinary_map_lookup (set, line);
  }
  
! /* Given a source location yielded by an ordinary map, returns that
!    map.  Since the set is built chronologically, the logical lines are
!    monotonic increasing, and so the list is sorted and we can use a
!    binary search.  */
  
  static const line_map_ordinary *
  linemap_ordinary_map_lookup (const line_maps *set, location_t line)
--- 1186,1198 ----
    return linemap_ordinary_map_lookup (set, line);
  }
  
! /* Given a source location yielded by an ordinary map, returns that map.  Since
!    the start_location of each map is larger than the prior one, this can be done
!    with binary search.  Note that the line maps are not necessarily sorted by
!    file name or by line number, although they often are, at least in a local
!    region, since things like #line directives, multiple includes, or
!    manipulations outside the normal usage during parsing can all affect the
!    sorting.  But they are always sorted by start_location.  */
  
  static const line_map_ordinary *
  linemap_ordinary_map_lookup (const line_maps *set, location_t line)
diff -Nrcpad gcc-17-20260712/libgcobol/ChangeLog gcc-17-20260719/libgcobol/ChangeLog
*** gcc-17-20260712/libgcobol/ChangeLog	Sun Jul 12 22:32:18 2026
--- gcc-17-20260719/libgcobol/ChangeLog	Sun Jul 19 22:32:17 2026
***************
*** 1,3 ****
--- 1,28 ----
+ 2026-07-17  Robert Dubner  <rdubner@symas.com>
+ 
+ 	* charmaps.h (ebcdic_newline): Use just SPACES instead of both
+ 	SPACE and SPACES.
+ 	* constants.cc (INTEGER_CONSTANT1): Eliminate.
+ 	(struct cblc_field_t): Eliminate __gg__data_space.
+ 	(INTEGER_CONSTANT2): Eliminate.
+ 	(endian): Adjust the initialization of __ggsr__spaces and the
+ 	various DEBUG-ITEM components.
+ 	* libgcobol.cc (alpha_to_alpha_move_from_location): Correct a comment.
+ 	(__gg__codeset_figurative_constants): Normalize using SPACES when SPACE is
+ 	specified.
+ 	(__gg__get_figconst_data): Likewise.
+ 
+ 2026-07-16  Robert Dubner  <rdubner@symas.com>
+ 
+ 	PR cobol/126277
+ 	* constants.cc (struct cblc_field_t): Adjust initialization of
+ 	DEBUG-ITEM fields.
+ 
+ 2026-07-15  James K. Lowden  <jklowden@cobolworx.com>
+ 
+ 	* compat/gnu/lib/CBL_CREATE_FILE.cbl: Do not write to input parameter.
+ 	* compat/gnu/lib/CBL_OPEN_FILE.cbl: Same.
+ 
  2026-07-11  Robert Dubner  <rdubner@symas.com>
  
  	* charmaps.cc (helpful_iconv_open): Use snprintf() instead of strncpy().
diff -Nrcpad gcc-17-20260712/libgcobol/charmaps.h gcc-17-20260719/libgcobol/charmaps.h
*** gcc-17-20260712/libgcobol/charmaps.h	Sun Jul 12 22:32:18 2026
--- gcc-17-20260719/libgcobol/charmaps.h	Sun Jul 19 22:32:17 2026
*************** enum
*** 280,286 ****
  #define ebcdic_minus           ((uint8_t)(0x60))
  #define ebcdic_newline         ((uint8_t)(0x25))
  
! extern unsigned char __gg__data_space[1]       ;
  extern unsigned char __gg__data_low_values[1]  ;
  extern unsigned char __gg__data_zeros[1]       ;
  extern unsigned char __gg__data_high_values[1] ;
--- 280,286 ----
  #define ebcdic_minus           ((uint8_t)(0x60))
  #define ebcdic_newline         ((uint8_t)(0x25))
  
! extern unsigned char __gg__data_spaces[1]      ;
  extern unsigned char __gg__data_low_values[1]  ;
  extern unsigned char __gg__data_zeros[1]       ;
  extern unsigned char __gg__data_high_values[1] ;
diff -Nrcpad gcc-17-20260712/libgcobol/compat/gnu/lib/CBL_CREATE_FILE.cbl gcc-17-20260719/libgcobol/compat/gnu/lib/CBL_CREATE_FILE.cbl
*** gcc-17-20260712/libgcobol/compat/gnu/lib/CBL_CREATE_FILE.cbl	Sun Jul 12 22:32:18 2026
--- gcc-17-20260719/libgcobol/compat/gnu/lib/CBL_CREATE_FILE.cbl	Sun Jul 19 22:32:17 2026
***************
*** 47,64 ****
         77  func-ret             Binary-Long.
         77  errno-val            Binary-Long.
         77  lk-mode              PIC 9(8) COMP-5.
         77  filename-len         PIC 9(4) BINARY VALUE ZERO.
         01  ws-access-mode       PIC 9(8) COMP-5.
  
         LINKAGE SECTION.
         77  RETCODE              PIC X(2) COMP-5.
!        01  filename  	          PIC X ANY LENGTH.
         01  access-mode          PIC x COMP-x.
         01  deny-mode            PIC x comp-x.  *>  Not supported (must be 0).
         01  device               PIC x comp-x.  *>  Not supported (must be 0).
         01  file-handle          PIC X(4) COMP-5.
  
!        PROCEDURE DIVISION USING filename,
                         By Reference access-mode,
                         By Reference deny-mode,
                         By Reference device,
--- 47,66 ----
         77  func-ret             Binary-Long.
         77  errno-val            Binary-Long.
         77  lk-mode              PIC 9(8) COMP-5.
+        01  filename-max         CONSTANT AS 8 * 1024.
+        01  filename 	        PIC X(filename-max).
         77  filename-len         PIC 9(4) BINARY VALUE ZERO.
         01  ws-access-mode       PIC 9(8) COMP-5.
  
         LINKAGE SECTION.
         77  RETCODE              PIC X(2) COMP-5.
!        01  Lk-filename 	        PIC X ANY LENGTH.
         01  access-mode          PIC x COMP-x.
         01  deny-mode            PIC x comp-x.  *>  Not supported (must be 0).
         01  device               PIC x comp-x.  *>  Not supported (must be 0).
         01  file-handle          PIC X(4) COMP-5.
  
!        PROCEDURE DIVISION USING Lk-filename,
                         By Reference access-mode,
                         By Reference deny-mode,
                         By Reference device,
***************
*** 72,79 ****
             END-IF.
  
             COMPUTE filename-len =
!                 FUNCTION LENGTH(FUNCTION TRIM(filename)).
!            MOVE X"00" TO filename(filename-len + 1:1).
        D     Display 'CBL_CREATE_FILE: filename: [' filename ']'
        D     Display               'ws-access-mode: ' ws-access-mode ', '
        D     Display                 'deny-mode: ' deny-mode.
--- 74,80 ----
             END-IF.
  
             COMPUTE filename-len =
!                 FUNCTION LENGTH(FUNCTION TRIM(Lk-filename)).
        D     Display 'CBL_CREATE_FILE: filename: [' filename ']'
        D     Display               'ws-access-mode: ' ws-access-mode ', '
        D     Display                 'deny-mode: ' deny-mode.
***************
*** 94,111 ****
             Compute ws-access-mode = ws-access-mode + O_CREAT + O_TRUNC.
             Compute Lk-mode = S_IRUSR + S_IWUSR + S_IRGRP + S_IWGRP.
  
!            MOVE FUNCTION posix-open(filename, ws-access-mode, lk-mode)
!              TO func-ret.
  
             If func-ret is < 0
             Then
                 Move Function COBRT-FILE-STATUS() to RETCODE
        D        Display 'COBRT-FILE-STATUS returned: ' RETCODE
             else
                 Move func-ret to file-handle
                 Move 0 to RETCODE
             end-if.
! 
             END PROGRAM CBL_CREATE_FILE.
  
          >> POP SOURCE FORMAT
--- 95,125 ----
             Compute ws-access-mode = ws-access-mode + O_CREAT + O_TRUNC.
             Compute Lk-mode = S_IRUSR + S_IWUSR + S_IRGRP + S_IWGRP.
  
!            IF Lk-filename(filename-len:1) = ZERO
!              MOVE FUNCTION posix-open(Lk-filename,
!                                       ws-access-mode, lk-mode)
!                TO func-ret
!            ELSE
!              IF filename-max < filename-len + 1
!                MOVE 30 to RETCODE
!                GOBACK
!              END-IF
!              MOVE Lk-filename to filename
!              MOVE ZERO TO filename(filename-len + 1:1)
!              MOVE FUNCTION posix-open(filename, ws-access-mode, lk-mode)
!                TO func-ret
!            END-IF
  
             If func-ret is < 0
             Then
                 Move Function COBRT-FILE-STATUS() to RETCODE
        D        Display 'COBRT-FILE-STATUS returned: ' RETCODE
+       D                ' for errno ' func-ret
             else
                 Move func-ret to file-handle
                 Move 0 to RETCODE
             end-if.
!            
             END PROGRAM CBL_CREATE_FILE.
  
          >> POP SOURCE FORMAT
diff -Nrcpad gcc-17-20260712/libgcobol/compat/gnu/lib/CBL_OPEN_FILE.cbl gcc-17-20260719/libgcobol/compat/gnu/lib/CBL_OPEN_FILE.cbl
*** gcc-17-20260712/libgcobol/compat/gnu/lib/CBL_OPEN_FILE.cbl	Sun Jul 12 22:32:18 2026
--- gcc-17-20260719/libgcobol/compat/gnu/lib/CBL_OPEN_FILE.cbl	Sun Jul 19 22:32:17 2026
***************
*** 48,65 ****
         WORKING-STORAGE SECTION.
         77  errno-val            Binary-Long.
         01  ws-access-mode PIC 9(8) comp-5.
         LINKAGE SECTION.
         01  RETCODE     PIC X(2) COMP-5 VALUE 0.
         01  REDEFINES RETCODE.
          03 MSB PIC X.
          03 LSB BINARY-CHAR.
!        01  filename 	 PIC X ANY LENGTH.
         01  access-mode PIC X COMP-X.
         01  deny-mode   PIC X COMP-X.  *>  Not supported (must be 0).
         01  device      PIC X COMP-X.  *>  Not supported (must be 0).
         01  file-handle PIC X(4) COMP-5.
  
!        PROCEDURE DIVISION USING filename,
                         By Reference access-mode,
                         By Reference deny-mode,
                         By Reference device,
--- 48,68 ----
         WORKING-STORAGE SECTION.
         77  errno-val            Binary-Long.
         01  ws-access-mode PIC 9(8) comp-5.
+        01  filename-max         CONSTANT AS 8 * 1024.
+        01  filename 	        PIC X(filename-max).
+        77  filename-len         PIC 9(4) BINARY VALUE ZERO.
         LINKAGE SECTION.
         01  RETCODE     PIC X(2) COMP-5 VALUE 0.
         01  REDEFINES RETCODE.
          03 MSB PIC X.
          03 LSB BINARY-CHAR.
!        01  Lk-filename 	 PIC X ANY LENGTH.
         01  access-mode PIC X COMP-X.
         01  deny-mode   PIC X COMP-X.  *>  Not supported (must be 0).
         01  device      PIC X COMP-X.  *>  Not supported (must be 0).
         01  file-handle PIC X(4) COMP-5.
  
!        PROCEDURE DIVISION USING Lk-filename,
                         By Reference access-mode,
                         By Reference deny-mode,
                         By Reference device,
***************
*** 88,95 ****
                   GOBACK
              END-EVALUATE.
  
!            MOVE FUNCTION posix-open(filename, ws-access-mode, deny-mode)
!                TO errno-val.
        D     Display 'CBL_OPEN_FILE: RETCODE: ' RETCODE.
             If errno-val is < 0
             then
--- 91,116 ----
                   GOBACK
              END-EVALUATE.
  
!            COMPUTE filename-len =
!                 FUNCTION LENGTH(FUNCTION TRIM(Lk-filename)).
! 
!       * If Lk-filename ends in NUL, use it ... 
!            IF Lk-filename(filename-len:1) = ZERO
!               MOVE FUNCTION posix-open(Lk-filename,
!                                        ws-access-mode, deny-mode)
!                   TO errno-val
!       * ... else make a copy and terminate it with a NUL, unless it's too long. 
!             ELSE
!               IF filename-max < filename-len + 1
!                 MOVE 30 to RETCODE
!                 GOBACK
!               END-IF
!               MOVE Lk-filename to filename
!               MOVE ZERO TO filename(filename-len + 1:1)
!               MOVE FUNCTION posix-open(filename,
!                                        ws-access-mode, deny-mode)
!                    TO errno-val
!             END-IF.
        D     Display 'CBL_OPEN_FILE: RETCODE: ' RETCODE.
             If errno-val is < 0
             then
diff -Nrcpad gcc-17-20260712/libgcobol/constants.cc gcc-17-20260719/libgcobol/constants.cc
*** gcc-17-20260712/libgcobol/constants.cc	Sun Jul 12 22:32:18 2026
--- gcc-17-20260719/libgcobol/constants.cc	Sun Jul 19 22:32:17 2026
***************
*** 48,53 ****
--- 48,54 ----
  #include "io.h"
  #include "common-defs.h"
  #include "gcobolio.h"
+ #include "cobol-endian.h"
  
  #pragma GCC diagnostic push
  #pragma GCC diagnostic ignored "-Wwrite-strings"
***************
*** 58,141 ****
  // initialization happens just once.
  int __gg__globals_are_initialized = 0;
  
- // We have a number of integer constants.  We need two macros, one for 1-digit
- // names and a second for 2-digit names in order to match our mangling
- // convention for variable names that start with a numeric:
- 
- //  4 becomes _1_4
- //  _ indicates this is a mangled name
- //  1 means it is one character long
- //  _ terminates the 1
- //  4 is the one-character name
- 
- #define INTEGER_CONSTANT1(a) \
- unsigned char __gg__data_##a[1] = {(a)};  \
- struct cblc_field_t __ggsr___1_##a = {    \
-   .data           =  __gg__data_##a ,         \
-   .capacity       = 1 ,                 \
-   .allocated      = 1 ,                 \
-   .offset         = 0 ,                 \
-   .name           = #a ,                \
-   .picture        = "" ,                \
-   .initial        = #a ,                \
-   .parent         = NULL,               \
-   .occurs_lower   = 0 ,                 \
-   .occurs_upper   = 0 ,                 \
-   .attr           = global_e | constant_e , \
-   .type           = FldLiteralN ,       \
-   .level          = 0 ,                 \
-   .digits         = 0 ,                 \
-   .rdigits        = 0 ,                 \
-   .dummy          = 0 ,                 \
-   };
- 
- #define INTEGER_CONSTANT2(a) \
- unsigned char __gg__data_##a[1] = {(a)};  \
- struct cblc_field_t __ggsr___2_##a = {    \
-   .data           = __gg__data_##a ,         \
-   .capacity       = 1 ,                 \
-   .allocate       = 1 ,                 \
-   .offset         = 0 ,                 \
-   .name           = #a ,                \
-   .picture        = "" ,                \
-   .initial        = #a ,                \
-   .parent         = NULL,               \
-   .occurs_lower   = 0 ,                 \
-   .occurs_upper   = 0 ,                 \
-   .attr           = global_e | constant_e , \
-   .type           = FldLiteralN ,       \
-   .level          = 0 ,                 \
-   .digits         = 0 ,                 \
-   .rdigits        = 0 ,                 \
-   .encoding       = iconv_CP1252_e                   \
-   .alphabet       = 0                   \
-   };
  
! unsigned char __gg__data_space[1] = {' '};
! struct cblc_field_t __ggsr__space = {
!   .data           = __gg__data_space ,
!   .capacity       = sizeof(__gg__data_space) ,
!   .allocated      = sizeof(__gg__data_space) ,
!   .offset         = 0 ,
!   .name           = "SPACE" ,
!   .picture        = "" ,
!   .initial        = (char *)space_value_e ,
!   .parent         = NULL,
!   .occurs_lower   = 0 ,
!   .occurs_upper   = 0 ,
!   .attr           = quoted_e | constant_e | space_value_e ,
!   .type           = FldAlphanumeric ,
!   .level          = 0 ,
!   .digits         = 0 ,
!   .rdigits        = 0 ,
!   .encoding       = iconv_CP1252_e ,
!   .alphabet       = 0 ,
!   };
  
  struct cblc_field_t __ggsr__spaces = {
!   .data           = __gg__data_space ,
!   .capacity       = sizeof(__gg__data_space) ,
!   .allocated      = sizeof(__gg__data_space) ,
    .offset         = 0 ,
    .name           = "SPACES" ,
    .picture        = "" ,
--- 59,76 ----
  // initialization happens just once.
  int __gg__globals_are_initialized = 0;
  
  
! #if COBOL_BIG_ENDIAN
! #define endian big_endian_e
! #else
! #define endian none_e
! #endif
  
+ unsigned char __gg__data_spaces[1] = {' '};
  struct cblc_field_t __ggsr__spaces = {
!   .data           = __gg__data_spaces ,
!   .capacity       = 1 ,
!   .allocated      = 1 ,
    .offset         = 0 ,
    .name           = "SPACES" ,
    .picture        = "" ,
*************** struct cblc_field_t __ggsr__spaces = {
*** 143,149 ****
    .parent         = NULL,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = quoted_e | constant_e | space_value_e ,
    .type           = FldAlphanumeric ,
    .level          = 0 ,
    .digits         = 0 ,
--- 78,84 ----
    .parent         = NULL,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = quoted_e | constant_e | register_e | space_value_e,
    .type           = FldAlphanumeric ,
    .level          = 0 ,
    .digits         = 0 ,
*************** struct cblc_field_t __ggsr__low_values =
*** 164,170 ****
    .parent         = NULL,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = 0x281 ,
    .type           = FldAlphanumeric ,
    .level          = 0 ,
    .digits         = 0 ,
--- 99,105 ----
    .parent         = NULL,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = quoted_e | constant_e | register_e | low_value_e ,
    .type           = FldAlphanumeric ,
    .level          = 0 ,
    .digits         = 0 ,
*************** struct cblc_field_t __ggsr__zeros = {
*** 185,191 ****
    .parent         = NULL ,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = 0x83 ,
    .type           = FldAlphanumeric ,
    .level          = 0 ,
    .digits         = 0 ,
--- 120,126 ----
    .parent         = NULL ,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = quoted_e | constant_e | register_e | zero_value_e ,
    .type           = FldAlphanumeric ,
    .level          = 0 ,
    .digits         = 0 ,
*************** struct cblc_field_t __ggsr__high_values
*** 206,212 ****
    .parent         = NULL,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = 0x286 ,
    .type           = FldAlphanumeric ,
    .level          = 0 ,
    .digits         = 0 ,
--- 141,147 ----
    .parent         = NULL,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = quoted_e | constant_e | register_e | high_value_e ,
    .type           = FldAlphanumeric ,
    .level          = 0 ,
    .digits         = 0 ,
*************** struct cblc_field_t __ggsr__quotes = {
*** 227,233 ****
    .parent         = NULL,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = 0x285 ,
    .type           = FldAlphanumeric ,
    .level          = 0 ,
    .digits         = 0 ,
--- 162,168 ----
    .parent         = NULL,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = quoted_e | constant_e | register_e | quote_value_e ,
    .type           = FldAlphanumeric ,
    .level          = 0 ,
    .digits         = 0 ,
*************** struct cblc_field_t __ggsr__nulls = {
*** 248,254 ****
    .parent         = NULL,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = quoted_e | constant_e ,
    .type           = FldPointer ,
    .level          = 0 ,
    .digits         = 0 ,
--- 183,189 ----
    .parent         = NULL,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = constant_e | register_e | null_value_e ,
    .type           = FldPointer ,
    .level          = 0 ,
    .digits         = 0 ,
*************** struct cblc_field_t __ggsr___file_status
*** 269,275 ****
    .parent         = NULL,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = 0x0 ,
    .type           = FldNumericDisplay ,
    .level          = 0 ,
    .digits         = 2 ,
--- 204,210 ----
    .parent         = NULL,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = register_e ,
    .type           = FldNumericDisplay ,
    .level          = 0 ,
    .digits         = 2 ,
*************** struct cblc_field_t __ggsr__upsi_0 = {
*** 291,297 ****
    .parent         = NULL,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = 0x0 ,
    .type           = FldNumericBin5 ,
    .level          = 0 ,
    .digits         = 4 ,
--- 226,232 ----
    .parent         = NULL,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = register_e | endian,
    .type           = FldNumericBin5 ,
    .level          = 0 ,
    .digits         = 4 ,
*************** struct cblc_field_t __ggsr___dev_stdin =
*** 312,318 ****
    .parent         = NULL,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = 0x0 ,
    .type           = FldLiteralA ,
    .level          = 0 ,
    .digits         = 0 ,
--- 247,253 ----
    .parent         = NULL,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = constant_e | quoted_e | register_e ,
    .type           = FldLiteralA ,
    .level          = 0 ,
    .digits         = 0 ,
*************** struct cblc_field_t __ggsr___dev_stdout
*** 333,339 ****
    .parent         = NULL,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = 0x0 ,
    .type           = FldLiteralA ,
    .level          = 0 ,
    .digits         = 0 ,
--- 268,274 ----
    .parent         = NULL,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = constant_e | quoted_e | register_e ,
    .type           = FldLiteralA ,
    .level          = 0 ,
    .digits         = 0 ,
*************** struct cblc_field_t __ggsr___dev_stderr
*** 354,360 ****
    .parent         = NULL,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = 0x0 ,
    .type           = FldLiteralA ,
    .level          = 0 ,
    .digits         = 0 ,
--- 289,295 ----
    .parent         = NULL,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = constant_e | quoted_e | register_e ,
    .type           = FldLiteralA ,
    .level          = 0 ,
    .digits         = 0 ,
*************** struct cblc_field_t __ggsr___dev_null =
*** 375,381 ****
    .parent         = NULL,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = 0x0 ,
    .type           = FldLiteralA ,
    .level          = 0 ,
    .digits         = 0 ,
--- 310,316 ----
    .parent         = NULL,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = constant_e | quoted_e | register_e ,
    .type           = FldLiteralA ,
    .level          = 0 ,
    .digits         = 0 ,
*************** struct cblc_field_t __ggsr___dev_null =
*** 384,390 ****
    .alphabet       = 0 ,
    };
  
! unsigned char __gg__data_argi[] = {0,0};
  struct cblc_field_t __ggsr__argi = {
    .data           = __gg__data_argi ,
    .capacity       = 4 ,
--- 319,325 ----
    .alphabet       = 0 ,
    };
  
! unsigned char __gg__data_argi[] = {0,0,0,0};
  struct cblc_field_t __ggsr__argi = {
    .data           = __gg__data_argi ,
    .capacity       = 4 ,
*************** struct cblc_field_t __ggsr__argi = {
*** 396,410 ****
    .parent         = NULL,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = global_e ,
    .type           = FldNumericBin5 ,
    .level          = 0 ,
!   .digits         = 5 ,
    .rdigits        = 0 ,
    .encoding       = iconv_CP1252_e ,
    .alphabet       = 0 ,
    };
  
  
  /* The following defines storage for the global DEBUG-ITEM:
  
--- 331,390 ----
    .parent         = NULL,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = global_e | endian,
    .type           = FldNumericBin5 ,
    .level          = 0 ,
!   .digits         = 0 ,
!   .rdigits        = 0 ,
!   .encoding       = iconv_CP1252_e ,
!   .alphabet       = 0 ,
!   };
! 
! unsigned char __gg__data__literally_zero[] = {0,0,0,0};
! struct cblc_field_t __ggsr___literally_zero = {
!   .data           = __gg__data__literally_zero ,
!   .capacity       = 4 ,
!   .allocated      = 4 ,
!   .offset         = 0 ,
!   .name           = "_literally_zero" ,
!   .picture        = "" ,
!   .initial        = "" ,
!   .parent         = NULL,
!   .occurs_lower   = 0 ,
!   .occurs_upper   = 0 ,
!   .attr           = register_e | endian,
!   .type           = FldNumericBin5 ,
!   .level          = 0 ,
!   .digits         = 0 ,
    .rdigits        = 0 ,
    .encoding       = iconv_CP1252_e ,
    .alphabet       = 0 ,
    };
  
+ #if COBOL_BIG_ENDIAN
+ unsigned char __gg__data__literally_one[] = {0,0,0,1};
+ #else
+ unsigned char __gg__data__literally_one[] = {1,0,0,0};
+ #endif
+ struct cblc_field_t __ggsr__literally_one = {
+   .data           = __gg__data__literally_one ,
+   .capacity       = 4 ,
+   .allocated      = 4 ,
+   .offset         = 0 ,
+   .name           = "_literally_one" ,
+   .picture        = "" ,
+   .initial        = "" ,
+   .parent         = NULL,
+   .occurs_lower   = 0 ,
+   .occurs_upper   = 0 ,
+   .attr           = register_e | endian,
+   .type           = FldNumericBin5 ,
+   .level          = 0 ,
+   .digits         = 0 ,
+   .rdigits        = 0 ,
+   .encoding       = iconv_CP1252_e ,
+   .alphabet       = 0 ,
+   };
  
  /* The following defines storage for the global DEBUG-ITEM:
  
*************** struct cblc_field_t __ggsr__argi = {
*** 422,434 ****
          02 DEBUG-CONTENTS PIC X(76).
  */
  
! unsigned char __gg__debug_item_data[132] = 
                                   "                                      "
                                   "+0000 +0000 +0000 "
                                   "                                      "
                                   "                                     ";
  struct cblc_field_t __ggsr__debug_item = {
!   .data           = __gg__debug_item_data ,
    .capacity       = 132 ,
    .allocated      = 132 ,
    .offset         = 0 ,
--- 402,414 ----
          02 DEBUG-CONTENTS PIC X(76).
  */
  
! unsigned char __gg__data_debug_item[132] =
                                   "                                      "
                                   "+0000 +0000 +0000 "
                                   "                                      "
                                   "                                     ";
  struct cblc_field_t __ggsr__debug_item = {
!   .data           = __gg__data_debug_item ,
    .capacity       = 132 ,
    .allocated      = 132 ,
    .offset         = 0 ,
*************** struct cblc_field_t __ggsr__debug_item =
*** 450,457 ****
    .alphabet       = 0 ,
    };
  
  struct cblc_field_t __ggsr__debug_line = {
!   .data           = __gg__debug_item_data + 0 ,
    .capacity       = 6 ,
    .allocated      = 6 ,
    .offset         = 0 ,
--- 430,438 ----
    .alphabet       = 0 ,
    };
  
+ unsigned char *__gg__data_debug_line = __gg__data_debug_item;
  struct cblc_field_t __ggsr__debug_line = {
!   .data           = __gg__data_debug_line ,
    .capacity       = 6 ,
    .allocated      = 6 ,
    .offset         = 0 ,
*************** struct cblc_field_t __ggsr__debug_line =
*** 470,477 ****
    .alphabet       = 0 ,
    };
  
  struct cblc_field_t __ggsr__debug_filler_1 = {
!   .data           = __gg__debug_item_data + 6 ,
    .capacity       = 1 ,
    .allocated      = 1 ,
    .offset         = 6 ,
--- 451,460 ----
    .alphabet       = 0 ,
    };
  
+ 
+ unsigned char *__gg__data_debug_filler_1 = &__gg__data_debug_item[6];
  struct cblc_field_t __ggsr__debug_filler_1 = {
!   .data           = __gg__data_debug_item ,
    .capacity       = 1 ,
    .allocated      = 1 ,
    .offset         = 6 ,
*************** struct cblc_field_t __ggsr__debug_filler
*** 490,497 ****
    .alphabet       = 0 ,
    };
  
  struct cblc_field_t __ggsr__debug_name = {
!   .data           = __gg__debug_item_data + 7 ,
    .capacity       = 30 ,
    .allocated      = 30 ,
    .offset         = 7 ,
--- 473,481 ----
    .alphabet       = 0 ,
    };
  
+ unsigned char *__gg__data_debug_name = &__gg__data_debug_item[7];
  struct cblc_field_t __ggsr__debug_name = {
!   .data           = __gg__data_debug_name ,
    .capacity       = 30 ,
    .allocated      = 30 ,
    .offset         = 7 ,
*************** struct cblc_field_t __ggsr__debug_name =
*** 510,517 ****
    .alphabet       = 0 ,
    };
  
  struct cblc_field_t __ggsr__debug_filler_2 = {
!   .data           = __gg__debug_item_data + 37 ,
    .capacity       = 1 ,
    .allocated      = 1 ,
    .offset         = 37 ,
--- 494,502 ----
    .alphabet       = 0 ,
    };
  
+ unsigned char *__gg__data_debug_filler_2 = &__gg__data_debug_item[37];
  struct cblc_field_t __ggsr__debug_filler_2 = {
!   .data           = __gg__data_debug_filler_2 ,
    .capacity       = 1 ,
    .allocated      = 1 ,
    .offset         = 37 ,
*************** struct cblc_field_t __ggsr__debug_filler
*** 530,537 ****
    .alphabet       = 0 ,
    };
  
  struct cblc_field_t __ggsr__debug_sub_1 = {
!   .data           = __gg__debug_item_data + 38 ,
    .capacity       = 5 ,
    .allocated      = 5 ,
    .offset         = 38 ,
--- 515,523 ----
    .alphabet       = 0 ,
    };
  
+ unsigned char *__gg__data_debug_sub_1 = &__gg__data_debug_item[38];
  struct cblc_field_t __ggsr__debug_sub_1 = {
!   .data           = __gg__data_debug_sub_1 ,
    .capacity       = 5 ,
    .allocated      = 5 ,
    .offset         = 38 ,
*************** struct cblc_field_t __ggsr__debug_sub_1
*** 550,557 ****
    .alphabet       = 0 ,
    };
  
  struct cblc_field_t __ggsr__debug_filler_3 = {
!   .data           = __gg__debug_item_data + 43,
    .capacity       =  1,
    .allocated      =  1,
    .offset         =  43,
--- 536,544 ----
    .alphabet       = 0 ,
    };
  
+ unsigned char *__gg__data_debug_filler_3 = &__gg__data_debug_item[43];
  struct cblc_field_t __ggsr__debug_filler_3 = {
!   .data           = __gg__data_debug_filler_3 ,
    .capacity       =  1,
    .allocated      =  1,
    .offset         =  43,
*************** struct cblc_field_t __ggsr__debug_filler
*** 570,577 ****
    .alphabet       = 0 ,
    };
  
  struct cblc_field_t __ggsr__debug_sub_2 = {
!   .data           = __gg__debug_item_data + 44 ,
    .capacity       = 5 ,
    .allocated      = 5 ,
    .offset         = 44 ,
--- 557,565 ----
    .alphabet       = 0 ,
    };
  
+ unsigned char *__gg__data_debug_sub_2 = &__gg__data_debug_item[44];
  struct cblc_field_t __ggsr__debug_sub_2 = {
!   .data           = __gg__data_debug_sub_2 ,
    .capacity       = 5 ,
    .allocated      = 5 ,
    .offset         = 44 ,
*************** struct cblc_field_t __ggsr__debug_sub_2
*** 590,597 ****
    .alphabet       = 0 ,
    };
  
  struct cblc_field_t __ggsr__debug_filler_4 = {
!   .data           = __gg__debug_item_data +  49,
    .capacity       =  1,
    .allocated      =  1,
    .offset         =  49,
--- 578,586 ----
    .alphabet       = 0 ,
    };
  
+ unsigned char *__gg__data_debug_filler_4 = &__gg__data_debug_item[49];
  struct cblc_field_t __ggsr__debug_filler_4 = {
!   .data           = __gg__data_debug_filler_4 ,
    .capacity       =  1,
    .allocated      =  1,
    .offset         =  49,
*************** struct cblc_field_t __ggsr__debug_filler
*** 610,617 ****
    .alphabet       = 0 ,
    };
  
  struct cblc_field_t __ggsr__debug_sub_3 = {
!   .data           = __gg__debug_item_data + 50 ,
    .capacity       = 5 ,
    .allocated      = 5 ,
    .offset         = 50 ,
--- 599,607 ----
    .alphabet       = 0 ,
    };
  
+ unsigned char *__gg__data_debug_sub_3 = &__gg__data_debug_item[50];
  struct cblc_field_t __ggsr__debug_sub_3 = {
!   .data           = __gg__data_debug_sub_3 ,
    .capacity       = 5 ,
    .allocated      = 5 ,
    .offset         = 50 ,
*************** struct cblc_field_t __ggsr__debug_sub_3
*** 630,637 ****
    .alphabet       = 0 ,
    };
  
  struct cblc_field_t __ggsr__debug_filler_5 = {
!   .data           = __gg__debug_item_data + 55,
    .capacity       =  1,
    .allocated      =  1,
    .offset         =  55,
--- 620,628 ----
    .alphabet       = 0 ,
    };
  
+ unsigned char *__gg__data_debug_filler_5 = &__gg__data_debug_item[55];
  struct cblc_field_t __ggsr__debug_filler_5 = {
!   .data           = __gg__data_debug_filler_5 ,
    .capacity       =  1,
    .allocated      =  1,
    .offset         =  55,
*************** struct cblc_field_t __ggsr__debug_filler
*** 650,657 ****
    .alphabet       = 0 ,
    };
  
  struct cblc_field_t __ggsr__debug_contents = {
!   .data           = __gg__debug_item_data + 56 ,
    .capacity       = 76 ,
    .allocated      = 76 ,
    .offset         = 56 ,
--- 641,649 ----
    .alphabet       = 0 ,
    };
  
+ unsigned char *__gg__data_debug_contents = &__gg__data_debug_item[56];
  struct cblc_field_t __ggsr__debug_contents = {
!   .data           = __gg__data_debug_contents ,
    .capacity       = 76 ,
    .allocated      = 76 ,
    .offset         = 56 ,
*************** struct cblc_field_t __ggsr__debug_conten
*** 661,667 ****
    .parent         = &__ggsr__debug_item ,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = signable_e | register_e | leading_e | separate_e ,
    .type           = FldAlphanumeric ,
    .level          = 05 ,
    .digits         = 0 ,
--- 653,659 ----
    .parent         = &__ggsr__debug_item ,
    .occurs_lower   = 0 ,
    .occurs_upper   = 0 ,
!   .attr           = register_e ,
    .type           = FldAlphanumeric ,
    .level          = 05 ,
    .digits         = 0 ,
diff -Nrcpad gcc-17-20260712/libgcobol/libgcobol.cc gcc-17-20260719/libgcobol/libgcobol.cc
*** gcc-17-20260712/libgcobol/libgcobol.cc	Sun Jul 12 22:32:18 2026
--- gcc-17-20260719/libgcobol/libgcobol.cc	Sun Jul 19 22:32:17 2026
*************** alpha_to_alpha_move_from_location(cblc_f
*** 6250,6256 ****
        }
      else
        {
!       // Destination is right-justified, so we
        // discard the trailing source characters:
        memmove(to,
                from,
--- 6250,6256 ----
        }
      else
        {
!       // Destination is left-justified, so we
        // discard the trailing source characters:
        memmove(to,
                from,
*************** __gg__codeset_figurative_constants()
*** 11466,11472 ****
    {
    // This routine gets called after the codeset has been changed
  
!   // __gg__data_space and __gg__data_zeros don't change because they are
    // permanently encoded as iconv_CP1252_e.  These other three can be changed
    // as either compiler options or ALPHABET clauses.
    *__gg__data_low_values  = __gg__low_value_character;
--- 11466,11472 ----
    {
    // This routine gets called after the codeset has been changed
  
!   // __gg__data_spaces and __gg__data_zeros don't change because they are
    // permanently encoded as iconv_CP1252_e.  These other three can be changed
    // as either compiler options or ALPHABET clauses.
    *__gg__data_low_values  = __gg__low_value_character;
*************** __gg__get_figconst_data(const cblc_field
*** 11489,11495 ****
        retval = __gg__data_zeros;
        break;
      case space_value_e  :
!       retval = __gg__data_space;
        break;
      case quote_value_e  :
        retval = __gg__data_quotes;
--- 11489,11495 ----
        retval = __gg__data_zeros;
        break;
      case space_value_e  :
!       retval = __gg__data_spaces;
        break;
      case quote_value_e  :
        retval = __gg__data_quotes;
diff -Nrcpad gcc-17-20260712/libgfortran/ChangeLog gcc-17-20260719/libgfortran/ChangeLog
*** gcc-17-20260712/libgfortran/ChangeLog	Sun Jul 12 22:32:18 2026
--- gcc-17-20260719/libgfortran/ChangeLog	Sun Jul 19 22:32:17 2026
***************
*** 1,3 ****
--- 1,36 ----
+ 2026-07-15  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* caf/shmem/shared_memory.c (shared_memory_set_env): Don't
+ 	quote ENV_PPID.
+ 	(shared_memory_init) Don't quote ENV_BASE.
+ 
+ 2026-07-15  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* libgfortran.h (FMT_Z): Define.
+ 	* caf/shmem/alloc.c (get_memory_by_id_internal): Use FMT_Z.
+ 	(alloc_free_memory_with_id): Likewise.
+ 	* caf/shmem/supervisor.c (get_memory_size_from_envvar): Likewise.
+ 	* caf/shmem/thread_support.c (get_handle): Likewise.
+ 	(thread_support_init_supervisor): Likewise.
+ 	* intrinsics/reduce.c (reduce): Likewise.
+ 
+ 2026-07-15  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	PR libfortran/125623
+ 	* c99_protos.h: (strnlen, frexpl, scalbnl): Declare if HAVE_STRNLEN,
+ 	HAVE_FREXPL, HAVE_SCALBNL aren't defined, respectively.
+ 	* intrinsics/c99_functions.c (strnlen, frexpl, scalbnl): Implement.
+ 	* libgfortran.h: Include string.h if HAVE_STRING_H.
+ 
+ 2026-07-15  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* caf/shmem/shared_memory.c (SHM_NAME_FMTD, SHM_NAME_FMTS): Define.
+ 	(shared_memory_init) Use SHM_NAME_FMTD format to generate
+ 	shm_name.
+ 	(shared_memory_cleanup): Use SHM_NAME_FMTS to generate shm_name.
+ 	* caf/shmem/supervisor.c (get_memory_size_from_envvar): Use
+ 	1 GB on 64-bit Windows and HP-UX.
+ 
  2026-07-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
  
  	PR libfortran/126116
diff -Nrcpad gcc-17-20260712/libgfortran/c99_protos.h gcc-17-20260719/libgfortran/c99_protos.h
*** gcc-17-20260712/libgfortran/c99_protos.h	Sun Jul 12 22:32:18 2026
--- gcc-17-20260719/libgfortran/c99_protos.h	Sun Jul 19 22:32:17 2026
*************** see the files COPYING3 and COPYING.RUNTI
*** 25,30 ****
--- 25,36 ----
  #ifndef C99_PROTOS_H
  #define C99_PROTOS_H 1
  
+ /* string functions */
+ #ifndef HAVE_STRNLEN
+ #define HAVE_STRNLEN 1
+ extern size_t strnlen(const char *, size_t);
+ #endif
+ 
  /* float variants of libm functions */
  #ifndef HAVE_ACOSF
  #define HAVE_ACOSF 1
*************** extern long double fmodl (long double x,
*** 136,141 ****
--- 142,152 ----
  extern float frexpf(float, int *);
  #endif
  
+ #ifndef HAVE_FREXPL
+ #define HAVE_FREXPL 1
+ extern long double frexpl(long double, int *);
+ #endif
+ 
  #ifndef HAVE_HYPOTF
  #define HAVE_HYPOTF 1
  extern float hypotf(float, float);
*************** extern double scalbn(double, int);
*** 161,166 ****
--- 172,182 ----
  extern float scalbnf(float, int);
  #endif
  
+ #ifndef HAVE_SCALBNL
+ #define HAVE_SCALBNL 1
+ extern long double scalbnl(long double, int);
+ #endif
+ 
  #ifndef HAVE_SINF
  #define HAVE_SINF 1
  extern float sinf(float);
diff -Nrcpad gcc-17-20260712/libgfortran/caf/shmem/alloc.c gcc-17-20260719/libgfortran/caf/shmem/alloc.c
*** gcc-17-20260712/libgfortran/caf/shmem/alloc.c	Sun Jul 12 22:32:18 2026
--- gcc-17-20260719/libgfortran/caf/shmem/alloc.c	Sun Jul 19 22:32:17 2026
*************** get_memory_by_id_internal (alloc *iface,
*** 85,91 ****
  	{
  	  allocator_unlock (&iface->alloc);
  	  caf_runtime_error (
! 	    "Size mismatch for coarray allocation id %zd: found = %lu "
  	    "< size = %lu\n",
  	    id, found_size, size);
  	  return NULL; // The runtime_error exit()s, so this is never reached.
--- 85,91 ----
  	{
  	  allocator_unlock (&iface->alloc);
  	  caf_runtime_error (
! 	    "Size mismatch for coarray allocation id %" FLM_Z "d: found = %lu "
  	    "< size = %lu\n",
  	    id, found_size, size);
  	  return NULL; // The runtime_error exit()s, so this is never reached.
*************** alloc_free_memory_with_id (alloc *iface,
*** 144,150 ****
    if (!hm_search_result_contains (&res))
      {
        allocator_unlock (&iface->alloc);
!       caf_runtime_error ("Error in free_memory_with_id: %zd not found.\n", id);
        return;
      }
  
--- 144,151 ----
    if (!hm_search_result_contains (&res))
      {
        allocator_unlock (&iface->alloc);
!       caf_runtime_error ("Error in free_memory_with_id: %" FLM_Z
! 			 "d not found.\n", id);
        return;
      }
  
diff -Nrcpad gcc-17-20260712/libgfortran/caf/shmem/shared_memory.c gcc-17-20260719/libgfortran/caf/shmem/shared_memory.c
*** gcc-17-20260712/libgfortran/caf/shmem/shared_memory.c	Sun Jul 12 22:32:18 2026
--- gcc-17-20260719/libgfortran/caf/shmem/shared_memory.c	Sun Jul 19 22:32:17 2026
*************** shared_memory_set_env (pid_t pid)
*** 75,81 ****
    int res;
  
    /* HP-UX / Legacy Fallback using putenv */
!   res = snprintf (buffer, 28, "%s=%d", "ENV_PPID", (int)pid);
    if (res != -1)
      putenv (buffer);
  #endif
--- 75,81 ----
    int res;
  
    /* HP-UX / Legacy Fallback using putenv */
!   res = snprintf (buffer, 28, "%s=%d", ENV_PPID, (int)pid);
    if (res != -1)
      putenv (buffer);
  #endif
*************** shared_memory_prepare (shared_memory_act
*** 122,127 ****
--- 122,138 ----
    asm volatile ("" ::: "memory");
  }
  
+ #if defined(__hpux__)
+ /* On HP-UX, shm_open parses the name argument directly through file
+    system checks.  We need to provide a file path inside a globally
+    writeable directory.  */
+ #define SHM_NAME_FMTD "/tmp/gfor-shm-%d"
+ #define SHM_NAME_FMTS "/tmp/gfor-shm-%s"
+ #else
+ #define SHM_NAME_FMTD "/gfor-shm-%d"
+ #define SHM_NAME_FMTS "/gfor-shm-%s"
+ #endif
+ 
  #define SHM_NAME_MAX 255
  
  /* Initialize the memory with one page, the shared metadata of the
*************** shared_memory_init (shared_memory_act *m
*** 140,146 ****
        int n = sscanf (env_val, "%d", &ppid);
        assert (n == 1);
      }
!   snprintf (shm_name, SHM_NAME_MAX, "/gfor-shm-%d", ppid);
    if (base)
      {
        int n = sscanf (base, "%p", &base_ptr);
--- 151,157 ----
        int n = sscanf (env_val, "%d", &ppid);
        assert (n == 1);
      }
!   snprintf (shm_name, SHM_NAME_MAX, SHM_NAME_FMTD, ppid);
    if (base)
      {
        int n = sscanf (base, "%p", &base_ptr);
*************** shared_memory_init (shared_memory_act *m
*** 257,263 ****
        int res;
  
        /* HP-UX / Legacy Fallback using putenv */
!       res = snprintf (buffer, 28, "%s=%p", "ENV_BASE", mem->glbl.base);
        if (res != -1)
  	putenv (buffer);
  #endif
--- 268,274 ----
        int res;
  
        /* HP-UX / Legacy Fallback using putenv */
!       res = snprintf (buffer, 28, "%s=%p", ENV_BASE, mem->glbl.base);
        if (res != -1)
  	putenv (buffer);
  #endif
*************** shared_memory_cleanup (shared_memory_act
*** 286,292 ****
      {
        char shm_name[SHM_NAME_MAX];
  
!       snprintf (shm_name, SHM_NAME_MAX, "/gfor-shm-%s", shared_memory_get_env ());
        /* Only the supervisor is to delete the shm-file.  */
        res = shm_unlink (shm_name);
        if (res == -1)
--- 297,304 ----
      {
        char shm_name[SHM_NAME_MAX];
  
!       snprintf (shm_name, SHM_NAME_MAX, SHM_NAME_FMTS,
! 		shared_memory_get_env ());
        /* Only the supervisor is to delete the shm-file.  */
        res = shm_unlink (shm_name);
        if (res == -1)
diff -Nrcpad gcc-17-20260712/libgfortran/caf/shmem/supervisor.c gcc-17-20260719/libgfortran/caf/shmem/supervisor.c
*** gcc-17-20260712/libgfortran/caf/shmem/supervisor.c	Sun Jul 12 22:32:18 2026
--- gcc-17-20260719/libgfortran/caf/shmem/supervisor.c	Sun Jul 19 22:32:17 2026
*************** get_memory_size_from_envvar (void)
*** 106,112 ****
      {
        char suffix[2];
        int rv;
!       rv = sscanf (e, "%zu%1s", &sz, suffix);
        if (rv == 2)
  	{
  	  switch (suffix[0])
--- 106,112 ----
      {
        char suffix[2];
        int rv;
!       rv = sscanf (e, "%" FLM_Z "u%1s", &sz, suffix);
        if (rv == 2)
  	{
  	  switch (suffix[0])
*************** get_memory_size_from_envvar (void)
*** 134,144 ****
        if (sizeof (size_t) == 4)
  	sz = ((size_t) 1) << 28;
        else
! #ifndef WIN32
! 	sz = ((size_t) 1) << 34;
! #else
! 	/* Use 1GB on Windows.  */
  	sz = ((size_t) 1) << 30;
  #endif
      }
    return sz;
--- 134,144 ----
        if (sizeof (size_t) == 4)
  	sz = ((size_t) 1) << 28;
        else
! #if defined(WIN32) || defined(__hpux__)
! 	/* Use 1GB on Windows and HP-UX.  */
  	sz = ((size_t) 1) << 30;
+ #else
+ 	sz = ((size_t) 1) << 34;
  #endif
      }
    return sz;
diff -Nrcpad gcc-17-20260712/libgfortran/caf/shmem/thread_support.c gcc-17-20260719/libgfortran/caf/shmem/thread_support.c
*** gcc-17-20260712/libgfortran/caf/shmem/thread_support.c	Sun Jul 12 22:32:18 2026
--- gcc-17-20260719/libgfortran/caf/shmem/thread_support.c	Sun Jul 19 22:32:17 2026
*************** get_handle (const size_t id, const char
*** 122,128 ****
  
        if (!pid)
  	pid = shared_memory_get_env ();
!       snprintf (name, MAX_PATH, "Global_gfortran-%s-%c-%zd", pid, t, id);
        switch (t)
  	{
  	case 'm':
--- 122,129 ----
  
        if (!pid)
  	pid = shared_memory_get_env ();
!       snprintf (name, MAX_PATH, "Global_gfortran-%s-%c-%" FLM_Z "d",
! 		pid, t, id);
        switch (t)
  	{
  	case 'm':
*************** get_handle (const size_t id, const char
*** 131,138 ****
  	case 'c':
  	  {
  	    handles[id] = CreateSemaphore (NULL, 0, __INT_MAX__, name);
! 	    snprintf (name, MAX_PATH, "Global_gfortran-%s-%c-%zd_lock", pid, t,
! 		      id);
  	    handles[id + 1] = CreateSemaphore (NULL, 1, 1, name);
  	    this_image.supervisor->global_used_handles
  	      = smax (this_image.supervisor->global_used_handles, id + 2);
--- 132,139 ----
  	case 'c':
  	  {
  	    handles[id] = CreateSemaphore (NULL, 0, __INT_MAX__, name);
! 	    snprintf (name, MAX_PATH, "Global_gfortran-%s-%c-%" FLM_Z "d_lock",
! 		      pid, t, id);
  	    handles[id + 1] = CreateSemaphore (NULL, 1, 1, name);
  	    this_image.supervisor->global_used_handles
  	      = smax (this_image.supervisor->global_used_handles, id + 2);
*************** void
*** 173,179 ****
  thread_support_init_supervisor (void)
  {
    if (local->total_num_images > ULONGBITS * MAX_NUM_SIGNALED)
!     caf_runtime_error ("Maximum number of supported images is %zd.",
  		       ULONGBITS * MAX_NUM_SIGNALED);
    this_image.supervisor->global_used_handles = 0;
  }
--- 174,180 ----
  thread_support_init_supervisor (void)
  {
    if (local->total_num_images > ULONGBITS * MAX_NUM_SIGNALED)
!     caf_runtime_error ("Maximum number of supported images is %" FLM_Z "d.",
  		       ULONGBITS * MAX_NUM_SIGNALED);
    this_image.supervisor->global_used_handles = 0;
  }
diff -Nrcpad gcc-17-20260712/libgfortran/intrinsics/c99_functions.c gcc-17-20260719/libgfortran/intrinsics/c99_functions.c
*** gcc-17-20260712/libgfortran/intrinsics/c99_functions.c	Sun Jul 12 22:32:18 2026
--- gcc-17-20260719/libgfortran/intrinsics/c99_functions.c	Sun Jul 19 22:32:17 2026
*************** see the files COPYING3 and COPYING.RUNTI
*** 45,54 ****
  #define IMAGPART(z) (__imag__(z))
  #define COMPLEX_ASSIGN(z_, r_, i_) {__real__(z_) = (r_); __imag__(z_) = (i_);}
  
- 
  /* Prototypes are included to silence -Wstrict-prototypes
     -Wmissing-prototypes.  */
  
  
  /* Wrappers for systems without the various C99 single precision Bessel
     functions.  */
--- 45,198 ----
  #define IMAGPART(z) (__imag__(z))
  #define COMPLEX_ASSIGN(z_, r_, i_) {__real__(z_) = (r_); __imag__(z_) = (i_);}
  
  /* Prototypes are included to silence -Wstrict-prototypes
     -Wmissing-prototypes.  */
  
+ /* Main union type we use to manipulate the floating-point type.  */
+ typedef union
+ {
+   long double value;
+ 
+   struct
+ #ifdef __MINGW32__
+   /* On mingw targets the ms-bitfields option is active by default.
+      Therefore enforce gnu-bitfield style.  */
+   __attribute__ ((gcc_struct))
+ #endif
+   {
+ #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
+     unsigned negative:1;
+     unsigned exponent:15;
+     unsigned mantissa0:16;
+     unsigned mantissa1:32;
+     unsigned mantissa2:32;
+     unsigned mantissa3:32;
+ #else
+     unsigned mantissa3:32;
+     unsigned mantissa2:32;
+     unsigned mantissa1:32;
+     unsigned mantissa0:16;
+     unsigned exponent:15;
+     unsigned negative:1;
+ #endif
+   } ieee;
+ 
+   struct
+   {
+ #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
+     uint64_t high;
+     uint64_t low;
+ #else
+     uint64_t low;
+     uint64_t high;
+ #endif
+   } words64;
+ 
+   struct
+   {
+ #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
+     uint32_t w0;
+     uint32_t w1;
+     uint32_t w2;
+     uint32_t w3;
+ #else
+     uint32_t w3;
+     uint32_t w2;
+     uint32_t w1;
+     uint32_t w0;
+ #endif
+   } words32;
+ 
+   struct
+ #ifdef __MINGW32__
+   /* Make sure we are using gnu-style bitfield handling.  */
+   __attribute__ ((gcc_struct))
+ #endif
+   {
+ #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
+     unsigned negative:1;
+     unsigned exponent:15;
+     unsigned quiet_nan:1;
+     unsigned mantissa0:15;
+     unsigned mantissa1:32;
+     unsigned mantissa2:32;
+     unsigned mantissa3:32;
+ #else
+     unsigned mantissa3:32;
+     unsigned mantissa2:32;
+     unsigned mantissa1:32;
+     unsigned mantissa0:15;
+     unsigned quiet_nan:1;
+     unsigned exponent:15;
+     unsigned negative:1;
+ #endif
+   } ieee_nan;
+ 
+ } ieee754_long_double;
+ 
+ 
+ /* Get two 64 bit ints from a long double.  */
+ #define GET_LDOUBLE_WORDS64(ix0,ix1,d)  \
+ do {                                   \
+   ieee754_long_double u;               \
+   u.value = (d);                       \
+   (ix0) = u.words64.high;              \
+   (ix1) = u.words64.low;               \
+ } while (0)
+ 
+ /* Set a long double from two 64 bit ints.  */
+ #define SET_LDOUBLE_WORDS64(d,ix0,ix1)  \
+ do {                                   \
+   ieee754_long_double u;               \
+   u.words64.high = (ix0);              \
+   u.words64.low = (ix1);               \
+   (d) = u.value;                       \
+ } while (0)
+ 
+ /* Get the more significant 64 bits of a long double mantissa.  */
+ #define GET_LDOUBLE_MSW64(v,d)          \
+ do {                                   \
+   ieee754_long_double u;               \
+   u.value = (d);                       \
+   (v) = u.words64.high;                \
+ } while (0)
+ 
+ /* Set the more significant 64 bits of a long double mantissa from an int.  */
+ #define SET_LDOUBLE_MSW64(d,v)          \
+ do {                                   \
+   ieee754_long_double u;               \
+   u.value = (d);                       \
+   u.words64.high = (v);                \
+   (d) = u.value;                       \
+ } while (0)
+ 
+ /* Get the least significant 64 bits of a long double mantissa.  */
+ #define GET_LDOUBLE_LSW64(v,d)          \
+ do {                                   \
+   ieee754_long_double u;               \
+   u.value = (d);                       \
+   (v) = u.words64.low;                 \
+ } while (0)
+ 
+ static const long double
+ two114 = 2.0769187434139310514121985316880384E+34L, /* 0x4071000000000000, 0 */
+ twom114 = 4.8148248609680896326399448564623183E-35L, /* 0x3F8D000000000000, 0 */
+ huge   = 1.0E+4900L,
+ tiny   = 1.0E-4900L;
+ 
+ /* Wrapper for systems without strnlen function.  */
+ 
+ #ifndef HAVE_STRNLEN
+ #define HAVE_STRNLEN 1
+ size_t strnlen (const char *, size_t);
+ 
+ size_t
+ strnlen (const char *str, size_t maxlen)
+ {
+   const char *found = memchr (str, '\0', maxlen);
+   return found ? (size_t) (found - str) : maxlen;
+ }
+ #endif
  
  /* Wrappers for systems without the various C99 single precision Bessel
     functions.  */
*************** frexpf (float x, int *exp)
*** 361,366 ****
--- 505,561 ----
  }
  #endif
  
+ #if !defined(HAVE_FREXPL)
+ #define HAVE_FREXPL 1
+ long double frexpl (long double x, int *eptr);
+ 
+ /* s_frexpl.c -- long double version of s_frexp.c.
+  * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+  */
+ 
+ /*
+  * ====================================================
+  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+  *
+  * Developed at SunPro, a Sun Microsystems, Inc. business.
+  * Permission to use, copy, modify, and distribute this
+  * software is freely granted, provided that this notice
+  * is preserved.
+  * ====================================================
+  */
+ 
+ long double
+ frexpl (long double x, int *eptr)
+ {
+   if (sizeof (long double) == 16)
+     {
+       uint64_t hx, lx, ix;
+ 
+       GET_LDOUBLE_WORDS64(hx,lx,x);
+       ix = 0x7fffffffffffffffULL&hx;
+       *eptr = 0;
+       if(ix >= 0x7fff000000000000ULL || ((ix|lx) == 0))
+ 	/* 0,inf,nan */
+ 	return x + x;
+       if (ix < 0x0001000000000000ULL)
+ 	{
+ 	  /* subnormal */
+ 	  x *= two114;
+ 	  GET_LDOUBLE_MSW64(hx,x);
+ 	  ix = hx & 0x7fffffffffffffffULL;
+ 	  *eptr = -114;
+ 	}
+       *eptr += (ix>>48) - 16382;
+       hx = (hx & 0x8000ffffffffffffULL) | 0x3ffe000000000000ULL;
+       SET_LDOUBLE_MSW64(x,hx);
+       return x;
+     }
+   else
+     /* Intel 80 bit */
+     abort();
+ }
+ #endif
+ 
  #ifndef HAVE_HYPOTF
  #define HAVE_HYPOTF 1
  float hypotf (float x, float y);
*************** scalbnf (float x, int y)
*** 420,425 ****
--- 615,690 ----
  }
  #endif
  
+ #if !defined(HAVE_SCALBNL)
+ #define HAVE_SCALBNL 1
+ long double scalbnl (long double x, int n);
+ 
+ /* s_scalbnl.c -- long double version of s_scalbn.c.
+  * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+  */
+ 
+ /* @(#)s_scalbn.c 5.1 93/09/24 */
+ /*
+  * ====================================================
+  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+  *
+  * Developed at SunPro, a Sun Microsystems, Inc. business.
+  * Permission to use, copy, modify, and distribute this
+  * software is freely granted, provided that this notice
+  * is preserved.
+  * ====================================================
+  */
+ 
+ long double
+ scalbnl (long double x, int n)
+ {
+   if (sizeof (long double) == 16)
+     {
+       int64_t k, hx, lx;
+ 
+       GET_LDOUBLE_WORDS64(hx,lx,x);
+ 
+       /* extract exponent */
+       k = (hx >> 48) & 0x7fff;
+       if (k == 0)
+ 	{
+ 	  /* 0 or subnormal x */
+ 	  if ((lx | (hx & 0x7fffffffffffffffULL)) == 0)
+ 	    return x; /* +-0 */
+ 	  x *= two114;
+ 	  GET_LDOUBLE_MSW64(hx,x);
+ 	  k = ((hx >> 48) & 0x7fff) - 114;
+ 	}
+       if (k == 0x7fff)
+ 	/* NaN or Inf */
+ 	return x+x;
+       if (n < -50000)
+ 	/*underflow*/
+ 	return tiny * copysignl (tiny, x);
+       if (n > 50000 || k + n > 0x7ffe)
+ 	/* overflow  */
+ 	return huge * copysignl (huge, x);
+       /* Now k and n are bounded we know that k = k+n does not overflow.  */
+       k = k + n;
+       if (k > 0)
+ 	{
+ 	  /* normal result */
+ 	  SET_LDOUBLE_MSW64(x,(hx&0x8000ffffffffffffULL)|(k<<48));
+ 	  return x;
+ 	}
+       if (k <= -114)
+ 	/*underflow*/
+ 	return tiny * copysignl (tiny, x);
+       k += 114;				/* subnormal result */
+       SET_LDOUBLE_MSW64(x,(hx&0x8000ffffffffffffULL)|(k<<48));
+       return x * twom114;
+     }
+   else
+     /* Intel 80 bit */
+     abort();
+ }
+ #endif
+ 
  #ifndef HAVE_SINF
  #define HAVE_SINF 1
  float sinf (float x);
diff -Nrcpad gcc-17-20260712/libgfortran/intrinsics/reduce.c gcc-17-20260719/libgfortran/intrinsics/reduce.c
*** gcc-17-20260712/libgfortran/intrinsics/reduce.c	Sun Jul 12 22:32:18 2026
--- gcc-17-20260719/libgfortran/intrinsics/reduce.c	Sun Jul 19 22:32:17 2026
*************** reduce (parray *ret,
*** 110,116 ****
  	{
  	  int mext = (int)GFC_DESCRIPTOR_EXTENT (mask, i);
  	  runtime_error ("shape mismatch between ARRAY and MASK in the REDUCE "
! 			 "intrinsic (%zd/%d)", ext, mext);
  	}
  
        if (scalar_result)
--- 110,116 ----
  	{
  	  int mext = (int)GFC_DESCRIPTOR_EXTENT (mask, i);
  	  runtime_error ("shape mismatch between ARRAY and MASK in the REDUCE "
! 			 "intrinsic (%" FLM_Z "d/%d)", ext, mext);
  	}
  
        if (scalar_result)
diff -Nrcpad gcc-17-20260712/libgfortran/io/list_read.c gcc-17-20260719/libgfortran/io/list_read.c
*** gcc-17-20260712/libgfortran/io/list_read.c	Sun Jul 12 22:32:18 2026
--- gcc-17-20260719/libgfortran/io/list_read.c	Sun Jul 19 22:32:17 2026
*************** parse_real (st_parameter_dt *dtp, void *
*** 1539,1544 ****
--- 1539,1555 ----
  
    seen_dp = (c == '.') ? 1 : 0;
  
+   if (c == '0')
+     {
+       int c2 = next_char (dtp);
+       if (c2 == 'x' || c2 == 'X')
+ 	{
+ 	  push_char (dtp, c2);
+ 	  goto hex_real;
+ 	}
+       unget_char (dtp, c2);
+     }
+ 
    for (;;)
      {
        if ((c = next_char (dtp)) == EOF)
*************** parse_real (st_parameter_dt *dtp, void *
*** 1644,1649 ****
--- 1655,1684 ----
  	}
      }
  
+   /* Hexadecimal format so collect the remaining characters.
+      The convert_real will validate it.  */
+  hex_real:
+   for (;;)
+     {
+       if ((c = next_char (dtp)) == EOF)
+ 	goto bad;
+       switch (c)
+ 	{
+ 	case '!':
+ 	  if (!dtp->u.p.namelist_mode)
+ 	    goto bad;
+ 	  /* Fall through.  */
+ 
+ 	CASE_SEPARATORS:
+ 	case ')':
+ 	  goto done;
+ 
+ 	default:
+ 	  push_char (dtp, c);
+ 	  break;
+ 	}
+     }
+ 
   done:
    unget_char (dtp, c);
    push_char (dtp, '\0');
*************** next:
*** 1878,1883 ****
--- 1913,1929 ----
    switch (c)
      {
      CASE_DIGITS:
+       if (c == '0')
+ 	{
+ 	  int c2 = next_char (dtp);
+ 	  if (c2 == 'x' || c2 == 'X')
+ 	    {
+ 	      push_char (dtp, c);
+ 	      push_char (dtp, c2);
+ 	      goto hex_real;
+ 	    }
+ 	  unget_char (dtp, c2);
+ 	}
        push_char (dtp, c);
        break;
  
*************** next:
*** 2018,2023 ****
--- 2064,2080 ----
  
    push_char (dtp, c);
  
+   if (c == '0')
+     {
+       int c2 = next_char (dtp);
+       if (c2 == 'x' || c2 == 'X')
+ 	{
+ 	  push_char (dtp, c2);
+ 	  goto hex_real;
+ 	}
+       unget_char (dtp, c2);
+     }
+ 
   real_loop:
    for (;;)
      {
*************** next:
*** 2117,2122 ****
--- 2174,2207 ----
  	}
      }
  
+   /* Hexadecimal-significand form: [sign] 0X hex-significand P
+      decimal-exp (F2023 13.7.2.3.2 para 7), also accepted on list-directed
+      input per the same rules as Fw.d editing.  The '0X'/'0x' prefix has
+      already been pushed; collect the remaining characters (hex digits,
+      radix point, P/p exponent letter, exponent sign) verbatim up to the
+      next separator and let convert_real/strtod validate and parse the
+      whole thing, just as read_ex does for formatted EX input.  */
+  hex_real:
+   for (;;)
+     {
+       c = next_char (dtp);
+       switch (c)
+ 	{
+ 	case '!':
+ 	  if (!dtp->u.p.namelist_mode)
+ 	    goto bad_real;
+ 	  /* Fall through.  */
+ 
+ 	CASE_SEPARATORS:
+ 	case EOF:
+ 	  goto done;
+ 
+ 	default:
+ 	  push_char (dtp, c);
+ 	  break;
+ 	}
+     }
+ 
   done:
    unget_char (dtp, c);
    eat_separator (dtp);
diff -Nrcpad gcc-17-20260712/libgfortran/libgfortran.h gcc-17-20260719/libgfortran/libgfortran.h
*** gcc-17-20260712/libgfortran/libgfortran.h	Sun Jul 12 22:32:18 2026
--- gcc-17-20260719/libgfortran/libgfortran.h	Sun Jul 19 22:32:17 2026
*************** see the files COPYING3 and COPYING.RUNTI
*** 36,41 ****
--- 36,49 ----
  #  define gfc_printf __printf__
  #endif
  
+ /* Handle unsupported C99 length modifiers.  */
+ #if defined(__hpux__)
+ /* size_t is unsigned long on HP-UX.  */
+ #define FLM_Z "l"
+ #else
+ #define FLM_Z "z"
+ #endif
+ 
  /* config.h MUST be first because it can affect system headers.  */
  #include "config.h"
  
*************** see the files COPYING3 and COPYING.RUNTI
*** 47,52 ****
--- 55,64 ----
  #include <stdarg.h>
  #include <stdbool.h>
  
+ #if HAVE_STRING_H
+ #include <string.h>
+ #endif
+ 
  #if HAVE_COMPLEX_H
  /* Must appear before math.h on VMS systems.  */
  # include <complex.h>
diff -Nrcpad gcc-17-20260712/libgomp/ChangeLog gcc-17-20260719/libgomp/ChangeLog
*** gcc-17-20260712/libgomp/ChangeLog	Sun Jul 12 22:32:19 2026
--- gcc-17-20260719/libgomp/ChangeLog	Sun Jul 19 22:32:18 2026
***************
*** 1,3 ****
--- 1,99 ----
+ 2026-07-17  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* libgomp.texi (OpenMP 5.1 Impl Status): Mark device_type on vars
+ 	in declare target as 'P'.
+ 
+ 2026-07-17  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	* libgomp.map: Add GOMP_has_masked_thread_num_with_end.
+ 	* libgomp.texi: Document it.
+ 	* libgomp_g.h (GOMP_has_masked_thread_num_with_end): Declare.
+ 	* parallel.c (GOMP_has_masked_thread_num_with_end): New function.
+ 
+ 2026-07-16  Paul-Antoine Arras  <parras@baylibre.com>
+ 
+ 	* config/gcn/teams.c (GOMP_distribute_static_worksharing_dispatch): Add
+ 	niter, start, incr, chunk_size, and istart parameters (unused).
+ 	* config/nvptx/teams.c (GOMP_distribute_static_worksharing_dispatch):
+ 	Likewise.
+ 	* libgomp_g.h (GOMP_loop_static_worksharing_dispatch): Update prototype.
+ 	(GOMP_distribute_static_worksharing_dispatch): Likewise.
+ 	* loop.c (GOMP_loop_static_worksharing_dispatch): Add niter, start,
+ 	incr, chunk_size, and istart parameters (unused).
+ 	* teams.c (GOMP_distribute_static_worksharing_dispatch): Likewise.
+ 	* testsuite/libgomp.c-c++-common/for-static-3.c: Update scan pattern
+ 	to match new arguments.
+ 
+ 2026-07-16  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	PR fortran/126279
+ 	* target.c (copy_firstprivate_data): After storing  users_allocators'
+ 	allocator, shift the offset by its storage size to avoid overriding.
+ 	* testsuite/libgomp.fortran/uses_allocators-1.f90: Use kind c_size_t
+ 	instead of kind 8 for 32bit compatibility.
+ 	* testsuite/libgomp.fortran/uses_allocators-4.f90: Update expected
+ 	tree dump.
+ 	* testsuite/libgomp.fortran/uses_allocators-7.f90: Extend testcase now
+ 	that user-defined allocators are supported by uses_allocators.
+ 
+ 2026-07-16  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* testsuite/libgomp.c/target-device-type-3.c: Repair offload tree
+ 	dump scanning.
+ 
+ 2026-07-16  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	PR libgomp/125877
+ 	* config/linux/numa.c (gomp_get_numa_distance): Move 'lineptr'
+ 	initialization earlier, robustify 'getline' call, avoid double
+ 	'free'.
+ 
+ 2026-07-16  Thomas Schwinge  <tschwinge@baylibre.com>
+ 
+ 	* testsuite/libgomp.c/target-device-type-1.c (f): Map 'x'.
+ 	* testsuite/libgomp.c/target-device-type-2.c (f): Likewise.
+ 
+ 2026-07-15  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* testsuite/libgomp.c-c++-common/uses_allocators-10.c: New test.
+ 
+ 2026-07-15  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	PR c/122748
+ 	* libgomp.texi (Implementation status): Mark two
+ 	uses_allocators items and C23 support as 'Y';
+ 	remove outdated remark regarding a deprecation warning.
+ 	(Memory Management Routines): Move omp_free after
+ 	omp_realloc; add commented @menu entries for new
+ 	TR15 routines.
+ 	(nvptx): Update @uref to point to a better webpage.
+ 
+ 2026-07-15  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* libgomp.texi (Implementations status): Mark 'device_type'
+ 	clause on target as implemented.
+ 	* testsuite/libgomp.c/target-device-type-3.c: New test.
+ 
+ 2026-07-14  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* error.c (GOMP_error): When passing msglen == (size_t) -2,
+ 	do not show 'error directive encountered:' in the message.
+ 	* libgomp.texi (Implementation Status): Mark target + device_type
+ 	as partially implemented.
+ 	* testsuite/libgomp.c/target-device-type-1.c: New test.
+ 	* testsuite/libgomp.c/target-device-type-2.c: New test.
+ 
+ 2026-07-14  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	PR libgomp/125877
+ 	* config/linux/numa.c (gomp_get_numa_distance): Avoid data race issue
+ 	during initalization and handle non-contiguous node numbering.
+ 
+ 2026-07-13  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	* libgomp.texi (OpenMP Implementation Status): Change section
+ 	name from TR14 to TR15 and add TR15 additions.
+ 
  2026-07-09  Paul-Antoine Arras  <parras@baylibre.com>
  	    Thomas Schwinge  <tschwinge@baylibre.com>
  
diff -Nrcpad gcc-17-20260712/libgomp/config/gcn/teams.c gcc-17-20260719/libgomp/config/gcn/teams.c
*** gcc-17-20260712/libgomp/config/gcn/teams.c	Sun Jul 12 22:32:19 2026
--- gcc-17-20260719/libgomp/config/gcn/teams.c	Sun Jul 19 22:32:18 2026
*************** GOMP_distribute_static_worksharing_start
*** 64,73 ****
    return nteams + tid * 1I;
  }
  
! /* Stub for OMPT callback enabled by -fopenmp-ompt-detailed.  */
  
  void
! GOMP_distribute_static_worksharing_dispatch (void)
  {}
  
  /* Stub for OMPT callback enabled by -fopenmp-ompt.  */
--- 64,82 ----
    return nteams + tid * 1I;
  }
  
! /* Stub for OMPT callback enabled by -fopenmp-ompt-detailed. NITER is the total
!    number of iterations. START is the starting iteration index. INCR is the
!    increment of the loop (or step). CHUNK_SIZE is the specific chunk size
!    requested in the schedule clause, or 0 if not specified. ISTART is the
!    iteration index of the logical chunk start.  */
  
  void
! GOMP_distribute_static_worksharing_dispatch (
!   unsigned long long niter __attribute__ ((unused)),
!   unsigned long long start __attribute__ ((unused)),
!   unsigned long long incr __attribute__ ((unused)),
!   unsigned long long chunk_size __attribute__ ((unused)),
!   unsigned long long istart __attribute__ ((unused)))
  {}
  
  /* Stub for OMPT callback enabled by -fopenmp-ompt.  */
diff -Nrcpad gcc-17-20260712/libgomp/config/linux/numa.c gcc-17-20260719/libgomp/config/linux/numa.c
*** gcc-17-20260712/libgomp/config/linux/numa.c	Sun Jul 12 22:32:19 2026
--- gcc-17-20260719/libgomp/config/linux/numa.c	Sun Jul 19 22:32:18 2026
***************
*** 37,45 ****
  #include <sys/syscall.h>
  
  
- static int num_numa_nodes = 0;
- static int *numa_distances = NULL;
- 
  int
  gomp_get_current_numa_node ()
  {
--- 37,42 ----
*************** gomp_get_current_numa_node ()
*** 51,109 ****
  int
  gomp_get_numa_distance (int node1, int node2)
  {
!   if (node1 < 0 || node2 < 0 || num_numa_nodes < 0)
!     return -1;
  
!   if (numa_distances == NULL)
      {
!       num_numa_nodes = -1;
!       DIR *dir = opendir ("/sys/devices/system/node");
!       if (!dir)
  	return -1;
!       struct dirent *dp;
!       int cnt = 0;
!       errno = 0;
!       while ((dp = readdir(dir)) != NULL)
! 	if (strncmp ("node", dp->d_name, 4 /* strlen ("node") */) == 0)
! 	  cnt++;
! 	else if (errno)
! 	  {
! 	    closedir (dir);
! 	    return -1;
! 	  }
!       closedir (dir);
!       numa_distances = (int *) gomp_malloc (sizeof (int) * cnt * cnt);
  
!       constexpr int len = sizeof ("/sys/devices/system/node/node12345/"
! 				  "distance");
!       char filename[len];
  
!       for (int i = 0; i < cnt; i++)
  	{
! 	  if (len < snprintf (filename, sizeof (filename),
! 			      "/sys/devices/system/node/node%d/distance", i))
! 	    return -1;
! 	  int distance = -1;
! 	  FILE *in = fopen (filename, "r");
! 	  if (!in)
! 	    {
! 	      free (numa_distances);
! 	      return -1;
! 	    }
! 	  for (int j = 0; j < cnt; j++)
! 	    {
! 	      fscanf (in, "%d", &distance);
! 	      if (distance == -1)
! 		{
! 		  fclose (in);
! 		  free (numa_distances);
! 		  return -1;
! 		}
! 	      numa_distances[i * cnt + j] = distance;
! 	    }
! 	  fclose (in);
  	}
!       num_numa_nodes = cnt;
      }
!   return numa_distances[node1 * num_numa_nodes + node2];
  }
--- 48,194 ----
  int
  gomp_get_numa_distance (int node1, int node2)
  {
!   /* num_numa_nodes: 0 = uninit, -1 = being initialized, -2 = error,
! 		     > 0 = the number of numa nodes.
!      numa_distances: a 2D array of #nodes * #nodes with the distances.
!      remap: map the numa number to the index in numa_distances;
! 	    as numa numbers might not be contiguous.
!      num_remap: size of the remap array.  */
!   static int num_numa_nodes = 0;
!   static int *numa_distances = NULL;
!   static unsigned num_remap = 0;
!   static unsigned *remap = NULL;
  
! retry:
!   int num = __atomic_load_n (&num_numa_nodes, MEMMODEL_RELAXED);
!   if (node1 < 0 || node2 < 0 || num <= -2)
!     return -1;
!   if (num > 0)
      {
!       if (node1 > num_remap || node2 > num_remap)
  	return -1;
!       node1 = remap[node1];
!       node2 = remap[node2];
!       if (node1 >= num || node2 >= num)
! 	return -1;
!       return numa_distances[node1 * num_numa_nodes + node2];
!     }
  
!   /* Obtain distance data - or busy wait until another thread did so.  */
!   int val = 0;
!   if (!__atomic_compare_exchange_n (&num_numa_nodes, &val, -1, false,
! 				    MEMMODEL_ACQUIRE, MEMMODEL_ACQUIRE))
!     {
!       while (-1 == __atomic_load_n (&num_numa_nodes, MEMMODEL_ACQUIRE));
!       __asm volatile ("" : : : "memory");
!       goto retry;
!     }
  
!   /* Obtain numa nodes.  */
! 
!   num = 0;
!   char *lineptr = NULL;
!   size_t nline = 0;
!   FILE *f = fopen ("/sys/devices/system/node/online", "r");
!   if (f == NULL)
!     goto fail;
!   if (getline (&lineptr, &nline, f) <= 0)
!     {
!       fclose (f);
!       goto fail;
!     }
!   fclose (f);
! 
!   /* Create mapping array between the node number and contiguous
!      n-th online node count. */
!   unsigned constexpr UNSET_REMAP = (unsigned) -1;
!   num_remap = 8;
!   remap = malloc (sizeof (*remap) * num_remap);
!   if (!remap)
!     goto fail;
!   for (int i = 0; i < num_remap; i++)
!     remap[i] = UNSET_REMAP;
!   char *q = lineptr;
!   while (*q && *q != '\n')
!     {
!       unsigned nfirst, nlast;
!       char *end;
! 
!       errno = 0;
!       nfirst = strtoul (q, &end, 10);
!       if (errno || end == q)
! 	goto fail;
!       q = end;
!       nlast = nfirst;
!       if (*q == '-')
  	{
! 	  errno = 0;
! 	  nlast = strtoul (q + 1, &end, 10);
! 	  if (errno || end == q + 1 || nlast < nfirst)
! 	    goto fail;
! 	  q = end;
  	}
!       if (num_remap <= nlast)
! 	{
! 	  int n = nlast > 2 * num_remap ? nlast + 1 : num_remap * 2;
! 	  remap = realloc (remap, sizeof (*remap) * n);
! 	  if (!remap || n <= nlast)
! 	    goto fail;
! 	  for (int i = num_remap; i < n; i++)
! 	    remap[i] = UNSET_REMAP;
! 	  num_remap = n;
! 	}
!       for (; nfirst <= nlast; nfirst++)
! 	remap[nfirst] = num++;
!       if (*q == ',')
! 	++q;
      }
!   free (lineptr);
!   lineptr = NULL;
! 
!   /* Fill distance data.  */
!   numa_distances = (int *) gomp_malloc (sizeof (*numa_distances) * num * num);
! 
!   for (int i = 0; i < num_remap; i++)
!     if (remap[i] == UNSET_REMAP)
!       continue;
!     else
!       {
! 	constexpr int len = sizeof ("/sys/devices/system/node/node12345/"
! 				    "distance");
! 	char filename[len];
! 	int node = remap[i];
! 	if (node < 0)
! 	  goto fail;
! 	if (len < snprintf (filename, sizeof (filename),
! 			    "/sys/devices/system/node/node%d/distance", i))
! 	  goto fail;
! 	FILE *in = fopen (filename, "r");
! 	if (!in)
! 	  goto fail;
! 	for (int j = 0; j < num; j++)
! 	  {
! 	    /* Distance -1 might happen on virtualized systems or when the
! 	       kernel reports "No NUMA configuration found".  The code assumes
! 	       that only distance values show up for online nodes.  */
! 	    int distance;
! 	    if (fscanf (in, "%d", &distance) != 1)
! 	      {
! 		fclose (in);
! 		goto fail;
! 	      }
! 	    numa_distances[node * num + j] = distance;
! 	  }
! 	fclose (in);
!       }
!   __asm volatile ("" : : : "memory");
!   __atomic_store_n (&num_numa_nodes, num, MEMMODEL_RELAXED);
!   goto retry;
! 
! fail:
!   free (lineptr);
!   free (remap);
!   free (numa_distances);
!   __atomic_store_n (&num_numa_nodes, -2, MEMMODEL_RELAXED);
!   return -1;
  }
diff -Nrcpad gcc-17-20260712/libgomp/config/nvptx/teams.c gcc-17-20260719/libgomp/config/nvptx/teams.c
*** gcc-17-20260712/libgomp/config/nvptx/teams.c	Sun Jul 12 22:32:19 2026
--- gcc-17-20260719/libgomp/config/nvptx/teams.c	Sun Jul 19 22:32:18 2026
*************** GOMP_distribute_static_worksharing_start
*** 65,74 ****
    return nteams + tid * 1I;
  }
  
! /* Stub for OMPT callback enabled by -fopenmp-ompt-detailed.  */
  
  void
! GOMP_distribute_static_worksharing_dispatch (void)
  {}
  
  /* Stub for OMPT callback enabled by -fopenmp-ompt.  */
--- 65,83 ----
    return nteams + tid * 1I;
  }
  
! /* Stub for OMPT callback enabled by -fopenmp-ompt-detailed. NITER is the total
!    number of iterations. START is the starting iteration index. INCR is the
!    increment of the loop (or step). CHUNK_SIZE is the specific chunk size
!    requested in the schedule clause, or 0 if not specified. ISTART is the
!    iteration index of the logical chunk start.  */
  
  void
! GOMP_distribute_static_worksharing_dispatch (
!   unsigned long long niter __attribute__ ((unused)),
!   unsigned long long start __attribute__ ((unused)),
!   unsigned long long incr __attribute__ ((unused)),
!   unsigned long long chunk_size __attribute__ ((unused)),
!   unsigned long long istart __attribute__ ((unused)))
  {}
  
  /* Stub for OMPT callback enabled by -fopenmp-ompt.  */
diff -Nrcpad gcc-17-20260712/libgomp/error.c gcc-17-20260719/libgomp/error.c
*** gcc-17-20260712/libgomp/error.c	Sun Jul 12 22:32:19 2026
--- gcc-17-20260719/libgomp/error.c	Sun Jul 19 22:32:18 2026
*************** GOMP_warning (const char *msg, size_t ms
*** 105,115 ****
--- 105,121 ----
      gomp_error ("error directive encountered");
  }
  
+ /* Handle 'omp error' directive; for msglen == -2, it is used internally
+    by the compiler-generated code such that 'error directive encountered'
+    is not printed.  */
+ 
  void
  GOMP_error (const char *msg, size_t msglen)
  {
    if (msg && msglen == (size_t) -1)
      gomp_fatal ("fatal error: error directive encountered: %s", msg);
+   else if (msg && msglen == (size_t) -2)
+     gomp_fatal ("fatal error: %s", msg);
    else if (msg)
      {
        fputs ("\nlibgomp: fatal error: error directive encountered: ", stderr);
diff -Nrcpad gcc-17-20260712/libgomp/libgomp.map gcc-17-20260719/libgomp/libgomp.map
*** gcc-17-20260712/libgomp/libgomp.map	Sun Jul 12 22:32:19 2026
--- gcc-17-20260719/libgomp/libgomp.map	Sun Jul 19 22:32:18 2026
*************** GOMP_6.0.1 {
*** 485,490 ****
--- 485,491 ----
  GOMP_6.0.2 {
    global:
  	GOMP_has_masked_thread_num;
+ 	GOMP_has_masked_thread_num_with_end;
  	GOMP_masked_end;
  	GOMP_loop_static_worksharing;
  	GOMP_loop_static_worksharing_start;
diff -Nrcpad gcc-17-20260712/libgomp/libgomp.texi gcc-17-20260719/libgomp/libgomp.texi
*** gcc-17-20260712/libgomp/libgomp.texi	Sun Jul 12 22:32:19 2026
--- gcc-17-20260719/libgomp/libgomp.texi	Sun Jul 19 22:32:18 2026
*************** See also @ref{OpenMP Implementation Stat
*** 170,176 ****
  * OpenMP 5.1:: Feature completion status to 5.1 specification
  * OpenMP 5.2:: Feature completion status to 5.2 specification
  * OpenMP 6.0:: Feature completion status to 6.0 specification
! * OpenMP Technical Report 14:: Feature completion status to first 6.1 preview
  @end menu
  
  The @code{_OPENMP} preprocessor macro and Fortran's @code{openmp_version}
--- 170,176 ----
  * OpenMP 5.1:: Feature completion status to 5.1 specification
  * OpenMP 5.2:: Feature completion status to 5.2 specification
  * OpenMP 6.0:: Feature completion status to 6.0 specification
! * OpenMP Technical Report 15:: Feature completion status to second 6.1 preview
  @end menu
  
  The @code{_OPENMP} preprocessor macro and Fortran's @code{openmp_version}
*************** to address of matching mapped list item
*** 363,369 ****
        @code{IMPORT}, and @code{IMPLICIT} as invalid @tab N @tab
  @item Optional comma between directive and clause in the @code{#pragma} form @tab Y @tab
  @item @code{indirect} clause in @code{declare target} @tab Y @tab
! @item @code{device_type(nohost)}/@code{device_type(host)} for variables @tab N @tab
  @item @code{present} modifier to the @code{map}, @code{to} and @code{from}
        clauses @tab Y @tab
  @item Changed interaction between @code{declare target} and OpenMP context
--- 363,370 ----
        @code{IMPORT}, and @code{IMPLICIT} as invalid @tab N @tab
  @item Optional comma between directive and clause in the @code{#pragma} form @tab Y @tab
  @item @code{indirect} clause in @code{declare target} @tab Y @tab
! @item @code{device_type(nohost)}/@code{device_type(host)} for variables @tab P @tab
!       Initial support
  @item @code{present} modifier to the @code{map}, @code{to} and @code{from}
        clauses @tab Y @tab
  @item Changed interaction between @code{declare target} and OpenMP context
*************** to address of matching mapped list item
*** 416,429 ****
        allocatables/pointers @tab Y @tab
  @item Optional paired @code{end} directive with @code{dispatch} @tab Y @tab
  @item New @code{memspace} and @code{traits} modifiers for @code{uses_allocators}
!       @tab P @tab Only predefined allocators
  @item Deprecation of traits array following the allocator_handle expression in
        @code{uses_allocators} @tab Y @tab
  @item New @code{otherwise} clause as alias for @code{default} on metadirectives
        @tab Y @tab
  @item Deprecation of @code{default} clause on metadirectives @tab Y
!       @tab Both @code{otherwise} and @code{default} are accepted
!       without diagnostics.
  @item Deprecation of delimited form of @code{declare target} @tab Y @tab
  @item Reproducible semantics changed for @code{order(concurrent)} @tab N @tab
  @item @code{allocate} and @code{firstprivate} clauses on @code{scope}
--- 417,429 ----
        allocatables/pointers @tab Y @tab
  @item Optional paired @code{end} directive with @code{dispatch} @tab Y @tab
  @item New @code{memspace} and @code{traits} modifiers for @code{uses_allocators}
!       @tab Y @tab
  @item Deprecation of traits array following the allocator_handle expression in
        @code{uses_allocators} @tab Y @tab
  @item New @code{otherwise} clause as alias for @code{default} on metadirectives
        @tab Y @tab
  @item Deprecation of @code{default} clause on metadirectives @tab Y
!       @tab
  @item Deprecation of delimited form of @code{declare target} @tab Y @tab
  @item Reproducible semantics changed for @code{order(concurrent)} @tab N @tab
  @item @code{allocate} and @code{firstprivate} clauses on @code{scope}
*************** to address of matching mapped list item
*** 463,469 ****
  @multitable @columnfractions .60 .10 .25
  @item Features deprecated in versions 5.0, 5.1 and 5.2 were removed
        @tab N/A @tab Backward compatibility
! @item Full support for C23 was added @tab P @tab
  @item Full support for C++23 was added @tab P @tab
  @item Full support for Fortran 2023 was added @tab P @tab
  @item @code{_ALL} suffix to the device-scope environment variables
--- 463,469 ----
  @multitable @columnfractions .60 .10 .25
  @item Features deprecated in versions 5.0, 5.1 and 5.2 were removed
        @tab N/A @tab Backward compatibility
! @item Full support for C23 was added @tab Y @tab
  @item Full support for C++23 was added @tab P @tab
  @item Full support for Fortran 2023 was added @tab P @tab
  @item @code{_ALL} suffix to the device-scope environment variables
*************** to address of matching mapped list item
*** 543,549 ****
  @item @code{access} allocator trait changes @tab N @tab
  @item New @code{partitioner} value to @code{partition} allocator trait
        @tab N @tab
! @item Semicolon-separated list to @code{uses_allocators} @tab N @tab
  @item New @code{need_device_addr} modifier to @code{adjust_args} clause @tab N @tab
  @item @code{interop} clause to @code{dispatch} @tab Y @tab
  @item Scope requirement changes for @code{declare_target} @tab N @tab
--- 543,549 ----
  @item @code{access} allocator trait changes @tab N @tab
  @item New @code{partitioner} value to @code{partition} allocator trait
        @tab N @tab
! @item Semicolon-separated list to @code{uses_allocators} @tab Y @tab
  @item New @code{need_device_addr} modifier to @code{adjust_args} clause @tab N @tab
  @item @code{interop} clause to @code{dispatch} @tab Y @tab
  @item Scope requirement changes for @code{declare_target} @tab N @tab
*************** to address of matching mapped list item
*** 580,586 ****
        @code{target_data}, @code{target_exit_data} and @code{target_update}
        @tab N @tab
  @item New @code{device_type} clause to the @code{target} directive
!       @tab N @tab
  @item @code{target_data} as composite construct @tab N @tab
  @item @code{nowait} clause with reverse-offload @code{target} directives
        @tab N @tab
--- 580,586 ----
        @code{target_data}, @code{target_exit_data} and @code{target_update}
        @tab N @tab
  @item New @code{device_type} clause to the @code{target} directive
!       @tab Y @tab
  @item @code{target_data} as composite construct @tab N @tab
  @item @code{nowait} clause with reverse-offload @code{target} directives
        @tab N @tab
*************** to address of matching mapped list item
*** 653,678 ****
  @end multitable
  
  
! @node OpenMP Technical Report 14
! @section OpenMP Technical Report 14
  
! Technical Report (TR) 14 is the first preview for OpenMP 6.1.
  
  @unnumberedsubsec New features listed in Appendix B of the OpenMP specification
  @multitable @columnfractions .60 .10 .25
  @item The @code{depth} clause to @code{fuse} directive @tab N @tab
  @item The @code{attach} modifier to the @code{map} clause @tab N @tab
  @item The @code{dyn_groupprivate} clause and the
        @code{omp_get_dyn_groupprivate_ptr}, @code{omp_get_dyn_groupprivate_size},
        and @code{omp_get_dyn_groupprivate_size} routines @tab N @tab
  @item @code{begin declare_variant} directive in Fortran @tab N @tab
  @item @code{grid} and @code{tile} modifier to the @code{size} clause @tab N @tab
  @item New @code{flatten} loop-transforming directive @tab N @tab
  @item @code{scaled} modifier to @code{simdlen} clause @tab N @tab
  @item New @code{omp_default_device} identifier as conforming device number
        @tab Y @tab
  @item Clarify when @code{omp_target_is_accessible} routine returns zero
        @tab Y @tab
  @end multitable
  
  @unnumberedsubsec Deprecated features, unless listed above
--- 653,715 ----
  @end multitable
  
  
! @node OpenMP Technical Report 15
! @section OpenMP Technical Report 15
  
! Technical Report (TR) 15 is the second preview for OpenMP 6.1.
  
  @unnumberedsubsec New features listed in Appendix B of the OpenMP specification
  @multitable @columnfractions .60 .10 .25
+ @item Spatial ICVs and the @code{dim} modifier for spatial dimensions @tab N @tab
+ @item Spatial-dimension API routines @tab Y
+       @tab Single active dimension until @code{dim} modifier is supported
+ @item In the @code{OMP_PLACES} env var, support extended syntax with abstract names
+       @tab N @tab
+ @item In the @code{OMP_PLACES} env var, support hierarchical place groups
+       @tab N @tab
+ @item In the @code{OMP_PLACES} env var, new @code{structured} operator
+       @tab N @tab
+ @item @code{reset} and @code{noreset} modifiers to the @code{OMP_PROC_BIND}
+       env var @tab N @tab
+ @item @code{optional} modifier to the @code{default} and @code{defaultmap}
+       clauses for Fortran @tab N @tab
+ @item @code{implicit} modifier to the @code{default} and @code{defaultmap}
+       clauses @tab N @tab
+ @item Type conversion in atomic structured blocks @tab N @tab
  @item The @code{depth} clause to @code{fuse} directive @tab N @tab
+ @item The @code{per_thread} modifier to the @code{reduction} clause @tab N @tab
+ @item Mapping polymorphic variables in Fortran @tab N @tab
  @item The @code{attach} modifier to the @code{map} clause @tab N @tab
  @item The @code{dyn_groupprivate} clause and the
        @code{omp_get_dyn_groupprivate_ptr}, @code{omp_get_dyn_groupprivate_size},
        and @code{omp_get_dyn_groupprivate_size} routines @tab N @tab
+ @item The @code{vendor} trait selector to the @code{device} and @code{target_device}
+       selector set in context selectors @tab N @tab
  @item @code{begin declare_variant} directive in Fortran @tab N @tab
+ @item @code{shift} clause to the @code{tile} construct @tab N @tab
  @item @code{grid} and @code{tile} modifier to the @code{size} clause @tab N @tab
  @item New @code{flatten} loop-transforming directive @tab N @tab
  @item @code{scaled} modifier to @code{simdlen} clause @tab N @tab
+ @item Lifted restriction on the first chunk size for the @code{schedule} clause
+       with @code{simd} modifier @tab N @tab
+ @item Change to the used chunk-size with the @code{schedule} clause and no
+       specified @var{chunk_size} @tab N @tab
+ @item Clarified behavior of Fortran type-bound procedures inside @code{target}
+       regions @tab N @tab
+ @item @code{taskwait} construct's implicit task-dependencies rules update
+       @tab N @tab
+ @item @code{depobj} and @code{loc} modifiers to the @code{depend} clause
+       @tab N @tab
  @item New @code{omp_default_device} identifier as conforming device number
        @tab Y @tab
+ @item @code{user_mem} class template added to the @code{omp::allocator} namespace
+       @tab N @tab
+ @item @code{omp_get_filtered_devices} API routines @tab N @tab
+ @item @code{omp_get_device_distances} API routines @tab Y @tab
  @item Clarify when @code{omp_target_is_accessible} routine returns zero
        @tab Y @tab
+ @item OMPT entry point @code{set_selective_callback} @tab N @tab
+ @item OMPT entry point @code{get_uid_from_device} @tab N @tab
  @end multitable
  
  @unnumberedsubsec Deprecated features, unless listed above
*************** They have C linkage and do not throw exc
*** 3906,3915 ****
  * omp_get_default_allocator:: Get the default allocator
  * omp_alloc:: Memory allocation with an allocator
  * omp_aligned_alloc:: Memory allocation with an allocator and alignment
- * omp_free:: Freeing memory allocated with OpenMP routines
  * omp_calloc:: Allocate nullified memory with an allocator
  * omp_aligned_calloc:: Allocate nullified aligned memory with an allocator
  * omp_realloc:: Reallocate memory allocated with OpenMP routines
  @end menu
  
  
--- 3943,3957 ----
  * omp_get_default_allocator:: Get the default allocator
  * omp_alloc:: Memory allocation with an allocator
  * omp_aligned_alloc:: Memory allocation with an allocator and alignment
  * omp_calloc:: Allocate nullified memory with an allocator
  * omp_aligned_calloc:: Allocate nullified aligned memory with an allocator
  * omp_realloc:: Reallocate memory allocated with OpenMP routines
+ * omp_free:: Freeing memory allocated with OpenMP routines
+ @c * omp_get_dyn_gprivate_ptr:: <fixme>/TR15
+ @c * omp_get_dyn_gprivate_nofb_ptr:: <fixme>/TR15
+ @c * omp_get_dyn_gprivate_size:: <fixme>/TR15
+ @c * omp_get_dyn_gprivate_memspace:: <fixme>/TR15
+ @c * omp_get_gprivate_limit:: <fixme>/TR15
  @end menu
  
  
*************** Memory allocated by @code{omp_aligned_al
*** 4149,4199 ****
  
  
  
- @node omp_free
- @subsection @code{omp_free} -- Freeing memory allocated with OpenMP routines
- @table @asis
- @item @emph{Description}:
- The @code{omp_free} routine deallocates memory previously allocated by an
- OpenMP memory-management routine. The @var{ptr} argument must point to such
- memory or be a null pointer; if it is a null pointer, no operation is
- performed.  If specified, the @var{allocator} argument must be either the
- memory allocator that was used for the allocation or @code{omp_null_allocator};
- if it is @code{omp_null_allocator}, the implementation will determine the value
- automatically.
- 
- Calling @code{omp_free} invokes undefined behavior if the memory
- was already deallocated or when the used allocator has already been destroyed.
- 
- @item @emph{C}:
- @multitable @columnfractions .20 .80
- @item @emph{Prototype}: @tab @code{void omp_free(void *ptr,}
- @item                   @tab @code{  omp_allocator_handle_t allocator)}
- @end multitable
- 
- @item @emph{C++}:
- @multitable @columnfractions .20 .80
- @item @emph{Prototype}: @tab @code{void omp_free(void *ptr,}
- @item                   @tab @code{  omp_allocator_handle_t allocator=omp_null_allocator)}
- @end multitable
- 
- @item @emph{Fortran}:
- @multitable @columnfractions .20 .80
- @item @emph{Interface}: @tab @code{subroutine omp_free(ptr, allocator) bind(C)}
- @item                   @tab @code{use, intrinsic :: iso_c_binding, only : c_ptr}
- @item                   @tab @code{type (c_ptr), value :: ptr}
- @item                   @tab @code{integer (omp_allocator_handle_kind), value :: allocator}
- @end multitable
- 
- @item @emph{See also}:
- @ref{omp_alloc}, @ref{omp_aligned_alloc}, @ref{omp_calloc},
- @ref{omp_aligned_calloc}, @ref{omp_realloc}
- 
- @item @emph{Reference}:
- @uref{https://www.openmp.org, OpenMP specification v5.0}, Section 3.7.7
- @end table
- 
- 
- 
  @node omp_calloc
  @subsection @code{omp_calloc} -- Allocate nullified memory with an allocator
  @table @asis
--- 4191,4196 ----
*************** was already deallocated or when the used
*** 4372,4377 ****
--- 4369,4419 ----
  
  
  
+ @node omp_free
+ @subsection @code{omp_free} -- Freeing memory allocated with OpenMP routines
+ @table @asis
+ @item @emph{Description}:
+ The @code{omp_free} routine deallocates memory previously allocated by an
+ OpenMP memory-management routine. The @var{ptr} argument must point to such
+ memory or be a null pointer; if it is a null pointer, no operation is
+ performed.  If specified, the @var{allocator} argument must be either the
+ memory allocator that was used for the allocation or @code{omp_null_allocator};
+ if it is @code{omp_null_allocator}, the implementation will determine the value
+ automatically.
+ 
+ Calling @code{omp_free} invokes undefined behavior if the memory
+ was already deallocated or when the used allocator has already been destroyed.
+ 
+ @item @emph{C}:
+ @multitable @columnfractions .20 .80
+ @item @emph{Prototype}: @tab @code{void omp_free(void *ptr,}
+ @item                   @tab @code{  omp_allocator_handle_t allocator)}
+ @end multitable
+ 
+ @item @emph{C++}:
+ @multitable @columnfractions .20 .80
+ @item @emph{Prototype}: @tab @code{void omp_free(void *ptr,}
+ @item                   @tab @code{  omp_allocator_handle_t allocator=omp_null_allocator)}
+ @end multitable
+ 
+ @item @emph{Fortran}:
+ @multitable @columnfractions .20 .80
+ @item @emph{Interface}: @tab @code{subroutine omp_free(ptr, allocator) bind(C)}
+ @item                   @tab @code{use, intrinsic :: iso_c_binding, only : c_ptr}
+ @item                   @tab @code{type (c_ptr), value :: ptr}
+ @item                   @tab @code{integer (omp_allocator_handle_kind), value :: allocator}
+ @end multitable
+ 
+ @item @emph{See also}:
+ @ref{omp_alloc}, @ref{omp_aligned_alloc}, @ref{omp_calloc},
+ @ref{omp_aligned_calloc}, @ref{omp_realloc}
+ 
+ @item @emph{Reference}:
+ @uref{https://www.openmp.org, OpenMP specification v5.0}, Section 3.7.7
+ @end table
+ 
+ 
+ 
  @node Tool Control Routine
  @section Tool Control Routine
  
*************** The implementation remark:
*** 7851,7857 ****
  @item OpenMP code that has a @code{requires} directive with @code{self_maps} or
        @code{unified_shared_memory} runs on nvptx devices if and only if
        all of those support the @code{pageableMemoryAccess} property;@footnote{
!       @uref{https://docs.nvidia.com/cuda/cuda-programming-guide/}}
        otherwise, all nvptx device are removed from the list of available
        devices (``host fallback'').
  @item The default per-warp stack size is 128 kiB; see also @code{-msoft-stack}
--- 7893,7899 ----
  @item OpenMP code that has a @code{requires} directive with @code{self_maps} or
        @code{unified_shared_memory} runs on nvptx devices if and only if
        all of those support the @code{pageableMemoryAccess} property;@footnote{
!       @uref{https://docs.nvidia.com/cuda/cuda-programming-guide/04-special-topics/unified-memory.html}}
        otherwise, all nvptx device are removed from the list of available
        devices (``host fallback'').
  @item The default per-warp stack size is 128 kiB; see also @code{-msoft-stack}
*************** if (GOMP_has_masked_thread_num(thread_nu
*** 8029,8035 ****
  
  @code{GOMP_has_masked_thread_num} encapsulates the following check, so that OMPT
  can distinguish the compiler-generated code from user-level thread-number
! queries:
  
  @smallexample
  omp_get_thread_num() == @var{thread_num}
--- 8071,8079 ----
  
  @code{GOMP_has_masked_thread_num} encapsulates the following check, so that OMPT
  can distinguish the compiler-generated code from user-level thread-number
! queries; with @option{-fopenmp-ompt}, a paired call to
! @code{GOMP_has_masked_thread_num_with_end} and @code{GOMP_masked_end} is
! generated instead.
  
  @smallexample
  omp_get_thread_num() == @var{thread_num}
diff -Nrcpad gcc-17-20260712/libgomp/libgomp_g.h gcc-17-20260719/libgomp/libgomp_g.h
*** gcc-17-20260712/libgomp/libgomp_g.h	Sun Jul 12 22:32:19 2026
--- gcc-17-20260719/libgomp/libgomp_g.h	Sun Jul 19 22:32:18 2026
*************** extern bool GOMP_loop_end_cancel (void);
*** 146,152 ****
  
  extern _Complex int GOMP_loop_static_worksharing (unsigned long long);
  extern _Complex int GOMP_loop_static_worksharing_start (unsigned long long);
! extern void GOMP_loop_static_worksharing_dispatch (void);
  extern void GOMP_loop_static_worksharing_end (void);
  
  /* loop_ull.c */
--- 146,156 ----
  
  extern _Complex int GOMP_loop_static_worksharing (unsigned long long);
  extern _Complex int GOMP_loop_static_worksharing_start (unsigned long long);
! extern void GOMP_loop_static_worksharing_dispatch (unsigned long long,
! 						   unsigned long long,
! 						   unsigned long long,
! 						   unsigned long long,
! 						   unsigned long long);
  extern void GOMP_loop_static_worksharing_end (void);
  
  /* loop_ull.c */
*************** extern unsigned GOMP_parallel_reductions
*** 303,308 ****
--- 307,313 ----
  extern bool GOMP_cancel (int, bool);
  extern bool GOMP_cancellation_point (int);
  extern bool GOMP_has_masked_thread_num (int);
+ extern bool GOMP_has_masked_thread_num_with_end (int);
  extern void GOMP_masked_end (void);
  
  /* task.c */
*************** extern void GOMP_teams_reg (void (*) (vo
*** 388,394 ****
  			    unsigned);
  extern _Complex int GOMP_distribute_static_worksharing (unsigned long long);
  extern _Complex int GOMP_distribute_static_worksharing_start (unsigned long long);
! extern void GOMP_distribute_static_worksharing_dispatch (void);
  extern void GOMP_distribute_static_worksharing_end (void);
  
  /* allocator.c */
--- 393,403 ----
  			    unsigned);
  extern _Complex int GOMP_distribute_static_worksharing (unsigned long long);
  extern _Complex int GOMP_distribute_static_worksharing_start (unsigned long long);
! extern void GOMP_distribute_static_worksharing_dispatch (unsigned long long,
! 							 unsigned long long,
! 							 unsigned long long,
! 							 unsigned long long,
! 							 unsigned long long);
  extern void GOMP_distribute_static_worksharing_end (void);
  
  /* allocator.c */
diff -Nrcpad gcc-17-20260712/libgomp/loop.c gcc-17-20260719/libgomp/loop.c
*** gcc-17-20260712/libgomp/loop.c	Sun Jul 12 22:32:19 2026
--- gcc-17-20260719/libgomp/loop.c	Sun Jul 19 22:32:18 2026
*************** GOMP_loop_static_worksharing_start (unsi
*** 1213,1222 ****
    return nthreads + tid * 1I;
  }
  
! /* Stub for OMPT callback enabled by -fopenmp-ompt-detailed.  */
  
  void
! GOMP_loop_static_worksharing_dispatch (void)
  {}
  
  /* Stub for OMPT callback enabled by -fopenmp-ompt.  */
--- 1213,1231 ----
    return nthreads + tid * 1I;
  }
  
! /* Stub for OMPT callback enabled by -fopenmp-ompt-detailed. NITER is the total
!    number of iterations. START is the starting iteration index. INCR is the
!    increment of the loop (or step). CHUNK_SIZE is the specific chunk size
!    requested in the schedule clause, or 0 if not specified. ISTART is the
!    iteration index of the logical chunk start.  */
  
  void
! GOMP_loop_static_worksharing_dispatch (
!   unsigned long long niter __attribute__ ((unused)),
!   unsigned long long start __attribute__ ((unused)),
!   unsigned long long incr __attribute__ ((unused)),
!   unsigned long long chunk_size __attribute__ ((unused)),
!   unsigned long long istart __attribute__ ((unused)))
  {}
  
  /* Stub for OMPT callback enabled by -fopenmp-ompt.  */
diff -Nrcpad gcc-17-20260712/libgomp/parallel.c gcc-17-20260719/libgomp/parallel.c
*** gcc-17-20260712/libgomp/parallel.c	Sun Jul 12 22:32:19 2026
--- gcc-17-20260719/libgomp/parallel.c	Sun Jul 19 22:32:18 2026
*************** GOMP_has_masked_thread_num (int tid)
*** 280,285 ****
--- 280,293 ----
    return tid == gomp_thread ()->ts.team_id;
  }
  
+ /* OMPT variant enabled by -fopenmp-ompt.  */
+ 
+ bool
+ GOMP_has_masked_thread_num_with_end (int tid)
+ {
+   return tid == gomp_thread ()->ts.team_id;
+ }
+ 
  /* Stub for OMPT callback enabled by -fopenmp-ompt.  */
  
  void
diff -Nrcpad gcc-17-20260712/libgomp/target.c gcc-17-20260719/libgomp/target.c
*** gcc-17-20260712/libgomp/target.c	Sun Jul 12 22:32:19 2026
--- gcc-17-20260719/libgomp/target.c	Sun Jul 19 22:32:18 2026
*************** copy_firstprivate_data (char *tgt, size_
*** 3282,3287 ****
--- 3282,3288 ----
  							   tgt + tgt_size,
  							   hostaddrs[i]);
  	hostaddrs[i] = (void *) allocator;
+ 	tgt_size += gomp_omp_allocator_data_size;
        }
  }
  
diff -Nrcpad gcc-17-20260712/libgomp/teams.c gcc-17-20260719/libgomp/teams.c
*** gcc-17-20260712/libgomp/teams.c	Sun Jul 12 22:32:19 2026
--- gcc-17-20260719/libgomp/teams.c	Sun Jul 19 22:32:18 2026
*************** GOMP_distribute_static_worksharing_start
*** 84,93 ****
    return nteams + tid * 1I;
  }
  
! /* Stub for OMPT callback enabled by -fopenmp-ompt-detailed.  */
  
  void
! GOMP_distribute_static_worksharing_dispatch (void)
  {}
  
  /* Stub for OMPT callback enabled by -fopenmp-ompt.  */
--- 84,102 ----
    return nteams + tid * 1I;
  }
  
! /* Stub for OMPT callback enabled by -fopenmp-ompt-detailed. NITER is the total
!    number of iterations. START is the starting iteration index. INCR is the
!    increment of the loop (or step). CHUNK_SIZE is the specific chunk size
!    requested in the schedule clause, or 0 if not specified. ISTART is the
!    iteration index of the logical chunk start.  */
  
  void
! GOMP_distribute_static_worksharing_dispatch (
!   unsigned long long niter __attribute__ ((unused)),
!   unsigned long long start __attribute__ ((unused)),
!   unsigned long long incr __attribute__ ((unused)),
!   unsigned long long chunk_size __attribute__ ((unused)),
!   unsigned long long istart __attribute__ ((unused)))
  {}
  
  /* Stub for OMPT callback enabled by -fopenmp-ompt.  */
diff -Nrcpad gcc-17-20260712/libgomp/testsuite/libgomp.c/target-device-type-1.c gcc-17-20260719/libgomp/testsuite/libgomp.c/target-device-type-1.c
*** gcc-17-20260712/libgomp/testsuite/libgomp.c/target-device-type-1.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/libgomp/testsuite/libgomp.c/target-device-type-1.c	Sun Jul 19 22:32:18 2026
***************
*** 0 ****
--- 1,21 ----
+ /* { dg-do run { target offload_device } } */
+ /* { dg-additional-options "-fdump-tree-gimple" } */
+ 
+ int
+ f (int *x)
+ {
+   #pragma omp target map(tofrom:x[0:1]) device_type(nohost)
+     (*x)++;
+   return *x;
+ }
+ 
+ int
+ main ()
+ {
+   int i = 3;
+   if (f(&i) != 4)
+     __builtin_abort ();
+ }
+ 
+ /* { dg-final { scan-tree-dump "= __builtin_omp_is_initial_device \\(\\);" "gimple" } } */
+ /* { dg-final { scan-tree-dump "__builtin_GOMP_error \\(\"Executing device-type ..nohost.. target region on the host\"," "gimple" } } */
diff -Nrcpad gcc-17-20260712/libgomp/testsuite/libgomp.c/target-device-type-2.c gcc-17-20260719/libgomp/testsuite/libgomp.c/target-device-type-2.c
*** gcc-17-20260712/libgomp/testsuite/libgomp.c/target-device-type-2.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/libgomp/testsuite/libgomp.c/target-device-type-2.c	Sun Jul 19 22:32:18 2026
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-do run } */
+ /* { dg-additional-options "-fdump-tree-gimple" } */
+ 
+ #include <omp.h>
+ 
+ int
+ f (int *x)
+ {
+   #pragma omp target map(tofrom:x[0:1]) device_type(nohost)
+     (*x)++;
+   return *x;
+ }
+ 
+ int
+ main ()
+ {
+   omp_set_default_device (omp_initial_device);
+   int i = 3;
+   if (f(&i) != 4)
+     __builtin_abort ();
+ }
+ 
+ /* { dg-final { scan-tree-dump "= __builtin_omp_is_initial_device \\(\\);" "gimple" } } */
+ /* { dg-final { scan-tree-dump "__builtin_GOMP_error \\(\"Executing device-type ..nohost.. target region on the host\"," "gimple" } } */
+ 
+ /* { dg-output "libgomp: fatal error: Executing device-type 'nohost' target region on the host" } */
+ /* { dg-shouldfail "'nohost' target region on the host" } */
diff -Nrcpad gcc-17-20260712/libgomp/testsuite/libgomp.c/target-device-type-3.c gcc-17-20260719/libgomp/testsuite/libgomp.c/target-device-type-3.c
*** gcc-17-20260712/libgomp/testsuite/libgomp.c/target-device-type-3.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/libgomp/testsuite/libgomp.c/target-device-type-3.c	Sun Jul 19 22:32:18 2026
***************
*** 0 ****
--- 1,60 ----
+ /* { dg-do run } */
+ /* { dg-additional-options -fdump-tree-ompexp } */
+ /* { dg-additional-options -foffload-options=-fdump-tree-optimized-raw-asmname } */
+ 
+ /* This code is supposed to run on the host independent of the current
+    default-device-var ICV - and it shall not create any device code for
+    neither the target region nor the called functions.  */
+ 
+ 
+ // Due to 'device_type(nohost)', the outlined region shall not be marked
+ // as 'target entrypoint' - nor should 'ggg' become implicitly
+ // 'declare target' -- check for the absence of those __attributes__:
+ 
+ /* { dg-final { scan-tree-dump-times "omp declare target" 1 "ompexp" } } */
+ /* { dg-final { scan-tree-dump-not "omp target entrypoint" "ompexp" } } */
+ 
+ 
+ // Expect that GOMP_target explicitly invokes the host device, i.e.
+ // -3 == (shifted) omp_initial_device (aka host fallback)
+ 
+ /* { dg-final { scan-tree-dump "__builtin_GOMP_target_ext \\(-3," "ompexp" } } */
+ 
+ 
+ // On the device side, expect only hhh:
+ 
+ /* { dg-final { scan-offload-tree-dump "hhh" "optimized" } } */
+ /* { dg-final { scan-offload-tree-dump-not "ggg" "optimized" } } */
+ /* { dg-final { scan-offload-tree-dump-not "_omp_fn" "optimized" } } */
+ 
+ 
+ #include <omp.h>
+ 
+ // Use 'declare target' such that -fdump-tree-optimized creates a file.
+ // Otherwise, there is dump file (only a stub assembly file)
+ // That's the only purpose of this function.
+ int hhh() { return 5; }
+ #pragma omp declare target enter(hhh)
+ 
+ 
+ int ggg() {
+   return 42;
+ }
+ 
+ int f(int *x) {
+   bool initial_dev = false;
+   #pragma omp target map(tofrom: initial_dev) device_type(host) 
+     {
+       initial_dev = omp_is_initial_device ();
+       (*x) = (*x) + 1 + ggg();
+     }
+   if (!initial_dev)
+     __builtin_abort ();
+   return *x;
+ }
+ 
+ int main() {
+   int i = 5;
+   if (f(&i) != 5 + 1 + 42)
+     __builtin_abort();
+ }
diff -Nrcpad gcc-17-20260712/libgomp/testsuite/libgomp.c-c++-common/for-static-3.c gcc-17-20260719/libgomp/testsuite/libgomp.c-c++-common/for-static-3.c
*** gcc-17-20260712/libgomp/testsuite/libgomp.c-c++-common/for-static-3.c	Sun Jul 12 22:32:19 2026
--- gcc-17-20260719/libgomp/testsuite/libgomp.c-c++-common/for-static-3.c	Sun Jul 19 22:32:18 2026
***************
*** 7,11 ****
  #include "for-static.h"
  
  /* { dg-final { scan-offload-tree-dump-times "GOMP_distribute_static_worksharing_start \\(\[^\\)\]" 2 "optimized" } } */
! /* { dg-final { scan-offload-tree-dump-times "GOMP_distribute_static_worksharing_dispatch \\(\\)" 2 "optimized" } } */
  /* { dg-final { scan-offload-tree-dump-times "GOMP_distribute_static_worksharing_end \\(\\)" 2 "optimized" } } */
--- 7,12 ----
  #include "for-static.h"
  
  /* { dg-final { scan-offload-tree-dump-times "GOMP_distribute_static_worksharing_start \\(\[^\\)\]" 2 "optimized" } } */
! /* { dg-final { scan-offload-tree-dump-times "GOMP_distribute_static_worksharing_dispatch \\(\[^,\]+, \[^,\]+, \[^,\]+, 0, \[^)\]+\\)" 1 "optimized" } } */
! /* { dg-final { scan-offload-tree-dump-times "GOMP_distribute_static_worksharing_dispatch \\(\[^,\]+, \[^,\]+, \[^,\]+, 4, \[^)\]+\\)" 1 "optimized" } } */
  /* { dg-final { scan-offload-tree-dump-times "GOMP_distribute_static_worksharing_end \\(\\)" 2 "optimized" } } */
diff -Nrcpad gcc-17-20260712/libgomp/testsuite/libgomp.c-c++-common/uses_allocators-10.c gcc-17-20260719/libgomp/testsuite/libgomp.c-c++-common/uses_allocators-10.c
*** gcc-17-20260712/libgomp/testsuite/libgomp.c-c++-common/uses_allocators-10.c	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/libgomp/testsuite/libgomp.c-c++-common/uses_allocators-10.c	Sun Jul 19 22:32:18 2026
***************
*** 0 ****
--- 1,28 ----
+ // { dg-do run }
+ 
+ #include <omp.h>
+ 
+ int main ()
+ {
+   const omp_alloctrait_t traits[] = {{omp_atk_alignment, 1024}};
+   omp_allocator_handle_t alloc = omp_null_allocator;
+ 
+   int array[2], var2 = 124;
+   int res = 1;
+ 
+   #pragma omp target map(from: res) \
+      uses_allocators(memspace(omp_default_mem_space), traits(traits) : alloc) \
+      allocate(alloc : array, var2) private(array) firstprivate(var2)
+   {
+      array[0] = 1;
+      array[1] = 2;
+      if (var2 != 124 || ((omp_uintptr_t) &var2) % 1024 != 0)
+        __builtin_abort ();
+      else if (array[0] != 1 || array[1] != 2 || ((omp_uintptr_t) &array[0]) % 1024 != 0)
+        __builtin_abort ();
+      else
+        res = 42;
+   }
+   if (res != 42)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-17-20260712/libgomp/testsuite/libgomp.fortran/uses_allocators-1.f90 gcc-17-20260719/libgomp/testsuite/libgomp.fortran/uses_allocators-1.f90
*** gcc-17-20260712/libgomp/testsuite/libgomp.fortran/uses_allocators-1.f90	Sun Jul 12 22:32:19 2026
--- gcc-17-20260719/libgomp/testsuite/libgomp.fortran/uses_allocators-1.f90	Sun Jul 19 22:32:18 2026
*************** integer(omp_allocator_handle_kind) :: va
*** 10,16 ****
  !$omp target uses_allocators(memspace(omp_default_mem_space), traits(mem2) : var) defaultmap(none)
  block;
  type(c_ptr) ::c
! c = omp_alloc(omp_default_mem_space, 20_8)
  end block
  !$omp target uses_allocators(omp_default_mem_alloc, var(mem2))  ! { dg-warning "The specification of arguments to 'uses_allocators' at \\(1\\) where each item is of the form 'allocator\\(traits\\)' is deprecated since OpenMP 5.2; instead use 'uses_allocators\\(traits\\(mem2\\): var\\)' \\\[-Wdeprecated-openmp\\\]" }
  block; end block
--- 10,16 ----
  !$omp target uses_allocators(memspace(omp_default_mem_space), traits(mem2) : var) defaultmap(none)
  block;
  type(c_ptr) ::c
! c = omp_alloc(omp_default_mem_space, 20_c_size_t)
  end block
  !$omp target uses_allocators(omp_default_mem_alloc, var(mem2))  ! { dg-warning "The specification of arguments to 'uses_allocators' at \\(1\\) where each item is of the form 'allocator\\(traits\\)' is deprecated since OpenMP 5.2; instead use 'uses_allocators\\(traits\\(mem2\\): var\\)' \\\[-Wdeprecated-openmp\\\]" }
  block; end block
diff -Nrcpad gcc-17-20260712/libgomp/testsuite/libgomp.fortran/uses_allocators-4.f90 gcc-17-20260719/libgomp/testsuite/libgomp.fortran/uses_allocators-4.f90
*** gcc-17-20260712/libgomp/testsuite/libgomp.fortran/uses_allocators-4.f90	Sun Jul 12 22:32:19 2026
--- gcc-17-20260719/libgomp/testsuite/libgomp.fortran/uses_allocators-4.f90	Sun Jul 19 22:32:18 2026
*************** end program main
*** 48,59 ****
  ! { dg-final { scan-tree-dump "pragma omp target" "original" } }
  ! { dg-final { scan-tree-dump "pragma omp target uses_allocators\\(memspace\\(\\), traits\\(traits_array\\) : bar\\) uses_allocators\\(memspace\\(\\), traits\\(traits_array\\) : foo\\)" "original" } }
  ! { dg-final { scan-tree-dump "pragma omp target uses_allocators\\(memspace\\(\\), traits\\(traits_array\\) : bar\\)" "original" } }
! ! { dg-final { scan-tree-dump "pragma omp target uses_allocators\\(memspace\\(omp_low_lat_mem_space\\), traits\\(\\) : bar\\)" "original" } }
! ! { dg-final { scan-tree-dump "pragma omp target uses_allocators\\(memspace\\(omp_high_bw_mem_space\\), traits\\(traits_array\\) : bar\\)" "original" } }
  
  ! { dg-final { scan-tree-dump "pragma omp target num_teams\\(-2\\) thread_limit\\(0\\) allocate\\(allocator\\(bar\\):arr\\) uses_allocators\\(memspace\\(\\), traits\\(\\) : bar\\)" "gimple" } }
  ! { dg-final { scan-tree-dump "pragma omp target" "gimple" } }
  ! { dg-final { scan-tree-dump "pragma omp target num_teams\\(-2\\) thread_limit\\(0\\) uses_allocators\\(memspace\\(\\), traits\\(traits_array\\) : bar\\) uses_allocators\\(memspace\\(\\), traits\\(traits_array\\) : foo\\)" "gimple" } }
  ! { dg-final { scan-tree-dump "pragma omp target num_teams\\(-2\\) thread_limit\\(0\\) uses_allocators\\(memspace\\(\\), traits\\(traits_array\\) : bar\\)" "gimple" } }
! ! { dg-final { scan-tree-dump "pragma omp target num_teams\\(-2\\) thread_limit\\(0\\) uses_allocators\\(memspace\\(omp_low_lat_mem_space\\), traits\\(\\) : bar\\)" "gimple" } }
! ! { dg-final { scan-tree-dump "pragma omp target num_teams\\(-2\\) thread_limit\\(0\\) uses_allocators\\(memspace\\(omp_high_bw_mem_space\\), traits\\(traits_array\\) : bar\\)" "gimple" } }
--- 48,59 ----
  ! { dg-final { scan-tree-dump "pragma omp target" "original" } }
  ! { dg-final { scan-tree-dump "pragma omp target uses_allocators\\(memspace\\(\\), traits\\(traits_array\\) : bar\\) uses_allocators\\(memspace\\(\\), traits\\(traits_array\\) : foo\\)" "original" } }
  ! { dg-final { scan-tree-dump "pragma omp target uses_allocators\\(memspace\\(\\), traits\\(traits_array\\) : bar\\)" "original" } }
! ! { dg-final { scan-tree-dump "pragma omp target uses_allocators\\(memspace\\(4\\), traits\\(\\) : bar\\)" "original" } }
! ! { dg-final { scan-tree-dump "pragma omp target uses_allocators\\(memspace\\(3\\), traits\\(traits_array\\) : bar\\)" "original" } }
  
  ! { dg-final { scan-tree-dump "pragma omp target num_teams\\(-2\\) thread_limit\\(0\\) allocate\\(allocator\\(bar\\):arr\\) uses_allocators\\(memspace\\(\\), traits\\(\\) : bar\\)" "gimple" } }
  ! { dg-final { scan-tree-dump "pragma omp target" "gimple" } }
  ! { dg-final { scan-tree-dump "pragma omp target num_teams\\(-2\\) thread_limit\\(0\\) uses_allocators\\(memspace\\(\\), traits\\(traits_array\\) : bar\\) uses_allocators\\(memspace\\(\\), traits\\(traits_array\\) : foo\\)" "gimple" } }
  ! { dg-final { scan-tree-dump "pragma omp target num_teams\\(-2\\) thread_limit\\(0\\) uses_allocators\\(memspace\\(\\), traits\\(traits_array\\) : bar\\)" "gimple" } }
! ! { dg-final { scan-tree-dump "pragma omp target num_teams\\(-2\\) thread_limit\\(0\\) uses_allocators\\(memspace\\(4\\), traits\\(\\) : bar\\)" "gimple" } }
! ! { dg-final { scan-tree-dump "pragma omp target num_teams\\(-2\\) thread_limit\\(0\\) uses_allocators\\(memspace\\(3\\), traits\\(traits_array\\) : bar\\)" "gimple" } }
diff -Nrcpad gcc-17-20260712/libgomp/testsuite/libgomp.fortran/uses_allocators-7.f90 gcc-17-20260719/libgomp/testsuite/libgomp.fortran/uses_allocators-7.f90
*** gcc-17-20260712/libgomp/testsuite/libgomp.fortran/uses_allocators-7.f90	Sun Jul 12 22:32:19 2026
--- gcc-17-20260719/libgomp/testsuite/libgomp.fortran/uses_allocators-7.f90	Sun Jul 19 22:32:18 2026
*************** program main
*** 9,21 ****
    integer(omp_allocator_handle_kind) :: my_alloc, my, my2, my3, my4
    type(omp_alloctrait), parameter :: trait(*) = [omp_alloctrait(omp_atk_alignment, 128)]
    type(omp_alloctrait), parameter :: t(*) = [omp_alloctrait:: ]
!   type(omp_alloctrait), parameter :: t2(*) = [omp_alloctrait:: ]
  
!   ! FIXME - improve check that that ';' is handled
    !$omp target uses_allocators(traits(t), memspace(omp_high_bw_mem_space) : my; omp_default_mem_alloc, omp_null_allocator; my2; traits(t2) : my3; memspace(omp_large_cap_mem_space) : my4)
    block
    end block
  
    !$omp target uses_allocators(omp_low_lat_mem_alloc) map(tofrom: x, xbuf) defaultmap(none)
      !$omp parallel allocate(allocator(omp_low_lat_mem_alloc), align(128): x, xbuf) if(.false.) firstprivate(x, xbuf)
        if (mod (TRANSFER (loc(x), iptr), 128) /= 0) &
--- 9,35 ----
    integer(omp_allocator_handle_kind) :: my_alloc, my, my2, my3, my4
    type(omp_alloctrait), parameter :: trait(*) = [omp_alloctrait(omp_atk_alignment, 128)]
    type(omp_alloctrait), parameter :: t(*) = [omp_alloctrait:: ]
!   type(omp_alloctrait), parameter :: t2(*) = [omp_alloctrait:: omp_alloctrait(omp_atk_alignment, 1024)]
  
!   my = -1; my2 = -2; my3 = -3; my4 = -4
    !$omp target uses_allocators(traits(t), memspace(omp_high_bw_mem_space) : my; omp_default_mem_alloc, omp_null_allocator; my2; traits(t2) : my3; memspace(omp_large_cap_mem_space) : my4)
    block
+     integer, pointer :: ip3(:)
+     type(c_ptr) :: c1, c2, c3, c4
+     c1 = omp_alloc (c_sizeof(x) * 1, my)
+     c2 = omp_alloc (c_sizeof(x) * 2, my2)
+     c3 = omp_alloc (c_sizeof(x) * 3, my3)
+     c4 = omp_alloc (c_sizeof(x) * 4, my4)
+     call c_f_pointer(c3, ip3, shape=[3])
+     if (mod (TRANSFER (loc(ip3), iptr), 1024) /= 0) &
+         stop 1
+     call omp_free (c1, omp_null_allocator)
+     call omp_free (c2, omp_null_allocator)
+     call omp_free (c3, omp_null_allocator)
+     call omp_free (c4, omp_null_allocator)
    end block
  
+   x = 1; xbuf = 0
    !$omp target uses_allocators(omp_low_lat_mem_alloc) map(tofrom: x, xbuf) defaultmap(none)
      !$omp parallel allocate(allocator(omp_low_lat_mem_alloc), align(128): x, xbuf) if(.false.) firstprivate(x, xbuf)
        if (mod (TRANSFER (loc(x), iptr), 128) /= 0) &
*************** end
*** 55,58 ****
  
  ! { dg-final { scan-tree-dump-times "#pragma omp target .*uses_allocators\\(memspace\\(\\), traits\\(trait\\) : my_alloc\\)" 1 "gimple" } }
  ! { dg-final { scan-tree-dump-times "#pragma omp target .*uses_allocators\\(memspace\\(\\), traits\\(\\) : my_alloc\\)" 1 "gimple" } }
! ! { dg-final { scan-tree-dump-times "#pragma omp target .*uses_allocators\\(memspace\\(1\\), traits\\(\\) : my4\\) uses_allocators\\(memspace\\(\\), traits\\(t2\\) : my3\\) uses_allocators\\(memspace\\(\\), traits\\(\\) : my2\\) uses_allocators\\(memspace\\(3\\), traits\\(t\\) : my\\)" 1 "original" { xfail *-*-* }  } }
--- 69,74 ----
  
  ! { dg-final { scan-tree-dump-times "#pragma omp target .*uses_allocators\\(memspace\\(\\), traits\\(trait\\) : my_alloc\\)" 1 "gimple" } }
  ! { dg-final { scan-tree-dump-times "#pragma omp target .*uses_allocators\\(memspace\\(\\), traits\\(\\) : my_alloc\\)" 1 "gimple" } }
! 
! ! { dg-final { scan-tree-dump-times "#pragma omp target uses_allocators\\(memspace\\(3\\), traits\\(t\\) : my\\) uses_allocators\\(memspace\\(\\), traits\\(\\) : 0B\\) uses_allocators\\(memspace\\(\\), traits\\(\\) : my2\\) uses_allocators\\(memspace\\(\\), traits\\(t2\\) : my3\\) uses_allocators\\(memspace\\(1\\), traits\\(\\) : my4\\)" 1 "original" } }
! ! { dg-final { scan-tree-dump-times "#pragma omp target num_teams\\(-2\\) thread_limit\\(0\\) uses_allocators\\(memspace\\(3\\), traits\\(t\\) : my\\) uses_allocators\\(memspace\\(\\), traits\\(\\) : my2\\) uses_allocators\\(memspace\\(\\), traits\\(t2\\) : my3\\) uses_allocators\\(memspace\\(1\\), traits\\(\\) : my4\\)" 1 "gimple" } }
diff -Nrcpad gcc-17-20260712/libstdc++-v3/ChangeLog gcc-17-20260719/libstdc++-v3/ChangeLog
*** gcc-17-20260712/libstdc++-v3/ChangeLog	Sun Jul 12 22:32:20 2026
--- gcc-17-20260719/libstdc++-v3/ChangeLog	Sun Jul 19 22:32:19 2026
***************
*** 1,3 ****
--- 1,247 ----
+ 2026-07-17  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* testsuite/26_numerics/random/piecewise_constant_distribution/operators/serialize2.cc:
+ 	Guard test_custom invocations with __FLT_EVAL_METHOD__ macros.
+ 	* testsuite/26_numerics/random/piecewise_linear_distribution/operators/serialize2.cc:
+ 	Likewise.
+ 
+ 2026-07-16  Arsen Arsenović  <aarsenovic@baylibre.com>
+ 
+ 	Revert:
+ 	2026-07-16  Arsen Arsenović  <aarsenovic@baylibre.com>
+ 
+ 	* testsuite/lib/libstdc++.exp (libstdc++_init): Use
+ 	gcc-set-multilib-library-path to calculate LD_LIBRARY_PATH for
+ 	installed G++ compilers.
+ 
+ 2026-07-16  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 	    Álvaro Begué  <alvaro.begue@gmail.com>
+ 
+ 	PR libstdc++/116110
+ 	* src/c++20/tzdb.cc (ZoneInfo::calc_save, ZoneInfo::State): Define.
+ 	(ZoneInfo::m_expanded): Replaced with m_state.
+ 	(ZoneInfo::m_pos): Reduce the bit with to 14.
+ 	(ZoneInfo::m_state): Expands m_expanded with four state enum.
+ 	(ZoneInfo::ZoneInfo, ZoneInfo::expanded, ZoneInfo::set_abbrev):
+ 	Replace m_expanded usage with m_state and State::Expanded.
+ 	(Transitions, find_surrounding_transitions): Extracted from
+ 	find_active_rule.
+ 	(find_active_rule): Define overload for local_seconds. Implement
+ 	both in terms of find_surrounding_transitions.
+ 	(time_zone::_M_get_sys_info): Use ZoneInfo::calc_save to adjust
+ 	until() on surrounding zones, and shift the current zone iterator
+ 	(i) accordingly.
+ 	(operator>>(istream&, ZoneInfo&)): Set m_state for UntilPending
+ 	for UNTIL time using wall time, and SaveKnown for lines without
+ 	end date. For clarity, set m_save to 0 if daylight is not used.
+ 	* testsuite/std/time/time_zone/116110.cc (test_apia): Use correct
+ 	value of the the total offset.
+ 	testsuite/std/time/time_zone/pr116110_named.cc: New test.
+ 	* testsuite/std/time/time_zone/pr116110_named.cc: New file.
+ 
+ 2026-07-16  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* testsuite/26_numerics/random/piecewise_linear_distribution/operators/serialize2.cc:
+ 	Enable test_customd<double> for __x86_64__.
+ 
+ 2026-07-16  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	PR libstdc++/124853
+ 	* src/c++20/tzdb.cc (time_zone::_M_get_sys_info): Find
+ 	rules firing exactly at transition time.
+ 	* testsuite/std/time/time_zone/wall_cascade.cc: Add test
+ 	for Europe/Lisbon, and corrected test_negative.
+ 
+ 2026-07-16  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* doc/html/manual/using_macros.html: Regenrate.
+ 	* doc/xml/manual/using.xml
+ 	(_GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS): Mention LWG4052.
+ 	* include/bits/random.h
+ 	(piecewise_constant_distribution::_CalcType)
+ 	(piecewise_linear_distribution::_CalcType): Define.
+ 	(piecewise_constant_distribution::__generate_one)
+ 	(piecewise_linear_distribution::__generate_one): Declare.
+ 	(piecewise_constant_distribution::_M_initialize2)
+ 	(piecewise_linear_distribution::__M_initialize2): Adjust
+ 	densities parameter to _CalcType.
+ 	* include/bits/random.tcc (std::__normalize): Perform
+ 	computation in the type of factor parameter.
+ 	(piecewise_constant_distribution::_M_configure)
+ 	(piecewise_linear_distribution::_M_configure): Use _CalcType.
+ 	(piecewise_constant_distribution::param_type::param_type)
+ 	(piecewise_constant_distribution::param_type::param_type):
+ 	Cast the inputs to the _CalcType. Use _RealType as input
+ 	weight functor.
+ 	(piecewise_constant_distribution::__generate_one)
+ 	(piecewise_linear_distribution::__generate_one): Extract
+ 	from operator() and use _CalcType.
+ 	(piecewise_constant_distribution::operator())
+ 	(piecewise_constant_distribution::__generate_impl).
+ 	(piecewise_linear_distribution::operator()): Use __generate_one.
+ 	(piecewise_linear_distribution::__generate_impl): Optimize
+ 	_M_cp.empty() case and user __generate_one otherwise.
+ 	* testsuite/26_numerics/random/piecewise_constant_distribution/operators/accessors.cc:
+ 	(test_precision_depended): Expand test to cover all constructors,
+ 	and inputs different from distribution result type.
+ 	(test_engine_calls): New tests.
+ 	* testsuite/26_numerics/random/piecewise_linear_distribution/operators/accessors.cc:
+ 	Likewise.
+ 	* testsuite/26_numerics/random/piecewise_constant_distribution/operators/serialize2.cc:
+ 	Update values to accommodate the change in precision for float.
+ 	Remove trailing whitespaces.
+ 	* testsuite/26_numerics/random/piecewise_linear_distribution/operators/serialize2.cc:
+ 	Likewise, and enable float/double test for i686.
+ 	* testsuite/26_numerics/random/piecewise_constant_distribution/cons/input_type.cc:
+ 	New test.
+ 	* testsuite/26_numerics/random/piecewise_constant_distribution/cons/input_type_fallback_neg.cc:
+ 	New test.
+ 	* testsuite/26_numerics/random/piecewise_linear_distribution/cons/input_type.cc:
+ 	New test.
+ 	* testsuite/26_numerics/random/piecewise_linear_distribution/cons/input_type_fallback_neg.cc:
+ 	New test.
+ 
+ 2026-07-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/120635
+ 	* include/bits/indirect.h (std::indirect, std::polymorphic): Add
+ 	_GLIBCXX_NO_SPECIALIZATIONS.
+ 	* testsuite/std/memory/indirect/specialization.cc: New test.
+ 	* testsuite/std/memory/polymorphic/specialization.cc: New test.
+ 
+ 2026-07-16  Arsen Arsenović  <aarsenovic@baylibre.com>
+ 
+ 	* testsuite/lib/libstdc++.exp (libstdc++_init): Use
+ 	gcc-set-multilib-library-path to calculate LD_LIBRARY_PATH for
+ 	installed G++ compilers.
+ 
+ 2026-07-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/119561
+ 	PR c++/120635
+ 	* include/bits/c++config (_GLIBCXX_NO_SPECIALIZATIONS): Define.
+ 	* include/std/variant (std::variant): Use it to resolve LWG3990.
+ 	* include/std/format (std::basic_format_parse_context,
+ 	std::basic_format_context): Use it to resolve LWG3975.
+ 	* libsupc++/compare (std::type_order): Use it to resolve LWG4305.
+ 	* libsupc++/initializer_list (std::initializer_list): Use it to
+ 	resolve LWG2129.
+ 	* include/std/tuple (std::tuple): Use it to resolve LWG3990.
+ 	Temporarily ignore -Winvalid-specialization around specializations
+ 	of tuple.
+ 	* testsuite/18_support/comparisons/type_order/lwg4305.cc: New test.
+ 	* testsuite/18_support/initializer_list/lwg2129.cc: New test.
+ 	* testsuite/std/format/lwg3975.cc: New test.
+ 	* testsuite/20_util/tuple/lwg3990.cc: New test.
+ 	* testsuite/20_util/variant/lwg3990.cc: New test.
+ 
+ 2026-07-15  Kito Cheng  <kito.cheng@sifive.com>
+ 
+ 	* include/tr1/ell_integral.tcc (__ellint_1): Throw domain_error
+ 	when phi is not finite.
+ 	(__ellint_2): Likewise.
+ 	(__ellint_3): Likewise.
+ 	* testsuite/special_functions/11_ellint_1/check_inf.cc: New test.
+ 	* testsuite/special_functions/12_ellint_2/check_inf.cc: New test.
+ 	* testsuite/special_functions/13_ellint_3/check_inf.cc: New test.
+ 
+ 2026-07-15  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/126111
+ 	* include/std/format (__format::__write_escape_seq): Remove
+ 	unnecessary alias declaration.
+ 	* include/std/spanstream (wspanbuf, wispanstream, wospanstream)
+ 	(wspanstream): Only declare for _GLIBCXX_USE_WCHAR_T.
+ 	* include/std/syncstream (wsyncbuf wosyncstream): Likewise.
+ 	* src/c++23/std.cc.in: Add preprocessor checks for
+ 	_GLIBCXX_USE_WCHAR_T to names which depend on it.
+ 
+ 2026-07-14  François Dumont  <frs.dumont@gmail.com>
+ 
+ 	* include/debug/safe_iterator.h
+ 	(_Safe_iterator::_Iter_base, _Safe_iterator::_Safe_base): Remove.
+ 	(_Safe_iterator(const _Safe_iterator&, _Unchecked)): Delegate to correct base classes
+ 	constructors.
+ 	* include/debug/safe_local_iterator.h
+ 	(_Safe_local_iterator::_Iter_base, _Safe_local_iterator::_Safe_base): Remove.
+ 	(_Safe_local_iterator(const _Safe_local_iterator&, _Unchecked)): Delegate to the correct
+ 	base classes constructors.
+ 
+ 2026-07-14  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	PR libstdc++/125548
+ 	* doc/html/manual/using_macros.html:
+ 	(_GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS): Mention PR125548
+ 	* doc/xml/manual/using.xml: Regenerate
+ 	* include/bits/random.tcc
+ 	(piecewise_linear_distribution::param_type::param_type(size_t, _RealType, ...)):
+ 	Update weight computation.
+ 	* testsuite/26_numerics/random/piecewise_linear_distribution/operators/serialize2.cc:
+ 	Updated expected values.
+ 	* testsuite/26_numerics/random/piecewise_linear_distribution/cons/pr125548.cc:
+ 	New test.
+ 	* testsuite/26_numerics/random/piecewise_linear_distribution/cons/pr125548_fallback.cc:
+ 	Run pr125548.cc with _GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS.
+ 
+ 2026-07-14  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	PR libstdc++/82749
+ 	* doc/xml/manual/using.xml
+ 	(_GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS): Add entry.
+ 	(_GLIBCXX_USE_RESULT_TYPE_FOR_PIECEWISE_DENSITIES): Add entry.
+ 	* doc/html/manual/using_macros.html: Regenerate.
+ 	* include/bits/random.h
+ 	(__detail::__piecewise_distributions_storage)
+ 	(__detail::__piecewise_distributions_storage_t)
+ 	(piecewise_constant_distribution::_StorageType)
+ 	(piecewise_linear_distribution::_StorageType): Define.
+ 	(piecewise_constant_distribution::param_type::_M_den)
+ 	(piecewise_constant_distribution::param_type::_M_cp)
+ 	(piecewise_linear_distribution::param_type::_M_den)
+ 	(piecewise_linear_distribution::param_type::_M_cp)
+ 	(piecewise_linear_distribution::param_type::_M_m): Use _StorageType
+ 	as element type.
+ 	(piecewise_constant_distribution::param_type::densities)
+ 	(piecewise_linear_distribution::param_type::densities)
+ 	[!_GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS]: Change return type
+ 	to vector<result_type>, mark with "__rt" ABI tag, and adjust
+ 	implementation.
+ 	(piecewise_constant_distribution::param_type::intervals)
+ 	(piecewise_linear_distribution::param_type::intervals): Use
+ 	result_type alias in return type.
+ 	(piecewise_constant_distribution::densities)
+ 	(piecewise_linear_distribution::densities): Delegate to param_type
+ 	method, additional change return type and  mark as always_inline
+ 	if _GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS is not defined.
+ 	(piecewise_constant_distribution::intervals)
+ 	(piecewise_linear_distribution::intervals): Delegate to param_type
+ 	method and use result_type alias in return type.
+ 	* include/bits/random.tcc
+ 	(operator<<(basic_ostream&, const piecewise_constant_distribution&))
+ 	(operator<<(basic_ostream&, const piecewise_linear_distribution&)):
+ 	Parse vector of _StorageType for densities, to preserve behavior.
+ 	* testsuite/26_numerics/random/piecewise_constant_distribution/operators/accessors.cc:
+ 	New test.
+ 	* testsuite/26_numerics/random/piecewise_linear_distribution/operators/accessors.cc:
+ 	New test.
+ 	* testsuite/26_numerics/random/piecewise_constant_distribution/operators/accessors_exact.cc:
+ 	Run accessors.cc with _GLIBCXX_USE_RESULT_TYPE_FOR_PIECEWISE_DENSITIES.
+ 	* testsuite/26_numerics/random/piecewise_linear_distribution/operators/accessors_exact.cc:
+ 	Likewise.
+ 	* testsuite/26_numerics/random/piecewise_constant_distribution/operators/accessors_fallback.cc:
+ 	Run accessors.cc with _GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS.
+ 	* testsuite/26_numerics/random/piecewise_linear_distribution/operators/accessors_fallback.cc:
+ 	Likewise.
+ 
+ 2026-07-13  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* include/std/mdspan (layout_stride::mapping::_M_check_unique):
+ 	Define.
+ 	(layout_stride::mapping(const extents_type&, span<....>)):
+ 	Add __glibcxx_assert on _M_check_unique.
+ 	* testsuite/23_containers/mdspan/layouts/stride_neg.cc:
+ 	Test for the new added assertions.
+ 
  2026-07-10  Tomasz Kamiński  <tkaminsk@redhat.com>
  
  	* testsuite/std/memory/start_lifetime_as/neg.cc: Fix
diff -Nrcpad gcc-17-20260712/libstdc++-v3/doc/html/manual/using_macros.html gcc-17-20260719/libstdc++-v3/doc/html/manual/using_macros.html
*** gcc-17-20260712/libstdc++-v3/doc/html/manual/using_macros.html	Sun Jul 12 22:32:20 2026
--- gcc-17-20260719/libstdc++-v3/doc/html/manual/using_macros.html	Sun Jul 19 22:32:19 2026
***************
*** 156,159 ****
--- 156,180 ----
  	<code class="option">-fexec-charset=UTF-8</code> so might give incorrect results
  	if called from a source file that uses a non-Unicode encoding,
  	especially for format strings using non-ASCII fill characters.
+       </p></dd><dt><span class="term"><code class="code">_GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS</code></span></dt><dd><p>
+ 	Undefined by default.
+ 	When defined, the behavior of specializations of
+ 	<code class="code">piecewise_constant_distribution</code> and
+ 	<code class="code">piecewise_linear_distribution</code>
+ 	is restored to their state prior the implementation
+ 	of <a class="link" href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82749" target="_top">
+ 	PR82749</a> (<a class="link" href="https://cplusplus.github.io/LWG/lwg-defects.html#1439" target="_top">
+ 	LWG1439</a>), <a class="link" href="https://cplusplus.github.io/LWG/lwg-defects.html#4052" target="_top">
+ 	LWG4052</a>,	and <a class="link" href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125548" target="_top">
+ 	PR125548</a>) in GCC 17.
+       </p></dd><dt><span class="term"><code class="code">_GLIBCXX_USE_RESULT_TYPE_FOR_PIECEWISE_DENSITIES</code></span></dt><dd><p>
+ 	Undefined by default. ABI-changing.
+ 	When defined, specializations of
+ 	<code class="code">piecewise_constant_distribution</code> and
+ 	<code class="code">piecewise_linear_distribution</code> with a
+ 	<code class="code">result_type</code> of either <code class="code">float</code> or
+ 	<code class="code">long double</code> will manage their internal state using
+ 	<code class="code">result_type</code> values (instead of <code class="code">double</code>).
+ 	This is required for standard conformance, but is incompatible with
+ 	the default implementation of those class templates.
        </p></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="using_headers.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="using.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_dual_abi.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Headers </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Dual ABI</td></tr></table></div></body></html>
\ No newline at end of file
diff -Nrcpad gcc-17-20260712/libstdc++-v3/doc/xml/manual/using.xml gcc-17-20260719/libstdc++-v3/doc/xml/manual/using.xml
*** gcc-17-20260712/libstdc++-v3/doc/xml/manual/using.xml	Sun Jul 12 22:32:20 2026
--- gcc-17-20260719/libstdc++-v3/doc/xml/manual/using.xml	Sun Jul 19 22:32:19 2026
*************** g++ -Winvalid-pch -I. -include stdc++.h
*** 1379,1384 ****
--- 1379,1417 ----
  	especially for format strings using non-ASCII fill characters.
        </para>
      </listitem></varlistentry>
+     <varlistentry><term><code>_GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS</code></term>
+      <listitem>
+       <para>
+ 	Undefined by default.
+ 	When defined, the behavior of specializations of
+ 	<code>piecewise_constant_distribution</code> and
+ 	<code>piecewise_linear_distribution</code>
+ 	is restored to their state prior the implementation
+ 	of <link xmlns:xlink="http://www.w3.org/1999/xlink"
+ 	xlink:href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82749">
+ 	PR82749</link> (<link xmlns:xlink="http://www.w3.org/1999/xlink"
+ 	xlink:href="https://cplusplus.github.io/LWG/lwg-defects.html#1439">
+ 	LWG1439</link>), <link xmlns:xlink="http://www.w3.org/1999/xlink"
+ 	xlink:href="https://cplusplus.github.io/LWG/lwg-defects.html#4052">
+ 	LWG4052</link>,	and <link xmlns:xlink="http://www.w3.org/1999/xlink"
+ 	xlink:href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125548">
+ 	PR125548</link>) in GCC 17.
+       </para>
+     </listitem></varlistentry>
+     <varlistentry><term><code>_GLIBCXX_USE_RESULT_TYPE_FOR_PIECEWISE_DENSITIES</code></term>
+     <listitem>
+       <para>
+ 	Undefined by default. ABI-changing.
+ 	When defined, specializations of
+ 	<code>piecewise_constant_distribution</code> and
+ 	<code>piecewise_linear_distribution</code> with a
+ 	<code>result_type</code> of either <code>float</code> or
+ 	<code>long double</code> will manage their internal state using
+ 	<code>result_type</code> values (instead of <code>double</code>).
+ 	This is required for standard conformance, but is incompatible with
+ 	the default implementation of those class templates.
+       </para>
+     </listitem></varlistentry>
      </variablelist>
  
    </section>
diff -Nrcpad gcc-17-20260712/libstdc++-v3/include/bits/c++config gcc-17-20260719/libstdc++-v3/include/bits/c++config
*** gcc-17-20260712/libstdc++-v3/include/bits/c++config	Sun Jul 12 22:32:20 2026
--- gcc-17-20260719/libstdc++-v3/include/bits/c++config	Sun Jul 19 22:32:19 2026
*************** namespace __gnu_cxx
*** 927,932 ****
--- 927,938 ----
  # define _GLIBCXX_USE_BUILTIN_TRAIT(BT) 0
  #endif
  
+ #if __has_cpp_attribute(_Clang::__no_specializations__)
+ # define _GLIBCXX_NO_SPECIALIZATIONS [[_Clang::__no_specializations__]]
+ #else
+ # define _GLIBCXX_NO_SPECIALIZATIONS
+ #endif
+ 
  // Whether deducing this is usable either officially, if in C++23 mode, or
  // as an extension (Clang doesn't support the latter).
  #if __cpp_explicit_this_parameter \
diff -Nrcpad gcc-17-20260712/libstdc++-v3/include/bits/indirect.h gcc-17-20260719/libstdc++-v3/include/bits/indirect.h
*** gcc-17-20260712/libstdc++-v3/include/bits/indirect.h	Sun Jul 12 22:32:20 2026
--- gcc-17-20260719/libstdc++-v3/include/bits/indirect.h	Sun Jul 19 22:32:19 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 68,74 ****
  
    // [indirect], class template indirect
    template<typename _Tp, typename _Alloc>
!     class indirect
      {
        static_assert(is_object_v<_Tp>);
        static_assert(!is_array_v<_Tp>);
--- 68,74 ----
  
    // [indirect], class template indirect
    template<typename _Tp, typename _Alloc>
!     class _GLIBCXX_NO_SPECIALIZATIONS indirect
      {
        static_assert(is_object_v<_Tp>);
        static_assert(!is_array_v<_Tp>);
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 467,473 ****
  
    // [polymorphic], class template polymorphic
    template<typename _Tp, typename _Alloc>
!     class polymorphic
      {
        static_assert(is_object_v<_Tp>);
        static_assert(!is_array_v<_Tp>);
--- 467,473 ----
  
    // [polymorphic], class template polymorphic
    template<typename _Tp, typename _Alloc>
!     class _GLIBCXX_NO_SPECIALIZATIONS polymorphic
      {
        static_assert(is_object_v<_Tp>);
        static_assert(!is_array_v<_Tp>);
diff -Nrcpad gcc-17-20260712/libstdc++-v3/include/bits/random.h gcc-17-20260719/libstdc++-v3/include/bits/random.h
*** gcc-17-20260712/libstdc++-v3/include/bits/random.h	Sun Jul 12 22:32:20 2026
--- gcc-17-20260719/libstdc++-v3/include/bits/random.h	Sun Jul 19 22:32:19 2026
*************** _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
*** 6409,6414 ****
--- 6409,6451 ----
      { return !(__d1 == __d2); }
  #endif
  
+   namespace __detail
+   {
+ #if defined(_GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS)
+     template<typename _Tp>
+       using __piecewise_distributions_storage_t = double;
+ #elif defined(_GLIBCXX_USE_RESULT_TYPE_FOR_PIECEWISE_DENSITIES)
+     template<typename _Tp>
+       using __piecewise_distributions_storage_t = _Tp;
+ #else
+     template<typename _Tp>
+       struct __piecewise_distributions_storage
+       { using type = _Tp; };
+ 
+     template<>
+       struct __piecewise_distributions_storage<float>
+       { using type = double; };
+ 
+ # ifdef _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT
+     template<>
+       struct __piecewise_distributions_storage<__ibm128>
+       { using type = double; };
+ 
+     template<>
+       struct __piecewise_distributions_storage<__ieee128>
+       { using type = double; };
+ # elif __LDBL_MANT_DIG__ != __DBL_MANT_DIG__
+     template<>
+       struct __piecewise_distributions_storage<long double>
+       { using type = double; };
+ # endif
+ 
+     template<typename _Tp>
+        using __piecewise_distributions_storage_t
+ 	= typename __piecewise_distributions_storage<_Tp>::type;
+ #endif // _GLIBCXX_USE_RESULT_TYPE_FOR_PIECEWISE_DENSITIES
+   }
+ 
    /**
     * @brief A piecewise_constant_distribution random number distribution.
     *
*************** _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
*** 6431,6436 ****
--- 6468,6481 ----
        static_assert(std::is_floating_point<_RealType>::value,
  		    "result_type must be a floating point type");
  
+       using _StorageType
+ 	= __detail::__piecewise_distributions_storage_t<_RealType>;
+ #ifdef _GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS
+       using _CalcType = double;
+ #else
+       using _CalcType = _RealType;
+ #endif
+ 
      public:
        /** The type of the range of the distribution. */
        typedef _RealType result_type;
*************** _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
*** 6461,6467 ****
  	param_type(const param_type&) = default;
  	param_type& operator=(const param_type&) = default;
  
! 	std::vector<_RealType>
  	intervals() const
  	{
  	  if (_M_int.empty())
--- 6506,6512 ----
  	param_type(const param_type&) = default;
  	param_type& operator=(const param_type&) = default;
  
! 	std::vector<result_type>
  	intervals() const
  	{
  	  if (_M_int.empty())
*************** _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
*** 6474,6482 ****
--- 6519,6546 ----
  	    return _M_int;
  	}
  
+ #ifdef _GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS
  	std::vector<double>
  	densities() const
  	{ return _M_den.empty() ? std::vector<double>(1, 1.0) : _M_den; }
+ #else
+ 	// _GLIBCXX_RESOLVE_LIB_DEFECTS
+ 	// 1439. Return from densities() functions?
+ 	[[__gnu__::__abi_tag__("__rt")]]
+ 	std::vector<result_type>
+ 	densities() const
+ 	{
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wc++17-extensions"
+ 	  if (_M_den.empty())
+ 	    return std::vector<_RealType>(1, _RealType(1));
+ 	  else if constexpr (is_same<_RealType, _StorageType>::value)
+ 	    return _M_den;
+ 	  else
+ 	    return std::vector<_RealType>(_M_den.begin(), _M_den.end());
+ #pragma GCC diagnostic pop
+ 	}
+ #endif
  
  	friend bool
  	operator==(const param_type& __p1, const param_type& __p2)
*************** _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
*** 6493,6503 ****
  	_M_configure();
  
  	void
! 	_M_initialize2(const _RealType* __ints, _RealType __den);
  
  	std::vector<_RealType> _M_int;
! 	std::vector<double> _M_den;
! 	std::vector<double> _M_cp;
  
  	template<typename _RealType1, typename _CharT, typename _Traits>
  	  friend std::basic_ostream<_CharT, _Traits>&
--- 6557,6567 ----
  	_M_configure();
  
  	void
! 	_M_initialize2(const _RealType* __ints, _CalcType __den);
  
  	std::vector<_RealType> _M_int;
! 	std::vector<_StorageType> _M_den;
! 	std::vector<_StorageType> _M_cp;
  
  	template<typename _RealType1, typename _CharT, typename _Traits>
  	  friend std::basic_ostream<_CharT, _Traits>&
*************** _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
*** 6544,6571 ****
        /**
         * @brief Returns a vector of the intervals.
         */
!       std::vector<_RealType>
        intervals() const
!       {
! 	if (_M_param._M_int.empty())
! 	  {
! 	    std::vector<_RealType> __tmp(2);
! 	    __tmp[1] = _RealType(1);
! 	    return __tmp;
! 	  }
! 	else
! 	  return _M_param._M_int;
!       }
  
        /**
         * @brief Returns a vector of the probability densities.
         */
        std::vector<double>
        densities() const
!       {
! 	return _M_param._M_den.empty()
! 	  ? std::vector<double>(1, 1.0) : _M_param._M_den;
!       }
  
        /**
         * @brief Returns the parameter set of the distribution.
--- 6608,6630 ----
        /**
         * @brief Returns a vector of the intervals.
         */
!       std::vector<result_type>
        intervals() const
!       { return _M_param.intervals(); }
  
        /**
         * @brief Returns a vector of the probability densities.
         */
+ #ifdef _GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS
        std::vector<double>
        densities() const
!       { return _M_param.densities(); }
! #else
!       [[__gnu__::__always_inline__]]
!       std::vector<result_type>
!       densities() const
!       { return _M_param.densities(); }
! #endif
  
        /**
         * @brief Returns the parameter set of the distribution.
*************** _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
*** 6679,6684 ****
--- 6738,6748 ----
  		   std::piecewise_constant_distribution<_RealType1>& __x);
  
      private:
+       template<typename _AdaptedUniformRandomNumberGenerator>
+ 	result_type
+ 	__generate_one(_AdaptedUniformRandomNumberGenerator& __aurng,
+ 		       const param_type& __param);
+ 
        template<typename _ForwardIterator,
  	       typename _UniformRandomNumberGenerator>
  	void
*************** _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
*** 6719,6724 ****
--- 6783,6796 ----
        static_assert(std::is_floating_point<_RealType>::value,
  		    "result_type must be a floating point type");
  
+       using _StorageType
+ 	= __detail::__piecewise_distributions_storage_t<_RealType>;
+ #ifdef _GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS
+       using _CalcType = double;
+ #else
+       using _CalcType = _RealType;
+ #endif
+ 
      public:
        /** The type of the range of the distribution. */
        typedef _RealType result_type;
*************** _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
*** 6749,6755 ****
  	param_type(const param_type&) = default;
  	param_type& operator=(const param_type&) = default;
  
! 	std::vector<_RealType>
  	intervals() const
  	{
  	  if (_M_int.empty())
--- 6821,6827 ----
  	param_type(const param_type&) = default;
  	param_type& operator=(const param_type&) = default;
  
! 	std::vector<result_type>
  	intervals() const
  	{
  	  if (_M_int.empty())
*************** _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
*** 6762,6770 ****
--- 6834,6861 ----
  	    return _M_int;
  	}
  
+ #ifdef _GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS
  	std::vector<double>
  	densities() const
  	{ return _M_den.empty() ? std::vector<double>(2, 1.0) : _M_den; }
+ #else
+ 	// _GLIBCXX_RESOLVE_LIB_DEFECTS
+ 	// 1439. Return from densities() functions?
+ 	[[__gnu__::__abi_tag__("__rt")]]
+ 	std::vector<result_type>
+ 	densities() const
+ 	{
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wc++17-extensions"
+ 	  if (_M_den.empty())
+ 	    return std::vector<_RealType>(2, _RealType(1));
+ 	  else if constexpr (is_same<_RealType, _StorageType>::value)
+ 	    return _M_den;
+ 	  else
+ 	    return std::vector<_RealType>(_M_den.begin(), _M_den.end());
+ #pragma GCC diagnostic pop
+ 	}
+ #endif
  
  	friend bool
  	operator==(const param_type& __p1, const param_type& __p2)
*************** _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
*** 6781,6792 ****
  	_M_configure();
  
  	void
! 	_M_initialize2(const _RealType* __ints, const _RealType* __dens);
  
  	std::vector<_RealType> _M_int;
! 	std::vector<double> _M_den;
! 	std::vector<double> _M_cp;
! 	std::vector<double> _M_m;
  
  	template<typename _RealType1, typename _CharT, typename _Traits>
  	  friend std::basic_ostream<_CharT, _Traits>&
--- 6872,6883 ----
  	_M_configure();
  
  	void
! 	_M_initialize2(const _RealType* __ints, const _CalcType* __dens);
  
  	std::vector<_RealType> _M_int;
! 	std::vector<_StorageType> _M_den;
! 	std::vector<_StorageType> _M_cp;
! 	std::vector<_StorageType> _M_m;
  
  	template<typename _RealType1, typename _CharT, typename _Traits>
  	  friend std::basic_ostream<_CharT, _Traits>&
*************** _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
*** 6833,6861 ****
        /**
         * @brief Return the intervals of the distribution.
         */
!       std::vector<_RealType>
        intervals() const
!       {
! 	if (_M_param._M_int.empty())
! 	  {
! 	    std::vector<_RealType> __tmp(2);
! 	    __tmp[1] = _RealType(1);
! 	    return __tmp;
! 	  }
! 	else
! 	  return _M_param._M_int;
!       }
  
        /**
         * @brief Return a vector of the probability densities of the
         *        distribution.
         */
        std::vector<double>
        densities() const
!       {
! 	return _M_param._M_den.empty()
! 	  ? std::vector<double>(2, 1.0) : _M_param._M_den;
!       }
  
        /**
         * @brief Returns the parameter set of the distribution.
--- 6924,6947 ----
        /**
         * @brief Return the intervals of the distribution.
         */
!       std::vector<result_type>
        intervals() const
!       { return _M_param.intervals(); }
  
        /**
         * @brief Return a vector of the probability densities of the
         *        distribution.
         */
+ #ifdef _GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS
        std::vector<double>
        densities() const
!       { return _M_param.densities(); }
! #else
!       [[__gnu__::__always_inline__]]
!       std::vector<result_type>
!       densities() const
!       { return _M_param.densities(); }
! #endif
  
        /**
         * @brief Returns the parameter set of the distribution.
*************** _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
*** 6969,6974 ****
--- 7055,7065 ----
  		   std::piecewise_linear_distribution<_RealType1>& __x);
  
      private:
+       template<typename _AdaptedUniformRandomNumberGenerator>
+ 	result_type
+ 	__generate_one(_AdaptedUniformRandomNumberGenerator& __aurng,
+ 		       const param_type& __param);
+ 
        template<typename _ForwardIterator,
  	       typename _UniformRandomNumberGenerator>
  	void
diff -Nrcpad gcc-17-20260712/libstdc++-v3/include/bits/random.tcc gcc-17-20260719/libstdc++-v3/include/bits/random.tcc
*** gcc-17-20260712/libstdc++-v3/include/bits/random.tcc	Sun Jul 12 22:32:20 2026
--- gcc-17-20260719/libstdc++-v3/include/bits/random.tcc	Sun Jul 19 22:32:19 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 78,90 ****
        }
  
      template<typename _InputIterator, typename _OutputIterator,
! 	     typename _Tp>
        _OutputIterator
        __normalize(_InputIterator __first, _InputIterator __last,
! 		  _OutputIterator __result, const _Tp& __factor)
        {
  	for (; __first != __last; ++__first, (void) ++__result)
! 	  *__result = *__first / __factor;
  	return __result;
        }
  
--- 78,90 ----
        }
  
      template<typename _InputIterator, typename _OutputIterator,
! 	     typename _RealType>
        _OutputIterator
        __normalize(_InputIterator __first, _InputIterator __last,
! 		  _OutputIterator __result, const _RealType& __factor)
        {
  	for (; __first != __last; ++__first, (void) ++__result)
! 	  *__result = _RealType(_RealType(*__first) / __factor);
  	return __result;
        }
  
*************** namespace __detail
*** 2947,2974 ****
      piecewise_constant_distribution<_RealType>::param_type::
      _M_configure()
      {
!       const double __sum = std::accumulate(_M_den.begin(),
! 					   _M_den.end(), 0.0);
        __glibcxx_assert(__sum > 0);
  
        __detail::__normalize(_M_den.begin(), _M_den.end(), _M_den.begin(),
  			    __sum);
  
        _M_cp.reserve(_M_den.size());
!       std::partial_sum(_M_den.begin(), _M_den.end(),
! 		       std::back_inserter(_M_cp));
  
        // Make sure the last cumulative probability is one.
!       _M_cp[_M_cp.size() - 1] = 1.0;
  
        for (size_t __k = 0; __k < _M_den.size(); ++__k)
! 	_M_den[__k] /= _M_int[__k + 1] - _M_int[__k];
      }
  
    template<typename _RealType>
      void
      piecewise_constant_distribution<_RealType>::param_type::
!     _M_initialize2(const _RealType* __ints, _RealType __den)
      {
        if (__ints[0] == _RealType(0) && __ints[1] == _RealType(1))
  	return;
--- 2947,2976 ----
      piecewise_constant_distribution<_RealType>::param_type::
      _M_configure()
      {
!       const _CalcType __sum = std::accumulate(_M_den.begin(), _M_den.end(),
! 					      _CalcType(0));
        __glibcxx_assert(__sum > 0);
  
        __detail::__normalize(_M_den.begin(), _M_den.end(), _M_den.begin(),
  			    __sum);
  
+       _CalcType __psum(0);
        _M_cp.reserve(_M_den.size());
!       for (_CalcType __den : _M_den)
! 	_M_cp.push_back(__psum += __den);
  
        // Make sure the last cumulative probability is one.
!       _M_cp[_M_cp.size() - 1] = _CalcType(1);
  
        for (size_t __k = 0; __k < _M_den.size(); ++__k)
! 	_M_den[__k] = _CalcType(_CalcType(_M_den[__k])
! 			/ (_M_int[__k + 1] - _M_int[__k]));
      }
  
    template<typename _RealType>
      void
      piecewise_constant_distribution<_RealType>::param_type::
!     _M_initialize2(const _RealType* __ints, _CalcType __den)
      {
        if (__ints[0] == _RealType(0) && __ints[1] == _RealType(1))
  	return;
*************** namespace __detail
*** 3041,3049 ****
  	for (; __bbegin != __bend; ++__bbegin)
  	  _M_int.push_back(*__bbegin);
  
  	_M_den.reserve(_M_int.size() - 1);
  	for (size_t __k = 0; __k < _M_int.size() - 1; (void)++__k, ++__wbegin)
! 	  _M_den.push_back(*__wbegin);
  
  	_M_configure();
        }
--- 3043,3053 ----
  	for (; __bbegin != __bend; ++__bbegin)
  	  _M_int.push_back(*__bbegin);
  
+ 	// _GLIBCXX_RESOLVE_LIB_DEFECTS
+ 	// 4052. Bogus requirements for piecewise_linear_distribution
  	_M_den.reserve(_M_int.size() - 1);
  	for (size_t __k = 0; __k < _M_int.size() - 1; (void)++__k, ++__wbegin)
! 	  _M_den.push_back(_CalcType(*__wbegin));
  
  	_M_configure();
        }
*************** namespace __detail
*** 3057,3066 ****
  	if (__bl.size() < 2)
  	  return;
  
  	if (__bl.size() == 2)
  	  {
  	    const _RealType *__ints = __bl.begin();
! 	    _RealType __den = __fw(0.5 * (__ints[1] + __ints[0]));
  	    _M_initialize2(__ints, __den);
  	    return;
  	  }
--- 3061,3081 ----
  	if (__bl.size() < 2)
  	  return;
  
+ 	// _GLIBCXX_RESOLVE_LIB_DEFECTS
+ 	// 4052. Bogus requirements for piecewise_linear_distribution
+ 	auto __cfw = [&__fw](_RealType __n, _RealType __p)
+ 	{
+ #ifdef _GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS
+ 	  return __fw(0.5 * (__n + __p));
+ #else
+ 	  return _RealType(__fw(_RealType(0.5) * (__n + __p)));
+ #endif
+ 	};
+ 
  	if (__bl.size() == 2)
  	  {
  	    const _RealType *__ints = __bl.begin();
! 	    _CalcType __den = __cfw(__ints[1], __ints[0]);
  	    _M_initialize2(__ints, __den);
  	    return;
  	  }
*************** namespace __detail
*** 3068,3074 ****
  	_M_int = __bl;
  	_M_den.reserve(_M_int.size() - 1);
  	for (size_t __k = 0; __k < _M_int.size() - 1; ++__k)
! 	  _M_den.push_back(__fw(0.5 * (_M_int[__k + 1] + _M_int[__k])));
  
  	_M_configure();
        }
--- 3083,3089 ----
  	_M_int = __bl;
  	_M_den.reserve(_M_int.size() - 1);
  	for (size_t __k = 0; __k < _M_int.size() - 1; ++__k)
! 	  _M_den.push_back(__cfw(_M_int[__k + 1], _M_int[__k]));
  
  	_M_configure();
        }
*************** namespace __detail
*** 3081,3090 ****
        {
  	const size_t __n = __nw == 0 ? 1 : __nw;
  	const _RealType __delta = (__xmax - __xmin) / __n;
  	if (__n == 1)
  	  {
  	    _RealType __ints[2] = { __xmin, __xmin + __delta };
! 	    _RealType __den = __fw(__xmin + 0.5 * __delta);
  	    _M_initialize2(__ints, __den);
  	    return;
  	  }
--- 3096,3114 ----
        {
  	const size_t __n = __nw == 0 ? 1 : __nw;
  	const _RealType __delta = (__xmax - __xmin) / __n;
+ 	auto __cfw = [&__fw, __delta](_RealType __v)
+ 	{
+ #ifdef _GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS
+ 	  return __fw(__v + 0.5 * __delta);
+ #else
+ 	  return _RealType(__fw(__v + _RealType(0.5) * __delta));
+ #endif
+ 	};
+ 
  	if (__n == 1)
  	  {
  	    _RealType __ints[2] = { __xmin, __xmin + __delta };
! 	    _CalcType __den = __cfw(__xmin);
  	    _M_initialize2(__ints, __den);
  	    return;
  	  }
*************** namespace __detail
*** 3095,3126 ****
  
  	_M_den.reserve(__n);
  	for (size_t __k = 0; __k < __nw; ++__k)
! 	  _M_den.push_back(__fw(_M_int[__k] + 0.5 * __delta));
  
  	_M_configure();
        }
  
    template<typename _RealType>
      template<typename _UniformRandomNumberGenerator>
        typename piecewise_constant_distribution<_RealType>::result_type
        piecewise_constant_distribution<_RealType>::
        operator()(_UniformRandomNumberGenerator& __urng,
  		 const param_type& __param)
        {
! 	__detail::_Adaptor<_UniformRandomNumberGenerator, double>
  	  __aurng(__urng);
  
- 	const double __p = __aurng();
  	if (__param._M_cp.empty())
! 	  return __p;
! 
! 	auto __pos = std::lower_bound(__param._M_cp.begin(),
! 				      __param._M_cp.end(), __p);
! 	const size_t __i = __pos - __param._M_cp.begin();
! 
! 	const double __pref = __i > 0 ? __param._M_cp[__i - 1] : 0.0;
  
! 	return __param._M_int[__i] + (__p - __pref) / __param._M_den[__i];
        }
  
    template<typename _RealType>
--- 3119,3158 ----
  
  	_M_den.reserve(__n);
  	for (size_t __k = 0; __k < __nw; ++__k)
! 	  _M_den.push_back(__cfw(_M_int[__k]));
  
  	_M_configure();
        }
  
    template<typename _RealType>
+     template<typename _AdaptedUniformRandomNumberGenerator>
+       typename piecewise_constant_distribution<_RealType>::result_type
+       piecewise_constant_distribution<_RealType>::
+       __generate_one(_AdaptedUniformRandomNumberGenerator& __aurng,
+ 		     const param_type& __param)
+       {
+ 	const _CalcType __p = __aurng();
+ 	auto __pos = std::lower_bound(__param._M_cp.begin(),
+ 				      __param._M_cp.end(), __p);
+ 	const size_t __i = __pos - __param._M_cp.begin();
+ 	const _CalcType __pref = __i > 0 ? __param._M_cp[__i - 1] : _CalcType(0);
+ 	return __param._M_int[__i] + (__p - __pref) / _CalcType(__param._M_den[__i]);
+       }
+ 
+   template<typename _RealType>
      template<typename _UniformRandomNumberGenerator>
        typename piecewise_constant_distribution<_RealType>::result_type
        piecewise_constant_distribution<_RealType>::
        operator()(_UniformRandomNumberGenerator& __urng,
  		 const param_type& __param)
        {
! 	__detail::_Adaptor<_UniformRandomNumberGenerator, _CalcType>
  	  __aurng(__urng);
  
  	if (__param._M_cp.empty())
! 	  return __aurng();
  
! 	return __generate_one(__aurng, __param);
        }
  
    template<typename _RealType>
*************** namespace __detail
*** 3133,3161 ****
  		      const param_type& __param)
        {
  	__glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
! 	__detail::_Adaptor<_UniformRandomNumberGenerator, double>
  	  __aurng(__urng);
  
  	if (__param._M_cp.empty())
! 	  {
! 	    while (__f != __t)
! 	      *__f++ = __aurng();
! 	    return;
! 	  }
! 
! 	while (__f != __t)
! 	  {
! 	    const double __p = __aurng();
! 
! 	    auto __pos = std::lower_bound(__param._M_cp.begin(),
! 					  __param._M_cp.end(), __p);
! 	    const size_t __i = __pos - __param._M_cp.begin();
! 
! 	    const double __pref = __i > 0 ? __param._M_cp[__i - 1] : 0.0;
! 
! 	    *__f++ = (__param._M_int[__i]
! 		      + (__p - __pref) / __param._M_den[__i]);
! 	  }
        }
  
    template<typename _RealType, typename _CharT, typename _Traits>
--- 3165,3179 ----
  		      const param_type& __param)
        {
  	__glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
! 	__detail::_Adaptor<_UniformRandomNumberGenerator, _CalcType>
  	  __aurng(__urng);
  
  	if (__param._M_cp.empty())
! 	  while (__f != __t)
! 	    *__f++ = __aurng();
! 	else
! 	  while (__f != __t)
! 	    *__f++ = __generate_one(__urng, __param);
        }
  
    template<typename _RealType, typename _CharT, typename _Traits>
*************** namespace __detail
*** 3199,3204 ****
--- 3217,3224 ----
  	       piecewise_constant_distribution<_RealType>& __x)
      {
        using __ios_base = typename basic_istream<_CharT, _Traits>::ios_base;
+       using _StorageType
+ 	= typename piecewise_constant_distribution<_RealType>::_StorageType;
  
        const typename __ios_base::fmtflags __flags = __is.flags();
        __is.flags(__ios_base::dec | __ios_base::skipws);
*************** namespace __detail
*** 3209,3215 ****
  	  std::vector<_RealType> __int_vec;
  	  if (__detail::__extract_params(__is, __int_vec, __n + 1))
  	    {
! 	      std::vector<double> __den_vec;
  	      if (__detail::__extract_params(__is, __den_vec, __n))
  		{
  		  __x.param({ __int_vec.begin(), __int_vec.end(),
--- 3229,3235 ----
  	  std::vector<_RealType> __int_vec;
  	  if (__detail::__extract_params(__is, __int_vec, __n + 1))
  	    {
! 	      std::vector<_StorageType> __den_vec;
  	      if (__detail::__extract_params(__is, __den_vec, __n))
  		{
  		  __x.param({ __int_vec.begin(), __int_vec.end(),
*************** namespace __detail
*** 3228,3261 ****
      piecewise_linear_distribution<_RealType>::param_type::
      _M_configure()
      {
!       double __sum = 0.0;
        _M_cp.reserve(_M_int.size() - 1);
        _M_m.reserve(_M_int.size() - 1);
        for (size_t __k = 0; __k < _M_int.size() - 1; ++__k)
  	{
  	  const _RealType __delta = _M_int[__k + 1] - _M_int[__k];
! 	  __sum += 0.5 * (_M_den[__k + 1] + _M_den[__k]) * __delta;
  	  _M_cp.push_back(__sum);
! 	  _M_m.push_back((_M_den[__k + 1] - _M_den[__k]) / __delta);
  	}
        __glibcxx_assert(__sum > 0);
  
        //  Now normalize the densities...
        __detail::__normalize(_M_den.begin(), _M_den.end(), _M_den.begin(),
  			    __sum);
!       //  ... and partial sums... 
        __detail::__normalize(_M_cp.begin(), _M_cp.end(), _M_cp.begin(), __sum);
        //  ... and slopes.
        __detail::__normalize(_M_m.begin(), _M_m.end(), _M_m.begin(), __sum);
  
        //  Make sure the last cumulative probablility is one.
!       _M_cp[_M_cp.size() - 1] = 1.0;
      }
  
    template<typename _RealType>
      void
      piecewise_linear_distribution<_RealType>::param_type::
!     _M_initialize2(const _RealType* __ints, const _RealType* __dens)
      {
        if (__ints[0] == _RealType(0)
  	  && __ints[1] == _RealType(1)
--- 3248,3284 ----
      piecewise_linear_distribution<_RealType>::param_type::
      _M_configure()
      {
!       _CalcType __sum = 0.0;
        _M_cp.reserve(_M_int.size() - 1);
        _M_m.reserve(_M_int.size() - 1);
        for (size_t __k = 0; __k < _M_int.size() - 1; ++__k)
  	{
  	  const _RealType __delta = _M_int[__k + 1] - _M_int[__k];
! 	  __sum += _CalcType(0.5)
! 		   * (_CalcType(_M_den[__k + 1]) + _CalcType(_M_den[__k]))
! 		   * __delta;
  	  _M_cp.push_back(__sum);
! 	  _M_m.push_back(
! 	    (_CalcType(_M_den[__k + 1]) - _CalcType(_M_den[__k])) / __delta);
  	}
        __glibcxx_assert(__sum > 0);
  
        //  Now normalize the densities...
        __detail::__normalize(_M_den.begin(), _M_den.end(), _M_den.begin(),
  			    __sum);
!       //  ... and partial sums...
        __detail::__normalize(_M_cp.begin(), _M_cp.end(), _M_cp.begin(), __sum);
        //  ... and slopes.
        __detail::__normalize(_M_m.begin(), _M_m.end(), _M_m.begin(), __sum);
  
        //  Make sure the last cumulative probablility is one.
!       _M_cp[_M_cp.size() - 1] = _CalcType(1);
      }
  
    template<typename _RealType>
      void
      piecewise_linear_distribution<_RealType>::param_type::
!     _M_initialize2(const _RealType* __ints, const _CalcType* __dens)
      {
        if (__ints[0] == _RealType(0)
  	  && __ints[1] == _RealType(1)
*************** namespace __detail
*** 3286,3292 ****
  
  	if (__bbegin == __bend)
  	  {
! 	    _RealType __dens[2];
  	    __dens[0] = *__wbegin;
  	    ++__wbegin;
  	    __dens[1] = *__wbegin;
--- 3309,3315 ----
  
  	if (__bbegin == __bend)
  	  {
! 	    _CalcType __dens[2];
  	    __dens[0] = *__wbegin;
  	    ++__wbegin;
  	    __dens[1] = *__wbegin;
*************** namespace __detail
*** 3312,3320 ****
  	for (; __bbegin != __bend; ++__bbegin)
  	  _M_int.push_back(*__bbegin);
  
  	_M_den.reserve(_M_int.size());
  	for (size_t __i = 0; __i < _M_int.size(); (void)++__i, ++__wbegin)
! 	  _M_den.push_back(*__wbegin);
  
  	_M_configure();
        }
--- 3335,3345 ----
  	for (; __bbegin != __bend; ++__bbegin)
  	  _M_int.push_back(*__bbegin);
  
+ 	// _GLIBCXX_RESOLVE_LIB_DEFECTS
+ 	// 4052. Bogus requirements for piecewise_linear_distribution
  	_M_den.reserve(_M_int.size());
  	for (size_t __i = 0; __i < _M_int.size(); (void)++__i, ++__wbegin)
! 	  _M_den.push_back(_CalcType(*__wbegin));
  
  	_M_configure();
        }
*************** namespace __detail
*** 3331,3337 ****
  	if (__bl.size() == 2)
  	  {
  	    const _RealType *__ints = __bl.begin();
! 	    _RealType __den[2];
  	    __den[0] = __fw(__ints[0]);
  	    __den[1] = __fw(__ints[1]);
  	    _M_initialize2(__ints, __den);
--- 3356,3362 ----
  	if (__bl.size() == 2)
  	  {
  	    const _RealType *__ints = __bl.begin();
! 	    _CalcType __den[2];
  	    __den[0] = __fw(__ints[0]);
  	    __den[1] = __fw(__ints[1]);
  	    _M_initialize2(__ints, __den);
*************** namespace __detail
*** 3341,3347 ****
  	_M_int = __bl;
  	_M_den.reserve(__bl.size());
  	for (_RealType __b : __bl)
! 	  _M_den.push_back(__fw(__b));
  	_M_configure();
        }
  
--- 3366,3372 ----
  	_M_int = __bl;
  	_M_den.reserve(__bl.size());
  	for (_RealType __b : __bl)
! 	  _M_den.push_back(_CalcType(__fw(__b)));
  	_M_configure();
        }
  
*************** namespace __detail
*** 3353,3364 ****
        {
  	const size_t __n = __nw == 0 ? 1 : __nw;
  	const _RealType __delta = (__xmax - __xmin) / __n;
  	if (__n == 1)
  	  {
  	    _RealType __ints[2] = { __xmin, __xmin + __delta };
! 	    _RealType __dens[2];
! 	    __dens[0] = __fw(__ints[0]);
! 	    __dens[1] = __fw(__ints[1]);
  	    _M_initialize2(__ints, __dens);
  	    return;
  	  }
--- 3378,3400 ----
        {
  	const size_t __n = __nw == 0 ? 1 : __nw;
  	const _RealType __delta = (__xmax - __xmin) / __n;
+ 	const auto __cfw = [&] (_RealType __v)
+ 	{
+ #ifdef _GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS
+ 	  return __fw(__v + __delta);
+ #else
+ 	  // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ 	  // 4052. Bogus requirements for piecewise_linear_distribution
+ 	  return _RealType(__fw(__v));
+ #endif
+ 	};
+ 
  	if (__n == 1)
  	  {
  	    _RealType __ints[2] = { __xmin, __xmin + __delta };
! 	    _CalcType __dens[2];
! 	    __dens[0] = __cfw(__ints[0]);
! 	    __dens[1] = __cfw(__ints[1]);
  	    _M_initialize2(__ints, __dens);
  	    return;
  	  }
*************** namespace __detail
*** 3368,3413 ****
  	for (size_t __k = 0; __k <= __nw; ++__k)
  	  {
  	    _M_int.push_back(__xmin + __k * __delta);
! 	    _M_den.push_back(__fw(_M_int[__k] + __delta));
  	  }
  
  	_M_configure();
        }
  
    template<typename _RealType>
!     template<typename _UniformRandomNumberGenerator>
        typename piecewise_linear_distribution<_RealType>::result_type
        piecewise_linear_distribution<_RealType>::
!       operator()(_UniformRandomNumberGenerator& __urng,
! 		 const param_type& __param)
        {
! 	__detail::_Adaptor<_UniformRandomNumberGenerator, double>
! 	  __aurng(__urng);
! 
! 	const double __p = __aurng();
! 	if (__param._M_cp.empty())
! 	  return __p;
! 
  	auto __pos = std::lower_bound(__param._M_cp.begin(),
  				      __param._M_cp.end(), __p);
  	const size_t __i = __pos - __param._M_cp.begin();
  
! 	const double __pref = __i > 0 ? __param._M_cp[__i - 1] : 0.0;
  
! 	const double __a = 0.5 * __param._M_m[__i];
! 	const double __b = __param._M_den[__i];
! 	const double __cm = __p - __pref;
  
  	_RealType __x = __param._M_int[__i];
  	if (__a == 0)
  	  __x += __cm / __b;
  	else
  	  {
! 	    const double __d = __b * __b + 4.0 * __a * __cm;
! 	    __x += 0.5 * (std::sqrt(__d) - __b) / __a;
!           }
  
!         return __x;
        }
  
    template<typename _RealType>
--- 3404,3459 ----
  	for (size_t __k = 0; __k <= __nw; ++__k)
  	  {
  	    _M_int.push_back(__xmin + __k * __delta);
! 	    _M_den.push_back(__cfw(_M_int[__k]));
  	  }
  
  	_M_configure();
        }
  
    template<typename _RealType>
!     template<typename _AdaptedUniformRandomNumberGenerator>
        typename piecewise_linear_distribution<_RealType>::result_type
        piecewise_linear_distribution<_RealType>::
!       __generate_one(_AdaptedUniformRandomNumberGenerator& __aurng,
! 		     const param_type& __param)
        {
! 	const _CalcType __p = __aurng();
  	auto __pos = std::lower_bound(__param._M_cp.begin(),
  				      __param._M_cp.end(), __p);
  	const size_t __i = __pos - __param._M_cp.begin();
  
! 	const _CalcType __pref = __i > 0 ? __param._M_cp[__i - 1] : 0.0;
  
! 	const _CalcType __a = _CalcType(0.5) * __param._M_m[__i];
! 	const _CalcType __b = __param._M_den[__i];
! 	const _CalcType __cm = __p - __pref;
  
  	_RealType __x = __param._M_int[__i];
  	if (__a == 0)
  	  __x += __cm / __b;
  	else
  	  {
! 	    const _CalcType __d = __b * __b + 4.0 * __a * __cm;
! 	    __x += _CalcType(0.5) * (std::sqrt(__d) - __b) / __a;
! 	  }
! 	return __x;
!       }
  
! 
!   template<typename _RealType>
!     template<typename _UniformRandomNumberGenerator>
!       typename piecewise_linear_distribution<_RealType>::result_type
!       piecewise_linear_distribution<_RealType>::
!       operator()(_UniformRandomNumberGenerator& __urng,
! 		 const param_type& __param)
!       {
! 	__detail::_Adaptor<_UniformRandomNumberGenerator, _CalcType>
! 	  __aurng(__urng);
! 
! 	if (__param._M_cp.empty())
! 	  return __aurng();
! 
! 	return __generate_one(__aurng, __param);
        }
  
    template<typename _RealType>
*************** namespace __detail
*** 3420,3428 ****
  		      const param_type& __param)
        {
  	__glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
! 	// We could duplicate everything from operator()...
! 	while (__f != __t)
! 	  *__f++ = this->operator()(__urng, __param);
        }
  
    template<typename _RealType, typename _CharT, typename _Traits>
--- 3466,3480 ----
  		      const param_type& __param)
        {
  	__glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
! 	__detail::_Adaptor<_UniformRandomNumberGenerator, _CalcType>
! 	  __aurng(__urng);
! 
! 	if (__param._M_cp.empty())
! 	  while (__f != __t)
! 	    *__f++ = __aurng();
! 	else
! 	  while (__f != __t)
! 	    *__f++ = __generate_one(__urng, __param);
        }
  
    template<typename _RealType, typename _CharT, typename _Traits>
*************** namespace __detail
*** 3466,3471 ****
--- 3518,3525 ----
  	       piecewise_linear_distribution<_RealType>& __x)
      {
        using __ios_base = typename basic_istream<_CharT, _Traits>::ios_base;
+       using _StorageType
+ 	= typename piecewise_linear_distribution<_RealType>::_StorageType;
  
        const typename __ios_base::fmtflags __flags = __is.flags();
        __is.flags(__ios_base::dec | __ios_base::skipws);
*************** namespace __detail
*** 3476,3482 ****
  	  vector<_RealType> __int_vec;
  	  if (__detail::__extract_params(__is, __int_vec, __n + 1))
  	    {
! 	      vector<double> __den_vec;
  	      if (__detail::__extract_params(__is, __den_vec, __n + 1))
  		{
  		  __x.param({ __int_vec.begin(), __int_vec.end(),
--- 3530,3536 ----
  	  vector<_RealType> __int_vec;
  	  if (__detail::__extract_params(__is, __int_vec, __n + 1))
  	    {
! 	      vector<_StorageType> __den_vec;
  	      if (__detail::__extract_params(__is, __den_vec, __n + 1))
  		{
  		  __x.param({ __int_vec.begin(), __int_vec.end(),
diff -Nrcpad gcc-17-20260712/libstdc++-v3/include/debug/safe_iterator.h gcc-17-20260719/libstdc++-v3/include/debug/safe_iterator.h
*** gcc-17-20260712/libstdc++-v3/include/debug/safe_iterator.h	Sun Jul 12 22:32:20 2026
--- gcc-17-20260719/libstdc++-v3/include/debug/safe_iterator.h	Sun Jul 19 22:32:19 2026
*************** namespace __gnu_debug
*** 131,139 ****
      : private _Iterator,
        public _Safe_iterator_base
      {
-       typedef _Iterator _Iter_base;
-       typedef _Safe_iterator_base _Safe_base;
- 
        typedef std::iterator_traits<_Iterator> _Traits;
  
      protected:
--- 131,136 ----
*************** namespace __gnu_debug
*** 149,159 ****
  
        _GLIBCXX20_CONSTEXPR
        _Safe_iterator(const _Safe_iterator& __x, _Unchecked) _GLIBCXX_NOEXCEPT
!       : _Iter_base(__x.base()), _Safe_base()
!       {
! 	if (!std::__is_constant_evaluated())
! 	  _M_attach(__x._M_sequence);
!       }
  
      public:
        typedef _Iterator					iterator_type;
--- 146,153 ----
  
        _GLIBCXX20_CONSTEXPR
        _Safe_iterator(const _Safe_iterator& __x, _Unchecked) _GLIBCXX_NOEXCEPT
!       : _Iterator(__x), _Safe_iterator_base(__x, _S_constant())
!       { }
  
      public:
        typedef _Iterator					iterator_type;
*************** namespace __gnu_debug
*** 169,175 ****
  
        /// @post the iterator is singular and unattached
        _GLIBCXX20_CONSTEXPR
!       _Safe_iterator() _GLIBCXX_NOEXCEPT : _Iter_base() { }
  
        /**
         * @brief Safe iterator construction from an unsafe iterator and
--- 163,169 ----
  
        /// @post the iterator is singular and unattached
        _GLIBCXX20_CONSTEXPR
!       _Safe_iterator() _GLIBCXX_NOEXCEPT : _Iterator() { }
  
        /**
         * @brief Safe iterator construction from an unsafe iterator and
*************** namespace __gnu_debug
*** 181,187 ****
        _GLIBCXX20_CONSTEXPR
        _Safe_iterator(_Iterator __i, const _Safe_sequence_base* __seq)
        _GLIBCXX_NOEXCEPT
!       : _Iter_base(__i), _Safe_base(__seq, _S_constant())
        { }
  
        /**
--- 175,181 ----
        _GLIBCXX20_CONSTEXPR
        _Safe_iterator(_Iterator __i, const _Safe_sequence_base* __seq)
        _GLIBCXX_NOEXCEPT
!       : _Iterator(__i), _Safe_iterator_base(__seq, _S_constant())
        { }
  
        /**
*************** namespace __gnu_debug
*** 189,195 ****
         */
        _GLIBCXX20_CONSTEXPR
        _Safe_iterator(const _Safe_iterator& __x) _GLIBCXX_NOEXCEPT
!       : _Iter_base(__x.base()), _Safe_base()
        {
  	if (std::__is_constant_evaluated())
  	  return;
--- 183,189 ----
         */
        _GLIBCXX20_CONSTEXPR
        _Safe_iterator(const _Safe_iterator& __x) _GLIBCXX_NOEXCEPT
!       : _Iterator(__x), _Safe_iterator_base()
        {
  	if (std::__is_constant_evaluated())
  	  return;
*************** namespace __gnu_debug
*** 211,217 ****
         */
        _GLIBCXX20_CONSTEXPR
        _Safe_iterator(_Safe_iterator&& __x) noexcept
!       : _Iter_base()
        {
  	if (std::__is_constant_evaluated())
  	  {
--- 205,211 ----
         */
        _GLIBCXX20_CONSTEXPR
        _Safe_iterator(_Safe_iterator&& __x) noexcept
!       : _Iterator()
        {
  	if (std::__is_constant_evaluated())
  	  {
*************** namespace __gnu_debug
*** 243,249 ****
  	      std::__are_same<_MutableIterator, _OtherIterator>::__value,
  			       _Category>::__type>& __x)
  	_GLIBCXX_NOEXCEPT
! 	: _Iter_base(__x.base())
  	{
  	  if (std::__is_constant_evaluated())
  	    return;
--- 237,243 ----
  	      std::__are_same<_MutableIterator, _OtherIterator>::__value,
  			       _Category>::__type>& __x)
  	_GLIBCXX_NOEXCEPT
! 	: _Iterator(__x.base())
  	{
  	  if (std::__is_constant_evaluated())
  	    return;
*************** namespace __gnu_debug
*** 446,457 ****
        /** Attach iterator to the given sequence. */
        void
        _M_attach(const _Safe_sequence_base* __seq)
!       { _Safe_base::_M_attach(__seq, _S_constant()); }
  
        /** Likewise, but not thread-safe. */
        void
        _M_attach_single(const _Safe_sequence_base* __seq)
!       { _Safe_base::_M_attach_single(__seq, _S_constant()); }
  
        /// Is the iterator dereferenceable?
        bool
--- 440,451 ----
        /** Attach iterator to the given sequence. */
        void
        _M_attach(const _Safe_sequence_base* __seq)
!       { _Safe_iterator_base::_M_attach(__seq, _S_constant()); }
  
        /** Likewise, but not thread-safe. */
        void
        _M_attach_single(const _Safe_sequence_base* __seq)
!       { _Safe_iterator_base::_M_attach_single(__seq, _S_constant()); }
  
        /// Is the iterator dereferenceable?
        bool
*************** namespace __gnu_debug
*** 478,484 ****
        /// Is the iterator value-initialized?
        bool
        _M_value_initialized() const
!       { return _M_version == 0 && base() == _Iter_base(); }
  
        // Can we advance the iterator @p __n steps (@p __n may be negative)
        bool
--- 472,478 ----
        /// Is the iterator value-initialized?
        bool
        _M_value_initialized() const
!       { return _M_version == 0 && base() == _Iterator(); }
  
        // Can we advance the iterator @p __n steps (@p __n may be negative)
        bool
diff -Nrcpad gcc-17-20260712/libstdc++-v3/include/debug/safe_local_iterator.h gcc-17-20260719/libstdc++-v3/include/debug/safe_local_iterator.h
*** gcc-17-20260712/libstdc++-v3/include/debug/safe_local_iterator.h	Sun Jul 12 22:32:20 2026
--- gcc-17-20260719/libstdc++-v3/include/debug/safe_local_iterator.h	Sun Jul 19 22:32:19 2026
*************** namespace __gnu_debug
*** 65,73 ****
      : private _Iterator
      , public _Safe_local_iterator_base
      {
-       typedef _Iterator _Iter_base;
-       typedef _Safe_local_iterator_base _Safe_base;
- 
        typedef typename _UContainer::size_type size_type;
  
        typedef std::iterator_traits<_Iterator> _Traits;
--- 65,70 ----
*************** namespace __gnu_debug
*** 85,94 ****
  
        struct _Unchecked { };
  
!       _Safe_local_iterator(const _Safe_local_iterator& __x,
! 			   _Unchecked) noexcept
!       : _Iter_base(__x.base())
!       { _M_attach(__x._M_safe_container()); }
  
      public:
        typedef _Iterator					iterator_type;
--- 82,90 ----
  
        struct _Unchecked { };
  
!       _Safe_local_iterator(const _Safe_local_iterator& __x, _Unchecked) noexcept
!       : _Iterator(__x), _Safe_local_iterator_base(__x, _S_constant())
!       { }
  
      public:
        typedef _Iterator					iterator_type;
*************** namespace __gnu_debug
*** 99,105 ****
        typedef typename _Traits::pointer			pointer;
  
        /// @post the iterator is singular and unattached
!       _Safe_local_iterator() noexcept : _Iter_base() { }
  
        /**
         * @brief Safe iterator construction from an unsafe iterator and
--- 95,101 ----
        typedef typename _Traits::pointer			pointer;
  
        /// @post the iterator is singular and unattached
!       _Safe_local_iterator() noexcept : _Iterator() { }
  
        /**
         * @brief Safe iterator construction from an unsafe iterator and
*************** namespace __gnu_debug
*** 110,123 ****
         */
        _Safe_local_iterator(_Iterator __i,
  			   const _Safe_unordered_container_base* __cont)
!       : _Iter_base(__i), _Safe_base(__cont, _S_constant())
        { }
  
        /**
         * @brief Copy construction.
         */
        _Safe_local_iterator(const _Safe_local_iterator& __x) noexcept
!       : _Iter_base(__x.base())
        {
  	// _GLIBCXX_RESOLVE_LIB_DEFECTS
  	// DR 408. Is vector<reverse_iterator<char*> > forbidden?
--- 106,119 ----
         */
        _Safe_local_iterator(_Iterator __i,
  			   const _Safe_unordered_container_base* __cont)
!       : _Iterator(__i), _Safe_local_iterator_base(__cont, _S_constant())
        { }
  
        /**
         * @brief Copy construction.
         */
        _Safe_local_iterator(const _Safe_local_iterator& __x) noexcept
!       : _Iterator(__x)
        {
  	// _GLIBCXX_RESOLVE_LIB_DEFECTS
  	// DR 408. Is vector<reverse_iterator<char*> > forbidden?
*************** namespace __gnu_debug
*** 134,140 ****
         * @post __x is singular and unattached
         */
        _Safe_local_iterator(_Safe_local_iterator&& __x) noexcept
!       : _Iter_base()
        {
  	_GLIBCXX_DEBUG_VERIFY(!__x._M_singular()
  			      || __x._M_value_initialized(),
--- 130,136 ----
         * @post __x is singular and unattached
         */
        _Safe_local_iterator(_Safe_local_iterator&& __x) noexcept
!       : _Iterator()
        {
  	_GLIBCXX_DEBUG_VERIFY(!__x._M_singular()
  			      || __x._M_value_initialized(),
*************** namespace __gnu_debug
*** 157,163 ****
  	  typename __gnu_cxx::__enable_if<_IsConstant::__value &&
  	    std::__are_same<_MutableIterator, _OtherIterator>::__value,
  					  _UContainer>::__type>& __x) noexcept
! 	: _Iter_base(__x.base())
  	{
  	  // _GLIBCXX_RESOLVE_LIB_DEFECTS
  	  // DR 408. Is vector<reverse_iterator<char*> > forbidden?
--- 153,159 ----
  	  typename __gnu_cxx::__enable_if<_IsConstant::__value &&
  	    std::__are_same<_MutableIterator, _OtherIterator>::__value,
  					  _UContainer>::__type>& __x) noexcept
! 	: _Iterator(__x.base())
  	{
  	  // _GLIBCXX_RESOLVE_LIB_DEFECTS
  	  // DR 408. Is vector<reverse_iterator<char*> > forbidden?
*************** namespace __gnu_debug
*** 321,332 ****
        /** Attach iterator to the given unordered container. */
        void
        _M_attach(const _Safe_unordered_container_base* __cont)
!       { _Safe_base::_M_attach(__cont, _S_constant()); }
  
        /** Likewise, but not thread-safe. */
        void
        _M_attach_single(const _Safe_unordered_container_base* __cont)
!       { _Safe_base::_M_attach_single(__cont, _S_constant()); }
  
        /// Is the iterator dereferenceable?
        bool
--- 317,328 ----
        /** Attach iterator to the given unordered container. */
        void
        _M_attach(const _Safe_unordered_container_base* __cont)
!       { _Safe_local_iterator_base::_M_attach(__cont, _S_constant()); }
  
        /** Likewise, but not thread-safe. */
        void
        _M_attach_single(const _Safe_unordered_container_base* __cont)
!       { _Safe_local_iterator_base::_M_attach_single(__cont, _S_constant()); }
  
        /// Is the iterator dereferenceable?
        bool
*************** namespace __gnu_debug
*** 341,347 ****
        /// Is the iterator value-initialized?
        bool
        _M_value_initialized() const
!       { return _M_version == 0 && base() == _Iter_base{}; }
  
        // Is the iterator range [*this, __rhs) valid?
        bool
--- 337,343 ----
        /// Is the iterator value-initialized?
        bool
        _M_value_initialized() const
!       { return _M_version == 0 && base() == _Iterator{}; }
  
        // Is the iterator range [*this, __rhs) valid?
        bool
diff -Nrcpad gcc-17-20260712/libstdc++-v3/include/std/format gcc-17-20260719/libstdc++-v3/include/std/format
*** gcc-17-20260712/libstdc++-v3/include/std/format	Sun Jul 12 22:32:20 2026
--- gcc-17-20260719/libstdc++-v3/include/std/format	Sun Jul 19 22:32:19 2026
*************** namespace __format
*** 286,292 ****
  #endif
  
    template<typename _CharT>
!     class basic_format_parse_context
      {
      public:
        using char_type = _CharT;
--- 286,294 ----
  #endif
  
    template<typename _CharT>
!     // _GLIBCXX_RESOLVE_LIB_DEFECTS
!     // 3975. Specializations of basic_format_context should not be permitted
!     class _GLIBCXX_NO_SPECIALIZATIONS basic_format_parse_context
      {
      public:
        using char_type = _CharT;
*************** namespace __format
*** 1052,1058 ****
      __write_escape_seq(_Out __out, uint_least32_t __val,
  		       basic_string_view<_CharT> __prefix)
      {
-       using _Str_view = basic_string_view<_CharT>;
        constexpr size_t __max = 8;
        char __buf[__max];
        const string_view __narrow(
--- 1054,1059 ----
*************** namespace __format
*** 1067,1076 ****
  #ifdef _GLIBCXX_USE_WCHAR_T
        else
  	{
! 	  _CharT __wbuf[__max];
  	  const size_t __n = __narrow.size();
  	  std::__to_wstring_numeric(__narrow.data(), __n, __wbuf);
! 	  __out = __format::__write(__out, _Str_view(__wbuf, __n));
  	}
  #endif
        *__out = _Separators<_CharT>::_S_braces()[1];
--- 1068,1077 ----
  #ifdef _GLIBCXX_USE_WCHAR_T
        else
  	{
! 	  wchar_t __wbuf[__max];
  	  const size_t __n = __narrow.size();
  	  std::__to_wstring_numeric(__narrow.data(), __n, __wbuf);
! 	  __out = __format::__write(__out, wstring_view(__wbuf, __n));
  	}
  #endif
        *__out = _Separators<_CharT>::_S_braces()[1];
*************** namespace __format
*** 5015,5021 ****
     * @since C++20
     */
    template<typename _Out, typename _CharT>
!     class basic_format_context
      {
        static_assert( output_iterator<_Out, const _CharT&> );
  
--- 5016,5024 ----
     * @since C++20
     */
    template<typename _Out, typename _CharT>
!     // _GLIBCXX_RESOLVE_LIB_DEFECTS
!     // 3975. Specializations of basic_format_context should not be permitted
!     class _GLIBCXX_NO_SPECIALIZATIONS basic_format_context
      {
        static_assert( output_iterator<_Out, const _CharT&> );
  
diff -Nrcpad gcc-17-20260712/libstdc++-v3/include/std/mdspan gcc-17-20260719/libstdc++-v3/include/std/mdspan
*** gcc-17-20260712/libstdc++-v3/include/std/mdspan	Sun Jul 12 22:32:20 2026
--- gcc-17-20260719/libstdc++-v3/include/std/mdspan	Sun Jul 19 22:32:19 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1893,1898 ****
--- 1893,1900 ----
  	  for (size_t __i = 0; __i < extents_type::rank(); ++__i)
  	    _M_strides[__i] =
  	      __mdspan::__index_type_cast<index_type>(as_const(__strides[__i]));
+ 
+ 	  __glibcxx_assert(_M_check_unique());
  	}
  
        template<typename _OIndexType>
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 2027,2032 ****
--- 2029,2103 ----
  	}
  
      private:
+       using _Strides = typename __array_traits<index_type,
+ 					       extents_type::rank()>::_Type;
+ 
+       constexpr bool
+       _M_check_unique() const
+       {
+ 	constexpr size_t __rank = extents_type::rank();
+ 	if constexpr (__rank == 0)
+ 	  return true;
+ 	// _GLIBCXX_RESOLVE_LIB_DEFECTS
+ 	// 4603. `layout_stride` should accept zero strides for empty `extents`
+ 	else if (__mdspan::__empty(_M_extents))
+ 	  return true;
+ 	else if constexpr (__rank == 1)
+ 	  return _M_strides[0] > 0;
+ 	else if (__mdspan::__contains_zero<const index_type, __rank>(_M_strides))
+ 	  return false;
+ 	else if constexpr (__rank == 2)
+ 	  return (_M_strides[1] >= _M_strides[0] * _M_extents.extent(0))
+ 	      || (_M_strides[0] >= _M_strides[1] * _M_extents.extent(1));
+ 	else
+ 	  {
+ 	    // This is necessary, but not sufficient condition for uniqueness.
+ 	    // It requires computation in range of call of operator(), so check
+ 	    // if first, also in non-debug mode.
+ 	    if (required_span_size() < __mdspan::__size(_M_extents))
+ 	      return false;
+ 
+ 	    // Checking for a valid permutation of strides is O(rank^2) so
+ 	    // so enabled only in debug mode.
+ #ifdef _GLIBCXX_DEBUG
+ 	    size_t __perm[__rank];
+ 	    for (size_t __i = 0; __i < __rank; ++__i)
+ 	      __perm[__i] = __i;
+ 
+ 	    auto __popmin = [&](size_t __from)
+ 	    {
+ 	      size_t __min = __perm[__rank - 1];
+ 	      for (size_t __i = __rank - 1; __i > __from; --__i)
+ 		{
+ 		  const size_t __cur = __perm[__i - 1];
+ 		  const auto __res = _M_strides[__cur] <=> _M_strides[__min];
+ 		  // Equal strides are allowed only for extent one, so apply it first.
+ 		  if (__res < 0 || (__res == 0 && _M_extents.extent(__cur) == 1))
+ 		    {
+ 		      __perm[__i] = __min;
+ 		      __min = __cur;
+ 		    }
+ 		  else
+ 		    __perm[__i] = __cur;
+ 		}
+ 	      __perm[__from] = __min;
+ 	      return __min;
+ 	    };
+ 
+ 	    // We use eager insertion-sort based algorithm to permute the __perm.
+ 	    size_t __prev = __popmin(0);
+ 	    for (size_t __i = 1; __i < __rank; ++__i)
+ 	      {
+ 		const size_t __next = __popmin(__i);
+ 		if (_M_strides[__next] < _M_strides[__prev] * _M_extents.extent(__prev))
+ 		  return false;
+ 		__prev = __next;
+ 	      }
+ #endif
+ 	    return true;
+ 	  }
+       }
+ 
  #if __glibcxx_submdspan
        template<typename... _Slices>
  	requires (extents_type::rank() == sizeof...(_Slices))
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 2047,2054 ****
  	}
  #endif
  
-       using _Strides = typename __array_traits<index_type,
- 					       extents_type::rank()>::_Type;
        [[no_unique_address]] extents_type _M_extents;
        [[no_unique_address]] _Strides _M_strides;
      };
--- 2118,2123 ----
diff -Nrcpad gcc-17-20260712/libstdc++-v3/include/std/spanstream gcc-17-20260719/libstdc++-v3/include/std/spanstream
*** gcc-17-20260712/libstdc++-v3/include/std/spanstream	Sun Jul 12 22:32:20 2026
--- gcc-17-20260719/libstdc++-v3/include/std/spanstream	Sun Jul 19 22:32:19 2026
*************** template<typename _CharT, typename _Trai
*** 225,231 ****
--- 225,233 ----
    { __x.swap(__y); }
  
  using spanbuf = basic_spanbuf<char>;
+ #ifdef _GLIBCXX_USE_WCHAR_T
  using wspanbuf = basic_spanbuf<wchar_t>;
+ #endif
  
  template<typename _CharT, typename _Traits>
    class basic_ispanstream
*************** template<typename _CharT, typename _Trai
*** 319,325 ****
--- 321,329 ----
    { __x.swap(__y); }
  
  using ispanstream = basic_ispanstream<char>;
+ #ifdef _GLIBCXX_USE_WCHAR_T
  using wispanstream = basic_ispanstream<wchar_t>;
+ #endif
  
  template<typename _CharT, typename _Traits>
    class basic_ospanstream
*************** template<typename _CharT, typename _Trai
*** 389,395 ****
--- 393,401 ----
    { __x.swap(__y); }
  
  using ospanstream = basic_ospanstream<char>;
+ #ifdef _GLIBCXX_USE_WCHAR_T
  using wospanstream = basic_ospanstream<wchar_t>;
+ #endif
  
  template<typename _CharT, typename _Traits>
    class basic_spanstream
*************** template<typename _CharT, typename _Trai
*** 459,465 ****
--- 465,473 ----
    { __x.swap(__y); }
  
  using spanstream = basic_spanstream<char>;
+ #ifdef _GLIBCXX_USE_WCHAR_T
  using wspanstream = basic_spanstream<wchar_t>;
+ #endif
  
  _GLIBCXX_END_NAMESPACE_VERSION
  } // namespace std
diff -Nrcpad gcc-17-20260712/libstdc++-v3/include/std/syncstream gcc-17-20260719/libstdc++-v3/include/std/syncstream
*** gcc-17-20260712/libstdc++-v3/include/std/syncstream	Sun Jul 12 22:32:20 2026
--- gcc-17-20260719/libstdc++-v3/include/std/syncstream	Sun Jul 19 22:32:19 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 299,308 ****
      { __x.swap(__y); }
  
    using syncbuf = basic_syncbuf<char>;
-   using wsyncbuf = basic_syncbuf<wchar_t>;
- 
    using osyncstream = basic_osyncstream<char>;
    using wosyncstream = basic_osyncstream<wchar_t>;
  _GLIBCXX_END_NAMESPACE_VERSION
  } // namespace std
  #endif // __cpp_lib_syncbuf
--- 299,309 ----
      { __x.swap(__y); }
  
    using syncbuf = basic_syncbuf<char>;
    using osyncstream = basic_osyncstream<char>;
+ #ifdef _GLIBCXX_USE_WCHAR_T
+   using wsyncbuf = basic_syncbuf<wchar_t>;
    using wosyncstream = basic_osyncstream<wchar_t>;
+ #endif
  _GLIBCXX_END_NAMESPACE_VERSION
  } // namespace std
  #endif // __cpp_lib_syncbuf
diff -Nrcpad gcc-17-20260712/libstdc++-v3/include/std/tuple gcc-17-20260719/libstdc++-v3/include/std/tuple
*** gcc-17-20260712/libstdc++-v3/include/std/tuple	Sun Jul 12 22:32:20 2026
--- gcc-17-20260719/libstdc++-v3/include/std/tuple	Sun Jul 19 22:32:19 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 791,797 ****
  
    /// Primary class template, tuple
    template<typename... _Elements>
!     class tuple : public _Tuple_impl<0, _Elements...>
      {
        using _Inherited = _Tuple_impl<0, _Elements...>;
  
--- 791,801 ----
  
    /// Primary class template, tuple
    template<typename... _Elements>
!     // _GLIBCXX_RESOLVE_LIB_DEFECTS
!     // 3990. Program-defined specializations of std::tuple and std::variant
!     // can't be properly supported
!     class _GLIBCXX_NO_SPECIALIZATIONS tuple
!     : public _Tuple_impl<0, _Elements...>
      {
        using _Inherited = _Tuple_impl<0, _Elements...>;
  
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1942,1947 ****
--- 1946,1953 ----
      tuple(allocator_arg_t, _Alloc, tuple<_UTypes...>) -> tuple<_UTypes...>;
  #endif
  
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Winvalid-specialization"
    // Explicit specialization, zero-element tuple.
    template<>
      class tuple<>
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 2416,2421 ****
--- 2422,2428 ----
        { _Inherited::_M_swap(__in); }
      };
  #endif // concepts && conditional_explicit
+ #pragma GCC diagnostic pop
  
    /// class tuple_size
    template<typename... _Elements>
diff -Nrcpad gcc-17-20260712/libstdc++-v3/include/std/variant gcc-17-20260719/libstdc++-v3/include/std/variant
*** gcc-17-20260712/libstdc++-v3/include/std/variant	Sun Jul 12 22:32:20 2026
--- gcc-17-20260719/libstdc++-v3/include/std/variant	Sun Jul 19 22:32:19 2026
*************** namespace __detail::__variant
*** 1450,1456 ****
    };
  
    template<typename... _Types>
!     class variant
      : private __detail::__variant::_Variant_base<_Types...>,
        private _Enable_copy_move<
  	__detail::__variant::_Traits<_Types...>::_S_copy_ctor,
--- 1450,1459 ----
    };
  
    template<typename... _Types>
!     // _GLIBCXX_RESOLVE_LIB_DEFECTS
!     // 3990. Program-defined specializations of std::tuple and std::variant
!     // can't be properly supported
!     class _GLIBCXX_NO_SPECIALIZATIONS variant
      : private __detail::__variant::_Variant_base<_Types...>,
        private _Enable_copy_move<
  	__detail::__variant::_Traits<_Types...>::_S_copy_ctor,
diff -Nrcpad gcc-17-20260712/libstdc++-v3/include/tr1/ell_integral.tcc gcc-17-20260719/libstdc++-v3/include/tr1/ell_integral.tcc
*** gcc-17-20260712/libstdc++-v3/include/tr1/ell_integral.tcc	Sun Jul 12 22:32:20 2026
--- gcc-17-20260719/libstdc++-v3/include/tr1/ell_integral.tcc	Sun Jul 19 22:32:19 2026
*************** namespace tr1
*** 223,229 ****
  
        if (__isnan(__k) || __isnan(__phi))
          return std::numeric_limits<_Tp>::quiet_NaN();
!       else if (std::abs(__k) > _Tp(1))
          std::__throw_domain_error(__N("Bad argument in __ellint_1."));
        else
          {
--- 223,229 ----
  
        if (__isnan(__k) || __isnan(__phi))
          return std::numeric_limits<_Tp>::quiet_NaN();
!       else if ((std::abs(__k) > _Tp(1)) || __builtin_isinf(__phi))
          std::__throw_domain_error(__N("Bad argument in __ellint_1."));
        else
          {
*************** namespace tr1
*** 437,443 ****
  
        if (__isnan(__k) || __isnan(__phi))
          return std::numeric_limits<_Tp>::quiet_NaN();
!       else if (std::abs(__k) > _Tp(1))
          std::__throw_domain_error(__N("Bad argument in __ellint_2."));
        else
          {
--- 437,443 ----
  
        if (__isnan(__k) || __isnan(__phi))
          return std::numeric_limits<_Tp>::quiet_NaN();
!       else if ((std::abs(__k) > _Tp(1)) || __builtin_isinf(__phi))
          std::__throw_domain_error(__N("Bad argument in __ellint_2."));
        else
          {
*************** namespace tr1
*** 705,711 ****
  
        if (__isnan(__k) || __isnan(__nu) || __isnan(__phi))
          return std::numeric_limits<_Tp>::quiet_NaN();
!       else if (std::abs(__k) > _Tp(1))
          std::__throw_domain_error(__N("Bad argument in __ellint_3."));
        else
          {
--- 705,711 ----
  
        if (__isnan(__k) || __isnan(__nu) || __isnan(__phi))
          return std::numeric_limits<_Tp>::quiet_NaN();
!       else if ((std::abs(__k) > _Tp(1)) || __builtin_isinf(__phi))
          std::__throw_domain_error(__N("Bad argument in __ellint_3."));
        else
          {
diff -Nrcpad gcc-17-20260712/libstdc++-v3/libsupc++/compare gcc-17-20260719/libstdc++-v3/libsupc++/compare
*** gcc-17-20260712/libstdc++-v3/libsupc++/compare	Sun Jul 12 22:32:20 2026
--- gcc-17-20260719/libstdc++-v3/libsupc++/compare	Sun Jul 19 22:32:19 2026
*************** namespace std _GLIBCXX_VISIBILITY(defaul
*** 1267,1273 ****
    /// @since C++26
  
    template<typename _Tp, typename _Up>
!     struct type_order
      {
        static constexpr strong_ordering value = __builtin_type_order(_Tp, _Up);
        using value_type = strong_ordering;
--- 1267,1275 ----
    /// @since C++26
  
    template<typename _Tp, typename _Up>
!     // _GLIBCXX_RESOLVE_LIB_DEFECTS
!     // 4305. Missing user requirements on type_order template
!     struct _GLIBCXX_NO_SPECIALIZATIONS type_order
      {
        static constexpr strong_ordering value = __builtin_type_order(_Tp, _Up);
        using value_type = strong_ordering;
diff -Nrcpad gcc-17-20260712/libstdc++-v3/libsupc++/initializer_list gcc-17-20260719/libstdc++-v3/libsupc++/initializer_list
*** gcc-17-20260712/libstdc++-v3/libsupc++/initializer_list	Sun Jul 12 22:32:20 2026
--- gcc-17-20260719/libstdc++-v3/libsupc++/initializer_list	Sun Jul 19 22:32:19 2026
*************** namespace std _GLIBCXX_VISIBILITY(defaul
*** 47,53 ****
  {
    /// initializer_list
    template<class _E>
!     class initializer_list
      {
      public:
        typedef _E 		value_type;
--- 47,55 ----
  {
    /// initializer_list
    template<class _E>
!     // _GLIBCXX_RESOLVE_LIB_DEFECTS
!     // 2129. User specializations of std::initializer_list
!     class _GLIBCXX_NO_SPECIALIZATIONS initializer_list
      {
      public:
        typedef _E 		value_type;
diff -Nrcpad gcc-17-20260712/libstdc++-v3/src/c++20/tzdb.cc gcc-17-20260719/libstdc++-v3/src/c++20/tzdb.cc
*** gcc-17-20260712/libstdc++-v3/src/c++20/tzdb.cc	Sun Jul 12 22:32:20 2026
--- gcc-17-20260719/libstdc++-v3/src/c++20/tzdb.cc	Sun Jul 19 22:32:19 2026
*************** namespace std::chrono
*** 483,488 ****
--- 483,490 ----
  	select_std_or_dst_abbrev(info.abbrev, info.save);
      }
  
+     struct Rule;
+ 
      // A time zone information record.
      // Zone  NAME        STDOFF  RULES   FORMAT  [UNTIL]
      // Zone  Asia/Amman  2:00    Jordan  EE%sT   2017 Oct 27 01:00
*************** namespace std::chrono
*** 492,503 ****
        ZoneInfo() = default;
  
        ZoneInfo(sys_info&& info)
!       : m_buf(std::move(info.abbrev)), m_expanded(true), m_save(info.save),
  	m_offset(info.offset - seconds(info.save)), m_until(info.end)
        { }
  
        ZoneInfo(const pair<sys_info, string_view>& info)
!       : m_expanded(true), m_save(info.first.save),
  	m_offset(info.first.offset - seconds(info.first.save)),
         	m_until(info.first.end)
        {
--- 494,505 ----
        ZoneInfo() = default;
  
        ZoneInfo(sys_info&& info)
!       : m_buf(std::move(info.abbrev)), m_state(Expanded), m_save(info.save),
  	m_offset(info.offset - seconds(info.save)), m_until(info.end)
        { }
  
        ZoneInfo(const pair<sys_info, string_view>& info)
!       : m_state(Expanded), m_save(info.first.save),
  	m_offset(info.first.offset - seconds(info.first.save)),
         	m_until(info.first.end)
        {
*************** namespace std::chrono
*** 533,549 ****
        sys_seconds
        until() const noexcept { return m_until; }
  
        friend istream& operator>>(istream&, ZoneInfo&);
  
        bool
        expanded() const noexcept
!       { return m_expanded; }
  
        // For an expanded ZoneInfo this returns the LETTERS that apply to the
        // **next** sys_info after this one.
        string_view
        next_letters() const noexcept
!       { return m_expanded ? rules() : string_view{}; }
  
  
        bool
--- 535,557 ----
        sys_seconds
        until() const noexcept { return m_until; }
  
+       // For non-expanded zone (using rules) computes the value
+       // of 'save' at the time of transitions, caches it in m_save.
+       // Returns true if until value was changed in the process.
+       bool
+       calc_save(span<const Rule> all_rules) noexcept;
+ 
        friend istream& operator>>(istream&, ZoneInfo&);
  
        bool
        expanded() const noexcept
!       { return m_state == Expanded; }
  
        // For an expanded ZoneInfo this returns the LETTERS that apply to the
        // **next** sys_info after this one.
        string_view
        next_letters() const noexcept
!       { return (m_state == Expanded) ? rules() : string_view{}; }
  
  
        bool
*************** namespace std::chrono
*** 551,557 ****
        {
  	// If this object references a named Rule then we can't populate
  	// a sys_info yet.
! 	if (!m_expanded)
  	  return false;
  
  	info.end = until();
--- 559,565 ----
        {
  	// If this object references a named Rule then we can't populate
  	// a sys_info yet.
! 	if (m_state != Expanded)
  	  return false;
  
  	info.end = until();
*************** namespace std::chrono
*** 565,576 ****
      private:
        friend class time_zone;
  
        void
        set_abbrev(string abbrev)
        {
  	m_buf = std::move(abbrev);
  	m_pos = 0;
! 	m_expanded = true;
        }
  
        void
--- 573,588 ----
      private:
        friend class time_zone;
  
+       enum class State : uint_least16_t
+       { Expanded, SaveKnown, SavePending, UntilPending };
+       using enum State;
+ 
        void
        set_abbrev(string abbrev)
        {
  	m_buf = std::move(abbrev);
  	m_pos = 0;
! 	m_state = Expanded;
        }
  
        void
*************** namespace std::chrono
*** 586,593 ****
        }
  
        string m_buf;     // rules() + ' ' + format() OR letters + ' ' + format()
!       uint_least16_t m_pos : 15 = 0; // offset of format() in m_buf
!       uint_least16_t m_expanded : 1 = 0;
        duration<int_least16_t, ratio<60>> m_save{};
        sec32_t m_offset{};
        sys_seconds m_until{};
--- 598,605 ----
        }
  
        string m_buf;     // rules() + ' ' + format() OR letters + ' ' + format()
!       uint_least16_t m_pos : 14 = 0; // offset of format() in m_buf
!       State m_state : 2 = SavePending;
        duration<int_least16_t, ratio<60>> m_save{};
        sec32_t m_offset{};
        sys_seconds m_until{};
*************** namespace std::chrono
*** 695,708 ****
  #endif
      };
  
!     const Rule*
!     find_active_rule(span<const Rule> rules, sys_seconds t, seconds std_offset)
      {
!       struct Transition {
  	const Rule* rule;
  	sys_seconds when;
        };
  
        const year_month_day date(chrono::floor<days>(t));
        // Expand the search window for a time near the end
        // of the year which can be pushed to next/previous
--- 707,733 ----
  #endif
      };
  
!     struct Transitions
      {
!       struct Entry
!       {
  	const Rule* rule;
  	sys_seconds when;
        };
  
+       Entry prev{nullptr, sys_seconds::min()};
+       Entry curr{nullptr, sys_seconds::min()};
+       Entry next{nullptr, sys_seconds::max()};
+     };
+ 
+     // Collect transitions of rules surrounding specified time t:
+     // * .curr - rule active directly before or at t,
+     // * .prev - rule transition before trans.curr
+     // * .next - rule transition directly after t
+     Transitions
+     find_surrounding_transitions(span<const Rule> rules, sys_seconds t,
+ 				 seconds std_offset)
+     {
        const year_month_day date(chrono::floor<days>(t));
        // Expand the search window for a time near the end
        // of the year which can be pushed to next/previous
*************** namespace std::chrono
*** 716,731 ****
  	if (date.month() == January && date.day() == day(1))
  	  --first_year;
  
!       // Rule specifying start time as Wall time, should apply
!       // running 'save' accumulated by earlier rules. To handle
!       // that we firstly collect transitions surrounding specified
!       // time t, ignoring the 'save':
!       // * curr_tran - rule active directly before or at t,
!       // * prev_tran - rule transition before curr_tran
!       // * next_tran - rule transition directly after t
!       Transition prev_tran{nullptr, sys_seconds::min()};
!       Transition curr_tran{nullptr, sys_seconds::min()};
!       Transition next_tran{nullptr, sys_seconds::max()};
        for (const auto& rule : rules)
  	{
  	  if (last_year < rule.from) // Rule doesn't apply yet at time t.
--- 741,747 ----
  	if (date.month() == January && date.day() == day(1))
  	  --first_year;
  
!       Transitions trans;
        for (const auto& rule : rules)
  	{
  	  if (last_year < rule.from) // Rule doesn't apply yet at time t.
*************** namespace std::chrono
*** 761,767 ****
  
  	  if (first_year > rule.to)
  	    // Rule no longer applies at time t, record last transition
!             start_before = rule.start_time(rule.to, offset);
  	  else if (first_year == last_year)
  	    for_year(first_year);
  	  else
--- 777,783 ----
  
  	  if (first_year > rule.to)
  	    // Rule no longer applies at time t, record last transition
! 	    start_before = rule.start_time(rule.to, offset);
  	  else if (first_year == last_year)
  	    for_year(first_year);
  	  else
*************** namespace std::chrono
*** 773,796 ****
  	       for_year(last_year);
  	   }
  
! 	  if (curr_tran.when < start_before)
  	    {
! 	      prev_tran = curr_tran;
! 	      curr_tran = {&rule, start_before};
  	    }
! 	  else if (prev_tran.when < start_before)
! 	    prev_tran = {&rule, start_before};
  
! 	  if (start_after < next_tran.when)
! 	    next_tran = {&rule, start_after};
  	}
  
        // No rule was active at the time of t, running 'save'
        // cannot change this output, as we have no save to apply.
!       if (!curr_tran.rule)
  	return nullptr;
  
!       auto cascade_save = [](const Rule* from, Transition& to)
        {
  	if (!from || from->save == seconds(0))
  	  return false;
--- 789,823 ----
  	       for_year(last_year);
  	   }
  
! 	  if (trans.curr.when < start_before)
  	    {
! 	      trans.prev = trans.curr;
! 	      trans.curr = {&rule, start_before};
  	    }
! 	  else if (trans.prev.when < start_before)
! 	    trans.prev = {&rule, start_before};
  
! 	  if (start_after < trans.next.when)
! 	    trans.next = {&rule, start_after};
  	}
+       return trans;
+     }
+ 
+     const Rule*
+     find_active_rule(span<const Rule> rules, sys_seconds t, seconds std_offset)
+     {
+       // Rule specifying start time as Wall time, should apply
+       // running 'save' accumulated by earlier rules. To handle
+       // that we firstly collect transitions surrounding specified
+       // time t:
+       auto trans = find_surrounding_transitions(rules, t, std_offset);
  
        // No rule was active at the time of t, running 'save'
        // cannot change this output, as we have no save to apply.
!       if (!trans.curr.rule)
  	return nullptr;
  
!       auto cascade_save = [](const Rule* from, Transitions::Entry& to)
        {
  	if (!from || from->save == seconds(0))
  	  return false;
*************** namespace std::chrono
*** 800,818 ****
  	return true;
        };
  
!       if (cascade_save(curr_tran.rule, next_tran))
! 	// Running save moved what we considered next_tran to time
! 	// before or at t, in that case next_tran is active rule.
! 	if (next_tran.when <= t)
! 	  return next_tran.rule;
  
!       if (cascade_save(prev_tran.rule, curr_tran))
! 	// Running save moved what we consider curr_tran to
! 	// time after t, in that case prev_tran is active rule.
! 	if (curr_tran.when > t)
! 	  return prev_tran.rule;
  
!       return curr_tran.rule;
      }
  
      const Rule*
--- 827,875 ----
  	return true;
        };
  
!       if (cascade_save(trans.curr.rule, trans.next))
! 	// Running save moved what we considered trans.next to time
! 	// before or at t, in that case trans.next is active rule.
! 	if (trans.next.when <= t)
! 	  return trans.next.rule;
  
!       if (cascade_save(trans.prev.rule, trans.curr))
! 	// Running save moved what we consider trans.curr to
! 	// time after t, in that case trans.prev is active rule.
! 	if (trans.curr.when > t)
! 	  return trans.prev.rule;
  
!       return trans.curr.rule;
!     }
! 
!     const Rule*
!     find_active_rule(span<const Rule> rules, local_seconds t, seconds std_offset)
!     {
!       // UNTIL or START time in local time should take a 'save' from
!       // active rule. To handle tapproximate system time at, and
!       // collect transitions surrounding it:
!       const sys_seconds at(t.time_since_epoch() - std_offset);
!       const auto trans = find_surrounding_transitions(rules, at, std_offset);
! 
!       auto to_local = [&](const Transitions::Entry& tran, const Rule* before)
!       {
! 	local_seconds ls(tran.when.time_since_epoch() + std_offset);
! 	if (!before || !tran.rule)
! 	  return ls;
! 	if (tran.rule->when.indicator == at_time::Wall)
! 	  // 'when' was converted from local time without considering
! 	  // running 'save' in first place
! 	  return ls;
! 	return ls + before->save;
!       };
! 
!       // Translate the transitions time to local time, taking 'save'
!       // into consideration, and recheck active rule.
!       if (to_local(trans.next, trans.curr.rule) <= t)
! 	return trans.next.rule;
!       if (to_local(trans.curr, trans.prev.rule) > t)
! 	return trans.prev.rule;
!       return trans.curr.rule;
      }
  
      const Rule*
*************** namespace std::chrono
*** 835,840 ****
--- 892,934 ----
  	}
        return first;
      }
+ 
+     bool
+     ZoneInfo::calc_save(span<const Rule> all_rules) noexcept
+     {
+       // Expanded rule, or the save value was already computed.
+       if (m_state < SavePending)
+ 	return false;
+ 
+       // Find the rules named by rules()
+       span<const Rule> sel_rules
+ 	= ranges::equal_range(all_rules, rules(), ranges::less{}, &Rule::name);
+       if (sel_rules.empty())
+ 	__throw_runtime_error("std::chrono::time_zone::get_info: invalid data");
+ 
+       if (m_state == UntilPending)
+ 	{
+ 	  // UNTIL was specified in Wall time, so it is affected by 'save'.
+ 	  // Convert it back to local time, and find active rule using that.
+ 	  const local_seconds lu(m_until.time_since_epoch() + m_offset);
+ 	  if (const Rule* rule = find_active_rule(sel_rules, lu - seconds(1), m_offset))
+ 	    if (rule->save.count() != 0)
+ 	      {
+ 		m_state = SaveKnown;
+ 		m_save = duration_cast<minutes>(rule->save);
+ 		m_until -= rule->save;
+ 		return true;
+ 	      }
+ 	 }
+       else
+ 	// UNTIL was either specified in Universal time, or Standard
+ 	// time (known total offset). m_until is corresponding sys_time point.
+ 	if (const Rule* rule = find_active_rule(sel_rules, m_until - seconds(1), m_offset))
+ 	  m_save = duration_cast<minutes>(rule->save);
+ 
+       m_state = SaveKnown;
+       return false;
+     }
    } // namespace
  #endif // TZDB_DISABLED
  
*************** namespace std::chrono
*** 966,984 ****
      // Find the transition info for the time point.
      auto i = ranges::upper_bound(infos, tp, ranges::less{}, &ZoneInfo::until);
  
      if (i == infos.end())
        {
  	if (infos.empty())
  	  __throw_runtime_error("std::chrono::time_zone::get_info: invalid data");
! 	tp = (--i)->until();
!     }
  
      sys_info info;
  
      if (i == infos.begin())
        info.begin = sys_days(year::min()/January/1);
      else
!       info.begin = i[-1].until();
  
      if (i->to(info)) // We already know a sys_info for this time.
        return info;
--- 1060,1094 ----
      // Find the transition info for the time point.
      auto i = ranges::upper_bound(infos, tp, ranges::less{}, &ZoneInfo::until);
  
+     // Perform the comparison on save adjusted until values (if needed)
+     // Assume that applying the save will not change relative order of
+     // ZoneInfo objects.
+     if (i != infos.begin() && i[-1].calc_save(node->rules) && (i[-1].until() > tp))
+       --i;
+     else if (i != infos.end() && i->calc_save(node->rules) && (i->until() <= tp))
+       ++i;
+ 
      if (i == infos.end())
        {
  	if (infos.empty())
  	  __throw_runtime_error("std::chrono::time_zone::get_info: invalid data");
! 	(--i)->calc_save(node->rules);
! 	tp = i->until();
!       }
!     else // Guarantee that i->until() is correct
!       i->calc_save(node->rules);
! 
  
      sys_info info;
  
      if (i == infos.begin())
        info.begin = sys_days(year::min()/January/1);
      else
!       {
! 	ZoneInfo& prev = i[-1];
! 	prev.calc_save(node->rules);
! 	info.begin = prev.until();
!       }
  
      if (i->to(info)) // We already know a sys_info for this time.
        return info;
*************** namespace std::chrono
*** 990,999 ****
      const ZoneInfo& ri = *i;
  
      // Find the rules named by ri.rules()
!     auto rules = ranges::equal_range(node->rules, ri.rules(),
! 				     ranges::less{}, &Rule::name);
  
!     if (ranges::empty(rules))
        __throw_runtime_error("std::chrono::time_zone::get_info: invalid data");
  
      vector<pair<sys_info, string_view>> new_infos;
--- 1100,1109 ----
      const ZoneInfo& ri = *i;
  
      // Find the rules named by ri.rules()
!     span<const Rule> rules = ranges::equal_range(node->rules, ri.rules(),
! 						 ranges::less{}, &Rule::name);
  
!     if (rules.empty())
        __throw_runtime_error("std::chrono::time_zone::get_info: invalid data");
  
      vector<pair<sys_info, string_view>> new_infos;
*************** namespace std::chrono
*** 1012,1019 ****
      // rule changes always occur between periods of standard time.
      info.offset = ri.offset();
      info.save = 0min;
-     // XXX The ri.until() time point should be
-     // "interpreted using the rules in effect just before the transition"
      info.end = ri.until();
      info.abbrev = ri.format();
  
--- 1122,1127 ----
*************** namespace std::chrono
*** 1027,1033 ****
  	// SAVE and LETTERS values. There may not be a Rule for the period
  	// before the first DST transition, so find the earliest DST->STD
  	// transition and use the LETTERS from that.
! 	if (const Rule* active_rule = find_active_rule(rules, info.begin - seconds(1), ri.offset()))
  	  {
  	    info.offset = ri.offset() + active_rule->save;
  	    info.save = chrono::duration_cast<minutes>(active_rule->save);
--- 1135,1141 ----
  	// SAVE and LETTERS values. There may not be a Rule for the period
  	// before the first DST transition, so find the earliest DST->STD
  	// transition and use the LETTERS from that.
! 	if (const Rule* active_rule = find_active_rule(rules, info.begin, ri.offset()))
  	  {
  	    info.offset = ri.offset() + active_rule->save;
  	    info.save = chrono::duration_cast<minutes>(active_rule->save);
*************** constinit tzdb_list::_Node::NumLeapSecon
*** 2612,2617 ****
--- 2720,2726 ----
  	  if (rules == "-")
  	    {
  	      // Standard time always applies, no DST.
+ 	      inf.m_save = minutes(0);
  	    }
  	  else
  	    {
*************** constinit tzdb_list::_Node::NumLeapSecon
*** 2645,2658 ****
  	      inf.m_until -= seconds(inf.m_offset);
  	      if (t.indicator != at_time::Standard)
  		{
! 		  if (inf.m_expanded) // Not a named Rule, SAVE is known now.
  		    inf.m_until -= inf.m_save;
! 		  // else Named Rule, SAVE is unknown. FIXME: PR 116110
  		}
  	    }
  	}
        else
! 	inf.m_until = sys_days(year::max()/December/31);
  
        in.clear(in.rdstate() & ios::eofbit);
        in.exceptions(ex);
--- 2754,2773 ----
  	      inf.m_until -= seconds(inf.m_offset);
  	      if (t.indicator != at_time::Standard)
  		{
! 		  if (inf.expanded()) // Not a named Rule, SAVE is known now.
  		    inf.m_until -= inf.m_save;
! 		  else // else Named Rule, SAVE is unknown, mark as pending
! 		    inf.m_state = ZoneInfo::UntilPending;
  		}
  	    }
  	}
        else
! 	{
! 	  inf.m_until = sys_days(year::max()/December/31);
! 	  // The line does not define UNTIL, so it is not affected by save
! 	  if (!inf.expanded())
! 	    inf.m_state = ZoneInfo::SaveKnown;
! 	}
  
        in.clear(in.rdstate() & ios::eofbit);
        in.exceptions(ex);
diff -Nrcpad gcc-17-20260712/libstdc++-v3/src/c++23/std.cc.in gcc-17-20260719/libstdc++-v3/src/c++23/std.cc.in
*** gcc-17-20260712/libstdc++-v3/src/c++23/std.cc.in	Sun Jul 12 22:32:20 2026
--- gcc-17-20260719/libstdc++-v3/src/c++23/std.cc.in	Sun Jul 19 22:32:19 2026
*************** export namespace std
*** 1368,1384 ****
  #endif
    using std::formatter;
    using std::make_format_args;
-   using std::make_wformat_args;
  #if __cpp_lib_format >= 202603L // >= C++26
    using std::dynamic_format;
  #endif
    using std::vformat;
    using std::vformat_to;
    using std::visit_format_arg;
    using std::wformat_args;
    using std::wformat_context;
    using std::wformat_parse_context;
    using std::wformat_string;
  #ifdef __cpp_lib_format_ranges
    using std::format_kind;
    using std::range_format;
--- 1368,1386 ----
  #endif
    using std::formatter;
    using std::make_format_args;
  #if __cpp_lib_format >= 202603L // >= C++26
    using std::dynamic_format;
  #endif
    using std::vformat;
    using std::vformat_to;
    using std::visit_format_arg;
+ #ifdef _GLIBCXX_USE_WCHAR_T
+   using std::make_wformat_args;
    using std::wformat_args;
    using std::wformat_context;
    using std::wformat_parse_context;
    using std::wformat_string;
+ #endif
  #ifdef __cpp_lib_format_ranges
    using std::format_kind;
    using std::range_format;
*************** export namespace std
*** 1416,1425 ****
--- 1418,1429 ----
    using std::ifstream;
    using std::ofstream;
    using std::swap;
+ #ifdef _GLIBCXX_USE_WCHAR_T
    using std::wfilebuf;
    using std::wfstream;
    using std::wifstream;
    using std::wofstream;
+ #endif
  }
  
  // <functional>
*************** export namespace std
*** 1620,1626 ****
--- 1624,1632 ----
    using std::streamsize;
    using std::unitbuf;
    using std::uppercase;
+ #ifdef _GLIBCXX_USE_WCHAR_T
    using std::wios;
+ #endif
  }
  
  // <iosfwd>
*************** export namespace std
*** 1639,1647 ****
--- 1645,1655 ----
    using std::basic_syncbuf;
    using std::osyncstream;
    using std::syncbuf;
+ #ifdef _GLIBCXX_USE_WCHAR_T
    using std::wosyncstream;
    using std::wsyncbuf;
  #endif
+ #endif
  }
  
  // <iostream>
*************** export namespace std
*** 1651,1660 ****
--- 1659,1670 ----
    using std::cin;
    using std::clog;
    using std::cout;
+ #ifdef _GLIBCXX_USE_WCHAR_T
    using std::wcerr;
    using std::wcin;
    using std::wclog;
    using std::wcout;
+ #endif
  }
  
  // <istream>
*************** export namespace std
*** 1664,1671 ****
--- 1674,1683 ----
    using std::basic_istream;
    using std::iostream;
    using std::istream;
+ #ifdef _GLIBCXX_USE_WCHAR_T
    using std::wiostream;
    using std::wistream;
+ #endif
    using std::ws;
    using std::operator>>;
  }
*************** export namespace std
*** 2487,2493 ****
--- 2499,2507 ----
    using std::ends;
    using std::flush;
    using std::ostream;
+ #ifdef _GLIBCXX_USE_WCHAR_T
    using std::wostream;
+ #endif
    using std::operator<<;
  #ifdef __cpp_lib_syncbuf
    using std::emit_on_flush;
*************** export namespace std
*** 2916,2924 ****
--- 2930,2940 ----
    using std::ssub_match;
    using std::sub_match;
    using std::swap;
+ #ifdef _GLIBCXX_USE_WCHAR_T
    using std::wcsub_match;
    using std::wregex;
    using std::wssub_match;
+ #endif
    using std::operator==;
    using std::operator<=>;
    using std::operator<<;
*************** export namespace std
*** 2934,2954 ****
--- 2950,2974 ----
    using std::smatch;
    using std::sregex_iterator;
    using std::sregex_token_iterator;
+ #ifdef _GLIBCXX_USE_WCHAR_T
    using std::wcmatch;
    using std::wcregex_iterator;
    using std::wcregex_token_iterator;
    using std::wsmatch;
    using std::wsregex_iterator;
    using std::wsregex_token_iterator;
+ #endif
    namespace pmr
    {
  #if _GLIBCXX_USE_CXX11_ABI
      using std::pmr::cmatch;
      using std::pmr::match_results;
      using std::pmr::smatch;
+ #ifdef _GLIBCXX_USE_WCHAR_T
      using std::pmr::wcmatch;
      using std::pmr::wsmatch;
  #endif
+ #endif
    }
  }
  
*************** export namespace std
*** 3020,3036 ****
  export namespace std
  {
    using std::basic_spanbuf;
-   using std::spanbuf;
-   using std::wspanbuf;
    using std::basic_ispanstream;
-   using std::ispanstream;
-   using std::wispanstream;
    using std::basic_ospanstream;
-   using std::ospanstream;
-   using std::wospanstream;
    using std::basic_spanstream;
    using std::spanstream;
    using std::wspanstream;
  }
  #endif
  
--- 3040,3058 ----
  export namespace std
  {
    using std::basic_spanbuf;
    using std::basic_ispanstream;
    using std::basic_ospanstream;
    using std::basic_spanstream;
+   using std::spanbuf;
+   using std::ispanstream;
+   using std::ospanstream;
    using std::spanstream;
+ #ifdef _GLIBCXX_USE_WCHAR_T
+   using std::wspanbuf;
+   using std::wispanstream;
+   using std::wospanstream;
    using std::wspanstream;
+ #endif
  }
  #endif
  
*************** export namespace std
*** 3046,3055 ****
--- 3068,3079 ----
    using std::stringbuf;
    using std::stringstream;
    using std::swap;
+ #ifdef _GLIBCXX_USE_WCHAR_T
    using std::wistringstream;
    using std::wostringstream;
    using std::wstringbuf;
    using std::wstringstream;
+ #endif
  }
  
  // <stack>
*************** export namespace std
*** 3144,3150 ****
--- 3168,3176 ----
  {
    using std::basic_streambuf;
    using std::streambuf;
+ #ifdef _GLIBCXX_USE_WCHAR_T
    using std::wstreambuf;
+ #endif
  }
  
  // <string>
*************** export namespace std
*** 3171,3177 ****
--- 3197,3205 ----
    using std::stoull;
    using std::string;
    using std::to_string;
+ #ifdef _GLIBCXX_USE_WCHAR_T
    using std::to_wstring;
+ #endif
    using std::u16string;
    using std::u32string;
    using std::u8string;
*************** export namespace std
*** 3236,3244 ****
--- 3264,3274 ----
    using std::basic_osyncstream;
    using std::osyncstream;
    using std::syncbuf;
+ #ifdef _GLIBCXX_USE_WCHAR_T
    using std::wosyncstream;
    using std::wsyncbuf;
  #endif
+ #endif
  }
  
  // 19.5 <system_error>
diff -Nrcpad gcc-17-20260712/libstdc++-v3/testsuite/18_support/comparisons/type_order/lwg4305.cc gcc-17-20260719/libstdc++-v3/testsuite/18_support/comparisons/type_order/lwg4305.cc
*** gcc-17-20260712/libstdc++-v3/testsuite/18_support/comparisons/type_order/lwg4305.cc	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/libstdc++-v3/testsuite/18_support/comparisons/type_order/lwg4305.cc	Sun Jul 19 22:32:19 2026
***************
*** 0 ****
--- 1,15 ----
+ // { dg-do compile { target c++26 } }
+ 
+ // LWG 4305. Missing user requirements on type_order template
+ 
+ #include <compare>
+ 
+ struct A {};
+ template<typename T>
+ struct B {};
+ 
+ template<>
+ struct std::type_order<A, A> {};		// { dg-error "cannot be specialized" }
+ 
+ template<typename T>
+ struct std::type_order<B<T>, T> {};		// { dg-error "cannot be specialized" }
diff -Nrcpad gcc-17-20260712/libstdc++-v3/testsuite/18_support/initializer_list/lwg2129.cc gcc-17-20260719/libstdc++-v3/testsuite/18_support/initializer_list/lwg2129.cc
*** gcc-17-20260712/libstdc++-v3/testsuite/18_support/initializer_list/lwg2129.cc	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/libstdc++-v3/testsuite/18_support/initializer_list/lwg2129.cc	Sun Jul 19 22:32:19 2026
***************
*** 0 ****
--- 1,12 ----
+ // { dg-do compile { target c++11 } }
+ 
+ // LWG 2129. User specializations of std::initializer_list
+ 
+ #include <initializer_list>
+ 
+ template<class T>
+ class std::initializer_list<T*> {	// { dg-error "cannot be specialized" }
+ private:
+   void* array;
+   decltype(sizeof(0)) len;
+ };
diff -Nrcpad gcc-17-20260712/libstdc++-v3/testsuite/20_util/tuple/lwg3990.cc gcc-17-20260719/libstdc++-v3/testsuite/20_util/tuple/lwg3990.cc
*** gcc-17-20260712/libstdc++-v3/testsuite/20_util/tuple/lwg3990.cc	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/libstdc++-v3/testsuite/20_util/tuple/lwg3990.cc	Sun Jul 19 22:32:19 2026
***************
*** 0 ****
--- 1,16 ----
+ // { dg-do compile { target c++11 } }
+ 
+ // LWG 3990. Program-defined specializations of std::tuple and std::variant
+ // can't be properly supported
+ 
+ #include <tuple>
+ 
+ struct A {};
+ template<typename T>
+ struct B {};
+ 
+ template<>
+ class std::tuple<A, A> {};	// { dg-error "cannot be specialized" }
+ 
+ template<typename T>
+ class std::tuple<B<T>, T> {};	// { dg-error "cannot be specialized" }
diff -Nrcpad gcc-17-20260712/libstdc++-v3/testsuite/20_util/variant/lwg3990.cc gcc-17-20260719/libstdc++-v3/testsuite/20_util/variant/lwg3990.cc
*** gcc-17-20260712/libstdc++-v3/testsuite/20_util/variant/lwg3990.cc	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/libstdc++-v3/testsuite/20_util/variant/lwg3990.cc	Sun Jul 19 22:32:19 2026
***************
*** 0 ****
--- 1,16 ----
+ // { dg-do compile { target c++11 } }
+ 
+ // LWG 3990. Program-defined specializations of std::tuple and std::variant
+ // can't be properly supported
+ 
+ #include <variant>
+ 
+ struct A {};
+ template<typename T>
+ struct B {};
+ 
+ template<>
+ class std::variant<A, A> {};	// { dg-error "cannot be specialized" }
+ 
+ template<typename T>
+ class std::variant<B<T>, T> {};	// { dg-error "cannot be specialized" }
diff -Nrcpad gcc-17-20260712/libstdc++-v3/testsuite/23_containers/mdspan/layouts/stride_neg.cc gcc-17-20260719/libstdc++-v3/testsuite/23_containers/mdspan/layouts/stride_neg.cc
*** gcc-17-20260712/libstdc++-v3/testsuite/23_containers/mdspan/layouts/stride_neg.cc	Sun Jul 12 22:32:20 2026
--- gcc-17-20260719/libstdc++-v3/testsuite/23_containers/mdspan/layouts/stride_neg.cc	Sun Jul 19 22:32:19 2026
***************
*** 1,7 ****
  // { dg-do compile { target c++23 } }
  #include <mdspan>
- 
- #include "../layout_traits.h"
  #include <cstdint>
  
  constexpr size_t dyn = std::dynamic_extent;
--- 1,5 ----
*************** test_stride_negative()
*** 27,31 ****
--- 25,99 ----
  }
  static_assert(test_stride_negative()); // { dg-error "expansion of" } 
  
+ 
+ using std::array;
+ template<size_t Rank>
+  using mapping = std::layout_stride::mapping<std::dextents<size_t, Rank>>;
+ 
+ constexpr auto m0 = mapping<0>(array<int, 0>{}, array<int, 0>{}); // { dg-bogus "expansion of" }
+ 
+ // Zero strides allowed for empty mappings
+ constexpr auto m00 = mapping<1>(array{0}, array{0}); // { dg-bogus "expansion of" }
+ constexpr auto m01 = mapping<2>(array{0, 1}, array{3, 0}); // { dg-bogus "expansion of" }
+ constexpr auto m02 = mapping<2>(array{0, 1}, array{0, 0}); // { dg-bogus "expansion of" }
+ constexpr auto m03 = mapping<3>(array{0, 1, 2}, array{3, 0, 0}); // { dg-bogus "expansion of" }
+ constexpr auto m04 = mapping<3>(array{0, 1, 2}, array{3, 3, 0}); // { dg-bogus "expansion of" }
+ constexpr auto m05 = mapping<4>(array{0, 1, 2, 3}, array{5, 3, 0, 2}); // { dg-bogus "expansion of" }
+ 
+ // Otherwise leads to non-unique mappings.
+ constexpr auto m06 = mapping<1>(array{1}, array{0});                   // { dg-error "expansion of" }
+ constexpr auto m07 = mapping<2>(array{1, 2}, array{3, 0});             // { dg-error "expansion of" } 
+ constexpr auto m08 = mapping<3>(array{1, 2, 3}, array{3, 3, 0});       // { dg-error "expansion of" }         
+ constexpr auto m09 = mapping<4>(array{1, 2, 3, 5}, array{5, 3, 0, 2}); // { dg-error "expansion of" } 
+ 
+ // required_span_size is smaller size of multidimensional index space
+ constexpr auto m10 = mapping<2>(array{3, 4}, array{2, 3}); // { dg-error "expansion of" }
+ constexpr auto m11 = mapping<2>(array{3, 4}, array{1, 2}); // { dg-error "expansion of" }
+ constexpr auto m12 = mapping<3>(array{3, 4, 5}, array{1, 3, 11}); // { dg-error "expansion of" }
+ constexpr auto m13 = mapping<3>(array{3, 4, 5}, array{1, 2, 12}); // { dg-error "expansion of" }
+ constexpr auto m14 = mapping<4>(array{3, 4, 5, 6}, array{1, 3, 12, 50}); // { dg-error "expansion of" }
+ constexpr auto m15 = mapping<4>(array{3, 4, 5, 6}, array{1, 3, 11, 60}); // { dg-error "expansion of" }
+ constexpr auto m16 = mapping<4>(array{3, 4, 5, 6}, array{1, 2, 12, 60}); // { dg-error "expansion of" }
+ 
+ // Passes required_span_size check (smaller and bigger stride), detected only in debug mode
+ constexpr auto m17 = mapping<3>(array{3, 4, 5}, array{1, 2, 25}); // { dg-error "expansion of" "" { target debug_mode } }
+ constexpr auto m18 = mapping<3>(array{3, 4, 5}, array{1, 5, 12}); // { dg-error "expansion of" "" { target debug_mode } }
+ constexpr auto m19 = mapping<4>(array{3, 4, 5, 6}, array{1, 2, 12, 100}); // { dg-error "expansion of" "" { target debug_mode } }
+ constexpr auto m20 = mapping<4>(array{3, 4, 5, 6}, array{1, 5, 12, 60});  // { dg-error "expansion of" "" { target debug_mode } }
+ 
+ // Equal indicies allowed if extents are 1
+ constexpr auto m21 = mapping<2>(array{5, 1}, array{1, 1}); // { dg-bogus "expansion of" }
+ constexpr auto m22 = mapping<3>(array{1, 5, 1}, array{1, 1, 1}); // { dg-bogus "expansion of" }
+ constexpr auto m23 = mapping<4>(array{1, 1, 5, 1}, array{1, 1, 1, 1}); // { dg-bogus "expansion of" }
+ constexpr auto m24 = mapping<5>(array{3, 4, 1, 1, 5}, array{3, 10, 3, 3, 45}); // { dg-bogus "expansion of" }
+ constexpr auto m25 = mapping<5>(array{3, 4, 1, 1, 5}, array{3, 10, 3, 10, 45}); // { dg-bogus "expansion of" }
+ constexpr auto m26 = mapping<5>(array{3, 4, 1, 1, 5}, array{3, 10, 10, 3, 45}); // { dg-bogus "expansion of" } 
+ constexpr auto m27 = mapping<5>(array{3, 4, 1, 1, 5}, array{3, 10, 10, 10, 45}); // { dg-bogus "expansion of" }
+ 
+ // Only some permutations are valid, invalid permutations detected only in debug mode.
+ 
+ // Unique if stride 3 corresponds to extent 3
+ constexpr auto m28 = mapping<2>(array{3, 4}, array{3, 10}); // { dg-bogus "expansion of" }
+ constexpr auto m29 = mapping<2>(array{3, 4}, array{10, 3}); // { dg-error "expansion of" "" { target debug_mode } }
+ constexpr auto m30 = mapping<2>(array{4, 3}, array{10, 3}); // { dg-bogus "expansion of" }
+ constexpr auto m31 = mapping<2>(array{4, 3}, array{3, 10}); // { dg-error "expansion of" "" { target debug_mode } }
+ 
+ // Unique if stride 11 corresponds to extent 3, as 11 * 3 < 35, and 2 * 5 < 11
+ constexpr auto m32 = mapping<3>(array{3, 4, 5}, array{11, 2, 35}); // { dg-bogus "expansion of" } 
+ constexpr auto m33 = mapping<3>(array{3, 4, 5}, array{11, 35, 2}); // { dg-bogus "expansion of" }
+ constexpr auto m34 = mapping<3>(array{3, 4, 5}, array{2, 11, 35}); // { dg-error "expansion of" "" { target debug_mode } }
+ constexpr auto m35 = mapping<3>(array{3, 4, 5}, array{35, 2, 11}); // { dg-error "expansion of" "" { target debug_mode } }
+ constexpr auto m36 = mapping<3>(array{5, 4, 3}, array{2, 35, 11}); // { dg-bogus "expansion of" }
+ constexpr auto m37 = mapping<3>(array{5, 4, 3}, array{2, 11, 35}); // { dg-error "expansion of" "" { target debug_mode } }
+ constexpr auto m38 = mapping<3>(array{5, 3, 4}, array{35, 11, 2}); // { dg-bogus "expansion of" }
+ constexpr auto m39 = mapping<3>(array{3, 5, 4}, array{35, 2, 11}); // { dg-error "expansion of" "" { target debug_mode } }
+ 
+ // Unique for stride -> extent mapping: 3 * 5 < 16, 15 * 4 < 65, 65 * 3 < 200 
+ constexpr auto m40 = mapping<4>(array{3, 4, 5, 6}, array{65, 16, 3, 200}); // { dg-bogus "expansion of" }
+ constexpr auto m41 = mapping<4>(array{3, 4, 5, 6}, array{3, 16, 65, 200}); // { dg-error "expansion of" "" { target debug_mode } } 
+ constexpr auto m42 = mapping<4>(array{3, 4, 5, 6}, array{200, 65, 3, 16}); // { dg-error "expansion of" "" { target debug_mode } } 
+ constexpr auto m43 = mapping<4>(array{5, 3, 6, 4}, array{3, 65, 200, 16}); // { dg-bogus "expansion of" }
+ constexpr auto m44 = mapping<4>(array{5, 3, 6, 4}, array{3, 16, 200, 65}); // { dg-error "expansion of" "" { target debug_mode } }
+ 
  // { dg-prune-output "non-constant condition for static assertion" }
  // { dg-prune-output "__glibcxx_assert_fail()" }
diff -Nrcpad gcc-17-20260712/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/input_type.cc gcc-17-20260719/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/input_type.cc
*** gcc-17-20260712/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/input_type.cc	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/input_type.cc	Sun Jul 19 22:32:19 2026
***************
*** 0 ****
--- 1,52 ----
+ // { dg-do compile { target c++11 } }
+ // { dg-require-cstdint "" }
+ 
+ #include <random>
+ 
+ template<typename RealType>
+ struct OnlyConv
+ {
+   long double v;
+ 
+   template<typename DestType>
+   operator DestType() const
+   {
+     static_assert(std::is_same<DestType, RealType>::value);
+     return v;
+   }
+ };
+ 
+ template<typename RealType>
+ struct OnlyCall
+ {
+   template<typename SourceType>
+   OnlyConv<RealType> operator()(SourceType src)
+   {
+     static_assert(std::is_same<SourceType, RealType>::value);
+     return OnlyConv<RealType>{src};
+   }
+ };
+ 
+ template<typename RealType>
+ void
+ test()
+ {
+   std::initializer_list<RealType> invs{0, 1, 2};
+   OnlyConv<RealType> weights[2]{1, 2};
+ 
+   std::piecewise_constant_distribution<RealType>
+     from_iter(invs.begin(), invs.end(), weights);
+ 
+   std::piecewise_constant_distribution<RealType>
+     from_init_list(invs, OnlyCall<RealType>());
+ 
+   std::piecewise_constant_distribution<RealType>
+     from_count(2, 0, 2, OnlyCall<RealType>());
+ }
+ 
+ int main()
+ {
+   test<float>();
+   test<double>();
+   test<long double>();
+ }
diff -Nrcpad gcc-17-20260712/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/input_type_fallback_neg.cc gcc-17-20260719/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/input_type_fallback_neg.cc
*** gcc-17-20260712/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/input_type_fallback_neg.cc	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/input_type_fallback_neg.cc	Sun Jul 19 22:32:19 2026
***************
*** 0 ****
--- 1,55 ----
+ // { dg-options "-D_GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS" }
+ // { dg-do compile { target c++11 } }
+ // { dg-require-cstdint "" }
+ 
+ #include <random>
+ 
+ template<typename RealType>
+ struct OnlyConv
+ {
+   long double v;
+ 
+   template<typename DestType>
+   operator DestType() const
+   {
+     static_assert(std::is_same<DestType, RealType>::value);
+     return v;
+   }
+ };
+ 
+ template<typename RealType>
+ struct OnlyCall
+ {
+   template<typename SourceType>
+   OnlyConv<RealType> operator()(SourceType src)
+   {
+     static_assert(std::is_same<SourceType, RealType>::value);
+     return OnlyConv<RealType>{src};
+   }
+ };
+ 
+ template<typename RealType>
+ void
+ test()
+ {
+   std::initializer_list<RealType> invs{0, 1, 2};
+   OnlyConv<RealType> weights[2]{1, 2};
+ 
+   std::piecewise_constant_distribution<RealType>
+     from_iter(invs.begin(), invs.end(), weights);
+ 
+   std::piecewise_constant_distribution<RealType>
+     from_init_list(invs, OnlyCall<RealType>());
+ 
+   std::piecewise_constant_distribution<RealType>
+     from_count(2, 0, 2, OnlyCall<RealType>());
+ }
+ 
+ int main()
+ {
+   test<float>(); // { dg-error "here" }
+   test<double>();
+   test<long double>(); // { dg-error "here" }
+ }
+ 
+ // { dg-prune-output "static assertion failed" }
diff -Nrcpad gcc-17-20260712/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/accessors.cc gcc-17-20260719/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/accessors.cc
*** gcc-17-20260712/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/accessors.cc	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/accessors.cc	Sun Jul 19 22:32:19 2026
***************
*** 0 ****
--- 1,135 ----
+ // { dg-do run { target c++11 } }
+ // { dg-require-cstdint "" }
+ 
+ #include <random>
+ #include <testsuite_hooks.h>
+ 
+ template<typename RealType>
+ void
+ test_exact()
+ {
+   RealType x[6] = {0.0, 1.0, 2.0, 3.0, 4.0, 5.0};
+   RealType wt[5] = {0.5, 1.0, 3.5, 2.5, 0.5};
+ 
+   std::piecewise_constant_distribution<RealType>
+     u(std::begin(x), std::end(x), wt);
+ 
+   const std::vector<RealType>& interval = u.intervals();
+   VERIFY( interval.size() == 6 );
+   VERIFY( interval[0] == RealType(0.0) );
+   VERIFY( interval[5] == RealType(5.0) );
+ 
+ #ifdef _GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS
+   const std::vector<double>& density = u.densities();
+ #else
+   const std::vector<RealType>& density = u.densities();
+ #endif
+ 
+   VERIFY( density.size() == 5 );
+   VERIFY( density[0] == RealType(0.5 / 8.0) );
+   VERIFY( density[1] == RealType(1.0 / 8.0) );
+   VERIFY( density[2] == RealType(3.5 / 8.0) );
+   VERIFY( density[3] == RealType(2.5 / 8.0) );
+   VERIFY( density[4] == RealType(0.5 / 8.0) );
+ }
+ 
+ template<typename InputType, typename DistType = InputType>
+ void
+ test_precision_depended()
+ {
+   constexpr bool preserved
+ #ifdef _GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS
+     = sizeof(InputType) <= sizeof(double);
+ #elifdef _GLIBCXX_USE_RESULT_TYPE_FOR_PIECEWISE_DENSITIES
+     = sizeof(InputType) <= sizeof(DistType);
+ #else
+     // input is converted to DistType and stored in double
+     = (sizeof(InputType) <= sizeof(DistType))
+       && (sizeof(InputType) <= sizeof(double));
+ #endif
+ 
+   std::initializer_list<DistType> x{0.0, 0.5, 1.0};
+   constexpr InputType step
+     = std::numeric_limits<InputType>::epsilon();
+   InputType wt[2]{InputType(1) - step, InputType(1) + step};
+ 
+   using Distribution = std::piecewise_constant_distribution<DistType>;
+   auto validate = [&wt](const Distribution& dist)
+   {
+     const std::vector<DistType>& interval = dist.intervals();
+     VERIFY( interval.size() == 3 );
+     VERIFY( interval[0] == DistType(0.0) );
+     VERIFY( interval[2] == DistType(1.0) );
+ 
+ #ifdef _GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS
+     const std::vector<double>& density = dist.densities();
+ #else
+     const std::vector<DistType>& density = dist.densities();
+ #endif
+ 
+     VERIFY( density.size() == 2 );
+     VERIFY( density[0] == (preserved ? wt[0] : InputType(1)) );
+     VERIFY( density[1] == (preserved ? wt[1] : InputType(1)) );
+   };
+ 
+   Distribution from_iter(x.begin(), x.end(), wt);
+   validate(from_iter);
+ 
+   auto wf = [&wt](DistType v)
+   { return wt[int(v / 0.5)]; };
+ 
+   Distribution from_init_list(x, wf);
+   validate(from_init_list);
+ 
+   Distribution from_count(2, InputType(0), InputType(1), wf);
+   validate(from_count);
+ }
+ 
+ template<typename RealType, typename URBG = std::mt19937>
+ void
+ test_engine_calls()
+ {
+   constexpr std::size_t bits = __builtin_popcountg(URBG::max() - URBG::min());
+   constexpr std::size_t calls
+ #ifdef _GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS
+     = (std::numeric_limits<double>::digits + bits - 1) / bits;
+ #else
+     = (std::numeric_limits<RealType>::digits + bits - 1) / bits;
+ #endif
+ 
+   struct wrapper : URBG
+   {
+     typename URBG::result_type operator()()
+     {
+       ++num_calls;
+       return URBG::operator()();
+     }
+     std::size_t num_calls = 0;
+   };
+ 
+   wrapper eng;
+   std::piecewise_constant_distribution<RealType> u;
+   u(eng);
+   VERIFY(eng.num_calls == calls);
+ }
+ 
+ int main()
+ {
+   using namespace __gnu_test;
+   test_exact<float>();
+   test_exact<double>();
+   test_exact<long double>();
+ 
+   test_precision_depended<float>();
+   test_precision_depended<double>();
+   test_precision_depended<long double>();
+ 
+   test_precision_depended<double, float>();
+   test_precision_depended<long double, float>();
+   test_precision_depended<long double, double>();
+ 
+   test_engine_calls<float>();
+   test_engine_calls<double>();
+   test_engine_calls<long double>();
+   return 0;
+ }
diff -Nrcpad gcc-17-20260712/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/accessors_exact.cc gcc-17-20260719/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/accessors_exact.cc
*** gcc-17-20260712/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/accessors_exact.cc	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/accessors_exact.cc	Sun Jul 19 22:32:19 2026
***************
*** 0 ****
--- 1,5 ----
+ // { dg-options "-D_GLIBCXX_USE_RESULT_TYPE_FOR_PIECEWISE_DENSITIES" }
+ // { dg-do run { target c++11 } }
+ // { dg-require-cstdint "" }
+ #include "accessors.cc"
+ 
diff -Nrcpad gcc-17-20260712/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/accessors_fallback.cc gcc-17-20260719/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/accessors_fallback.cc
*** gcc-17-20260712/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/accessors_fallback.cc	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/accessors_fallback.cc	Sun Jul 19 22:32:19 2026
***************
*** 0 ****
--- 1,5 ----
+ // { dg-options "-D_GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS" }
+ // { dg-do run { target c++11 } }
+ // { dg-require-cstdint "" }
+ #include "accessors.cc"
+ 
diff -Nrcpad gcc-17-20260712/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/serialize2.cc gcc-17-20260719/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/serialize2.cc
*** gcc-17-20260712/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/serialize2.cc	Sun Jul 12 22:32:20 2026
--- gcc-17-20260719/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/serialize2.cc	Sun Jul 19 22:32:19 2026
*************** test_default()
*** 38,44 ****
        "1 0.00000000000000000e+00 1.00000000000000000e+00 1.00000000000000000e+00";
      VERIFY( res == expected );
      break;
!   case 64: // ieee80 
      expected =
        "1 0.000000000000000000000e+00 1.000000000000000000000e+00 1.000000000000000000000e+00";
      VERIFY( res == expected );
--- 38,44 ----
        "1 0.00000000000000000e+00 1.00000000000000000e+00 1.00000000000000000e+00";
      VERIFY( res == expected );
      break;
!   case 64: // ieee80
      expected =
        "1 0.000000000000000000000e+00 1.000000000000000000000e+00 1.000000000000000000000e+00";
      VERIFY( res == expected );
*************** test_custom()
*** 74,92 ****
    case 24: // ieee32
      expected =
        "3 0.000000000e+00 3.333333433e-01 6.666666865e-01 1.000000000e+00"
! 	" 7.777777281e-01 9.999999702e-01 1.222222322e+00";
      VERIFY( res == expected );
      break;
    case 53: // ieee64
      expected =
        "3 0.00000000000000000e+00 3.33333333333333315e-01 6.66666666666666630e-01 1.00000000000000000e+00"
! 	" 7.77777777777777901e-01 1.00000000000000000e+00 1.22222222222222210e+00";
      VERIFY( res == expected );
      break;
!   case 64: // ieee80 
      expected =
        "3 0.000000000000000000000e+00 3.333333333333333333424e-01 6.666666666666666666847e-01 1.000000000000000000000e+00"
! 	" 7.777777777777779011359e-01 1.000000000000000000000e+00 1.222222222222222098864e+00";
      VERIFY( res == expected );
      break;
    default:
--- 74,92 ----
    case 24: // ieee32
      expected =
        "3 0.000000000e+00 3.333333433e-01 6.666666865e-01 1.000000000e+00"
!        " 7.777777314e-01 1.000000000e+00 1.222222328e+00";
      VERIFY( res == expected );
      break;
    case 53: // ieee64
      expected =
        "3 0.00000000000000000e+00 3.33333333333333315e-01 6.66666666666666630e-01 1.00000000000000000e+00"
!        " 7.77777777777777901e-01 1.00000000000000000e+00 1.22222222222222210e+00";
      VERIFY( res == expected );
      break;
!   case 64: // ieee80
      expected =
        "3 0.000000000000000000000e+00 3.333333333333333333424e-01 6.666666666666666666847e-01 1.000000000000000000000e+00"
!        " 7.777777777777779011359e-01 1.000000000000000000000e+00 1.222222222222222098864e+00";
      VERIFY( res == expected );
      break;
    default:
*************** int main()
*** 100,109 ****
    test_default<double>();
    test_default<long double>();
  
! #ifdef __x86_64__
    test_custom<float>();
! #endif
    test_custom<double>();
    test_custom<long double>();
    return 0;
  }
--- 100,113 ----
    test_default<double>();
    test_default<long double>();
  
! #if __FLT_EVAL_METHOD__ >= 0
! # if __FLT_EVAL_METHOD__ == 0
    test_custom<float>();
! # endif
! # if __FLT_EVAL_METHOD__ != 2
    test_custom<double>();
+ # endif
    test_custom<long double>();
+ #endif
    return 0;
  }
diff -Nrcpad gcc-17-20260712/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/input_type.cc gcc-17-20260719/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/input_type.cc
*** gcc-17-20260712/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/input_type.cc	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/input_type.cc	Sun Jul 19 22:32:19 2026
***************
*** 0 ****
--- 1,52 ----
+ // { dg-do compile { target c++11 } }
+ // { dg-require-cstdint "" }
+ 
+ #include <random>
+ 
+ template<typename RealType>
+ struct OnlyConv
+ {
+   long double v;
+ 
+   template<typename DestType>
+   operator DestType() const
+   {
+     static_assert(std::is_same<DestType, RealType>::value);
+     return v;
+   }
+ };
+ 
+ template<typename RealType>
+ struct OnlyCall
+ {
+   template<typename SourceType>
+   OnlyConv<RealType> operator()(SourceType src)
+   {
+     static_assert(std::is_same<SourceType, RealType>::value);
+     return OnlyConv<RealType>{src};
+   }
+ };
+ 
+ template<typename RealType>
+ void
+ test()
+ {
+   std::initializer_list<RealType> invs{0, 1, 2};
+   OnlyConv<RealType> weights[3]{1, 2, 3};
+ 
+   std::piecewise_linear_distribution<RealType>
+     from_iter(invs.begin(), invs.end(), weights);
+ 
+   std::piecewise_linear_distribution<RealType>
+     from_init_list(invs, OnlyCall<RealType>());
+ 
+   std::piecewise_linear_distribution<RealType>
+     from_count(2, 0, 2, OnlyCall<RealType>());
+ }
+ 
+ int main()
+ {
+   test<float>();
+   test<double>();
+   test<long double>();
+ }
diff -Nrcpad gcc-17-20260712/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/input_type_fallback_neg.cc gcc-17-20260719/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/input_type_fallback_neg.cc
*** gcc-17-20260712/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/input_type_fallback_neg.cc	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/input_type_fallback_neg.cc	Sun Jul 19 22:32:19 2026
***************
*** 0 ****
--- 1,55 ----
+ // { dg-options "-D_GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS" }
+ // { dg-do compile { target c++11 } }
+ // { dg-require-cstdint "" }
+ 
+ #include <random>
+ 
+ template<typename RealType>
+ struct OnlyConv
+ {
+   long double v;
+ 
+   template<typename DestType>
+   operator DestType() const
+   {
+     static_assert(std::is_same<DestType, RealType>::value);
+     return v;
+   }
+ };
+ 
+ template<typename RealType>
+ struct OnlyCall
+ {
+   template<typename SourceType>
+   OnlyConv<RealType> operator()(SourceType src)
+   {
+     static_assert(std::is_same<SourceType, RealType>::value);
+     return OnlyConv<RealType>{src};
+   }
+ };
+ 
+ template<typename RealType>
+ void
+ test()
+ {
+   std::initializer_list<RealType> invs{0, 1, 2};
+   OnlyConv<RealType> weights[3]{1, 2, 3};
+ 
+   std::piecewise_linear_distribution<RealType>
+     from_iter(invs.begin(), invs.end(), weights);
+ 
+   std::piecewise_linear_distribution<RealType>
+     from_init_list(invs, OnlyCall<RealType>());
+ 
+   std::piecewise_linear_distribution<RealType>
+     from_count(2, 0, 2, OnlyCall<RealType>());
+ }
+ 
+ int main()
+ {
+   test<float>(); // { dg-error "here" }
+   test<double>();
+   test<long double>(); // { dg-error "here" }
+ }
+ 
+ // { dg-prune-output "static assertion failed" }
diff -Nrcpad gcc-17-20260712/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/pr125548.cc gcc-17-20260719/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/pr125548.cc
*** gcc-17-20260712/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/pr125548.cc	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/pr125548.cc	Sun Jul 19 22:32:19 2026
***************
*** 0 ****
--- 1,33 ----
+ // { dg-do run { target c++11 } }
+ // { dg-require-cstdint "" }
+ 
+ #include <random>
+ #include <testsuite_hooks.h>
+ 
+ void 
+ test_functor(int n)
+ {
+   const double step = 1.0/n;
+ #ifdef _GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS 
+   double expected = step;
+ #else
+   double expected = 0.0;
+ #endif
+ 
+   auto check_val = [&] (double value) mutable {
+     VERIFY( value == expected ); 
+     expected += step;
+     return value;
+   };
+ 
+   std::piecewise_linear_distribution<> d(n, 0.0, 1.0, check_val);
+ }
+ 
+ int
+ main()
+ {
+   test_functor(1);
+   test_functor(2);
+   test_functor(4);
+   test_functor(8);
+ }
diff -Nrcpad gcc-17-20260712/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/pr125548_fallback.cc gcc-17-20260719/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/pr125548_fallback.cc
*** gcc-17-20260712/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/pr125548_fallback.cc	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/cons/pr125548_fallback.cc	Sun Jul 19 22:32:19 2026
***************
*** 0 ****
--- 1,5 ----
+ // { dg-options "-D_GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS" }
+ // { dg-do run { target c++11 } }
+ // { dg-require-cstdint "" }
+ #include "pr125548.cc"
+ 
diff -Nrcpad gcc-17-20260712/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/accessors.cc gcc-17-20260719/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/accessors.cc
*** gcc-17-20260712/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/accessors.cc	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/accessors.cc	Sun Jul 19 22:32:19 2026
***************
*** 0 ****
--- 1,140 ----
+ // { dg-do run { target c++11 } }
+ // { dg-require-cstdint "" }
+ 
+ #include <random>
+ #include <testsuite_hooks.h>
+ 
+ template<typename RealType>
+ void
+ test_exact()
+ {
+   RealType x[6] = {0.0, 1.0, 2.0, 3.0, 4.0, 5.0};
+   RealType wt[6] = {0.0, 1.0, 1.0, 6.0, -1.0, 2.0};
+ 
+   std::piecewise_linear_distribution<RealType>
+     u(std::begin(x), std::end(x), wt);
+ 
+   const std::vector<RealType>& interval = u.intervals();
+   VERIFY( interval.size() == 6 );
+   VERIFY( interval[0] == RealType(0.0) );
+   VERIFY( interval[5] == RealType(5.0) );
+ 
+ #ifdef _GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS
+   const std::vector<double>& density = u.densities();
+ #else
+   const std::vector<RealType>& density = u.densities();
+ #endif
+ 
+   VERIFY( density.size() == 6 );
+   VERIFY( density[0] == RealType(0.0 / 8.0) );
+   VERIFY( density[1] == RealType(1.0 / 8.0) );
+   VERIFY( density[2] == RealType(1.0 / 8.0) );
+   VERIFY( density[3] == RealType(6.0 / 8.0) );
+   VERIFY( density[4] == RealType(-1.0 / 8.0) );
+   VERIFY( density[5] == RealType(2.0 / 8.0) );
+ }
+ 
+ template<typename InputType, typename DistType = InputType>
+ void
+ test_precision_depended()
+ {
+   constexpr bool preserved
+ #ifdef _GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS
+     = sizeof(InputType) <= sizeof(double);
+ #elifdef _GLIBCXX_USE_RESULT_TYPE_FOR_PIECEWISE_DENSITIES
+     = sizeof(InputType) <= sizeof(DistType);
+ #else
+     // input is converted to DistType and stored in double
+     = (sizeof(InputType) <= sizeof(DistType))
+       && (sizeof(InputType) <= sizeof(double));
+ #endif
+ 
+   std::initializer_list<DistType> x{0.0, 0.5, 1.0};
+   constexpr InputType step
+     = std::numeric_limits<InputType>::epsilon() * 2;
+   InputType wt[3]{InputType(1) - step, InputType(1), InputType(1) + step};
+ 
+   using Distribution = std::piecewise_linear_distribution<DistType>;
+   auto validate = [&wt](const Distribution& dist)
+   {
+     const std::vector<DistType>& interval = dist.intervals();
+     VERIFY( interval.size() == 3 );
+     VERIFY( interval[0] == DistType(0.0) );
+     VERIFY( interval[2] == DistType(1.0) );
+ 
+ #ifdef _GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS
+     const std::vector<double>& density = dist.densities();
+ #else
+     const std::vector<DistType>& density = dist.densities();
+ #endif
+ 
+     VERIFY( density.size() == 3 );
+     VERIFY( density[0] == (preserved ? wt[0] : InputType(1)) );
+     VERIFY( density[1] == InputType(1) );
+     VERIFY( density[2] == (preserved ? wt[2] : InputType(1)) );
+   };
+ 
+   Distribution from_iter(x.begin(), x.end(), wt);
+   validate(from_iter);
+ 
+   auto wf = [&wt](DistType v)
+   { return wt[int(v / 0.5)]; };
+ 
+   Distribution from_init_list(x, wf);
+   validate(from_init_list);
+ 
+ #ifndef _GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS
+   // PR125548 leads to incorrect densities being used
+   Distribution from_count(2, InputType(0), InputType(1), wf);
+   validate(from_count);
+ #endif
+ }
+ 
+ template<typename RealType, typename URBG = std::mt19937>
+ void
+ test_engine_calls()
+ {
+   constexpr std::size_t bits = __builtin_popcountg(URBG::max() - URBG::min());
+   constexpr std::size_t calls
+ #ifdef _GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS
+     = (std::numeric_limits<double>::digits + bits - 1) / bits;
+ #else
+     = (std::numeric_limits<RealType>::digits + bits - 1) / bits;
+ #endif
+ 
+   struct wrapper : URBG
+   {
+     typename URBG::result_type operator()()
+     {
+       ++num_calls;
+       return URBG::operator()();
+     }
+     std::size_t num_calls = 0;
+   };
+ 
+   wrapper eng;
+   std::piecewise_linear_distribution<RealType> u;
+   u(eng);
+   VERIFY(eng.num_calls == calls);
+ }
+ 
+ int main()
+ {
+   using namespace __gnu_test;
+   test_exact<float>();
+   test_exact<double>();
+   test_exact<long double>();
+ 
+   test_precision_depended<float>();
+   test_precision_depended<double>();
+   test_precision_depended<long double>();
+ 
+   test_precision_depended<double, float>();
+   test_precision_depended<long double, float>();
+   test_precision_depended<long double, double>();
+ 
+   test_engine_calls<float>();
+   test_engine_calls<double>();
+   test_engine_calls<long double>();
+   return 0;
+ }
diff -Nrcpad gcc-17-20260712/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/accessors_exact.cc gcc-17-20260719/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/accessors_exact.cc
*** gcc-17-20260712/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/accessors_exact.cc	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/accessors_exact.cc	Sun Jul 19 22:32:19 2026
***************
*** 0 ****
--- 1,5 ----
+ // { dg-options "-D_GLIBCXX_USE_RESULT_TYPE_FOR_PIECEWISE_DENSITIES" }
+ // { dg-do run { target c++11 } }
+ // { dg-require-cstdint "" }
+ #include "accessors.cc"
+ 
diff -Nrcpad gcc-17-20260712/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/accessors_fallback.cc gcc-17-20260719/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/accessors_fallback.cc
*** gcc-17-20260712/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/accessors_fallback.cc	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/accessors_fallback.cc	Sun Jul 19 22:32:19 2026
***************
*** 0 ****
--- 1,5 ----
+ // { dg-options "-D_GLIBCXX_USE_OLD_PIECEWISE_DISTRIBUTIONS" }
+ // { dg-do run { target c++11 } }
+ // { dg-require-cstdint "" }
+ #include "accessors.cc"
+ 
diff -Nrcpad gcc-17-20260712/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/serialize2.cc gcc-17-20260719/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/serialize2.cc
*** gcc-17-20260712/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/serialize2.cc	Sun Jul 12 22:32:20 2026
--- gcc-17-20260719/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/serialize2.cc	Sun Jul 19 22:32:19 2026
*************** test_default()
*** 24,30 ****
  
    if (!std::numeric_limits<RealType>::is_iec559)
      return;
!  
    char const* expected = nullptr;
    switch (std::numeric_limits<RealType>::digits)
    {
--- 24,30 ----
  
    if (!std::numeric_limits<RealType>::is_iec559)
      return;
! 
    char const* expected = nullptr;
    switch (std::numeric_limits<RealType>::digits)
    {
*************** test_default()
*** 40,46 ****
         " 1.00000000000000000e+00 1.00000000000000000e+00";
      VERIFY( res == expected );
      break;
!   case 64: // ieee80 
      expected =
        "1 0.000000000000000000000e+00 1.000000000000000000000e+00"
         " 1.000000000000000000000e+00 1.000000000000000000000e+00";
--- 40,46 ----
         " 1.00000000000000000e+00 1.00000000000000000e+00";
      VERIFY( res == expected );
      break;
!   case 64: // ieee80
      expected =
        "1 0.000000000000000000000e+00 1.000000000000000000000e+00"
         " 1.000000000000000000000e+00 1.000000000000000000000e+00";
*************** test_custom()
*** 63,69 ****
    str << u;
    std::string res = str.str();
  
!   std::piecewise_constant_distribution<RealType> v;
    str >> v;
    // This does not hold currently
    // VERIFY( u == v );
--- 63,69 ----
    str << u;
    std::string res = str.str();
  
!   std::piecewise_linear_distribution<RealType> v;
    str >> v;
    // This does not hold currently
    // VERIFY( u == v );
*************** test_custom()
*** 77,95 ****
    case 24: // ieee32
      expected =
        "3 0.000000000e+00 3.333333433e-01 6.666666865e-01 1.000000000e+00"
! 	" 7.272727292e-01 9.090909278e-01 1.090909061e+00 1.272727325e+00";
      VERIFY( res == expected );
      break;
    case 53: // ieee64
      expected =
!       "3 0.00000000000000000e+00 3.33333333333333315e-01 6.66666666666666630e-01 1.00000000000000000e+00" 
! 	" 7.27272727272727182e-01 9.09090909090908950e-01 1.09090909090909083e+00 1.27272727272727249e+00";
      VERIFY( res == expected );
      break;
!   case 64: // ieee80 
      expected =
        "3 0.000000000000000000000e+00 3.333333333333333333424e-01 6.666666666666666666847e-01 1.000000000000000000000e+00"
! 	" 7.272727272727271818908e-01 9.090909090909090606303e-01 1.090909090909090828347e+00 1.272727272727272707087e+00";
      VERIFY( res == expected );
      break;
    default:
--- 77,95 ----
    case 24: // ieee32
      expected =
        "3 0.000000000e+00 3.333333433e-01 6.666666865e-01 1.000000000e+00"
! 	" 6.666666865e-01 8.888888955e-01 1.111111164e+00 1.333333373e+00";
      VERIFY( res == expected );
      break;
    case 53: // ieee64
      expected =
!       "3 0.00000000000000000e+00 3.33333333333333315e-01 6.66666666666666630e-01 1.00000000000000000e+00"
! 	" 6.66666666666666630e-01 8.88888888888888840e-01 1.11111111111111094e+00 1.33333333333333326e+00";
      VERIFY( res == expected );
      break;
!   case 64: // ieee80
      expected =
        "3 0.000000000000000000000e+00 3.333333333333333333424e-01 6.666666666666666666847e-01 1.000000000000000000000e+00"
! 	" 6.666666666666666296592e-01 8.888888888888888395456e-01 1.111111111111111160454e+00 1.333333333333333259318e+00";
      VERIFY( res == expected );
      break;
    default:
*************** int main()
*** 103,112 ****
    test_default<double>();
    test_default<long double>();
  
! #ifdef __x86_64__
    test_custom<float>();
    test_custom<double>();
! #endif  
    test_custom<long double>();
    return 0;
  }
--- 103,117 ----
    test_default<double>();
    test_default<long double>();
  
! #if __FLT_EVAL_METHOD__ >= 0
! # if __FLT_EVAL_METHOD__ == 0
    test_custom<float>();
+ # endif
+ # if __FLT_EVAL_METHOD__ != 2
    test_custom<double>();
! # endif
    test_custom<long double>();
+ #endif
+ 
    return 0;
  }
diff -Nrcpad gcc-17-20260712/libstdc++-v3/testsuite/special_functions/11_ellint_1/check_inf.cc gcc-17-20260719/libstdc++-v3/testsuite/special_functions/11_ellint_1/check_inf.cc
*** gcc-17-20260712/libstdc++-v3/testsuite/special_functions/11_ellint_1/check_inf.cc	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/libstdc++-v3/testsuite/special_functions/11_ellint_1/check_inf.cc	Sun Jul 19 22:32:20 2026
***************
*** 0 ****
--- 1,64 ----
+ // { dg-do run { target c++17 } }
+ // { dg-options "-D__STDCPP_WANT_MATH_SPEC_FUNCS__" }
+ 
+ // 8.1.11 ellint_1 - non-finite phi must not produce UB
+ 
+ #include <cmath>
+ #include <limits>
+ #include <stdexcept>
+ #include <testsuite_hooks.h>
+ 
+ void
+ test01()
+ {
+   // +infinity phi should throw domain_error, not loop forever.
+   bool caught = false;
+   try
+     {
+       (void) std::ellint_1f(0.5F, std::numeric_limits<float>::infinity());
+     }
+   catch (const std::domain_error&)
+     {
+       caught = true;
+     }
+   VERIFY(caught);
+ }
+ 
+ void
+ test02()
+ {
+   bool caught = false;
+   try
+     {
+       (void) std::ellint_1(0.5, std::numeric_limits<double>::infinity());
+     }
+   catch (const std::domain_error&)
+     {
+       caught = true;
+     }
+   VERIFY(caught);
+ }
+ 
+ void
+ test03()
+ {
+   bool caught = false;
+   try
+     {
+       (void) std::ellint_1l(0.5L, std::numeric_limits<long double>::infinity());
+     }
+   catch (const std::domain_error&)
+     {
+       caught = true;
+     }
+   VERIFY(caught);
+ }
+ 
+ int
+ main()
+ {
+   test01();
+   test02();
+   test03();
+   return 0;
+ }
diff -Nrcpad gcc-17-20260712/libstdc++-v3/testsuite/special_functions/12_ellint_2/check_inf.cc gcc-17-20260719/libstdc++-v3/testsuite/special_functions/12_ellint_2/check_inf.cc
*** gcc-17-20260712/libstdc++-v3/testsuite/special_functions/12_ellint_2/check_inf.cc	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/libstdc++-v3/testsuite/special_functions/12_ellint_2/check_inf.cc	Sun Jul 19 22:32:20 2026
***************
*** 0 ****
--- 1,63 ----
+ // { dg-do run { target c++17 } }
+ // { dg-options "-D__STDCPP_WANT_MATH_SPEC_FUNCS__" }
+ 
+ // 8.1.12 ellint_2 - non-finite phi must not produce UB
+ 
+ #include <cmath>
+ #include <limits>
+ #include <stdexcept>
+ #include <testsuite_hooks.h>
+ 
+ void
+ test01()
+ {
+   bool caught = false;
+   try
+     {
+       (void) std::ellint_2f(0.5F, std::numeric_limits<float>::infinity());
+     }
+   catch (const std::domain_error&)
+     {
+       caught = true;
+     }
+   VERIFY(caught);
+ }
+ 
+ void
+ test02()
+ {
+   bool caught = false;
+   try
+     {
+       (void) std::ellint_2(0.5, std::numeric_limits<double>::infinity());
+     }
+   catch (const std::domain_error&)
+     {
+       caught = true;
+     }
+   VERIFY(caught);
+ }
+ 
+ void
+ test03()
+ {
+   bool caught = false;
+   try
+     {
+       (void) std::ellint_2l(0.5L, std::numeric_limits<long double>::infinity());
+     }
+   catch (const std::domain_error&)
+     {
+       caught = true;
+     }
+   VERIFY(caught);
+ }
+ 
+ int
+ main()
+ {
+   test01();
+   test02();
+   test03();
+   return 0;
+ }
diff -Nrcpad gcc-17-20260712/libstdc++-v3/testsuite/special_functions/13_ellint_3/check_inf.cc gcc-17-20260719/libstdc++-v3/testsuite/special_functions/13_ellint_3/check_inf.cc
*** gcc-17-20260712/libstdc++-v3/testsuite/special_functions/13_ellint_3/check_inf.cc	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/libstdc++-v3/testsuite/special_functions/13_ellint_3/check_inf.cc	Sun Jul 19 22:32:20 2026
***************
*** 0 ****
--- 1,64 ----
+ // { dg-do run { target c++17 } }
+ // { dg-options "-D__STDCPP_WANT_MATH_SPEC_FUNCS__" }
+ 
+ // 8.1.13 ellint_3 - non-finite phi must not produce UB
+ 
+ #include <cmath>
+ #include <limits>
+ #include <stdexcept>
+ #include <testsuite_hooks.h>
+ 
+ void
+ test01()
+ {
+   bool caught = false;
+   try
+     {
+       (void) std::ellint_3f(0.5F, 0.5F, std::numeric_limits<float>::infinity());
+     }
+   catch (const std::domain_error&)
+     {
+       caught = true;
+     }
+   VERIFY(caught);
+ }
+ 
+ void
+ test02()
+ {
+   bool caught = false;
+   try
+     {
+       (void) std::ellint_3(0.5, 0.5, std::numeric_limits<double>::infinity());
+     }
+   catch (const std::domain_error&)
+     {
+       caught = true;
+     }
+   VERIFY(caught);
+ }
+ 
+ void
+ test03()
+ {
+   bool caught = false;
+   try
+     {
+       (void) std::ellint_3l(0.5L, 0.5L,
+ 			    std::numeric_limits<long double>::infinity());
+     }
+   catch (const std::domain_error&)
+     {
+       caught = true;
+     }
+   VERIFY(caught);
+ }
+ 
+ int
+ main()
+ {
+   test01();
+   test02();
+   test03();
+   return 0;
+ }
diff -Nrcpad gcc-17-20260712/libstdc++-v3/testsuite/std/format/lwg3975.cc gcc-17-20260719/libstdc++-v3/testsuite/std/format/lwg3975.cc
*** gcc-17-20260712/libstdc++-v3/testsuite/std/format/lwg3975.cc	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/libstdc++-v3/testsuite/std/format/lwg3975.cc	Sun Jul 19 22:32:20 2026
***************
*** 0 ****
--- 1,18 ----
+ // { dg-do compile { target c++20 } }
+ 
+ // LWG 3975. Specializations of basic_format_context should not be permitted
+ 
+ #include <format>
+ 
+ struct A {};
+ template<typename T>
+ struct B {};
+ 
+ template<>
+ class std::basic_format_parse_context<A> {};	// { dg-error "cannot be specialized" }
+ 
+ template<>
+ class std::basic_format_context<std::back_insert_iterator<std::string>, A> {};	// { dg-error "cannot be specialized" }
+ 
+ template<typename T>
+ class std::basic_format_context<B<T>, T> {};	// { dg-error "cannot be specialized" }
diff -Nrcpad gcc-17-20260712/libstdc++-v3/testsuite/std/memory/indirect/specialization.cc gcc-17-20260719/libstdc++-v3/testsuite/std/memory/indirect/specialization.cc
*** gcc-17-20260712/libstdc++-v3/testsuite/std/memory/indirect/specialization.cc	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/libstdc++-v3/testsuite/std/memory/indirect/specialization.cc	Sun Jul 19 22:32:20 2026
***************
*** 0 ****
--- 1,13 ----
+ // { dg-do compile { target c++26 } }
+ 
+ #include <memory>
+ 
+ struct A {};
+ template<typename T>
+ struct B {};
+ 
+ template<>
+ class std::indirect<A, std::pmr::polymorphic_allocator <A>> {};		// { dg-error "cannot be specialized" }
+ 
+ template<typename T>
+ class std::indirect<B<T>, std::pmr::polymorphic_allocator <B<T>>> {};	// { dg-error "cannot be specialized" }
diff -Nrcpad gcc-17-20260712/libstdc++-v3/testsuite/std/memory/polymorphic/specialization.cc gcc-17-20260719/libstdc++-v3/testsuite/std/memory/polymorphic/specialization.cc
*** gcc-17-20260712/libstdc++-v3/testsuite/std/memory/polymorphic/specialization.cc	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/libstdc++-v3/testsuite/std/memory/polymorphic/specialization.cc	Sun Jul 19 22:32:20 2026
***************
*** 0 ****
--- 1,13 ----
+ // { dg-do compile { target c++26 } }
+ 
+ #include <memory>
+ 
+ struct A {};
+ template<typename T>
+ struct B {};
+ 
+ template<>
+ class std::polymorphic<A, std::pmr::polymorphic_allocator <A>> {};		// { dg-error "cannot be specialized" }
+ 
+ template<typename T>
+ class std::polymorphic<B<T>, std::pmr::polymorphic_allocator <B<T>>> {};	// { dg-error "cannot be specialized" }
diff -Nrcpad gcc-17-20260712/libstdc++-v3/testsuite/std/time/time_zone/116110.cc gcc-17-20260719/libstdc++-v3/testsuite/std/time/time_zone/116110.cc
*** gcc-17-20260712/libstdc++-v3/testsuite/std/time/time_zone/116110.cc	Sun Jul 12 22:32:21 2026
--- gcc-17-20260719/libstdc++-v3/testsuite/std/time/time_zone/116110.cc	Sun Jul 19 22:32:20 2026
*************** test_apia()
*** 65,72 ****
    auto* tz = locate_zone("Pacific/Apia");
    local_seconds t = local_days(2011y/December/29) + 24h;
  
!   // FIXME: this should be + 10h but we do not account for DST yet, so + 11h.
!   sys_seconds ut(t.time_since_epoch() + 11h );
    sys_info info;
    info = tz->get_info(ut - 1s);
    VERIFY( info.offset == (-11h + info.save) );
--- 65,72 ----
    auto* tz = locate_zone("Pacific/Apia");
    local_seconds t = local_days(2011y/December/29) + 24h;
  
!   // The wall UNTIL is interpreted in the prior offset (-11h + 1h)
!   sys_seconds ut(t.time_since_epoch() + 10h);
    sys_info info;
    info = tz->get_info(ut - 1s);
    VERIFY( info.offset == (-11h + info.save) );
diff -Nrcpad gcc-17-20260712/libstdc++-v3/testsuite/std/time/time_zone/pr116110_named.cc gcc-17-20260719/libstdc++-v3/testsuite/std/time/time_zone/pr116110_named.cc
*** gcc-17-20260712/libstdc++-v3/testsuite/std/time/time_zone/pr116110_named.cc	Thu Jan  1 00:00:00 1970
--- gcc-17-20260719/libstdc++-v3/testsuite/std/time/time_zone/pr116110_named.cc	Sun Jul 19 22:32:20 2026
***************
*** 0 ****
--- 1,74 ----
+ // { dg-do run { target c++20 } }
+ // { dg-require-effective-target tzdb }
+ // { dg-require-effective-target cxx11_abi }
+ // { dg-xfail-run-if "no weak override on AIX" { powerpc-ibm-aix* } }
+ 
+ // Africa/Algiers 1977-10-21: a Zone line whose RULES references a
+ // named Rule and whose UNTIL is a wall-time expression.  The wall
+ // UNTIL is interpreted using the SAVE value in force just before the
+ // boundary (the May-6 rule's save=1, not the Oct-21 rule's save=0
+ // even though the Oct-21 rule fires at the same wall instant).
+ //
+ //   Rule d 1977 May  6 0:00 wall  save=1
+ //   Rule d 1977 Oct 21 0:00 wall  save=0
+ //   Z A    0 d WE%sT 1977 O 21
+ //          1 d CE%sT
+ 
+ #include <chrono>
+ #include <fstream>
+ #include <testsuite_hooks.h>
+ 
+ static bool override_used = false;
+ 
+ namespace __gnu_cxx
+ {
+   const char* zoneinfo_dir_override() {
+     override_used = true;
+     return "./";
+   }
+ }
+ 
+ int
+ main()
+ {
+   using namespace std::chrono;
+ 
+   std::ofstream("tzdata.zi") << R"(# version test_pr116110_named
+ R d 1977 o - May  6 0 1 S
+ R d 1977 o - O   21 0 0 -
+ Z Test/Algiers 0 d WE%sT 1977 O 21
+                1 d CE%sT
+ )";
+ 
+   const auto& db = reload_tzdb();
+   VERIFY( override_used );
+   VERIFY( db.version == "test_pr116110_named" );
+ 
+   auto* tz = locate_zone("Test/Algiers");
+ 
+   // Just before the boundary: still in the first Zone line under
+   // the May-6 rule (save=1, WEST, total +1).
+   auto pre = tz->get_info(sys_days{1977y/October/20} + 22h);
+   VERIFY( pre.offset == 1h );
+   VERIFY( pre.save == 1h );
+   VERIFY( pre.abbrev == "WEST" );
+ 
+   // The boundary is Oct 20 23:00 UTC (= wall 00:00 - stdoff(0) - save(1)).
+   // At and after the boundary we are in the second line (CET).
+   auto at = tz->get_info(sys_days{1977y/October/20} + 23h);
+   VERIFY( at.offset == 1h );    // stdoff 1 + save 0 (CET, second line)
+   VERIFY( at.save == 0min );
+   VERIFY( at.abbrev == "CET" );
+ 
+   // A second query inside the second line, well clear of the boundary.
+   auto after = tz->get_info(sys_days{1977y/October/21} + 12h);
+   VERIFY( after.offset == 1h );
+   VERIFY( after.save == 0min );
+   VERIFY( after.abbrev == "CET" );
+ 
+   // A query inside the [Oct 20 23:00, Oct 21 00:00] UTC window must be
+   // in the second line, not in a leftover stretch from the first line.
+   auto window = tz->get_info(sys_days{1977y/October/20} + 23h + 30min);
+   VERIFY( window.offset == 1h );
+   VERIFY( window.abbrev == "CET" );
+ }
diff -Nrcpad gcc-17-20260712/libstdc++-v3/testsuite/std/time/time_zone/wall_cascade.cc gcc-17-20260719/libstdc++-v3/testsuite/std/time/time_zone/wall_cascade.cc
*** gcc-17-20260712/libstdc++-v3/testsuite/std/time/time_zone/wall_cascade.cc	Sun Jul 12 22:32:21 2026
--- gcc-17-20260719/libstdc++-v3/testsuite/std/time/time_zone/wall_cascade.cc	Sun Jul 19 22:32:20 2026
*************** test_negative()
*** 76,86 ****
    // running save.
    //
    // Two-line zone whose second line begins at 1945 Sep 16 01:00 UT,
!   // at the cascaded firing time (Sep 16 01:00 UT), but after
    // non-cascaded firing time (Sep 16 00:00 UT) of the September rule.
    // The seeding must pick the April rule (save=-2, CEST) at info.begin.
    std::ofstream("tzdata.zi") << R"(# version test_negative_cascade
! R Fr 1945 o - Apr 2  2 -2 M
  R Fr 1945 o - Sep 16 0 0 -
  Z Test/Negative 0  -  X     1945 Sep 16 1u
               1  Fr CE%sT
--- 76,86 ----
    // running save.
    //
    // Two-line zone whose second line begins at 1945 Sep 16 01:00 UT,
!   // before the cascaded firing time (Sep 16 02:00 UT), but after
    // non-cascaded firing time (Sep 16 00:00 UT) of the September rule.
    // The seeding must pick the April rule (save=-2, CEST) at info.begin.
    std::ofstream("tzdata.zi") << R"(# version test_negative_cascade
! R Fr 1945 o - Apr 2  2 -3 M
  R Fr 1945 o - Sep 16 0 0 -
  Z Test/Negative 0  -  X     1945 Sep 16 1u
               1  Fr CE%sT
*************** Z Test/Negative 0  -  X     1945 Sep 16
*** 96,110 ****
    // one second after.
    auto info = tz->get_info(sys_seconds{
        sys_days(1945y/September/16) + 1h + 1s});
!   VERIFY( info.offset == -1h );
!   VERIFY( info.save == -2h );
    VERIFY( info.abbrev == "CEMT" );
  
    // The boundary instant.
    auto at_boundary
      = tz->get_info(sys_seconds{sys_days(1945y/September/16) + 1h});
!   VERIFY( at_boundary.offset == -1h );
!   VERIFY( at_boundary.save == -2h );
  }
  
  void
--- 96,119 ----
    // one second after.
    auto info = tz->get_info(sys_seconds{
        sys_days(1945y/September/16) + 1h + 1s});
!   VERIFY( info.offset == -2h );
!   VERIFY( info.save == -3h );
    VERIFY( info.abbrev == "CEMT" );
  
    // The boundary instant.
    auto at_boundary
      = tz->get_info(sys_seconds{sys_days(1945y/September/16) + 1h});
!   VERIFY( at_boundary.offset == -2h );
!   VERIFY( at_boundary.save == -3h );
! 
!   // Test the firing of Sep 16 rule
!   auto at_sep_rule = tz->get_info(sys_seconds{
!     sys_days(1945y/September/16) + 2h});
!   // The transition_window < 1d condition triggers, and
!   // transition is ignored.
!   // VERIFY( at_sep_rule.offset == 1h );
!   // VERIFY( at_sep_rule.save == 0h );
!   // VERIFY( at_sep_rule.abbrev == "CET" );
  }
  
  void
*************** Z Test/EarielYear 11:39:4 - LMT 1868 N 2
*** 222,227 ****
--- 231,266 ----
    VERIFY( at_boundary.abbrev == "EYMT" );
  }
  
+ void
+ test_at_boundary()
+ {
+   std::ofstream("tzdata.zi") << R"(# version test_at_boundary
+ R p 1947 1966 - Ap Su>=1 2s 1 S
+ R p 1947 1965 - O Su>=1 2s 0 -
+ R p 1976 o - S lastSu 1 0 -
+ R p 1977 o - Mar lastSu 0s 1 S
+ R p 1977 o - S lastSu 0s 0 -
+ Z Europe/Lisbon -0:36:45 - LMT 1884
+ 1 - CET 1976 S 26 1
+ 0 p WE%sT 1986
+    )";
+ 
+   const auto& db = reload_tzdb();
+   VERIFY( override_used ); // If this fails then XFAIL for the target.
+   VERIFY( db.version == "test_at_boundary" );
+ 
+   // The change from CET to WE%sT line happens 1976 Sep 26 00:00:00 UT,
+   // should take into consideration 1976 lastSu rule that fires at the
+   // same time (running save is 1h from 1966 Ap rule application),
+   // and start in standard time (WET period).
+   auto* utz = locate_zone("Europe/Lisbon");
+   auto at_boundary
+     = utz->get_info(sys_seconds{sys_days(1976y/September/26) + 0h});
+   VERIFY( at_boundary.offset == 0h );
+   VERIFY( at_boundary.save == 0min );
+   VERIFY( at_boundary.abbrev == "WET" );
+ }
+ 
  int
  main()
  {
*************** main()
*** 230,233 ****
--- 269,273 ----
    test_next_year();
    test_prev_year();
    test_earlier_year();
+   test_at_boundary();
  }
