diff -Nrcpad gcc-16-20260208/LAST_UPDATED gcc-16-20260215/LAST_UPDATED
*** gcc-16-20260208/LAST_UPDATED	Sun Feb  8 22:32:21 2026
--- gcc-16-20260215/LAST_UPDATED	Sun Feb 15 22:32:19 2026
***************
*** 1 ****
! Obtained from git: master revision df7f52b3a4ca00b64baf31c57c506fe3afe51c9f
--- 1 ----
! Obtained from git: master revision 0a48b1fe9866556ce41295d1e3b739c608ea5f22
diff -Nrcpad gcc-16-20260208/MD5SUMS gcc-16-20260215/MD5SUMS
*** gcc-16-20260208/MD5SUMS	Sun Feb  8 22:32:26 2026
--- gcc-16-20260215/MD5SUMS	Sun Feb 15 22:32:24 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-16-20260208.tar.xz tarball.
  #
  # Besides verifying that all files in the tarball were correctly expanded,
  # it also can be used to determine if any files have changed since the
--- 1,5 ----
  # This file contains the MD5 checksums of the files in the
! # gcc-16-20260215.tar.xz tarball.
  #
  # Besides verifying that all files in the tarball were correctly expanded,
  # it also can be used to determine if any files have changed since the
*************** d32239bcb673463ab874e80d47fae504  COPYIN
*** 28,34 ****
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! eaa2d546236e66cc8f9d5e549a8c47b0  LAST_UPDATED
  b8fa044b3336d9cc6214e6ff3e9b467d  MAINTAINERS
  af43617880b3cd9c10627c97e639d29e  Makefile.def
  734342371d8ccc2c81cb2d8b3d040f33  Makefile.in
--- 28,34 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! f9b0efeb4319775c5485e44b7f7962af  LAST_UPDATED
  b8fa044b3336d9cc6214e6ff3e9b467d  MAINTAINERS
  af43617880b3cd9c10627c97e639d29e  Makefile.def
  734342371d8ccc2c81cb2d8b3d040f33  Makefile.in
*************** b6ffc204128adbd2c41ac0cb4ce98dc7  fixinc
*** 391,403 ****
  77fbad4fc8ec7be3578d045d003446ec  fixincludes/fixinc.in
  8ca216a7024876b7eb9b8abc30a30775  fixincludes/fixincl.c
  7f0fed08dfa61ea12896569a2a5375d1  fixincludes/fixincl.tpl
! 4be725bece81f58a69bd3311e845e772  fixincludes/fixincl.x
  545875b4fe1c26bc3e1befc75b34e9f5  fixincludes/fixlib.c
  620c770139fc32c75b975b614d3156e8  fixincludes/fixlib.h
  5b2c1fd3ef9d44fb6beb1a0d45ddd533  fixincludes/fixopts.c
  ed1415e9dbc8f421fd9288bde0d90ad1  fixincludes/fixtests.c
  51e915676df084b64297d3c4fb0d9c18  fixincludes/genfixes
! fb647be3c15ac9279c891ec100128299  fixincludes/inclhack.def
  d820d7184883bda7dd809406f0626d8e  fixincludes/mkfixinc.sh
  516608ac1550577d47f48809bb512629  fixincludes/mkheaders.in
  3aa0563cd682ee61ecd9eb6eea0b0bce  fixincludes/procopen.c
--- 391,403 ----
  77fbad4fc8ec7be3578d045d003446ec  fixincludes/fixinc.in
  8ca216a7024876b7eb9b8abc30a30775  fixincludes/fixincl.c
  7f0fed08dfa61ea12896569a2a5375d1  fixincludes/fixincl.tpl
! 29056a389be8fc8500fbef580f62b505  fixincludes/fixincl.x
  545875b4fe1c26bc3e1befc75b34e9f5  fixincludes/fixlib.c
  620c770139fc32c75b975b614d3156e8  fixincludes/fixlib.h
  5b2c1fd3ef9d44fb6beb1a0d45ddd533  fixincludes/fixopts.c
  ed1415e9dbc8f421fd9288bde0d90ad1  fixincludes/fixtests.c
  51e915676df084b64297d3c4fb0d9c18  fixincludes/genfixes
! d0f85be43d3d248a368dd59492f134ea  fixincludes/inclhack.def
  d820d7184883bda7dd809406f0626d8e  fixincludes/mkfixinc.sh
  516608ac1550577d47f48809bb512629  fixincludes/mkheaders.in
  3aa0563cd682ee61ecd9eb6eea0b0bce  fixincludes/procopen.c
*************** ca4183dcf93fc8b7e83160156d39aa64  fixinc
*** 494,499 ****
--- 494,500 ----
  a3052acaa27f90b72ec0e0743adc7189  fixincludes/tests/base/sys/file.h
  be62cf06b596ac0593d2d45d24eebf59  fixincludes/tests/base/sys/int_const.h
  62462d7161384367ed5d0edcb8282915  fixincludes/tests/base/sys/int_limits.h
+ 21f944e480c90c1094e51ff417f3a8be  fixincludes/tests/base/sys/int_types.h
  7466bd485c76b7609644d0df814eaf39  fixincludes/tests/base/sys/inttypes.h
  cd61846311e14917693160c5e60ad2cd  fixincludes/tests/base/sys/machine.h
  d669f7372e28cb610f59526574b4c70a  fixincludes/tests/base/sys/mman.h
*************** f15bc3c5de22eac0bdd4f611502139a0  gcc/AB
*** 520,526 ****
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 6d56f190687e488e3ae720164635727b  gcc/ChangeLog
  51281e73aa07fb62394bd72f3c9299ba  gcc/ChangeLog-1997
  f77af8c9ac412064886b00c5506123b5  gcc/ChangeLog-1998
  00a2e4ead1b289bf69bca0196fed6f9f  gcc/ChangeLog-1999
--- 521,527 ----
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! c78bb8d3dde65133c4f5b135eb4a5b73  gcc/ChangeLog
  51281e73aa07fb62394bd72f3c9299ba  gcc/ChangeLog-1997
  f77af8c9ac412064886b00c5506123b5  gcc/ChangeLog-1998
  00a2e4ead1b289bf69bca0196fed6f9f  gcc/ChangeLog-1999
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 558,576 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 10db6de51241b443d6ab0c3bbedfbb0a  gcc/DATESTAMP
  deb513e591f23901188e22323bd3b1d4  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
  36698274bb69e2ada20f5cc434f3caa5  gcc/FSFChangeLog.11
  a817c5577f2b35f8d2481c787e3ff7e2  gcc/LANGUAGES
! 6e078f7e2aab9137989205977e7a229b  gcc/Makefile.in
  ec6799501b2eb2923d5de6a66169dbd2  gcc/ONEWS
  c8c9dd1eaee4ffd4d5d9f3ab70fddd4b  gcc/README.Portability
! 78a1f6269690344ab8283aef47b01988  gcc/acinclude.m4
  e74733ebf762151e601c9e0aa1461a20  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 588fde6e22491809566ee15d9dd0572c  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
--- 559,577 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 4b11673a6eb7d3c4f5b923d7ca164560  gcc/DATESTAMP
  deb513e591f23901188e22323bd3b1d4  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
  36698274bb69e2ada20f5cc434f3caa5  gcc/FSFChangeLog.11
  a817c5577f2b35f8d2481c787e3ff7e2  gcc/LANGUAGES
! e69c05d067f0c4c339f8907144d6148e  gcc/Makefile.in
  ec6799501b2eb2923d5de6a66169dbd2  gcc/ONEWS
  c8c9dd1eaee4ffd4d5d9f3ab70fddd4b  gcc/README.Portability
! 270ba6dfb4ecba066773fe20f2dc0053  gcc/acinclude.m4
  e74733ebf762151e601c9e0aa1461a20  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! a6eb917d729f5762340c30035ca98685  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
*************** a012e0cb5df366014b5a4988036a509a  gcc/ad
*** 688,694 ****
  8f67d65eb672f872ed633d85991d9137  gcc/ada/doc/gnat_rm/gnat_language_extensions.rst
  d18255d01b647c97e7cf2cbd3225f90d  gcc/ada/doc/gnat_rm/implementation_advice.rst
  4f7bb8fec58a615cfdd25754812dbe70  gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst
! c55a19bbeeb785d65521625c0e52b112  gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst
  841d2d7d08c02898708fc688f180e10f  gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst
  7521a9c7898f9cdc3b74c7df8d21d2c2  gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst
  2b18b890b4196b0879f85e1592b9f5bf  gcc/ada/doc/gnat_rm/implementation_of_ada_2022_features.rst
--- 689,695 ----
  8f67d65eb672f872ed633d85991d9137  gcc/ada/doc/gnat_rm/gnat_language_extensions.rst
  d18255d01b647c97e7cf2cbd3225f90d  gcc/ada/doc/gnat_rm/implementation_advice.rst
  4f7bb8fec58a615cfdd25754812dbe70  gcc/ada/doc/gnat_rm/implementation_defined_aspects.rst
! 6a1c79967060865c8310697a857de11b  gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst
  841d2d7d08c02898708fc688f180e10f  gcc/ada/doc/gnat_rm/implementation_defined_characteristics.rst
  7521a9c7898f9cdc3b74c7df8d21d2c2  gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst
  2b18b890b4196b0879f85e1592b9f5bf  gcc/ada/doc/gnat_rm/implementation_of_ada_2022_features.rst
*************** adb49f37416fce62d5759f9b4c733fe6  gcc/ad
*** 755,761 ****
  8d6933ec0ee945c50b4e8c114b1221b6  gcc/ada/exp_aggr.ads
  045a2ef4e4932ea2c0b17910db37af46  gcc/ada/exp_atag.adb
  2a027dfad5944cc346ee7c94c022d302  gcc/ada/exp_atag.ads
! f9c5ed54f741ddb9078acec57b4ac558  gcc/ada/exp_attr.adb
  4b748ed1db282b666860ed488c4ff28d  gcc/ada/exp_attr.ads
  cda4ccedf4fc1e7d7dbe6864ee5bf8ad  gcc/ada/exp_cg.adb
  a188d43ef2eb5780d4b7f98731302640  gcc/ada/exp_cg.ads
--- 756,762 ----
  8d6933ec0ee945c50b4e8c114b1221b6  gcc/ada/exp_aggr.ads
  045a2ef4e4932ea2c0b17910db37af46  gcc/ada/exp_atag.adb
  2a027dfad5944cc346ee7c94c022d302  gcc/ada/exp_atag.ads
! 5d68882641f26f3c6c75a393e2cc283f  gcc/ada/exp_attr.adb
  4b748ed1db282b666860ed488c4ff28d  gcc/ada/exp_attr.ads
  cda4ccedf4fc1e7d7dbe6864ee5bf8ad  gcc/ada/exp_cg.adb
  a188d43ef2eb5780d4b7f98731302640  gcc/ada/exp_cg.ads
*************** b8cb3b82f2a68b211875181376e0de4b  gcc/ad
*** 780,786 ****
  0328c88aa1134f7af3891cb24a0b27c8  gcc/ada/exp_ch7.ads
  122a5cde9816de02c7f37bcdf2de229f  gcc/ada/exp_ch8.adb
  9955bf7551ef5f537f9031c59fb73db8  gcc/ada/exp_ch8.ads
! 6dddf1d265f15c239e32696c9327364d  gcc/ada/exp_ch9.adb
  d5bed31d915c80f427741d1175ba335a  gcc/ada/exp_ch9.ads
  914abafc66aba1c22bfd983c48ee2d6a  gcc/ada/exp_code.adb
  8be63e29d5aeaf0a16ff7b4dc746e1a4  gcc/ada/exp_code.ads
--- 781,787 ----
  0328c88aa1134f7af3891cb24a0b27c8  gcc/ada/exp_ch7.ads
  122a5cde9816de02c7f37bcdf2de229f  gcc/ada/exp_ch8.adb
  9955bf7551ef5f537f9031c59fb73db8  gcc/ada/exp_ch8.ads
! f084400d4a12cabf8267bc395b762fa2  gcc/ada/exp_ch9.adb
  d5bed31d915c80f427741d1175ba335a  gcc/ada/exp_ch9.ads
  914abafc66aba1c22bfd983c48ee2d6a  gcc/ada/exp_code.adb
  8be63e29d5aeaf0a16ff7b4dc746e1a4  gcc/ada/exp_code.ads
*************** e837e02763d429cb690f4aa38c5c1da2  gcc/ad
*** 792,798 ****
  ce990621220fd6489426c319eb93cec4  gcc/ada/exp_dist.ads
  23f9e2de53a292fd54bac01c5bf3a794  gcc/ada/exp_fixd.adb
  a68a87f80c2a7f799dba65186bf644df  gcc/ada/exp_fixd.ads
! 70833c97f0d9e2674da0c2a72e122b27  gcc/ada/exp_imgv.adb
  34fc29154c68ffe19f5d9e5cb9f5be59  gcc/ada/exp_imgv.ads
  ee534f378918dac3d346695bf4bcf9a2  gcc/ada/exp_intr.adb
  98fffa8af9ba75158eeab9097a7838a3  gcc/ada/exp_intr.ads
--- 793,799 ----
  ce990621220fd6489426c319eb93cec4  gcc/ada/exp_dist.ads
  23f9e2de53a292fd54bac01c5bf3a794  gcc/ada/exp_fixd.adb
  a68a87f80c2a7f799dba65186bf644df  gcc/ada/exp_fixd.ads
! d308cb3a0264221f369b7f0ab346926a  gcc/ada/exp_imgv.adb
  34fc29154c68ffe19f5d9e5cb9f5be59  gcc/ada/exp_imgv.ads
  ee534f378918dac3d346695bf4bcf9a2  gcc/ada/exp_intr.adb
  98fffa8af9ba75158eeab9097a7838a3  gcc/ada/exp_intr.ads
*************** abc4adbcfcc5aec49e61dfe787dc8274  gcc/ad
*** 814,820 ****
  3372f4711ba5978adb3c0b71a6836ba0  gcc/ada/exp_tss.ads
  ef2035bfbeb4e058c824980c2f6d7214  gcc/ada/exp_unst.adb
  a787a30ba8699ad9caabf0ddeb2bd425  gcc/ada/exp_unst.ads
! ee9f57961c846c6f6980167bd1fd6594  gcc/ada/exp_util.adb
  fb64e3eab9418e4f42c1e395d64be8ca  gcc/ada/exp_util.ads
  da86db6b7d964bec3beb0995f66c2c49  gcc/ada/expander.adb
  ca321269d17552e01fce3be99a0a3452  gcc/ada/expander.ads
--- 815,821 ----
  3372f4711ba5978adb3c0b71a6836ba0  gcc/ada/exp_tss.ads
  ef2035bfbeb4e058c824980c2f6d7214  gcc/ada/exp_unst.adb
  a787a30ba8699ad9caabf0ddeb2bd425  gcc/ada/exp_unst.ads
! b40cc3f4d2fdc98f9425cd424f7d890c  gcc/ada/exp_util.adb
  fb64e3eab9418e4f42c1e395d64be8ca  gcc/ada/exp_util.ads
  da86db6b7d964bec3beb0995f66c2c49  gcc/ada/expander.adb
  ca321269d17552e01fce3be99a0a3452  gcc/ada/expander.ads
*************** a33f6ce50ea5f6239bb943392e892d17  gcc/ad
*** 829,835 ****
  69ddf39d57c6fcb7c5a317cae7c09f58  gcc/ada/fname-uf.ads
  aafcb91317d2b95ebf55c3e8bbc030e0  gcc/ada/fname.adb
  8a4878ab4881e98ec589708dfeabb6da  gcc/ada/fname.ads
! 74a326c2d076227ec2d1ebb873e505fa  gcc/ada/freeze.adb
  c2b6f0e40ada726a36b2cba815c79591  gcc/ada/freeze.ads
  c8c5844ba2c26bdc1b7c004e5b806668  gcc/ada/frontend.adb
  03bc5c5bdf3e467c3fa035201ba507d2  gcc/ada/frontend.ads
--- 830,836 ----
  69ddf39d57c6fcb7c5a317cae7c09f58  gcc/ada/fname-uf.ads
  aafcb91317d2b95ebf55c3e8bbc030e0  gcc/ada/fname.adb
  8a4878ab4881e98ec589708dfeabb6da  gcc/ada/fname.ads
! 1f66870b789a57b492e5ac86c801ab7c  gcc/ada/freeze.adb
  c2b6f0e40ada726a36b2cba815c79591  gcc/ada/freeze.ads
  c8c5844ba2c26bdc1b7c004e5b806668  gcc/ada/frontend.adb
  03bc5c5bdf3e467c3fa035201ba507d2  gcc/ada/frontend.ads
*************** aa8ee7a04e292a14d18da20ed5efb983  gcc/ad
*** 1189,1195 ****
  165d3e530f0d803babc9616be10f5268  gcc/ada/libgnat/a-cbhase.adb
  70c99263d65d2c51fbd0f81e9c9b1b51  gcc/ada/libgnat/a-cbhase.ads
  24a37de2f17e798ce4483a7a0c847aca  gcc/ada/libgnat/a-cbinho.adb
! 93976498bf991d3a1594db3e1d52895c  gcc/ada/libgnat/a-cbinho.ads
  c838aeade3bfa5ba17350ceb65b09e00  gcc/ada/libgnat/a-cbmutr.adb
  d58f87c0492c3db9ca1a3678408eb206  gcc/ada/libgnat/a-cbmutr.ads
  e0e042465742f1131172fcf98583b8aa  gcc/ada/libgnat/a-cborma.adb
--- 1190,1196 ----
  165d3e530f0d803babc9616be10f5268  gcc/ada/libgnat/a-cbhase.adb
  70c99263d65d2c51fbd0f81e9c9b1b51  gcc/ada/libgnat/a-cbhase.ads
  24a37de2f17e798ce4483a7a0c847aca  gcc/ada/libgnat/a-cbinho.adb
! ed7f47c9a26fcdd4c58cad080f19cf05  gcc/ada/libgnat/a-cbinho.ads
  c838aeade3bfa5ba17350ceb65b09e00  gcc/ada/libgnat/a-cbmutr.adb
  d58f87c0492c3db9ca1a3678408eb206  gcc/ada/libgnat/a-cbmutr.ads
  e0e042465742f1131172fcf98583b8aa  gcc/ada/libgnat/a-cborma.adb
*************** b97a33153fe52398767059622469c244  gcc/ad
*** 2897,2904 ****
  89b33a894fb8d623c05d39f93b53e357  gcc/ada/sem.ads
  c3f9d53a4cd0b972e1cdf25b567ff00c  gcc/ada/sem_aggr.adb
  d5ddab4fcf440bf2f49a9a190fd12829  gcc/ada/sem_aggr.ads
! ca2981f8b50b4289c62f1e8d5b970912  gcc/ada/sem_attr.adb
! 1308a9cb1e585e31fec8960b3d3aa1ea  gcc/ada/sem_attr.ads
  5a8f21b4d2e896659887ea4fb7fce369  gcc/ada/sem_aux.adb
  416380c1ed0ef199b48f1e73080b5db3  gcc/ada/sem_aux.ads
  8d81d143610083b5cf22db98e4eb9ff7  gcc/ada/sem_case.adb
--- 2898,2905 ----
  89b33a894fb8d623c05d39f93b53e357  gcc/ada/sem.ads
  c3f9d53a4cd0b972e1cdf25b567ff00c  gcc/ada/sem_aggr.adb
  d5ddab4fcf440bf2f49a9a190fd12829  gcc/ada/sem_aggr.ads
! 4712414fca04a712bbc9bd71fbf4c6a8  gcc/ada/sem_attr.adb
! f5a25d26b815f5d376e2873f3ab69359  gcc/ada/sem_attr.ads
  5a8f21b4d2e896659887ea4fb7fce369  gcc/ada/sem_aux.adb
  416380c1ed0ef199b48f1e73080b5db3  gcc/ada/sem_aux.ads
  8d81d143610083b5cf22db98e4eb9ff7  gcc/ada/sem_case.adb
*************** bde96e6a1464ed682c5655d726cdd21a  gcc/ad
*** 2955,2962 ****
  21afb93e10bb9446fcbf7577bbf39c7f  gcc/ada/sem_smem.ads
  b206c38c506b809f66fb07036016356f  gcc/ada/sem_type.adb
  65653b347d1d3f800e49cd916a551d1c  gcc/ada/sem_type.ads
! 03f9cbb4cdca39b0dcb58fa9cd30d37c  gcc/ada/sem_util.adb
! ec5c6d315fe729aab9bd7b8889560f62  gcc/ada/sem_util.ads
  b16d94872ec070685f3ac84b8967f7fe  gcc/ada/sem_warn.adb
  1952fbda97ea4c6506f452eac9934bb4  gcc/ada/sem_warn.ads
  75ee1e8bae201fd70d666856c4dbb8e5  gcc/ada/set_targ.adb
--- 2956,2963 ----
  21afb93e10bb9446fcbf7577bbf39c7f  gcc/ada/sem_smem.ads
  b206c38c506b809f66fb07036016356f  gcc/ada/sem_type.adb
  65653b347d1d3f800e49cd916a551d1c  gcc/ada/sem_type.ads
! 1a9e149f530a431be68085c531487687  gcc/ada/sem_util.adb
! 736dcd26180244a8e8adc2d6c66249a7  gcc/ada/sem_util.ads
  b16d94872ec070685f3ac84b8967f7fe  gcc/ada/sem_warn.adb
  1952fbda97ea4c6506f452eac9934bb4  gcc/ada/sem_warn.ads
  75ee1e8bae201fd70d666856c4dbb8e5  gcc/ada/set_targ.adb
*************** d22c314f3748309f812d78f5217dda61  gcc/ad
*** 3061,3074 ****
  06b46bffb1b84e16a6f48b29177f42c4  gcc/ada/xutil.ads
  faeebcb240c1559aceb7d9c18c8e6b89  gcc/addresses.h
  ebe64421041bf4ef9153e26a6dc60532  gcc/adjust-alignment.cc
! 71aa4b314a1cb95920aa34eb27988e96  gcc/algol68/ChangeLog
! d02d7b8b2d2659243307a0d247253ec4  gcc/algol68/Make-lang.in
  3d3f2f95b917d0f77d57d977f3eb93d8  gcc/algol68/README
  fb43be530798e23528ffc144413b80a9  gcc/algol68/a68-diagnostics.cc
  27119d3e1e8fce1677a27ca87cc9de1e  gcc/algol68/a68-exports.cc
  237db35c9725eb65027ad7adf2f0527e  gcc/algol68/a68-imports.cc
  0904dc65c8116eaecb8d99576391c5dc  gcc/algol68/a68-lang.cc
! 88ab6b01017ce2d82f463f024b26245b  gcc/algol68/a68-low-bits.cc
  284cf6c8827f78791575949cc1f634ef  gcc/algol68/a68-low-bools.cc
  421c70a781dc2c00722aa019bc39f683  gcc/algol68/a68-low-builtins.cc
  ade291f272227055db98bddb78ff715f  gcc/algol68/a68-low-chars.cc
--- 3062,3075 ----
  06b46bffb1b84e16a6f48b29177f42c4  gcc/ada/xutil.ads
  faeebcb240c1559aceb7d9c18c8e6b89  gcc/addresses.h
  ebe64421041bf4ef9153e26a6dc60532  gcc/adjust-alignment.cc
! 7f0996edbd1377097878f3fb60090241  gcc/algol68/ChangeLog
! abbed6e9646c3e4d75b2ddfab0472097  gcc/algol68/Make-lang.in
  3d3f2f95b917d0f77d57d977f3eb93d8  gcc/algol68/README
  fb43be530798e23528ffc144413b80a9  gcc/algol68/a68-diagnostics.cc
  27119d3e1e8fce1677a27ca87cc9de1e  gcc/algol68/a68-exports.cc
  237db35c9725eb65027ad7adf2f0527e  gcc/algol68/a68-imports.cc
  0904dc65c8116eaecb8d99576391c5dc  gcc/algol68/a68-lang.cc
! 6430e67f3d47b364ff04181a73b26fea  gcc/algol68/a68-low-bits.cc
  284cf6c8827f78791575949cc1f634ef  gcc/algol68/a68-low-bools.cc
  421c70a781dc2c00722aa019bc39f683  gcc/algol68/a68-low-builtins.cc
  ade291f272227055db98bddb78ff715f  gcc/algol68/a68-low-chars.cc
*************** b8582dd8bfb1b150fad9cafd7bbaa3c6  gcc/al
*** 3077,3083 ****
  5aa76e1c20ed5b89f9d01211f6bb6cc6  gcc/algol68/a68-low-complex.cc
  fb2d06e1ab97449a52e96618e292e987  gcc/algol68/a68-low-decls.cc
  c57bfad420a3fc9e3f36e22e0b61c523  gcc/algol68/a68-low-generator.cc
! c762f8cd72942b6e3d06a3915e13f883  gcc/algol68/a68-low-holes.cc
  49e9c1592266268c752da49a2ef0bbc9  gcc/algol68/a68-low-ints.cc
  949d0f0a5f79da34ba44f79c6ebfe282  gcc/algol68/a68-low-misc.cc
  8e958b50675b076eba75cf460e2332bb  gcc/algol68/a68-low-moids.cc
--- 3078,3084 ----
  5aa76e1c20ed5b89f9d01211f6bb6cc6  gcc/algol68/a68-low-complex.cc
  fb2d06e1ab97449a52e96618e292e987  gcc/algol68/a68-low-decls.cc
  c57bfad420a3fc9e3f36e22e0b61c523  gcc/algol68/a68-low-generator.cc
! 80f97ed233cb621911118dced6521056  gcc/algol68/a68-low-holes.cc
  49e9c1592266268c752da49a2ef0bbc9  gcc/algol68/a68-low-ints.cc
  949d0f0a5f79da34ba44f79c6ebfe282  gcc/algol68/a68-low-misc.cc
  8e958b50675b076eba75cf460e2332bb  gcc/algol68/a68-low-moids.cc
*************** aebb4c3b9e607164c25541593333b832  gcc/al
*** 3093,3102 ****
  a3640e0464c9f225e1f6e23c6e1b7a25  gcc/algol68/a68-low-strings.cc
  de4cb485173b396d55860a98e328be5b  gcc/algol68/a68-low-structs.cc
  7675b3dfcea25bedcbe52f98cecdf7e2  gcc/algol68/a68-low-unions.cc
! 19feb8b7c2b4f8f2196bdaecdd51ae36  gcc/algol68/a68-low-units.cc
  675023fae14be04594a5ff566c4621d9  gcc/algol68/a68-low.cc
  406bb4b4a8736ed19545acebc61effbd  gcc/algol68/a68-moids-diagnostics.cc
  70c2551ca7ba966a4938331e1d173d4b  gcc/algol68/a68-moids-misc.cc
  93ab5a30cda3f697bee77eba313c66d6  gcc/algol68/a68-moids-to-string.cc
  5cba262e501051ca9bc9e3c0cec33e74  gcc/algol68/a68-parser-attrs.def
  ffe54034f666cf5a46987107130cf11d  gcc/algol68/a68-parser-bottom-up.cc
--- 3094,3104 ----
  a3640e0464c9f225e1f6e23c6e1b7a25  gcc/algol68/a68-low-strings.cc
  de4cb485173b396d55860a98e328be5b  gcc/algol68/a68-low-structs.cc
  7675b3dfcea25bedcbe52f98cecdf7e2  gcc/algol68/a68-low-unions.cc
! 0682b39705cb5976c802b1ffdc0c2798  gcc/algol68/a68-low-units.cc
  675023fae14be04594a5ff566c4621d9  gcc/algol68/a68-low.cc
  406bb4b4a8736ed19545acebc61effbd  gcc/algol68/a68-moids-diagnostics.cc
  70c2551ca7ba966a4938331e1d173d4b  gcc/algol68/a68-moids-misc.cc
+ 943207507077d65185cd6d089f1249da  gcc/algol68/a68-moids-sorting.cc
  93ab5a30cda3f697bee77eba313c66d6  gcc/algol68/a68-moids-to-string.cc
  5cba262e501051ca9bc9e3c0cec33e74  gcc/algol68/a68-parser-attrs.def
  ffe54034f666cf5a46987107130cf11d  gcc/algol68/a68-parser-bottom-up.cc
*************** ffe54034f666cf5a46987107130cf11d  gcc/al
*** 3104,3110 ****
  06167f432b9437d0cc135868d1067782  gcc/algol68/a68-parser-debug.cc
  e14368c497a718a8ca29ecca4348f3cc  gcc/algol68/a68-parser-extract.cc
  fc7ae86022255700f5866b320d5b195d  gcc/algol68/a68-parser-keywords.cc
! 233e85e1d109735e63bc9c3367f89a54  gcc/algol68/a68-parser-modes.cc
  1b5ff58c15f9dc7aab0bc4b94d6e492a  gcc/algol68/a68-parser-moids-check.cc
  eb200628692c30c1ade0eaeabcddf008  gcc/algol68/a68-parser-moids-coerce.cc
  3789b4b4b2b84341d4e2c050f5f10acf  gcc/algol68/a68-parser-moids-equivalence.cc
--- 3106,3112 ----
  06167f432b9437d0cc135868d1067782  gcc/algol68/a68-parser-debug.cc
  e14368c497a718a8ca29ecca4348f3cc  gcc/algol68/a68-parser-extract.cc
  fc7ae86022255700f5866b320d5b195d  gcc/algol68/a68-parser-keywords.cc
! 22271d83c9161284891af48a7e690afb  gcc/algol68/a68-parser-modes.cc
  1b5ff58c15f9dc7aab0bc4b94d6e492a  gcc/algol68/a68-parser-moids-check.cc
  eb200628692c30c1ade0eaeabcddf008  gcc/algol68/a68-parser-moids-coerce.cc
  3789b4b4b2b84341d4e2c050f5f10acf  gcc/algol68/a68-parser-moids-equivalence.cc
*************** bb6a9492686645cd8ede63a3aa41bb2e  gcc/al
*** 3121,3131 ****
  614ee2f3c97cf1910484b4ba1b697352  gcc/algol68/a68-tree.def
  902bc37d4c1e6f0790867a9a76d446c5  gcc/algol68/a68-types.h
  384e3fcca47f6f61b529f8d95656824a  gcc/algol68/a68-unistr.c
! dace2e26231b41c85b8bce77f17512b7  gcc/algol68/a68.h
  cbc2ddca0589edc81c7df109b1a1927b  gcc/algol68/a68spec.cc
  ca4abac71b91773df74abdea22798551  gcc/algol68/config-lang.in
! bb6b91d4e3b8db4de664e7697a23229d  gcc/algol68/ga68-coding-guidelines.texi
! 3944dc558e8139d69cdc73ffdbe90cc7  gcc/algol68/ga68-exports.pk
  f150e2c760036b980e94ec7bb14e1172  gcc/algol68/ga68-internals.texi
  14663848b61ebf025c7338f59234640e  gcc/algol68/ga68.texi
  6e162644e83dbcfbcfbacd36f1e64f3c  gcc/algol68/ga68.vw
--- 3123,3133 ----
  614ee2f3c97cf1910484b4ba1b697352  gcc/algol68/a68-tree.def
  902bc37d4c1e6f0790867a9a76d446c5  gcc/algol68/a68-types.h
  384e3fcca47f6f61b529f8d95656824a  gcc/algol68/a68-unistr.c
! c36130674593910a6108d657b42e6fd6  gcc/algol68/a68.h
  cbc2ddca0589edc81c7df109b1a1927b  gcc/algol68/a68spec.cc
  ca4abac71b91773df74abdea22798551  gcc/algol68/config-lang.in
! ec2e840d640373093e665ba328e038f8  gcc/algol68/ga68-coding-guidelines.texi
! 9c3d535a7da271c49e76b9709e556383  gcc/algol68/ga68-exports.pk
  f150e2c760036b980e94ec7bb14e1172  gcc/algol68/ga68-internals.texi
  14663848b61ebf025c7338f59234640e  gcc/algol68/ga68.texi
  6e162644e83dbcfbcfbacd36f1e64f3c  gcc/algol68/ga68.vw
*************** b7dd8bd2dd68f81643704bf0b73553a1  gcc/al
*** 3137,3143 ****
  71901705cb0e11732bae53ff9de25faf  gcc/align.h
  f2345b2fdc9d2d5a75fe90d30444a114  gcc/alloc-pool.cc
  7657598f465321837951c858ab918f57  gcc/alloc-pool.h
! fc22556fe79ea16f052cbc92e7da6efa  gcc/analyzer/ChangeLog
  a53ebffbaabe6bc3664d659c554fedb3  gcc/analyzer/access-diagram.cc
  c41fa6be7ca91f40a15a7b8f03732d25  gcc/analyzer/access-diagram.h
  d97e417faf9694fdbd68f91aee129bd2  gcc/analyzer/ana-state-to-diagnostic-state.cc
--- 3139,3145 ----
  71901705cb0e11732bae53ff9de25faf  gcc/align.h
  f2345b2fdc9d2d5a75fe90d30444a114  gcc/alloc-pool.cc
  7657598f465321837951c858ab918f57  gcc/alloc-pool.h
! e995b11ceec2b9e1b83756ead3ed4b2a  gcc/analyzer/ChangeLog
  a53ebffbaabe6bc3664d659c554fedb3  gcc/analyzer/access-diagram.cc
  c41fa6be7ca91f40a15a7b8f03732d25  gcc/analyzer/access-diagram.h
  d97e417faf9694fdbd68f91aee129bd2  gcc/analyzer/ana-state-to-diagnostic-state.cc
*************** bc77cd1e5aec40e5623c49cb8974b3d4  gcc/an
*** 3172,3178 ****
  6712495ad4527b26bc77a822585c6ee7  gcc/analyzer/common.h
  5ff0274ed0a527fd34bb3ec30c36543f  gcc/analyzer/complexity.cc
  f945a407a1ad45be621e572190f6e11f  gcc/analyzer/complexity.h
! f2a1d7a4677cd4523c0638208513d259  gcc/analyzer/constraint-manager.cc
  7d0cf2441abcd960f97e29dd071829e5  gcc/analyzer/constraint-manager.h
  2728e4b1b06abaf098bfdc996d29a5af  gcc/analyzer/diagnostic-manager.cc
  ca695b2d13762f05a1ab6018eba991c7  gcc/analyzer/diagnostic-manager.h
--- 3174,3180 ----
  6712495ad4527b26bc77a822585c6ee7  gcc/analyzer/common.h
  5ff0274ed0a527fd34bb3ec30c36543f  gcc/analyzer/complexity.cc
  f945a407a1ad45be621e572190f6e11f  gcc/analyzer/complexity.h
! 49f1f27a8c444849f43eeb17ebbd14a4  gcc/analyzer/constraint-manager.cc
  7d0cf2441abcd960f97e29dd071829e5  gcc/analyzer/constraint-manager.h
  2728e4b1b06abaf098bfdc996d29a5af  gcc/analyzer/diagnostic-manager.cc
  ca695b2d13762f05a1ab6018eba991c7  gcc/analyzer/diagnostic-manager.h
*************** b4cf75f3e9332bcd6b95b1f080c700d8  gcc/an
*** 3190,3196 ****
  0a7e1ce7bcc02f6aa0f1660029895b13  gcc/analyzer/inlining-iterator.h
  8af331ea68e39926dae8949ff0e49c24  gcc/analyzer/kf-analyzer.cc
  8916a9c075a04e691e41ea4601cdb475  gcc/analyzer/kf-lang-cp.cc
! a1b024e224c36f32b98b3265e76e36fd  gcc/analyzer/kf.cc
  0652b497ab69835a3ec50cb920b8a973  gcc/analyzer/known-function-manager.cc
  d065f64c3be7da8efff67c73024dd990  gcc/analyzer/known-function-manager.h
  cac91a789fdfacaa1976b3d8668cc2d3  gcc/analyzer/ops.cc
--- 3192,3198 ----
  0a7e1ce7bcc02f6aa0f1660029895b13  gcc/analyzer/inlining-iterator.h
  8af331ea68e39926dae8949ff0e49c24  gcc/analyzer/kf-analyzer.cc
  8916a9c075a04e691e41ea4601cdb475  gcc/analyzer/kf-lang-cp.cc
! a1e0979f9311ee4d406e1ed28cc7bb39  gcc/analyzer/kf.cc
  0652b497ab69835a3ec50cb920b8a973  gcc/analyzer/known-function-manager.cc
  d065f64c3be7da8efff67c73024dd990  gcc/analyzer/known-function-manager.h
  cac91a789fdfacaa1976b3d8668cc2d3  gcc/analyzer/ops.cc
*************** a8c275843686611dd10e89cc7569f89d  gcc/an
*** 3207,3217 ****
  4df6e8532c302bc59b4e417ab38a741a  gcc/analyzer/record-layout.cc
  f93ef89d263e02c779ec129aeead8a28  gcc/analyzer/record-layout.h
  8998fc6abdaaf4914e8f43f86a20d895  gcc/analyzer/region-model-asm.cc
! 50e77e4c80ab498c19591fd84861df34  gcc/analyzer/region-model-manager.cc
  1659367392030852cffeaddae0f5baac  gcc/analyzer/region-model-manager.h
  c24460f53b22bdecc3b9e8af24da1575  gcc/analyzer/region-model-reachability.cc
  93431d9eca086e4c7811afc3a66197ea  gcc/analyzer/region-model-reachability.h
! e1a476d44630cf996a4b903f01f086ca  gcc/analyzer/region-model.cc
  17f7242ed2e91e694ce2a1fce4e1b4a5  gcc/analyzer/region-model.h
  50ff3eeb08a83ff50dc62d1777c7bc57  gcc/analyzer/region.cc
  7b478bc40e78865e5c23d8a7790c707c  gcc/analyzer/region.h
--- 3209,3219 ----
  4df6e8532c302bc59b4e417ab38a741a  gcc/analyzer/record-layout.cc
  f93ef89d263e02c779ec129aeead8a28  gcc/analyzer/record-layout.h
  8998fc6abdaaf4914e8f43f86a20d895  gcc/analyzer/region-model-asm.cc
! 6b6b519fbc0fe8c6f51e2a60d4075c4d  gcc/analyzer/region-model-manager.cc
  1659367392030852cffeaddae0f5baac  gcc/analyzer/region-model-manager.h
  c24460f53b22bdecc3b9e8af24da1575  gcc/analyzer/region-model-reachability.cc
  93431d9eca086e4c7811afc3a66197ea  gcc/analyzer/region-model-reachability.h
! e9f40c60bf9f7ca359453a492ed004d8  gcc/analyzer/region-model.cc
  17f7242ed2e91e694ce2a1fce4e1b4a5  gcc/analyzer/region-model.h
  50ff3eeb08a83ff50dc62d1777c7bc57  gcc/analyzer/region.cc
  7b478bc40e78865e5c23d8a7790c707c  gcc/analyzer/region.h
*************** de1b4d168343a9bc6547fc563f836658  gcc/an
*** 3219,3225 ****
  dbe5f340be1000aa32173ff729fedbab  gcc/analyzer/sm-fd.dot
  b10f0d6e0fcb38bf1735eefe471d028d  gcc/analyzer/sm-file.cc
  401eb7722d517df6787e7bec7bdf9199  gcc/analyzer/sm-file.dot
! cc8214f01ce21e97b4fcb83707b55a1b  gcc/analyzer/sm-malloc.cc
  1b93a336848d1863eba773990024bfad  gcc/analyzer/sm-malloc.dot
  0af99b045ce70bf1ecd2d979df5a544b  gcc/analyzer/sm-pattern-test.cc
  c1459aac86f73bc045b48366cc2494b7  gcc/analyzer/sm-sensitive.cc
--- 3221,3227 ----
  dbe5f340be1000aa32173ff729fedbab  gcc/analyzer/sm-fd.dot
  b10f0d6e0fcb38bf1735eefe471d028d  gcc/analyzer/sm-file.cc
  401eb7722d517df6787e7bec7bdf9199  gcc/analyzer/sm-file.dot
! f858a1884be0ba0c234f7c737c48821f  gcc/analyzer/sm-malloc.cc
  1b93a336848d1863eba773990024bfad  gcc/analyzer/sm-malloc.dot
  0af99b045ce70bf1ecd2d979df5a544b  gcc/analyzer/sm-pattern-test.cc
  c1459aac86f73bc045b48366cc2494b7  gcc/analyzer/sm-sensitive.cc
*************** ea987115b0f67bce5cc4745e6d5bc4d1  gcc/at
*** 3253,3259 ****
  2d462a57a0a7bbe8bcb22db63f9377ef  gcc/attr-callback.h
  cbe63f3e975481a17ed49898fbbb9d2a  gcc/attr-fnspec.h
  3d7a71537ed817b2c8f0c30cd04c9201  gcc/attr-urls.def
! 5b71b79829c0357c9f49f11450ee17e2  gcc/attribs.cc
  feed071e9f711f8ebbc91f8636422f93  gcc/attribs.h
  bd317e24faffad6f2106396f1c3401b1  gcc/auto-inc-dec.cc
  fc353966a860a12cbc161a87f5619b51  gcc/auto-obstack.h
--- 3255,3261 ----
  2d462a57a0a7bbe8bcb22db63f9377ef  gcc/attr-callback.h
  cbe63f3e975481a17ed49898fbbb9d2a  gcc/attr-fnspec.h
  3d7a71537ed817b2c8f0c30cd04c9201  gcc/attr-urls.def
! bfdf4b9211be2c263ea8377fc068c5cc  gcc/attribs.cc
  feed071e9f711f8ebbc91f8636422f93  gcc/attribs.h
  bd317e24faffad6f2106396f1c3401b1  gcc/auto-inc-dec.cc
  fc353966a860a12cbc161a87f5619b51  gcc/auto-obstack.h
*************** ebb1ceb69d6cf8ac2cdc227ae45f0eca  gcc/bi
*** 3274,3285 ****
  cdcd35bde318b22092b0788986b03a47  gcc/builtins.cc
  4dbe6686097ec6c197a24ac373bb9554  gcc/builtins.def
  99d9ddd60ff804d8e24732db43d38bca  gcc/builtins.h
! 5af1619e4986bf06759ad557ec6f1fed  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
  374e50066ee36fc7f227105c350323f6  gcc/c-family/c-attribs.cc
! 74c9e7b77d0823f44fc2c4e140154921  gcc/c-family/c-common.cc
  6522339cd83ff225a1ff9e0eab971eab  gcc/c-family/c-common.def
  81cb275a3cf181ff08d23b453a35d711  gcc/c-family/c-common.h
  e1e1df06eba5bbddc37580adfb9356b4  gcc/c-family/c-cppbuiltin.cc
--- 3276,3287 ----
  cdcd35bde318b22092b0788986b03a47  gcc/builtins.cc
  4dbe6686097ec6c197a24ac373bb9554  gcc/builtins.def
  99d9ddd60ff804d8e24732db43d38bca  gcc/builtins.h
! b9d5d1d7af2cebf197ca4a183bfeea9d  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
  374e50066ee36fc7f227105c350323f6  gcc/c-family/c-attribs.cc
! 9c4e2d12e48f052bafabdf6281744002  gcc/c-family/c-common.cc
  6522339cd83ff225a1ff9e0eab971eab  gcc/c-family/c-common.def
  81cb275a3cf181ff08d23b453a35d711  gcc/c-family/c-common.h
  e1e1df06eba5bbddc37580adfb9356b4  gcc/c-family/c-cppbuiltin.cc
*************** ea821c9d267c64dd8b74aad9d0189834  gcc/c-
*** 3317,3324 ****
  377686cbbf62a7d61d251d3f74cddb5b  gcc/c-family/known-headers.h
  431045382c41554804be1959c1596be4  gcc/c-family/name-hint.h
  3bae9e281cc87b35f63e906373f3b446  gcc/c-family/stub-objc.cc
! 6d31e1845aa50667bd65f3c1e9ed2577  gcc/c/ChangeLog
! 0586ab6ff2671f06da9bce04f0604810  gcc/c/Make-lang.in
  3920e3ee16f5b5955d40584fea53c441  gcc/c/c-aux-info.cc
  cd5bab8a4deeaa0369ae59b9403d06a2  gcc/c/c-convert.cc
  215b1087f468e70ae9929c660068504a  gcc/c/c-decl.cc
--- 3319,3326 ----
  377686cbbf62a7d61d251d3f74cddb5b  gcc/c-family/known-headers.h
  431045382c41554804be1959c1596be4  gcc/c-family/name-hint.h
  3bae9e281cc87b35f63e906373f3b446  gcc/c-family/stub-objc.cc
! 3c87ae52c93cf9d4878dbdafe592963a  gcc/c/ChangeLog
! 3cd646f5b83b1b6ad35b21836044f6be  gcc/c/Make-lang.in
  3920e3ee16f5b5955d40584fea53c441  gcc/c/c-aux-info.cc
  cd5bab8a4deeaa0369ae59b9403d06a2  gcc/c/c-convert.cc
  215b1087f468e70ae9929c660068504a  gcc/c/c-decl.cc
*************** efcac12e876ea7fc2018badafb6fddb5  gcc/cf
*** 3351,3357 ****
  1759b500ef3ebaa71f165d1004be0c28  gcc/cfgbuild.h
  7204450de7c4cc506ca7b77a17060d34  gcc/cfgcleanup.cc
  19b842f671a6c6284b654d712d52e513  gcc/cfgcleanup.h
! ad2c040bc0ead61e306b35e1c0ee8600  gcc/cfgexpand.cc
  7bcce78536f3bff0e046d9a3ece5ea9a  gcc/cfgexpand.h
  7574fabaac9f09b71e48110e0f7eb1e6  gcc/cfghooks.cc
  7331a5536e5d2c3be4ee9196f8b90a90  gcc/cfghooks.h
--- 3353,3359 ----
  1759b500ef3ebaa71f165d1004be0c28  gcc/cfgbuild.h
  7204450de7c4cc506ca7b77a17060d34  gcc/cfgcleanup.cc
  19b842f671a6c6284b654d712d52e513  gcc/cfgcleanup.h
! cc705d06a0d769debf1c9afca112eff6  gcc/cfgexpand.cc
  7bcce78536f3bff0e046d9a3ece5ea9a  gcc/cfgexpand.h
  7574fabaac9f09b71e48110e0f7eb1e6  gcc/cfghooks.cc
  7331a5536e5d2c3be4ee9196f8b90a90  gcc/cfghooks.h
*************** e401a5a5a7e802aea0c860de79cf4639  gcc/cf
*** 3360,3366 ****
  f18b9392122c866e0f6862690656ebd5  gcc/cfgloopanal.cc
  a2a7ae398fff29279976ba196a37dccb  gcc/cfgloopmanip.cc
  83651ace7d1e40ee81b35f32a6a05179  gcc/cfgloopmanip.h
! e9a1353e830f1ac8eca66727f2911679  gcc/cfgrtl.cc
  c41525a1de6e78cabd4414d6a8c3dac9  gcc/cfgrtl.h
  a4cf104c1468ac0ce60e997a46a44b2e  gcc/cgraph.cc
  36c074c6a2c861a5fa311704a308cd61  gcc/cgraph.h
--- 3362,3368 ----
  f18b9392122c866e0f6862690656ebd5  gcc/cfgloopanal.cc
  a2a7ae398fff29279976ba196a37dccb  gcc/cfgloopmanip.cc
  83651ace7d1e40ee81b35f32a6a05179  gcc/cfgloopmanip.h
! 6efea778480901818ae74c1e5abf4f5f  gcc/cfgrtl.cc
  c41525a1de6e78cabd4414d6a8c3dac9  gcc/cfgrtl.h
  a4cf104c1468ac0ce60e997a46a44b2e  gcc/cgraph.cc
  36c074c6a2c861a5fa311704a308cd61  gcc/cgraph.h
*************** de90956fd0fa66b3093b818874bbb4f4  gcc/cg
*** 3369,3425 ****
  e49d05909919035f9ad4633fc056bc56  gcc/cgraphunit.cc
  2a45e3be9216480f88930217fee8fc7b  gcc/channels.h
  931fe41c17df7e7a6074418f8e41f010  gcc/cif-code.def
! 70844684792013e5431c51f27238b34d  gcc/cobol/ChangeLog
  56c564c4cfd3395214baa46684218f3d  gcc/cobol/Make-lang.in
  0a84e784d2bc4066654d2377fc6a2930  gcc/cobol/TODO
! 27054fd6ae13f617da51f4df0026904e  gcc/cobol/cbldiag.h
! 030342886cc720f11f17d7691f6f24ae  gcc/cobol/cdf-copy.cc
! 7ba30136fc69f049bcfc1ebdf80c298e  gcc/cobol/cdf.y
! b916ef498fa1cc9821e56ab612f00f3a  gcc/cobol/cdfval.h
! fb65c7259141f1223fa29175a2e441ed  gcc/cobol/cobol-system.h
  68ed2917eb0043eb0bfe48f5d0494cf1  gcc/cobol/cobol1.cc
  8b7f26d4855e5bb69a66eecc586d9742  gcc/cobol/config-lang.in
! aab9bcdb44bef72e1c3a8cd069bfcccd  gcc/cobol/convert.cc
! bdd6fbf13776c7983a16ac857615424c  gcc/cobol/copybook.h
  3f5a0424b32cd09b107e8858af9cf15f  gcc/cobol/dts.h
! 7964cb9d308b0a857a3dac0a7fac1320  gcc/cobol/except.cc
! dfdc874741e086c131fcd03117c339cf  gcc/cobol/exceptg.h
  fa5c36c4b4863c8f410d851d2d404869  gcc/cobol/gcobc
  f67634943eb42bf86ec69714cecc53e6  gcc/cobol/gcobol.1
  527925049a81a36c06220d368570f55a  gcc/cobol/gcobol.3
  a0a0120d2e52dd9bbe26a6d64ba9dc64  gcc/cobol/gcobolspec.cc
! d35796688ec8e78d2921652b01e0f103  gcc/cobol/genapi.cc
! 0c4734774af3bdae4d59b55a5c25bda6  gcc/cobol/genapi.h
! 7503cee4149ae97fee422f72473aa527  gcc/cobol/gengen.cc
! eeb2d20d7d0d4521acb2468dee246887  gcc/cobol/gengen.h
! f2574a875a5d091597cc2618d3a25852  gcc/cobol/genmath.cc
! d44e8c86d57fb704b6c1fbab3464fb9a  gcc/cobol/genmath.h
! c716e3cd5b0166ad4a18c1eca6ab3210  gcc/cobol/genutil.cc
! 37f3bc2a2f07d757ac3f9e33027c2e3b  gcc/cobol/genutil.h
  7b9c1ead6f9d3661133f7f732811719c  gcc/cobol/help.gen
! 0fa33dbe050697f40b5e8df91896da9a  gcc/cobol/inspect.h
! 9cc40563a4476537055f06deeb3799a4  gcc/cobol/lang-specs.h
  78d52a99c23b816808264665df785271  gcc/cobol/lang.opt
  2924af2e9df185e08e5e225631897dc5  gcc/cobol/lang.opt.urls
! f25056b154c14dde0fb10a159520eb1b  gcc/cobol/lexio.cc
! 5953c820cdc03feb815bfbf28c10730c  gcc/cobol/lexio.h
! d40dcad3e5d2596c1ac4fe4a5d21db61  gcc/cobol/messages.cc
! 1599112adb333d195be3bfc539fc9c0d  gcc/cobol/parse.y
! 86d3ebbc7992d38714442c941e2c606a  gcc/cobol/parse_ante.h
! e141e23293fb343e7ccbaa2fe6bcef33  gcc/cobol/parse_util.h
! 671d08c34c0753b924145233054f8c7c  gcc/cobol/scan.l
! 52616f0eace7ada273d249ed8b7e3d49  gcc/cobol/scan_ante.h
! b807722da738ed05d7e57e96dc9b2f1e  gcc/cobol/scan_post.h
! 4633d4d89ae923e2fb816c83d5babb05  gcc/cobol/show_parse.h
! 4d378cd01e0aa67ff81cbac13cafd094  gcc/cobol/structs.cc
! 6a12fdf051ff87867b239b5ae272fd55  gcc/cobol/structs.h
! e628678e4cc51f8198b41105683e4be8  gcc/cobol/symbols.cc
! ee4b331b57f9943ecad0bad580173929  gcc/cobol/symbols.h
! 56876c7f6bf3230239c8142eb049a183  gcc/cobol/symfind.cc
  0b45e8af0c2c2f064b378c02368657f3  gcc/cobol/token_names.h
  434f4899280e27d0717b2e56d5bf12f2  gcc/cobol/udf/stored-char-length.cbl
! 6cfbb59a71130a38c2af95a34c8bc13f  gcc/cobol/util.cc
! 6cc175185e4fa5a6a21bdc88a66d3956  gcc/cobol/util.h
  c1bcbb8330a34acab1f51487c3d5b89f  gcc/collect-utils.cc
  70025ae15b4018e75f6bfcbaa4db4fca  gcc/collect-utils.h
  38716fe5959af2b954c272008e158928  gcc/collect2-aix.cc
--- 3371,3427 ----
  e49d05909919035f9ad4633fc056bc56  gcc/cgraphunit.cc
  2a45e3be9216480f88930217fee8fc7b  gcc/channels.h
  931fe41c17df7e7a6074418f8e41f010  gcc/cif-code.def
! 0899c6d7a3ad01f65f12993c408af1f5  gcc/cobol/ChangeLog
  56c564c4cfd3395214baa46684218f3d  gcc/cobol/Make-lang.in
  0a84e784d2bc4066654d2377fc6a2930  gcc/cobol/TODO
! 721fae29d54f2a632cdf024f72b079d3  gcc/cobol/cbldiag.h
! 5fdc70643a73d31fa87ca25eb9bca477  gcc/cobol/cdf-copy.cc
! 298773ed22793f7c278724d2c7828041  gcc/cobol/cdf.y
! 9e2d50bdc3077d698d2cd5c27a02cf08  gcc/cobol/cdfval.h
! 39a7cc8aae37a642491e77796d652ebe  gcc/cobol/cobol-system.h
  68ed2917eb0043eb0bfe48f5d0494cf1  gcc/cobol/cobol1.cc
  8b7f26d4855e5bb69a66eecc586d9742  gcc/cobol/config-lang.in
! 7e43ef597462b3ceabf3c197b4017e7c  gcc/cobol/convert.cc
! ba30f28abeaa4beeafc56b80054aad73  gcc/cobol/copybook.h
  3f5a0424b32cd09b107e8858af9cf15f  gcc/cobol/dts.h
! d3e145b932227aa8e5b26dec41c06d6a  gcc/cobol/except.cc
! 41ddde89db7edc684fadb0cba4d0e67f  gcc/cobol/exceptg.h
  fa5c36c4b4863c8f410d851d2d404869  gcc/cobol/gcobc
  f67634943eb42bf86ec69714cecc53e6  gcc/cobol/gcobol.1
  527925049a81a36c06220d368570f55a  gcc/cobol/gcobol.3
  a0a0120d2e52dd9bbe26a6d64ba9dc64  gcc/cobol/gcobolspec.cc
! b2e41091291c7cf72c8147a2c0c70728  gcc/cobol/genapi.cc
! 6b57d4d706ed07c61afab91558f052b9  gcc/cobol/genapi.h
! fc04ff820a76db685ff052ebcd99abd4  gcc/cobol/gengen.cc
! 45fc19b3aa2b4be68121b618833d2b38  gcc/cobol/gengen.h
! cf02d8e0ad0de31f86554bdefcd8102a  gcc/cobol/genmath.cc
! 78d263e35c67698f367e118c95157cb4  gcc/cobol/genmath.h
! 6a95a39a8f0c2a7ba9a69b33b3fa6085  gcc/cobol/genutil.cc
! 565cad6ac1e1d8404f36c320c3e2a6ac  gcc/cobol/genutil.h
  7b9c1ead6f9d3661133f7f732811719c  gcc/cobol/help.gen
! 0c56a591cf166a8d83553c2afd4b3ce3  gcc/cobol/inspect.h
! 1d25e20d4c6772646a35ca3fa9e1ed49  gcc/cobol/lang-specs.h
  78d52a99c23b816808264665df785271  gcc/cobol/lang.opt
  2924af2e9df185e08e5e225631897dc5  gcc/cobol/lang.opt.urls
! 35bafd6f548be25f7a9285e482a79d37  gcc/cobol/lexio.cc
! c691e8bb52e1a438ce2f510250bbf4d9  gcc/cobol/lexio.h
! 64538945adf32d271171e0bda2850338  gcc/cobol/messages.cc
! d725d9ce32a1c6294fb3e61bbafe5c3f  gcc/cobol/parse.y
! 448edb3cec02b2d95abebae85723fb6b  gcc/cobol/parse_ante.h
! 7e2e184e48840f26c8ae16ce9cee86b9  gcc/cobol/parse_util.h
! 6310a778bd42874906d23f82711c1ff5  gcc/cobol/scan.l
! bfc37ffde6b2682c3daa7d33bc832477  gcc/cobol/scan_ante.h
! fcc394f9d06bbd841472e0b0d69f643d  gcc/cobol/scan_post.h
! 74a3f55d7d2740db3d3e1945335d4faa  gcc/cobol/show_parse.h
! ffc3f32d296076ad7cbd566875806e2d  gcc/cobol/structs.cc
! c9b6f7041663377c42969a2d442c95df  gcc/cobol/structs.h
! c0fd64f18cba113456e35067de4e1861  gcc/cobol/symbols.cc
! 48599af6cd011e1f412f5df5c9cd453c  gcc/cobol/symbols.h
! 1da102076dc68b2edac18947cbd1c104  gcc/cobol/symfind.cc
  0b45e8af0c2c2f064b378c02368657f3  gcc/cobol/token_names.h
  434f4899280e27d0717b2e56d5bf12f2  gcc/cobol/udf/stored-char-length.cbl
! eed43fc6209daa29c3ee6d4a339ce3e2  gcc/cobol/util.cc
! 71a80320dc4c1e02c0aafd48bea98ea4  gcc/cobol/util.h
  c1bcbb8330a34acab1f51487c3d5b89f  gcc/collect-utils.cc
  70025ae15b4018e75f6bfcbaa4db4fca  gcc/collect-utils.h
  38716fe5959af2b954c272008e158928  gcc/collect2-aix.cc
*************** d3b8ce30c6110489fd0b57d6792f3f29  gcc/co
*** 3492,3500 ****
  88eac990ca6879dcd747cf5113888b1e  gcc/compare-elim.cc
  6137f3da8f70ec4262acab21bb549148  gcc/conditions.h
  4250c8b8d57bf1315174cf436a74a88b  gcc/config.build
! 44f53d3c495e1ff96862a4713260280b  gcc/config.gcc
  d8b0b26795a60b3a991dfbdafe4cd756  gcc/config.host
! 17fa94b7b2de84d2f52d3ef2a238ea0e  gcc/config.in
  8e697813dc96ca90f5d0f4c196efe2cc  gcc/config/README
  09ab460c021260083d94d95ece3cdb5d  gcc/config/aarch64/aarch64-abi-ms-protos.h
  c47b4191f7bac0196ab63ca2c66bfa98  gcc/config/aarch64/aarch64-abi-ms.cc
--- 3494,3502 ----
  88eac990ca6879dcd747cf5113888b1e  gcc/compare-elim.cc
  6137f3da8f70ec4262acab21bb549148  gcc/conditions.h
  4250c8b8d57bf1315174cf436a74a88b  gcc/config.build
! e09248d28725ccbf9611a1da40ae4491  gcc/config.gcc
  d8b0b26795a60b3a991dfbdafe4cd756  gcc/config.host
! 7429bc37ba4d92eacb4fd8c965f21c41  gcc/config.in
  8e697813dc96ca90f5d0f4c196efe2cc  gcc/config/README
  09ab460c021260083d94d95ece3cdb5d  gcc/config/aarch64/aarch64-abi-ms-protos.h
  c47b4191f7bac0196ab63ca2c66bfa98  gcc/config/aarch64/aarch64-abi-ms.cc
*************** ad46aa5e72a5c2c30247bb3cf2ed9f20  gcc/co
*** 3521,3531 ****
  af558ba2beea39cc3b20c9f198e27d8a  gcc/config/aarch64/aarch64-generate-json-tuning-routines.py
  4b98306d3171f975e1bf67e8ca2f3766  gcc/config/aarch64/aarch64-gnu.h
  4bd127c7f191b73cd09e5c916f42ecb7  gcc/config/aarch64/aarch64-isa-modes.def
! 801a2bfc5e70d1b354b8196f88e3f3f7  gcc/config/aarch64/aarch64-json-schema.h
! 8c4af8b532e22519e179ef6e40184e52  gcc/config/aarch64/aarch64-json-tunings-parser-generated.inc
! 8e91c39abd4758c10580eff41a636a52  gcc/config/aarch64/aarch64-json-tunings-parser.cc
  606e85acf12046d37177e8decd22ebd6  gcc/config/aarch64/aarch64-json-tunings-parser.h
! c55f4e3ff5f2b93d8a6529a676d7fd16  gcc/config/aarch64/aarch64-json-tunings-printer-generated.inc
  87b39dbee5f358faaab8caa85493a16e  gcc/config/aarch64/aarch64-json-tunings-printer.cc
  50481181ce92fb4dac1644f120ba36a0  gcc/config/aarch64/aarch64-json-tunings-printer.h
  b5673de84eb78885b56917c7b8b92e97  gcc/config/aarch64/aarch64-ldp-fusion.cc
--- 3523,3533 ----
  af558ba2beea39cc3b20c9f198e27d8a  gcc/config/aarch64/aarch64-generate-json-tuning-routines.py
  4b98306d3171f975e1bf67e8ca2f3766  gcc/config/aarch64/aarch64-gnu.h
  4bd127c7f191b73cd09e5c916f42ecb7  gcc/config/aarch64/aarch64-isa-modes.def
! 86cf0e3aef6665a250c1b031ca1f68fc  gcc/config/aarch64/aarch64-json-schema.h
! e8330ae9ad4a96533561ab2ad0f3133c  gcc/config/aarch64/aarch64-json-tunings-parser-generated.inc
! a7901429aa28e17083fc1eb4cd1aaabf  gcc/config/aarch64/aarch64-json-tunings-parser.cc
  606e85acf12046d37177e8decd22ebd6  gcc/config/aarch64/aarch64-json-tunings-parser.h
! 5bb0cbdfa2290d0100d7f7d06d6ad26c  gcc/config/aarch64/aarch64-json-tunings-printer-generated.inc
  87b39dbee5f358faaab8caa85493a16e  gcc/config/aarch64/aarch64-json-tunings-printer.cc
  50481181ce92fb4dac1644f120ba36a0  gcc/config/aarch64/aarch64-json-tunings-printer.h
  b5673de84eb78885b56917c7b8b92e97  gcc/config/aarch64/aarch64-ldp-fusion.cc
*************** c058178535c874c3d9f517b5db804691  gcc/co
*** 3537,3543 ****
  2eb7f2efec896b19ef19563f26b9cc77  gcc/config/aarch64/aarch64-option-extensions.def
  2cdaca2f6acccb800d5965b66c5168ce  gcc/config/aarch64/aarch64-opts.h
  bea86af4419462a3a3757188d5519ae8  gcc/config/aarch64/aarch64-passes.def
! ae97d0dbf9bfd663b119e34bbaf94183  gcc/config/aarch64/aarch64-protos.h
  7beff4ec013b184132d7c933faa51208  gcc/config/aarch64/aarch64-sched-dispatch.cc
  b824341b8f6fdb8eb1667425adf63db8  gcc/config/aarch64/aarch64-sched-dispatch.h
  da15606bcbef7961db958c042bf81c05  gcc/config/aarch64/aarch64-simd-builtin-types.def
--- 3539,3545 ----
  2eb7f2efec896b19ef19563f26b9cc77  gcc/config/aarch64/aarch64-option-extensions.def
  2cdaca2f6acccb800d5965b66c5168ce  gcc/config/aarch64/aarch64-opts.h
  bea86af4419462a3a3757188d5519ae8  gcc/config/aarch64/aarch64-passes.def
! 661deb741a7a83c2481adcc2def6d8a6  gcc/config/aarch64/aarch64-protos.h
  7beff4ec013b184132d7c933faa51208  gcc/config/aarch64/aarch64-sched-dispatch.cc
  b824341b8f6fdb8eb1667425adf63db8  gcc/config/aarch64/aarch64-sched-dispatch.h
  da15606bcbef7961db958c042bf81c05  gcc/config/aarch64/aarch64-simd-builtin-types.def
*************** aed1c7a89b093d7a786a6ab457841e24  gcc/co
*** 3568,3576 ****
  dec4c8fd03ac5636ba08d9523bee06be  gcc/config/aarch64/aarch64-tuning-enums.def
  fb86888a7b4a251db9c62262e379d564  gcc/config/aarch64/aarch64-tuning-flags.def
  b2ed7b4c85a1fa71b919148f60e2984f  gcc/config/aarch64/aarch64-vxworks.h
! 63561bef3c02d8bbffc05b1ed28b3d70  gcc/config/aarch64/aarch64.cc
  6d08684e5861c8b32845dc6aff2539b8  gcc/config/aarch64/aarch64.h
! c8b74735b920099887b23d3009d7565c  gcc/config/aarch64/aarch64.md
  c5cf87f72305a6ea92d9fd65a668c5f0  gcc/config/aarch64/aarch64.opt
  f8862c1a17df0d9164d1f07fc8288527  gcc/config/aarch64/aarch64.opt.urls
  854a2fd8965d477c5b064388ed354bf1  gcc/config/aarch64/arm_acle.h
--- 3570,3578 ----
  dec4c8fd03ac5636ba08d9523bee06be  gcc/config/aarch64/aarch64-tuning-enums.def
  fb86888a7b4a251db9c62262e379d564  gcc/config/aarch64/aarch64-tuning-flags.def
  b2ed7b4c85a1fa71b919148f60e2984f  gcc/config/aarch64/aarch64-vxworks.h
! 011c5d6467fb869273f969ab0c344981  gcc/config/aarch64/aarch64.cc
  6d08684e5861c8b32845dc6aff2539b8  gcc/config/aarch64/aarch64.h
! ec47958005b469d3d7377f0db34624bb  gcc/config/aarch64/aarch64.md
  c5cf87f72305a6ea92d9fd65a668c5f0  gcc/config/aarch64/aarch64.opt
  f8862c1a17df0d9164d1f07fc8288527  gcc/config/aarch64/aarch64.opt.urls
  854a2fd8965d477c5b064388ed354bf1  gcc/config/aarch64/arm_acle.h
*************** ee1645bd7e049365c9b52b774f3e8324  gcc/co
*** 3636,3642 ****
  0e884947a64edcd1a0ab1c2d7f79ecc3  gcc/config/aarch64/tuning_models/neoversev2.h
  850f4e265f4d69a8db04fb6b9a509a73  gcc/config/aarch64/tuning_models/neoversev3.h
  da9eaf909c14d1ac8802b858a796dd0b  gcc/config/aarch64/tuning_models/neoversev3ae.h
! 76bf5799a4058680896ad8b605b8b9e8  gcc/config/aarch64/tuning_models/olympus.h
  abe9f0139f34302abf43f42fc034f8a4  gcc/config/aarch64/tuning_models/qdf24xx.h
  f4bb7074b559d7a9ada65e9f1ea7e76e  gcc/config/aarch64/tuning_models/saphira.h
  79b67a066ee629e9a5d00e7dbc5da7b3  gcc/config/aarch64/tuning_models/thunderx.h
--- 3638,3644 ----
  0e884947a64edcd1a0ab1c2d7f79ecc3  gcc/config/aarch64/tuning_models/neoversev2.h
  850f4e265f4d69a8db04fb6b9a509a73  gcc/config/aarch64/tuning_models/neoversev3.h
  da9eaf909c14d1ac8802b858a796dd0b  gcc/config/aarch64/tuning_models/neoversev3ae.h
! 4debd50cbb86b9985cb6a173228368ee  gcc/config/aarch64/tuning_models/olympus.h
  abe9f0139f34302abf43f42fc034f8a4  gcc/config/aarch64/tuning_models/qdf24xx.h
  f4bb7074b559d7a9ada65e9f1ea7e76e  gcc/config/aarch64/tuning_models/saphira.h
  79b67a066ee629e9a5d00e7dbc5da7b3  gcc/config/aarch64/tuning_models/thunderx.h
*************** a2d0f6c9bad8a3879b580272be69f1f2  gcc/co
*** 3906,3912 ****
  75577eb7c709c0b2fc654b674a23a488  gcc/config/bpf/bpf-passes.def
  fd3376de883f1d923fa2b6bc26539ac4  gcc/config/bpf/bpf-protos.h
  9af059359c649d0e5182406ffea93506  gcc/config/bpf/bpf.cc
! 9e88bdd36d3469c7e3254faa6eee8c80  gcc/config/bpf/bpf.h
  7074332add0929bff663f1aacef70981  gcc/config/bpf/bpf.md
  b23d58618656034cd89cc31456567c3a  gcc/config/bpf/bpf.opt
  3e2cdf3e83af474ef9980280e6ae16a5  gcc/config/bpf/bpf.opt.urls
--- 3908,3914 ----
  75577eb7c709c0b2fc654b674a23a488  gcc/config/bpf/bpf-passes.def
  fd3376de883f1d923fa2b6bc26539ac4  gcc/config/bpf/bpf-protos.h
  9af059359c649d0e5182406ffea93506  gcc/config/bpf/bpf.cc
! 67f05cbf853ae3716726b8b8088f7239  gcc/config/bpf/bpf.h
  7074332add0929bff663f1aacef70981  gcc/config/bpf/bpf.md
  b23d58618656034cd89cc31456567c3a  gcc/config/bpf/bpf.opt
  3e2cdf3e83af474ef9980280e6ae16a5  gcc/config/bpf/bpf.opt.urls
*************** ba1ccf433d1efd30c6fb7d9330d6c15f  gcc/co
*** 3949,3957 ****
  4f38bcd7d8ce410d760fe673479e1338  gcc/config/cris/cris-modes.def
  26e860b8a3343b6c766d0d778a0ff075  gcc/config/cris/cris-passes.def
  9c37e92c4940cbfae2cc0dffed81013f  gcc/config/cris/cris-protos.h
! c5f25c0b6d5a72d9bf149711fd802caf  gcc/config/cris/cris.cc
  5937d099a75f786eceb3027e381c5f1b  gcc/config/cris/cris.h
! 1e240dc8d585913ba1560ccd812e1c20  gcc/config/cris/cris.md
  9806f1d00685997be4c9f849f3a615d8  gcc/config/cris/cris.opt
  6860fb25a360ee6a896163ea010ecc27  gcc/config/cris/cris.opt.urls
  9e100a5514b76c41c8ab833558ae88b9  gcc/config/cris/elf.opt
--- 3951,3959 ----
  4f38bcd7d8ce410d760fe673479e1338  gcc/config/cris/cris-modes.def
  26e860b8a3343b6c766d0d778a0ff075  gcc/config/cris/cris-passes.def
  9c37e92c4940cbfae2cc0dffed81013f  gcc/config/cris/cris-protos.h
! 0e5387dda087723fe21aa57b524b7bc9  gcc/config/cris/cris.cc
  5937d099a75f786eceb3027e381c5f1b  gcc/config/cris/cris.h
! 2d5e1bf86a7d13a040a43c2cf99e94da  gcc/config/cris/cris.md
  9806f1d00685997be4c9f849f3a615d8  gcc/config/cris/cris.opt
  6860fb25a360ee6a896163ea010ecc27  gcc/config/cris/cris.opt.urls
  9e100a5514b76c41c8ab833558ae88b9  gcc/config/cris/elf.opt
*************** b65281b3d979c9c774d30d65281a07ab  gcc/co
*** 5082,5088 ****
  1e7e450b48a1c3bd178cfe23f0da0001  gcc/config/riscv/riscv-vsetvl.cc
  10ae51c30c9b8e6dce66f20016fae344  gcc/config/riscv/riscv-vsetvl.def
  85dee253312a7f85a1d4f8554a601105  gcc/config/riscv/riscv-zicfilp.cc
! 002259552b08243159a88e63255128e3  gcc/config/riscv/riscv.cc
  cff2fc59ab1defbd178f75bdcd643bcc  gcc/config/riscv/riscv.h
  69bf57d0406b6ab66b5fd796932171e7  gcc/config/riscv/riscv.md
  c721fa1217a74f723ccf84813f721944  gcc/config/riscv/riscv.opt
--- 5084,5090 ----
  1e7e450b48a1c3bd178cfe23f0da0001  gcc/config/riscv/riscv-vsetvl.cc
  10ae51c30c9b8e6dce66f20016fae344  gcc/config/riscv/riscv-vsetvl.def
  85dee253312a7f85a1d4f8554a601105  gcc/config/riscv/riscv-zicfilp.cc
! bbdaf8af9629a33a3914f3449a9f1b7c  gcc/config/riscv/riscv.cc
  cff2fc59ab1defbd178f75bdcd643bcc  gcc/config/riscv/riscv.h
  69bf57d0406b6ab66b5fd796932171e7  gcc/config/riscv/riscv.md
  c721fa1217a74f723ccf84813f721944  gcc/config/riscv/riscv.opt
*************** fb6eddf49bf33b95bff884782f73dc7d  gcc/co
*** 5414,5420 ****
  605e41b649128712bf3488c99aa03901  gcc/config/sol2-rust.cc
  f8b2917f3bac10c9a81564048cb3f9f6  gcc/config/sol2-stubs.cc
  0aea82043a2789e23591a9cf906946d3  gcc/config/sol2.cc
! 5f32be733c4635d1bc85d60f7c7f8c04  gcc/config/sol2.h
  50796270314632458d17ee73a2cd660d  gcc/config/sol2.opt
  4667efab34b488f96b36aff3e7c6c90b  gcc/config/sol2.opt.urls
  9b6245dbf34b906e35664b2135d3d709  gcc/config/sparc/biarch64.h
--- 5416,5422 ----
  605e41b649128712bf3488c99aa03901  gcc/config/sol2-rust.cc
  f8b2917f3bac10c9a81564048cb3f9f6  gcc/config/sol2-stubs.cc
  0aea82043a2789e23591a9cf906946d3  gcc/config/sol2.cc
! 3ac19977dabd92b77df20e5403161bbd  gcc/config/sol2.h
  50796270314632458d17ee73a2cd660d  gcc/config/sol2.opt
  4667efab34b488f96b36aff3e7c6c90b  gcc/config/sol2.opt.urls
  9b6245dbf34b906e35664b2135d3d709  gcc/config/sparc/biarch64.h
*************** a1c9987d514eacbf834fccc97fef96d2  gcc/co
*** 5440,5446 ****
  64fe279e7a27fef34a421155ee183359  gcc/config/sparc/openbsd64.h
  2becc8854942c6d1c3d3dd32d69fbe75  gcc/config/sparc/predicates.md
  0e3ca8313908d01701f4bca0bbe21809  gcc/config/sparc/rtemself.h
! 7218d95589bb4a7f5aa2a3063e9aa0e8  gcc/config/sparc/sol2.h
  658e923ccceee24531666bb5c16ba3bd  gcc/config/sparc/sp-elf.h
  1044ce82c4661c68f92349547f5431d1  gcc/config/sparc/sp64-elf.h
  00ea42a9d0e99fa77faecdc46e0a1c44  gcc/config/sparc/sparc-c.cc
--- 5442,5448 ----
  64fe279e7a27fef34a421155ee183359  gcc/config/sparc/openbsd64.h
  2becc8854942c6d1c3d3dd32d69fbe75  gcc/config/sparc/predicates.md
  0e3ca8313908d01701f4bca0bbe21809  gcc/config/sparc/rtemself.h
! 189ae9531b3c92c2caa74a51f65c9dad  gcc/config/sparc/sol2.h
  658e923ccceee24531666bb5c16ba3bd  gcc/config/sparc/sp-elf.h
  1044ce82c4661c68f92349547f5431d1  gcc/config/sparc/sp64-elf.h
  00ea42a9d0e99fa77faecdc46e0a1c44  gcc/config/sparc/sparc-c.cc
*************** c08812561648d9be8b2c465101f02f55  gcc/co
*** 5450,5458 ****
  0e6d2d27c24d8850325e5f39541238c9  gcc/config/sparc/sparc-opts.h
  710bcf4b6ac9924f665a6ed578c037f2  gcc/config/sparc/sparc-passes.def
  24d69dfb87c13754d1f394397cf82632  gcc/config/sparc/sparc-protos.h
! 4aa1dff3885ce113dbe0d29d0a9959f0  gcc/config/sparc/sparc.cc
! 358486046ade8fd892a884aef662715d  gcc/config/sparc/sparc.h
! 6a687fd90e794e412fd74f87944a0cc8  gcc/config/sparc/sparc.md
  d35b9f07de59a46cdbdd2bfb5aefaa3e  gcc/config/sparc/sparc.opt
  7989b30c48125e3c3acf6b37e76bd44f  gcc/config/sparc/sparc.opt.urls
  9f81c8d12f43312c44cdc761076ad0bc  gcc/config/sparc/sparclet.md
--- 5452,5460 ----
  0e6d2d27c24d8850325e5f39541238c9  gcc/config/sparc/sparc-opts.h
  710bcf4b6ac9924f665a6ed578c037f2  gcc/config/sparc/sparc-passes.def
  24d69dfb87c13754d1f394397cf82632  gcc/config/sparc/sparc-protos.h
! 480d504838ff10a1cf065524bbb8d909  gcc/config/sparc/sparc.cc
! 643f1dc40720ac724fea41ca22f6e185  gcc/config/sparc/sparc.h
! 836e10418252fc63ee11dc5097cf4803  gcc/config/sparc/sparc.md
  d35b9f07de59a46cdbdd2bfb5aefaa3e  gcc/config/sparc/sparc.opt
  7989b30c48125e3c3acf6b37e76bd44f  gcc/config/sparc/sparc.opt.urls
  9f81c8d12f43312c44cdc761076ad0bc  gcc/config/sparc/sparclet.md
*************** c684a36c8d565777dc40e1ae3ba54892  gcc/co
*** 5531,5539 ****
  8a504feb45239812d5d6d1365e1c93d9  gcc/config/vax/predicates.md
  e6b7f2881e994ba36a5d4c0cef76e01e  gcc/config/vax/vax-modes.def
  bf9fe0224bba330c7a3463ae86b8bf7f  gcc/config/vax/vax-protos.h
! e330137b852b8bc5bc7ba14d58094399  gcc/config/vax/vax.cc
  fb9ccdbabb11cadb867f4a1b06d19211  gcc/config/vax/vax.h
! 7115d5e1b893a9248a6df26b34e64edb  gcc/config/vax/vax.md
  c7013330181453774d802642df37d913  gcc/config/vax/vax.opt
  6b9aaec7f058b5b0ddbc9c5cd1f028c3  gcc/config/vax/vax.opt.urls
  f3e64f50532fcd26c0ddd45f2a5ba1ca  gcc/config/visium/constraints.md
--- 5533,5541 ----
  8a504feb45239812d5d6d1365e1c93d9  gcc/config/vax/predicates.md
  e6b7f2881e994ba36a5d4c0cef76e01e  gcc/config/vax/vax-modes.def
  bf9fe0224bba330c7a3463ae86b8bf7f  gcc/config/vax/vax-protos.h
! f74d2ced1f0457e89b45ae2c7750a47a  gcc/config/vax/vax.cc
  fb9ccdbabb11cadb867f4a1b06d19211  gcc/config/vax/vax.h
! 3e6bcaa1860e1bf31f1be55de6b6e3ea  gcc/config/vax/vax.md
  c7013330181453774d802642df37d913  gcc/config/vax/vax.opt
  6b9aaec7f058b5b0ddbc9c5cd1f028c3  gcc/config/vax/vax.opt.urls
  f3e64f50532fcd26c0ddd45f2a5ba1ca  gcc/config/visium/constraints.md
*************** c60f07bed189e2a8fb8abfe19368e9f9  gcc/co
*** 5619,5626 ****
  2341d28c3ca91d40bbe37ba41a733448  gcc/config/xtensa/xtensa.md
  093588e637649f5260b04ad13fe609e6  gcc/config/xtensa/xtensa.opt
  db57d7603312357e8c0cfb21c32353d1  gcc/config/xtensa/xtensa.opt.urls
! 4c7db784d34258a2fd4e4a869aaa275a  gcc/configure
! 0c2ba2ada8e1af85064384e735757904  gcc/configure.ac
  1f52ef379dc4198df7f2c7ab63c8b70e  gcc/configure.tgt
  8a46839a73059f70ef105be9706c2554  gcc/context.cc
  08023c1005def168a8b675813b95d9f4  gcc/context.h
--- 5621,5628 ----
  2341d28c3ca91d40bbe37ba41a733448  gcc/config/xtensa/xtensa.md
  093588e637649f5260b04ad13fe609e6  gcc/config/xtensa/xtensa.opt
  db57d7603312357e8c0cfb21c32353d1  gcc/config/xtensa/xtensa.opt.urls
! 230e9aeb891c0b421e634c452a60abef  gcc/configure
! 615c4685f8f2ff2cf4dcb9ab6f5317f3  gcc/configure.ac
  1f52ef379dc4198df7f2c7ab63c8b70e  gcc/configure.tgt
  8a46839a73059f70ef105be9706c2554  gcc/context.cc
  08023c1005def168a8b675813b95d9f4  gcc/context.h
*************** c5ad0142a191862e3e81ecd3573754b3  gcc/co
*** 5631,5637 ****
  55a33ae415bde0fd2e36ba584894e50b  gcc/coroutine-passes.cc
  7c2ad47e271f9b832badf1740a09c77e  gcc/coverage.cc
  8524318f81a8af8cfaa8d35966d8fdc2  gcc/coverage.h
! 9109745bb283f98a733b5cc23f91c054  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
--- 5633,5639 ----
  55a33ae415bde0fd2e36ba584894e50b  gcc/coroutine-passes.cc
  7c2ad47e271f9b832badf1740a09c77e  gcc/coverage.cc
  8524318f81a8af8cfaa8d35966d8fdc2  gcc/coverage.h
! c4b7fbc84690211a204a29f63b62b7a0  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
*************** bcf7c5d02934e40f17edeb18d58c4d4d  gcc/cp
*** 5667,5692 ****
  f39635970f98bbc4591f6363fe70504b  gcc/cp/ChangeLog-2025
  c1c7801b9b0f379e702a4f6cb83972e7  gcc/cp/ChangeLog.ptr
  9aa3cd9f75c785de9f51446e3f295515  gcc/cp/ChangeLog.tree-ssa
! da351065af25977c46f56d82f11e47f8  gcc/cp/Make-lang.in
  ffb84b07987ea64b438bd69bc6fa4271  gcc/cp/call.cc
  144dd1ae510a7436b569b007470b62da  gcc/cp/cfns.gperf
  39dd4c5a96c7ea132eb3c7ed039a065e  gcc/cp/cfns.h
! 9455033ae8eace23403f6a010e7702a7  gcc/cp/class.cc
  e51f295e858583af5f9cf88b9530adf7  gcc/cp/config-lang.in
! 3b49d417737e6fb30fdab666818d4f84  gcc/cp/constexpr.cc
! c2f2f3e685ad403f20446b400619b7cc  gcc/cp/constraint.cc
  99c403ab218e024bcf6d5d2108ad1f3b  gcc/cp/contracts.cc
  e77a681f560f3e9500f126febdc67ef6  gcc/cp/contracts.h
  f31a917ecaa91652f1ddad33816b79d8  gcc/cp/coroutines.cc
  1817def94193f0cfabd4fa5b321af011  gcc/cp/coroutines.h
! 3bbda7b539934efbaca409affb67d728  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
  370b42bcdf211125186c37665052c30c  gcc/cp/cp-objcp-common.h
  64fa302e46b7097f7d989f5ab418d244  gcc/cp/cp-trait.def
  bc9b29434f2e35fa68caf656161b5c0f  gcc/cp/cp-tree.def
! a921d8f43c381eacb0ba0ff0a9624481  gcc/cp/cp-tree.h
  e2854dfa428fab45fc41bf58fef71e61  gcc/cp/cp-ubsan.cc
  c91187881e424edf65e35cfe9894b892  gcc/cp/cvt.cc
  f067718cf3d629084d8347c4e017afd4  gcc/cp/cxx-pretty-print.cc
--- 5669,5694 ----
  f39635970f98bbc4591f6363fe70504b  gcc/cp/ChangeLog-2025
  c1c7801b9b0f379e702a4f6cb83972e7  gcc/cp/ChangeLog.ptr
  9aa3cd9f75c785de9f51446e3f295515  gcc/cp/ChangeLog.tree-ssa
! 4900b7792287474b80e201dfff9fcd85  gcc/cp/Make-lang.in
  ffb84b07987ea64b438bd69bc6fa4271  gcc/cp/call.cc
  144dd1ae510a7436b569b007470b62da  gcc/cp/cfns.gperf
  39dd4c5a96c7ea132eb3c7ed039a065e  gcc/cp/cfns.h
! 42560849d6bf913e4564a0a58513a9e7  gcc/cp/class.cc
  e51f295e858583af5f9cf88b9530adf7  gcc/cp/config-lang.in
! 6a8102813b40b2cef4dc3da7b37d3085  gcc/cp/constexpr.cc
! 79e598a6c7f212d6781869817d0ab467  gcc/cp/constraint.cc
  99c403ab218e024bcf6d5d2108ad1f3b  gcc/cp/contracts.cc
  e77a681f560f3e9500f126febdc67ef6  gcc/cp/contracts.h
  f31a917ecaa91652f1ddad33816b79d8  gcc/cp/coroutines.cc
  1817def94193f0cfabd4fa5b321af011  gcc/cp/coroutines.h
! 55796595b2fd7f63573486da6f2b31eb  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
  370b42bcdf211125186c37665052c30c  gcc/cp/cp-objcp-common.h
  64fa302e46b7097f7d989f5ab418d244  gcc/cp/cp-trait.def
  bc9b29434f2e35fa68caf656161b5c0f  gcc/cp/cp-tree.def
! 7537a58bf216ed2d07477556cbddb316  gcc/cp/cp-tree.h
  e2854dfa428fab45fc41bf58fef71e61  gcc/cp/cp-ubsan.cc
  c91187881e424edf65e35cfe9894b892  gcc/cp/cvt.cc
  f067718cf3d629084d8347c4e017afd4  gcc/cp/cxx-pretty-print.cc
*************** f067718cf3d629084d8347c4e017afd4  gcc/cp
*** 5696,5702 ****
  6b0c9433f7d3f129a44b59d54babb4eb  gcc/cp/decl.h
  604caef71e607a1c086b5a2fe2908469  gcc/cp/decl2.cc
  12ccd5244973d74a0536adf58261b416  gcc/cp/dump.cc
! 1be2f9764d51e88964ee290314f203a1  gcc/cp/error.cc
  59d3d272a504a462c1f7081637e7f3e5  gcc/cp/except.cc
  70f36ac126d5a18ee7be5d40cf58c2c9  gcc/cp/expr.cc
  447ddbe59eba62b9a389b9ba11701cfc  gcc/cp/friend.cc
--- 5698,5704 ----
  6b0c9433f7d3f129a44b59d54babb4eb  gcc/cp/decl.h
  604caef71e607a1c086b5a2fe2908469  gcc/cp/decl2.cc
  12ccd5244973d74a0536adf58261b416  gcc/cp/dump.cc
! d037a0d883aeb1f887d8ae2abc22e237  gcc/cp/error.cc
  59d3d272a504a462c1f7081637e7f3e5  gcc/cp/except.cc
  70f36ac126d5a18ee7be5d40cf58c2c9  gcc/cp/expr.cc
  447ddbe59eba62b9a389b9ba11701cfc  gcc/cp/friend.cc
*************** b3ff7f1e11444c1a8a1b9471e54c8cdd  gcc/cp
*** 5707,5713 ****
  bc388fb8287f2de7cdf4d78eb8f5d998  gcc/cp/lang-specs.h
  2c33328276b7ca5633320581eb891129  gcc/cp/lex.cc
  e4ccdd9cbe95dde4cce27394a7613dd9  gcc/cp/logic.cc
! 768356082fa712f738301fb19baf2da7  gcc/cp/mangle.cc
  3d68343c4a9d614bb00b91ad53e79a0b  gcc/cp/mapper-client.cc
  27465babcaf6195d4f438ed36bdd6aff  gcc/cp/mapper-client.h
  4be7487ea09330ba02fb0695bc32c905  gcc/cp/mapper-resolver.cc
--- 5709,5715 ----
  bc388fb8287f2de7cdf4d78eb8f5d998  gcc/cp/lang-specs.h
  2c33328276b7ca5633320581eb891129  gcc/cp/lex.cc
  e4ccdd9cbe95dde4cce27394a7613dd9  gcc/cp/logic.cc
! 88a17dec11f2923228a87b655c448a7a  gcc/cp/mangle.cc
  3d68343c4a9d614bb00b91ad53e79a0b  gcc/cp/mapper-client.cc
  27465babcaf6195d4f438ed36bdd6aff  gcc/cp/mapper-client.h
  4be7487ea09330ba02fb0695bc32c905  gcc/cp/mapper-resolver.cc
*************** f3f2070329f6fd771c8e7610a97b8153  gcc/cp
*** 5719,5729 ****
  2cc34a773d90c2531a10a90b908de661  gcc/cp/name-lookup.h
  b98d31c57aa038618db60991b17e0d35  gcc/cp/operators.def
  9efebf39da56d681d4405dfb9e55e3f5  gcc/cp/optimize.cc
! 449f89396eff50fa024acdd5cd21dbfc  gcc/cp/parser.cc
  7973a34c47e3d3c580832655a3a5c3c2  gcc/cp/parser.h
! 68d464353450d9379573163162a4ad26  gcc/cp/pt.cc
  25322928eaff39cf167372554c639e02  gcc/cp/ptree.cc
! 28c9baab92cd8584ac6df805a9c86b74  gcc/cp/reflect.cc
  97df067b24bdcb46ea1a2ca984c26a33  gcc/cp/rtti.cc
  9f7af4d4e940116a4fb0176d09ad180a  gcc/cp/search.cc
  aed64aeae713d5bd3b31a0a2e9efb1c0  gcc/cp/semantics.cc
--- 5721,5731 ----
  2cc34a773d90c2531a10a90b908de661  gcc/cp/name-lookup.h
  b98d31c57aa038618db60991b17e0d35  gcc/cp/operators.def
  9efebf39da56d681d4405dfb9e55e3f5  gcc/cp/optimize.cc
! 186798e67da5d32b31ee0d920a31b4d5  gcc/cp/parser.cc
  7973a34c47e3d3c580832655a3a5c3c2  gcc/cp/parser.h
! d79cb74a7e4b4381184804366ed9ef17  gcc/cp/pt.cc
  25322928eaff39cf167372554c639e02  gcc/cp/ptree.cc
! 0126f2ae2549821f099554f96fdc8877  gcc/cp/reflect.cc
  97df067b24bdcb46ea1a2ca984c26a33  gcc/cp/rtti.cc
  9f7af4d4e940116a4fb0176d09ad180a  gcc/cp/search.cc
  aed64aeae713d5bd3b31a0a2e9efb1c0  gcc/cp/semantics.cc
*************** c503ae44e590daab467a1996ccce967a  gcc/cu
*** 5754,5760 ****
  86700ca4710faebe1a0dbd2da6bcc75d  gcc/custom-sarif-properties/digraphs.h
  cdc60d179f923c009f0432beb1054e5b  gcc/custom-sarif-properties/state-graphs.cc
  58306e5ac720b353f4c495abf155e8a1  gcc/custom-sarif-properties/state-graphs.h
! 3153948ad31d4e4be9f994de0234c705  gcc/d/ChangeLog
  94dbce564aba342900829d11192f8905  gcc/d/ChangeLog-2006
  1a0536d6571bca334bb5c00dbdf257ab  gcc/d/ChangeLog-2007
  362a026d745031260b2e4dd8eba9becc  gcc/d/ChangeLog-2008
--- 5756,5762 ----
  86700ca4710faebe1a0dbd2da6bcc75d  gcc/custom-sarif-properties/digraphs.h
  cdc60d179f923c009f0432beb1054e5b  gcc/custom-sarif-properties/state-graphs.cc
  58306e5ac720b353f4c495abf155e8a1  gcc/custom-sarif-properties/state-graphs.h
! 8b65a55b21109ba1dbcb5e04ba3657b9  gcc/d/ChangeLog
  94dbce564aba342900829d11192f8905  gcc/d/ChangeLog-2006
  1a0536d6571bca334bb5c00dbdf257ab  gcc/d/ChangeLog-2007
  362a026d745031260b2e4dd8eba9becc  gcc/d/ChangeLog-2008
*************** c4bafa9f11987f6707883c515336a81b  gcc/di
*** 6056,6062 ****
  e77227490bb73331a8c2c4d3fb090aa8  gcc/diagnostics/event-id.h
  3f287cabfbab7848ea5951f0eb40833c  gcc/diagnostics/file-cache.cc
  953997b1348037b635e0ed8b419ee4cb  gcc/diagnostics/file-cache.h
! da136636e1ed0e5b4b78de274bcf9a87  gcc/diagnostics/html-sink.cc
  9bfc242600165929baa4ed6bdc70665a  gcc/diagnostics/html-sink.h
  6f82c403415d0c3795d5d4ebed1c7857  gcc/diagnostics/kinds.def
  20fe4ea018233bfcec930d7b424d3f61  gcc/diagnostics/kinds.h
--- 6058,6064 ----
  e77227490bb73331a8c2c4d3fb090aa8  gcc/diagnostics/event-id.h
  3f287cabfbab7848ea5951f0eb40833c  gcc/diagnostics/file-cache.cc
  953997b1348037b635e0ed8b419ee4cb  gcc/diagnostics/file-cache.h
! 6884aa3caac8eed8a33b0d6a63de4a72  gcc/diagnostics/html-sink.cc
  9bfc242600165929baa4ed6bdc70665a  gcc/diagnostics/html-sink.h
  6f82c403415d0c3795d5d4ebed1c7857  gcc/diagnostics/kinds.def
  20fe4ea018233bfcec930d7b424d3f61  gcc/diagnostics/kinds.h
*************** b8034736dae3f6d654eba555f64e1c26  gcc/di
*** 6078,6084 ****
  009ecd89188fdd51b7313ff581575aa3  gcc/diagnostics/paths-output.cc
  35957f691aa90b1f7b9f489e7da9e720  gcc/diagnostics/paths.cc
  91f77747402437b068da1e7be934adec  gcc/diagnostics/paths.h
! e1e8a11c3395d4775d8357ff05483dec  gcc/diagnostics/sarif-sink.cc
  2c419fdad8de985a25f5fe60bd707c38  gcc/diagnostics/sarif-sink.h
  04b71f2b22c1f09aaa33b8832fc5272a  gcc/diagnostics/selftest-context.cc
  3dca4c2a57fd5d49cbeeff9b7242c57a  gcc/diagnostics/selftest-context.h
--- 6080,6086 ----
  009ecd89188fdd51b7313ff581575aa3  gcc/diagnostics/paths-output.cc
  35957f691aa90b1f7b9f489e7da9e720  gcc/diagnostics/paths.cc
  91f77747402437b068da1e7be934adec  gcc/diagnostics/paths.h
! 514e6dfe3d4c9b57f8c05f5aebc159f1  gcc/diagnostics/sarif-sink.cc
  2c419fdad8de985a25f5fe60bd707c38  gcc/diagnostics/sarif-sink.h
  04b71f2b22c1f09aaa33b8832fc5272a  gcc/diagnostics/selftest-context.cc
  3dca4c2a57fd5d49cbeeff9b7242c57a  gcc/diagnostics/selftest-context.h
*************** b8ed1edfd69dbfeaed246e93e113210e  gcc/di
*** 6098,6104 ****
  80cd25171e4056b26c59c89d93ca6249  gcc/diagnostics/url.h
  b5e210d1bf47aa0c5045d643c69881e0  gcc/digraph.cc
  d6ecd8aebafe1dbfb0bbadb8dd0883f9  gcc/digraph.h
! f04ebe9febf976045162b45a69559fd2  gcc/doc/analyzer.texi
  cc657ccd366b9f0e48a9558ccdd011f7  gcc/doc/avr-mmcu.texi
  2581a0356eecad7492c6033a42d08375  gcc/doc/bugreport.texi
  07178e2656fefca3307281845df4b4dd  gcc/doc/cfg.texi
--- 6100,6106 ----
  80cd25171e4056b26c59c89d93ca6249  gcc/diagnostics/url.h
  b5e210d1bf47aa0c5045d643c69881e0  gcc/digraph.cc
  d6ecd8aebafe1dbfb0bbadb8dd0883f9  gcc/digraph.h
! 31a6e794b23ff241bcbf29afa6a07b83  gcc/doc/analyzer.texi
  cc657ccd366b9f0e48a9558ccdd011f7  gcc/doc/avr-mmcu.texi
  2581a0356eecad7492c6033a42d08375  gcc/doc/bugreport.texi
  07178e2656fefca3307281845df4b4dd  gcc/doc/cfg.texi
*************** f47d236d7ee7e48319a13461771035d6  gcc/do
*** 6136,6144 ****
  37d898a82683588b62cca104098ad182  gcc/doc/include/gcc-common.texi
  95c90bf85d3eab67f348ee3ce0bf4050  gcc/doc/include/gpl_v3.texi
  e9b8122841fbfbbc30fee8ed6613c399  gcc/doc/include/texinfo.tex
! ea08d2d8f32ef2324985c5220c87a3cd  gcc/doc/install.texi
  30a2209eee0a2bed76e2d9ff3bd646f2  gcc/doc/install.texi2html
! b1e43968df6d6bc0993803fc02404f0e  gcc/doc/invoke.texi
  dd9d4097ebfa9e936c41913343807268  gcc/doc/languages.texi
  46d2bbbd37002bb71569d0b1f27d7a5a  gcc/doc/libgcc.texi
  ef4f00c423089323edef1d3cff31a4a2  gcc/doc/libgdiagnostics/Makefile
--- 6138,6146 ----
  37d898a82683588b62cca104098ad182  gcc/doc/include/gcc-common.texi
  95c90bf85d3eab67f348ee3ce0bf4050  gcc/doc/include/gpl_v3.texi
  e9b8122841fbfbbc30fee8ed6613c399  gcc/doc/include/texinfo.tex
! 592c83c2f1efccb66e9eef3856d9e65b  gcc/doc/install.texi
  30a2209eee0a2bed76e2d9ff3bd646f2  gcc/doc/install.texi2html
! 8307b34e67b1e4d5f159b4b2701f24ba  gcc/doc/invoke.texi
  dd9d4097ebfa9e936c41913343807268  gcc/doc/languages.texi
  46d2bbbd37002bb71569d0b1f27d7a5a  gcc/doc/libgcc.texi
  ef4f00c423089323edef1d3cff31a4a2  gcc/doc/libgdiagnostics/Makefile
*************** f80b38c70a85f9aeae9688b937b028ba  gcc/fi
*** 6252,6258 ****
  3fa5e4f4f738ce63ebed444306c95973  gcc/fold-const.cc
  0ec02a37dbbe9cb267f0ea1263085ed3  gcc/fold-const.h
  764b231c53a63f6a622c187ac0d381d0  gcc/fold-mem-offsets.cc
! 715c61072e0ef6274113ca7b2ecba7d9  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
--- 6254,6260 ----
  3fa5e4f4f738ce63ebed444306c95973  gcc/fold-const.cc
  0ec02a37dbbe9cb267f0ea1263085ed3  gcc/fold-const.h
  764b231c53a63f6a622c187ac0d381d0  gcc/fold-mem-offsets.cc
! 901006fae86bec33a333a027e4e6f714  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
*************** bcb129d4d143e6ec42b4ddec1fea30b8  gcc/fo
*** 6283,6289 ****
  1f3ee645ab25a3d858b555c00c0327ae  gcc/fortran/arith.h
  b9eb124ac64250ae6b43323a196eb79f  gcc/fortran/array.cc
  bc40e87bca719f86583a020eff2d6a73  gcc/fortran/bbt.cc
! 7ec41a807233773ca4f5bf54c7308a6e  gcc/fortran/check.cc
  cb187afae869d66ea5e19e55fa945052  gcc/fortran/class.cc
  040fe6bac50f04e19e3cd79aa910103d  gcc/fortran/coarray.cc
  ee80d28f835ba80db395760139037e11  gcc/fortran/config-lang.in
--- 6285,6291 ----
  1f3ee645ab25a3d858b555c00c0327ae  gcc/fortran/arith.h
  b9eb124ac64250ae6b43323a196eb79f  gcc/fortran/array.cc
  bc40e87bca719f86583a020eff2d6a73  gcc/fortran/bbt.cc
! fb15866a3ddcfed9466e69b81a8d6dec  gcc/fortran/check.cc
  cb187afae869d66ea5e19e55fa945052  gcc/fortran/class.cc
  040fe6bac50f04e19e3cd79aa910103d  gcc/fortran/coarray.cc
  ee80d28f835ba80db395760139037e11  gcc/fortran/config-lang.in
*************** edad5176d72953374d67effefef0a605  gcc/fo
*** 6294,6300 ****
  48e7987762051d8cf68633af2633e50f  gcc/fortran/cpp.h
  213bc611adee1d275a412b3ed4886e79  gcc/fortran/data.cc
  ac7321680382b23989a6637e02dfb80e  gcc/fortran/data.h
! 4098460197d5afc4b7ef943dafac5cdb  gcc/fortran/decl.cc
  26f9d3cd778f806f891b1ae70cad3305  gcc/fortran/dependency.cc
  b66b99368e3cd17573ae64a38e36c1de  gcc/fortran/dependency.h
  d159d22a53e7b0f3fc49d23c3a112081  gcc/fortran/dump-parse-tree.cc
--- 6296,6302 ----
  48e7987762051d8cf68633af2633e50f  gcc/fortran/cpp.h
  213bc611adee1d275a412b3ed4886e79  gcc/fortran/data.cc
  ac7321680382b23989a6637e02dfb80e  gcc/fortran/data.h
! ce6200014bd4ec5d6727bd0613ffda36  gcc/fortran/decl.cc
  26f9d3cd778f806f891b1ae70cad3305  gcc/fortran/dependency.cc
  b66b99368e3cd17573ae64a38e36c1de  gcc/fortran/dependency.h
  d159d22a53e7b0f3fc49d23c3a112081  gcc/fortran/dump-parse-tree.cc
*************** d159d22a53e7b0f3fc49d23c3a112081  gcc/fo
*** 6304,6320 ****
  d162511ebc8080669ebdf414e36c7d62  gcc/fortran/frontend-passes.cc
  c85c9309a4274609c6ff6466621c90f6  gcc/fortran/gfc-diagnostic.def
  afb07146daad7f36a59c52e053f6772f  gcc/fortran/gfc-internals.texi
! fc7d12e03d706219e1c242ee8e6d4095  gcc/fortran/gfortran.h
  4b41c64e656ca5096ae5a265ff7b2116  gcc/fortran/gfortran.texi
  9da0114ccf35340d3035f21f8a0f3325  gcc/fortran/gfortranspec.cc
  e74b62dc22fe7098c12db5035b41ff3a  gcc/fortran/interface.cc
! 4793e9c888307d569c02b46f858468a4  gcc/fortran/intrinsic.cc
! ec9496f868f02a839c7e138123458eec  gcc/fortran/intrinsic.h
! fa00f165ecb2b5efbeb6fa4bc6d217a2  gcc/fortran/intrinsic.texi
  312a2ab5d69163ee17f8571a964085b9  gcc/fortran/invoke.texi
  3deea9e38b884bce9d11233d65e4b1f7  gcc/fortran/io.cc
  02af2e093ad4f92649a6370fa6dc3215  gcc/fortran/ioparm.def
! 055779edaa3837593a06176a4a7f8bef  gcc/fortran/iresolve.cc
  943be43e521f4084734d183ff4a4fe5e  gcc/fortran/iso-c-binding.def
  e5c0565c05cf7375c9978273f2e553e7  gcc/fortran/iso-fortran-env.def
  20a111338bfdbe210a5826e590844f81  gcc/fortran/lang-specs.h
--- 6306,6322 ----
  d162511ebc8080669ebdf414e36c7d62  gcc/fortran/frontend-passes.cc
  c85c9309a4274609c6ff6466621c90f6  gcc/fortran/gfc-diagnostic.def
  afb07146daad7f36a59c52e053f6772f  gcc/fortran/gfc-internals.texi
! 06176ee1c25b07da57e6b9dbecb55837  gcc/fortran/gfortran.h
  4b41c64e656ca5096ae5a265ff7b2116  gcc/fortran/gfortran.texi
  9da0114ccf35340d3035f21f8a0f3325  gcc/fortran/gfortranspec.cc
  e74b62dc22fe7098c12db5035b41ff3a  gcc/fortran/interface.cc
! 7e06cc5337aba27172fe64c673314c64  gcc/fortran/intrinsic.cc
! 285cce3e348dd08fbaf339358ac57d51  gcc/fortran/intrinsic.h
! 3db093e57d8256b248d0bdb6fdaf42b4  gcc/fortran/intrinsic.texi
  312a2ab5d69163ee17f8571a964085b9  gcc/fortran/invoke.texi
  3deea9e38b884bce9d11233d65e4b1f7  gcc/fortran/io.cc
  02af2e093ad4f92649a6370fa6dc3215  gcc/fortran/ioparm.def
! 8a522b0820556160b0600f9580d4286b  gcc/fortran/iresolve.cc
  943be43e521f4084734d183ff4a4fe5e  gcc/fortran/iso-c-binding.def
  e5c0565c05cf7375c9978273f2e553e7  gcc/fortran/iso-fortran-env.def
  20a111338bfdbe210a5826e590844f81  gcc/fortran/lang-specs.h
*************** f7735c64af748cdef5caffae58a94749  gcc/fo
*** 6326,6353 ****
  bf54232c4c950ed772f4964c4f79629e  gcc/fortran/matchexp.cc
  915f6b30a8c22a5fea18690269a5a4a4  gcc/fortran/mathbuiltins.def
  9687294592a5ccef5d0b8254ab33816b  gcc/fortran/misc.cc
! 25e6aeaf8ad893e5f8ab35f5c786911a  gcc/fortran/module.cc
  97401542f27518750fdb77a3899d8adf  gcc/fortran/openmp.cc
  7baca4fc0a6fcd712dcbccab22987c74  gcc/fortran/options.cc
  51c7efe91d03b1ef05f51f3f1f4c90f6  gcc/fortran/parse.cc
  c97a1f016de974126c688bb9c805f323  gcc/fortran/parse.h
  c5246d76c04dbc669841c906598db57e  gcc/fortran/primary.cc
! e96151804a5a450fc63e85b88f27ef99  gcc/fortran/resolve.cc
  2c98823b77eb8d1c8818d06dc48f3e0a  gcc/fortran/scanner.cc
  18963b3f6aacca960fd6aa72b429a9d2  gcc/fortran/scanner.h
  cb6be151a06683abd748861c64ae065d  gcc/fortran/simplify.cc
  cbdc87ddd4ad5837f1771e93f704a33e  gcc/fortran/st.cc
! 8eef91fc4cbe53fc467883bff650ef9f  gcc/fortran/symbol.cc
  1c6fd4e52d7d8b97d9357ff08b660d49  gcc/fortran/target-memory.cc
  92193b934a673cebed3efed7f74a9cac  gcc/fortran/target-memory.h
! b6b366b7d6617c2dce9a67b7cacccb98  gcc/fortran/trans-array.cc
  a0c40b654df0b5c5213047d26e48e97a  gcc/fortran/trans-array.h
  d92b6f7feff3882a660f0f7c2c60b7b0  gcc/fortran/trans-common.cc
  98960d7450a15e1ecc9789bd0bde16a7  gcc/fortran/trans-const.cc
  0d5cf4117521dba2aea9c8fd7ac67888  gcc/fortran/trans-const.h
  3abb972991494b8a8822ad96886fe26f  gcc/fortran/trans-decl.cc
  e743965d1d422a9979e8ab116e6e5219  gcc/fortran/trans-expr.cc
! dd21e7dc7b5bf0fb841f9cdaab6cbdeb  gcc/fortran/trans-intrinsic.cc
  8a57cfea30bf3f2ccc14a884e7b0d1da  gcc/fortran/trans-io.cc
  06841cda6c842aae9f09268cec2b1f95  gcc/fortran/trans-openmp.cc
  ee35535420c8c9e229f87598de1bf5eb  gcc/fortran/trans-stmt.cc
--- 6328,6355 ----
  bf54232c4c950ed772f4964c4f79629e  gcc/fortran/matchexp.cc
  915f6b30a8c22a5fea18690269a5a4a4  gcc/fortran/mathbuiltins.def
  9687294592a5ccef5d0b8254ab33816b  gcc/fortran/misc.cc
! a465af66dbc504ea8aab1ad5d516072d  gcc/fortran/module.cc
  97401542f27518750fdb77a3899d8adf  gcc/fortran/openmp.cc
  7baca4fc0a6fcd712dcbccab22987c74  gcc/fortran/options.cc
  51c7efe91d03b1ef05f51f3f1f4c90f6  gcc/fortran/parse.cc
  c97a1f016de974126c688bb9c805f323  gcc/fortran/parse.h
  c5246d76c04dbc669841c906598db57e  gcc/fortran/primary.cc
! a9ac07a593afffd5942058c44f146f98  gcc/fortran/resolve.cc
  2c98823b77eb8d1c8818d06dc48f3e0a  gcc/fortran/scanner.cc
  18963b3f6aacca960fd6aa72b429a9d2  gcc/fortran/scanner.h
  cb6be151a06683abd748861c64ae065d  gcc/fortran/simplify.cc
  cbdc87ddd4ad5837f1771e93f704a33e  gcc/fortran/st.cc
! fc63d305427d9109fffe1f000ba871a4  gcc/fortran/symbol.cc
  1c6fd4e52d7d8b97d9357ff08b660d49  gcc/fortran/target-memory.cc
  92193b934a673cebed3efed7f74a9cac  gcc/fortran/target-memory.h
! b12f7b4a655d2ca661566a31817875db  gcc/fortran/trans-array.cc
  a0c40b654df0b5c5213047d26e48e97a  gcc/fortran/trans-array.h
  d92b6f7feff3882a660f0f7c2c60b7b0  gcc/fortran/trans-common.cc
  98960d7450a15e1ecc9789bd0bde16a7  gcc/fortran/trans-const.cc
  0d5cf4117521dba2aea9c8fd7ac67888  gcc/fortran/trans-const.h
  3abb972991494b8a8822ad96886fe26f  gcc/fortran/trans-decl.cc
  e743965d1d422a9979e8ab116e6e5219  gcc/fortran/trans-expr.cc
! 853fc57781b0bc2487d3016bb798649f  gcc/fortran/trans-intrinsic.cc
  8a57cfea30bf3f2ccc14a884e7b0d1da  gcc/fortran/trans-io.cc
  06841cda6c842aae9f09268cec2b1f95  gcc/fortran/trans-openmp.cc
  ee35535420c8c9e229f87598de1bf5eb  gcc/fortran/trans-stmt.cc
*************** f5de8589d497c4d607cadff1ce88dd5c  gcc/hw
*** 6642,6648 ****
  665c1d736f4909ccb17f662f7f060fd7  gcc/hw-doloop.h
  e5e51e93d7d72e1822440531e4d79d1d  gcc/hwint.cc
  b6b1b7e364f00e9287ee1f56254b9be1  gcc/hwint.h
! 3aad9c16ebf9c91f521c99262bb1e385  gcc/ifcvt.cc
  e2229f9ecac43014084b083ddf2d4637  gcc/ifcvt.h
  370b4a8b9decbb822392c32f5fb92a72  gcc/inchash.cc
  bad6404ce4e7f42ff46ce6ae70c77e99  gcc/inchash.h
--- 6644,6650 ----
  665c1d736f4909ccb17f662f7f060fd7  gcc/hw-doloop.h
  e5e51e93d7d72e1822440531e4d79d1d  gcc/hwint.cc
  b6b1b7e364f00e9287ee1f56254b9be1  gcc/hwint.h
! d76f5813130f7b2fed31819bef50cff9  gcc/ifcvt.cc
  e2229f9ecac43014084b083ddf2d4637  gcc/ifcvt.h
  370b4a8b9decbb822392c32f5fb92a72  gcc/inchash.cc
  bad6404ce4e7f42ff46ce6ae70c77e99  gcc/inchash.h
*************** c7c9628cd16fe3e0263939ceb0a865fa  gcc/in
*** 6662,6668 ****
  920db3effdd509146b3f00be906c0885  gcc/ipa-comdats.cc
  0a29af3edd9aa237ec662481a180014e  gcc/ipa-cp.cc
  0f1e7b6760c2459ae3d8d6b55d4020cc  gcc/ipa-cp.h
! 2db0720673179e23a6e269afc34e1abd  gcc/ipa-devirt.cc
  ae1e2041798741a74dbd720bfa8af4c5  gcc/ipa-fnsummary.cc
  179f7c3a6fbca4d8bf253b9fc8e5b21f  gcc/ipa-fnsummary.h
  c4202186d7ed3511a93359f9b276438b  gcc/ipa-free-lang-data.cc
--- 6664,6670 ----
  920db3effdd509146b3f00be906c0885  gcc/ipa-comdats.cc
  0a29af3edd9aa237ec662481a180014e  gcc/ipa-cp.cc
  0f1e7b6760c2459ae3d8d6b55d4020cc  gcc/ipa-cp.h
! 810da40373a77e8f3282ac7a81d25408  gcc/ipa-devirt.cc
  ae1e2041798741a74dbd720bfa8af4c5  gcc/ipa-fnsummary.cc
  179f7c3a6fbca4d8bf253b9fc8e5b21f  gcc/ipa-fnsummary.h
  c4202186d7ed3511a93359f9b276438b  gcc/ipa-free-lang-data.cc
*************** e4ece7cdc20696f99063180449232226  gcc/ji
*** 6804,6813 ****
  175ca350cf51d56a7eaf72e6b286cefd  gcc/jit/libgccjit.h
  2231affe16b9511efa0fd9f7c8acc0ea  gcc/jit/libgccjit.map
  a683bef6f6721b574c76acc1efb5050c  gcc/jit/notes.txt
! 0b32b2cfe5cadc6074ba3c22010a486b  gcc/json-parsing.cc
  9abf13b52172b7c89acb2d980edc7fa3  gcc/json-parsing.h
! cb2c142683e6c45261fcadd4c5e97bdc  gcc/json.cc
! e101169692be7b0591cafd905c476447  gcc/json.h
  598bd9cf01e2b97715ef52af5b0f2241  gcc/jump.cc
  db38a11d4dce106f820651752f564683  gcc/langhooks-def.h
  bd54dcceceea2f4e69957be1075e54e8  gcc/langhooks.cc
--- 6806,6815 ----
  175ca350cf51d56a7eaf72e6b286cefd  gcc/jit/libgccjit.h
  2231affe16b9511efa0fd9f7c8acc0ea  gcc/jit/libgccjit.map
  a683bef6f6721b574c76acc1efb5050c  gcc/jit/notes.txt
! b1dcea3e358594cad325eb47c46157d0  gcc/json-parsing.cc
  9abf13b52172b7c89acb2d980edc7fa3  gcc/json-parsing.h
! 0d99db8e88be060df58fafd4756cc543  gcc/json.cc
! b4ec1e5549ac7493fc495fe210471de2  gcc/json.h
  598bd9cf01e2b97715ef52af5b0f2241  gcc/jump.cc
  db38a11d4dce106f820651752f564683  gcc/langhooks-def.h
  bd54dcceceea2f4e69957be1075e54e8  gcc/langhooks.cc
*************** e05914fad6bd025e9b0679bc2b67e17f  gcc/lc
*** 6822,6828 ****
  6e8385e9139152e084f6b1dd67d946ac  gcc/libgdiagnostics.cc
  4d4d0cd8dcda7b7689febc6aa0b4dec9  gcc/libgdiagnostics.h
  a275aabf8e35245cb8dac2644db84e90  gcc/libgdiagnostics.map
! e0d934deec984bb400ef13aab76f6b89  gcc/libsarifreplay.cc
  9dddaecb6e70b0ba0fe4f7070849aac8  gcc/libsarifreplay.h
  e19816bbba3b641b67df23200047c6ae  gcc/limitx.h
  83de5c6450456e215a5484083afcd32a  gcc/limity.h
--- 6824,6830 ----
  6e8385e9139152e084f6b1dd67d946ac  gcc/libgdiagnostics.cc
  4d4d0cd8dcda7b7689febc6aa0b4dec9  gcc/libgdiagnostics.h
  a275aabf8e35245cb8dac2644db84e90  gcc/libgdiagnostics.map
! 0e8842b66ed67efa5c6cfbfc572785cc  gcc/libsarifreplay.cc
  9dddaecb6e70b0ba0fe4f7070849aac8  gcc/libsarifreplay.h
  e19816bbba3b641b67df23200047c6ae  gcc/limitx.h
  83de5c6450456e215a5484083afcd32a  gcc/limity.h
*************** c6ab645f373e1d6e9ddd212bfc3a95ba  gcc/lo
*** 6840,6852 ****
  d49cf408f9415ef037523414c6e80764  gcc/lower-subreg.h
  841cfef931adce1d98b9755eb3231569  gcc/lra-assigns.cc
  5d1aa184ea3e3c5990e02acbdc762f00  gcc/lra-coalesce.cc
! 92293dff0fbd1caeedb55625725d74ff  gcc/lra-constraints.cc
  2f34a2e53204408e2578f69fb831b0ac  gcc/lra-eliminations.cc
! b998a06aae46793940f70ad156ce33db  gcc/lra-int.h
  57ce9967bab48c81b11b698d319f4d8d  gcc/lra-lives.cc
  22cf0d7ee40c23d417d1d0a134ec0fe5  gcc/lra-remat.cc
  39b048a65c498c5357cb27a2ce50a4df  gcc/lra-spills.cc
! 29537154d1e81052161183b69699ab3b  gcc/lra.cc
  7a689be5eced38293e966e1291a1d1b9  gcc/lra.h
  a2447b9f89d62f80177f9fa725d4749e  gcc/lto-cgraph.cc
  642fbdeaf8df2a150746f15ad409d071  gcc/lto-compress.cc
--- 6842,6854 ----
  d49cf408f9415ef037523414c6e80764  gcc/lower-subreg.h
  841cfef931adce1d98b9755eb3231569  gcc/lra-assigns.cc
  5d1aa184ea3e3c5990e02acbdc762f00  gcc/lra-coalesce.cc
! 394ec924bb5439ad36502751826975cc  gcc/lra-constraints.cc
  2f34a2e53204408e2578f69fb831b0ac  gcc/lra-eliminations.cc
! 162ff926a4380aab6ddc70402e552b44  gcc/lra-int.h
  57ce9967bab48c81b11b698d319f4d8d  gcc/lra-lives.cc
  22cf0d7ee40c23d417d1d0a134ec0fe5  gcc/lra-remat.cc
  39b048a65c498c5357cb27a2ce50a4df  gcc/lra-spills.cc
! c76b949ef3de2fdb3f6b0568db10b5ff  gcc/lra.cc
  7a689be5eced38293e966e1291a1d1b9  gcc/lra.h
  a2447b9f89d62f80177f9fa725d4749e  gcc/lto-cgraph.cc
  642fbdeaf8df2a150746f15ad409d071  gcc/lto-compress.cc
*************** a7e9e00378501c6078d977c5ea3fabb3  gcc/lt
*** 6862,6869 ****
  6c99c98c397a53a6a56da792d20092b0  gcc/lto-streamer.cc
  2d378e58ffe32f0e50ca9de25f61ef5f  gcc/lto-streamer.h
  edfadb86beca8d7718985357731a9913  gcc/lto-wrapper.cc
! 84cf8d9ce7b24fb06e3d611c51596636  gcc/lto/ChangeLog
! df1dcca39d7c8f8db6cbab8fef4394e3  gcc/lto/Make-lang.in
  107bbf87618e39ff03662c0cd52a3f35  gcc/lto/common.cc
  eb5f3398fbf5d50b50c315e2d5891e25  gcc/lto/common.h
  7cfda51bb74b97d30a44070bb3888da7  gcc/lto/config-lang.in
--- 6864,6871 ----
  6c99c98c397a53a6a56da792d20092b0  gcc/lto-streamer.cc
  2d378e58ffe32f0e50ca9de25f61ef5f  gcc/lto-streamer.h
  edfadb86beca8d7718985357731a9913  gcc/lto-wrapper.cc
! 055dda05f6f52d354ea1611a7cc47374  gcc/lto/ChangeLog
! 9760854779553bb13e454a3fbaea9c63  gcc/lto/Make-lang.in
  107bbf87618e39ff03662c0cd52a3f35  gcc/lto/common.cc
  eb5f3398fbf5d50b50c315e2d5891e25  gcc/lto/common.h
  7cfda51bb74b97d30a44070bb3888da7  gcc/lto/config-lang.in
*************** cdc26bd8ead0ef188e59165e859c822d  gcc/om
*** 7907,7913 ****
  2f6456a4cc816c9b75844b1625b26349  gcc/omp-expand.h
  8b82f3e01be2ffdbcd3f14366979d838  gcc/omp-general.cc
  eec035943fdd9f32f7d83cff91c4dfcb  gcc/omp-general.h
! feefdabfae453daa31c3ebf314bfb55e  gcc/omp-low.cc
  1c84cef0613c186032b0fc0682b72ab8  gcc/omp-low.h
  e15278003e18a529caf759e00fbb8140  gcc/omp-oacc-kernels-decompose.cc
  e46559b06f0c63bac8a2626dcddfb876  gcc/omp-oacc-neuter-broadcast.cc
--- 7909,7915 ----
  2f6456a4cc816c9b75844b1625b26349  gcc/omp-expand.h
  8b82f3e01be2ffdbcd3f14366979d838  gcc/omp-general.cc
  eec035943fdd9f32f7d83cff91c4dfcb  gcc/omp-general.h
! b4c9fd942cc03a5d04f89f211bb32584  gcc/omp-low.cc
  1c84cef0613c186032b0fc0682b72ab8  gcc/omp-low.h
  e15278003e18a529caf759e00fbb8140  gcc/omp-oacc-kernels-decompose.cc
  e46559b06f0c63bac8a2626dcddfb876  gcc/omp-oacc-neuter-broadcast.cc
*************** b21c32de4ac41afaa112df92995fbc7b  gcc/ta
*** 8690,8696 ****
  8125dc2ec6773b874996579f2c7a5a45  gcc/targhooks.cc
  407bffe68a928437a42d3979f89d8c46  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! bb5d055b5e2a0b87a68e9e3e5329d555  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
--- 8692,8698 ----
  8125dc2ec6773b874996579f2c7a5a45  gcc/targhooks.cc
  407bffe68a928437a42d3979f89d8c46  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 9fcd4f5c8f1e80c33b5e4636e44b829a  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
*************** c10fc254098370506be3ac2011766359  gcc/te
*** 17074,17079 ****
--- 17076,17082 ----
  0fec66df6dda72eb37e7257941a058bd  gcc/testsuite/algol68/compile/error-widening-8.a68
  cb076d039affa49f256d588c4171e17e  gcc/testsuite/algol68/compile/error-widening-9.a68
  291ee42852cd8c1f62d2aae6a67fb348  gcc/testsuite/algol68/compile/formal-bounds-expected-1.a68
+ c05ab27ab53e7f2af37255a03019264b  gcc/testsuite/algol68/compile/formal-hole-1.a68
  0592eb4265d3d32a7bec1eaae4ef3c6d  gcc/testsuite/algol68/compile/hidden-operators-1.a68
  373d5467e21c4017bcef8027af2831ab  gcc/testsuite/algol68/compile/implicit-widening-1.a68
  34dc6e8add5638f97ec0b506f54e0899  gcc/testsuite/algol68/compile/include-supper.a68
*************** ae090482307635cef763b8472c5f9f63  gcc/te
*** 17225,17230 ****
--- 17228,17234 ----
  e7129df766858f1d3fa7cddc06870e34  gcc/testsuite/algol68/execute/bits-shift-1.a68
  2106e23f362f111ec6348cd6f382cdec  gcc/testsuite/algol68/execute/bits-shift-2.a68
  62eb1ffb4baa1314de645f7bc57cec6b  gcc/testsuite/algol68/execute/bits-shift-3.a68
+ 61680edfccb9d633594d35fd2c41a3cb  gcc/testsuite/algol68/execute/bits-shift-4.a68
  42b771eaf2ba3d0c0b83ad6df8905be4  gcc/testsuite/algol68/execute/bits-test-1.a68
  ec8d149dd4b8f99f91e13d231858cfcd  gcc/testsuite/algol68/execute/boolops-1.a68
  f081dd04a0bf5e6ab8d9e46fe1bfefb9  gcc/testsuite/algol68/execute/call-1.a68
*************** c2a62320ffa3899b770e9019897e0751  gcc/te
*** 17473,17478 ****
--- 17477,17484 ----
  69cd86a9e09e75f04433680a7d71edcd  gcc/testsuite/algol68/execute/modules/module23bar.a68
  ac3aed0ffb0459584e0d54861ead9da9  gcc/testsuite/algol68/execute/modules/module23foo.a68
  1d06ebf7fbc01a467cfa1d3b4554cdd4  gcc/testsuite/algol68/execute/modules/module24.a68
+ fb5d787363242153b6d326012dd39d7f  gcc/testsuite/algol68/execute/modules/module25a.a68
+ f6c69601589675dd714d44f63d98560f  gcc/testsuite/algol68/execute/modules/module25b.a68
  9e0733a763fc93bd2c58a8ffca51301f  gcc/testsuite/algol68/execute/modules/module3.a68
  1225a4492a80b08cd38a8c74e25a7ab0  gcc/testsuite/algol68/execute/modules/module4.a68
  4ceb6b4c31b8b4abc32b8c6a92979888  gcc/testsuite/algol68/execute/modules/module5.a68
*************** bd25a4aeb21a959d38e6a1ccc89a65ab  gcc/te
*** 17495,17500 ****
--- 17501,17507 ----
  a4cbfef7dd02cb406d5a8801cf55df5c  gcc/testsuite/algol68/execute/modules/program-22.a68
  43d51a35de25739abd7cf9304c134f34  gcc/testsuite/algol68/execute/modules/program-23.a68
  299c649a8c487402e3ec8d3ada8bdf8a  gcc/testsuite/algol68/execute/modules/program-24.a68
+ c46ca2f86ebc5b629411801c164017bc  gcc/testsuite/algol68/execute/modules/program-25.a68
  b8f47f3c2df580248368a5c298a1b812  gcc/testsuite/algol68/execute/modules/program-3.a68
  7d433464d7d562ce9bd71eea28f40c03  gcc/testsuite/algol68/execute/modules/program-4.a68
  a00ad027485af688f31ddcf5b822ad9e  gcc/testsuite/algol68/execute/modules/program-5.a68
*************** a66185ed3bef2742621b423d3bec08ab  gcc/te
*** 18239,18244 ****
--- 18246,18252 ----
  7d75523d81879148276b42e991a4c362  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-pr108935-1a.c
  66723f902622a5e196b22ca3d8fceff6  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-pr108935-2.c
  06baba8fb190338b8a7cb3d26bb98679  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-pr122975.c
+ 5c1d21e1756dcaab29cf4f3d79920304  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-pr123973.c
  43c57be318716a133d18499c08ddc7aa  gcc/testsuite/c-c++-common/analyzer/infinite-recursion-variadic.c
  b5d43db912cf8450f4d29c2782ff99f0  gcc/testsuite/c-c++-common/analyzer/infinite-recursion.c
  e7a346d9228f0a095843adfb8d30f916  gcc/testsuite/c-c++-common/analyzer/init.c
*************** d2d0bf430ae5db83cb2eeb1d4c3c4844  gcc/te
*** 18525,18530 ****
--- 18533,18539 ----
  76a9a3cbf5361173bf61bc8c208e9d90  gcc/testsuite/c-c++-common/analyzer/sprintf-2.c
  5dd0b9c5a39e0eac15af79faec998e4e  gcc/testsuite/c-c++-common/analyzer/sprintf-3.c
  a97a1068bf67d70b5efb114f54a7aad1  gcc/testsuite/c-c++-common/analyzer/sprintf-concat.c
+ df79aefe937952285e9d24cbfc4d0438  gcc/testsuite/c-c++-common/analyzer/sprintf-pr117369.c
  0d17ba25adaab3e664c5b31f67e250f4  gcc/testsuite/c-c++-common/analyzer/stale-frame-1.c
  44d8756f94c5eb1f54f1ad42b42b7c7e  gcc/testsuite/c-c++-common/analyzer/stdarg-pr111289-int.c
  565c27c80630eebb81d83c9cfbd163f5  gcc/testsuite/c-c++-common/analyzer/stdarg-pr111289-ptr.c
*************** c4e5247a7ee4e73d4190e5abea3941e0  gcc/te
*** 18696,18702 ****
  e2f486b0dd43e40b8a43561b9dd25b7f  gcc/testsuite/c-c++-common/asan/pr63316.c
  272a8a4b4eb62045f13f25163fae08ca  gcc/testsuite/c-c++-common/asan/pr63638.c
  0a221c339accacadef51e91e2f07b9ba  gcc/testsuite/c-c++-common/asan/pr63888.c
! 85fe6e20583717b2490f9ecef45a4353  gcc/testsuite/c-c++-common/asan/pr64820.c
  430079f735bd0792e25216b9c0862dae  gcc/testsuite/c-c++-common/asan/pr70541.c
  dee6718aa031ca364c15580524cba02b  gcc/testsuite/c-c++-common/asan/pr70712.c
  597319c6e2a780b5c408db133cfae42c  gcc/testsuite/c-c++-common/asan/pr71480.c
--- 18705,18711 ----
  e2f486b0dd43e40b8a43561b9dd25b7f  gcc/testsuite/c-c++-common/asan/pr63316.c
  272a8a4b4eb62045f13f25163fae08ca  gcc/testsuite/c-c++-common/asan/pr63638.c
  0a221c339accacadef51e91e2f07b9ba  gcc/testsuite/c-c++-common/asan/pr63888.c
! 69e4d5a46ab97ef0497b78ba2f7cb8aa  gcc/testsuite/c-c++-common/asan/pr64820.c
  430079f735bd0792e25216b9c0862dae  gcc/testsuite/c-c++-common/asan/pr70541.c
  dee6718aa031ca364c15580524cba02b  gcc/testsuite/c-c++-common/asan/pr70712.c
  597319c6e2a780b5c408db133cfae42c  gcc/testsuite/c-c++-common/asan/pr71480.c
*************** ac77f7488fa8f0e89a4ab95262319596  gcc/te
*** 18723,18729 ****
  6265da622688bcc368760909a7d28eba  gcc/testsuite/c-c++-common/asan/strncpy-overflow-1.c
  ba231380f930c8e385536084b126f8a6  gcc/testsuite/c-c++-common/asan/swapcontext-test-1.c
  a16171ad5a320a8fe7705639f3e9cb35  gcc/testsuite/c-c++-common/asan/use-after-free-1.c
! a789f5331525aaabcfdd779b2981edf6  gcc/testsuite/c-c++-common/asan/use-after-return-1.c
  ca3a4e630befd762fc8576e74160a5a4  gcc/testsuite/c-c++-common/asan/user-section-1.c
  0a2e4001b6ac2328ef0e29cfc0519941  gcc/testsuite/c-c++-common/asan/user-section-2.c
  3e31f5c1b9397bc124776d607d15c688  gcc/testsuite/c-c++-common/asan/user-section-3.c
--- 18732,18738 ----
  6265da622688bcc368760909a7d28eba  gcc/testsuite/c-c++-common/asan/strncpy-overflow-1.c
  ba231380f930c8e385536084b126f8a6  gcc/testsuite/c-c++-common/asan/swapcontext-test-1.c
  a16171ad5a320a8fe7705639f3e9cb35  gcc/testsuite/c-c++-common/asan/use-after-free-1.c
! a3f759dba537998dd35b9fa6ea16238b  gcc/testsuite/c-c++-common/asan/use-after-return-1.c
  ca3a4e630befd762fc8576e74160a5a4  gcc/testsuite/c-c++-common/asan/user-section-1.c
  0a2e4001b6ac2328ef0e29cfc0519941  gcc/testsuite/c-c++-common/asan/user-section-2.c
  3e31f5c1b9397bc124776d607d15c688  gcc/testsuite/c-c++-common/asan/user-section-3.c
*************** adad7bd5c50995330c12e8103e6790a5  gcc/te
*** 19805,19810 ****
--- 19814,19821 ----
  1164bc26f7382179d1bd6b607af1d336  gcc/testsuite/c-c++-common/gomp/pr106981.c
  8f995161beda01326e712ba172a760f8  gcc/testsuite/c-c++-common/gomp/pr107001.c
  9b182f81cba9d60fb2cbbde45ceae582  gcc/testsuite/c-c++-common/gomp/pr108244-3.c
+ af061b10e337b521ba63a13731d4f5c7  gcc/testsuite/c-c++-common/gomp/pr113436-1.c
+ c39bbf010ba2028abc3ac9fe01a48744  gcc/testsuite/c-c++-common/gomp/pr113436-2.c
  80b170be7a344fbbe661e68535fc79c5  gcc/testsuite/c-c++-common/gomp/pr118579.c
  e8f7b694ebd3603789b6992bc816222d  gcc/testsuite/c-c++-common/gomp/pr118639.c
  d29126c43ce63e6c41ed6130742b15e2  gcc/testsuite/c-c++-common/gomp/pr118965-1.c
*************** f963895d994b62510e687873776b4ef0  gcc/te
*** 20567,20572 ****
--- 20578,20584 ----
  a05a712863ab77c00f035dbc3316dcf8  gcc/testsuite/c-c++-common/substring-location-PR-87721.c
  993f3902900220d0ab605caf29f79d05  gcc/testsuite/c-c++-common/taskloop-1.c
  5954df765528b3ac48d7c5a17f88a220  gcc/testsuite/c-c++-common/tls-attr-common.c
+ f3abf92df2174103abccf8dffe4c9a1b  gcc/testsuite/c-c++-common/tls-attr-dll.c
  870c519d9bdba9a9f38d1a458e552cc6  gcc/testsuite/c-c++-common/tls-attr-le-pic.c
  25693c785a14f8775324cf99cc5073d0  gcc/testsuite/c-c++-common/tls-attr-le-pie.c
  e3aa84ea02008121366d37e9c2eba817  gcc/testsuite/c-c++-common/tm/20100127.c
*************** d76466e093fe006789ccb59cf89f01bb  gcc/te
*** 20721,20726 ****
--- 20733,20739 ----
  993b07c1c8f1a0db0b2e9956c1045e2c  gcc/testsuite/c-c++-common/torture/pr117912-1.c
  457a8eeb2f3d9696c824ae9b75b4c721  gcc/testsuite/c-c++-common/torture/pr117912-2.c
  700dd88b5774e08268eb43b2572a7160  gcc/testsuite/c-c++-common/torture/pr117912-3.c
+ c3a3398c777344bf7331095f9c91352e  gcc/testsuite/c-c++-common/torture/pr124086-1.c
  9f1ae2fa915c5159ec134a1894ad5cf1  gcc/testsuite/c-c++-common/torture/pr42834.c
  675e839574d99a5e8a0446f66b3520ca  gcc/testsuite/c-c++-common/torture/pr46137.c
  dad442c09041500a2c414da240f49b82  gcc/testsuite/c-c++-common/torture/pr53505.c
*************** bf21188860d25a68d2f9c85951bdde9b  gcc/te
*** 21679,21684 ****
--- 21692,21725 ----
  bdbf9d12e14720fb7081dad4477a7bae  gcc/testsuite/cobol.dg/group2/UNSTRING_DELIMITER_IN.cob
  94779fadfcd69b9dabbc720f231c4593  gcc/testsuite/cobol.dg/group2/UNSTRING_with_FUNCTION___literal.cob
  db11d5a6931ffe03ab944182745e5364  gcc/testsuite/cobol.dg/group2/UNSTRING_with_FUNCTION___literal.out
+ 5dd9ac53d72bf3cd5943cc5c1a973d73  gcc/testsuite/cobol.dg/group2/USING_COMP-3_BY_REFERENCE.cob
+ f8c36d4996c19f8ace674c941dd2cf6b  gcc/testsuite/cobol.dg/group2/USING_COMP-3_BY_REFERENCE.out
+ 613139154572475fafc1589dc2fdc0c9  gcc/testsuite/cobol.dg/group2/USING_COMP-3_BY_VALUE.cob
+ f8c36d4996c19f8ace674c941dd2cf6b  gcc/testsuite/cobol.dg/group2/USING_COMP-3_BY_VALUE.out
+ b5c76958561b4717224f0d4e65281694  gcc/testsuite/cobol.dg/group2/USING_FLOAT-SLX_BY_REFERENCE.cob
+ 29bc7b7720cb706971c3e72eb623c222  gcc/testsuite/cobol.dg/group2/USING_FLOAT-SLX_BY_REFERENCE.out
+ 71bfd9bc1b28ea20778fdfc5d31a1bd6  gcc/testsuite/cobol.dg/group2/USING_FLOAT-SLX_BY_VALUE.cob
+ 29bc7b7720cb706971c3e72eb623c222  gcc/testsuite/cobol.dg/group2/USING_FLOAT-SLX_BY_VALUE.out
+ 80529bfd4d06770a96ce9abc18ff1f17  gcc/testsuite/cobol.dg/group2/USING_NumericDisplay_BY_REFERENCE.cob
+ f8c36d4996c19f8ace674c941dd2cf6b  gcc/testsuite/cobol.dg/group2/USING_NumericDisplay_BY_REFERENCE.out
+ feb56a931a17a09106194358ac0b0d9e  gcc/testsuite/cobol.dg/group2/USING_NumericDisplay_BY_VALUE.cob
+ f8c36d4996c19f8ace674c941dd2cf6b  gcc/testsuite/cobol.dg/group2/USING_NumericDisplay_BY_VALUE.out
+ 1fd2035d618260baa285708fe7f2ec33  gcc/testsuite/cobol.dg/group2/USING_Signed_-_COMP-3_BY_REFERENCE.cob
+ 9425cc26848e4a6a31cce9505564f219  gcc/testsuite/cobol.dg/group2/USING_Signed_-_COMP-3_BY_REFERENCE.out
+ 86d9d1cb0ce8b19ed8c42532a547b892  gcc/testsuite/cobol.dg/group2/USING_Signed_-_COMP-3_BY_VALUE.cob
+ 9425cc26848e4a6a31cce9505564f219  gcc/testsuite/cobol.dg/group2/USING_Signed_-_COMP-3_BY_VALUE.out
+ 885a3840e74d05d32856d74343f4d611  gcc/testsuite/cobol.dg/group2/USING_Signed_-_NumericDisplay_BY_REFERENCE.cob
+ 9425cc26848e4a6a31cce9505564f219  gcc/testsuite/cobol.dg/group2/USING_Signed_-_NumericDisplay_BY_REFERENCE.out
+ 914dc6c349acdc585081ca131fe212ea  gcc/testsuite/cobol.dg/group2/USING_Signed_-_NumericDisplay_BY_VALUE.cob
+ 9425cc26848e4a6a31cce9505564f219  gcc/testsuite/cobol.dg/group2/USING_Signed_-_NumericDisplay_BY_VALUE.out
+ 2803b4a5cddc7056fdf25b9d940af9fc  gcc/testsuite/cobol.dg/group2/USING_Signed___COMP-3_BY_REFERENCE.cob
+ 6f257ad2abd428c7909f8ea323ccc168  gcc/testsuite/cobol.dg/group2/USING_Signed___COMP-3_BY_REFERENCE.out
+ 9dece264282cad187214e44f228cd111  gcc/testsuite/cobol.dg/group2/USING_Signed___COMP-3_BY_VALUE.cob
+ 6f257ad2abd428c7909f8ea323ccc168  gcc/testsuite/cobol.dg/group2/USING_Signed___COMP-3_BY_VALUE.out
+ b420dc948722a4b2fc490a3babd17b7f  gcc/testsuite/cobol.dg/group2/USING_Signed___NumericDisplay_BY_REFERENCE.cob
+ 6f257ad2abd428c7909f8ea323ccc168  gcc/testsuite/cobol.dg/group2/USING_Signed___NumericDisplay_BY_REFERENCE.out
+ 3153d2ffae3ff3b87ed8cadff567a8f5  gcc/testsuite/cobol.dg/group2/USING_Signed___NumericDisplay_BY_VALUE.cob
+ 6f257ad2abd428c7909f8ea323ccc168  gcc/testsuite/cobol.dg/group2/USING_Signed___NumericDisplay_BY_VALUE.out
  8b384b3032fcac908a2fdc502dc156e8  gcc/testsuite/cobol.dg/group2/_-static__compilation.cob
  7ccbb0b17254a4346153a02e58218979  gcc/testsuite/cobol.dg/group2/access_to_OPTIONAL_LINKAGE_item_not_passed.cob
  e54e577d8de75b710938fa62794487fc  gcc/testsuite/cobol.dg/group2/access_to_OPTIONAL_LINKAGE_item_not_passed.out
*************** eafad55d1edd46129b380a1d3be7e6ed  gcc/te
*** 22191,22196 ****
--- 22232,22238 ----
  e000c1d398eb170979b06c1a5a317727  gcc/testsuite/g++.dg/analyzer/fd-bind-pr107783.C
  acd12a34fb1477ca263e7f38269f40d0  gcc/testsuite/g++.dg/analyzer/fno-exception.C
  7744e4ee593e6479779dcfc983f35022  gcc/testsuite/g++.dg/analyzer/ice-pr116228.C
+ d1c56cd4e3f6fde52c61d600415eff40  gcc/testsuite/g++.dg/analyzer/ice-pr124073.C
  5ada15fa323a1043ed8e9454047ae98f  gcc/testsuite/g++.dg/analyzer/infinite-recursion-1.C
  3ab5a03785e0beb328826ec97a100dfe  gcc/testsuite/g++.dg/analyzer/infinite-recursion-2.C
  6c9235c35035b59cc0a83132c639d00f  gcc/testsuite/g++.dg/analyzer/infinite-recursion-3.C
*************** b8cd89a7510ad4bbf02ec052d02d2ee0  gcc/te
*** 23540,23545 ****
--- 23582,23588 ----
  eeac975a1b841cef4d5a4c468314ed8c  gcc/testsuite/g++.dg/cpp0x/constexpr-104472.C
  6ef86dfa8bcd129320f2714974f8ad93  gcc/testsuite/g++.dg/cpp0x/constexpr-105321.C
  24bbf6c5e0f31296c48440d4dae33447  gcc/testsuite/g++.dg/cpp0x/constexpr-113083.C
+ cf48bd83fff3e69e5f82d30185ef08d0  gcc/testsuite/g++.dg/cpp0x/constexpr-123889.C
  3e4cac522763806230540d3da6cc5ee1  gcc/testsuite/g++.dg/cpp0x/constexpr-46336.C
  d079e67f3b2be485ac7aed93b70984d2  gcc/testsuite/g++.dg/cpp0x/constexpr-46420.C
  329a82a822423273c0c0256fd27a6d52  gcc/testsuite/g++.dg/cpp0x/constexpr-47570.C
*************** b29a1864b99db07583a850e2242025b0  gcc/te
*** 25699,25705 ****
  b5e0bd0074ec33c2369ad0e104f63179  gcc/testsuite/g++.dg/cpp0x/ref-qual21.C
  68b27ec15231994ad0330625660d2720  gcc/testsuite/g++.dg/cpp0x/ref-qual3.C
  1bb06529f586a3e77263290dd006534e  gcc/testsuite/g++.dg/cpp0x/ref-qual4.C
! 32e38316bdc7aa39b2e1811744ca40b7  gcc/testsuite/g++.dg/cpp0x/ref-qual5.C
  ba0b53c553f6ff24cf6f794b57c9bc32  gcc/testsuite/g++.dg/cpp0x/ref-qual6.C
  c288331543b30d300aa6764b7ae67cda  gcc/testsuite/g++.dg/cpp0x/ref-qual7.C
  9352f10d371ed23cd75d2c19a1426a76  gcc/testsuite/g++.dg/cpp0x/ref-qual8.C
--- 25742,25748 ----
  b5e0bd0074ec33c2369ad0e104f63179  gcc/testsuite/g++.dg/cpp0x/ref-qual21.C
  68b27ec15231994ad0330625660d2720  gcc/testsuite/g++.dg/cpp0x/ref-qual3.C
  1bb06529f586a3e77263290dd006534e  gcc/testsuite/g++.dg/cpp0x/ref-qual4.C
! 04e286455cb2774b8859179a063d46bb  gcc/testsuite/g++.dg/cpp0x/ref-qual5.C
  ba0b53c553f6ff24cf6f794b57c9bc32  gcc/testsuite/g++.dg/cpp0x/ref-qual6.C
  c288331543b30d300aa6764b7ae67cda  gcc/testsuite/g++.dg/cpp0x/ref-qual7.C
  9352f10d371ed23cd75d2c19a1426a76  gcc/testsuite/g++.dg/cpp0x/ref-qual8.C
*************** c0e5d885fa865eb6022dc0d49f95ccc5  gcc/te
*** 27773,27778 ****
--- 27816,27822 ----
  db9c91c24877e8deb6833879427c1c5a  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics7.C
  bbec4ebaa9eb25cb6f5674378a048924  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics8.C
  91a2adb2573597b44ca672b07479e1fd  gcc/testsuite/g++.dg/cpp23/explicit-obj-diagnostics9.C
+ 3b319517c82e6d742f914bac434e5633  gcc/testsuite/g++.dg/cpp23/explicit-obj-eval-order.C
  d794673e83c406364ada43bb3424172f  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda1.C
  63a44991fb60332c0389b38376547489  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda10.C
  809122730285c1f3d656e4d50b24056e  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda11.C
*************** fe56bf124d429ccaa887937cdd60d625  gcc/te
*** 27785,27790 ****
--- 27829,27835 ----
  d3a5a9df5514968709862976635c8094  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda18.C
  4882304f120b6e2ec91e0db6c07d5eb4  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda19.C
  87abca8eb660254fbf201e771eef3751  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda2.C
+ 15806046d4b84c665a24477e28c66de8  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda20.C
  e8adbb443f8b231b244ffbcd64ee7da2  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda3.C
  0a50eb80a181d4196ff68849d37d2615  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda4.C
  cb8eabd8ed2aec8d2d6ba1aa825f9307  gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda5.C
*************** f9a24ae6dc0bbd835ba2ab3fd47e4dbb  gcc/te
*** 28033,28039 ****
  cc1bf2a565ba5d8ca3b904469fe97fd2  gcc/testsuite/g++.dg/cpp26/pack-indexing12.C
  b0f94df77ae1f45f51ea4e2c6bb9691a  gcc/testsuite/g++.dg/cpp26/pack-indexing13.C
  2932dc127ada32f6fb144906d4c837c5  gcc/testsuite/g++.dg/cpp26/pack-indexing14.C
! 42acddf57107ca62daf89ff86652698f  gcc/testsuite/g++.dg/cpp26/pack-indexing15.C
  36888ce54ce42641fb6e61af819e4031  gcc/testsuite/g++.dg/cpp26/pack-indexing16.C
  66ff6dfe6ddc544b4653391842e6eae8  gcc/testsuite/g++.dg/cpp26/pack-indexing17.C
  7b55370f3253f2eae6d541ae349b6268  gcc/testsuite/g++.dg/cpp26/pack-indexing17a.C
--- 28078,28084 ----
  cc1bf2a565ba5d8ca3b904469fe97fd2  gcc/testsuite/g++.dg/cpp26/pack-indexing12.C
  b0f94df77ae1f45f51ea4e2c6bb9691a  gcc/testsuite/g++.dg/cpp26/pack-indexing13.C
  2932dc127ada32f6fb144906d4c837c5  gcc/testsuite/g++.dg/cpp26/pack-indexing14.C
! 18dc8c6dbb44d1a1d59c4d60d0abf65c  gcc/testsuite/g++.dg/cpp26/pack-indexing15.C
  36888ce54ce42641fb6e61af819e4031  gcc/testsuite/g++.dg/cpp26/pack-indexing16.C
  66ff6dfe6ddc544b4653391842e6eae8  gcc/testsuite/g++.dg/cpp26/pack-indexing17.C
  7b55370f3253f2eae6d541ae349b6268  gcc/testsuite/g++.dg/cpp26/pack-indexing17a.C
*************** fbdc0e6797df6f79ec2f98e9681b3df2  gcc/te
*** 28167,28172 ****
--- 28212,28218 ----
  041d83d15cbe2f1b6faf8df5779ee617  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias24.C
  de00e6f50f8aa11ae388287d947cb6dd  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias25.C
  5ca927feee2c144f300c078175416059  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias25a.C
+ e958b2de4daf4cbee928c81f06d5dc9e  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias26.C
  b5dae7ae7594a42f65f1f8f0f17b30a8  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias3.C
  06de637acc58c0572ef2eb75419e55e3  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias4.C
  0538d499885f751447275fb21053fc26  gcc/testsuite/g++.dg/cpp2a/class-deduction-alias5.C
*************** b48de652a269ba0411d9c971e6b06869  gcc/te
*** 28359,28365 ****
  29ec7a379f70ee79ba0310d8fc45703b  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder1.C
  3250feafbcf92ec0eb11831d9a5350a7  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder10.C
  966bf7435554a7a150aa0fb09697b04c  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder11.C
! f57d40e8c8a062ab42228a604dc8b336  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder12.C
  3d20f95d326918d497b3b309b9eda0d9  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder13.C
  10165b900c5003d3691cd5cf5fae858b  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder15.C
  9a1776b1d9b3c080e847b78507e8c1c6  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder2.C
--- 28405,28411 ----
  29ec7a379f70ee79ba0310d8fc45703b  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder1.C
  3250feafbcf92ec0eb11831d9a5350a7  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder10.C
  966bf7435554a7a150aa0fb09697b04c  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder11.C
! eaed9e04cf08b21a26b42c5128e0b6b1  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder12.C
  3d20f95d326918d497b3b309b9eda0d9  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder13.C
  10165b900c5003d3691cd5cf5fae858b  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder15.C
  9a1776b1d9b3c080e847b78507e8c1c6  gcc/testsuite/g++.dg/cpp2a/concepts-placeholder2.C
*************** e4824ff4a368f4083c4ab5643225d818  gcc/te
*** 28471,28477 ****
  8a643ff56f3caf008108eb2d5cebd974  gcc/testsuite/g++.dg/cpp2a/concepts-pr91525.C
  a1669b67bbdc997b3e18d984f69a5dd7  gcc/testsuite/g++.dg/cpp2a/concepts-pr92078.C
  84e3bf69ec5b7c3c513058b3d69bfc41  gcc/testsuite/g++.dg/cpp2a/concepts-pr95497.C
! f14a1d093c6192fd601a94286a19cd55  gcc/testsuite/g++.dg/cpp2a/concepts-pr97093.C
  f713831318164c8a8d53cee4f41a5feb  gcc/testsuite/g++.dg/cpp2a/concepts-pr98394.C
  47d56c0b8e4b2e304785aae26d0409fb  gcc/testsuite/g++.dg/cpp2a/concepts-pr98644.C
  7bff00217f0937919ad829a2aa4986de  gcc/testsuite/g++.dg/cpp2a/concepts-recursive-sat1.C
--- 28517,28523 ----
  8a643ff56f3caf008108eb2d5cebd974  gcc/testsuite/g++.dg/cpp2a/concepts-pr91525.C
  a1669b67bbdc997b3e18d984f69a5dd7  gcc/testsuite/g++.dg/cpp2a/concepts-pr92078.C
  84e3bf69ec5b7c3c513058b3d69bfc41  gcc/testsuite/g++.dg/cpp2a/concepts-pr95497.C
! aed2a0a9cf898a444bd5803ebd1fd5fc  gcc/testsuite/g++.dg/cpp2a/concepts-pr97093.C
  f713831318164c8a8d53cee4f41a5feb  gcc/testsuite/g++.dg/cpp2a/concepts-pr98394.C
  47d56c0b8e4b2e304785aae26d0409fb  gcc/testsuite/g++.dg/cpp2a/concepts-pr98644.C
  7bff00217f0937919ad829a2aa4986de  gcc/testsuite/g++.dg/cpp2a/concepts-recursive-sat1.C
*************** e7d2cd347c791b674d0be66da74077a1  gcc/te
*** 28535,28543 ****
  6481a02e05fcaca18a06555309e672d6  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm1.C
  437145357446d9d26ecec49e56fc89f2  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm10.C
  afbb7564ae9fd5590012ead5821a21d6  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm11.C
! c66c957a03459efed336ab628ac7a020  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm2.C
  95492dd69ffdbd68e23f9ff1d52bf2f6  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm5.C
! 476e5200a2508065879f3ee51bfd73b5  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm6.C
  9ff1f88974ac56dba726f1074288f8e9  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm8.C
  ec9215388b111eac1916dca163b2b4dd  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm9.C
  ee36c7ebc03385f37bcba1c49e06c808  gcc/testsuite/g++.dg/cpp2a/concepts-this1.C
--- 28581,28590 ----
  6481a02e05fcaca18a06555309e672d6  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm1.C
  437145357446d9d26ecec49e56fc89f2  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm10.C
  afbb7564ae9fd5590012ead5821a21d6  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm11.C
! fa41e15d3a98d958b2778ef7ecbfa8cb  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm12.C
! 13549745deec17bb36281547904712c5  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm2.C
  95492dd69ffdbd68e23f9ff1d52bf2f6  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm5.C
! 272b33f331a2ec8882a4cbc8dea6a8ff  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm6.C
  9ff1f88974ac56dba726f1074288f8e9  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm8.C
  ec9215388b111eac1916dca163b2b4dd  gcc/testsuite/g++.dg/cpp2a/concepts-template-parm9.C
  ee36c7ebc03385f37bcba1c49e06c808  gcc/testsuite/g++.dg/cpp2a/concepts-this1.C
*************** ce7b6234ca0490c5f395644574322ca2  gcc/te
*** 30066,30072 ****
  47ee2e9f4d1f4caaa66273c534a05700  gcc/testsuite/g++.dg/expr/call5.C
  03136626af9595581e4d641695d4fae4  gcc/testsuite/g++.dg/expr/cast1.C
  234b04abbf4ba798c38bda66394b82a7  gcc/testsuite/g++.dg/expr/cast10.C
! e81c36105f876d1822c790ae2b655fcc  gcc/testsuite/g++.dg/expr/cast11.C
  12be7dc45a455eddda5ccfa91904739c  gcc/testsuite/g++.dg/expr/cast2.C
  43b3f0cf8dc0665f8a82af5379392da1  gcc/testsuite/g++.dg/expr/cast3.C
  ed8e65f6a9fb8340f4d8881b00bc8a62  gcc/testsuite/g++.dg/expr/cast4.C
--- 30113,30119 ----
  47ee2e9f4d1f4caaa66273c534a05700  gcc/testsuite/g++.dg/expr/call5.C
  03136626af9595581e4d641695d4fae4  gcc/testsuite/g++.dg/expr/cast1.C
  234b04abbf4ba798c38bda66394b82a7  gcc/testsuite/g++.dg/expr/cast10.C
! 0da29517f073bb7eec776c57bab88644  gcc/testsuite/g++.dg/expr/cast11.C
  12be7dc45a455eddda5ccfa91904739c  gcc/testsuite/g++.dg/expr/cast2.C
  43b3f0cf8dc0665f8a82af5379392da1  gcc/testsuite/g++.dg/expr/cast3.C
  ed8e65f6a9fb8340f4d8881b00bc8a62  gcc/testsuite/g++.dg/expr/cast4.C
*************** e1073bec80cbc48fb15e02126aebb2b0  gcc/te
*** 31565,31570 ****
--- 31612,31618 ----
  641b551c65455ce91907afab3c572a40  gcc/testsuite/g++.dg/gomp/pr108503.C
  a8cfc657234f5f421b289d2fa6196965  gcc/testsuite/g++.dg/gomp/pr108607.C
  ed2fe9b487c91fe33d6cccf142fa243c  gcc/testsuite/g++.dg/gomp/pr111274.C
+ fa2e302bb646a04152416a2ad9b98d02  gcc/testsuite/g++.dg/gomp/pr113436.C
  a224cdf89df755372b414897a4fd0df0  gcc/testsuite/g++.dg/gomp/pr118876.C
  24de1af738e1de5eade9460de843157d  gcc/testsuite/g++.dg/gomp/pr119370.C
  44956ee7048ef4daaa13755b811fe3ca  gcc/testsuite/g++.dg/gomp/pr120180-1.C
*************** fe9b6c3dabf0ae1d3eb188f56c992822  gcc/te
*** 35365,35371 ****
  18dd1a114766366695a4ed34bf5f0741  gcc/testsuite/g++.dg/opt/pr55281.C
  f555a4552399a1314507b7d9744f7eef  gcc/testsuite/g++.dg/opt/pr55329.C
  eb316460089208481c6b3e5a0c34a90a  gcc/testsuite/g++.dg/opt/pr55331.C
! e19ebb209e95191eb4d52fa66eacd47f  gcc/testsuite/g++.dg/opt/pr55717.C
  a11366306b88724f9bb36fdef806b6bd  gcc/testsuite/g++.dg/opt/pr56381.C
  47b528a0159c73411ef4285b052d60be  gcc/testsuite/g++.dg/opt/pr56999.C
  11efe66e14d9aba903f11007f0f3a4e8  gcc/testsuite/g++.dg/opt/pr57411.C
--- 35413,35419 ----
  18dd1a114766366695a4ed34bf5f0741  gcc/testsuite/g++.dg/opt/pr55281.C
  f555a4552399a1314507b7d9744f7eef  gcc/testsuite/g++.dg/opt/pr55329.C
  eb316460089208481c6b3e5a0c34a90a  gcc/testsuite/g++.dg/opt/pr55331.C
! d987da5bd153ec979a69d629669af617  gcc/testsuite/g++.dg/opt/pr55717.C
  a11366306b88724f9bb36fdef806b6bd  gcc/testsuite/g++.dg/opt/pr56381.C
  47b528a0159c73411ef4285b052d60be  gcc/testsuite/g++.dg/opt/pr56999.C
  11efe66e14d9aba903f11007f0f3a4e8  gcc/testsuite/g++.dg/opt/pr57411.C
*************** edd0d59ec76c7c78594e6927a836e933  gcc/te
*** 37105,37111 ****
  5e07eb68edac99f52a53cce16ac70187  gcc/testsuite/g++.dg/reflect/constant_of8.C
  7673ffd369326cd2652da80b94a78095  gcc/testsuite/g++.dg/reflect/constant_of9.C
  5c824cee5e2baf1b8ac5eb19ca0e3b55  gcc/testsuite/g++.dg/reflect/crash1.C
! 2945fd341ded545fb0ec7e86bc906bba  gcc/testsuite/g++.dg/reflect/crash10.C
  e2772898a740250f27b7580dc2785fa8  gcc/testsuite/g++.dg/reflect/crash11.C
  da1beb4185a29d67525e0c2662e3bf48  gcc/testsuite/g++.dg/reflect/crash12.C
  e1bc1bead47e5c70581c4fd484464fff  gcc/testsuite/g++.dg/reflect/crash13.C
--- 37153,37159 ----
  5e07eb68edac99f52a53cce16ac70187  gcc/testsuite/g++.dg/reflect/constant_of8.C
  7673ffd369326cd2652da80b94a78095  gcc/testsuite/g++.dg/reflect/constant_of9.C
  5c824cee5e2baf1b8ac5eb19ca0e3b55  gcc/testsuite/g++.dg/reflect/crash1.C
! cd4269abf864d20403d8fb31ce477f2c  gcc/testsuite/g++.dg/reflect/crash10.C
  e2772898a740250f27b7580dc2785fa8  gcc/testsuite/g++.dg/reflect/crash11.C
  da1beb4185a29d67525e0c2662e3bf48  gcc/testsuite/g++.dg/reflect/crash12.C
  e1bc1bead47e5c70581c4fd484464fff  gcc/testsuite/g++.dg/reflect/crash13.C
*************** a53dc121d95af0b575afde7329733e7f  gcc/te
*** 37114,37127 ****
  3c9c6caa587b938ca6655f331d023b2e  gcc/testsuite/g++.dg/reflect/crash16.C
  9ca9f1b75f738a678aa5371ad5e2f83c  gcc/testsuite/g++.dg/reflect/crash17.C
  fd4d2ba7da42a991ae7f0513e8331f00  gcc/testsuite/g++.dg/reflect/crash18.C
! 2e861048a077a8b218262d85ab58096e  gcc/testsuite/g++.dg/reflect/crash2.C
! 8546621cffce10eaaf19035ce092d690  gcc/testsuite/g++.dg/reflect/crash3.C
  08df10fc9089ca9b7056d12d68c3ef8f  gcc/testsuite/g++.dg/reflect/crash4.C
  dd86fc7e909711154b284147a6956686  gcc/testsuite/g++.dg/reflect/crash5.C
  bb1f8ef1f398381c552b719d90f00b29  gcc/testsuite/g++.dg/reflect/crash6.C
! edae344ef3c025f6bb140bdcc41cfbac  gcc/testsuite/g++.dg/reflect/crash7.C
  d7c8a0736148c190a05cdcf0be278b45  gcc/testsuite/g++.dg/reflect/crash8.C
! f1964d85b7740c85c6c38271bf60d85d  gcc/testsuite/g++.dg/reflect/crash9.C
  4e6d9aa2459457638b2bf169d9aa74d9  gcc/testsuite/g++.dg/reflect/cwg3153.C
  70bab2b27c8038d6662ee1a47f3a127b  gcc/testsuite/g++.dg/reflect/data_member_spec1.C
  84824ffeeab45a95e4adbcc635355664  gcc/testsuite/g++.dg/reflect/data_member_spec2.C
--- 37162,37175 ----
  3c9c6caa587b938ca6655f331d023b2e  gcc/testsuite/g++.dg/reflect/crash16.C
  9ca9f1b75f738a678aa5371ad5e2f83c  gcc/testsuite/g++.dg/reflect/crash17.C
  fd4d2ba7da42a991ae7f0513e8331f00  gcc/testsuite/g++.dg/reflect/crash18.C
! aedec6415587682cae64f0232f5869ed  gcc/testsuite/g++.dg/reflect/crash2.C
! d69af9b43443999127305847e0961348  gcc/testsuite/g++.dg/reflect/crash3.C
  08df10fc9089ca9b7056d12d68c3ef8f  gcc/testsuite/g++.dg/reflect/crash4.C
  dd86fc7e909711154b284147a6956686  gcc/testsuite/g++.dg/reflect/crash5.C
  bb1f8ef1f398381c552b719d90f00b29  gcc/testsuite/g++.dg/reflect/crash6.C
! 5c36ae6c6399a8e7b2df47ece2f93822  gcc/testsuite/g++.dg/reflect/crash7.C
  d7c8a0736148c190a05cdcf0be278b45  gcc/testsuite/g++.dg/reflect/crash8.C
! 1887a5b2c89f86441a2513cbe86a0371  gcc/testsuite/g++.dg/reflect/crash9.C
  4e6d9aa2459457638b2bf169d9aa74d9  gcc/testsuite/g++.dg/reflect/cwg3153.C
  70bab2b27c8038d6662ee1a47f3a127b  gcc/testsuite/g++.dg/reflect/data_member_spec1.C
  84824ffeeab45a95e4adbcc635355664  gcc/testsuite/g++.dg/reflect/data_member_spec2.C
*************** f0f21ad05d20f33170e5464386bbc04a  gcc/te
*** 37135,37140 ****
--- 37183,37189 ----
  39bd2120b97c0707f5d4525b080369ff  gcc/testsuite/g++.dg/reflect/define_aggregate3.C
  04bc06581deb87721ec02d1eb0d3ea6e  gcc/testsuite/g++.dg/reflect/define_aggregate4.C
  1bc6bc2f0fee0e8ab828d7554483c997  gcc/testsuite/g++.dg/reflect/define_aggregate5.C
+ af1bbac17b682c9735c44fb46bb8fb14  gcc/testsuite/g++.dg/reflect/define_aggregate6.C
  bb13d688f1deb2ff9d5bf3af088bfaec  gcc/testsuite/g++.dg/reflect/define_static_array1.C
  388f1c5706640dbdf3b8e6017b3e4834  gcc/testsuite/g++.dg/reflect/define_static_array2.C
  76b6ad1540a13225c11e60306e2fe45c  gcc/testsuite/g++.dg/reflect/define_static_array3.C
*************** a91076163632559f3333bcb1ef96b8fa  gcc/te
*** 37148,37161 ****
  5ad7826c151890919478e6df81f4d9c8  gcc/testsuite/g++.dg/reflect/dep2.C
  0c0dac16104f8e96f71d07858c4a3a86  gcc/testsuite/g++.dg/reflect/dep3.C
  88c6774c1f0b10dc1375bd9a535099cb  gcc/testsuite/g++.dg/reflect/dep4.C
! c152bd0ada713fee54272a0a838df8c0  gcc/testsuite/g++.dg/reflect/dep5.C
  27fd41741e15cae97a2741d3df1680b6  gcc/testsuite/g++.dg/reflect/dep6.C
  caadd2bfc2b0a8223c1bd926f856e2da  gcc/testsuite/g++.dg/reflect/dep7.C
  a971aae130c7a95be14b62e161cd2ba6  gcc/testsuite/g++.dg/reflect/dep8.C
  e206f01c179e8a843dc93974bf8abcf8  gcc/testsuite/g++.dg/reflect/dep9.C
! 3c23671718604961f36aeceda3d710bd  gcc/testsuite/g++.dg/reflect/diag1.C
  c383f7bdf34cc8248e3fb9c61011574a  gcc/testsuite/g++.dg/reflect/diag2.C
! 42fe88cac2066717f810a9d18d689e4a  gcc/testsuite/g++.dg/reflect/diag3.C
  1533eb5d112721a72e26e68b9d092170  gcc/testsuite/g++.dg/reflect/diag4.C
  33dbfbabd9276fa16216f8481beefd2b  gcc/testsuite/g++.dg/reflect/display_string_of1.C
  471074284711fdd57cea87c822da502f  gcc/testsuite/g++.dg/reflect/eh1.C
--- 37197,37212 ----
  5ad7826c151890919478e6df81f4d9c8  gcc/testsuite/g++.dg/reflect/dep2.C
  0c0dac16104f8e96f71d07858c4a3a86  gcc/testsuite/g++.dg/reflect/dep3.C
  88c6774c1f0b10dc1375bd9a535099cb  gcc/testsuite/g++.dg/reflect/dep4.C
! 30730b548ed644442fe883f13984f294  gcc/testsuite/g++.dg/reflect/dep5.C
  27fd41741e15cae97a2741d3df1680b6  gcc/testsuite/g++.dg/reflect/dep6.C
  caadd2bfc2b0a8223c1bd926f856e2da  gcc/testsuite/g++.dg/reflect/dep7.C
  a971aae130c7a95be14b62e161cd2ba6  gcc/testsuite/g++.dg/reflect/dep8.C
  e206f01c179e8a843dc93974bf8abcf8  gcc/testsuite/g++.dg/reflect/dep9.C
! 32068df79a54a0924e4b71a0e9ecefb3  gcc/testsuite/g++.dg/reflect/diag1.C
! 6ef30130fe2f6384f72a814710d11be3  gcc/testsuite/g++.dg/reflect/diag1a.C
! 2817a16255677086c5cd9aa7e01b7966  gcc/testsuite/g++.dg/reflect/diag1b.C
  c383f7bdf34cc8248e3fb9c61011574a  gcc/testsuite/g++.dg/reflect/diag2.C
! 32ccc692cd8f4f800d5b7cf0f8c10e82  gcc/testsuite/g++.dg/reflect/diag3.C
  1533eb5d112721a72e26e68b9d092170  gcc/testsuite/g++.dg/reflect/diag4.C
  33dbfbabd9276fa16216f8481beefd2b  gcc/testsuite/g++.dg/reflect/display_string_of1.C
  471074284711fdd57cea87c822da502f  gcc/testsuite/g++.dg/reflect/eh1.C
*************** c383f7bdf34cc8248e3fb9c61011574a  gcc/te
*** 37169,37181 ****
  63da1b212dc6641e5f3a67e84ed1a68f  gcc/testsuite/g++.dg/reflect/eh9.C
  2b40a02f1ed53b6bab1a344d5edd8aa2  gcc/testsuite/g++.dg/reflect/enumerators_of1.C
  04d9a22b5b43c4289de935dbccac2ed6  gcc/testsuite/g++.dg/reflect/error1.C
! 30da2651e0378b27ad373e3c60c0aa0f  gcc/testsuite/g++.dg/reflect/error10.C
  2c9f13a2651383956671a08269662579  gcc/testsuite/g++.dg/reflect/error11.C
! a76cb36f67e4427087e2d9641896eaaf  gcc/testsuite/g++.dg/reflect/error12.C
  69edf1172a90d65c86d8d9bb69b88b21  gcc/testsuite/g++.dg/reflect/error2.C
  eb3f835094fc060a3320066f75665133  gcc/testsuite/g++.dg/reflect/error3.C
  5caf93c84084cbeab5b7f76875d678ae  gcc/testsuite/g++.dg/reflect/error4.C
! 6c303a60a26078a7cfbfc0d446302662  gcc/testsuite/g++.dg/reflect/error5.C
  6dad71fc45a878bcafd4500cde907505  gcc/testsuite/g++.dg/reflect/error6.C
  b6e5358e929ecce99496e00535aeba9d  gcc/testsuite/g++.dg/reflect/error8.C
  9c8bebf2a51bdac66f56ebcd8d2e79b5  gcc/testsuite/g++.dg/reflect/error9.C
--- 37220,37232 ----
  63da1b212dc6641e5f3a67e84ed1a68f  gcc/testsuite/g++.dg/reflect/eh9.C
  2b40a02f1ed53b6bab1a344d5edd8aa2  gcc/testsuite/g++.dg/reflect/enumerators_of1.C
  04d9a22b5b43c4289de935dbccac2ed6  gcc/testsuite/g++.dg/reflect/error1.C
! a946dce746a9f896ac87098a46da891f  gcc/testsuite/g++.dg/reflect/error10.C
  2c9f13a2651383956671a08269662579  gcc/testsuite/g++.dg/reflect/error11.C
! 274736df915df8a9983053ee6560cbc0  gcc/testsuite/g++.dg/reflect/error12.C
  69edf1172a90d65c86d8d9bb69b88b21  gcc/testsuite/g++.dg/reflect/error2.C
  eb3f835094fc060a3320066f75665133  gcc/testsuite/g++.dg/reflect/error3.C
  5caf93c84084cbeab5b7f76875d678ae  gcc/testsuite/g++.dg/reflect/error4.C
! 9c99904432f0705cdef14013388e31f7  gcc/testsuite/g++.dg/reflect/error5.C
  6dad71fc45a878bcafd4500cde907505  gcc/testsuite/g++.dg/reflect/error6.C
  b6e5358e929ecce99496e00535aeba9d  gcc/testsuite/g++.dg/reflect/error8.C
  9c8bebf2a51bdac66f56ebcd8d2e79b5  gcc/testsuite/g++.dg/reflect/error9.C
*************** d09ceac0ed381b8e6d87478d7da5ecea  gcc/te
*** 37188,37194 ****
  cb62b6f411eaa0edabe6a10520d7652c  gcc/testsuite/g++.dg/reflect/expr14.C
  7d931bd0fd71d114fa6a17dce607e802  gcc/testsuite/g++.dg/reflect/expr15.C
  8a9b940805893540797936869da281d7  gcc/testsuite/g++.dg/reflect/expr2.C
! 95b3847a7998ed78b5a5dab025e53616  gcc/testsuite/g++.dg/reflect/expr3.C
  6db5cf1cb9ce8e043687a3df14680bc3  gcc/testsuite/g++.dg/reflect/expr4.C
  2f5078e222bbbc165f5206961c222ffb  gcc/testsuite/g++.dg/reflect/expr5.C
  7d020fd4ecbc4b1230e2e19a4dd74baf  gcc/testsuite/g++.dg/reflect/expr6.C
--- 37239,37245 ----
  cb62b6f411eaa0edabe6a10520d7652c  gcc/testsuite/g++.dg/reflect/expr14.C
  7d931bd0fd71d114fa6a17dce607e802  gcc/testsuite/g++.dg/reflect/expr15.C
  8a9b940805893540797936869da281d7  gcc/testsuite/g++.dg/reflect/expr2.C
! 4b1fb75674597a85fb0234f3b45e8f9e  gcc/testsuite/g++.dg/reflect/expr3.C
  6db5cf1cb9ce8e043687a3df14680bc3  gcc/testsuite/g++.dg/reflect/expr4.C
  2f5078e222bbbc165f5206961c222ffb  gcc/testsuite/g++.dg/reflect/expr5.C
  7d020fd4ecbc4b1230e2e19a4dd74baf  gcc/testsuite/g++.dg/reflect/expr6.C
*************** ab1db2b0eb404ff32ef9a7071d76c8fd  gcc/te
*** 37230,37237 ****
  c06bd497360c05fbf80ffb2ffdbffe27  gcc/testsuite/g++.dg/reflect/identifier_of1.C
  4e38907428d25d2a0cf80b5f56cf6f64  gcc/testsuite/g++.dg/reflect/identifier_of2.C
  1c9e03241b17bfeb65c31a850c4486d8  gcc/testsuite/g++.dg/reflect/identifier_of3.C
! 53caf8eb30ca80aa7c7b51f0275d8aae  gcc/testsuite/g++.dg/reflect/init1.C
! 68f6f989d998918c473f8d79f1db76ef  gcc/testsuite/g++.dg/reflect/init10.C
  8dc0d0d0fae9dfaf4da9774c4db397c3  gcc/testsuite/g++.dg/reflect/init11.C
  31b74d4045244358f5ddf0340022aa0b  gcc/testsuite/g++.dg/reflect/init12.C
  94efec18a5d3953240068549411fd160  gcc/testsuite/g++.dg/reflect/init13.C
--- 37281,37288 ----
  c06bd497360c05fbf80ffb2ffdbffe27  gcc/testsuite/g++.dg/reflect/identifier_of1.C
  4e38907428d25d2a0cf80b5f56cf6f64  gcc/testsuite/g++.dg/reflect/identifier_of2.C
  1c9e03241b17bfeb65c31a850c4486d8  gcc/testsuite/g++.dg/reflect/identifier_of3.C
! 1e2c2dcb3d05269583ceaf415358474f  gcc/testsuite/g++.dg/reflect/init1.C
! ec949dc698d4dd0b434d6c269db3d31d  gcc/testsuite/g++.dg/reflect/init10.C
  8dc0d0d0fae9dfaf4da9774c4db397c3  gcc/testsuite/g++.dg/reflect/init11.C
  31b74d4045244358f5ddf0340022aa0b  gcc/testsuite/g++.dg/reflect/init12.C
  94efec18a5d3953240068549411fd160  gcc/testsuite/g++.dg/reflect/init13.C
*************** d90fcc99ddaeb5505678c7c407e0ab75  gcc/te
*** 37243,37250 ****
  0512b3bdec0b0fd28051477e9423aa67  gcc/testsuite/g++.dg/reflect/init3.C
  d46e1560ddd6be61c86743909c517b4e  gcc/testsuite/g++.dg/reflect/init4.C
  16e06e6f77463e4d204ed502c4b1312b  gcc/testsuite/g++.dg/reflect/init5.C
! b229ae7cb9793a4868e3dbe1c7d1cb14  gcc/testsuite/g++.dg/reflect/init6.C
! 940b9893177229b9de2cee1cf1e74f21  gcc/testsuite/g++.dg/reflect/init7.C
  8c024b9064bedc0871c9233763f8946f  gcc/testsuite/g++.dg/reflect/init8.C
  4194935886cfb2b11d58b4ee27a10524  gcc/testsuite/g++.dg/reflect/init9.C
  e32daebcb5a2c3af4591a9461a061429  gcc/testsuite/g++.dg/reflect/is_accessible1.C
--- 37294,37301 ----
  0512b3bdec0b0fd28051477e9423aa67  gcc/testsuite/g++.dg/reflect/init3.C
  d46e1560ddd6be61c86743909c517b4e  gcc/testsuite/g++.dg/reflect/init4.C
  16e06e6f77463e4d204ed502c4b1312b  gcc/testsuite/g++.dg/reflect/init5.C
! cb936d17683d7e8c4aa4694bf2e3c5da  gcc/testsuite/g++.dg/reflect/init6.C
! 0fca34cd6f2a0742f9ad6095c3e5c333  gcc/testsuite/g++.dg/reflect/init7.C
  8c024b9064bedc0871c9233763f8946f  gcc/testsuite/g++.dg/reflect/init8.C
  4194935886cfb2b11d58b4ee27a10524  gcc/testsuite/g++.dg/reflect/init9.C
  e32daebcb5a2c3af4591a9461a061429  gcc/testsuite/g++.dg/reflect/is_accessible1.C
*************** bcbfe7a6746a7cf5019e4beb91dfc6e1  gcc/te
*** 37332,37338 ****
  c283950e8b15f911e81f4f24718ae4ab  gcc/testsuite/g++.dg/reflect/mangle1.C
  a3a095f76106493121ca9f08dbb03b9e  gcc/testsuite/g++.dg/reflect/member-visibility1.C
  ad855dfbd2b8005bd8560472ce0cf5b4  gcc/testsuite/g++.dg/reflect/member-visibility2.C
! 8f14087fc0d52e8c102a50ea5103a732  gcc/testsuite/g++.dg/reflect/member1.C
  798c02332c1f9a2f17309c4a50856e1b  gcc/testsuite/g++.dg/reflect/member10.C
  0cba845b2bb01c6139ddd64d9f8b5f57  gcc/testsuite/g++.dg/reflect/member11.C
  762fdbd174cf2ac6c75d9d8bd1eb3321  gcc/testsuite/g++.dg/reflect/member12.C
--- 37383,37389 ----
  c283950e8b15f911e81f4f24718ae4ab  gcc/testsuite/g++.dg/reflect/mangle1.C
  a3a095f76106493121ca9f08dbb03b9e  gcc/testsuite/g++.dg/reflect/member-visibility1.C
  ad855dfbd2b8005bd8560472ce0cf5b4  gcc/testsuite/g++.dg/reflect/member-visibility2.C
! 2c86502ff23ae309bb2a5fdb339970c1  gcc/testsuite/g++.dg/reflect/member1.C
  798c02332c1f9a2f17309c4a50856e1b  gcc/testsuite/g++.dg/reflect/member10.C
  0cba845b2bb01c6139ddd64d9f8b5f57  gcc/testsuite/g++.dg/reflect/member11.C
  762fdbd174cf2ac6c75d9d8bd1eb3321  gcc/testsuite/g++.dg/reflect/member12.C
*************** d1fd504ae938ad7e3b0edbf6834ec3b4  gcc/te
*** 37361,37367 ****
  55c41f09598b3c53288722e46c53c1cf  gcc/testsuite/g++.dg/reflect/members_of7.C
  5dfe729351628682329b585f411b52cb  gcc/testsuite/g++.dg/reflect/metafn-ptr1.C
  7ea29fd9a046e870ea501c8573ded819  gcc/testsuite/g++.dg/reflect/ns1.C
! e251ac0684a52cda54a8255e3a49e24a  gcc/testsuite/g++.dg/reflect/ns2.C
  5bed6b939e587040c075e70083201181  gcc/testsuite/g++.dg/reflect/ns3.C
  d651773731e4ea962187b9e5a30570ca  gcc/testsuite/g++.dg/reflect/ns4.C
  0b7259d3184e59599aeead7ca291964b  gcc/testsuite/g++.dg/reflect/ns5.C
--- 37412,37418 ----
  55c41f09598b3c53288722e46c53c1cf  gcc/testsuite/g++.dg/reflect/members_of7.C
  5dfe729351628682329b585f411b52cb  gcc/testsuite/g++.dg/reflect/metafn-ptr1.C
  7ea29fd9a046e870ea501c8573ded819  gcc/testsuite/g++.dg/reflect/ns1.C
! ad7d207d3074d99c1a99266c5b2127f9  gcc/testsuite/g++.dg/reflect/ns2.C
  5bed6b939e587040c075e70083201181  gcc/testsuite/g++.dg/reflect/ns3.C
  d651773731e4ea962187b9e5a30570ca  gcc/testsuite/g++.dg/reflect/ns4.C
  0b7259d3184e59599aeead7ca291964b  gcc/testsuite/g++.dg/reflect/ns5.C
*************** ff22c9122c2c0fa7a5a06f539fcb9abe  gcc/te
*** 37381,37387 ****
  7dde213d58e8c1daafbfbfd5af17e5d5  gcc/testsuite/g++.dg/reflect/p2996-1.C
  c634a4b2a4486a5b4a43633d2a0618c7  gcc/testsuite/g++.dg/reflect/p2996-10.C
  8ab6c5344e4f14b6050ed7b2bb4a49a4  gcc/testsuite/g++.dg/reflect/p2996-11.C
! 7ac6691978d0f36cdad31b5985a9e816  gcc/testsuite/g++.dg/reflect/p2996-12.C
  95f61b87bf0f7af7877307fa4cb06b06  gcc/testsuite/g++.dg/reflect/p2996-13.C
  c4f82004380def285e0c839c569ff078  gcc/testsuite/g++.dg/reflect/p2996-14.C
  822323c6d3dfaa1f2c37385c1613bd12  gcc/testsuite/g++.dg/reflect/p2996-15.C
--- 37432,37438 ----
  7dde213d58e8c1daafbfbfd5af17e5d5  gcc/testsuite/g++.dg/reflect/p2996-1.C
  c634a4b2a4486a5b4a43633d2a0618c7  gcc/testsuite/g++.dg/reflect/p2996-10.C
  8ab6c5344e4f14b6050ed7b2bb4a49a4  gcc/testsuite/g++.dg/reflect/p2996-11.C
! 6a8db1aef2d38fcafb349443b7e1a398  gcc/testsuite/g++.dg/reflect/p2996-12.C
  95f61b87bf0f7af7877307fa4cb06b06  gcc/testsuite/g++.dg/reflect/p2996-13.C
  c4f82004380def285e0c839c569ff078  gcc/testsuite/g++.dg/reflect/p2996-14.C
  822323c6d3dfaa1f2c37385c1613bd12  gcc/testsuite/g++.dg/reflect/p2996-15.C
*************** a0ed9ab19598e5557df6ce3cd0eb27b5  gcc/te
*** 37426,37431 ****
--- 37477,37483 ----
  306b4ad2098e8b750ed54e51a41def85  gcc/testsuite/g++.dg/reflect/pr122634-1.C
  e32f838494e975d3bff555da160e533b  gcc/testsuite/g++.dg/reflect/pr122634-2.C
  bcea9ee60707a95dc9fe1a749981578a  gcc/testsuite/g++.dg/reflect/pr123404.C
+ 6c1159b0d54c4859a992ca4b8182c68b  gcc/testsuite/g++.dg/reflect/pr124012.C
  e6404856d4cc9cc02aa5ebec3e5ecb82  gcc/testsuite/g++.dg/reflect/qrn1.C
  4ef5fc49aed920d8bfc3bc57a9ddef71  gcc/testsuite/g++.dg/reflect/qrn2.C
  82cc9bd702b6c4899eb3441b0289bca6  gcc/testsuite/g++.dg/reflect/range_args.C
*************** acdd73b149c3c54aa0d80b81c86a5a4c  gcc/te
*** 37458,37467 ****
  b54591a1a4cb544aba9831eba6b8174b  gcc/testsuite/g++.dg/reflect/source_location_of1.C
  82420344ec3910dc9c675d2a50b6dd1a  gcc/testsuite/g++.dg/reflect/source_location_of2.C
  ae74f7e0fcb5cd481ffc4f5cdabaaea7  gcc/testsuite/g++.dg/reflect/splice1.C
  c80b1bac424d9304fac93754834f224e  gcc/testsuite/g++.dg/reflect/splice2.C
  e0d01c0d72438804b2438e81debbc181  gcc/testsuite/g++.dg/reflect/splice3.C
  c900182698e22d48583b4bbd611fe1fb  gcc/testsuite/g++.dg/reflect/splice4.C
! 4801bd931beed660ccbf513998eaf76d  gcc/testsuite/g++.dg/reflect/splice5.C
  0badbfd09ec045739bf918587cc70dcf  gcc/testsuite/g++.dg/reflect/splice6.C
  6738eaccb426d5d58c46b54bbd7b4bfb  gcc/testsuite/g++.dg/reflect/splice7.C
  52791f318015d99618ee0d3ccfe2de5f  gcc/testsuite/g++.dg/reflect/splice8.C
--- 37510,37521 ----
  b54591a1a4cb544aba9831eba6b8174b  gcc/testsuite/g++.dg/reflect/source_location_of1.C
  82420344ec3910dc9c675d2a50b6dd1a  gcc/testsuite/g++.dg/reflect/source_location_of2.C
  ae74f7e0fcb5cd481ffc4f5cdabaaea7  gcc/testsuite/g++.dg/reflect/splice1.C
+ 97e5f556b97d037ef366e43588c23406  gcc/testsuite/g++.dg/reflect/splice10.C
+ af18aac150e2da16b8511edc29458f59  gcc/testsuite/g++.dg/reflect/splice11.C
  c80b1bac424d9304fac93754834f224e  gcc/testsuite/g++.dg/reflect/splice2.C
  e0d01c0d72438804b2438e81debbc181  gcc/testsuite/g++.dg/reflect/splice3.C
  c900182698e22d48583b4bbd611fe1fb  gcc/testsuite/g++.dg/reflect/splice4.C
! 370a719ae253a9165030c12db3cef8f9  gcc/testsuite/g++.dg/reflect/splice5.C
  0badbfd09ec045739bf918587cc70dcf  gcc/testsuite/g++.dg/reflect/splice6.C
  6738eaccb426d5d58c46b54bbd7b4bfb  gcc/testsuite/g++.dg/reflect/splice7.C
  52791f318015d99618ee0d3ccfe2de5f  gcc/testsuite/g++.dg/reflect/splice8.C
*************** fb988bd3ed4b676491a6a1bc94c867aa  gcc/te
*** 37487,37493 ****
  89e96f6ffe32cd4e10add49c5348c9d4  gcc/testsuite/g++.dg/reflect/template_of3.C
  64112525decdfd942b3bb45931514e96  gcc/testsuite/g++.dg/reflect/tuple1.C
  ff49ad2327b77188c9be7008d37b0fa1  gcc/testsuite/g++.dg/reflect/tuple2.C
! dead90802f91e8ec35a6b26ee1216fb1  gcc/testsuite/g++.dg/reflect/type1.C
  7ddd44fc3b31dc7a9800814c464043fa  gcc/testsuite/g++.dg/reflect/type10.C
  b468479b1feb70e677c72b4fb0612f94  gcc/testsuite/g++.dg/reflect/type2.C
  d8a3c8c16d619e634a0ac785558d78a3  gcc/testsuite/g++.dg/reflect/type3.C
--- 37541,37547 ----
  89e96f6ffe32cd4e10add49c5348c9d4  gcc/testsuite/g++.dg/reflect/template_of3.C
  64112525decdfd942b3bb45931514e96  gcc/testsuite/g++.dg/reflect/tuple1.C
  ff49ad2327b77188c9be7008d37b0fa1  gcc/testsuite/g++.dg/reflect/tuple2.C
! 108c9f28791a9fec38b31b04cf7ec18f  gcc/testsuite/g++.dg/reflect/type1.C
  7ddd44fc3b31dc7a9800814c464043fa  gcc/testsuite/g++.dg/reflect/type10.C
  b468479b1feb70e677c72b4fb0612f94  gcc/testsuite/g++.dg/reflect/type2.C
  d8a3c8c16d619e634a0ac785558d78a3  gcc/testsuite/g++.dg/reflect/type3.C
*************** c2a0cf3df84b0f5f4df65937e3fa4da2  gcc/te
*** 39485,39490 ****
--- 39539,39545 ----
  6766aa21b009a63d71d22aa6baba228d  gcc/testsuite/g++.dg/torture/pr111245.C
  25af1620df0107cd03f275ddc7fd98b6  gcc/testsuite/g++.dg/torture/pr111465.C
  fd7e86518ea2a69054ff33aa0689c56b  gcc/testsuite/g++.dg/torture/pr111773.C
+ 5c620542544d327d513aa9525aba2286  gcc/testsuite/g++.dg/torture/pr112400.C
  f5cb8caa482838045861d5ee18445814  gcc/testsuite/g++.dg/torture/pr113896.C
  c9d2586b0e3709f19a931052b6c72363  gcc/testsuite/g++.dg/torture/pr113994.C
  ef666186552a9562e70783bbdf98ac33  gcc/testsuite/g++.dg/torture/pr115694.C
*************** e8b09238e87e73505d31392aeef0e4b5  gcc/te
*** 39501,39506 ****
--- 39556,39563 ----
  786d0a5ec87e00507e8d07cca9bb139c  gcc/testsuite/g++.dg/torture/pr116842.C
  1e0447a2dc08b798ed33be384cdea31a  gcc/testsuite/g++.dg/torture/pr116902.C
  f052d3af1586cf42bf5ec8d92e1621ac  gcc/testsuite/g++.dg/torture/pr116927-1.C
+ 433f2d5d832623625319b4192fc7b69c  gcc/testsuite/g++.dg/torture/pr117217-1.C
+ 370446845d836416f63d6f4ab2dbab30  gcc/testsuite/g++.dg/torture/pr117217-2.C
  17ed764fa5d3f0ee6d17ed54d9664c47  gcc/testsuite/g++.dg/torture/pr117341-1.C
  372a5372bc2611240b35fde2512f27e9  gcc/testsuite/g++.dg/torture/pr118320.C
  53cb287dc9989d9c34db179316468293  gcc/testsuite/g++.dg/torture/pr118521.C
*************** ca9be1f2aa5374ea9f72ea31bc874ec1  gcc/te
*** 39520,39525 ****
--- 39577,39583 ----
  fd8e483532e07909315ca8711ef4503b  gcc/testsuite/g++.dg/torture/pr123603.C
  045de4cec99c01bff5389660b8937e19  gcc/testsuite/g++.dg/torture/pr123729.C
  6f13a12612ea67402e5ee7928ab2f956  gcc/testsuite/g++.dg/torture/pr123820-1.C
+ 1aa558892fb81543beeef357c4f49d60  gcc/testsuite/g++.dg/torture/pr124086-1.C
  161154ed9f6193a2a7da119e068c3f3f  gcc/testsuite/g++.dg/torture/pr27218.C
  a84e9fff95df4801f8e582fbc33303b8  gcc/testsuite/g++.dg/torture/pr30252.C
  e980bf95890544d46879b89f7aa98df6  gcc/testsuite/g++.dg/torture/pr30567.C
*************** fb9b4b2ef2067f8347522c6501c079b3  gcc/te
*** 40493,40499 ****
  f3b08920b6f4d781731cb5137313588c  gcc/testsuite/g++.dg/uninit-pred-loop-1_c.C
  2fcbc57bdfc93414220095e1211dcd11  gcc/testsuite/g++.dg/uninit-pred-loop_1.C
  0264f53339319263fc37b72714421f02  gcc/testsuite/g++.dg/vec-init-1.C
- ec1873d6dd21d2c7cc0b6215931efed0  gcc/testsuite/g++.dg/vect/param-max-aliased-pr26197.cc
  bb3b906322f73b1bfddaab3658a0314e  gcc/testsuite/g++.dg/vect/pr102226.cc
  fe723c4381a898f584795d9e20c58d72  gcc/testsuite/g++.dg/vect/pr102421.cc
  2f4df2b1afc45455438253ceb176020a  gcc/testsuite/g++.dg/vect/pr102572.cc
--- 40551,40556 ----
*************** e7c5a636a280962b70166d1494223f9c  gcc/te
*** 40526,40531 ****
--- 40583,40589 ----
  9a0a6f56bdb2cc697abc78c901418a19  gcc/testsuite/g++.dg/vect/pr21734_1.cc
  ab2ed8f8903ce284c8fae4fd5c3fc623  gcc/testsuite/g++.dg/vect/pr21734_2.cc
  64678e82148d6ddd615a2f78c5736bbf  gcc/testsuite/g++.dg/vect/pr22543.cc
+ 03ccc0ade9921d28c91fc0537845194b  gcc/testsuite/g++.dg/vect/pr26197.cc
  316093142a5fba134bf3b94e8d8854e8  gcc/testsuite/g++.dg/vect/pr33426-ivdep-2.cc
  7707162cfa9dc8631360eee5e8fd4654  gcc/testsuite/g++.dg/vect/pr33426-ivdep-3.cc
  c122c9018c94553a728a76828044ae1f  gcc/testsuite/g++.dg/vect/pr33426-ivdep-4.cc
*************** bb04402a5286da0c2b2bd970e15a7c0a  gcc/te
*** 40623,40630 ****
  7509f0d1c7df2744d657804a467cd882  gcc/testsuite/g++.dg/vect/vect-early-break_6.cc
  750c3d825061bd1ca9b4587c0081a7aa  gcc/testsuite/g++.dg/vect/vect-novector-pragma.cc
  c9f2a8124f076b5bb673e6fab2b06069  gcc/testsuite/g++.dg/vect/vect-novector-pragma_2.cc
  0a23130ea4ce46e0a0236cd4d6c8e7fa  gcc/testsuite/g++.dg/vect/vect-uncounted-prolog-peel_1.cc
! e865fa59ffd00ec77a5b4f68fc78abdf  gcc/testsuite/g++.dg/vect/vect.exp
  71d10a285587bb46cc1bf1ab339fa743  gcc/testsuite/g++.dg/warn/83895.C
  daeef1989c46da48d17102900d28c0c7  gcc/testsuite/g++.dg/warn/Waddress-1.C
  76f33c61a70fa23046bdab31539d3229  gcc/testsuite/g++.dg/warn/Waddress-2.C
--- 40681,40689 ----
  7509f0d1c7df2744d657804a467cd882  gcc/testsuite/g++.dg/vect/vect-early-break_6.cc
  750c3d825061bd1ca9b4587c0081a7aa  gcc/testsuite/g++.dg/vect/vect-novector-pragma.cc
  c9f2a8124f076b5bb673e6fab2b06069  gcc/testsuite/g++.dg/vect/vect-novector-pragma_2.cc
+ d755361dca7e8678de65cef4fd2ec24d  gcc/testsuite/g++.dg/vect/vect-pr107690.cc
  0a23130ea4ce46e0a0236cd4d6c8e7fa  gcc/testsuite/g++.dg/vect/vect-uncounted-prolog-peel_1.cc
! 27913e4564f67b015965c39a5afd64d0  gcc/testsuite/g++.dg/vect/vect.exp
  71d10a285587bb46cc1bf1ab339fa743  gcc/testsuite/g++.dg/warn/83895.C
  daeef1989c46da48d17102900d28c0c7  gcc/testsuite/g++.dg/warn/Waddress-1.C
  76f33c61a70fa23046bdab31539d3229  gcc/testsuite/g++.dg/warn/Waddress-2.C
*************** f11e1a6a7c64d32c0698605c42c159c1  gcc/te
*** 41250,41256 ****
  6e35ef68908ea1627bbf0f12306891ed  gcc/testsuite/g++.dg/warn/Wunused-parm-9.C
  b70117657eaf5edbb95110248d7ee800  gcc/testsuite/g++.dg/warn/Wunused-result-1.C
  fba202d17d94d19c21e05a678c6a5ab1  gcc/testsuite/g++.dg/warn/Wunused-result-2.C
! 9f58f786374ace9197727c146cea66dd  gcc/testsuite/g++.dg/warn/Wunused-value-1.C
  fa65c8a17eb4d8c1f0c9d7ddacd6222e  gcc/testsuite/g++.dg/warn/Wunused-value-2.C
  4f806576508d70a95ed2a3e232685cdb  gcc/testsuite/g++.dg/warn/Wunused-var-1.C
  898eca8edc4214a3f0d47032d1e29a12  gcc/testsuite/g++.dg/warn/Wunused-var-10.C
--- 41309,41315 ----
  6e35ef68908ea1627bbf0f12306891ed  gcc/testsuite/g++.dg/warn/Wunused-parm-9.C
  b70117657eaf5edbb95110248d7ee800  gcc/testsuite/g++.dg/warn/Wunused-result-1.C
  fba202d17d94d19c21e05a678c6a5ab1  gcc/testsuite/g++.dg/warn/Wunused-result-2.C
! 533f8f8ffb2ce1d144efdcc8db0a35f5  gcc/testsuite/g++.dg/warn/Wunused-value-1.C
  fa65c8a17eb4d8c1f0c9d7ddacd6222e  gcc/testsuite/g++.dg/warn/Wunused-value-2.C
  4f806576508d70a95ed2a3e232685cdb  gcc/testsuite/g++.dg/warn/Wunused-var-1.C
  898eca8edc4214a3f0d47032d1e29a12  gcc/testsuite/g++.dg/warn/Wunused-var-10.C
*************** f3fc1f6861ab16ba7eaf8a5da2bda79e  gcc/te
*** 41589,41594 ****
--- 41648,41654 ----
  cb2dc9676afd95b7735a016564c8fd0c  gcc/testsuite/g++.dg/warn/uninit-pr74765.C
  4cdbc10f60c2aab00b399523a5cb099d  gcc/testsuite/g++.dg/warn/uninit-pr82800.C
  28f5cbc738c708f5e12210ff79249ce5  gcc/testsuite/g++.dg/warn/uninit-pr93100.C
+ 1ddab9cdc6e57f790d8a65c8f5ec66c4  gcc/testsuite/g++.dg/warn/uninit-pr95825-1.C
  f61b425b296038544edfc817dc29fd84  gcc/testsuite/g++.dg/warn/unit-1.C
  b90595080713a3c154e188ca44093e52  gcc/testsuite/g++.dg/warn/unused-fn1.C
  d10b13b30c4f610f231317924054b5ee  gcc/testsuite/g++.dg/warn/unused-result1-Werror.C
*************** eea87d83e17b279b87e26692758e741d  gcc/te
*** 46798,46803 ****
--- 46858,46864 ----
  55a54152820578acabaf82298af82f50  gcc/testsuite/gcc.c-torture/compile/pr116009.c
  a36b5332929fccce3ba46aacdd6e1984  gcc/testsuite/gcc.c-torture/compile/pr116348.c
  49d6139389714e075cde88f08d4d1f2e  gcc/testsuite/gcc.c-torture/compile/pr116516.c
+ 4b342b76caa9e8e213c9b81ca64d1333  gcc/testsuite/gcc.c-torture/compile/pr116600.c
  0385d5805cb6d90dc8a17f2f44d3450e  gcc/testsuite/gcc.c-torture/compile/pr117358.c
  50f2676721fef746c58625b6346f5755  gcc/testsuite/gcc.c-torture/compile/pr117449.c
  7885242b11fb54f407c5b67910c8c93a  gcc/testsuite/gcc.c-torture/compile/pr118362.c
*************** ba307c947af4df2e0ff2f70272caf68a  gcc/te
*** 46809,46814 ****
--- 46870,46876 ----
  b20dd8a4cdcf6dd51489456d26453893  gcc/testsuite/gcc.c-torture/compile/pr122066.c
  46eb20294e18878710a761cb15ba8fd5  gcc/testsuite/gcc.c-torture/compile/pr122588-1.c
  9696537bbd1354b5d13d3e674cf11570  gcc/testsuite/gcc.c-torture/compile/pr123069.c
+ 8c484e5df297a43329f4182432f35fda  gcc/testsuite/gcc.c-torture/compile/pr123386.c
  ffc2d0352a16ed7c76c12152bde69753  gcc/testsuite/gcc.c-torture/compile/pr123703.c
  33c7141fcf5b1add3ddd2be0100f1f0d  gcc/testsuite/gcc.c-torture/compile/pr12517.c
  ec16b12ab11c499bf321be18ea59da33  gcc/testsuite/gcc.c-torture/compile/pr12578.c
*************** fd6b9c1ae3833951eb92de84a938f778  gcc/te
*** 50690,50696 ****
  2b005f545877795663ba55a328aa9b60  gcc/testsuite/gcc.dg/analyzer/deref-before-check-macro.c
  452ca8a442483b2507962d0dd1d5efdc  gcc/testsuite/gcc.dg/analyzer/deref-before-check-pr113253.c
  64840faa76375f58a4f02239bbee2133  gcc/testsuite/gcc.dg/analyzer/describe-1.c
! e76763ed8df9a3e765e4bd7f146e823b  gcc/testsuite/gcc.dg/analyzer/doom-d_main-IdentifyVersion.c
  60ee6abfbc9b8a834263465dbfa1757b  gcc/testsuite/gcc.dg/analyzer/doom-s_sound-pr108867.c
  0ec3d38b15165ad7732c142bfbb0329f  gcc/testsuite/gcc.dg/analyzer/double-free-lto-1-a.c
  5da5e08e5a3b9fac183936207016118f  gcc/testsuite/gcc.dg/analyzer/double-free-lto-1-b.c
--- 50752,50758 ----
  2b005f545877795663ba55a328aa9b60  gcc/testsuite/gcc.dg/analyzer/deref-before-check-macro.c
  452ca8a442483b2507962d0dd1d5efdc  gcc/testsuite/gcc.dg/analyzer/deref-before-check-pr113253.c
  64840faa76375f58a4f02239bbee2133  gcc/testsuite/gcc.dg/analyzer/describe-1.c
! 79f1ff0cd918a19b54f93e743e066e42  gcc/testsuite/gcc.dg/analyzer/doom-d_main-IdentifyVersion.c
  60ee6abfbc9b8a834263465dbfa1757b  gcc/testsuite/gcc.dg/analyzer/doom-s_sound-pr108867.c
  0ec3d38b15165ad7732c142bfbb0329f  gcc/testsuite/gcc.dg/analyzer/double-free-lto-1-a.c
  5da5e08e5a3b9fac183936207016118f  gcc/testsuite/gcc.dg/analyzer/double-free-lto-1-b.c
*************** b29483f2758f47b95759473be5a64ba6  gcc/te
*** 50738,50743 ****
--- 50800,50808 ----
  60112ba55cc527ed2f374a5469b8bb21  gcc/testsuite/gcc.dg/analyzer/file-paths-1.c
  75f588a8b419118a7d616febe28e31d0  gcc/testsuite/gcc.dg/analyzer/file-pr58237.c
  9b3a1447e7bea99cf8e166ae40a1809a  gcc/testsuite/gcc.dg/analyzer/fopen-1.c
+ 471e212ffaba7e73946663e02bd3f81d  gcc/testsuite/gcc.dg/analyzer/ice-pr113496.c
+ 5595310af02dfa91a81b62875727bbee  gcc/testsuite/gcc.dg/analyzer/ice-pr124055-1.c
+ c30d5e3cc23b459e19c55fd156c02af1  gcc/testsuite/gcc.dg/analyzer/ice-pr124055-2.c
  155a92eb05a1d79d891ec61b021a400d  gcc/testsuite/gcc.dg/analyzer/infinite-loop-1.c
  6656f307410ce53b848c53694a60327b  gcc/testsuite/gcc.dg/analyzer/malloc-1.c
  ad7c2c590985fadaba524fa5f6d48979  gcc/testsuite/gcc.dg/analyzer/malloc-4.c
*************** acc662379756e41ce6873fb8ee91f0b1  gcc/te
*** 50765,50770 ****
--- 50830,50837 ----
  2120bf0a3275d6e161ffd6b3b7cf271e  gcc/testsuite/gcc.dg/analyzer/null-deref-pr102671-1.c
  9cd6217b9db63b38bbf530921833bcee  gcc/testsuite/gcc.dg/analyzer/null-deref-pr102671-2.c
  09490f42f4a9472c51c240f8b680c186  gcc/testsuite/gcc.dg/analyzer/null-deref-pr105755.c
+ f0180ece8107503ad9983a1c1025f2b8  gcc/testsuite/gcc.dg/analyzer/null-deref-pr123981-1.c
+ 86c2576df6e78cc46dfbd6f36acfcd54  gcc/testsuite/gcc.dg/analyzer/null-deref-pr123981-2.c
  5c1afdb0e8d48de62c20901771c1c269  gcc/testsuite/gcc.dg/analyzer/null-terminated-strings-1.c
  aaddc4b9a407ce80be75f1c757af9df4  gcc/testsuite/gcc.dg/analyzer/operations.c
  3b27232f5cf255ca8253bb7b23b7a3c0  gcc/testsuite/gcc.dg/analyzer/out-of-bounds-4.c
*************** d31cd9527a48524e11069281c92681ad  gcc/te
*** 50957,50962 ****
--- 51024,51030 ----
  f51fae0e8d61e76c5a00d9a7a8e4a3f3  gcc/testsuite/gcc.dg/analyzer/torture/conftest-1.c
  e85d83557fa692d7016e4622b85ca975  gcc/testsuite/gcc.dg/analyzer/torture/empty-struct-1.c
  2542099bfd1e3067fad9b5ea97b355cb  gcc/testsuite/gcc.dg/analyzer/torture/fold-ptr-arith-pr105784.c
+ afd1ce4f8872947758e30f3cd5a71723  gcc/testsuite/gcc.dg/analyzer/torture/ice-pr111099.c
  bc41fb75b5978c15bb8832df53632d87  gcc/testsuite/gcc.dg/analyzer/torture/ice-pr117491.c
  2a944db68262f05280b26c9c165685c9  gcc/testsuite/gcc.dg/analyzer/torture/intptr_t.c
  fbd2e05a9e1bee211c5fd03bb02f863a  gcc/testsuite/gcc.dg/analyzer/torture/leak-pr102308-1.c
*************** af689fcf0e6540f0e5a60c11473f2f49  gcc/te
*** 51391,51397 ****
  d6f7c46e3498df8dad35d4281fd48b44  gcc/testsuite/gcc.dg/auto-init-uninit-14.c
  5ffaeba3da6f0c7ac9d8346effb216aa  gcc/testsuite/gcc.dg/auto-init-uninit-15.c
  5be5b751280a109e8bb4dfcb9acb6384  gcc/testsuite/gcc.dg/auto-init-uninit-16.c
! fdfdc981e23a2b1ece9d480a29675f01  gcc/testsuite/gcc.dg/auto-init-uninit-17.c
  a5758b25bb46b199ceb2adc8b48e41a0  gcc/testsuite/gcc.dg/auto-init-uninit-18.c
  120b99dd5651a9ab10bbfca8febd26ce  gcc/testsuite/gcc.dg/auto-init-uninit-19.c
  a4c05cf84a9c561c56b9a31ff5c6ab81  gcc/testsuite/gcc.dg/auto-init-uninit-2.c
--- 51459,51465 ----
  d6f7c46e3498df8dad35d4281fd48b44  gcc/testsuite/gcc.dg/auto-init-uninit-14.c
  5ffaeba3da6f0c7ac9d8346effb216aa  gcc/testsuite/gcc.dg/auto-init-uninit-15.c
  5be5b751280a109e8bb4dfcb9acb6384  gcc/testsuite/gcc.dg/auto-init-uninit-16.c
! 5aeaca063a49bb556049dd3c17e1633c  gcc/testsuite/gcc.dg/auto-init-uninit-17.c
  a5758b25bb46b199ceb2adc8b48e41a0  gcc/testsuite/gcc.dg/auto-init-uninit-18.c
  120b99dd5651a9ab10bbfca8febd26ce  gcc/testsuite/gcc.dg/auto-init-uninit-19.c
  a4c05cf84a9c561c56b9a31ff5c6ab81  gcc/testsuite/gcc.dg/auto-init-uninit-2.c
*************** d05bdce55447fc39d09a1133e04e88b4  gcc/te
*** 52924,52929 ****
--- 52992,52998 ----
  45e735b0d33fac192a119347115d5b0c  gcc/testsuite/gcc.dg/completion-4.c
  649ce6d53eeda31c7cb4947fab7ac38f  gcc/testsuite/gcc.dg/completion-5.c
  a86556f4f0c72c0bee2f104440830505  gcc/testsuite/gcc.dg/complex-1.c
+ 79e8cd8a2d1264875feb64c5169b21d2  gcc/testsuite/gcc.dg/complex-10.c
  ec2d607c705e532267dc3c09849c554f  gcc/testsuite/gcc.dg/complex-2.c
  da2226add6799fd192e2b367404d1b0b  gcc/testsuite/gcc.dg/complex-2.h
  7cbd734da9d8330b57f4e78af353b9f2  gcc/testsuite/gcc.dg/complex-3.c
*************** e67d08df2740253fbd775d0cecadb674  gcc/te
*** 60397,60402 ****
--- 60466,60472 ----
  fc8a5312453aa6c9b35ca224e4f25936  gcc/testsuite/gcc.dg/sarif-output/bad-pragma.py
  11c406043066508f1c8c1d68038c665f  gcc/testsuite/gcc.dg/sarif-output/extra-semicolon.c
  f5241916ba89197ea97f36973548b7d1  gcc/testsuite/gcc.dg/sarif-output/extra-semicolon.py
+ a51277a7038f05a21017012e098d749d  gcc/testsuite/gcc.dg/sarif-output/ice-pr124014.c
  8f8b84d2a2c3a40aa471376ef3ad86d4  gcc/testsuite/gcc.dg/sarif-output/include-chain-1-1.h
  d3793bbe48652d7af1be40301a35eae3  gcc/testsuite/gcc.dg/sarif-output/include-chain-1-2.h
  579c4b601aac5ae14e1340f88250575d  gcc/testsuite/gcc.dg/sarif-output/include-chain-1.c
*************** a8c77450164d982f6f0dcc79256dc3b3  gcc/te
*** 61884,61890 ****
  5af2c3f9d3b0fc4e4e5f1587b7b54559  gcc/testsuite/gcc.dg/torture/pr117492-1.c
  63b796d5b3b10504df9b0de833d5782f  gcc/testsuite/gcc.dg/torture/pr117496-1.c
  eddfc0d7cd1c070bdf2c737c7d6c0fd6  gcc/testsuite/gcc.dg/torture/pr117546.c
! 318fa402aa23281002f7acad59c9cdf6  gcc/testsuite/gcc.dg/torture/pr117567.c
  211f874eb690213e110852d5efe7da32  gcc/testsuite/gcc.dg/torture/pr117574-1.c
  fbc66d37323062d4dfeea9f5f179a29e  gcc/testsuite/gcc.dg/torture/pr117811.c
  a54993330e7b027c17c4eb45e9a8e2fc  gcc/testsuite/gcc.dg/torture/pr117859-1.c
--- 61954,61960 ----
  5af2c3f9d3b0fc4e4e5f1587b7b54559  gcc/testsuite/gcc.dg/torture/pr117492-1.c
  63b796d5b3b10504df9b0de833d5782f  gcc/testsuite/gcc.dg/torture/pr117496-1.c
  eddfc0d7cd1c070bdf2c737c7d6c0fd6  gcc/testsuite/gcc.dg/torture/pr117546.c
! 953525de358e8126fd41ec2c5112f257  gcc/testsuite/gcc.dg/torture/pr117567.c
  211f874eb690213e110852d5efe7da32  gcc/testsuite/gcc.dg/torture/pr117574-1.c
  fbc66d37323062d4dfeea9f5f179a29e  gcc/testsuite/gcc.dg/torture/pr117811.c
  a54993330e7b027c17c4eb45e9a8e2fc  gcc/testsuite/gcc.dg/torture/pr117859-1.c
*************** c6c07c813f67e0f94f1352f2810dfcff  gcc/te
*** 61993,61998 ****
--- 62063,62069 ----
  50838f4736657229a26dc1b011faf8d3  gcc/testsuite/gcc.dg/torture/pr123864.c
  846de4745dc42cf6d9abe36308df2301  gcc/testsuite/gcc.dg/torture/pr123887-2.c
  45e84720260c50c6a2acdec6f8eec9ca  gcc/testsuite/gcc.dg/torture/pr123887.c
+ 3512b1f432642c2b26467b9236415c88  gcc/testsuite/gcc.dg/torture/pr124062-1.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
*************** da4037959e336e19cb95c25f91f8eb52  gcc/te
*** 62639,62645 ****
  5fc6843d84c7c67303a3c2a76863da48  gcc/testsuite/gcc.dg/torture/pr70740-1.c
  4d1238dca9ba78a21e7d9610e1650501  gcc/testsuite/gcc.dg/torture/pr70740.c
  058fe139380690d2ec38aa882c1f7908  gcc/testsuite/gcc.dg/torture/pr70780.c
! 1e84eef1cf14107c196e49f94559a559  gcc/testsuite/gcc.dg/torture/pr70935.c
  b6bb0c63d9e968f4f16f282365518a50  gcc/testsuite/gcc.dg/torture/pr70941.c
  7ad5c43092d6ab1c1cd22f4cc97b73b3  gcc/testsuite/gcc.dg/torture/pr70985.c
  9915e21032257877059e42dd288106d1  gcc/testsuite/gcc.dg/torture/pr70986-1.c
--- 62710,62716 ----
  5fc6843d84c7c67303a3c2a76863da48  gcc/testsuite/gcc.dg/torture/pr70740-1.c
  4d1238dca9ba78a21e7d9610e1650501  gcc/testsuite/gcc.dg/torture/pr70740.c
  058fe139380690d2ec38aa882c1f7908  gcc/testsuite/gcc.dg/torture/pr70780.c
! f9df1631c4c33a5154dad703a315ba1f  gcc/testsuite/gcc.dg/torture/pr70935.c
  b6bb0c63d9e968f4f16f282365518a50  gcc/testsuite/gcc.dg/torture/pr70941.c
  7ad5c43092d6ab1c1cd22f4cc97b73b3  gcc/testsuite/gcc.dg/torture/pr70985.c
  9915e21032257877059e42dd288106d1  gcc/testsuite/gcc.dg/torture/pr70986-1.c
*************** ffc8d6d378e80da23cc2300fd9f2d529  gcc/te
*** 63087,63092 ****
--- 63158,63164 ----
  202d6aa3877d101c9e0478fb19fe0cfe  gcc/testsuite/gcc.dg/torture/stackalign/vararg-1.c
  9745a2d681b3702fc4241443699f25d0  gcc/testsuite/gcc.dg/torture/stackalign/vararg-2.c
  3de9668ba2bd89837c3f7c15e1e3d7e2  gcc/testsuite/gcc.dg/torture/stackalign/vararg-3.c
+ 966176fdcfc7f8479cc69c120c9080ca  gcc/testsuite/gcc.dg/torture/tls-return-1.c
  9ff09cb739592baf30552acd2b24f79f  gcc/testsuite/gcc.dg/torture/tls/pr104777.c
  ed0fa1d073845fed5b0352c474ef8b77  gcc/testsuite/gcc.dg/torture/tls/run-gd.c
  df7b12dbf9d331f62fd4d971bf2212d0  gcc/testsuite/gcc.dg/torture/tls/run-ie.c
*************** a7469adfbda853628ff89a7cbd24a157  gcc/te
*** 63658,63663 ****
--- 63730,63736 ----
  2f250f0e1e47e486ebffa648de678b82  gcc/testsuite/gcc.dg/tree-ssa/copy-prop-aggregate-arg-2.c
  01b1b6fceaa12b65220a2003fe30396f  gcc/testsuite/gcc.dg/tree-ssa/copy-prop-aggregate-memcpy-1.c
  edf08219ede3b6ca737fe14a29546f0f  gcc/testsuite/gcc.dg/tree-ssa/copy-prop-aggregate-memcpy-2.c
+ 74274cb612b7e736e74c1339f75f671b  gcc/testsuite/gcc.dg/tree-ssa/copy-prop-aggregate-return-1.c
  bf69f6c6a5af6135641da35464d6adbf  gcc/testsuite/gcc.dg/tree-ssa/copy-prop-aggregate-sra-1.c
  26535898276be84d4c9b1dd5c518291c  gcc/testsuite/gcc.dg/tree-ssa/copy-prop-aggregate-struct-1.c
  4e3f86968b3beec7e0f58cad74c609c4  gcc/testsuite/gcc.dg/tree-ssa/copy-prop-aggregate-union-1.c
*************** c611b4ad3ec4bad367027a6ab1ef6505  gcc/te
*** 65970,65976 ****
  8c17d6053629a76d697c5750e0ab6be0  gcc/testsuite/gcc.dg/uninit-15.c
  92cf714efeaed3ffe0cd867508cfe505  gcc/testsuite/gcc.dg/uninit-16.c
  c47999a5663fbe110a3d4134c92050c2  gcc/testsuite/gcc.dg/uninit-17-O0.c
! 728401b250e40769899aeaa5eb3c4f2e  gcc/testsuite/gcc.dg/uninit-17.c
  997ae4c527f3facdc5684123c0d1cddb  gcc/testsuite/gcc.dg/uninit-18.c
  2a426f79de81351d47cb171978b08347  gcc/testsuite/gcc.dg/uninit-19.c
  668c58e2312b2988b8c85c02786bdbeb  gcc/testsuite/gcc.dg/uninit-2-O0.c
--- 66043,66049 ----
  8c17d6053629a76d697c5750e0ab6be0  gcc/testsuite/gcc.dg/uninit-15.c
  92cf714efeaed3ffe0cd867508cfe505  gcc/testsuite/gcc.dg/uninit-16.c
  c47999a5663fbe110a3d4134c92050c2  gcc/testsuite/gcc.dg/uninit-17-O0.c
! 6d9097c58f221810416c0c204a93c44c  gcc/testsuite/gcc.dg/uninit-17.c
  997ae4c527f3facdc5684123c0d1cddb  gcc/testsuite/gcc.dg/uninit-18.c
  2a426f79de81351d47cb171978b08347  gcc/testsuite/gcc.dg/uninit-19.c
  668c58e2312b2988b8c85c02786bdbeb  gcc/testsuite/gcc.dg/uninit-2-O0.c
*************** ec22e39e2b160e6444e03b5dcacc93f3  gcc/te
*** 66076,66081 ****
--- 66149,66155 ----
  2e37ae395e46a8e8e62921557b5db451  gcc/testsuite/gcc.dg/uninit-pr95136.c
  b9a90a31f9367e9fca92ba238b6fe065  gcc/testsuite/gcc.dg/uninit-pr98578.c
  776c442039a1091c603d900bd9f272bf  gcc/testsuite/gcc.dg/uninit-pr98583.c
+ d0cc734c519900cf3818df0c3dad96d4  gcc/testsuite/gcc.dg/uninit-pr99959.c
  4d968f2db69dec7e5f880146576fc801  gcc/testsuite/gcc.dg/uninit-pred-10.c
  1c6a6934369db3cfac321448a75a0f01  gcc/testsuite/gcc.dg/uninit-pred-11.c
  ba0a14121a9b141b05ad92194338f663  gcc/testsuite/gcc.dg/uninit-pred-12.c
*************** c07b9d4e3ca9cf5bb3e5b307145e90ff  gcc/te
*** 66187,66216 ****
  7f29aa4616378fb72f7fab614907128d  gcc/testsuite/gcc.dg/varpool-1.c
  d8ef65c736eef2f4a9994c6a87ebda95  gcc/testsuite/gcc.dg/vec-andxor1.c
  676e89c6b3d0e18d0a9ec4b5f95072e9  gcc/testsuite/gcc.dg/vec-perm-lower.c
! f15a087d2d1b7f1cc41a5b0473154ebc  gcc/testsuite/gcc.dg/vect/O-pr46167.c
! 6830ebc59ec37676c0ffa608cbbf0dbf  gcc/testsuite/gcc.dg/vect/O1-pr33854.c
! 7f512dc347a6a290aad93ca27e40d3cf  gcc/testsuite/gcc.dg/vect/O1-pr41008.c
! 810b6c567d5cc65ed09e5f629749c726  gcc/testsuite/gcc.dg/vect/O3-pr36098.c
! 9f70d133cf0f8ca01ddfad668acea211  gcc/testsuite/gcc.dg/vect/O3-pr39675-2.c
! 0ab6a3fe4028fa52387afcf07048d42b  gcc/testsuite/gcc.dg/vect/O3-pr41881.c
! 0bd53a59e4e24ff3ae224207642dd919  gcc/testsuite/gcc.dg/vect/O3-pr45971.c
! f04c55b103b93bf0cf4ac5956072c73c  gcc/testsuite/gcc.dg/vect/O3-pr46077.c
! f03f156261b27743d553f9fe6d7d101c  gcc/testsuite/gcc.dg/vect/O3-pr49087.c
! d8070175db1427b96725412f7f707e00  gcc/testsuite/gcc.dg/vect/O3-pr70130.c
! 0624b7385890a947f64e52ebba25b5c4  gcc/testsuite/gcc.dg/vect/O3-pr85794.c
! 480e3a6ad5c66a146fe08e5b9f5bcbbf  gcc/testsuite/gcc.dg/vect/O3-pr87546.c
! a959c9cd4dfb9164c103f8c61740e6ab  gcc/testsuite/gcc.dg/vect/O3-slp-reduc-10.c
! f7665d7d0aa1b90766acc485626018a6  gcc/testsuite/gcc.dg/vect/O3-vect-pr32243.c
! 3aceef80872b677e6b60251bfe10b13c  gcc/testsuite/gcc.dg/vect/O3-vect-pr34223.c
! 013f85cb6d747ae2935ef1404e22d4d8  gcc/testsuite/gcc.dg/vect/O3-vect-pr61917.c
! 61cff5751ac047afd81084622de56210  gcc/testsuite/gcc.dg/vect/Os-vect-95.c
! 466c6438cbf21bd48800a6bd2bce72af  gcc/testsuite/gcc.dg/vect/aligned-section-anchors-nest-1.c
! 9f9afc3ac1c180057b7c583bd065c471  gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-70.c
! 6f596ecff4c2737731de5f27856f1a79  gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-71.c
! fc3f9485da33ab149e612932c91c2cb1  gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-72.c
  fe265996a9ba43da01bf88128f9404f7  gcc/testsuite/gcc.dg/vect/bb-slp-1.c
  3aba66ae84b78b9d88c641884c46c32a  gcc/testsuite/gcc.dg/vect/bb-slp-10.c
  758cea355af7aa7ee4207f36da0baa72  gcc/testsuite/gcc.dg/vect/bb-slp-11.c
  ce36b8e49455e65805b6c7b39eb20a08  gcc/testsuite/gcc.dg/vect/bb-slp-13.c
  997e8e409fc9d65e61eedd915ed06a08  gcc/testsuite/gcc.dg/vect/bb-slp-14.c
  22e04ce02d2e83a37186472a1dbb5fcb  gcc/testsuite/gcc.dg/vect/bb-slp-15.c
--- 66261,66291 ----
  7f29aa4616378fb72f7fab614907128d  gcc/testsuite/gcc.dg/varpool-1.c
  d8ef65c736eef2f4a9994c6a87ebda95  gcc/testsuite/gcc.dg/vec-andxor1.c
  676e89c6b3d0e18d0a9ec4b5f95072e9  gcc/testsuite/gcc.dg/vec-perm-lower.c
! 4b03f610c766f4868dc1f6a9231a92dd  gcc/testsuite/gcc.dg/vect/O-pr46167.c
! 80376cabe7282c0a5547826a1f72c583  gcc/testsuite/gcc.dg/vect/O1-pr33854.c
! 0244865eb965be6b0206c2093916569c  gcc/testsuite/gcc.dg/vect/O1-pr41008.c
! ea91598a5eed7ffd481f6cbfc45b1f10  gcc/testsuite/gcc.dg/vect/O3-pr36098.c
! e683131579ddd6937a0965e90ccdd39f  gcc/testsuite/gcc.dg/vect/O3-pr39675-2.c
! d83c8e1a6ac50599dfc86b5c8c8c4f12  gcc/testsuite/gcc.dg/vect/O3-pr41881.c
! e0bf38ffbf9adb96791fc1b83e79fe3d  gcc/testsuite/gcc.dg/vect/O3-pr45971.c
! 5171b87956f5231c0b9628f3a000fe44  gcc/testsuite/gcc.dg/vect/O3-pr46077.c
! 7a7595cf8e0394aef95ce42b17efbd9c  gcc/testsuite/gcc.dg/vect/O3-pr49087.c
! bb7b6533aa6e26f74d69bb6e8f2b7d48  gcc/testsuite/gcc.dg/vect/O3-pr70130.c
! b2c7bd060363e41c80aae3b983955694  gcc/testsuite/gcc.dg/vect/O3-pr85794.c
! 69aeb7f04d8d1ded086be822fc9b914a  gcc/testsuite/gcc.dg/vect/O3-pr87546.c
! cd7c0988aa07fbdb79c0f1b0e5bd81d3  gcc/testsuite/gcc.dg/vect/O3-slp-reduc-10.c
! 34a6eb045b3bfaf4f22270fcfd2a3794  gcc/testsuite/gcc.dg/vect/O3-vect-pr32243.c
! 5e99548572b3c36bed9be3d83166ddbb  gcc/testsuite/gcc.dg/vect/O3-vect-pr34223.c
! 9c8d14cbf3cfa02ca8f8270addce7414  gcc/testsuite/gcc.dg/vect/O3-vect-pr61917.c
! 9d79d6ac04ce5e31d62c95e2874e9173  gcc/testsuite/gcc.dg/vect/Os-vect-95.c
! f2d863976486b2799e4a623feb897fab  gcc/testsuite/gcc.dg/vect/aligned-section-anchors-nest-1.c
! 608f24e183cbe3e235bec9f40501b273  gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-70.c
! e86c161fb300e8dcfa9a91f7d9a396ec  gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-71.c
! 0709a21c113137ed1fe8ec266ae4032e  gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-72.c
  fe265996a9ba43da01bf88128f9404f7  gcc/testsuite/gcc.dg/vect/bb-slp-1.c
  3aba66ae84b78b9d88c641884c46c32a  gcc/testsuite/gcc.dg/vect/bb-slp-10.c
  758cea355af7aa7ee4207f36da0baa72  gcc/testsuite/gcc.dg/vect/bb-slp-11.c
+ f6f5dfefafd6c8e1ad7d55c69208890a  gcc/testsuite/gcc.dg/vect/bb-slp-12.c
  ce36b8e49455e65805b6c7b39eb20a08  gcc/testsuite/gcc.dg/vect/bb-slp-13.c
  997e8e409fc9d65e61eedd915ed06a08  gcc/testsuite/gcc.dg/vect/bb-slp-14.c
  22e04ce02d2e83a37186472a1dbb5fcb  gcc/testsuite/gcc.dg/vect/bb-slp-15.c
*************** e25a8f3320f641e5055cfc1e0a955c40  gcc/te
*** 66287,66293 ****
  74399495ff8f4034fefd09f665413168  gcc/testsuite/gcc.dg/vect/bb-slp-8b.c
  19ee53d59cf6e245a1708525a8887b01  gcc/testsuite/gcc.dg/vect/bb-slp-9.c
  8809855af1ea14173db1668e1ebb3c33  gcc/testsuite/gcc.dg/vect/bb-slp-bool-1.c
! b139bc8a7ebad29213bbf02c0f22f632  gcc/testsuite/gcc.dg/vect/bb-slp-cond-1.c
  b2a7701b9eeacd6cecdcda7c9036129a  gcc/testsuite/gcc.dg/vect/bb-slp-conditional_store_1.c
  1b5ff799161e9971d6bd28bec8d16440  gcc/testsuite/gcc.dg/vect/bb-slp-div-1.c
  d840a44aa42e8dbf05f710b4031b11a1  gcc/testsuite/gcc.dg/vect/bb-slp-div-2.c
--- 66362,66371 ----
  74399495ff8f4034fefd09f665413168  gcc/testsuite/gcc.dg/vect/bb-slp-8b.c
  19ee53d59cf6e245a1708525a8887b01  gcc/testsuite/gcc.dg/vect/bb-slp-9.c
  8809855af1ea14173db1668e1ebb3c33  gcc/testsuite/gcc.dg/vect/bb-slp-bool-1.c
! 1d364b88cee484a12627a6441eb0a73e  gcc/testsuite/gcc.dg/vect/bb-slp-call-1.c
! a2a31f73b067f86314a45763557dbbb3  gcc/testsuite/gcc.dg/vect/bb-slp-call-2.c
! 9c7f6add6d5a9e38d559986146f82f20  gcc/testsuite/gcc.dg/vect/bb-slp-call-3.c
! e1585b42cfd6432c0219b429481cdcfe  gcc/testsuite/gcc.dg/vect/bb-slp-cond-1.c
  b2a7701b9eeacd6cecdcda7c9036129a  gcc/testsuite/gcc.dg/vect/bb-slp-conditional_store_1.c
  1b5ff799161e9971d6bd28bec8d16440  gcc/testsuite/gcc.dg/vect/bb-slp-div-1.c
  d840a44aa42e8dbf05f710b4031b11a1  gcc/testsuite/gcc.dg/vect/bb-slp-div-2.c
*************** be86bc81622216478087ebb0eb3b5c80  gcc/te
*** 66335,66340 ****
--- 66413,66419 ----
  536ff3716470f738cfa7ae45d07e10f8  gcc/testsuite/gcc.dg/vect/bb-slp-pr119181.c
  7985ca78d6f56c0a2c1475513068be88  gcc/testsuite/gcc.dg/vect/bb-slp-pr119960-1.c
  63bead846dcbd7cde9d80df1101fda79  gcc/testsuite/gcc.dg/vect/bb-slp-pr120808.c
+ c7ebf5ca82162d225346ddd17f7cd2e2  gcc/testsuite/gcc.dg/vect/bb-slp-pr50730.c
  d46400927215059ca9b31c5b97f6e386  gcc/testsuite/gcc.dg/vect/bb-slp-pr54400.c
  5472e7bf338627077f4e6ce8cce9944e  gcc/testsuite/gcc.dg/vect/bb-slp-pr58135.c
  7e19c3d3a663aa66906a8c708aec1d4e  gcc/testsuite/gcc.dg/vect/bb-slp-pr65935.c
*************** ce6f3b76b7f5757740b1751047c0460e  gcc/te
*** 66373,66406 ****
  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
  392b14f43eb42a8d099e93a67238f482  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-int.c
  3c29986989a350bcbf82d2501296e7ed  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-long.c
  7875ef38a4f22fd8067ef974de90f4ec  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-short.c
  365c5378e95d6a83b16661ad030b00e0  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-int.c
  5783832c933d2ed6c0cf921f8ccc3753  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-long.c
  87e4526cc9df43f2a40e361af1b14bae  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-short.c
! 8a289d17adc9c82a8866c7bf96e823ed  gcc/testsuite/gcc.dg/vect/complex/complex-add-pattern-template.c
! acb9fe679762d12a4f6f309fa8874627  gcc/testsuite/gcc.dg/vect/complex/complex-add-template.c
! 53c115ab260300dfb7fb6a17a5b91fb9  gcc/testsuite/gcc.dg/vect/complex/complex-mla-template.c
! d296c18a5121519fc5fa6c393b6ca043  gcc/testsuite/gcc.dg/vect/complex/complex-mls-template.c
! 62214c964d5fe67dd941ceaf38c0af04  gcc/testsuite/gcc.dg/vect/complex/complex-mul-template.c
! b663bc81b4270defc2534ee4b697c313  gcc/testsuite/gcc.dg/vect/complex/complex-operations.c
  b63209d5f0331da4f3a28d32c2d7ae4a  gcc/testsuite/gcc.dg/vect/complex/complex.exp
- fc8c785166c2bf723856a358abae638a  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-double.c
- f3f8f88ffc2fdbd76104d8c2df9d5a2c  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-float.c
- 95726074b91226ec9408baaf51f6fc5f  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c
- 10728fb4a6950c82cb6bc9d0eb53db56  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c
- 9c1bae87de05b1d234e79606fac9e2ed  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-float.c
- fe3215787c8e8f2ed17a1b9c757b5bcb  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c
- be69beba870ab0e8027df3a96e1e3a99  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-double.c
- a2b6574b490bdeae547c7c3d79c95eed  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-float.c
- ebaebc19e7f2353f823de1f12e1687af  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c
- fa9e975179c7549630562771c7beb477  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-double.c
- 696fb756ddff68598ae74b6574bf930a  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-float.c
- 8bf53e580f4f0838c8bb08429abb3cc6  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c
- 63d0650eadca149641643cc10372f0dc  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c
- 7872d9eb2f30f8baf7e42f5ccc6980ad  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c
- d039718def2f3937914a518ee3bf2343  gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c
  25c417974becda51f30b458c8bd136e6  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-double.c
  8024221a9e17bb7c493d008d00d70fa7  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-float.c
  54eb093dbdffbcd90c078ffda3d3000a  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-half-float.c
--- 66452,66485 ----
  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
+ fc8c785166c2bf723856a358abae638a  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-double.c
+ f3f8f88ffc2fdbd76104d8c2df9d5a2c  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-float.c
+ 95726074b91226ec9408baaf51f6fc5f  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-half-float.c
+ 10728fb4a6950c82cb6bc9d0eb53db56  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-double.c
+ 9c1bae87de05b1d234e79606fac9e2ed  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-float.c
+ fe3215787c8e8f2ed17a1b9c757b5bcb  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-half-float.c
  392b14f43eb42a8d099e93a67238f482  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-int.c
  3c29986989a350bcbf82d2501296e7ed  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-long.c
  7875ef38a4f22fd8067ef974de90f4ec  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-short.c
  365c5378e95d6a83b16661ad030b00e0  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-int.c
  5783832c933d2ed6c0cf921f8ccc3753  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-long.c
  87e4526cc9df43f2a40e361af1b14bae  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-short.c
! be69beba870ab0e8027df3a96e1e3a99  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mla-double.c
! a2b6574b490bdeae547c7c3d79c95eed  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mla-float.c
! ebaebc19e7f2353f823de1f12e1687af  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mla-half-float.c
! fa9e975179c7549630562771c7beb477  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mls-double.c
! 696fb756ddff68598ae74b6574bf930a  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mls-float.c
! 8bf53e580f4f0838c8bb08429abb3cc6  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mls-half-float.c
! 63d0650eadca149641643cc10372f0dc  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mul-double.c
! 7872d9eb2f30f8baf7e42f5ccc6980ad  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mul-float.c
! d039718def2f3937914a518ee3bf2343  gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mul-half-float.c
! 1fc38485361104e297d916db73278323  gcc/testsuite/gcc.dg/vect/complex/complex-add-pattern-template.c
! f98f85041aa7e74dc854e5f95344a5e7  gcc/testsuite/gcc.dg/vect/complex/complex-add-template.c
! 9224167900cc04aa98d04baedf23218f  gcc/testsuite/gcc.dg/vect/complex/complex-mla-template.c
! 19f8b0e0747b407b42b8b3e84a37cb27  gcc/testsuite/gcc.dg/vect/complex/complex-mls-template.c
! aae47587c5f9a941e4124e02c8f15982  gcc/testsuite/gcc.dg/vect/complex/complex-mul-template.c
! 437c859df52d34bdba6b31ad2a45dbe9  gcc/testsuite/gcc.dg/vect/complex/complex-operations.c
  b63209d5f0331da4f3a28d32c2d7ae4a  gcc/testsuite/gcc.dg/vect/complex/complex.exp
  25c417974becda51f30b458c8bd136e6  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-double.c
  8024221a9e17bb7c493d008d00d70fa7  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-float.c
  54eb093dbdffbcd90c078ffda3d3000a  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-half-float.c
*************** aca7d2373617a1be34881ac1c7f666c3  gcc/te
*** 66558,66563 ****
--- 66637,66643 ----
  af1a8b32e71c4979a967ab326a54bace  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr122573.c
  9186fecdc3fdbd1e29c457ed6c3ec015  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr123190-1.c
  4b5a237cf055ed5b96ca7403d59bb3f7  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr123190-2.c
+ 8fea677abf30f1b5c86576427478aa41  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr123225.c
  65d55853388c31894d07b296d0d577bf  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr123603.c
  adf307e0a12bcc8d31b97d83adb3e848  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr30843.c
  ec5c6a4d5052e20e84aa5eb95742d36f  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr64909.c
*************** f2976042c525e5f95f95c9e6a6567575  gcc/te
*** 66572,66580 ****
  f6fdadd0ea9395aed541bf9b57b73780  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-slp-2.c
  8fa1df6d327c2eef9e16ea686cbebd42  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-slp.c
  8860086a2b3e2174a392f3d46c756988  gcc/testsuite/gcc.dg/vect/costmodel/x86_64/x86_64-costmodel-vect.exp
- 1d364b88cee484a12627a6441eb0a73e  gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-1.c
- a2a31f73b067f86314a45763557dbbb3  gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-2.c
- 9c7f6add6d5a9e38d559986146f82f20  gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-3.c
  1fd9c0d8fbfef94e5c4d3038d0282e93  gcc/testsuite/gcc.dg/vect/fast-math-ifcvt-1.c
  469f2c85982e8c3dad499f96b3e162da  gcc/testsuite/gcc.dg/vect/fast-math-pr35982.c
  73f4aa3b068e7588c597af37aae4896e  gcc/testsuite/gcc.dg/vect/fast-math-pr43074.c
--- 66652,66657 ----
*************** fd5615699c1f8eee1f32b1e5347d1b09  gcc/te
*** 66594,66675 ****
  18b443a6542ecf233ed9863c434b9020  gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-7.c
  2ba8ef3f1c7b4b49a6d7dcdd4309f45a  gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-8.c
  0a6857153fdf055681069ad0998981d5  gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-9.c
! 468cb6f8da74e4fcecd69eee085d36b4  gcc/testsuite/gcc.dg/vect/ggc-pr37574.c
  4efebcda88a2225070cc962fc6d82fc9  gcc/testsuite/gcc.dg/vect/gimplefe-40.c
  d4210e4a58cd5fb42ac6afbcf9a8f361  gcc/testsuite/gcc.dg/vect/gimplefe-41.c
  0290c046682f1964e85751a23e4b4c75  gcc/testsuite/gcc.dg/vect/group-no-gaps-1.c
  0a675f5442e2a158dd6bd64df302bb2c  gcc/testsuite/gcc.dg/vect/if-cvt-stores-vect-ifcvt-18.c
  ddaaf03843db012c82a284d40a6b6d82  gcc/testsuite/gcc.dg/vect/no-fast-math-vect16.c
! cbd914dd109796186423ddfed675979c  gcc/testsuite/gcc.dg/vect/no-fre-pre-pr50208.c
  bd34fbf40b5ec76d35a3c504583c1c49  gcc/testsuite/gcc.dg/vect/no-math-errno-slp-32.c
  1afc983220c4adf37e3e3dfabc291c08  gcc/testsuite/gcc.dg/vect/no-math-errno-vect-pow-1.c
! 5e809f76a90b3214ed4c5c22b9ed3546  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-1.c
! 31f492da75d5c984323816dc8ff1e160  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-2.c
! 5d97c676fcf52690b27698a4ae640549  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-3.c
! 632a3b961d87adfe616ad7b6caf77e2a  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-4.c
! 5c8d741d16bae59236f53f3e4139bde3  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-5.c
! dc3a3bc9b79895046a5bf0cec43c1125  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-slp-reduc-7.c
! 444765775ff88c35d3dd9a64404c4c9b  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-1.c
! 2aae889e51be404f0bcf161226bbd576  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10.c
! b3129ec8ea8c7da6a0173ab2b1fe7290  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10a.c
! 135ec340fd3635c4013bfc7b877ecf35  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10b.c
! 4c7c5b36a98813fdee9001398294329c  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-11.c
! fb91845c9fa6afcad36991bdeb58de13  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-12.c
! da146f4705b5b76e96df30e97f090b94  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-13.c
! f71692f531d922bbf56a02d45f5624b4  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-14.c
! 5184bb3c35060df529c04971144b043d  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-15.c
! 733389f42b2f0989683c4925e91966fe  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-16.c
! 633c8ed2387eb126f8f6cca1e27c3713  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-17.c
! e7b5de1894b484ced0e49d90a7968a99  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-18.c
! 7eb0dd5173ffba4f1ea3b31b1a809652  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-19.c
! 9f50f69fcb296a448ce0f982fb9b64e9  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-2.c
! 72e4890bb4c779fc0dd23ae637b24b82  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-20.c
! 34c1f4c303fffc2f4383bc2136ea8b12  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-21.c
! 7bc65670a413530a863b18bbb7954090  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-22.c
! 735727110e852301d8d1d7ac36fca871  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-3.c
! 6b127c94dc5bb97f5e607eeedd0bbff9  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-4.c
! ec6fe1711153176d2e700ad62a181692  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-5.c
! 02cb63b256d7ab498f11c4d83bebf638  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6-global.c
! 8ca71521b63e0a2f3280f94f4aad2cb1  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6.c
! 76d9a39c8c26bd3e366b44bcc6d6ce6c  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-7.c
! f1a74ad4034497d9cd8c0f6653cd832c  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-8.c
! 2785d935171620f92974cd3b73efe8d5  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9.c
! 696e58e1a9d66a6229a4418239470e20  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9a.c
! 5212f6bfc76ea8cf4d27d31bf55dec68  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9b.c
! e6095768f1f1931c159ead61694b7ef5  gcc/testsuite/gcc.dg/vect/no-scevccp-pr49199.c
! 41e7bd61d87f3d171e9d2194721910ce  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-1.c
! 53e50c2db81ec518548336c2fb3ade49  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-2.c
! b5d81fad47701142c522bbbffb0f3614  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-3.c
! 360dc7646e2c622420ad6a4cf2a6f88c  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-4.c
! b52163346c2e53bdf0d289d24f4d137c  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-5.c
! 0fec78cf46f702db1cd1beb06e8a395c  gcc/testsuite/gcc.dg/vect/no-scevccp-slp-30.c
! 62b924276842bb4d5327577b000f9187  gcc/testsuite/gcc.dg/vect/no-scevccp-slp-31.c
! 376ff2d180a1e50a4401ec9e6ca0207b  gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-1.c
! adc82a204a804f0f74bd416c874eedca  gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-2.c
! 090d505f1e2211973a16cffcb0d4e7f0  gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-3.c
! f6d719f2f0c5479786a8b86a479327a1  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-31.c
! 95ca43c5701ec86ab475429a67375132  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-34.c
! d4404b4f2f9ff09ef71a31254c4aafcd  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-36.c
! 412234e30d445edf3132f3e4bbb4836e  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-64.c
! fe015b93da5ee269e8f46ec570a18d14  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-65.c
! 7bca351db6f0e3ef6ca3c55ab7db9024  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-66.c
! 0ec1438efe6d02e461b3c52a5631997e  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-68.c
! fa930dcbe795913d5ac14d8459b69e60  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-69.c
! e99507d97e91edb5c0d902cf8de380ea  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-outer-4h.c
! 9bb7e0736983a747bdf909b641ac8345  gcc/testsuite/gcc.dg/vect/no-trapping-math-1.c
! 3461f63ca373760633bb8e942938ee38  gcc/testsuite/gcc.dg/vect/no-trapping-math-2.c
! 5cbbfffc47dc1a776b1c2d5db5d4db62  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-111.c
! c07fd28f097aea3bc73cf3f4db1ed84c  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-11.c
! 70703e0cfc465cf5bb67b058bf9f9418  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-12.c
! 742241c33b1ead9bb254f758b55a5210  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-13.c
! 742241c33b1ead9bb254f758b55a5210  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-14.c
! 7d1936518e449c572147bc1855b05712  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-15.c
! c5a5b5a62e09fcafc91522f67de660b1  gcc/testsuite/gcc.dg/vect/no-tree-dom-vect-bug.c
! deb80b9e42227ef9cf3ab1d7f28f3f42  gcc/testsuite/gcc.dg/vect/no-tree-fre-pr50039.c
! 9d154ff23b4a783dc0c623860ab1b50c  gcc/testsuite/gcc.dg/vect/no-tree-pre-pr45241.c
! 25ecbed72fa7aedfcb243446098a1493  gcc/testsuite/gcc.dg/vect/no-tree-pre-slp-29.c
! 80e3432e13638dba27b02c0b1fe76fea  gcc/testsuite/gcc.dg/vect/no-tree-reassoc-bb-slp-12.c
! 98363a4caed4fef8e2d82dc3b4776d97  gcc/testsuite/gcc.dg/vect/no-tree-sra-bb-slp-pr50730.c
  b52369b6d8f04b0c881bc45f36229c29  gcc/testsuite/gcc.dg/vect/no-vfa-pr29145.c
  34ca5a23c391d8e94a50e08413e1c1a3  gcc/testsuite/gcc.dg/vect/no-vfa-vect-101.c
  33eaf9b1a8730ca065ae2e7a6bc38cbb  gcc/testsuite/gcc.dg/vect/no-vfa-vect-102.c
--- 66671,66750 ----
  18b443a6542ecf233ed9863c434b9020  gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-7.c
  2ba8ef3f1c7b4b49a6d7dcdd4309f45a  gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-8.c
  0a6857153fdf055681069ad0998981d5  gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-9.c
! aa65cb012b6762798df98673e46b1427  gcc/testsuite/gcc.dg/vect/ggc-pr37574.c
  4efebcda88a2225070cc962fc6d82fc9  gcc/testsuite/gcc.dg/vect/gimplefe-40.c
  d4210e4a58cd5fb42ac6afbcf9a8f361  gcc/testsuite/gcc.dg/vect/gimplefe-41.c
  0290c046682f1964e85751a23e4b4c75  gcc/testsuite/gcc.dg/vect/group-no-gaps-1.c
  0a675f5442e2a158dd6bd64df302bb2c  gcc/testsuite/gcc.dg/vect/if-cvt-stores-vect-ifcvt-18.c
  ddaaf03843db012c82a284d40a6b6d82  gcc/testsuite/gcc.dg/vect/no-fast-math-vect16.c
! 62bf7dbd828be47cdd2b6b6fb661bae4  gcc/testsuite/gcc.dg/vect/no-fre-pre-pr50208.c
  bd34fbf40b5ec76d35a3c504583c1c49  gcc/testsuite/gcc.dg/vect/no-math-errno-slp-32.c
  1afc983220c4adf37e3e3dfabc291c08  gcc/testsuite/gcc.dg/vect/no-math-errno-vect-pow-1.c
! f4a4ebe6e6583037ce50879b339fd1d1  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-1.c
! 1e443df1b871561a155d785269335233  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-2.c
! 421fd29291f3cec93426c32cc8d46e9f  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-3.c
! 8128df877afb6bf9bbd67cb29edc198a  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-4.c
! 5aecaf400b60324fb852efa8edf49146  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-5.c
! 67a7e2d874360791ce5238bf100414d1  gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-slp-reduc-7.c
! 8a083f0a82f9b3fedb183ea484843052  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-1.c
! ec63d9a08d595d33b3b137c0767c0622  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10.c
! 6c738d64a48e45b2cfd37a25847617df  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10a.c
! 90cfc29be572c25cf0c674ee80d12eed  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10b.c
! 1b75989f679586b6a7f7f5bb3b256017  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-11.c
! 5a68c4a816b4393e1450c33adeae517b  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-12.c
! b4e93d304f4b94737b00189bf6c601e6  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-13.c
! 28bd1008a951cba79eb5190a7470f9c4  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-14.c
! bb250880b98a0d066efc7a71f7ae1963  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-15.c
! 29311b45ed8390b379678d91838bd4fa  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-16.c
! 22d53ff712d849fefd996a583ed642d5  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-17.c
! b0cb8b1927f5803fb1df85b0f3a41915  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-18.c
! d5db79273e9a16e6b47076b3fcffec59  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-19.c
! 0e9e9d30f1698f8d3d18fc77fac369ff  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-2.c
! 86a4c2956426d921b07db0e99e69c97d  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-20.c
! db1594d86d6938c0c89b99a50fb92eb7  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-21.c
! 8394cc3faf00ca24e99b77a1f8b2a7c5  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-22.c
! ee00cf5c1133b2bfe6c35288fa377235  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-3.c
! 30602bd2343f92f43cb3ee3c0d9e8718  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-4.c
! 9a61dd70a1321824971097c2dcfb984b  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-5.c
! d1b92e6eb9008438c4518fe84bf2c868  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6-global.c
! f760ab0c0074981748dc3430370c47dd  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6.c
! 2226a34630c12759d9721e64a43f052e  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-7.c
! fc677ea93229e48e967af4df28b3770c  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-8.c
! 64e575a6bf27b529da5d06267eddafbe  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9.c
! c7ff9ed1f262eff550cad9e0fa905240  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9a.c
! 2d8661a4f09cb1ff94bd159936885c53  gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9b.c
! 5b2d7af2cc19472c26bc3aa8cc88a490  gcc/testsuite/gcc.dg/vect/no-scevccp-pr49199.c
! 652cce420157afa647bc5cce9dde69a6  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-1.c
! 16e6039e1053c4248c2aeeba655520ff  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-2.c
! 0d775a2052527afc0fe6d1960c9a2bb9  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-3.c
! cecec42e5ac8fb062eeee43bc68490dc  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-4.c
! 9132b2f071f852baf60d43b5ea264647  gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-5.c
! a46e6dee57174f16ba8dc881edff9898  gcc/testsuite/gcc.dg/vect/no-scevccp-slp-30.c
! 40f11910c79605f67f67e4f2c216800d  gcc/testsuite/gcc.dg/vect/no-scevccp-slp-31.c
! ed06c7cea6b8cc0dfafa0ab3bdb39950  gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-1.c
! e6f91fe89f91e8738ab81339ff636a43  gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-2.c
! 0bdeac58d5658700ce1b1f67da8b1137  gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-3.c
! 7fb4bc67b1683d018481f4c637a1cd73  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-31.c
! 73d39913aa16d9b785d7aeb771fdacb0  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-34.c
! f377218948b70e4e824d41ecf64af2c1  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-36.c
! 1bb738dc50b67240c6ee47120d456cae  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-64.c
! 0de6adb5121840a7b5a393252230eeab  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-65.c
! b3546c1da1041b10f8994b25052fe95a  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-66.c
! fecad5c68b07c7ad16832faca6324007  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-68.c
! 313579d762f27b3083356fc800191bc6  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-69.c
! 05c92eb12484f3914a222f12d5d580f5  gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-outer-4h.c
! 728bd2f2e78eab8a2b7f48666804385c  gcc/testsuite/gcc.dg/vect/no-trapping-math-1.c
! 376e46096266be010946ce6184ace8dc  gcc/testsuite/gcc.dg/vect/no-trapping-math-2.c
! cea8e7a5c9f799d3bd5dfe8e37a702bb  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-111.c
! 56586c8f68f589a09124770825212e39  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-11.c
! 741b191260a228d5c02c3938f6cd1647  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-12.c
! 0d06c53878b77a7bf2911710fac2141d  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-13.c
! 0d06c53878b77a7bf2911710fac2141d  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-14.c
! 541bf7b69658ca9e44df18fa75d8095b  gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-15.c
! 66bc14f8d83f53f5970c560b73137793  gcc/testsuite/gcc.dg/vect/no-tree-dom-vect-bug.c
! 0d795e779a122f00eafc1498e7f78be6  gcc/testsuite/gcc.dg/vect/no-tree-fre-pr50039.c
! d808bff65671fbe5dfbeca4b2b57d532  gcc/testsuite/gcc.dg/vect/no-tree-pre-pr45241.c
! 62f3ebb6c85de393441286b8cda1439f  gcc/testsuite/gcc.dg/vect/no-tree-pre-slp-29.c
  b52369b6d8f04b0c881bc45f36229c29  gcc/testsuite/gcc.dg/vect/no-vfa-pr29145.c
  34ca5a23c391d8e94a50e08413e1c1a3  gcc/testsuite/gcc.dg/vect/no-vfa-vect-101.c
  33eaf9b1a8730ca065ae2e7a6bc38cbb  gcc/testsuite/gcc.dg/vect/no-vfa-vect-102.c
*************** e3e508292ca1590ab77169664af862ce  gcc/te
*** 66687,66693 ****
  d866824beb16c364d08cb67b007de602  gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-2.c
  72076a525ae063dab9eb52662fd1fa9f  gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-3.c
  d062d4d3b84fbec28d4d1580ea69bb21  gcc/testsuite/gcc.dg/vect/no-vfa-vect-dv-2.c
! ba4c65d93bca5f5bbd763c4580e41f1a  gcc/testsuite/gcc.dg/vect/nodump-extractlast-1.c
  d122ac18b4a3ae4813e46562ff41d564  gcc/testsuite/gcc.dg/vect/nodump-forwprop-22.c
  ac90ad8f4383592387ff86cb8dbd78ce  gcc/testsuite/gcc.dg/vect/nodump-pr23073.c
  8bb8b8c5a5dd310d79c2ef7142ad2432  gcc/testsuite/gcc.dg/vect/nodump-vect-opt-info-1.c
--- 66762,66769 ----
  d866824beb16c364d08cb67b007de602  gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-2.c
  72076a525ae063dab9eb52662fd1fa9f  gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-3.c
  d062d4d3b84fbec28d4d1580ea69bb21  gcc/testsuite/gcc.dg/vect/no-vfa-vect-dv-2.c
! fdb8e6f129b8c4a7ba126ac6826dec36  gcc/testsuite/gcc.dg/vect/nodump-extractlast-1.c
! 0a6905258629272942ddabf2d0a884f7  gcc/testsuite/gcc.dg/vect/nodump-extractlast-2.c
  d122ac18b4a3ae4813e46562ff41d564  gcc/testsuite/gcc.dg/vect/nodump-forwprop-22.c
  ac90ad8f4383592387ff86cb8dbd78ce  gcc/testsuite/gcc.dg/vect/nodump-pr23073.c
  8bb8b8c5a5dd310d79c2ef7142ad2432  gcc/testsuite/gcc.dg/vect/nodump-vect-opt-info-1.c
*************** ecf30a3d5633aea4fdce036a11b8e64f  gcc/te
*** 67286,67293 ****
  000173f450d34bba06b07317e128469c  gcc/testsuite/gcc.dg/vect/pr99412.c
  24dbffd92c63e8683ef23b5143e0d607  gcc/testsuite/gcc.dg/vect/pr99540.c
  87bfdffda71b264daea1b1742cc20c24  gcc/testsuite/gcc.dg/vect/pr99856.c
! 9cd318f612b8d0495c561f5291f6ad13  gcc/testsuite/gcc.dg/vect/section-anchors-pr27770.c
! 9cdba68e4ea92813441d88e7dd129580  gcc/testsuite/gcc.dg/vect/section-anchors-vect-69.c
  500849b2c5bbe591a6f628290b4c27f8  gcc/testsuite/gcc.dg/vect/slp-1.c
  a30ffc73f52e57b75e3c5f7d010895c9  gcc/testsuite/gcc.dg/vect/slp-10.c
  db6cec1737270a80437be4570eff0caf  gcc/testsuite/gcc.dg/vect/slp-11a.c
--- 67362,67369 ----
  000173f450d34bba06b07317e128469c  gcc/testsuite/gcc.dg/vect/pr99412.c
  24dbffd92c63e8683ef23b5143e0d607  gcc/testsuite/gcc.dg/vect/pr99540.c
  87bfdffda71b264daea1b1742cc20c24  gcc/testsuite/gcc.dg/vect/pr99856.c
! 3ffa8fcf241af92366643b1bcc32e7b5  gcc/testsuite/gcc.dg/vect/section-anchors-pr27770.c
! 86d771634d2b7fa7eea3ba51fe345727  gcc/testsuite/gcc.dg/vect/section-anchors-vect-69.c
  500849b2c5bbe591a6f628290b4c27f8  gcc/testsuite/gcc.dg/vect/slp-1.c
  a30ffc73f52e57b75e3c5f7d010895c9  gcc/testsuite/gcc.dg/vect/slp-10.c
  db6cec1737270a80437be4570eff0caf  gcc/testsuite/gcc.dg/vect/slp-11a.c
*************** ba59522d2af9dbc0b642d30b265fdf9a  gcc/te
*** 67565,67574 ****
  42c1ba5434e11e120f6521a99a4038b4  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vsumr.c
  7702b6822f030833bc4a403f92677c1b  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vtv.c
  545119600337faa91e46af0c7bce64ba  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vtvtv.c
! 908fa625b55d7d283163e9dfb4e3cb97  gcc/testsuite/gcc.dg/vect/unswitch-loops-pr26969.c
! 6520c3dd9e657028a89c31328634d22a  gcc/testsuite/gcc.dg/vect/vec-scal-opt.c
! 9b5d0a9d2e1a81f9454f0082b9f240b7  gcc/testsuite/gcc.dg/vect/vec-scal-opt1.c
! e7af2caa929bde4629f98c1edd91b168  gcc/testsuite/gcc.dg/vect/vec-scal-opt2.c
  03fe06df10b299e2d376f21ab86f344f  gcc/testsuite/gcc.dg/vect/vect-1-big-array.c
  913dbf0c258c7c344cd97cc8aea9deeb  gcc/testsuite/gcc.dg/vect/vect-1.c
  05b07deb7bdb2c5192e4d8862461bc08  gcc/testsuite/gcc.dg/vect/vect-10-big-array.c
--- 67641,67650 ----
  42c1ba5434e11e120f6521a99a4038b4  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vsumr.c
  7702b6822f030833bc4a403f92677c1b  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vtv.c
  545119600337faa91e46af0c7bce64ba  gcc/testsuite/gcc.dg/vect/tsvc/vect-tsvc-vtvtv.c
! e9bb761ce41dc561789ce93cdc860323  gcc/testsuite/gcc.dg/vect/unswitch-loops-pr26969.c
! 6520c3dd9e657028a89c31328634d22a  gcc/testsuite/gcc.dg/vect/veclower/vec-scal-opt.c
! 9b5d0a9d2e1a81f9454f0082b9f240b7  gcc/testsuite/gcc.dg/vect/veclower/vec-scal-opt1.c
! e7af2caa929bde4629f98c1edd91b168  gcc/testsuite/gcc.dg/vect/veclower/vec-scal-opt2.c
  03fe06df10b299e2d376f21ab86f344f  gcc/testsuite/gcc.dg/vect/vect-1-big-array.c
  913dbf0c258c7c344cd97cc8aea9deeb  gcc/testsuite/gcc.dg/vect/vect-1.c
  05b07deb7bdb2c5192e4d8862461bc08  gcc/testsuite/gcc.dg/vect/vect-10-big-array.c
*************** fca55cf03db9d8a5e743486b3427a96a  gcc/te
*** 67923,67928 ****
--- 67999,68005 ----
  8cbd75311a4ecc168ec09085f538c7d0  gcc/testsuite/gcc.dg/vect/vect-early-break_140-pr122868_3.c
  25d4d94bafb1405becf55cc15f94275e  gcc/testsuite/gcc.dg/vect/vect-early-break_140-pr122868_4.c
  e3f3a36d35d6f9ef525a93d5cb0eb94b  gcc/testsuite/gcc.dg/vect/vect-early-break_141-pr123089.c
+ 8f74fa2d62f970a3a928d0976fced17c  gcc/testsuite/gcc.dg/vect/vect-early-break_142-pr124034.c
  e90473e2ecf7c08db9278bdca5060773  gcc/testsuite/gcc.dg/vect/vect-early-break_15.c
  2232d395ceff11af9b28f269e86162c9  gcc/testsuite/gcc.dg/vect/vect-early-break_16.c
  74848a5e9be64a5356628885f52c286b  gcc/testsuite/gcc.dg/vect/vect-early-break_17.c
*************** c38511a26575a66a65ddd31d3bc229da  gcc/te
*** 68224,68230 ****
  e8a9b3f3f510ee57f71acab27a6b2cb0  gcc/testsuite/gcc.dg/vect/vect-peel-4-src.c
  39723945c19c26c57adf66d889eabb98  gcc/testsuite/gcc.dg/vect/vect-peel-4.c
  a0e208729117f798ee5200a51a9c258b  gcc/testsuite/gcc.dg/vect/vect-pr111779.c
! 8689fbd68c008546f301818654595aab  gcc/testsuite/gcc.dg/vect/vect-pr114375.c
  8006cd394692bd071c0417ad10367515  gcc/testsuite/gcc.dg/vect/vect-pr120927-2.c
  dca085f893f46ecb56c7cecb15a42090  gcc/testsuite/gcc.dg/vect/vect-pr120927.c
  34f7ddeeced3df59f00aad249918cde2  gcc/testsuite/gcc.dg/vect/vect-pr122301.c
--- 68301,68307 ----
  e8a9b3f3f510ee57f71acab27a6b2cb0  gcc/testsuite/gcc.dg/vect/vect-peel-4-src.c
  39723945c19c26c57adf66d889eabb98  gcc/testsuite/gcc.dg/vect/vect-peel-4.c
  a0e208729117f798ee5200a51a9c258b  gcc/testsuite/gcc.dg/vect/vect-pr111779.c
! 1c42d671be1b7f9328d9e98de98078e3  gcc/testsuite/gcc.dg/vect/vect-pr114375.c
  8006cd394692bd071c0417ad10367515  gcc/testsuite/gcc.dg/vect/vect-pr120927-2.c
  dca085f893f46ecb56c7cecb15a42090  gcc/testsuite/gcc.dg/vect/vect-pr120927.c
  34f7ddeeced3df59f00aad249918cde2  gcc/testsuite/gcc.dg/vect/vect-pr122301.c
*************** caec8b8c2f8388721c36040b6b6122ae  gcc/te
*** 68531,68537 ****
  57a16ece134220af9fcef6f72f220c2d  gcc/testsuite/gcc.dg/vect/vect-widen-shift-s8.c
  5b67f59c833986f08bd4b40c60f69162  gcc/testsuite/gcc.dg/vect/vect-widen-shift-u16.c
  aa708d3594fce40d90cd549c09eec048  gcc/testsuite/gcc.dg/vect/vect-widen-shift-u8.c
! 4b8c99002b702cee2f8f2ced13bf6148  gcc/testsuite/gcc.dg/vect/vect.exp
  9c10d2393bb90978e04161ff14df3a4a  gcc/testsuite/gcc.dg/vect/wrapv-vect-7.c
  4749e5664952bdad254e75583138cd9f  gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-2char.c
  32baa51c29f3f1f6ab2dc0f47bb4b324  gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-2short.c
--- 68608,68614 ----
  57a16ece134220af9fcef6f72f220c2d  gcc/testsuite/gcc.dg/vect/vect-widen-shift-s8.c
  5b67f59c833986f08bd4b40c60f69162  gcc/testsuite/gcc.dg/vect/vect-widen-shift-u16.c
  aa708d3594fce40d90cd549c09eec048  gcc/testsuite/gcc.dg/vect/vect-widen-shift-u8.c
! b38a14c325875326a09d4fec31426f3a  gcc/testsuite/gcc.dg/vect/vect.exp
  9c10d2393bb90978e04161ff14df3a4a  gcc/testsuite/gcc.dg/vect/wrapv-vect-7.c
  4749e5664952bdad254e75583138cd9f  gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-2char.c
  32baa51c29f3f1f6ab2dc0f47bb4b324  gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-2short.c
*************** b6a18fb1ecc9f56b3894553675bc0455  gcc/te
*** 70968,70973 ****
--- 71045,71053 ----
  4c29e6ea2fa29c84d350a343b163fe54  gcc/testsuite/gcc.target/aarch64/return_address_sign_builtin.c
  70b0a417548eb5574b49ff1b37acde43  gcc/testsuite/gcc.target/aarch64/rev16_1.c
  2f04362c27a9d92b5c3630595d13128b  gcc/testsuite/gcc.target/aarch64/rev16_2.c
+ 9d675c0fb01039b325cce7ecf1d17cbb  gcc/testsuite/gcc.target/aarch64/rev_32_1.c
+ 120ae9c510685fac18aa061aeb3b7517  gcc/testsuite/gcc.target/aarch64/rev_32_2.c
+ 590e0c1306f1f77443c03492cf102a50  gcc/testsuite/gcc.target/aarch64/rev_32_3.c
  a6b0a3d46a5a5170f93dc87f2d7171b5  gcc/testsuite/gcc.target/aarch64/ror.c
  de3baab34a4f59a99dc737c4063eb91d  gcc/testsuite/gcc.target/aarch64/ror_2.c
  6a7b4c2858dc4092dd8e5eead61374c3  gcc/testsuite/gcc.target/aarch64/ror_3.c
*************** fdf31615d4c23a6cda30ff2ff1493fcd  gcc/te
*** 71727,71732 ****
--- 71807,71813 ----
  5a4e5012170fd731aad53e8a5e8ca2b0  gcc/testsuite/gcc.target/aarch64/sme/sibcall_7_ts.c
  c24e7b6e6657e7a0bc6f6c3324ca0e55  gcc/testsuite/gcc.target/aarch64/sme/sibcall_8.c
  b7e9ea35db65f1f9ab0129b6787b4aa1  gcc/testsuite/gcc.target/aarch64/sme/sibcall_9.c
+ 474e35480cd904009962a6b25b99f50d  gcc/testsuite/gcc.target/aarch64/sme/sme-shrinkwrap.c
  c7c73b255f9579fb4fca5284ec152e31  gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_1.c
  9ce9b56fcc81eccd70d155b7ba6b7628  gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_2.c
  fcf99b5d14963d6dc0b0c9a728fc8ac4  gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_3.c
*************** e738ce01523c2f93ce93628076549b0e  gcc/te
*** 82909,82914 ****
--- 82990,82996 ----
  2f26e4242ea5fe9f6729e07a5649f0bb  gcc/testsuite/gcc.target/bpf/nop-1.c
  d1aee374109953d9e684f7be2e84a1d0  gcc/testsuite/gcc.target/bpf/pr122141-1.c
  e56d1cb25bc538d9307fec9fd2bcbc4c  gcc/testsuite/gcc.target/bpf/pr122141-2.c
+ c8aba7b175bf78148729a0f6a418ad98  gcc/testsuite/gcc.target/bpf/pr123556.c
  a4661a9ead246d0e0f4bf3d6f6049805  gcc/testsuite/gcc.target/bpf/pseudoc-atomic-memaddr-op.c
  9ae63023d712a4740d04e5f6abd0bccd  gcc/testsuite/gcc.target/bpf/regs-availability-1.c
  dc210944850146bb727cbe535853bf0f  gcc/testsuite/gcc.target/bpf/sdiv-1.c
*************** fd0c95fcad577a49c3553f21604c3b61  gcc/te
*** 89790,89795 ****
--- 89872,89878 ----
  22075af1d8889b20a319ee5c1ddae745  gcc/testsuite/gcc.target/i386/pr123583.c
  9949ec20bd5dbd25bf3dad6832f9205f  gcc/testsuite/gcc.target/i386/pr123585.c
  3b4a91b334d1b19a6101a3fc7575990f  gcc/testsuite/gcc.target/i386/pr123958.c
+ fbfd31ba28ddc5c31ac2fd9d714443bb  gcc/testsuite/gcc.target/i386/pr124056.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
*************** f145e94613ff35758e6b8b1e46f85968  gcc/te
*** 92809,92815 ****
  2c0dda4e1cb28f684b52e9f027f26ba9  gcc/testsuite/gcc.target/i386/vect_unroll-4.c
  9197d64fe201e07181f36859e3c75198  gcc/testsuite/gcc.target/i386/vect_unroll-5.c
  18eba7f0b960843d668e4106fa8febe0  gcc/testsuite/gcc.target/i386/vect_unroll-6.c
! 149e13bbcc2a5494920185cb4c3283ba  gcc/testsuite/gcc.target/i386/vectorize-aocl1.c
  8392cd251159c612f1d39b348071c359  gcc/testsuite/gcc.target/i386/vectorize1.c
  a681ca062ac072c3cb40b105a2ea0266  gcc/testsuite/gcc.target/i386/vectorize10.c
  2b02856d49c831f0cc8cd5bce35766d7  gcc/testsuite/gcc.target/i386/vectorize2.c
--- 92892,92898 ----
  2c0dda4e1cb28f684b52e9f027f26ba9  gcc/testsuite/gcc.target/i386/vect_unroll-4.c
  9197d64fe201e07181f36859e3c75198  gcc/testsuite/gcc.target/i386/vect_unroll-5.c
  18eba7f0b960843d668e4106fa8febe0  gcc/testsuite/gcc.target/i386/vect_unroll-6.c
! b1175b617267193c68cf104b0264d75d  gcc/testsuite/gcc.target/i386/vectorize-aocl1.c
  8392cd251159c612f1d39b348071c359  gcc/testsuite/gcc.target/i386/vectorize1.c
  a681ca062ac072c3cb40b105a2ea0266  gcc/testsuite/gcc.target/i386/vectorize10.c
  2b02856d49c831f0cc8cd5bce35766d7  gcc/testsuite/gcc.target/i386/vectorize2.c
*************** ba319008fc3d471c58bb29fc9d29ccbc  gcc/te
*** 98822,98827 ****
--- 98905,98911 ----
  6eca389fe57f7e888581742c60e40dd4  gcc/testsuite/gcc.target/riscv/pr123318.c
  c5510efb0e85b94c43e177d92c8bfa96  gcc/testsuite/gcc.target/riscv/pr123322.c
  36f2729f33d66359ae39ca96a9075786  gcc/testsuite/gcc.target/riscv/pr123380.c
+ ac11119f9210fdbe0a0f2e3211742dd1  gcc/testsuite/gcc.target/riscv/pr123911.c
  37a08389ba95284cc27832767dfc1430  gcc/testsuite/gcc.target/riscv/pr43644.c
  8eba488c3d26a288644785954ea86af2  gcc/testsuite/gcc.target/riscv/pr52345.c
  db206807e7e87fc388e039471812c6e0  gcc/testsuite/gcc.target/riscv/pr58727.c
*************** c408b1a7f84e4b815e85476963221ae9  gcc/te
*** 102578,102583 ****
--- 102662,102668 ----
  2865ee85ce614d77ff279bf2235dfe51  gcc/testsuite/gcc.target/riscv/rvv/pr120297.c
  999cc44bdd25aaa38b1dfd62ba9b84ab  gcc/testsuite/gcc.target/riscv/rvv/pr121073.c
  86731b52476b518fce91bf0158bbd223  gcc/testsuite/gcc.target/riscv/rvv/pr122474.c
+ e1f5047958163bd4a7c56181c616e105  gcc/testsuite/gcc.target/riscv/rvv/pr124038.c
  6fea082cc5d5719bf16939b0f1ec6357  gcc/testsuite/gcc.target/riscv/rvv/rvv.exp
  5478c0c8327ff5286acd21adf7801a3b  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_128bit_vector.c
  7474e3b118ab01afd89adaf5d29c7e26  gcc/testsuite/gcc.target/riscv/rvv/vls-cc/abi-vlen-128-xlen-32/test_256bit_vector.c
*************** e282b73f72ab6c2a629448cad8de65a7  gcc/te
*** 104956,104961 ****
--- 105041,105047 ----
  ddd06bb7aa032539e1d7f788e2ddb31f  gcc/testsuite/gcc.target/s390/pr119873-3.c
  8e924805f1a0bbe1a1a2871be67a0970  gcc/testsuite/gcc.target/s390/pr119873-4.c
  c5b09d072962be55a3b282895afe41d6  gcc/testsuite/gcc.target/s390/pr119873-5.c
+ d49455031d1c0b8c6740f90cf831720a  gcc/testsuite/gcc.target/s390/pr124079.c
  765307a040de72f2f4376b7068d68018  gcc/testsuite/gcc.target/s390/pr20927.c
  85f31fb9b4b15529205376d3f6fa385c  gcc/testsuite/gcc.target/s390/pr24624.c
  7adacbd67601dc0845e556e5632cd718  gcc/testsuite/gcc.target/s390/pr27661.c
*************** a565e2f8dd12c39ee081427f9a742ed8  gcc/te
*** 105222,105248 ****
  7172609cf3d7574fd601ded9003eb60a  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-2.h
  cacde4c297655c59e5767214d140056f  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-3.h
  abd57b1682e8716a3218094c4bf9cec3  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-7.h
! 10f763f49843594082ed6e111541f3e2  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-1.c
! 19c597446cfa4da344ac547d6a3bdf70  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-2.c
! d33abdd465f4209f0414de05c349653b  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-3.c
! 9d2e1ee2a40fbfb5a57d6cbd45168c07  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-7.c
! e770b34dbf363215a6051b789b90e974  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-1.c
! 53dddd9b047a3df2392779a3764037db  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-2.c
! 153d8a228586550504c014bd06484f1a  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-3.c
! ada2b9b2b8df0cfdabaf20b41b0a65f0  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-7.c
! bc45cc7c4b51be2f491414209559c220  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-1.c
! c4bfbd8958774aa5955cf3a6c8f5fb77  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-2.c
! c35cbcfe48dc273d14940b790bb3ff09  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-3.c
! 8b0615e73a71f47e5f535d17ded839f3  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-7.c
! be44d6c3c4d8055ce8fd43e62a287c12  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-1.c
! 6b7b8c64675220c39817413d5d5d322f  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-2.c
! 18f4664c4d1a14140be566917ccb73fd  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-3.c
! e234d0268236221dbf51755b0be4aca1  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-7.c
  6987c4cf29e1ce5a359faf0d1b6d2409  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-run-1.h
  1be087c55f77a74d9d4f749b223320a1  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-run-2.h
  0611839c929c24b2af8573f8569dfd65  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-run-3.h
  bef5e60d91c914bf7de9023a9ab9f6b9  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-run-7.h
! 722b2bf1dc8f0eaf2fe36ba4b1c93e29  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-small.c
  ca2326bfc2b9007e3b63b0bea8890a00  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length.h
  e5a0d225e223a496d21dbc38f267e4f8  gcc/testsuite/gcc.target/s390/vector/pattern-avg-1.c
  cd2bb8cc2344798548447dc2e2dee5de  gcc/testsuite/gcc.target/s390/vector/pattern-avg-2.c
--- 105308,105334 ----
  7172609cf3d7574fd601ded9003eb60a  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-2.h
  cacde4c297655c59e5767214d140056f  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-3.h
  abd57b1682e8716a3218094c4bf9cec3  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-7.h
! 8b282e87ca14aae90bcda990916beb00  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-1.c
! baf04e1af6843951ae69ff1b514ad398  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-2.c
! 6a1485987e377995503aca3e8ae3f2fc  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-3.c
! e753ac12861543e55f694fae86d88671  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-7.c
! 271217bbc8f3733377a41afd3ff6afe9  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-1.c
! b749d827b2b517970ae38e42d558d315  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-2.c
! 045b4d3041a7ed17852ff9e9f8ede9d3  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-3.c
! 32199f6f3815197f122e844329fad166  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-7.c
! aa231958c30f2d739f813379ede6fb23  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-1.c
! 2f252d338c36d79ad9da15c968c766e4  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-2.c
! 7a3ae2e0dcf513c5c41f3fef5fd9a5e3  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-3.c
! 07b63350207f7b5f86643e358fe54efc  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-7.c
! 57c65ac5c53f99a2e200ca8a2db89bd6  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-1.c
! deb6a1b644da1995c7d038adfd670091  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-2.c
! 998169029555d9ad2a2155e073d9b415  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-3.c
! bffd2a31f045a49ed041fb06c40d1cd5  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-7.c
  6987c4cf29e1ce5a359faf0d1b6d2409  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-run-1.h
  1be087c55f77a74d9d4f749b223320a1  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-run-2.h
  0611839c929c24b2af8573f8569dfd65  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-run-3.h
  bef5e60d91c914bf7de9023a9ab9f6b9  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-run-7.h
! 071400cad4fbc56048b43c44323629fe  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-small.c
  ca2326bfc2b9007e3b63b0bea8890a00  gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length.h
  e5a0d225e223a496d21dbc38f267e4f8  gcc/testsuite/gcc.target/s390/vector/pattern-avg-1.c
  cd2bb8cc2344798548447dc2e2dee5de  gcc/testsuite/gcc.target/s390/vector/pattern-avg-2.c
*************** a173a721e029bdc0b90a673b0904b8d6  gcc/te
*** 113131,113136 ****
--- 113217,113223 ----
  3e6601d715c346714d5942c158ecc96f  gcc/testsuite/gfortran.dg/convert_1.f90
  7324ef3f1b4d2fab3c0499953f90a804  gcc/testsuite/gfortran.dg/convert_2.f90
  b73e43096f62363b41d344c3d78cf850  gcc/testsuite/gfortran.dg/convert_implied_open.f90
+ 1e5ab9679df93746b1c9171450599736  gcc/testsuite/gfortran.dg/coshape_1.f90
  cb123993b8b746b2fefcde93c5977299  gcc/testsuite/gfortran.dg/count_init_expr.f03
  f8a4ca21ccf302214564ec0d59e8fd51  gcc/testsuite/gfortran.dg/count_mask_1.f90
  1ff91b4ba7ccca5457a6d7232889d928  gcc/testsuite/gfortran.dg/coverage.f90
*************** cccfd4eb98b07f30fc6a43462ae1078b  gcc/te
*** 114027,114033 ****
  4f05943427a26d27e44b21078aec46fe  gcc/testsuite/gfortran.dg/finalize_8.f03
  2127f420195e5f6cdb58fe18800b4c33  gcc/testsuite/gfortran.dg/finalize_9.f90
  bae7dedae44fd034e5baf82ba38f2cc4  gcc/testsuite/gfortran.dg/finalizer_recursive_alloc_1.f90
! a8d9295c3cf377f5ae5d6a5432a4839b  gcc/testsuite/gfortran.dg/finalizer_recursive_alloc_2.f90
  ce393849d1dddc7e370952edc00467f5  gcc/testsuite/gfortran.dg/finalizer_self_assign.f90
  bf61238b3b7b6fc0fa0299fb54103da5  gcc/testsuite/gfortran.dg/findloc_1.f90
  a0e3df827bf32fe2c2f8909306f1c0d5  gcc/testsuite/gfortran.dg/findloc_10.f90
--- 114114,114120 ----
  4f05943427a26d27e44b21078aec46fe  gcc/testsuite/gfortran.dg/finalize_8.f03
  2127f420195e5f6cdb58fe18800b4c33  gcc/testsuite/gfortran.dg/finalize_9.f90
  bae7dedae44fd034e5baf82ba38f2cc4  gcc/testsuite/gfortran.dg/finalizer_recursive_alloc_1.f90
! ac37f07a8afd3aed83a0effb3df1e910  gcc/testsuite/gfortran.dg/finalizer_recursive_alloc_2.f90
  ce393849d1dddc7e370952edc00467f5  gcc/testsuite/gfortran.dg/finalizer_self_assign.f90
  bf61238b3b7b6fc0fa0299fb54103da5  gcc/testsuite/gfortran.dg/findloc_1.f90
  a0e3df827bf32fe2c2f8909306f1c0d5  gcc/testsuite/gfortran.dg/findloc_10.f90
*************** edeec1fe2488c7117f56e10734af03dc  gcc/te
*** 115064,115069 ****
--- 115151,115160 ----
  75a523b6ea1c03878cc3bdc6a6346971  gcc/testsuite/gfortran.dg/gomp/pr107214-8.f90
  3beded12a494129bebcc732d85089896  gcc/testsuite/gfortran.dg/gomp/pr107214.f90
  999f28c36a4332b9862398973c6f4c18  gcc/testsuite/gfortran.dg/gomp/pr107421.f90
+ 0c6f80bb0ae8c8d07f18df0d3258975b  gcc/testsuite/gfortran.dg/gomp/pr113436-1.f90
+ d0c7e1a3df66c15367b6e07098cf779d  gcc/testsuite/gfortran.dg/gomp/pr113436-2.f90
+ 36c3126b45f005a82111a661b477015f  gcc/testsuite/gfortran.dg/gomp/pr113436-3.f90
+ d8f2aa7090a6dfeba5744e9103fe3bb4  gcc/testsuite/gfortran.dg/gomp/pr113436-4.f90
  616305573acc701769497c1eee637edc  gcc/testsuite/gfortran.dg/gomp/pr114825.f90
  14e2080dbf20d40b1e1572419572cae5  gcc/testsuite/gfortran.dg/gomp/pr115103.f90
  7e57554851ec1cc8a84c063d08c5e85b  gcc/testsuite/gfortran.dg/gomp/pr118790.f90
*************** c61e4e9f6a32de1ca3041987ea6be2b8  gcc/te
*** 116893,116899 ****
  5b6fb0609a7f95d075537b1822d331e5  gcc/testsuite/gfortran.dg/pdt_12.f03
  16ce3ce5e71f8bfbe9d40060544e2fa5  gcc/testsuite/gfortran.dg/pdt_13.f03
  c3e0cca0e4efe9383bafc33823f99ab9  gcc/testsuite/gfortran.dg/pdt_14.f03
! 9730185be148f14d93bd6417d80b1fbc  gcc/testsuite/gfortran.dg/pdt_15.f03
  af2c862644ef563e9b11a9acd3d9f20f  gcc/testsuite/gfortran.dg/pdt_16.f03
  a4a19dee7375d5813e90c984aec32f53  gcc/testsuite/gfortran.dg/pdt_17.f03
  be693b3847d0256fa77c5e6d96396c97  gcc/testsuite/gfortran.dg/pdt_18.f03
--- 116984,116990 ----
  5b6fb0609a7f95d075537b1822d331e5  gcc/testsuite/gfortran.dg/pdt_12.f03
  16ce3ce5e71f8bfbe9d40060544e2fa5  gcc/testsuite/gfortran.dg/pdt_13.f03
  c3e0cca0e4efe9383bafc33823f99ab9  gcc/testsuite/gfortran.dg/pdt_14.f03
! 8ba202bf43566eb130123dcf3081c8f0  gcc/testsuite/gfortran.dg/pdt_15.f03
  af2c862644ef563e9b11a9acd3d9f20f  gcc/testsuite/gfortran.dg/pdt_16.f03
  a4a19dee7375d5813e90c984aec32f53  gcc/testsuite/gfortran.dg/pdt_17.f03
  be693b3847d0256fa77c5e6d96396c97  gcc/testsuite/gfortran.dg/pdt_18.f03
*************** a5f0e5f6d1a0cf4437ef6c2b7d002852  gcc/te
*** 116955,116961 ****
  3444ff42a2ca850ccc8b0a46fec4a950  gcc/testsuite/gfortran.dg/pdt_69.f03
  d2c9dae0c6e2385c5712aba8e12a70ba  gcc/testsuite/gfortran.dg/pdt_7.f03
  eadd9a59a070a2b3455cb8918d9cbed1  gcc/testsuite/gfortran.dg/pdt_70.f03
! 6c8faa617a469eeaf61ce8dd5e138a43  gcc/testsuite/gfortran.dg/pdt_71.f03
  e60c95d1e5b5c7e5f4c5c95f09cb14e5  gcc/testsuite/gfortran.dg/pdt_72.f03
  c6f893cb449a80625f83167f1ff5ba51  gcc/testsuite/gfortran.dg/pdt_73.f03
  8d4993c59b25b275c9be746b415c88a7  gcc/testsuite/gfortran.dg/pdt_74.f03
--- 117046,117052 ----
  3444ff42a2ca850ccc8b0a46fec4a950  gcc/testsuite/gfortran.dg/pdt_69.f03
  d2c9dae0c6e2385c5712aba8e12a70ba  gcc/testsuite/gfortran.dg/pdt_7.f03
  eadd9a59a070a2b3455cb8918d9cbed1  gcc/testsuite/gfortran.dg/pdt_70.f03
! 70790cc3e59c68bac699d7f64450affc  gcc/testsuite/gfortran.dg/pdt_71.f03
  e60c95d1e5b5c7e5f4c5c95f09cb14e5  gcc/testsuite/gfortran.dg/pdt_72.f03
  c6f893cb449a80625f83167f1ff5ba51  gcc/testsuite/gfortran.dg/pdt_73.f03
  8d4993c59b25b275c9be746b415c88a7  gcc/testsuite/gfortran.dg/pdt_74.f03
*************** c6f893cb449a80625f83167f1ff5ba51  gcc/te
*** 116963,116974 ****
  872e5a262b625630f6c8518c84192fe0  gcc/testsuite/gfortran.dg/pdt_76.f03
  e7b56697ac64f36257ec59b471922aaa  gcc/testsuite/gfortran.dg/pdt_77.f03
  3d080e764a86b6c6b89cec537323af50  gcc/testsuite/gfortran.dg/pdt_78.f03
! 4a0359f8a25f066b79811b00f5556602  gcc/testsuite/gfortran.dg/pdt_79.f03
  e21f38a2db39f95405441b61c12cf1e6  gcc/testsuite/gfortran.dg/pdt_8.f03
  50b90d7df8b77f8225042795ce534280  gcc/testsuite/gfortran.dg/pdt_80.f03
  08059a1fb646b56d0e4c4e079cca8ad9  gcc/testsuite/gfortran.dg/pdt_81.f03
  f6695b4fb594606f02af64d62e1c0b75  gcc/testsuite/gfortran.dg/pdt_82.f03
  563711530085cf404f4c3314b360a937  gcc/testsuite/gfortran.dg/pdt_83.f03
  c621629f10feffbfa9fef1441a610e53  gcc/testsuite/gfortran.dg/pdt_9.f03
  ce217e87870d47796b72f99a0b0f46b7  gcc/testsuite/gfortran.dg/pdt_generic_1.f90
  4555f630cb01a40d0eaf421fd7ad9e77  gcc/testsuite/gfortran.dg/pointer_1.f90
--- 117054,117066 ----
  872e5a262b625630f6c8518c84192fe0  gcc/testsuite/gfortran.dg/pdt_76.f03
  e7b56697ac64f36257ec59b471922aaa  gcc/testsuite/gfortran.dg/pdt_77.f03
  3d080e764a86b6c6b89cec537323af50  gcc/testsuite/gfortran.dg/pdt_78.f03
! 4747be1a3cc11eccca3b4eae7a5beaef  gcc/testsuite/gfortran.dg/pdt_79.f03
  e21f38a2db39f95405441b61c12cf1e6  gcc/testsuite/gfortran.dg/pdt_8.f03
  50b90d7df8b77f8225042795ce534280  gcc/testsuite/gfortran.dg/pdt_80.f03
  08059a1fb646b56d0e4c4e079cca8ad9  gcc/testsuite/gfortran.dg/pdt_81.f03
  f6695b4fb594606f02af64d62e1c0b75  gcc/testsuite/gfortran.dg/pdt_82.f03
  563711530085cf404f4c3314b360a937  gcc/testsuite/gfortran.dg/pdt_83.f03
+ b4209f9f96c7dd6b54f255bf23c1dc15  gcc/testsuite/gfortran.dg/pdt_84.f03
  c621629f10feffbfa9fef1441a610e53  gcc/testsuite/gfortran.dg/pdt_9.f03
  ce217e87870d47796b72f99a0b0f46b7  gcc/testsuite/gfortran.dg/pdt_generic_1.f90
  4555f630cb01a40d0eaf421fd7ad9e77  gcc/testsuite/gfortran.dg/pointer_1.f90
*************** fa053690c35a7cf0e14a876e94c10140  gcc/te
*** 117295,117300 ****
--- 117387,117393 ----
  ca5d5af755aea457c1fd083af79f190d  gcc/testsuite/gfortran.dg/pr123375.f90
  fb1e8e16263374f736a90ec7790bb21b  gcc/testsuite/gfortran.dg/pr123772.f03
  f0d9a36dd6cfab9c2393885c55a61dd1  gcc/testsuite/gfortran.dg/pr123868.f90
+ f5fb3cbcb5e6e13e6a56fcf9422a2863  gcc/testsuite/gfortran.dg/pr123943.f90
  348d095bf62be63000e464d805a812fb  gcc/testsuite/gfortran.dg/pr123952.f90
  984f8307f36d56a0b48b5acce2dd5eb5  gcc/testsuite/gfortran.dg/pr12884.f
  64075248b9d1bffd6f380bb4e2a6eae0  gcc/testsuite/gfortran.dg/pr15129.f90
*************** d845359337435f578035928aae3a54a9  gcc/te
*** 122378,122383 ****
--- 122471,122477 ----
  9ce9e39be8e332ea909ef77b7a0955c0  gcc/testsuite/gnat.dg/allocator2.adb
  337bdf33957aa3def74f1c62d778d5de  gcc/testsuite/gnat.dg/allocator2.ads
  cb13bebe3bf57c562e8c516aa539cae9  gcc/testsuite/gnat.dg/allocator3.adb
+ e139f6c5620dbb672262cf6b6382edc7  gcc/testsuite/gnat.dg/allocator4.adb
  bbc4e723041a85252bdd22da4896f11f  gcc/testsuite/gnat.dg/allocator_maxalign1.adb
  e092999a834f75b4b2227b818a8fa1bd  gcc/testsuite/gnat.dg/allocator_maxalign2.adb
  f9d8770ca5c9726aa3c53cd819807ead  gcc/testsuite/gnat.dg/allocator_maxalign2.ads
*************** ce1ec39ed99de56ced45d8b9f86bc85a  gcc/te
*** 123985,123990 ****
--- 124079,124085 ----
  e6da11fd6483154a13820d7470de4efb  gcc/testsuite/gnat.dg/protected_self_ref1.adb
  bffe9a3ac9d57a27e4b093a45da1b8bf  gcc/testsuite/gnat.dg/protected_self_ref2.adb
  62202830fb6c22f702d33b1d441e5bdb  gcc/testsuite/gnat.dg/protected_subtype1.adb
+ 490f367919990d8653ae99b43c2f2f82  gcc/testsuite/gnat.dg/protected_type1.adb
  75bce0278f16cfe77a4b103d59d4add4  gcc/testsuite/gnat.dg/pure_function1.adb
  16af05a0ec944108ab97d67c7b40ffdf  gcc/testsuite/gnat.dg/pure_function1.ads
  e0718db21208bd252d027916a866bcae  gcc/testsuite/gnat.dg/pure_function2.adb
*************** f816d4862285932d8e7b70c2efc94426  gcc/te
*** 124192,124197 ****
--- 124287,124293 ----
  22d47e1639397ee371d9448cf072ccfb  gcc/testsuite/gnat.dg/specs/clause_on_volatile.ads
  8def2fc44b62c48b1c9f7f2f3906807c  gcc/testsuite/gnat.dg/specs/compile_time1.ads
  78a5f35d64fd87f033de3894f27944ec  gcc/testsuite/gnat.dg/specs/compile_time1_pkg.ads
+ 1b5bc7a958785888d92b2bc158d9b271  gcc/testsuite/gnat.dg/specs/component_size1.ads
  6ddb33b9bab31efa0f5ebea912ad04a7  gcc/testsuite/gnat.dg/specs/concat1.ads
  e4425aac5fb5227ddf52028562a63704  gcc/testsuite/gnat.dg/specs/concat1_pkg.ads
  de3a8d42e10071e7f2dab8b41ed160f1  gcc/testsuite/gnat.dg/specs/cond_expr1.ads
*************** b1eb2edcf4941bfb00c200eb000a0a7b  gcc/te
*** 127194,127200 ****
  98b890f6c455deafd6ca241993fc5d67  gcc/testsuite/lib/timeout-dg.exp
  0afb0c69501fa44908d13017be208db3  gcc/testsuite/lib/timeout.exp
  e675757b03beb04537aee4804ce2b33d  gcc/testsuite/lib/torture-options.exp
! cec8439f61f36a274d002e8fd1096fb4  gcc/testsuite/lib/tsan-dg.exp
  0f0401cc67f3eaa1342cc68a0fddea07  gcc/testsuite/lib/ubsan-dg.exp
  94777fc3b2eee746fb82ccbed0869ce8  gcc/testsuite/lib/valgrind.exp
  abf5053d8fe36a4d6aaee3b64de1525d  gcc/testsuite/lib/verify-sarif-file.py
--- 127290,127296 ----
  98b890f6c455deafd6ca241993fc5d67  gcc/testsuite/lib/timeout-dg.exp
  0afb0c69501fa44908d13017be208db3  gcc/testsuite/lib/timeout.exp
  e675757b03beb04537aee4804ce2b33d  gcc/testsuite/lib/torture-options.exp
! 1a749a8957b3590edfb69e2da5a8f986  gcc/testsuite/lib/tsan-dg.exp
  0f0401cc67f3eaa1342cc68a0fddea07  gcc/testsuite/lib/ubsan-dg.exp
  94777fc3b2eee746fb82ccbed0869ce8  gcc/testsuite/lib/valgrind.exp
  abf5053d8fe36a4d6aaee3b64de1525d  gcc/testsuite/lib/verify-sarif-file.py
*************** aeab5516d26c7cf2e149e25f6d1b22d4  gcc/tr
*** 129881,129887 ****
  645c34c74323c655a1d20f8f76e64b27  gcc/tree-cfgcleanup.h
  447f46e51936add5de4aaa77a96039ba  gcc/tree-chrec.cc
  1cf760e3e7aab6f94a5e56897486623d  gcc/tree-chrec.h
! 08408ed9136be16194101b57321b29bb  gcc/tree-complex.cc
  dea74d5dd62de97a94d9f3e749f5bd06  gcc/tree-core.h
  4a0e32c3f4db8d2b600df44d6f3bfb90  gcc/tree-data-ref.cc
  885e741c83d91ee864f9af2a1a079312  gcc/tree-data-ref.h
--- 129977,129983 ----
  645c34c74323c655a1d20f8f76e64b27  gcc/tree-cfgcleanup.h
  447f46e51936add5de4aaa77a96039ba  gcc/tree-chrec.cc
  1cf760e3e7aab6f94a5e56897486623d  gcc/tree-chrec.h
! a3fd0a3b7cf7687811c2d140c14f489d  gcc/tree-complex.cc
  dea74d5dd62de97a94d9f3e749f5bd06  gcc/tree-core.h
  4a0e32c3f4db8d2b600df44d6f3bfb90  gcc/tree-data-ref.cc
  885e741c83d91ee864f9af2a1a079312  gcc/tree-data-ref.h
*************** c021bc7a8aa59f2b8184de8bff6b1d14  gcc/tr
*** 129929,129935 ****
  82882fd59c37488a774ecb1dc5934265  gcc/tree-profile.cc
  a39e1901dac55b45c25e4542501e20ff  gcc/tree-scalar-evolution.cc
  0ac41331ad8cbe754ee005d5ef9aff94  gcc/tree-scalar-evolution.h
! 617f27cfa756460c7223a58f5d1e9c14  gcc/tree-sra.cc
  3c8e89a03a1e2e77a99e5b05bb2976ae  gcc/tree-sra.h
  39f64c2e1c6ae742ac610f096aa9e013  gcc/tree-ssa-address.cc
  2cc8f7ab186c793b91875224ed16edc6  gcc/tree-ssa-address.h
--- 130025,130031 ----
  82882fd59c37488a774ecb1dc5934265  gcc/tree-profile.cc
  a39e1901dac55b45c25e4542501e20ff  gcc/tree-scalar-evolution.cc
  0ac41331ad8cbe754ee005d5ef9aff94  gcc/tree-scalar-evolution.h
! 17c4c00ded2905c04437f79e44e63c75  gcc/tree-sra.cc
  3c8e89a03a1e2e77a99e5b05bb2976ae  gcc/tree-sra.h
  39f64c2e1c6ae742ac610f096aa9e013  gcc/tree-ssa-address.cc
  2cc8f7ab186c793b91875224ed16edc6  gcc/tree-ssa-address.h
*************** c1c4fe85c3abe80948e72eb9950ff189  gcc/tr
*** 129947,129954 ****
  ec31925fe8431d27258939fc79f1f02e  gcc/tree-ssa-dom.h
  2def3c3d20d186b56fd7b598ee0124be  gcc/tree-ssa-dse.cc
  1df01d660e0f98ade0ae7a3152aa33ed  gcc/tree-ssa-dse.h
! 7d680a8da62539dfc677afa027eb2377  gcc/tree-ssa-forwprop.cc
! 44658616283db8f7d8bb40eb2c38e605  gcc/tree-ssa-ifcombine.cc
  96b11e029c398aaecd1c642c41c88884  gcc/tree-ssa-live.cc
  7c36b95c9d109be3302936ceed49fb4f  gcc/tree-ssa-live.h
  dcaeaaad1469ccb53d09d0c3975284d7  gcc/tree-ssa-loop-ch.cc
--- 130043,130050 ----
  ec31925fe8431d27258939fc79f1f02e  gcc/tree-ssa-dom.h
  2def3c3d20d186b56fd7b598ee0124be  gcc/tree-ssa-dse.cc
  1df01d660e0f98ade0ae7a3152aa33ed  gcc/tree-ssa-dse.h
! 7a34c161544a79b74d845dd4e62d2e05  gcc/tree-ssa-forwprop.cc
! bb90d30f7c6176fd9edf8b10cc7803b6  gcc/tree-ssa-ifcombine.cc
  96b11e029c398aaecd1c642c41c88884  gcc/tree-ssa-live.cc
  7c36b95c9d109be3302936ceed49fb4f  gcc/tree-ssa-live.h
  dcaeaaad1469ccb53d09d0c3975284d7  gcc/tree-ssa-loop-ch.cc
*************** ad87c41606eb7cb23a85736982ce8b9f  gcc/tr
*** 129965,129971 ****
  7d41277dc2b070fc20de82de11dfe8bc  gcc/tree-ssa-loop-unswitch.cc
  faa18178392bba086edee765e464318c  gcc/tree-ssa-loop.cc
  c1590659dad2b41a69adb7654db65644  gcc/tree-ssa-loop.h
! ca4e0e1547f370c2e3e2caa8726dc4d5  gcc/tree-ssa-math-opts.cc
  fa83f982a805985b3a3da2ca5e10e43a  gcc/tree-ssa-math-opts.h
  9b5221bc2087b040736afeb799949b04  gcc/tree-ssa-operands.cc
  f83d0b12185538e6f679296bebfe3d2f  gcc/tree-ssa-operands.h
--- 130061,130067 ----
  7d41277dc2b070fc20de82de11dfe8bc  gcc/tree-ssa-loop-unswitch.cc
  faa18178392bba086edee765e464318c  gcc/tree-ssa-loop.cc
  c1590659dad2b41a69adb7654db65644  gcc/tree-ssa-loop.h
! 3ff6077b954e38433c267a209217dc3e  gcc/tree-ssa-math-opts.cc
  fa83f982a805985b3a3da2ca5e10e43a  gcc/tree-ssa-math-opts.h
  9b5221bc2087b040736afeb799949b04  gcc/tree-ssa-operands.cc
  f83d0b12185538e6f679296bebfe3d2f  gcc/tree-ssa-operands.h
*************** f8119a019450befbbf3e3e40b010cf74  gcc/tr
*** 130008,130025 ****
  a276a785e139fcb28cbe71af406290bf  gcc/tree-switch-conversion.cc
  e316eddfbf9a02433a4ee93e648f3aa4  gcc/tree-switch-conversion.h
  6a0f6268d598b3c59871ad41e01f33c1  gcc/tree-tailcall.cc
! 8b778220f046450b620cf0b570927dd3  gcc/tree-vect-data-refs.cc
  a423c268d5ba9ac563732fd6d038c572  gcc/tree-vect-generic.cc
  5945009d0ba922b53aacbb6f724d3caf  gcc/tree-vect-loop-manip.cc
! 0978b61fd549f214fdfe75d882a528e0  gcc/tree-vect-loop.cc
  550c845a7dca165130319d9b3d1f4b0f  gcc/tree-vect-patterns.cc
  ef0b51a362b8764cf6b0628ed16b2dde  gcc/tree-vect-slp-patterns.cc
  0298aeb5a5f9949f82a646703e6bab32  gcc/tree-vect-slp.cc
! 08b3e853979fd179b6978d50d0882e85  gcc/tree-vect-stmts.cc
  42032e04f389a2e0f43fbb46ac091dac  gcc/tree-vector-builder.cc
  4a1b4947e64a076fdca46d14aab2181f  gcc/tree-vector-builder.h
  29624134a45fa2e54db69b6ee376164d  gcc/tree-vectorizer.cc
! cfa1038dc37b4524f6e31c0a3fd48158  gcc/tree-vectorizer.h
  366e0ed463591e966ced4d1fd421282d  gcc/tree-vrp.cc
  d7273e63988959e17e61bc75f7f0cf29  gcc/tree-vrp.h
  8b42d823466d7303da83e62b8a0eefac  gcc/tree.cc
--- 130104,130121 ----
  a276a785e139fcb28cbe71af406290bf  gcc/tree-switch-conversion.cc
  e316eddfbf9a02433a4ee93e648f3aa4  gcc/tree-switch-conversion.h
  6a0f6268d598b3c59871ad41e01f33c1  gcc/tree-tailcall.cc
! 956df0c29f5bbb0023c76ef8db876ab0  gcc/tree-vect-data-refs.cc
  a423c268d5ba9ac563732fd6d038c572  gcc/tree-vect-generic.cc
  5945009d0ba922b53aacbb6f724d3caf  gcc/tree-vect-loop-manip.cc
! eb6c727eb79283f03756b620bc7f9e00  gcc/tree-vect-loop.cc
  550c845a7dca165130319d9b3d1f4b0f  gcc/tree-vect-patterns.cc
  ef0b51a362b8764cf6b0628ed16b2dde  gcc/tree-vect-slp-patterns.cc
  0298aeb5a5f9949f82a646703e6bab32  gcc/tree-vect-slp.cc
! 9695979e51e10a7946813d726e06e456  gcc/tree-vect-stmts.cc
  42032e04f389a2e0f43fbb46ac091dac  gcc/tree-vector-builder.cc
  4a1b4947e64a076fdca46d14aab2181f  gcc/tree-vector-builder.h
  29624134a45fa2e54db69b6ee376164d  gcc/tree-vectorizer.cc
! 07b69260748bf7c73e4e33c6681992aa  gcc/tree-vectorizer.h
  366e0ed463591e966ced4d1fd421282d  gcc/tree-vrp.cc
  d7273e63988959e17e61bc75f7f0cf29  gcc/tree-vrp.h
  8b42d823466d7303da83e62b8a0eefac  gcc/tree.cc
*************** b7bdc64c03d62f87f61d3d8a61a75d2d  libgcc
*** 132480,132495 ****
  227525d7193394128a83ce15e7642842  libgcc/vtv_start.c
  23ad2a8d256ba5dca28382d64a20e8f2  libgcc/vtv_start_preinit.c
  e50c29294062dfe571c9c053a8ec217b  libgcobol/.gitignore
! b36f1fe5164be3518f6b2b292ae81398  libgcobol/ChangeLog
! b227feb8ac8df349788743a8ade3e840  libgcobol/LICENSE
! 04057a81e83131ef0e6ab68dbfab7511  libgcobol/Makefile.am
! 32b0df03b8a0a32ad6a44a8623dc0ab2  libgcobol/Makefile.in
  ff016a65ce3c24bdd22207044f2a126e  libgcobol/README
! 8c9140838556aedbca129aeaedf0855b  libgcobol/acinclude.m4
  edff1d46cc8f5e3fa2007d8fede32717  libgcobol/aclocal.m4
! a41650878785053bfb9d4ea1dd5a6cdf  libgcobol/charmaps.cc
! 3effc0747d3a010f5ca41c69628b6d3d  libgcobol/charmaps.h
! a94ce6ebf5799c1d82c4fd0e0897f800  libgcobol/common-defs.h
  6f92fa32eabcfff6e25b59104fbd9a6a  libgcobol/compat/README.md
  9724ffdf971bebe59c8b2e8708a371b3  libgcobol/compat/gnu/lib/CBL_ALLOC_MEM.cbl
  848d2a16eb4e04f66947f0a4f3388039  libgcobol/compat/gnu/lib/CBL_CHECK_FILE_EXIST.cbl
--- 132576,132591 ----
  227525d7193394128a83ce15e7642842  libgcc/vtv_start.c
  23ad2a8d256ba5dca28382d64a20e8f2  libgcc/vtv_start_preinit.c
  e50c29294062dfe571c9c053a8ec217b  libgcobol/.gitignore
! 2668275efad0704e1570de12e5c038cd  libgcobol/ChangeLog
! bec1e79fc8ada70ed4ac3dc61a33d576  libgcobol/LICENSE
! 2cfdbe04cef7f082eb1653d83cc840a7  libgcobol/Makefile.am
! 48b79ace827003d0d1885e879873cb00  libgcobol/Makefile.in
  ff016a65ce3c24bdd22207044f2a126e  libgcobol/README
! a69c3f28d1be90eb0b0287fa450c3684  libgcobol/acinclude.m4
  edff1d46cc8f5e3fa2007d8fede32717  libgcobol/aclocal.m4
! bc35eb1a51484849b97f6fdb7c63051e  libgcobol/charmaps.cc
! c5dbf49d309880ae259cbdcd20690274  libgcobol/charmaps.h
! ff10a08007fb6269ffb47eb004d15d1e  libgcobol/common-defs.h
  6f92fa32eabcfff6e25b59104fbd9a6a  libgcobol/compat/README.md
  9724ffdf971bebe59c8b2e8708a371b3  libgcobol/compat/gnu/lib/CBL_ALLOC_MEM.cbl
  848d2a16eb4e04f66947f0a4f3388039  libgcobol/compat/gnu/lib/CBL_CHECK_FILE_EXIST.cbl
*************** a94ce6ebf5799c1d82c4fd0e0897f800  libgco
*** 132498,132522 ****
  f49bdd3b2cc069db17d0b4f9a6a02655  libgcobol/compat/gnu/udf/stored-char-length.cbl
  79fab4a17bf7e71b69ea829387984111  libgcobol/compat/t/Makefile
  b293e5545f3c614e2e8d23f125a576b6  libgcobol/compat/t/smoke.cbl
! a405f0e858ec34d69f097e6a2986e188  libgcobol/config.h.in
! a7de3a965aa8c95cf89fee18c19b9139  libgcobol/configure
! 810a164a475585dbaff058d1b97357d7  libgcobol/configure.ac
! 5aec96a7dfdb0d6e7b10cc13d65c53a3  libgcobol/configure.tgt
! b7eded6395ef32819ecac70ac1aac697  libgcobol/constants.cc
! 641fcbe1c4aa0a6cde86f5b185638e11  libgcobol/ec.h
! 4d631962d9cffec6762734da92f10e9a  libgcobol/encodings.h
! fbd99afdab52fcee0543b901042350ef  libgcobol/exceptl.h
! f1ab1b4e2b05d9a13774db42ef391916  libgcobol/gcobolio.h
! a440589f964741a7b0b073b9ab76e154  libgcobol/gfileio.cc
! 948488d543e0bdadd9d5f4283005a874  libgcobol/gfileio.h
! 9bc9dfe1f51cd0d1dec4a74a7db9326e  libgcobol/gmath.cc
! 9b52995346d1f02cab9c3e2b816722d6  libgcobol/gmath.h
! 47a14e62349a55715e10fd4c4a29bdc5  libgcobol/intrinsic.cc
! 0cf9ce2863c11a8fd875185c371fe6e6  libgcobol/io.cc
! b054056cc4fe4de7a78d34e43f2f3bab  libgcobol/io.h
  6fa2e26d11c71898dae520939b992484  libgcobol/libgcobol-fp.h
! 1c8fa0d10597fa6e6e8f8173062064fd  libgcobol/libgcobol.cc
! 74fd209d4dd961323d957619171cb186  libgcobol/libgcobol.h
  469e0f6e21e357ff8b53b9d17373a6c8  libgcobol/libgcobol.spec.in
  96b721e88c5f79776cedad463373ad78  libgcobol/posix/README.md
  6c13b507d443d1aa5c60a6b8939dd068  libgcobol/posix/bin/Makefile
--- 132594,132618 ----
  f49bdd3b2cc069db17d0b4f9a6a02655  libgcobol/compat/gnu/udf/stored-char-length.cbl
  79fab4a17bf7e71b69ea829387984111  libgcobol/compat/t/Makefile
  b293e5545f3c614e2e8d23f125a576b6  libgcobol/compat/t/smoke.cbl
! 6a3b66323eab3b40a9c109aafd9f27c6  libgcobol/config.h.in
! 3711ddfe829126de8ec66a46ed781cef  libgcobol/configure
! afed6df976e368f05886dbdd674f6f4f  libgcobol/configure.ac
! f9612f96c50ee0e25fbb1a07e6cf0047  libgcobol/configure.tgt
! 4631080368d086f3aac91589d57baeb1  libgcobol/constants.cc
! f2c3cff1bc18796f966af4f4144b8a45  libgcobol/ec.h
! ccd6b9ba0e615b569343d61602258dad  libgcobol/encodings.h
! b3961d8aa907be49adced89cb2a1f63f  libgcobol/exceptl.h
! f6a1b4281a88d1af2f17f07bd0fbd862  libgcobol/gcobolio.h
! 110a0d14613097bd6ace7b4ef014da84  libgcobol/gfileio.cc
! 0ae92e32a618fa39e3ff18a50cbfff17  libgcobol/gfileio.h
! 91cd4b3a0a22cbd2535e8aaa355e689f  libgcobol/gmath.cc
! 484b264b1c8d844ef5989f4d7075f520  libgcobol/gmath.h
! e492accb758fa06d305cc5dc48f9fc9e  libgcobol/intrinsic.cc
! 2b355d9cab0ba548b859425b4149b157  libgcobol/io.cc
! e56dd1238c5d2a7eb655018f1b536b0a  libgcobol/io.h
  6fa2e26d11c71898dae520939b992484  libgcobol/libgcobol-fp.h
! 2cb2cd1dd6f30844747a9a437735b52f  libgcobol/libgcobol.cc
! afb8e9e7c276f9360fc31ed2e57cbbc9  libgcobol/libgcobol.h
  469e0f6e21e357ff8b53b9d17373a6c8  libgcobol/libgcobol.spec.in
  96b721e88c5f79776cedad463373ad78  libgcobol/posix/README.md
  6c13b507d443d1aa5c60a6b8939dd068  libgcobol/posix/bin/Makefile
*************** aaed34e8da501e8f7406f40adfee9b24  libgco
*** 132550,132560 ****
  b596ffc38045755f7ef0c54f1d5555a1  libgcobol/posix/udf/posix-stat.cbl
  d5f038474fd5faad3f79701cbb81bf30  libgcobol/posix/udf/posix-unlink.cbl
  0cbcc2fa8aaaeccc8cd28ddd6e3acb0b  libgcobol/posix/udf/posix-write.cbl
! db96b460f17e3ec206617c052da2d651  libgcobol/stringbin.cc
! c9e5ab16fc25ce977c378934b670079e  libgcobol/stringbin.h
! 522a20a2bedd2407381ddf3d286b0b94  libgcobol/valconv.cc
! bf52fdaed06effba57a10e8157bc6930  libgcobol/valconv.h
! c87d0834249e4949627ac190796295e9  libgcobol/xmlparse.cc
  17a8b03e153b55840b195304488382aa  libgfortran/ChangeLog
  d99469a76bfe825683f8d94fe07b508c  libgfortran/ChangeLog-2002
  522fdb2df6cefe6bcaed3c7c7311eae1  libgfortran/ChangeLog-2003
--- 132646,132656 ----
  b596ffc38045755f7ef0c54f1d5555a1  libgcobol/posix/udf/posix-stat.cbl
  d5f038474fd5faad3f79701cbb81bf30  libgcobol/posix/udf/posix-unlink.cbl
  0cbcc2fa8aaaeccc8cd28ddd6e3acb0b  libgcobol/posix/udf/posix-write.cbl
! 1e458f7ebad93e7bd3920c4cce7a24a2  libgcobol/stringbin.cc
! 89dfd764956cfbc2affbf93a401839c9  libgcobol/stringbin.h
! 9486776ee88dd841ac94aa73290a74bf  libgcobol/valconv.cc
! 3466db9e6fc5748c08c947e71a566c07  libgcobol/valconv.h
! 37654db1d4845866e9a09cddc1b29274  libgcobol/xmlparse.cc
  17a8b03e153b55840b195304488382aa  libgfortran/ChangeLog
  d99469a76bfe825683f8d94fe07b508c  libgfortran/ChangeLog-2002
  522fdb2df6cefe6bcaed3c7c7311eae1  libgfortran/ChangeLog-2003
*************** a3a7e9ca6057da9ca42e03e41e1c73f7  libgo/
*** 139120,139126 ****
  dcdf1b680b15b372bdb64cc5107d51b6  libgo/testsuite/libgo-test-support.exp.in
  bf162aa572f7b96b25dbd2b027845d32  libgo/testsuite/libgo.testmain/testmain.exp
  cc9d2a0e34e31ba866a8caf9f46f48f3  libgomp/.gitattributes
! 931dc94cc90857688923e0234760e0e9  libgomp/ChangeLog
  0d55aa862aee66efdc5f8d62c94ff8fb  libgomp/ChangeLog.graphite
  714e3b9c0810a61df01246c2a97e825a  libgomp/Makefile.am
  ebb578201b0bfde5d8221fca34ee44c4  libgomp/Makefile.in
--- 139216,139222 ----
  dcdf1b680b15b372bdb64cc5107d51b6  libgo/testsuite/libgo-test-support.exp.in
  bf162aa572f7b96b25dbd2b027845d32  libgo/testsuite/libgo.testmain/testmain.exp
  cc9d2a0e34e31ba866a8caf9f46f48f3  libgomp/.gitattributes
! 0daf497ab5d7ddcd746c3823e6123eff  libgomp/ChangeLog
  0d55aa862aee66efdc5f8d62c94ff8fb  libgomp/ChangeLog.graphite
  714e3b9c0810a61df01246c2a97e825a  libgomp/Makefile.am
  ebb578201b0bfde5d8221fca34ee44c4  libgomp/Makefile.in
*************** d766cc495352ae2f48d322e276741b80  libgom
*** 139263,139269 ****
  b2aca0a9ddcb7f277bb3b49a277b30af  libgomp/libgomp.h
  cd6a22eaa3c99a58084ad32602f087b4  libgomp/libgomp.map
  8b2aa50aecad82171348a6918309afd6  libgomp/libgomp.spec.in
! 18c88e74b32bd27d9cfdf231c2a1c2fc  libgomp/libgomp.texi
  1d54928ce4032885323fb921fd1df788  libgomp/libgomp_f.h.in
  ff283838501e7dccd0306ec2feeb4452  libgomp/libgomp_g.h
  26474764313104462f3252f8ce962c10  libgomp/lock.c
--- 139359,139365 ----
  b2aca0a9ddcb7f277bb3b49a277b30af  libgomp/libgomp.h
  cd6a22eaa3c99a58084ad32602f087b4  libgomp/libgomp.map
  8b2aa50aecad82171348a6918309afd6  libgomp/libgomp.spec.in
! 5068eab3b03f3e6e429bf9f1ae8146bf  libgomp/libgomp.texi
  1d54928ce4032885323fb921fd1df788  libgomp/libgomp_f.h.in
  ff283838501e7dccd0306ec2feeb4452  libgomp/libgomp_g.h
  26474764313104462f3252f8ce962c10  libgomp/lock.c
*************** c9740fad4aed0ad56520ed80ef3e0c8d  libgom
*** 139409,139415 ****
  ce9c39e35005e3bdc03574b9f7ee41c9  libgomp/testsuite/libgomp.c++/doacross-1.C
  180763c1f861a2798392fca31f505ef3  libgomp/testsuite/libgomp.c++/examples-4/declare_target-2.C
  98f2608bd37e360bc09de297923e88b7  libgomp/testsuite/libgomp.c++/examples-4/target_data-5.C
! ccd9ee1d01506847d3ea1b041c796d78  libgomp/testsuite/libgomp.c++/firstprivate-1.C
  2e6cbe250ac9d5c71de572a824df56a0  libgomp/testsuite/libgomp.c++/firstprivate-2.C
  e1ee4867ce68141a641f925070e14fdc  libgomp/testsuite/libgomp.c++/for-1.C
  d0954022d926f34bf7b593ee87adf45b  libgomp/testsuite/libgomp.c++/for-15.C
--- 139505,139511 ----
  ce9c39e35005e3bdc03574b9f7ee41c9  libgomp/testsuite/libgomp.c++/doacross-1.C
  180763c1f861a2798392fca31f505ef3  libgomp/testsuite/libgomp.c++/examples-4/declare_target-2.C
  98f2608bd37e360bc09de297923e88b7  libgomp/testsuite/libgomp.c++/examples-4/target_data-5.C
! fd5833416758f0017a1109710df166b6  libgomp/testsuite/libgomp.c++/firstprivate-1.C
  2e6cbe250ac9d5c71de572a824df56a0  libgomp/testsuite/libgomp.c++/firstprivate-2.C
  e1ee4867ce68141a641f925070e14fdc  libgomp/testsuite/libgomp.c++/for-1.C
  d0954022d926f34bf7b593ee87adf45b  libgomp/testsuite/libgomp.c++/for-15.C
*************** c24b71428729c4477c68a326981f1502  libgom
*** 139479,139484 ****
--- 139575,139582 ----
  f707c9b8a0f7005cc93bc19e863bbd02  libgomp/testsuite/libgomp.c++/pr106445-1.C
  918bd233ad318b00f080ec4f186b4ee1  libgomp/testsuite/libgomp.c++/pr108180.C
  54dc0c6a125d470a10c8164512c57368  libgomp/testsuite/libgomp.c++/pr108286.C
+ 93cbcbe4fe1eabe0c80b6c09afefd023  libgomp/testsuite/libgomp.c++/pr113436-1.C
+ d6092b858f262dbdbdad7d0608c25cbe  libgomp/testsuite/libgomp.c++/pr113436-2.C
  2b5f66e459a48cd1cbeb9dc42d3b751e  libgomp/testsuite/libgomp.c++/pr114572.C
  8801d963ce68c757ce130916d88cfb17  libgomp/testsuite/libgomp.c++/pr119692-1-1.C
  6fc97c0ff0901911f7091f8eca32d1dd  libgomp/testsuite/libgomp.c++/pr119692-1-2.C
*************** dc7de2a56e857e340edadd8faabda685  libgom
*** 139518,139524 ****
  ccbeb19f46d34074feddb4daec61a533  libgomp/testsuite/libgomp.c++/pr96390.C
  63bd24d77867fab9ada7d67f20c63d41  libgomp/testsuite/libgomp.c++/pr96835-1-O0.C
  fc0a3e3809ef348fbf52c75b8ec62710  libgomp/testsuite/libgomp.c++/pr96835-1.C
! 4cffa5137acf2753cd96b591d407c9ef  libgomp/testsuite/libgomp.c++/private-1.C
  b5571c134a19d36224598207948c1778  libgomp/testsuite/libgomp.c++/private-2.C
  04dc564b11f6e503f39552628affa8a8  libgomp/testsuite/libgomp.c++/range-for-1.C
  5b758d53cdb49aa2e6eef09ee91eed94  libgomp/testsuite/libgomp.c++/range-for-2.C
--- 139616,139622 ----
  ccbeb19f46d34074feddb4daec61a533  libgomp/testsuite/libgomp.c++/pr96390.C
  63bd24d77867fab9ada7d67f20c63d41  libgomp/testsuite/libgomp.c++/pr96835-1-O0.C
  fc0a3e3809ef348fbf52c75b8ec62710  libgomp/testsuite/libgomp.c++/pr96835-1.C
! 49c3cad861ae0d27aba17707a2e5a761  libgomp/testsuite/libgomp.c++/private-1.C
  b5571c134a19d36224598207948c1778  libgomp/testsuite/libgomp.c++/private-2.C
  04dc564b11f6e503f39552628affa8a8  libgomp/testsuite/libgomp.c++/range-for-1.C
  5b758d53cdb49aa2e6eef09ee91eed94  libgomp/testsuite/libgomp.c++/range-for-2.C
*************** f57660e58c4d1e1085d45c8590d31ff9  libgom
*** 139947,139952 ****
--- 140045,140052 ----
  5c7fd2f1e707d0e769a814bd91bb9ae8  libgomp/testsuite/libgomp.c-c++-common/pr106449.c
  010e1c442bf8c18b7045c53d36e8346e  libgomp/testsuite/libgomp.c-c++-common/pr106981.c
  308425143a5065c8f126694d81756992  libgomp/testsuite/libgomp.c-c++-common/pr109062.c
+ c6571910534be9f08f24a03c0ce0f190  libgomp/testsuite/libgomp.c-c++-common/pr113436-1.c
+ 59e03ef918a9a802eb0f2e7cb3517517  libgomp/testsuite/libgomp.c-c++-common/pr113436-2.c
  67c38424bb3c5c571b180f7bdadaa4f8  libgomp/testsuite/libgomp.c-c++-common/pr45784.c
  68cf777b22e15a310c790cabde33a5f1  libgomp/testsuite/libgomp.c-c++-common/pr64824.c
  800ed634329eb97a562e7e84ebd4044b  libgomp/testsuite/libgomp.c-c++-common/pr64868.c
*************** b018601a4e35da4037b1e04dfdb00b98  libgom
*** 141008,141013 ****
--- 141108,141115 ----
  10f51539240fd456f44686f1368a9ebb  libgomp/testsuite/libgomp.fortran/pointer1.f90
  43b3675f4eee0ab654fb9ae0fd4ee940  libgomp/testsuite/libgomp.fortran/pointer2.f90
  5a38dd4751898fd9556aa9ed131fad76  libgomp/testsuite/libgomp.fortran/pr100981-2.f90
+ 327296ef9f336f2398d0e4c17fabdbd7  libgomp/testsuite/libgomp.fortran/pr113436-1.f90
+ 44b753e10d2a8e272c6d624bb12125cf  libgomp/testsuite/libgomp.fortran/pr113436-2.f90
  1e7de6c9f1376e7662fc088ab6ec5e64  libgomp/testsuite/libgomp.fortran/pr25162.f
  150790c35955da1ca1b74284c2553f34  libgomp/testsuite/libgomp.fortran/pr25219.f90
  a83bd562c0d1b609f2a71de244b3a1a0  libgomp/testsuite/libgomp.fortran/pr27395-1.f90
*************** d1c33a8b5e0f3d9a19ffe583f8e72f56  libgru
*** 142726,142732 ****
  c21183b1df7f7afb240d765035277db1  libgrust/rustc-lib/version-info
  99c2e5e712b990ee07be10f53e41f3fb  libiberty/.gitignore
  a916467b91076e631dd8edb7424769c7  libiberty/COPYING.LIB
! 30e247a60b004098ea869722f0619c3d  libiberty/ChangeLog
  347c31392973de6a4872d540c1718dc1  libiberty/ChangeLog.jit
  de0b0731d5d06e748df71e896c6078a5  libiberty/Makefile.in
  8b93d0e0369daed24e2260ccfd102eb3  libiberty/README
--- 142828,142834 ----
  c21183b1df7f7afb240d765035277db1  libgrust/rustc-lib/version-info
  99c2e5e712b990ee07be10f53e41f3fb  libiberty/.gitignore
  a916467b91076e631dd8edb7424769c7  libiberty/COPYING.LIB
! fd7f561cbbbd944a22fea3719e2659ed  libiberty/ChangeLog
  347c31392973de6a4872d540c1718dc1  libiberty/ChangeLog.jit
  de0b0731d5d06e748df71e896c6078a5  libiberty/Makefile.in
  8b93d0e0369daed24e2260ccfd102eb3  libiberty/README
*************** df2cc8306a1a2d512d0a4e45bfe38734  libibe
*** 142881,142887 ****
  3a756a52e879c85a75fdcb932961be77  libiberty/vasprintf.c
  8e71982d77e91c0e3c57ca86c8a1b548  libiberty/vfork.c
  f2163fa7b495d102b9018b155ffa110c  libiberty/vfprintf.c
! 54b5434090718de987533164b1a2e416  libiberty/vprintf-support.c
  903022bd8365a565ff57b6740e37b548  libiberty/vprintf-support.h
  28af0a1bf222ed2a5a87d9e170ef4a46  libiberty/vprintf.c
  9f008d4be147550b6087c95bb5795be5  libiberty/vsnprintf.c
--- 142983,142989 ----
  3a756a52e879c85a75fdcb932961be77  libiberty/vasprintf.c
  8e71982d77e91c0e3c57ca86c8a1b548  libiberty/vfork.c
  f2163fa7b495d102b9018b155ffa110c  libiberty/vfprintf.c
! 28b0e227943b3e3d91408e5393f1ecd6  libiberty/vprintf-support.c
  903022bd8365a565ff57b6740e37b548  libiberty/vprintf-support.h
  28af0a1bf222ed2a5a87d9e170ef4a46  libiberty/vprintf.c
  9f008d4be147550b6087c95bb5795be5  libiberty/vsnprintf.c
*************** e52d95644dc6f186070f349a5903ca72  libibe
*** 142896,142902 ****
  6f774a92661ca4a067f1691a7925524b  libiberty/xstrerror.c
  82039c5e76badca485d7ec27bf160ba4  libiberty/xstrndup.c
  2052196fd1de9a9efa8722031398f544  libiberty/xvasprintf.c
! 5de08d1cbf7bb2a72bd64c845989e1e2  libitm/ChangeLog
  763fe82c2e5c5ae9547defb28107952a  libitm/Makefile.am
  ef89f818c0c39a850af7e33129d6ba50  libitm/Makefile.in
  86465895a9d654faded88bc3fa075117  libitm/aatree.cc
--- 142998,143004 ----
  6f774a92661ca4a067f1691a7925524b  libiberty/xstrerror.c
  82039c5e76badca485d7ec27bf160ba4  libiberty/xstrndup.c
  2052196fd1de9a9efa8722031398f544  libiberty/xvasprintf.c
! 719ce8ad3e62790a16b09606796c014f  libitm/ChangeLog
  763fe82c2e5c5ae9547defb28107952a  libitm/Makefile.am
  ef89f818c0c39a850af7e33129d6ba50  libitm/Makefile.in
  86465895a9d654faded88bc3fa075117  libitm/aatree.cc
*************** e15ca5fea1fc328695442dd6616fa3cb  libitm
*** 142975,142982 ****
  556e27be3e87082db63480f176a868be  libitm/testsuite/Makefile.in
  db1c194c69eb8c5f5b9c5d53d057f868  libitm/testsuite/config/default.exp
  9ab92f2310c96121666b692e1660d24f  libitm/testsuite/lib/libitm-dg.exp
! ea58824199b4262abc22455210d19bb9  libitm/testsuite/lib/libitm.exp
! cb49edf16f1890364c7730d433efddcc  libitm/testsuite/libitm.c++/c++.exp
  11785412cb94b04ecc293453486ad223  libitm/testsuite/libitm.c++/dropref.C
  d806946f2845368f69a6513f60b085d2  libitm/testsuite/libitm.c++/eh-1.C
  4d185e0f675cc4954831fb956401121c  libitm/testsuite/libitm.c++/eh-2.C
--- 143077,143084 ----
  556e27be3e87082db63480f176a868be  libitm/testsuite/Makefile.in
  db1c194c69eb8c5f5b9c5d53d057f868  libitm/testsuite/config/default.exp
  9ab92f2310c96121666b692e1660d24f  libitm/testsuite/lib/libitm-dg.exp
! cd008009f563ca5006713cc2ebbf3e32  libitm/testsuite/lib/libitm.exp
! 935efee774efaaefc4110a79f3925b4e  libitm/testsuite/libitm.c++/c++.exp
  11785412cb94b04ecc293453486ad223  libitm/testsuite/libitm.c++/dropref.C
  d806946f2845368f69a6513f60b085d2  libitm/testsuite/libitm.c++/eh-1.C
  4d185e0f675cc4954831fb956401121c  libitm/testsuite/libitm.c++/eh-2.C
*************** ff5f9bdfec617e402860345005b63f97  libitm
*** 142989,142995 ****
  2742ff75bdd09e5d7b7a8243faf7a139  libitm/testsuite/libitm.c++/static_ctor.C
  46762fbea0ec17d69930afcc614c45b1  libitm/testsuite/libitm.c++/throwdown.C
  6e9bcfc4d36634b83275aa937b4f5dba  libitm/testsuite/libitm.c/alloc-1.c
! 360ceaa221cf68f7df1b9ba3ba91cb21  libitm/testsuite/libitm.c/c.exp
  d8822027c193f915ac47494062434491  libitm/testsuite/libitm.c/cancel.c
  c4cf6482a241a1d3f5834af5e79f2c5f  libitm/testsuite/libitm.c/clone-1.c
  3e8a0d50b26336181bb55be1a390c4f7  libitm/testsuite/libitm.c/dropref-2.c
--- 143091,143097 ----
  2742ff75bdd09e5d7b7a8243faf7a139  libitm/testsuite/libitm.c++/static_ctor.C
  46762fbea0ec17d69930afcc614c45b1  libitm/testsuite/libitm.c++/throwdown.C
  6e9bcfc4d36634b83275aa937b4f5dba  libitm/testsuite/libitm.c/alloc-1.c
! f492db0345a2c6a7d4c4b51027ff2895  libitm/testsuite/libitm.c/c.exp
  d8822027c193f915ac47494062434491  libitm/testsuite/libitm.c/cancel.c
  c4cf6482a241a1d3f5834af5e79f2c5f  libitm/testsuite/libitm.c/clone-1.c
  3e8a0d50b26336181bb55be1a390c4f7  libitm/testsuite/libitm.c/dropref-2.c
*************** a73d560a3ba317c5ad0a7919d87b4b6d  libssp
*** 144730,144736 ****
  7d75fa0d30318408fe4cd91d9cbe3ac7  libssp/vsnprintf-chk.c
  e9ff0f4bdd1be75a507480ed1267459d  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! 6acfff71a052bd3557e5f6947cbf6ad0  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 144832,144838 ----
  7d75fa0d30318408fe4cd91d9cbe3ac7  libssp/vsnprintf-chk.c
  e9ff0f4bdd1be75a507480ed1267459d  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! 54a7ce1c2a62e0f6514cc5a7b5506cf9  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
*************** abc6f4755fae8c6e8f45ce5fee798654  libstd
*** 144797,144803 ****
  6c165e7a2d80e986556ae6dc2bad3857  libstdc++-v3/config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt
  5c4c38aeca254313c616b84337c937c3  libstdc++-v3/config/abi/pre/float128.ver
  d8fba4e72b3bac4b2fa939d9ec589c51  libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
! 33137a53f652d24cd432293a2fa8bc2f  libstdc++-v3/config/abi/pre/gnu.ver
  b01f8da8f4373070847fe317fe8a546e  libstdc++-v3/config/abi/pre/none.ver
  a2a19bba90a6663d180d5d9f7b28b623  libstdc++-v3/config/allocator/malloc_allocator_base.h
  92afc718fea5d5748cbf18f969414917  libstdc++-v3/config/allocator/new_allocator_base.h
--- 144899,144905 ----
  6c165e7a2d80e986556ae6dc2bad3857  libstdc++-v3/config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt
  5c4c38aeca254313c616b84337c937c3  libstdc++-v3/config/abi/pre/float128.ver
  d8fba4e72b3bac4b2fa939d9ec589c51  libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
! 04f55167ab55601179c8b23a4651a7ba  libstdc++-v3/config/abi/pre/gnu.ver
  b01f8da8f4373070847fe317fe8a546e  libstdc++-v3/config/abi/pre/none.ver
  a2a19bba90a6663d180d5d9f7b28b623  libstdc++-v3/config/allocator/malloc_allocator_base.h
  92afc718fea5d5748cbf18f969414917  libstdc++-v3/config/allocator/new_allocator_base.h
*************** bceed1a9b573696caadf95cf3ea8f02f  libstd
*** 145409,145421 ****
  dec832c4e096f15d10aafd4c825cc195  libstdc++-v3/include/bits/alloc_traits.h
  54d70975b96f74e9dab06dcfdeb88658  libstdc++-v3/include/bits/allocated_ptr.h
  0165e84a80837de3ebdfeed0fa40ec8d  libstdc++-v3/include/bits/allocator.h
! 91a03cd35941ae7ed8d8be72934ef4d3  libstdc++-v3/include/bits/atomic_base.h
  504ddf67fe31254fb67815770ee690ba  libstdc++-v3/include/bits/atomic_futex.h
  e901edfc8eef441d1adabd54be25b807  libstdc++-v3/include/bits/atomic_timed_wait.h
  f9d5ca9bad80a3b4725fbabfd0ff8318  libstdc++-v3/include/bits/atomic_wait.h
  65e262c95ca2a5021497a947a07b5d48  libstdc++-v3/include/bits/basic_ios.h
  e0d25c8ddeac5ee95a7b60861849f304  libstdc++-v3/include/bits/basic_ios.tcc
! c747603193d260bfba0d73229384fc23  libstdc++-v3/include/bits/basic_string.h
  9fe47555d6bf8f75de266ba2f9b4305a  libstdc++-v3/include/bits/basic_string.tcc
  6577c59d5422a21dd9f45310f1a10b22  libstdc++-v3/include/bits/binders.h
  3bc144622d471efab1aef4ec705459d0  libstdc++-v3/include/bits/boost_concept_check.h
--- 145511,145523 ----
  dec832c4e096f15d10aafd4c825cc195  libstdc++-v3/include/bits/alloc_traits.h
  54d70975b96f74e9dab06dcfdeb88658  libstdc++-v3/include/bits/allocated_ptr.h
  0165e84a80837de3ebdfeed0fa40ec8d  libstdc++-v3/include/bits/allocator.h
! ef4ec7e93f905f4a4b98a21e9340ebc7  libstdc++-v3/include/bits/atomic_base.h
  504ddf67fe31254fb67815770ee690ba  libstdc++-v3/include/bits/atomic_futex.h
  e901edfc8eef441d1adabd54be25b807  libstdc++-v3/include/bits/atomic_timed_wait.h
  f9d5ca9bad80a3b4725fbabfd0ff8318  libstdc++-v3/include/bits/atomic_wait.h
  65e262c95ca2a5021497a947a07b5d48  libstdc++-v3/include/bits/basic_ios.h
  e0d25c8ddeac5ee95a7b60861849f304  libstdc++-v3/include/bits/basic_ios.tcc
! c03f7fa57adfdd116dc5a9d514d621bf  libstdc++-v3/include/bits/basic_string.h
  9fe47555d6bf8f75de266ba2f9b4305a  libstdc++-v3/include/bits/basic_string.tcc
  6577c59d5422a21dd9f45310f1a10b22  libstdc++-v3/include/bits/binders.h
  3bc144622d471efab1aef4ec705459d0  libstdc++-v3/include/bits/boost_concept_check.h
*************** c747603193d260bfba0d73229384fc23  libstd
*** 145427,145433 ****
  76f76ab755d9be22c3744eeb8bf22bbd  libstdc++-v3/include/bits/chrono_io.h
  1f26067336c4957237db887ab1ce6b55  libstdc++-v3/include/bits/codecvt.h
  53f7e45e350f1bb99b3d67e27f914b61  libstdc++-v3/include/bits/concept_check.h
! c5c13c24b9e27f502943f588ca538499  libstdc++-v3/include/bits/cow_string.h
  97d90498ee103018406f19468a5500ec  libstdc++-v3/include/bits/cpp_type_traits.h
  1a6ab365d16951ef25f6a0b562b27ede  libstdc++-v3/include/bits/cpyfunc_impl.h
  1c5bc7f82fd83ba042296f81734c820b  libstdc++-v3/include/bits/deque.tcc
--- 145529,145535 ----
  76f76ab755d9be22c3744eeb8bf22bbd  libstdc++-v3/include/bits/chrono_io.h
  1f26067336c4957237db887ab1ce6b55  libstdc++-v3/include/bits/codecvt.h
  53f7e45e350f1bb99b3d67e27f914b61  libstdc++-v3/include/bits/concept_check.h
! 7c617bb1da049c03753688f6f43b2d28  libstdc++-v3/include/bits/cow_string.h
  97d90498ee103018406f19468a5500ec  libstdc++-v3/include/bits/cpp_type_traits.h
  1a6ab365d16951ef25f6a0b562b27ede  libstdc++-v3/include/bits/cpyfunc_impl.h
  1c5bc7f82fd83ba042296f81734c820b  libstdc++-v3/include/bits/deque.tcc
*************** f053b22f5819f7ed1f6ed5ffe14dc5a3  libstd
*** 145442,145451 ****
  3ef9bc83cb8c079eb15ebfb1a50ab14b  libstdc++-v3/include/bits/fs_ops.h
  58a1b043a925dfe835cee957a277d6d5  libstdc++-v3/include/bits/fs_path.h
  c2f893fbd3fb2e778cc648a1e309d2f5  libstdc++-v3/include/bits/fstream.tcc
! 66abab33b154fe334e91c3ed03ed17ce  libstdc++-v3/include/bits/funcref_impl.h
  e77032281bd301430e499d5bb46db4a1  libstdc++-v3/include/bits/functexcept.h
  31bdc727f2eaf8eda1ab45fb88577c00  libstdc++-v3/include/bits/functional_hash.h
! af850f4d123435b088d5b30aa97508d5  libstdc++-v3/include/bits/funcwrap.h
  a437a10ba7525a3935bec765a5604a4f  libstdc++-v3/include/bits/gslice.h
  39aca2727a08f07f0043ee164eaa09a4  libstdc++-v3/include/bits/gslice_array.h
  1773f2cf2b816c5909a3f4540395f895  libstdc++-v3/include/bits/hashtable.h
--- 145544,145553 ----
  3ef9bc83cb8c079eb15ebfb1a50ab14b  libstdc++-v3/include/bits/fs_ops.h
  58a1b043a925dfe835cee957a277d6d5  libstdc++-v3/include/bits/fs_path.h
  c2f893fbd3fb2e778cc648a1e309d2f5  libstdc++-v3/include/bits/fstream.tcc
! a7fdff0e3cbc9de43937f64f26f7b528  libstdc++-v3/include/bits/funcref_impl.h
  e77032281bd301430e499d5bb46db4a1  libstdc++-v3/include/bits/functexcept.h
  31bdc727f2eaf8eda1ab45fb88577c00  libstdc++-v3/include/bits/functional_hash.h
! 76d369b48d0ecf0eabf5ba98117636b2  libstdc++-v3/include/bits/funcwrap.h
  a437a10ba7525a3935bec765a5604a4f  libstdc++-v3/include/bits/gslice.h
  39aca2727a08f07f0043ee164eaa09a4  libstdc++-v3/include/bits/gslice_array.h
  1773f2cf2b816c5909a3f4540395f895  libstdc++-v3/include/bits/hashtable.h
*************** ab1a2667b1fb6a0843b439656cb56a71  libstd
*** 145480,145486 ****
  7dfd84600e5f8b7a41725ebd55973976  libstdc++-v3/include/bits/ostream.h
  ad86ba065860cc280af4d463bd5ac78e  libstdc++-v3/include/bits/ostream.tcc
  4960be4248870cda60d2fbc53fc26da1  libstdc++-v3/include/bits/ostream_insert.h
! a0ff2aff5e6b290f02129d8fd5066f94  libstdc++-v3/include/bits/out_ptr.h
  70fb2f8fab4692fafd8fa11d91d01edd  libstdc++-v3/include/bits/parse_numbers.h
  6a72ede97c52245c80e7794718ee0021  libstdc++-v3/include/bits/postypes.h
  244c55c9dbbe4afb3b877765deccda78  libstdc++-v3/include/bits/predefined_ops.h
--- 145582,145588 ----
  7dfd84600e5f8b7a41725ebd55973976  libstdc++-v3/include/bits/ostream.h
  ad86ba065860cc280af4d463bd5ac78e  libstdc++-v3/include/bits/ostream.tcc
  4960be4248870cda60d2fbc53fc26da1  libstdc++-v3/include/bits/ostream_insert.h
! bc72db5fba502844a08e378d07cbad1c  libstdc++-v3/include/bits/out_ptr.h
  70fb2f8fab4692fafd8fa11d91d01edd  libstdc++-v3/include/bits/parse_numbers.h
  6a72ede97c52245c80e7794718ee0021  libstdc++-v3/include/bits/postypes.h
  244c55c9dbbe4afb3b877765deccda78  libstdc++-v3/include/bits/predefined_ops.h
*************** c04d8e83343df391a348af7cf384e792  libstd
*** 145496,145511 ****
  571addb6a7ba251f10f9342f9b041ae5  libstdc++-v3/include/bits/ranges_uninitialized.h
  1e16e9219782b5cd7f75c9d3e4611b1b  libstdc++-v3/include/bits/ranges_util.h
  eba2c9ee0f0d650f6223eb4f40e83b02  libstdc++-v3/include/bits/refwrap.h
! 6764b39d51cbc4f39fddde947d8fe251  libstdc++-v3/include/bits/regex.h
! b4589bd660254929ec7e928696be5ea9  libstdc++-v3/include/bits/regex.tcc
  d62176e59366818434c2a0ad6ef3b77b  libstdc++-v3/include/bits/regex_automaton.h
  7f7a38e87eaa1a1df665e82e34676187  libstdc++-v3/include/bits/regex_automaton.tcc
  1bcc93fd798e3cfceb03153cece2319c  libstdc++-v3/include/bits/regex_compiler.h
  491f2e1710d8e0ee4cbfadbbd2892662  libstdc++-v3/include/bits/regex_compiler.tcc
  d3f233b7eec1704a8dbae3ba302cd591  libstdc++-v3/include/bits/regex_constants.h
  50ec2de0a344b64a276e732b37641aae  libstdc++-v3/include/bits/regex_error.h
! 6c8ff0bed217343128e9191134ee89f6  libstdc++-v3/include/bits/regex_executor.h
! 2593e27e95598e22f913fc37cd89f781  libstdc++-v3/include/bits/regex_executor.tcc
  fc20035df7d49f1eceffb4cb72ad6814  libstdc++-v3/include/bits/regex_scanner.h
  cbd44f9447b308b0901004443db53e93  libstdc++-v3/include/bits/regex_scanner.tcc
  22a9676313472917eaaccc27ddfb10f4  libstdc++-v3/include/bits/requires_hosted.h
--- 145598,145613 ----
  571addb6a7ba251f10f9342f9b041ae5  libstdc++-v3/include/bits/ranges_uninitialized.h
  1e16e9219782b5cd7f75c9d3e4611b1b  libstdc++-v3/include/bits/ranges_util.h
  eba2c9ee0f0d650f6223eb4f40e83b02  libstdc++-v3/include/bits/refwrap.h
! 7da252b55893374947fa85a63106e1e5  libstdc++-v3/include/bits/regex.h
! 95b0223d89eb3c556603e4541958028d  libstdc++-v3/include/bits/regex.tcc
  d62176e59366818434c2a0ad6ef3b77b  libstdc++-v3/include/bits/regex_automaton.h
  7f7a38e87eaa1a1df665e82e34676187  libstdc++-v3/include/bits/regex_automaton.tcc
  1bcc93fd798e3cfceb03153cece2319c  libstdc++-v3/include/bits/regex_compiler.h
  491f2e1710d8e0ee4cbfadbbd2892662  libstdc++-v3/include/bits/regex_compiler.tcc
  d3f233b7eec1704a8dbae3ba302cd591  libstdc++-v3/include/bits/regex_constants.h
  50ec2de0a344b64a276e732b37641aae  libstdc++-v3/include/bits/regex_error.h
! 2781effad56e7f715556eb478fbaaf0a  libstdc++-v3/include/bits/regex_executor.h
! 713d443706f3d0fdc7e5695558807234  libstdc++-v3/include/bits/regex_executor.tcc
  fc20035df7d49f1eceffb4cb72ad6814  libstdc++-v3/include/bits/regex_scanner.h
  cbd44f9447b308b0901004443db53e93  libstdc++-v3/include/bits/regex_scanner.tcc
  22a9676313472917eaaccc27ddfb10f4  libstdc++-v3/include/bits/requires_hosted.h
*************** f5291a41594cbc2cfdc8240cb611d8b1  libstd
*** 145530,145536 ****
  4e5a06e505381e0b1af562ff59670f89  libstdc++-v3/include/bits/stl_bvector.h
  c53878727e94c56c0b362d17dfe0fca2  libstdc++-v3/include/bits/stl_construct.h
  c56a5e22a7aa2899e57a689ddfa64b43  libstdc++-v3/include/bits/stl_deque.h
! 3c041a3276d992f962f81fa4a73dca6b  libstdc++-v3/include/bits/stl_function.h
  4af65d6cfcd3e9943b1da341c9fa26ad  libstdc++-v3/include/bits/stl_heap.h
  bd2e27c602ee02023df28ac89c0ad816  libstdc++-v3/include/bits/stl_iterator.h
  08f3002267b4b29c0a28c75c6da5cf82  libstdc++-v3/include/bits/stl_iterator_base_funcs.h
--- 145632,145638 ----
  4e5a06e505381e0b1af562ff59670f89  libstdc++-v3/include/bits/stl_bvector.h
  c53878727e94c56c0b362d17dfe0fca2  libstdc++-v3/include/bits/stl_construct.h
  c56a5e22a7aa2899e57a689ddfa64b43  libstdc++-v3/include/bits/stl_deque.h
! dad6f36c0bb9a2b5c5cfe42d6904e350  libstdc++-v3/include/bits/stl_function.h
  4af65d6cfcd3e9943b1da341c9fa26ad  libstdc++-v3/include/bits/stl_heap.h
  bd2e27c602ee02023df28ac89c0ad816  libstdc++-v3/include/bits/stl_iterator.h
  08f3002267b4b29c0a28c75c6da5cf82  libstdc++-v3/include/bits/stl_iterator_base_funcs.h
*************** f1cc3238df41adc204bc4f90accc63f3  libstd
*** 146122,146128 ****
  4598b57244995567c24672d3c0cdb7b3  libstdc++-v3/include/std/algorithm
  f1c08a4c9a736109edfd3c39c60c1669  libstdc++-v3/include/std/any
  7eec97c02f2ad002721647488d07f1d7  libstdc++-v3/include/std/array
! 65ed1af3aa1b4755db9e67e27e6543fb  libstdc++-v3/include/std/atomic
  43d5b40ea90d5c416339579b4b867b3f  libstdc++-v3/include/std/barrier
  085ec2d298f0be079b303330b81b05d1  libstdc++-v3/include/std/bit
  c3ffcd8b87d4589e457faa7a3a7601d6  libstdc++-v3/include/std/bitset
--- 146224,146230 ----
  4598b57244995567c24672d3c0cdb7b3  libstdc++-v3/include/std/algorithm
  f1c08a4c9a736109edfd3c39c60c1669  libstdc++-v3/include/std/any
  7eec97c02f2ad002721647488d07f1d7  libstdc++-v3/include/std/array
! 53a92240701dfb08f442abd700d4fbcb  libstdc++-v3/include/std/atomic
  43d5b40ea90d5c416339579b4b867b3f  libstdc++-v3/include/std/barrier
  085ec2d298f0be079b303330b81b05d1  libstdc++-v3/include/std/bit
  c3ffcd8b87d4589e457faa7a3a7601d6  libstdc++-v3/include/std/bitset
*************** b4c9d5ad3541a664c1fc38afd35837d2  libstd
*** 146171,146177 ****
  fd773662a4b346f11b66520f34a8898e  libstdc++-v3/include/std/print
  879fbfbd4d520dc45943e6e1c095a2e7  libstdc++-v3/include/std/queue
  e21a300c90cd953e16f037708f0e242a  libstdc++-v3/include/std/random
! 94d63da74d0520ec816fc4f0713d430c  libstdc++-v3/include/std/ranges
  ee576f89ae347224177df91fe86d905d  libstdc++-v3/include/std/ratio
  a5c4f3df840ba7c3fbc9b7b9d5567ef2  libstdc++-v3/include/std/regex
  8e6ef0834acfc88dd03f5eae2990e41a  libstdc++-v3/include/std/scoped_allocator
--- 146273,146279 ----
  fd773662a4b346f11b66520f34a8898e  libstdc++-v3/include/std/print
  879fbfbd4d520dc45943e6e1c095a2e7  libstdc++-v3/include/std/queue
  e21a300c90cd953e16f037708f0e242a  libstdc++-v3/include/std/random
! a3c0035b4321cd6d586fd46674004dd7  libstdc++-v3/include/std/ranges
  ee576f89ae347224177df91fe86d905d  libstdc++-v3/include/std/ratio
  a5c4f3df840ba7c3fbc9b7b9d5567ef2  libstdc++-v3/include/std/regex
  8e6ef0834acfc88dd03f5eae2990e41a  libstdc++-v3/include/std/scoped_allocator
*************** f5a5ebc7b6133572f8f361cde93ec52f  libstd
*** 146194,146201 ****
  0574b134b5132494e9294186a6a4511c  libstdc++-v3/include/std/system_error
  608edef7344e2e25c7b00170df6fa9e6  libstdc++-v3/include/std/text_encoding
  0e55da688cfae6ed254c1328fad9c8ad  libstdc++-v3/include/std/thread
! 18066f87725dc5e14297a90730d89f30  libstdc++-v3/include/std/tuple
! e465f9065fdc0cd37abb571a528cdc3d  libstdc++-v3/include/std/type_traits
  66a7939bfcb3a6f5966552f3fb49a384  libstdc++-v3/include/std/typeindex
  c7f5e5532f97d423c06bfcf8f5e5346f  libstdc++-v3/include/std/unordered_map
  ee4e96cfeb6f951ca642e8d6c4c12ee7  libstdc++-v3/include/std/unordered_set
--- 146296,146303 ----
  0574b134b5132494e9294186a6a4511c  libstdc++-v3/include/std/system_error
  608edef7344e2e25c7b00170df6fa9e6  libstdc++-v3/include/std/text_encoding
  0e55da688cfae6ed254c1328fad9c8ad  libstdc++-v3/include/std/thread
! bf9dc0b041052f9a9e59ac623efd295a  libstdc++-v3/include/std/tuple
! d7255801fe309f78ec7ca1a0ac855fb4  libstdc++-v3/include/std/type_traits
  66a7939bfcb3a6f5966552f3fb49a384  libstdc++-v3/include/std/typeindex
  c7f5e5532f97d423c06bfcf8f5e5346f  libstdc++-v3/include/std/unordered_map
  ee4e96cfeb6f951ca642e8d6c4c12ee7  libstdc++-v3/include/std/unordered_set
*************** ad7d8ce6072a5a6ebe5a27824b57cb45  libstd
*** 146573,146579 ****
  1dec6c3f93dee0ae06579da0ab658770  libstdc++-v3/src/libbacktrace/backtrace-supported.h.in
  d80381bdd74336b121a4f087efc21dbb  libstdc++-v3/src/libbacktrace/config.h.in
  efb06dc5ba808eb3515dac6051949361  libstdc++-v3/src/shared/hashtable-aux.cc
! 09685c160e16e6e810877c2870ed09d5  libstdc++-v3/testsuite/17_intro/badnames.cc
  055afa837de9cd4e3803c1884eb2b880  libstdc++-v3/testsuite/17_intro/freestanding.cc
  d5df5ddc3b7c5dba2e687798eaa28551  libstdc++-v3/testsuite/17_intro/headers/c++1998/103650.cc
  4a23e981752e4b496644f3cce030a5f4  libstdc++-v3/testsuite/17_intro/headers/c++1998/49745.cc
--- 146675,146681 ----
  1dec6c3f93dee0ae06579da0ab658770  libstdc++-v3/src/libbacktrace/backtrace-supported.h.in
  d80381bdd74336b121a4f087efc21dbb  libstdc++-v3/src/libbacktrace/config.h.in
  efb06dc5ba808eb3515dac6051949361  libstdc++-v3/src/shared/hashtable-aux.cc
! 0e107d9e9d14591b1df76810201085e3  libstdc++-v3/testsuite/17_intro/badnames.cc
  055afa837de9cd4e3803c1884eb2b880  libstdc++-v3/testsuite/17_intro/freestanding.cc
  d5df5ddc3b7c5dba2e687798eaa28551  libstdc++-v3/testsuite/17_intro/headers/c++1998/103650.cc
  4a23e981752e4b496644f3cce030a5f4  libstdc++-v3/testsuite/17_intro/headers/c++1998/49745.cc
*************** e54d8bde5170276bc314bb62f562e74f  libstd
*** 146599,146605 ****
  5690517690fa69b441af6a1196b8c17c  libstdc++-v3/testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc
  5b5b6629b7cac8c7374d577b37e995e9  libstdc++-v3/testsuite/17_intro/headers/c++2014/parallel_mode.cc
  15a80570bd72c0f9d4acbf4e2a5b3ca2  libstdc++-v3/testsuite/17_intro/headers/c++2017/parallel_mode.cc
! e131523be1d4f77057a8e847374b287a  libstdc++-v3/testsuite/17_intro/names.cc
  d4446489cc9fd961dbc2f15b2b21fca7  libstdc++-v3/testsuite/17_intro/names_fortify.cc
  047ad714f0a1ac010ab86a084dfbeee7  libstdc++-v3/testsuite/17_intro/names_pstl.cc
  441838fc5a4a7a22a784014872e61926  libstdc++-v3/testsuite/17_intro/no_library_allocation.cc
--- 146701,146707 ----
  5690517690fa69b441af6a1196b8c17c  libstdc++-v3/testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc
  5b5b6629b7cac8c7374d577b37e995e9  libstdc++-v3/testsuite/17_intro/headers/c++2014/parallel_mode.cc
  15a80570bd72c0f9d4acbf4e2a5b3ca2  libstdc++-v3/testsuite/17_intro/headers/c++2017/parallel_mode.cc
! 01992034f18f4894ede6da8259fea60e  libstdc++-v3/testsuite/17_intro/names.cc
  d4446489cc9fd961dbc2f15b2b21fca7  libstdc++-v3/testsuite/17_intro/names_fortify.cc
  047ad714f0a1ac010ab86a084dfbeee7  libstdc++-v3/testsuite/17_intro/names_pstl.cc
  441838fc5a4a7a22a784014872e61926  libstdc++-v3/testsuite/17_intro/no_library_allocation.cc
*************** baf5374006e67fa76fb471156542cc8f  libstd
*** 147296,147301 ****
--- 147398,147405 ----
  e6bab8c83483438e3bf29c2ea7c9df3b  libstdc++-v3/testsuite/20_util/function_ref/cons.cc
  3de18ca48e3562cca5c9ed68264b9830  libstdc++-v3/testsuite/20_util/function_ref/cons_neg.cc
  6769087af53b9f703272c8bf23f3c862  libstdc++-v3/testsuite/20_util/function_ref/conv.cc
+ bb4ff9de084c67d00cbe4e09b9bcc759  libstdc++-v3/testsuite/20_util/function_ref/dangling.cc
+ a80798784aec1c674f911d361ed75ef6  libstdc++-v3/testsuite/20_util/function_ref/dangling_neg.cc
  8d565c1d345435d1910a3b47ff3df815  libstdc++-v3/testsuite/20_util/function_ref/deduction.cc
  fe11d1f21c6bd06aa902315e0eb169b2  libstdc++-v3/testsuite/20_util/function_ref/incomplete_neg.cc
  07ac98f7c18f41e232e70b8b3bbe462d  libstdc++-v3/testsuite/20_util/function_ref/mutation.cc
*************** b538aadf524b55ca42ed42fd3f43bca4  libstd
*** 147967,147973 ****
  ddb673b2b9c82839eaa13edc524e0e27  libstdc++-v3/testsuite/20_util/scoped_allocator/69114.cc
  afd439b166a86293dbff5999992fd726  libstdc++-v3/testsuite/20_util/scoped_allocator/69293_neg.cc
  fdcf30a45f45fb6fe21617d7e144e8b4  libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair.cc
! 656226613484259dcff249052905e493  libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc
  4524b72b307064461817896d8c7515df  libstdc++-v3/testsuite/20_util/scoped_allocator/dr2586.cc
  21839fffd9af40409ba70062d85bea69  libstdc++-v3/testsuite/20_util/scoped_allocator/noexcept.cc
  2266426b267ed5244e1186faf5b9f72d  libstdc++-v3/testsuite/20_util/scoped_allocator/outermost.cc
--- 148071,148077 ----
  ddb673b2b9c82839eaa13edc524e0e27  libstdc++-v3/testsuite/20_util/scoped_allocator/69114.cc
  afd439b166a86293dbff5999992fd726  libstdc++-v3/testsuite/20_util/scoped_allocator/69293_neg.cc
  fdcf30a45f45fb6fe21617d7e144e8b4  libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair.cc
! 62c79dd81341c4a7eb9c2eda7c4190c2  libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc
  4524b72b307064461817896d8c7515df  libstdc++-v3/testsuite/20_util/scoped_allocator/dr2586.cc
  21839fffd9af40409ba70062d85bea69  libstdc++-v3/testsuite/20_util/scoped_allocator/noexcept.cc
  2266426b267ed5244e1186faf5b9f72d  libstdc++-v3/testsuite/20_util/scoped_allocator/outermost.cc
*************** e1a28768e5e16de64d41d4eb32794a77  libstd
*** 148233,148238 ****
--- 148337,148343 ----
  d23b1a747046dfeaadefce18d2c02b12  libstdc++-v3/testsuite/20_util/tuple/cons/101960.cc
  187ef5eb9d79f3cb6e7970796ffabd33  libstdc++-v3/testsuite/20_util/tuple/cons/102270.cc
  9a6dc1f9548e126de2581231c632a19f  libstdc++-v3/testsuite/20_util/tuple/cons/114147.cc
+ acc813dd1edb9480437149d28cd4faf0  libstdc++-v3/testsuite/20_util/tuple/cons/121771.cc
  891d2d25eea24f94f1cc6b9d431447d7  libstdc++-v3/testsuite/20_util/tuple/cons/41530.cc
  235e8e262178949b52a2c4e1106b029f  libstdc++-v3/testsuite/20_util/tuple/cons/44487.cc
  a1777c1ca6e6ccbc0dc6a67b203de34a  libstdc++-v3/testsuite/20_util/tuple/cons/45228.cc
*************** ccdfefe02774613802f44fe4ede91740  libstd
*** 148684,148693 ****
--- 148789,148800 ----
  497ab13fca53699fca2e711f471ef9c4  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring.cc
  fecb5f76794dcb7b16941f3d83836e9e  libstdc++-v3/testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring_float.cc
  7c1acacf00d3a9300cac6f06f35ff189  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/1.cc
+ c24c0e6f49ab658726699f1007f123b4  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/123991.cc
  60aa6e40b4c9b784a1628ce2f4ab2791  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/13650.cc
  41ede96f40bfcb69acdb241225f156ea  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/2.cc
  bd5d27b6c1da7f4be96a036ee98cfdc7  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/3.cc
  746c2d1299627900a776859470cc1fd5  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc
+ ec53bc1685fb080b40ba203340985256  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/123991.cc
  dca883d902781bcb941741dd98f61433  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/13650.cc
  8df1c9f133d83095c1735328638079e3  libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc
  c467f10a55978c2749554c22046c5d95  libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/char.cc
*************** b34e1f836c2e9c15a0bb611fed5e31a6  libstd
*** 154194,154200 ****
  a7abcd80901c6251df12c79fc0fb0fee  libstdc++-v3/testsuite/28_regex/traits/char/icase.cc
  19c145a97226f18583bd32fc226fe0f0  libstdc++-v3/testsuite/28_regex/traits/char/isctype.cc
  003496ff03087d6bbd83bd3d29b780ff  libstdc++-v3/testsuite/28_regex/traits/char/length.cc
! 129373bd727b2a0e3b5e5aeef0774195  libstdc++-v3/testsuite/28_regex/traits/char/lookup_classname.cc
  1c357e99493b94730f35e8d50b9f766d  libstdc++-v3/testsuite/28_regex/traits/char/lookup_collatename.cc
  a0a8f935630e3abec0299c8b4f09806b  libstdc++-v3/testsuite/28_regex/traits/char/transform.cc
  dd9326600ed0a500f7e849fe8b56f814  libstdc++-v3/testsuite/28_regex/traits/char/transform_primary.cc
--- 154301,154307 ----
  a7abcd80901c6251df12c79fc0fb0fee  libstdc++-v3/testsuite/28_regex/traits/char/icase.cc
  19c145a97226f18583bd32fc226fe0f0  libstdc++-v3/testsuite/28_regex/traits/char/isctype.cc
  003496ff03087d6bbd83bd3d29b780ff  libstdc++-v3/testsuite/28_regex/traits/char/length.cc
! e44c332a02480481151401cd7629c4d8  libstdc++-v3/testsuite/28_regex/traits/char/lookup_classname.cc
  1c357e99493b94730f35e8d50b9f766d  libstdc++-v3/testsuite/28_regex/traits/char/lookup_collatename.cc
  a0a8f935630e3abec0299c8b4f09806b  libstdc++-v3/testsuite/28_regex/traits/char/transform.cc
  dd9326600ed0a500f7e849fe8b56f814  libstdc++-v3/testsuite/28_regex/traits/char/transform_primary.cc
*************** da0c0c8c0c0ccbd26c40e87978da6c1e  libstd
*** 154205,154211 ****
  01d2e2521090863941c6737f569e517f  libstdc++-v3/testsuite/28_regex/traits/wchar_t/ctor.cc
  ca1ce72f5652cda686944065294a2397  libstdc++-v3/testsuite/28_regex/traits/wchar_t/isctype.cc
  29270addaefac522525bdd9783f9f9d1  libstdc++-v3/testsuite/28_regex/traits/wchar_t/length.cc
! 66d0785c6600fb41b7dd6917bbb556c4  libstdc++-v3/testsuite/28_regex/traits/wchar_t/lookup_classname.cc
  a10c9099f6e16ed951d99cba28acd582  libstdc++-v3/testsuite/28_regex/traits/wchar_t/lookup_collatename.cc
  d615055ae2482a01d4174faecea0d74f  libstdc++-v3/testsuite/28_regex/traits/wchar_t/transform.cc
  7e453a6fc73f3d82433d2e1001db3fac  libstdc++-v3/testsuite/28_regex/traits/wchar_t/transform_primary.cc
--- 154312,154318 ----
  01d2e2521090863941c6737f569e517f  libstdc++-v3/testsuite/28_regex/traits/wchar_t/ctor.cc
  ca1ce72f5652cda686944065294a2397  libstdc++-v3/testsuite/28_regex/traits/wchar_t/isctype.cc
  29270addaefac522525bdd9783f9f9d1  libstdc++-v3/testsuite/28_regex/traits/wchar_t/length.cc
! 848d9589fd5999c3266bd3fa668a7628  libstdc++-v3/testsuite/28_regex/traits/wchar_t/lookup_classname.cc
  a10c9099f6e16ed951d99cba28acd582  libstdc++-v3/testsuite/28_regex/traits/wchar_t/lookup_collatename.cc
  d615055ae2482a01d4174faecea0d74f  libstdc++-v3/testsuite/28_regex/traits/wchar_t/transform.cc
  7e453a6fc73f3d82433d2e1001db3fac  libstdc++-v3/testsuite/28_regex/traits/wchar_t/transform_primary.cc
*************** fbaf0266a8ac9e6e6e0f56731e9c767f  libstd
*** 154223,154229 ****
  d4597c2d2a9d48213958196167f7824b  libstdc++-v3/testsuite/29_atomics/atomic/69769.cc
  66865911f7c57b77d964389ac3022db7  libstdc++-v3/testsuite/29_atomics/atomic/70766.cc
  63350a1cbb29ab67e43b7f49d0ce503d  libstdc++-v3/testsuite/29_atomics/atomic/89624.cc
! ce997c946b9d815d3b58c18b6822f7d2  libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc
  bb3edba6296f96609c727171b522c41c  libstdc++-v3/testsuite/29_atomics/atomic/cons/49445.cc
  f8335b6527363df52eb275583d3d60f7  libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
  a6a306e6273bd1fb4124d807b6a581c3  libstdc++-v3/testsuite/29_atomics/atomic/cons/constexpr.cc
--- 154330,154336 ----
  d4597c2d2a9d48213958196167f7824b  libstdc++-v3/testsuite/29_atomics/atomic/69769.cc
  66865911f7c57b77d964389ac3022db7  libstdc++-v3/testsuite/29_atomics/atomic/70766.cc
  63350a1cbb29ab67e43b7f49d0ce503d  libstdc++-v3/testsuite/29_atomics/atomic/89624.cc
! e20db8e4b74cd8cd87b26cf643e05738  libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc
  bb3edba6296f96609c727171b522c41c  libstdc++-v3/testsuite/29_atomics/atomic/cons/49445.cc
  f8335b6527363df52eb275583d3d60f7  libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
  a6a306e6273bd1fb4124d807b6a581c3  libstdc++-v3/testsuite/29_atomics/atomic/cons/constexpr.cc
*************** f974f6fadf4fc3e716ea96f793a66be8  libstd
*** 154235,154240 ****
--- 154342,154348 ----
  8b7b0b498791a603f2f537f3d5035766  libstdc++-v3/testsuite/29_atomics/atomic/cons/trivial.cc
  1af166c5b6bdcfe858d6133bb80062d3  libstdc++-v3/testsuite/29_atomics/atomic/cons/user_pod.cc
  a05451f608e6909543bc4a6f1e5e6143  libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc
+ 38d8fe523d86112e1ff7bfd079b4068d  libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc
  6ec8c77bd0b9550e1af1efd741f41ded  libstdc++-v3/testsuite/29_atomics/atomic/is_always_lock_free.cc
  f9b2d6d78dc44c7b8285a07ef1cd9521  libstdc++-v3/testsuite/29_atomics/atomic/lock_free_aliases.cc
  e9a010906a14cb93ae31af117674f8f0  libstdc++-v3/testsuite/29_atomics/atomic/lwg3220.cc
*************** c400d0d58ad702f461b28668dc629c09  libstd
*** 155968,155974 ****
  f69347ccb773103796767f24914c4c96  libstdc++-v3/testsuite/std/memory/indirect/access.cc
  720e1b38d222c15f72ac910b92301d4a  libstdc++-v3/testsuite/std/memory/indirect/copy.cc
  82ef6f538e38c654811cb3eda65315df  libstdc++-v3/testsuite/std/memory/indirect/copy_alloc.cc
! c3f537ed6c659624f22adb79a2226fe8  libstdc++-v3/testsuite/std/memory/indirect/ctor.cc
  7cd605544175affb50e32aca7d11e0e5  libstdc++-v3/testsuite/std/memory/indirect/incomplete.cc
  3a2f27b06480e76c264f7c639bb1d676  libstdc++-v3/testsuite/std/memory/indirect/invalid_neg.cc
  598510ad059f80ce1abc9303831df39d  libstdc++-v3/testsuite/std/memory/indirect/move.cc
--- 156076,156082 ----
  f69347ccb773103796767f24914c4c96  libstdc++-v3/testsuite/std/memory/indirect/access.cc
  720e1b38d222c15f72ac910b92301d4a  libstdc++-v3/testsuite/std/memory/indirect/copy.cc
  82ef6f538e38c654811cb3eda65315df  libstdc++-v3/testsuite/std/memory/indirect/copy_alloc.cc
! ae9c170f7a4c33d02f8e1a0b10b1dd28  libstdc++-v3/testsuite/std/memory/indirect/ctor.cc
  7cd605544175affb50e32aca7d11e0e5  libstdc++-v3/testsuite/std/memory/indirect/incomplete.cc
  3a2f27b06480e76c264f7c639bb1d676  libstdc++-v3/testsuite/std/memory/indirect/invalid_neg.cc
  598510ad059f80ce1abc9303831df39d  libstdc++-v3/testsuite/std/memory/indirect/move.cc
*************** f3fe330b6bd5b986270684d1d058fcf4  libstd
*** 155977,155984 ****
  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
! 2dcbb9deaf8b32603925eb18c02dc0cc  libstdc++-v3/testsuite/std/memory/polymorphic/ctor.cc
! 3ab622f7ee189bf76163836c07c007f9  libstdc++-v3/testsuite/std/memory/polymorphic/ctor_poly.cc
  55ac719ef5aacc445ff21a9ba04af7db  libstdc++-v3/testsuite/std/memory/polymorphic/incomplete.cc
  f8c9db32ebd1429bbaf2c1ead8562583  libstdc++-v3/testsuite/std/memory/polymorphic/invalid_neg.cc
  25b0d78575b430455c13bd9f89ac1220  libstdc++-v3/testsuite/std/memory/polymorphic/move.cc
--- 156085,156092 ----
  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
! 0f6f9b063219fc152cc9fc9d2b70b45e  libstdc++-v3/testsuite/std/memory/polymorphic/ctor.cc
! 86a3f71dd3cbd7d50f3e5833e9b475c4  libstdc++-v3/testsuite/std/memory/polymorphic/ctor_poly.cc
  55ac719ef5aacc445ff21a9ba04af7db  libstdc++-v3/testsuite/std/memory/polymorphic/incomplete.cc
  f8c9db32ebd1429bbaf2c1ead8562583  libstdc++-v3/testsuite/std/memory/polymorphic/invalid_neg.cc
  25b0d78575b430455c13bd9f89ac1220  libstdc++-v3/testsuite/std/memory/polymorphic/move.cc
*************** f030a30143a9640ad719d16f68d9bc10  libstd
*** 156892,156898 ****
  54f2a8dfb9fbcdb569726ffbe6370f23  libstdc++-v3/testsuite/util/testsuite_abi.h
  db5d5717075b7e1c4eb267257b1ee418  libstdc++-v3/testsuite/util/testsuite_abi_check.cc
  aac284c59df58716bba32e67d322c2a8  libstdc++-v3/testsuite/util/testsuite_allocator.cc
! 671c00146a18c59863a4ddb05ce6c6c2  libstdc++-v3/testsuite/util/testsuite_allocator.h
  b249d2a4baf04ea5ab1e5432b395b85f  libstdc++-v3/testsuite/util/testsuite_api.h
  ac38738c6b7dd4541f086659557cfcc8  libstdc++-v3/testsuite/util/testsuite_character.cc
  9cbcfd8517660335b43ca0586ca3b309  libstdc++-v3/testsuite/util/testsuite_character.h
--- 157000,157006 ----
  54f2a8dfb9fbcdb569726ffbe6370f23  libstdc++-v3/testsuite/util/testsuite_abi.h
  db5d5717075b7e1c4eb267257b1ee418  libstdc++-v3/testsuite/util/testsuite_abi_check.cc
  aac284c59df58716bba32e67d322c2a8  libstdc++-v3/testsuite/util/testsuite_allocator.cc
! 73d6b9561a6ee5627267f6f043902f4c  libstdc++-v3/testsuite/util/testsuite_allocator.h
  b249d2a4baf04ea5ab1e5432b395b85f  libstdc++-v3/testsuite/util/testsuite_api.h
  ac38738c6b7dd4541f086659557cfcc8  libstdc++-v3/testsuite/util/testsuite_character.cc
  9cbcfd8517660335b43ca0586ca3b309  libstdc++-v3/testsuite/util/testsuite_character.h
diff -Nrcpad gcc-16-20260208/fixincludes/fixincl.x gcc-16-20260215/fixincludes/fixincl.x
*** gcc-16-20260208/fixincludes/fixincl.x	Sun Feb  8 22:32:19 2026
--- gcc-16-20260215/fixincludes/fixincl.x	Sun Feb 15 22:32:17 2026
***************
*** 2,12 ****
   *
   * DO NOT EDIT THIS FILE   (fixincl.x)
   *
!  * It has been AutoGen-ed  January  6, 2026 at 04:43:53 PM by AutoGen 5.18.12
   * From the definitions    inclhack.def
   * and the template file   fixincl
   */
! /* DO NOT MERGE THIS FILE, EITHER Tue Jan  6 16:43:53 CET 2026
   *
   * You must regenerate it.  Use the ./genfixes script.
   *
--- 2,12 ----
   *
   * DO NOT EDIT THIS FILE   (fixincl.x)
   *
!  * It has been AutoGen-ed  February 15, 2026 at 11:11:08 PM by AutoGen 5.18.12
   * From the definitions    inclhack.def
   * and the template file   fixincl
   */
! /* DO NOT MERGE THIS FILE, EITHER Sun Feb 15 23:11:08 CET 2026
   *
   * You must regenerate it.  Use the ./genfixes script.
   *
***************
*** 15,21 ****
   * certain ANSI-incompatible system header files which are fixed to work
   * correctly with ANSI C and placed in a directory that GNU C will search.
   *
!  * This file contains 250 fixup descriptions.
   *
   * See README for more information.
   *
--- 15,21 ----
   * certain ANSI-incompatible system header files which are fixed to work
   * correctly with ANSI C and placed in a directory that GNU C will search.
   *
!  * This file contains 251 fixup descriptions.
   *
   * See README for more information.
   *
*************** static const char* apzSolaris_Int_Limits
*** 7871,7876 ****
--- 7871,7924 ----
  
  /* * * * * * * * * * * * * * * * * * * * * * * * * *
   *
+  *  Description of Solaris_Int8_T fix
+  */
+ tSCC zSolaris_Int8_TName[] =
+      "solaris_int8_t";
+ 
+ /*
+  *  File name selection pattern
+  */
+ tSCC zSolaris_Int8_TList[] =
+   "sys/int_types.h\0";
+ /*
+  *  Machine/OS name selection pattern
+  */
+ tSCC* apzSolaris_Int8_TMachs[] = {
+         "*-*-solaris2*",
+         (const char*)NULL };
+ 
+ /*
+  *  content selection pattern - do fix if pattern found
+  */
+ tSCC zSolaris_Int8_TSelect0[] =
+        "^[ \t]*typedef[ \t]*char[ \t]*int(|_fast|_least)8_t.*";
+ 
+ /*
+  *  content bypass pattern - skip fix if pattern found
+  */
+ tSCC zSolaris_Int8_TBypass0[] =
+        "_LEGACY_INT8_T";
+ 
+ #define    SOLARIS_INT8_T_TEST_CT  2
+ static tTestDesc aSolaris_Int8_TTests[] = {
+   { TT_NEGREP,   zSolaris_Int8_TBypass0, (regex_t*)NULL },
+   { TT_EGREP,    zSolaris_Int8_TSelect0, (regex_t*)NULL }, };
+ 
+ /*
+  *  Fix Command Arguments for Solaris_Int8_T
+  */
+ static const char* apzSolaris_Int8_TPatch[] = {
+     "format",
+     "#if !defined(_LEGACY_INT8_T)\n\
+ typedef signed char int%18_t;\n\
+ #else\n\
+ %0\n\
+ #endif",
+     (char*)NULL };
+ 
+ /* * * * * * * * * * * * * * * * * * * * * * * * * *
+  *
   *  Description of Solaris_Math_12 fix
   */
  tSCC zSolaris_Math_12Name[] =
*************** static const char* apzX11_SprintfPatch[]
*** 10235,10243 ****
   *
   *  List of all fixes
   */
! #define REGEX_COUNT          289
  #define MACH_LIST_SIZE_LIMIT 187
! #define FIX_COUNT            250
  
  /*
   *  Enumerate the fixes
--- 10283,10291 ----
   *
   *  List of all fixes
   */
! #define REGEX_COUNT          291
  #define MACH_LIST_SIZE_LIMIT 187
! #define FIX_COUNT            251
  
  /*
   *  Enumerate the fixes
*************** typedef enum {
*** 10434,10439 ****
--- 10482,10488 ----
      SOLARIS_INT_CONST_FIXIDX,
      SOLARIS_INT_LIMITS_1_FIXIDX,
      SOLARIS_INT_LIMITS_3_FIXIDX,
+     SOLARIS_INT8_T_FIXIDX,
      SOLARIS_MATH_12_FIXIDX,
      SOLARIS_POW_INT_OVERLOAD_FIXIDX,
      STATSSWTCH_FIXIDX,
*************** tFixDesc fixDescList[ FIX_COUNT ] = {
*** 11451,11456 ****
--- 11500,11510 ----
       SOLARIS_INT_LIMITS_3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
       aSolaris_Int_Limits_3Tests,   apzSolaris_Int_Limits_3Patch, 0 },
  
+   {  zSolaris_Int8_TName,    zSolaris_Int8_TList,
+      apzSolaris_Int8_TMachs,
+      SOLARIS_INT8_T_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+      aSolaris_Int8_TTests,   apzSolaris_Int8_TPatch, 0 },
+ 
    {  zSolaris_Math_12Name,    zSolaris_Math_12List,
       apzSolaris_Math_12Machs,
       SOLARIS_MATH_12_TEST_CT, FD_MACH_ONLY,
diff -Nrcpad gcc-16-20260208/fixincludes/inclhack.def gcc-16-20260215/fixincludes/inclhack.def
*** gcc-16-20260208/fixincludes/inclhack.def	Sun Feb  8 22:32:05 2026
--- gcc-16-20260215/fixincludes/inclhack.def	Sun Feb 15 22:32:04 2026
*************** fix = {
*** 3931,3936 ****
--- 3931,3958 ----
  };
  
  /*
+  * Solaris <sys/int_types.h> defines int8_t as char which violates C99.
+  * Same for int_fast8_t and int_least8_t.
+  */
+ fix = {
+     hackname  = solaris_int8_t;
+     files     = sys/int_types.h;
+     mach      = '*-*-solaris2*';
+     bypass    = '_LEGACY_INT8_T';
+     c_fix     = format;
+     c_fix_arg = "#if !defined(_LEGACY_INT8_T)\n"
+                 "typedef signed char int%18_t;\n"
+                 "#else\n"
+                 "%0\n"
+                 "#endif";
+     select    = "^[ \t]*typedef[ \t]*char[ \t]*int(|_fast|_least)8_t.*";
+     test_text =
+     "typedef char int8_t;\n"
+     "typedef char int_fast8_t;\n"
+     "typedef char int_least8_t;";
+ };
+ 
+ /*
   * Some versions of Solaris 10+ <math.h> #undef libstdc++-internal macros.
   */
  fix = {
diff -Nrcpad gcc-16-20260208/fixincludes/tests/base/sys/int_types.h gcc-16-20260215/fixincludes/tests/base/sys/int_types.h
*** gcc-16-20260208/fixincludes/tests/base/sys/int_types.h	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/fixincludes/tests/base/sys/int_types.h	Sun Feb 15 22:32:04 2026
***************
*** 0 ****
--- 1,28 ----
+ /*  DO NOT EDIT THIS FILE.
+ 
+     It has been auto-edited by fixincludes from:
+ 
+ 	"fixinc/tests/inc/sys/int_types.h"
+ 
+     This had to be done to correct non-standard usages in the
+     original, manufacturer supplied header file.  */
+ 
+ 
+ 
+ #if defined( SOLARIS_INT8_T_CHECK )
+ #if !defined(_LEGACY_INT8_T)
+ typedef signed char int8_t;
+ #else
+ typedef char int8_t;
+ #endif
+ #if !defined(_LEGACY_INT8_T)
+ typedef signed char int_fast8_t;
+ #else
+ typedef char int_fast8_t;
+ #endif
+ #if !defined(_LEGACY_INT8_T)
+ typedef signed char int_least8_t;
+ #else
+ typedef char int_least8_t;
+ #endif
+ #endif  /* SOLARIS_INT8_T_CHECK */
diff -Nrcpad gcc-16-20260208/gcc/ChangeLog gcc-16-20260215/gcc/ChangeLog
*** gcc-16-20260208/gcc/ChangeLog	Sun Feb  8 22:32:05 2026
--- gcc-16-20260215/gcc/ChangeLog	Sun Feb 15 22:32:04 2026
***************
*** 1,3 ****
--- 1,320 ----
+ 2026-02-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR cobol/122839
+ 	* doc/install.texi (COBOL-Specific Options): New.
+ 
+ 2026-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* configure.ac <sparc*-*-*> (gcc_cv_as_sparc_gotdata_op): Remove.
+ 	* configure: Regenerate.
+ 	* config.in: Regenerate.
+ 	* config/sparc/sparc.md [!HAVE_AS_SPARC_GOTDATA_OP]: Remove.
+ 
+ 2026-02-14  Kalvis Duckmanton  <kalvisd@gmail.com>
+ 
+ 	PR target/112400
+ 	* config/vax/vax.md (casesi1): Wrap naked operand 1 with a USE
+ 	where used with the insn split to.
+ 	(*casesi1): Likewise naked incoming operand 1.
+ 
+ 2026-02-14  Maciej W. Rozycki  <macro@orcam.me.uk>
+ 
+ 	* config/vax/vax.cc (nonindexed_address_p): Move incoming RTX's
+ 	operand 0 access to the actual use places.
+ 
+ 2026-02-14  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/124086
+ 	* tree-complex.cc (extract_component): Extend the check
+ 	for ssa names for VCE to include invariants.
+ 
+ 2026-02-13  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	* json-parsing.cc (selftest::assert_json_pointer_eq): New.
+ 	(ASSERT_JSON_POINTER_EQ): New.
+ 	(selftest::test_parse_object): Add tests of JSON pointer.
+ 	(selftest::test_pointer_escaping): New test.
+ 	(selftest::json_parser_cc_tests): Call it.
+ 	* json.cc (json::pointer::token::print): New.
+ 	(json::value::print_pointer): New.
+ 	* json.h (json::pointer::token::print): New decl.
+ 	(json::value::print_pointer): New decl.
+ 	* libsarifreplay.cc: Include pretty-print.h.
+ 	(make_logical_location_from_jv): Use
+ 	json::pointer::token::print for short_name.
+ 
+ 2026-02-13  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR rtl-optimization/124079
+ 	* lra-constraints.cc (get_matching_reload_reg_subreg): Add new arg
+ 	rclass.  Use another condition to use lowpart_subreg.  Use lra_constraint_offset
+ 	to calculate the subreg offset.
+ 	(get_reload_reg, match_reload): Pass the new arg.
+ 
+ 2026-02-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/95825
+ 	* tree-ssa-forwprop.cc (optimize_agr_copyprop_return): New function.
+ 	(optimize_agr_copyprop): Call optimize_agr_copyprop_return
+ 	for return statements.
+ 
+ 2026-02-13  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR diagnostics/124014
+ 	* diagnostics/html-sink.cc (html_builder::get_logical_loc_mgr):
+ 	New.
+ 	(html_builder::m_logical_loc_mgr): Drop field.
+ 	(html_builder::html_builder): Drop initialization of
+ 	m_logical_loc_mgr.
+ 	(html_builder::maybe_make_state_diagram): Use get_logical_loc_mgr
+ 	rather than m_logical_loc_mgr.
+ 	(html_builder::make_element_for_diagnostic): Likewise.
+ 
+ 2026-02-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/99959
+ 	* tree-sra.cc (create_access_replacement): Guard DECL_NONLOCAL_FRAME
+ 	access.
+ 
+ 2026-02-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/99959
+ 	* tree-sra.cc (create_access_replacement): Always create
+ 	debug expressions for DECL_NONLOCAL_FRAME bases.
+ 
+ 2026-02-13  Dhruv Chawla  <dhruvc@nvidia.com>
+ 
+ 	* Makefile.in (all.fda): Bump profile_merger gcov_version to 3.
+ 
+ 2026-02-12  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* config/cris/cris.cc (cris_reduce_compare): Add forcing the first
+ 	operand to be a register, unless the second operand is 0, to scope.
+ 	* config/cris/cris.md ("*cstore<mode><code>4")
+ 	("*cbranch<mode><code>4"): Add guards to condition, for either operand
+ 	to be a register unless the last operand is zero.
+ 
+ 2026-02-12  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* config/cris/cris.md (BWDSF): New mode_iterator replacing SISF.
+ 	All callers changed.
+ 	("*movhi_internal<setcc><setnz><setnzvc>"): Anonymized from
+ 	"<acc><anz><anzvc>movhi<setcc><setnz><setnzvc>" to make it a
+ 	match-only pattern.  Add conditions to guard from source and
+ 	destination both being memory operands.
+ 	("*movstricthi_internal", "*movstrictqi_internal"): Similarly
+ 	for "movstricthi" and "movstrictqi".
+ 	("movstrict<mode>"): Add common expander for BW, forcing one operand
+ 	to be a register or source being zero.
+ 
+ 2026-02-12  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	* config/cris/cris.md (SISF): New mode_iterator for SI and SF.
+ 	("mov<mode>"): Make "movsi" a define_expand to include SFmode by
+ 	means of the SISF iterator and adjust to also handle SFmode.
+ 	("*movsf_internal"): Anonymize "movsf"; make it a match-only pattern.
+ 	Add conditions to guard from source and destination both being memory
+ 	operands.
+ 
+ 2026-02-12  Kwok Cheung Yeung  <kcyeung@baylibre.com>
+ 
+ 	PR middle-end/113436
+ 	* omp-low.cc (is_variable_sized): Add extra is_ref argument.  Check
+ 	referenced type if true.
+ 	(lower_omp_target): Call lower_private_allocate to generate code to
+ 	allocate memory for firstprivate/private clauses with allocators, and
+ 	insert code after dependent variables have been initialized.
+ 	Construct calls to free allocate memory and insert after target block.
+ 	Adjust decl values for clause variables.  Copy value of firstprivate
+ 	variables to allocated memory.
+ 
+ 2026-02-12  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR rtl-optimization/124062
+ 	* ifcvt.cc (noce_try_cond_arith): Check the conditional code
+ 	for UNKNOWN.
+ 
+ 2026-02-12  Soumya AR  <soumyaa@nvidia.com>
+ 
+ 	* config/aarch64/aarch64-json-schema.h: Include inherited members for
+ 	SVE vector costs.
+ 	* config/aarch64/aarch64-json-tunings-parser-generated.inc
+ 	(parse_vec_costs_sve): Regenerate.
+ 	* config/aarch64/aarch64-json-tunings-parser.cc
+ 	(aarch64_load_tuning_params_from_json_string): Clear dispatch scheduling
+ 	flag if dispatch_constraints is NULL.
+ 	* config/aarch64/aarch64-json-tunings-printer-generated.inc
+ 	(serialize_vec_costs_sve): Regenerate.
+ 
+ 2026-02-11  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR rtl-optimization/121191
+ 	* lra-constraints.cc (get_matching_reload_reg_subreg): New.
+ 	(get_reload_reg, match_reload): Use it.
+ 
+ 2026-02-11  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/124038
+ 	* tree-ssa-math-opts.cc (strip_nop_view_converts): Remove.
+ 	(convert_mult_to_fma): Undo stripping.
+ 
+ 2026-02-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/124056
+ 	* cfgexpand.cc (expand_asm_stmt): If after_md_seq is non-NULL, emit
+ 	it at the start of after_rtl_seq instead of after fallthru_label.
+ 
+ 2026-02-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/116600
+ 	PR middle-end/123386
+ 	* cfgrtl.cc (force_nonfallthru_and_redirect): Don't do any
+ 	asm goto adjustments early, only note in asm_goto_edge if
+ 	any labels point originally to e->dest head.  After jumpblock
+ 	creation don't add an extra edge for asm_goto_edge, instead
+ 	adjust those labels pointing to former e->dest head to point
+ 	to jumpblock instead.
+ 
+ 2026-02-10  Dimitry Andric  <dimitry@andric.com>
+ 
+ 	PR libfortran/123366
+ 	* configure.ac: Move restoring of CXXFLAGS/LDFLAGS for zstd test to
+ 	the correct place.
+ 	* configure: Regenerate.
+ 
+ 2026-02-10  Alice Carlotti  <alice.carlotti@arm.com>
+ 
+ 	PR target/123624
+ 	* config/aarch64/aarch64-protos.h
+ 	(aarch64_use_simple_return_insn_p): New.
+ 	* config/aarch64/aarch64.cc
+ 	(aarch64_use_simple_return_insn_p): New, used...
+ 	* config/aarch64/aarch64.md (simple_return): ...here.
+ 
+ 2026-02-10  Alice Carlotti  <alice.carlotti@arm.com>
+ 
+ 	* config.gcc: Improve aarch64 --with-arch checks.
+ 
+ 2026-02-10  Alfie Richards  <alfie.richards@arm.com>
+ 
+ 	* tree-vect-data-refs.cc (vect_analyze_data_refs_alignment):
+ 	Update signature and comment.
+ 	* tree-vect-loop.cc (vect_analyze_loop_2): Update comment for
+ 	vect_analyze_data_refs_alignment and remove control flow.
+ 	* tree-vectorizer.h (vect_analyze_data_refs_alignment): Update
+ 	signature.
+ 
+ 2026-02-10  Juergen Christ  <jchrist@linux.ibm.com>
+ 
+ 	PR tree-optimization/122297
+ 	* tree-vect-loop.cc (vectorize_fold_left_reduction): Adjust.
+ 	(vectorizable_induction): Adjust.
+ 	(vectorizable_live_operation_1): Adjust.
+ 	(vect_get_loop_len): Provide parameter to select bias-adjusted
+ 	length.
+ 	(vect_gen_loop_len_mask): Adjust.
+ 	(vect_update_ivs_after_vectorizer_for_early_breaks): Adjust.
+ 	* tree-vect-stmts.cc (vect_get_strided_load_store_ops): Adjust.
+ 	(vectorizable_call): Adjust.
+ 	(vectorizable_operation): Adjust.
+ 	(vectorizable_store): Adjust.
+ 	(vectorizable_load): Adjust.
+ 	(vectorizable_condition): Adjust.
+ 	* tree-vectorizer.h (vect_get_loop_len): Add parameter.
+ 
+ 2026-02-10  Kyrylo Tkachov  <ktkachov@nvidia.com>
+ 
+ 	* config/aarch64/tuning_models/olympus.h (olympus_sve_vector_cost):
+ 	Set align_load_cost to 6.
+ 
+ 2026-02-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/107690
+ 	* tree-ssa-ifcombine.cc (ifcombine_ifandif): Do not merge
+ 	possibly analyzable exit conditions.
+ 
+ 2026-02-09  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR diagnostics/124014
+ 	* diagnostics/sarif-sink.cc
+ 	(sarif_builder::get_logical_location_manager): Reimplement, to
+ 	eliminate m_logical_loc_mgr.
+ 	(sarif_builder::m_logical_loc_mgr): Drop field.
+ 	(sarif_builder::sarif_builder): Update for removed field.
+ 	(sarif_builder::set_any_logical_locs_arr): Likewise.
+ 	(sarif_builder::ensure_sarif_logical_location_for): Likewise.
+ 	(sarif_builder::make_minimal_sarif_logical_location): Likewise.
+ 
+ 2026-02-09  David Faust  <david.faust@oracle.com>
+ 
+ 	PR target/123556
+ 	* config/bpf/bpf.h (SLOW_BYTE_ACCESS): Set to 0, update comment.
+ 
+ 2026-02-09  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR target/80881
+ 	* attribs.cc (handle_dll_attribute): If TARGET_WIN32_TLS is 1,
+ 	issue an error if either attribute is set on a TLS variable.
+ 
+ 2026-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	PR other/123841
+ 	PR target/123926
+ 	* acinclude.m4 (gcc_GAS_FLAGS): Handle non-Darwin/Solaris as cases
+ 	alike on x86 and SPARC.
+ 	* configure: Regenerate.
+ 
+ 2026-02-09  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR rtl-optimization/123796
+ 	* lra-int.h (lra_pointer_equiv_set_add): Add prototype.
+ 	(lra_pointer_equiv_set_in, lra_finish_equiv): Ditto.
+ 	* lra.cc (lra_emit_move): Set up pointer flag of the destination
+ 	if necessary.
+ 	(lra): Call lra_finish_equiv.
+ 	* lra-constraints.cc: Include hash-set.h.
+ 	(pointer_equiv_set, lra_pointer_equiv_set_add): New.
+ 	(lra_pointer_equiv_set_in, lra_finish_equiv): New.
+ 	(get_equiv_with_elimination): Propagate pointer flag by adding to
+ 	pointer_equiv_set.
+ 	(process_addr_reg, curr_insn_transform): Ditto.
+ 
+ 2026-02-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	* doc/analyzer.texi (State Tracking): Fix typo.
+ 
+ 2026-02-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/123225
+ 	* tree-vect-loop.cc (vect_analyze_loop_costing): For uncounted
+ 	loops reject not trivially profitable loops that have no
+ 	estimate on the number of scalar iterations.
+ 
+ 2026-02-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124034
+ 	* tree-vect-stmts.cc (process_use): Never force induction
+ 	latch defs relevant when doing early break vectorization.
+ 
+ 2026-02-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
+ 
+ 	* doc/invoke.texi (-mconst16/-mno-const16):
+ 	Remove the clause "The CONST16 instruction is currently not a
+ 	standard option from Tensilica."
+ 
+ 2026-02-09  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR tree-optimization/117217
+ 	* tree-sra.cc (propagate_subaccesses_from_rhs): Do not propagate
+ 	bit-field children.
+ 	(propagate_subaccesses_from_lhs): Likewise.
+ 
+ 2026-02-09  Jeff Law  <jeffrey.law@oss.qualcomm.com>
+ 
+ 	PR target/123911
+ 	* config/riscv/riscv.cc (riscv_legitimize_move): Elide nop moves to
+ 	avoid infinite recursion.
+ 
  2026-02-07  Jakub Jelinek  <jakub@redhat.com>
  
  	PR tree-optimization/123672
diff -Nrcpad gcc-16-20260208/gcc/DATESTAMP gcc-16-20260215/gcc/DATESTAMP
*** gcc-16-20260208/gcc/DATESTAMP	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/DATESTAMP	Sun Feb 15 22:32:05 2026
***************
*** 1 ****
! 20260208
--- 1 ----
! 20260215
diff -Nrcpad gcc-16-20260208/gcc/Makefile.in gcc-16-20260215/gcc/Makefile.in
*** gcc-16-20260208/gcc/Makefile.in	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/Makefile.in	Sun Feb 15 22:32:05 2026
*************** paranoia: paranoia.o real.o $(LIBIBERTY)
*** 4818,4824 ****
  	g++ -o $@ paranoia.o real.o $(LIBIBERTY)
  
  all.fda: $(ALL_FDAS)
! 	$(PROFILE_MERGER) $(ALL_FDAS) --output_file all.fda -gcov_version 2
  
  # These exist for maintenance purposes.
  
--- 4818,4824 ----
  	g++ -o $@ paranoia.o real.o $(LIBIBERTY)
  
  all.fda: $(ALL_FDAS)
! 	$(PROFILE_MERGER) $(ALL_FDAS) --output_file all.fda -gcov_version 3
  
  # These exist for maintenance purposes.
  
diff -Nrcpad gcc-16-20260208/gcc/acinclude.m4 gcc-16-20260215/gcc/acinclude.m4
*** gcc-16-20260208/gcc/acinclude.m4	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/acinclude.m4	Sun Feb 15 22:32:05 2026
*************** AC_DEFUN([gcc_GAS_FLAGS],
*** 493,499 ****
      esac
      ;;
    *-*-solaris2*:no)
!     dnl Override the default, which may be incompatible.
      case "$target" in
        i?86-*-* | sparc-*-*)
  	gcc_cv_as_flags=-m32
--- 493,499 ----
      esac
      ;;
    *-*-solaris2*:no)
!     dnl Solaris with the native assembler uses -m32/-m64 consistently.
      case "$target" in
        i?86-*-* | sparc-*-*)
  	gcc_cv_as_flags=-m32
*************** AC_DEFUN([gcc_GAS_FLAGS],
*** 505,520 ****
      as_32_opt=-m32
      as_64_opt=-m64
      ;;
!   i?86-*-*:* | x86_64-*-*:* )
!     dnl Override the default, which may be incompatible.
      case "$target" in
!       i?86-*-*)
  	gcc_cv_as_flags=--32
  	;;
        x86_64-*-linux-gnux32*)
  	gcc_cv_as_flags=--x32
  	;;
!       x86_64-*-linux*)
  	gcc_cv_as_flags=--64
  	;;
      esac
--- 505,520 ----
      as_32_opt=-m32
      as_64_opt=-m64
      ;;
!   i?86-*-*:* | x86_64-*-*:* | sparc*-*-*:*)
!     dnl Otherwise x86 and SPARC use GNU assembler options --32/--64/--x32.
      case "$target" in
!       i?86-*-* | sparc-*-*)
  	gcc_cv_as_flags=--32
  	;;
        x86_64-*-linux-gnux32*)
  	gcc_cv_as_flags=--x32
  	;;
!       x86_64-*-* | sparcv9-*-* | sparc64-*-*)
  	gcc_cv_as_flags=--64
  	;;
      esac
diff -Nrcpad gcc-16-20260208/gcc/ada/ChangeLog gcc-16-20260215/gcc/ada/ChangeLog
*** gcc-16-20260208/gcc/ada/ChangeLog	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/ada/ChangeLog	Sun Feb 15 22:32:05 2026
***************
*** 1,3 ****
--- 1,48 ----
+ 2026-02-11  Steve Baird  <baird@adacore.com>
+ 
+ 	PR ada/124016
+ 	* doc/gnat_rm/implementation_defined_attributes.rst: Document
+ 	that Finalization_Size attribute is defined for class-wide types.
+ 	* exp_attr.adb (Expand_N_Attribute_Reference) <Finalization_Size>:
+ 	Add support for class-wide types.
+ 	<Size>: Raise Constraint_Error for class-wide types.
+ 	* exp_imgv.adb (Expand_Image_Attribute): Adjust call to renaming.
+ 	(Expand_Wide_Image_Attribute): Likewise.
+ 	(Expand_Wide_Wide_Image_Attribute): Likewise.
+ 	* sem_attr.ads (Finalization_Size): Update comment.
+ 	* sem_attr.adb (Analyze_Image): Adjust call to renaming.
+ 	(Analyze_Attribute): Remove check disallowing Finalization_Size
+ 	attribute for class-wide types.
+ 	* sem_util.ads (Is_Object_Image): Rename into...
+ 	(Is_Object_Prefix): ...this.
+ 	* sem_util.adb (Is_Object_Image): Rename into...
+ 	(Is_Object_Prefix): ...this.
+ 	* libgnat/a-cbinho.ads (Extra_Storage): Use Descriptor_Size and
+ 	Finalization_Size attributes.
+ 	(Max_Allocation_Overhead_In_Storage_Elements): Delete.
+ 
+ 2026-02-11  Eric Botcazou  <ebotcazou@adacore.com>
+ 	    Liam Powell  <liam@liampwll.com>
+ 
+ 	PR ada/124054
+ 	* exp_util.adb (Build_Allocate_Deallocate_Proc): Tidy up and pass
+ 	Proc_Id as the new scope in the call to the New_Copy_Tree function.
+ 
+ 2026-02-08  Eric Botcazou  <ebotcazou@adacore.com>
+ 	    Liam Powell  <liam@liampwll.com>
+ 
+ 	PR ada/124025
+ 	* exp_ch9.adb (Expand_Entry_Barrier.Is_Global_Entity): Use
+ 	Scope_Within_Or_Same to test whether the object is local.
+ 
+ 2026-02-08  Eric Botcazou  <ebotcazou@adacore.com>
+ 	    Liam Powell  <liam@liampwll.com>
+ 
+ 	PR ada/121576
+ 	* freeze.adb (Freeze_Array_Type): When the component size is
+ 	specified, check that it is valid when the component type is
+ 	either a fixed-point type or a bit-packed array type.
+ 
  2026-02-03  Eric Botcazou  <ebotcazou@adacore.com>
  
  	* checks.adb (Apply_Discriminant_Check): Bail out for a source type
diff -Nrcpad gcc-16-20260208/gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst gcc-16-20260215/gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst
*** gcc-16-20260208/gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst	Sun Feb 15 22:32:05 2026
*************** Attribute Finalization_Size
*** 416,428 ****
  .. index:: Finalization_Size
  
  The prefix of attribute ``Finalization_Size`` must be an object or
! a non-class-wide type. This attribute returns the size of any hidden data
  reserved by the compiler to handle finalization-related actions. The type of
  the attribute is *universal_integer*.
  
  ``Finalization_Size`` yields a value of zero for a type with no controlled
  parts, an object whose type has no controlled parts, or an object of a
  class-wide type whose tag denotes a type with no controlled parts.
  
  Note that only heap-allocated objects contain finalization data.
  
--- 416,430 ----
  .. index:: Finalization_Size
  
  The prefix of attribute ``Finalization_Size`` must be an object or
! a type. This attribute returns the size of any hidden data
  reserved by the compiler to handle finalization-related actions. The type of
  the attribute is *universal_integer*.
  
  ``Finalization_Size`` yields a value of zero for a type with no controlled
  parts, an object whose type has no controlled parts, or an object of a
  class-wide type whose tag denotes a type with no controlled parts.
+ For a class-wide type, ``Finalization_Size`` yields a non-zero value except
+ if a No_Finalization restriction is in effect, in which case it yields zero.
  
  Note that only heap-allocated objects contain finalization data.
  
diff -Nrcpad gcc-16-20260208/gcc/ada/exp_attr.adb gcc-16-20260215/gcc/ada/exp_attr.adb
*** gcc-16-20260208/gcc/ada/exp_attr.adb	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/ada/exp_attr.adb	Sun Feb 15 22:32:05 2026
*************** with Debug;          use Debug;
*** 30,35 ****
--- 30,36 ----
  with Einfo.Entities; use Einfo.Entities;
  with Einfo.Utils;    use Einfo.Utils;
  with Elists;         use Elists;
+ with Errout;         use Errout;
  with Exp_Atag;       use Exp_Atag;
  with Exp_Ch3;        use Exp_Ch3;
  with Exp_Ch6;        use Exp_Ch6;
*************** package body Exp_Attr is
*** 4050,4056 ****
           --
           --  and the attribute reference is replaced with a reference to Size.
  
!          elsif Is_Class_Wide_Type (Ptyp) then
              Size := Make_Temporary (Loc, 'S');
  
              Insert_Actions (N, New_List (
--- 4051,4057 ----
           --
           --  and the attribute reference is replaced with a reference to Size.
  
!          elsif Is_Class_Wide_Type (Ptyp) and then Is_Object_Prefix (Pref) then
              Size := Make_Temporary (Loc, 'S');
  
              Insert_Actions (N, New_List (
*************** package body Exp_Attr is
*** 7342,7355 ****
                 end if;
              end if;
  
!             --  If the prefix is X'Class, transform it into a direct reference
!             --  to the class-wide type, because the back end must not see a
!             --  'Class reference.
  
              if Is_Entity_Name (Pref)
                and then Is_Class_Wide_Type (Entity (Pref))
              then
!                Rewrite (Prefix (N), New_Occurrence_Of (Entity (Pref), Loc));
                 return;
  
              --  For X'Size applied to an object of a class-wide type, transform
--- 7343,7367 ----
                 end if;
              end if;
  
!             --  If the prefix is X'Class, transform it into a
!             --  raise of Constraint_Error.
  
              if Is_Entity_Name (Pref)
                and then Is_Class_Wide_Type (Entity (Pref))
              then
!                pragma Assert (not Is_Mutably_Tagged_Type (Entity (Pref)));
!                --  In the Mutably_Tagged_Case, this attribute reference
!                --  should have been transformed into an integer literal
!                --  (in Eval_Attribute) before we get here.
!                --  If this assertion ever fails, the thing to do here
!                --  is generate a literal equal to the specified
!                --  T'Size'Class [sic] aspect value.
! 
!                Error_Msg_N
!                  ("Constraint_Error will be raised at run time??", N);
!                Rewrite (N, Make_Raise_Constraint_Error
!                              (Loc, Reason => CE_Range_Check_Failed));
!                Set_Etype (N, Etype (Original_Node (N)));
                 return;
  
              --  For X'Size applied to an object of a class-wide type, transform
diff -Nrcpad gcc-16-20260208/gcc/ada/exp_ch9.adb gcc-16-20260215/gcc/ada/exp_ch9.adb
*** gcc-16-20260208/gcc/ada/exp_ch9.adb	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/ada/exp_ch9.adb	Sun Feb 15 22:32:05 2026
*************** package body Exp_Ch9 is
*** 5596,5602 ****
                 --  during expansion, it is ok. If expansion is not performed,
                 --  then Func is Empty so this test cannot succeed.
  
!                if Scope (E) = Func_Id then
                    null;
  
                 --  A protected call from a barrier to another object is ok
--- 5596,5602 ----
                 --  during expansion, it is ok. If expansion is not performed,
                 --  then Func is Empty so this test cannot succeed.
  
!                if Scope_Within_Or_Same (S, Func_Id) then
                    null;
  
                 --  A protected call from a barrier to another object is ok
diff -Nrcpad gcc-16-20260208/gcc/ada/exp_imgv.adb gcc-16-20260215/gcc/ada/exp_imgv.adb
*** gcc-16-20260208/gcc/ada/exp_imgv.adb	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/ada/exp_imgv.adb	Sun Feb 15 22:32:05 2026
*************** package body Exp_Imgv is
*** 1042,1048 ****
     --  Start of processing for Expand_Image_Attribute
  
     begin
!       if Is_Object_Image (Pref) then
           Rewrite_Object_Image (N, Pref, Name_Image, Standard_String);
           return;
        end if;
--- 1042,1048 ----
     --  Start of processing for Expand_Image_Attribute
  
     begin
!       if Is_Object_Prefix (Pref) then
           Rewrite_Object_Image (N, Pref, Name_Image, Standard_String);
           return;
        end if;
*************** package body Exp_Imgv is
*** 1856,1862 ****
        Rtyp : Entity_Id;
  
     begin
!       if Is_Object_Image (Pref) then
           Rewrite_Object_Image (N, Pref, Name_Wide_Image, Standard_Wide_String);
           return;
        end if;
--- 1856,1862 ----
        Rtyp : Entity_Id;
  
     begin
!       if Is_Object_Prefix (Pref) then
           Rewrite_Object_Image (N, Pref, Name_Wide_Image, Standard_Wide_String);
           return;
        end if;
*************** package body Exp_Imgv is
*** 1965,1971 ****
        Rtyp : Entity_Id;
  
     begin
!       if Is_Object_Image (Pref) then
           Rewrite_Object_Image
             (N, Pref, Name_Wide_Wide_Image, Standard_Wide_Wide_String);
           return;
--- 1965,1971 ----
        Rtyp : Entity_Id;
  
     begin
!       if Is_Object_Prefix (Pref) then
           Rewrite_Object_Image
             (N, Pref, Name_Wide_Wide_Image, Standard_Wide_Wide_String);
           return;
diff -Nrcpad gcc-16-20260208/gcc/ada/exp_util.adb gcc-16-20260215/gcc/ada/exp_util.adb
*** gcc-16-20260208/gcc/ada/exp_util.adb	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/ada/exp_util.adb	Sun Feb 15 22:32:05 2026
*************** package body Exp_Util is
*** 987,1009 ****
           Size_Id : constant Entity_Id := Make_Temporary (Loc, 'S');
  
           Actuals      : List_Id;
!          Alloc_Expr   : Node_Id := Empty;
           Fin_Coll_Id  : Entity_Id;
           Proc_To_Call : Entity_Id;
           Ptr_Coll_Id  : Entity_Id;
!          Subpool      : Node_Id := Empty;
  
        begin
!          --  When we are building an allocator procedure, extract the allocator
!          --  node for later processing and calculation of alignment.
! 
!          if Is_Allocate then
!             --  Extract the qualified expression if there is one from the
!             --  allocator.
  
!             if Nkind (Expression (Expr)) = N_Qualified_Expression then
!                Alloc_Expr := Expression (Expr);
!             end if;
           end if;
  
           --  Step 1: Construct all the actuals for the call to library routine
--- 987,1008 ----
           Size_Id : constant Entity_Id := Make_Temporary (Loc, 'S');
  
           Actuals      : List_Id;
!          Alloc_Expr   : Node_Id;
           Fin_Coll_Id  : Entity_Id;
           Proc_To_Call : Entity_Id;
           Ptr_Coll_Id  : Entity_Id;
!          Subpool      : Node_Id;
  
        begin
!          --  When we are building an allocator procedure, extract the qualified
!          --  expression from the allocator if there is one.
  
!          if Is_Allocate
!            and then Nkind (Expression (Expr)) = N_Qualified_Expression
!          then
!             Alloc_Expr := Expression (Expr);
!          else
!             Alloc_Expr := Empty;
           end if;
  
           --  Step 1: Construct all the actuals for the call to library routine
*************** package body Exp_Util is
*** 1017,1031 ****
  
              --  b) Subpool
  
!             if Nkind (Expr) = N_Allocator then
!                Subpool := Subpool_Handle_Name (Expr);
!             end if;
  
              --  If a subpool is present it can be an arbitrary name, so make
              --  the actual by copying the tree.
  
              if Present (Subpool) then
!                Append_To (Actuals, New_Copy_Tree (Subpool, New_Sloc => Loc));
              else
                 Append_To (Actuals, Make_Null (Loc));
              end if;
--- 1016,1029 ----
  
              --  b) Subpool
  
!             Subpool := Subpool_Handle_Name (Expr);
  
              --  If a subpool is present it can be an arbitrary name, so make
              --  the actual by copying the tree.
  
              if Present (Subpool) then
!                Append_To
!                  (Actuals, New_Copy_Tree (Subpool, New_Scope => Proc_Id));
              else
                 Append_To (Actuals, Make_Null (Loc));
              end if;
diff -Nrcpad gcc-16-20260208/gcc/ada/freeze.adb gcc-16-20260215/gcc/ada/freeze.adb
*** gcc-16-20260208/gcc/ada/freeze.adb	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/ada/freeze.adb	Sun Feb 15 22:32:05 2026
*************** package body Freeze is
*** 3645,3650 ****
--- 3645,3653 ----
           Clause : Node_Id;
           --  Set to Component_Size clause or Atomic pragma, if any
  
+          Junk : Boolean;
+          pragma Warnings (Off, Junk);
+ 
           Non_Standard_Enum : Boolean := False;
           --  Set true if any of the index types is an enumeration type with a
           --  non-standard representation.
*************** package body Freeze is
*** 3793,3798 ****
--- 3796,3816 ----
                    then
                       Complain_CS ("independent", Min => True);
                    end if;
+ 
+                   --  If the component is of a fixed-point type, we must check
+                   --  the size. This is not done until the freeze point since,
+                   --  for fixed-point types, we do not know the size until the
+                   --  type is frozen. Likewise for a bit-packed array type.
+ 
+                   if Is_Fixed_Point_Type (Ctyp)
+                     or else Is_Bit_Packed_Array (Ctyp)
+                   then
+                      Clause :=
+                        Get_Attribute_Definition_Clause
+                          (FS, Attribute_Component_Size);
+                      Check_Size
+                        (Expression (Clause), Ctyp, Component_Size (Arr), Junk);
+                   end if;
                 end CS_Check;
  
              --  Check for Aliased or Atomic or Full Access or Independent
diff -Nrcpad gcc-16-20260208/gcc/ada/libgnat/a-cbinho.ads gcc-16-20260215/gcc/ada/libgnat/a-cbinho.ads
*** gcc-16-20260208/gcc/ada/libgnat/a-cbinho.ads	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/ada/libgnat/a-cbinho.ads	Sun Feb 15 22:32:05 2026
*************** private
*** 173,183 ****
         Storage_Count'Max (System.Address'Alignment,
           Element_Type'Alignment));
  
-    --  Convert Element_Type'Size from bits to bytes, rounding up
-    Element_Size_In_Storage_Elements : constant Long_Integer :=
-      Long_Integer ((Element_Type'Size / System.Storage_Unit) +
-        Boolean'Pos (Element_Type'Size mod System.Storage_Unit /= 0));
- 
     --  An upper bound on additional storage required for an allocator for data
     --  other than the allocated object itself. This includes things like
     --  array bounds (if Element_Type is an unconstrained array subtype),
--- 173,178 ----
*************** private
*** 187,224 ****
     --  overhead except for aforementioned possibility of an alignment-related
     --  gap between some prefix data and the object itself.
  
-    pragma Warnings (Off); -- avoid warnings for exceptions raised in dead code
- 
-    function Max_Allocation_Overhead_In_Storage_Elements return Storage_Count is
-      (if Element_Size_In_Storage_Elements >= Long_Integer (Integer'Last) then
-          --  If the more precise computation in the else-arm (below) could
-          --  overflow or return the wrong answer then return a guess.
-          --  We get a multiplier of 6 by adding 2 for finalization-linkage
-          --  and 4 for array bounds. If we have an unconstrained array subtype
-          --  with a controlled element type and with multiple dimensions each
-          --  indexed by Long_Long_Integer, then this guess could be too small.
-          System.Address'Max_Size_In_Storage_Elements * 6
-       else
-          Storage_Count (Element_Type'Max_Size_In_Storage_Elements -
-            Element_Size_In_Storage_Elements));
-    --
-    --  ???  It would be helpful if GNAT provided this value as an attribute so
-    --  that we would not have to deal with the "huge" case here. Instead, we
-    --  use a very imprecise "hugeness" test; in the "huge" case, we return an
-    --  estimate. If the estimate turns out to be too small, then it is
-    --  possible for the size check in Allocate_From_Subpool to fail even
-    --  though the earlier (earlier at run-time) size check in Replace_Element
-    --  passed. A GNAT-defined attribute could eliminate this issue.
- 
-    pragma Warnings (On);
- 
     --  Compute extra amount needed for space requested for an allocator
     --  (specifically, in a call to Allocate_From_Subpool) in addition to
     --  the space required for the allocated object itself.
     Extra_Storage : constant Storage_Count :=
       Holder_Subpool'Max_Size_In_Storage_Elements +
       Worst_Case_Alignment * 2 +
!      Max_Allocation_Overhead_In_Storage_Elements;
  
     subtype Bound_Range is Storage_Count range
       0 ..  Max_Element_Size_In_Storage_Elements + Extra_Storage;
--- 182,195 ----
     --  overhead except for aforementioned possibility of an alignment-related
     --  gap between some prefix data and the object itself.
  
     --  Compute extra amount needed for space requested for an allocator
     --  (specifically, in a call to Allocate_From_Subpool) in addition to
     --  the space required for the allocated object itself.
     Extra_Storage : constant Storage_Count :=
       Holder_Subpool'Max_Size_In_Storage_Elements +
       Worst_Case_Alignment * 2 +
!      (Element_Type'Descriptor_Size / System.Storage_Unit) +
!      (Element_Type'Finalization_Size / System.Storage_Unit);
  
     subtype Bound_Range is Storage_Count range
       0 ..  Max_Element_Size_In_Storage_Elements + Extra_Storage;
diff -Nrcpad gcc-16-20260208/gcc/ada/sem_attr.adb gcc-16-20260215/gcc/ada/sem_attr.adb
*** gcc-16-20260208/gcc/ada/sem_attr.adb	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/ada/sem_attr.adb	Sun Feb 15 22:32:05 2026
*************** package body Sem_Attr is
*** 1575,1581 ****
           --  scalar types, so that the prefix can be an object, a named value,
           --  or a type. If the prefix is an object, there is no argument.
  
!          if Is_Object_Image (P) then
              Check_E0;
              Set_Etype (N, Str_Typ);
              Check_Image_Type (Etype (P));
--- 1575,1581 ----
           --  scalar types, so that the prefix can be an object, a named value,
           --  or a type. If the prefix is an object, there is no argument.
  
!          if Is_Object_Prefix (P) then
              Check_E0;
              Set_Etype (N, Str_Typ);
              Check_Image_Type (Etype (P));
*************** package body Sem_Attr is
*** 4418,4432 ****
              Check_Type;
              Check_Not_Incomplete_Type;
  
-             --  Attribute 'Finalization_Size is not defined for class-wide
-             --  types because it is not possible to know statically whether
-             --  a definite type will have controlled components or not.
- 
-             if Is_Class_Wide_Type (Etype (P)) then
-                Error_Attr_P
-                  ("prefix of % attribute cannot denote a class-wide type");
-             end if;
- 
           --  The prefix denotes an illegal construct
  
           else
--- 4418,4423 ----
diff -Nrcpad gcc-16-20260208/gcc/ada/sem_attr.ads gcc-16-20260215/gcc/ada/sem_attr.ads
*** gcc-16-20260208/gcc/ada/sem_attr.ads	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/ada/sem_attr.ads	Sun Feb 15 22:32:05 2026
*************** package Sem_Attr is
*** 217,226 ****
        -----------------------
  
        Attribute_Finalization_Size => True,
!       --  For every object or non-class-wide-type, Finalization_Size returns
!       --  the size of the hidden header used for finalization purposes as if
        --  the object or type was allocated on the heap. The size of the header
        --  does take into account any extra padding due to alignment issues.
  
        -----------------
        -- Fixed_Value --
--- 217,227 ----
        -----------------------
  
        Attribute_Finalization_Size => True,
!       --  For every object or type, Finalization_Size returns the (possibly
!       --  zero) size of the hidden header used for finalization purposes as if
        --  the object or type was allocated on the heap. The size of the header
        --  does take into account any extra padding due to alignment issues.
+       --  See Sem_Util.Needs_Finalization for treatment of class-wide types.
  
        -----------------
        -- Fixed_Value --
diff -Nrcpad gcc-16-20260208/gcc/ada/sem_util.adb gcc-16-20260215/gcc/ada/sem_util.adb
*** gcc-16-20260208/gcc/ada/sem_util.adb	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/ada/sem_util.adb	Sun Feb 15 22:32:05 2026
*************** package body Sem_Util is
*** 19849,19859 ****
        end case;
     end Is_Null_Record_Type;
  
!    ---------------------
!    -- Is_Object_Image --
!    ---------------------
  
!    function Is_Object_Image (Prefix : Node_Id) return Boolean is
     begin
        --  Here we test for the case that the prefix is not a type and assume
        --  if it is not then it must be a named value or an object reference.
--- 19849,19859 ----
        end case;
     end Is_Null_Record_Type;
  
!    ----------------------
!    -- Is_Object_Prefix --
!    ----------------------
  
!    function Is_Object_Prefix (Prefix : Node_Id) return Boolean is
     begin
        --  Here we test for the case that the prefix is not a type and assume
        --  if it is not then it must be a named value or an object reference.
*************** package body Sem_Util is
*** 19863,19869 ****
        return not (Is_Entity_Name (Prefix)
                    and then Is_Type (Entity (Prefix))
                    and then not Is_Current_Instance (Prefix));
!    end Is_Object_Image;
  
     -------------------------
     -- Is_Object_Reference --
--- 19863,19869 ----
        return not (Is_Entity_Name (Prefix)
                    and then Is_Type (Entity (Prefix))
                    and then not Is_Current_Instance (Prefix));
!    end Is_Object_Prefix;
  
     -------------------------
     -- Is_Object_Reference --
diff -Nrcpad gcc-16-20260208/gcc/ada/sem_util.ads gcc-16-20260215/gcc/ada/sem_util.ads
*** gcc-16-20260208/gcc/ada/sem_util.ads	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/ada/sem_util.ads	Sun Feb 15 22:32:05 2026
*************** package Sem_Util is
*** 2350,2358 ****
     --  (with a null extension if tagged). Returns True for interface types,
     --  False for discriminated types.
  
!    function Is_Object_Image (Prefix : Node_Id) return Boolean;
!    --  Returns True if an 'Img, 'Image, 'Wide_Image, or 'Wide_Wide_Image
!    --  attribute is applied to an object.
  
     function Is_Object_Reference (N : Node_Id) return Boolean;
     --  Determines if the tree referenced by N represents an object. Both
--- 2350,2360 ----
     --  (with a null extension if tagged). Returns True for interface types,
     --  False for discriminated types.
  
!    function Is_Object_Prefix (Prefix : Node_Id) return Boolean;
!    --  Returns True if the given prefix of an attribute reference denotes
!    --  an object. Useful for attributes such as 'Img, 'Image, 'Wide_Image,
!    --  or 'Wide_Wide_Image, where the prefix may denote either an object or
!    --  a type/subtype.
  
     function Is_Object_Reference (N : Node_Id) return Boolean;
     --  Determines if the tree referenced by N represents an object. Both
diff -Nrcpad gcc-16-20260208/gcc/algol68/ChangeLog gcc-16-20260215/gcc/algol68/ChangeLog
*** gcc-16-20260208/gcc/algol68/ChangeLog	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/algol68/ChangeLog	Sun Feb 15 22:32:05 2026
***************
*** 1,3 ****
--- 1,33 ----
+ 2026-02-12  James Bohl  <bohlj47@gmail.com>
+ 
+ 	PR algol68/124049
+ 	* Make-lang.in (ALGOL68_OBJS): Add algol68/a68-moids-sorting.o.
+ 	* a68.h: Add prototype for a68_sort_union_packs.
+ 	* a68-moids-sorting.cc: New file.
+ 	* a68-parser-modes.cc (a68_make_moid_list): Call a68_sort_union_packs.
+ 	* ga68-exports.pk (ga68_mode_64): Add comment on union mode ordering.
+ 
+ 2026-02-11  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* ga68-coding-guidelines.texi (Enquiry clauses): New section.
+ 
+ 2026-02-10  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* a68-low-units.cc (a68_lower_formal_hole): Call
+ 	a68_wrap_formal_proc_hole after a68_add_decl.
+ 
+ 2026-02-09  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	PR algol68/124028
+ 	* a68-low-bits.cc (a68_bits_shift): Avoid uninitialized save_expr.
+ 
+ 2026-02-09  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* a68-low-holes.cc (a68_wrap_formal_proc_hole): The wrapper is not
+ 	a top-level function.
+ 	* a68-low-units.cc (a68_lower_formal_hole): Reorder code and
+ 	remove spurious comment.
+ 
  2026-02-06  Jose E. Marchesi  <jemarch@gnu.org>
  
  	* a68-low-units.cc (a68_lower_denotation): Fix call to
diff -Nrcpad gcc-16-20260208/gcc/algol68/Make-lang.in gcc-16-20260215/gcc/algol68/Make-lang.in
*** gcc-16-20260208/gcc/algol68/Make-lang.in	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/algol68/Make-lang.in	Sun Feb 15 22:32:05 2026
*************** ALGOL68_OBJS = algol68/a68-lang.o \
*** 61,66 ****
--- 61,67 ----
                 algol68/a68-unistr.o \
                 algol68/a68-moids-diagnostics.o \
                 algol68/a68-moids-misc.o \
+                algol68/a68-moids-sorting.o \
                 algol68/a68-moids-to-string.o \
                 algol68/a68-postulates.o \
                 algol68/a68-diagnostics.o \
diff -Nrcpad gcc-16-20260208/gcc/algol68/a68-low-bits.cc gcc-16-20260215/gcc/algol68/a68-low-bits.cc
*** gcc-16-20260208/gcc/algol68/a68-low-bits.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/algol68/a68-low-bits.cc	Sun Feb 15 22:32:05 2026
*************** a68_bits_shift (NODE_T *p, tree shift, t
*** 283,294 ****
  						shift, build_zero_cst (shift_type)),
  				   shifted_right, shifted_left);
  
!   return fold_build3_loc (a68_get_node_location (p),
! 			  COND_EXPR,
! 			  TREE_TYPE (bits),
! 			  fold_build2 (LT_EXPR, TREE_TYPE (abs_shift),
! 				       abs_shift, a68_bits_width (bits_type)),
! 			  shifted_bits, build_zero_cst (bits_type));
  }
  
  /* Given two bits values, build an expression that calculates whether A = B.  */
--- 283,296 ----
  						shift, build_zero_cst (shift_type)),
  				   shifted_right, shifted_left);
  
!   return fold_build2 (COMPOUND_EXPR, TREE_TYPE (bits),
! 		      bits,
! 		      fold_build3_loc (a68_get_node_location (p),
! 				       COND_EXPR,
! 				       TREE_TYPE (bits),
! 				       fold_build2 (LT_EXPR, TREE_TYPE (abs_shift),
! 						    abs_shift, a68_bits_width (bits_type)),
! 				       shifted_bits, build_zero_cst (bits_type)));
  }
  
  /* Given two bits values, build an expression that calculates whether A = B.  */
diff -Nrcpad gcc-16-20260208/gcc/algol68/a68-low-holes.cc gcc-16-20260215/gcc/algol68/a68-low-holes.cc
*** gcc-16-20260208/gcc/algol68/a68-low-holes.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/algol68/a68-low-holes.cc	Sun Feb 15 22:32:05 2026
*************** a68_wrap_formal_proc_hole (NODE_T *p, tr
*** 164,170 ****
      }
    DECL_ARGUMENTS (wrapper) = nreverse (DECL_ARGUMENTS (wrapper));
  
!   a68_push_function_range (wrapper, wrapper_ret_type, true /* top_level */);
  
    /* We need a pointer to a function type.  */
    if (!POINTER_TYPE_P (TREE_TYPE (wrapped)))
--- 164,170 ----
      }
    DECL_ARGUMENTS (wrapper) = nreverse (DECL_ARGUMENTS (wrapper));
  
!   a68_push_function_range (wrapper, wrapper_ret_type);
  
    /* We need a pointer to a function type.  */
    if (!POINTER_TYPE_P (TREE_TYPE (wrapped)))
diff -Nrcpad gcc-16-20260208/gcc/algol68/a68-low-units.cc gcc-16-20260215/gcc/algol68/a68-low-units.cc
*** gcc-16-20260208/gcc/algol68/a68-low-units.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/algol68/a68-low-units.cc	Sun Feb 15 22:32:05 2026
*************** a68_lower_formal_hole (NODE_T *p, LOW_CT
*** 1271,1279 ****
  	  TAX_TREE_DECL (TAX (defining_identifier)) = func_decl;
  	}
  
-       /* Create the body for the wrapper from the formal hole. */
-       a68_wrap_formal_proc_hole (p, func_decl);
- 
        /* If the identity-declaration is in a public range then add the
  	 declaration to the module's declarations list.  Otherwise chain the
  	 declaration in the proper block and bind it.  */
--- 1271,1276 ----
*************** a68_lower_formal_hole (NODE_T *p, LOW_CT
*** 1286,1291 ****
--- 1283,1292 ----
  					  DECL_EXPR,
  					  TREE_TYPE (func_decl),
  					  func_decl));
+ 
+       /* Create the body for the wrapper from the formal hole. */
+       a68_wrap_formal_proc_hole (p, func_decl);
+ 
        return func_decl;
      }
    else
*************** a68_lower_formal_hole (NODE_T *p, LOW_CT
*** 1296,1308 ****
  	{
  	  decl = a68_make_anonymous_routine_decl (MOID (p));
  	  a68_add_decl (decl);
- 	  a68_wrap_formal_proc_hole (p, decl);
- 
- 	  /* XXX necessary */
  	  a68_add_decl_expr (fold_build1_loc (a68_get_node_location (p),
  					      DECL_EXPR,
  					      TREE_TYPE (decl),
  					      decl));
  	  decl = fold_build1 (ADDR_EXPR,
  			      build_pointer_type (TREE_TYPE (decl)),
  			      decl);
--- 1297,1308 ----
  	{
  	  decl = a68_make_anonymous_routine_decl (MOID (p));
  	  a68_add_decl (decl);
  	  a68_add_decl_expr (fold_build1_loc (a68_get_node_location (p),
  					      DECL_EXPR,
  					      TREE_TYPE (decl),
  					      decl));
+ 	  a68_wrap_formal_proc_hole (p, decl);
+ 
  	  decl = fold_build1 (ADDR_EXPR,
  			      build_pointer_type (TREE_TYPE (decl)),
  			      decl);
diff -Nrcpad gcc-16-20260208/gcc/algol68/a68-moids-sorting.cc gcc-16-20260215/gcc/algol68/a68-moids-sorting.cc
*** gcc-16-20260208/gcc/algol68/a68-moids-sorting.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/algol68/a68-moids-sorting.cc	Sun Feb 15 22:32:05 2026
***************
*** 0 ****
--- 1,187 ----
+ /* MOID sorting routines.
+    Copyright (C) 2026 James Bohl.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 3, or (at your option)
+    any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+    License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #include "config.h"
+ #include "system.h"
+ #include "coretypes.h"
+ 
+ #include "a68.h"
+ 
+ /*
+  * Routines for ordering modes.
+  */
+ 
+ /* Forward references.  */
+ 
+ static int mode_ordering (MOID_T *a,MOID_T *b);
+ static PACK_T * sort_union_pack (PACK_T *u);
+ 
+ /* Returns a negative value if 'a' should be ordered after 'b'.
+    Returns a positive value if 'a' should be ordered before 'b'.
+    Returns zero if 'a' and 'b' are equivalent.  */
+ 
+ static int
+ packs_ordering (PACK_T *a, PACK_T *b, bool compare_names = true)
+ {
+   for (; a != NO_PACK && b != NO_PACK; FORWARD (a), FORWARD (b))
+     {
+       int order = mode_ordering (MOID (a), MOID (b));
+       if (order != 0)
+ 	return order;
+       if (compare_names)
+ 	{
+ 	  if (TEXT (a) != TEXT (b))
+ 	    {
+ 	      if (TEXT (a) == NO_TEXT)
+ 		return 1;
+ 	      if (TEXT (b) == NO_TEXT)
+ 		return -1;
+ 	      return -strcmp (TEXT (a), TEXT (b));
+ 	    }
+ 	}
+     }
+   return 0;
+ }
+ 
+ /* Returns a negative value if 'a' should be ordered after 'b'.
+    Returns a positive value if 'a' should be ordered before 'b'.
+    Returns zero if 'a' and 'b' are equivalent.  */
+ 
+ static int
+ mode_ordering (MOID_T *a, MOID_T *b)
+ {
+   if (a == b)
+     return 0;
+   int r = ATTRIBUTE (a) - ATTRIBUTE (b);
+   if (r != 0)
+     return r;
+   r = DIM (a) - DIM (b);
+   if (r != 0)
+     return r;
+   if (IS (a, STANDARD))
+     return strcmp (NSYMBOL (NODE (a)), NSYMBOL (NODE (b)));
+   else if (EQUIVALENT (a) == b || EQUIVALENT (b) == a)
+     return 0;
+   else if (a68_is_postulated_pair (A68 (top_postulate), a, b)
+ 	    || a68_is_postulated_pair (A68 (top_postulate), b, a))
+     return 0;
+   else if (IS (a, INDICANT))
+     {
+       if (NODE (a) == NO_NODE)
+        return 1;
+       if (NODE (b) == NO_NODE)
+        return -1;
+       if (NODE (a) == NODE (b))
+        return 0;
+       return strcmp (NSYMBOL (NODE (a)), NSYMBOL (NODE (b)));
+     }
+   else if (IS (a, REF_SYMBOL))
+     return mode_ordering (SUB (a), SUB (b));
+   else if (IS (a, ROW_SYMBOL))
+     return mode_ordering (SUB (a), SUB (b));
+   else if (IS (a, FLEX_SYMBOL))
+     return mode_ordering (SUB (a), SUB (b));
+   else if (IS (a, STRUCT_SYMBOL))
+     {
+       POSTULATE_T *save = A68 (top_postulate);
+       a68_make_postulate (&A68 (top_postulate), a, b);
+       r = packs_ordering (PACK (a), PACK (b));
+       a68_free_postulate_list (A68 (top_postulate), save);
+       A68 (top_postulate) = save;
+       return r;
+     }
+   else if (IS (a, UNION_SYMBOL))
+     {
+       PACK (a) = sort_union_pack (PACK (a));
+       PACK (b) = sort_union_pack (PACK (b));
+       return packs_ordering (PACK (a), PACK (b), false);
+     }
+   else if (IS (a, PROC_SYMBOL))
+     {
+       POSTULATE_T *save = A68 (top_postulate);
+       a68_make_postulate (&A68 (top_postulate), a, b);
+       r = mode_ordering (SUB (a), SUB (b));
+       if (r == 0)
+ 	r = packs_ordering (PACK (a), PACK (b), false);
+       a68_free_postulate_list (A68 (top_postulate), save);
+       A68 (top_postulate) = save;
+       return r;
+     }
+   else if (IS (a, SERIES_MODE) || IS (a, STOWED_MODE))
+     return packs_ordering (PACK (a), PACK (b), false);
+   return 0;
+ }
+ 
+ /* Add a moid to a sorted pack, maybe with a (field) name.  */
+ 
+ static void
+ add_mode_to_pack_sorted (PACK_T **p, MOID_T *m, const char *text, NODE_T *node)
+ {
+   PACK_T *z = a68_new_pack ();
+ 
+   MOID (z) = m;
+   TEXT (z) = text;
+   NODE (z) = node;
+ 
+   PACK_T *next = (*p);
+   PACK_T *previous = NO_PACK;
+   while (next != NO_PACK)
+     {
+       int order = mode_ordering (m,MOID (next));
+       if (order > 0)
+ 	break;
+       previous = next;
+       FORWARD (next);
+     }
+   NEXT (z) = next;
+   PREVIOUS (z) = previous;
+ 
+   if (previous == NO_PACK)
+     *p = z;
+   else
+     NEXT (previous) = z;
+ 
+   if (next != NO_PACK)
+     PREVIOUS (next) = z;
+ }
+ 
+ /* Sort modes in a UNION pack.  */
+ 
+ static PACK_T *
+ sort_union_pack (PACK_T *u)
+ {
+   PACK_T *z = NO_PACK;
+   for (PACK_T *t = u; t != NO_PACK; FORWARD (t))
+     {
+       (void) add_mode_to_pack_sorted (&z, MOID (t), NO_TEXT, NODE (t));
+     }
+   return z;
+ }
+ 
+ /* Sort modes in UNION packs.  */
+ 
+ void
+ a68_sort_union_packs (MOID_T *m)
+ {
+   for (; m != NO_MOID; FORWARD (m))
+     {
+       if (IS (m, UNION_SYMBOL))
+ 	PACK (m) = sort_union_pack (PACK (m));
+     }
+ }
diff -Nrcpad gcc-16-20260208/gcc/algol68/a68-parser-modes.cc gcc-16-20260215/gcc/algol68/a68-parser-modes.cc
*** gcc-16-20260208/gcc/algol68/a68-parser-modes.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/algol68/a68-parser-modes.cc	Sun Feb 15 22:32:05 2026
*************** a68_make_moid_list (MODULE_T *mod)
*** 1349,1352 ****
--- 1349,1353 ----
  
    compute_derived_modes (mod);
    a68_init_postulates ();
+   a68_sort_union_packs(TOP_MOID (mod));
  }
diff -Nrcpad gcc-16-20260208/gcc/algol68/a68.h gcc-16-20260215/gcc/algol68/a68.h
*** gcc-16-20260208/gcc/algol68/a68.h	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/algol68/a68.h	Sun Feb 15 22:32:05 2026
*************** bool a68_is_c_mode (MOID_T *m, int level
*** 483,488 ****
--- 483,492 ----
  
  #define A68_IF_MODE_IS_WELL(n) (! ((n) == M_ERROR || (n) == M_UNDEFINED))
  
+ /* a68-moids-sorting.cc */
+ 
+ void a68_sort_union_packs (MOID_T* m);
+ 
  /* a68-parser-scope.cc  */
  
  void a68_scope_checker (NODE_T *p);
diff -Nrcpad gcc-16-20260208/gcc/algol68/ga68-coding-guidelines.texi gcc-16-20260215/gcc/algol68/ga68-coding-guidelines.texi
*** gcc-16-20260208/gcc/algol68/ga68-coding-guidelines.texi	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/algol68/ga68-coding-guidelines.texi	Sun Feb 15 22:32:05 2026
*************** facilities of the language.
*** 773,778 ****
--- 773,779 ----
  
  @menu
  * Writing routines::
+ * Enquiry clauses::
  * Nihils::
  @end menu
  
*************** it may be wise to judiciously pass those
*** 813,818 ****
--- 814,844 ----
  arguments in order that the programmer be aware that non-nearby values
  are being accessed or possibly altered.
  
+ @node Enquiry clauses
+ @section Enquiry clauses
+ 
+ @dfn{Enquiry clauses} are not just ``boolean expressions'' with a
+ fancy name.  They can be thought as a sort of specialized serial
+ clauses, and as such they can contain any number of declarations and
+ units while being required to always yield a value of mode
+ @code{bool}.
+ 
+ Avoid polluting the lexical environment with declarations that are
+ intended to be used exclusively within conditional and loop clauses:
+ use a declaration in the enquiry-clause of the clause instead.  This
+ also makes it easier to later refactor code.
+ 
+ Examples:
+ 
+ @example
+ @{ The range of `c' is the entire loop clause. @}
+ while char c = getchar;
+       c /= char_eof
+ do
+    ... use c ...
+ od
+ @end example
+ 
  @node Nihils
  @section Nihils
  
diff -Nrcpad gcc-16-20260208/gcc/algol68/ga68-exports.pk gcc-16-20260215/gcc/algol68/ga68-exports.pk
*** gcc-16-20260208/gcc/algol68/ga68-exports.pk	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/algol68/ga68-exports.pk	Sun Feb 15 22:32:05 2026
*************** type ga68_mode_64 =
*** 175,180 ****
--- 175,257 ----
          field[nfields] fields;
        } sct : kind == GA68_MODE_STRUCT;
  
+       /* When assigning overhead values to union modes, the list of
+ 	 united modes is ordered so that overhead values are assigned
+          consistently across compilation units.  Overhead values are
+          assigned to the modes in the ordered list in ascending order
+          starting from zero.
+ 
+          Modes are ordered in the following order:
+ 
+            UNION
+            STRUCT
+            STANDARD
+            ROWS
+            REF
+            PROC
+            FLEX
+ 
+ 	 A STANDARD mode is one of the following: (VOID, STRING, REAL,
+ 	 INT, COMPL, CHAR, BYTES, BOOL, BITS)
+ 
+          When two modes occupy the same row in the list above, the
+          ordering is determined as follows:
+ 
+          UNION:
+ 
+            The union with greater number of united modes is ordered
+ 	   first.  Unions having an equal number of united modes are
+            ordered based on the ordering of their first non-equivalent
+            mode.
+ 
+          STRUCT:
+ 
+            The struct with the largest number of fields is ordered first.
+            Structs having an equal number of fields are ordered based
+            on the first field that has non-equivalent modes or
+            non-matching field selectors.  If the modes are not equivalent,
+            the structs are ordered in the ordering of those modes.
+            Otherwise, the struct are ordered in the lexicographical
+            order of the field selectors.
+ 
+          STANDARD:
+ 
+            The mode with the greatest size of longsety and smaller size
+            of shortsety is ordered first.  If the size of shortsety and
+ 	   longsety are equal, the modes are ordered as follows:
+ 
+                VOID
+                STRING
+                REAL
+                INT
+                COMPL
+                CHAR
+                BYTES
+                BOOL
+                BITS
+ 
+          ROWS:
+ 
+            The mode with greater number of dimensions is ordered first.
+            Otherwise, the ordering of the modes of the elements is used.
+ 
+          REF:
+ 
+            The ordering is the ordering of the referred mode.
+ 
+          PROC:
+ 
+            The ordering is the ordering of the mode of the value yielded
+            by the procedure.  If the procedure yields values of the the
+            same mode, the procedure with greater number of arguments is
+            ordered first.  If the number of arguments is equal, the
+            ordering is the ordering of the modes of the first arguments
+            having non-equivalent modes.
+ 
+          FLEX:
+ 
+            The ordering is the ordering of the referred mode. */
+ 
        struct
        {
          uint<8> nmodes;
diff -Nrcpad gcc-16-20260208/gcc/analyzer/ChangeLog gcc-16-20260215/gcc/analyzer/ChangeLog
*** gcc-16-20260208/gcc/analyzer/ChangeLog	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/analyzer/ChangeLog	Sun Feb 15 22:32:05 2026
***************
*** 1,3 ****
--- 1,52 ----
+ 2026-02-12  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/117369
+ 	* kf.cc (kf_sprintf::impl_call_pre): Use the capacity of the
+ 	region when "faking" a write to the destination buffer, to
+ 	avoid buffer overflow false +ves.
+ 
+ 2026-02-12  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/124073
+ 	* region-model.cc (region_model::push_frame): Bulletproof against
+ 	DECL_RESULT having null SSA on function missing a return
+ 	statement (-Wreturn-type).
+ 
+ 2026-02-11  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/124055
+ 	* kf.cc (kf_strcpy::impl_call_pre): Ensure bytes_to_copy is
+ 	initialized.  Assert that it was written to with non-null if
+ 	check_for_null_terminated_string_arg returns non-null.
+ 	* region-model.cc (region_model::scan_for_null_terminator):
+ 	Initialize *out_sval, and assert it is written to when
+ 	returning non-null.
+ 	(region_model::check_for_null_terminated_string_arg): Assert
+ 	that scan_for_null_terminator wrote to *out_sval if it
+ 	returns non-null.
+ 
+ 2026-02-11  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/123973
+ 	* region-model-manager.cc
+ 	(region_model_manager::maybe_fold_binop): Fold X + (Y - X) to Y.
+ 
+ 2026-02-10  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/113496
+ 	* constraint-manager.cc (cmp_types): New.
+ 	(bounded_range::cmp): Compare the types of the constants, as well
+ 	as their values.
+ 
+ 2026-02-09  Federico Angelilli  <code@fedang.net>
+ 	    David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/123981
+ 	* sm-malloc.cc: Include "target.h".
+ 	(zero_address_valid_p): New.
+ 	(malloc_state_machine::on_stmt): Guard possible_null_deref and
+ 	null_deref with !zero_address_valid_p.
+ 
  2026-02-07  David Malcolm  <dmalcolm@redhat.com>
  
  	PR analyzer/116228
diff -Nrcpad gcc-16-20260208/gcc/analyzer/constraint-manager.cc gcc-16-20260215/gcc/analyzer/constraint-manager.cc
*** gcc-16-20260208/gcc/analyzer/constraint-manager.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/analyzer/constraint-manager.cc	Sun Feb 15 22:32:05 2026
*************** bounded_range::operator== (const bounded
*** 512,524 ****
  	  && tree_int_cst_equal (m_upper, other.m_upper));
  }
  
  int
  bounded_range::cmp (const bounded_range &br1, const bounded_range &br2)
  {
!   if (int cmp_lower = tree_int_cst_compare (br1.m_lower,
! 					    br2.m_lower))
      return cmp_lower;
!   return tree_int_cst_compare (br1.m_upper, br2.m_upper);
  }
  
  /* struct bounded_ranges.  */
--- 512,539 ----
  	  && tree_int_cst_equal (m_upper, other.m_upper));
  }
  
+ static int
+ cmp_types (const_tree type1, const_tree type2)
+ {
+   int t1 = TYPE_UID (type1);
+   int t2 = TYPE_UID (type2);
+   return t1 - t2;
+ }
+ 
  int
  bounded_range::cmp (const bounded_range &br1, const bounded_range &br2)
  {
!   if (int cmp_lower = tree_int_cst_compare (br1.m_lower, br2.m_lower))
      return cmp_lower;
!   if (int cmp_upper = tree_int_cst_compare (br1.m_upper, br2.m_upper))
!     return cmp_upper;
!   if (int cmp_lower_type = cmp_types (TREE_TYPE (br1.m_lower),
! 				      TREE_TYPE (br2.m_lower)))
!     return cmp_lower_type;
!   if (int cmp_upper_type = cmp_types (TREE_TYPE (br1.m_upper),
! 				      TREE_TYPE (br2.m_upper)))
!     return cmp_upper_type;
!   return 0;
  }
  
  /* struct bounded_ranges.  */
diff -Nrcpad gcc-16-20260208/gcc/analyzer/kf.cc gcc-16-20260215/gcc/analyzer/kf.cc
*** gcc-16-20260208/gcc/analyzer/kf.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/analyzer/kf.cc	Sun Feb 15 22:32:05 2026
*************** public:
*** 1245,1250 ****
--- 1245,1256 ----
      const svalue *dst_ptr = cd.get_arg_svalue (0);
      const region *dst_reg
        = model->deref_rvalue (dst_ptr, cd.get_arg_tree (0), ctxt);
+     /* Restrict the region we consider to be affected to the valid capacity
+        so that we don't trigger buffer overflow false positives.  */
+     const svalue *capacity = model->get_capacity (dst_reg);
+     dst_reg = model->get_manager ()->get_sized_region (dst_reg,
+ 						       NULL_TREE,
+ 						       capacity);
      const svalue *content = cd.get_or_create_conjured_svalue (dst_reg);
      model->set_value (dst_reg, content, ctxt);
      cd.set_any_lhs_with_defaults ();
*************** kf_strcpy::impl_call_pre (const call_det
*** 1399,1408 ****
    /* strcpy returns the initial param.  */
    cd.maybe_set_lhs (dest_sval);
  
!   const svalue *bytes_to_copy;
    if (const svalue *num_bytes_read_sval
        = cd.check_for_null_terminated_string_arg (1, true, &bytes_to_copy))
      {
        cd.complain_about_overlap (0, 1, num_bytes_read_sval);
        model->write_bytes (dest_reg, num_bytes_read_sval, bytes_to_copy, ctxt);
      }
--- 1405,1415 ----
    /* strcpy returns the initial param.  */
    cd.maybe_set_lhs (dest_sval);
  
!   const svalue *bytes_to_copy = nullptr;
    if (const svalue *num_bytes_read_sval
        = cd.check_for_null_terminated_string_arg (1, true, &bytes_to_copy))
      {
+       gcc_assert (bytes_to_copy);
        cd.complain_about_overlap (0, 1, num_bytes_read_sval);
        model->write_bytes (dest_reg, num_bytes_read_sval, bytes_to_copy, ctxt);
      }
diff -Nrcpad gcc-16-20260208/gcc/analyzer/region-model-manager.cc gcc-16-20260215/gcc/analyzer/region-model-manager.cc
*** gcc-16-20260208/gcc/analyzer/region-model-manager.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/analyzer/region-model-manager.cc	Sun Feb 15 22:32:05 2026
*************** region_model_manager::maybe_fold_binop (
*** 685,690 ****
--- 685,695 ----
  	if (unary_op->get_op () == NEGATE_EXPR
  	    && unary_op->get_arg () == arg0)
  	  return get_or_create_int_cst (type, 0);
+       /* X + (Y - X) -> Y.  */
+       if (const binop_svalue *bin_op = arg1->dyn_cast_binop_svalue ())
+ 	if (bin_op->get_op () == MINUS_EXPR)
+ 	  if (bin_op->get_arg1 () == arg0)
+ 	    return get_or_create_cast (type, bin_op->get_arg0 ());
        break;
      case MINUS_EXPR:
        /* (VAL - 0) -> VAL.  */
diff -Nrcpad gcc-16-20260208/gcc/analyzer/region-model.cc gcc-16-20260215/gcc/analyzer/region-model.cc
*** gcc-16-20260208/gcc/analyzer/region-model.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/analyzer/region-model.cc	Sun Feb 15 22:32:05 2026
*************** region_model::scan_for_null_terminator (
*** 4844,4850 ****
--- 4844,4854 ----
        reg->dump_to_pp (pp, true);
        logger->end_log_line ();
      }
+   if (out_sval)
+     *out_sval = nullptr;
    const svalue *sval = scan_for_null_terminator_1 (reg, expr, out_sval, ctxt);
+   if (sval && out_sval)
+     gcc_assert (*out_sval);
    if (logger)
      {
        pretty_printer *pp = logger->get_printer ();
*************** region_model::check_for_null_terminated_
*** 5028,5033 ****
--- 5032,5039 ----
  				  out_sval,
  				  &my_ctxt))
      {
+       if (out_sval)
+ 	gcc_assert (*out_sval);
        if (include_terminator)
  	return num_bytes_read_sval;
        else
*************** region_model::push_frame (const function
*** 6365,6377 ****
  
  	    /* Get region for default val of DECL_RESULT within the
  	       callee.  */
! 	    tree result_default_ssa = get_ssa_default_def (fun, result);
! 	    gcc_assert (result_default_ssa);
! 	    const region *callee_result_reg
! 	      = get_lvalue (result_default_ssa, ctxt);
  
! 	    /* Set the callee's reference to refer to the caller's lhs.  */
! 	    set_value (callee_result_reg, ref_sval, ctxt);
  	  }
      }
    else
--- 6371,6384 ----
  
  	    /* Get region for default val of DECL_RESULT within the
  	       callee.  */
! 	    if (tree result_default_ssa = get_ssa_default_def (fun, result))
! 	      {
! 		const region *callee_result_reg
! 		  = get_lvalue (result_default_ssa, ctxt);
  
! 		/* Set the callee's reference to refer to the caller's lhs.  */
! 		set_value (callee_result_reg, ref_sval, ctxt);
! 	      }
  	  }
      }
    else
diff -Nrcpad gcc-16-20260208/gcc/analyzer/sm-malloc.cc gcc-16-20260215/gcc/analyzer/sm-malloc.cc
*** gcc-16-20260208/gcc/analyzer/sm-malloc.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/analyzer/sm-malloc.cc	Sun Feb 15 22:32:05 2026
*************** along with GCC; see the file COPYING3.
*** 24,29 ****
--- 24,30 ----
  #include "stringpool.h"
  #include "attribs.h"
  #include "xml-printer.h"
+ #include "target.h"
  
  #include "analyzer/analyzer-logging.h"
  #include "analyzer/sm.h"
*************** malloc_state_machine::handle_nonnull (sm
*** 2087,2092 ****
--- 2088,2112 ----
      maybe_assume_non_null (sm_ctxt, arg);
  }
  
+ /* Return true if it's valid to dereference the zero value of PTR_TYPE,
+    or false if we should warn on it.  */
+ 
+ static bool
+ zero_address_valid_p (const_tree ptr_type)
+ {
+   gcc_assert (POINTER_TYPE_P (ptr_type));
+ 
+   /* Some targets have address spaces in which it's valid
+      to dereference zero.  */
+   addr_space_t as = TYPE_ADDR_SPACE (TREE_TYPE (ptr_type));
+   if (!ADDR_SPACE_GENERIC_P (as)
+       && targetm.addr_space.zero_address_valid (as))
+     return true;
+ 
+   /* Invalid.  */
+   return false;
+ }
+ 
  /* Implementation of state_machine::on_stmt vfunc for malloc_state_machine.  */
  
  bool
*************** malloc_state_machine::on_stmt (sm_contex
*** 2250,2268 ****
  	    maybe_assume_non_null (sm_ctxt, arg);
  	  else if (unchecked_p (state))
  	    {
! 	      tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
! 	      sm_ctxt.warn (arg,
! 			    std::make_unique<possible_null_deref> (*this,
! 								   diag_arg));
! 	      const allocation_state *astate = as_a_allocation_state (state);
! 	      sm_ctxt.set_next_state (arg, astate->get_nonnull ());
  	    }
  	  else if (state == m_null)
  	    {
! 	      tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
! 	      sm_ctxt.warn (arg,
! 			    std::make_unique<null_deref> (*this, diag_arg));
! 	      sm_ctxt.set_next_state (arg, m_stop);
  	    }
  	  else if (freed_p (state))
  	    {
--- 2270,2294 ----
  	    maybe_assume_non_null (sm_ctxt, arg);
  	  else if (unchecked_p (state))
  	    {
! 	      if (!zero_address_valid_p (TREE_TYPE (arg)))
! 		{
! 		  tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
! 		  sm_ctxt.warn (arg,
! 				std::make_unique<possible_null_deref> (*this,
! 								       diag_arg));
! 		  const allocation_state *astate = as_a_allocation_state (state);
! 		  sm_ctxt.set_next_state (arg, astate->get_nonnull ());
! 		}
  	    }
  	  else if (state == m_null)
  	    {
! 	      if (!zero_address_valid_p (TREE_TYPE (arg)))
! 		{
! 		  tree diag_arg = sm_ctxt.get_diagnostic_tree (arg);
! 		  sm_ctxt.warn (arg,
! 				std::make_unique<null_deref> (*this, diag_arg));
! 		  sm_ctxt.set_next_state (arg, m_stop);
! 		}
  	    }
  	  else if (freed_p (state))
  	    {
diff -Nrcpad gcc-16-20260208/gcc/attribs.cc gcc-16-20260215/gcc/attribs.cc
*** gcc-16-20260208/gcc/attribs.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/attribs.cc	Sun Feb 15 22:32:05 2026
*************** handle_dll_attribute (tree * pnode, tree
*** 2007,2016 ****
  	{
  	  if (DECL_INITIAL (node))
  	    {
! 	      error ("variable %q+D definition is marked dllimport",
! 		     node);
  	      *no_add_attrs = true;
  	    }
  
  	  /* `extern' needn't be specified with dllimport.
  	     Specify `extern' now and hope for the best.  Sigh.  */
--- 2007,2022 ----
  	{
  	  if (DECL_INITIAL (node))
  	    {
! 	      error ("variable %q+D definition is marked dllimport", node);
! 	      *no_add_attrs = true;
! 	    }
! #if TARGET_WIN32_TLS
! 	  else if (DECL_THREAD_LOCAL_P (node))
! 	    {
! 	      error ("thread-local variable %q+D declared as dllimport", node);
  	      *no_add_attrs = true;
  	    }
+ #endif
  
  	  /* `extern' needn't be specified with dllimport.
  	     Specify `extern' now and hope for the best.  Sigh.  */
*************** handle_dll_attribute (tree * pnode, tree
*** 2034,2039 ****
--- 2040,2052 ----
  	   && flag_keep_inline_dllexport)
      /* An exported function, even if inline, must be emitted.  */
      DECL_EXTERNAL (node) = 0;
+ #if TARGET_WIN32_TLS
+   else if (VAR_P (node) && DECL_THREAD_LOCAL_P (node))
+     {
+       error ("thread-local variable %q+D declared as dllexport", node);
+       *no_add_attrs = true;
+     }
+ #endif
  
    /*  Report error if symbol is not accessible at global scope.  */
    if (!TREE_PUBLIC (node) && VAR_OR_FUNCTION_DECL_P (node))
diff -Nrcpad gcc-16-20260208/gcc/c/ChangeLog gcc-16-20260215/gcc/c/ChangeLog
*** gcc-16-20260208/gcc/c/ChangeLog	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/c/ChangeLog	Sun Feb 15 22:32:05 2026
***************
*** 1,3 ****
--- 1,7 ----
+ 2026-02-13  Dhruv Chawla  <dhruvc@nvidia.com>
+ 
+ 	* Make-lang.in (cc1.fda): Likewise.
+ 
  2026-02-06  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
  
  	PR middle-end/123892
diff -Nrcpad gcc-16-20260208/gcc/c/Make-lang.in gcc-16-20260215/gcc/c/Make-lang.in
*** gcc-16-20260208/gcc/c/Make-lang.in	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/c/Make-lang.in	Sun Feb 15 22:32:05 2026
*************** components_in_prev = "bfd opcodes binuti
*** 93,99 ****
  components_in_prev_target = "libstdc++-v3 libsanitizer libvtv libgcc libbacktrace libphobos zlib libgomp libatomic"
  
  cc1.fda: create_fdas_for_cc1
! 	$(PROFILE_MERGER) $(shell ls -ha cc1_*.fda) --output_file cc1.fda -gcov_version 2
  
  create_fdas_for_cc1: ../stage1-gcc/cc1$(exeext) ../prev-gcc/$(PERF_DATA)
  	for component_in_prev in "$(components_in_prev)"; do \
--- 93,99 ----
  components_in_prev_target = "libstdc++-v3 libsanitizer libvtv libgcc libbacktrace libphobos zlib libgomp libatomic"
  
  cc1.fda: create_fdas_for_cc1
! 	$(PROFILE_MERGER) $(shell ls -ha cc1_*.fda) --output_file cc1.fda -gcov_version 3
  
  create_fdas_for_cc1: ../stage1-gcc/cc1$(exeext) ../prev-gcc/$(PERF_DATA)
  	for component_in_prev in "$(components_in_prev)"; do \
diff -Nrcpad gcc-16-20260208/gcc/c-family/ChangeLog gcc-16-20260215/gcc/c-family/ChangeLog
*** gcc-16-20260208/gcc/c-family/ChangeLog	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/c-family/ChangeLog	Sun Feb 15 22:32:05 2026
***************
*** 1,3 ****
--- 1,9 ----
+ 2026-02-12  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR c/105555
+ 	* c-common.cc (fold_offsetof): Handle REALPART_EXPR
+ 	and IMAGPART_EXPR.
+ 
  2026-02-06  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
  
  	PR middle-end/123892
diff -Nrcpad gcc-16-20260208/gcc/c-family/c-common.cc gcc-16-20260215/gcc/c-family/c-common.cc
*** gcc-16-20260208/gcc/c-family/c-common.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/c-family/c-common.cc	Sun Feb 15 22:32:05 2026
*************** fold_offsetof (tree expr, tree type, enu
*** 7232,7237 ****
--- 7232,7247 ----
      case ERROR_MARK:
        return expr;
  
+     case REALPART_EXPR:
+      return fold_offsetof (TREE_OPERAND (expr, 0), type, code);
+ 
+     case IMAGPART_EXPR:
+      base = fold_offsetof (TREE_OPERAND (expr, 0), type, code);
+      if (base == error_mark_node)
+ 	return base;
+      off = TYPE_SIZE_UNIT (TREE_TYPE (TREE_TYPE (TREE_OPERAND (expr, 0))));
+      break;
+ 
      case VAR_DECL:
        error ("cannot apply %<offsetof%> to static data member %qD", expr);
        return error_mark_node;
diff -Nrcpad gcc-16-20260208/gcc/cfgexpand.cc gcc-16-20260215/gcc/cfgexpand.cc
*** gcc-16-20260208/gcc/cfgexpand.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cfgexpand.cc	Sun Feb 15 22:32:05 2026
*************** expand_asm_stmt (gasm *stmt)
*** 3786,3798 ****
       Case in point is when the i386 backend moved from cc0 to a hard reg --
       maintaining source-level compatibility means automatically clobbering
       the flags register.  */
-   rtx_insn *after_md_seq = NULL;
    auto_vec<rtx> use_rvec;
    if (targetm.md_asm_adjust)
!     after_md_seq
  	= targetm.md_asm_adjust (output_rvec, input_rvec, input_mode,
  				 constraints, use_rvec, clobber_rvec,
  				 clobbered_regs, locus);
  
    /* Do not allow the hook to change the output and input count,
       lest it mess up the operand numbering.  */
--- 3786,3807 ----
       Case in point is when the i386 backend moved from cc0 to a hard reg --
       maintaining source-level compatibility means automatically clobbering
       the flags register.  */
    auto_vec<rtx> use_rvec;
    if (targetm.md_asm_adjust)
!     {
!       rtx_insn *after_md_seq
  	= targetm.md_asm_adjust (output_rvec, input_rvec, input_mode,
  				 constraints, use_rvec, clobber_rvec,
  				 clobbered_regs, locus);
+       if (after_md_seq)
+ 	{
+ 	  push_to_sequence (after_md_seq);
+ 	  emit_insn (after_rtl_seq);
+ 	  after_rtl_seq = get_insns ();
+ 	  after_rtl_end = get_last_insn ();
+ 	  end_sequence ();
+ 	}
+     }
  
    /* Do not allow the hook to change the output and input count,
       lest it mess up the operand numbering.  */
*************** expand_asm_stmt (gasm *stmt)
*** 3967,3974 ****
    if (fallthru_label)
      emit_label (fallthru_label);
  
-   if (after_md_seq)
-     emit_insn (after_md_seq);
    if (after_rtl_seq)
      {
        if (nlabels == 0)
--- 3976,3981 ----
diff -Nrcpad gcc-16-20260208/gcc/cfgrtl.cc gcc-16-20260215/gcc/cfgrtl.cc
*** gcc-16-20260208/gcc/cfgrtl.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cfgrtl.cc	Sun Feb 15 22:32:05 2026
*************** force_nonfallthru_and_redirect (edge e,
*** 1594,1647 ****
      }
  
    /* If e->src ends with asm goto, see if any of the ASM_OPERANDS_LABELs
!      don't point to the target or fallthru label.  */
    if (JUMP_P (BB_END (e->src))
        && target != EXIT_BLOCK_PTR_FOR_FN (cfun)
        && (e->flags & EDGE_FALLTHRU)
        && (note = extract_asm_operands (PATTERN (BB_END (e->src)))))
      {
!       int i, n = ASM_OPERANDS_LABEL_LENGTH (note);
!       bool adjust_jump_target = false;
  
!       for (i = 0; i < n; ++i)
! 	{
! 	  if (XEXP (ASM_OPERANDS_LABEL (note, i), 0) == BB_HEAD (e->dest))
! 	    {
! 	      LABEL_NUSES (XEXP (ASM_OPERANDS_LABEL (note, i), 0))--;
! 	      XEXP (ASM_OPERANDS_LABEL (note, i), 0) = block_label (target);
! 	      LABEL_NUSES (XEXP (ASM_OPERANDS_LABEL (note, i), 0))++;
! 	      adjust_jump_target = true;
! 	    }
! 	  if (XEXP (ASM_OPERANDS_LABEL (note, i), 0) == BB_HEAD (target))
  	    asm_goto_edge = true;
! 	}
!       if (adjust_jump_target)
! 	{
! 	  rtx_insn *insn = BB_END (e->src);
! 	  rtx note;
! 	  rtx_insn *old_label = BB_HEAD (e->dest);
! 	  rtx_insn *new_label = BB_HEAD (target);
! 
! 	  if (JUMP_LABEL (insn) == old_label)
! 	    {
! 	      JUMP_LABEL (insn) = new_label;
! 	      note = find_reg_note (insn, REG_LABEL_TARGET, new_label);
! 	      if (note)
! 		remove_note (insn, note);
! 	    }
! 	  else
! 	    {
! 	      note = find_reg_note (insn, REG_LABEL_TARGET, old_label);
! 	      if (note)
! 		remove_note (insn, note);
! 	      if (JUMP_LABEL (insn) != new_label
! 		  && !find_reg_note (insn, REG_LABEL_TARGET, new_label))
! 		add_reg_note (insn, REG_LABEL_TARGET, new_label);
! 	    }
! 	  while ((note = find_reg_note (insn, REG_LABEL_OPERAND, old_label))
! 		 != NULL_RTX)
! 	    XEXP (note, 0) = new_label;
! 	}
      }
  
    if (EDGE_COUNT (e->src->succs) >= 2 || abnormal_edge_flags || asm_goto_edge)
--- 1594,1613 ----
      }
  
    /* If e->src ends with asm goto, see if any of the ASM_OPERANDS_LABELs
!      don't point to the fallthru label.  */
    if (JUMP_P (BB_END (e->src))
        && target != EXIT_BLOCK_PTR_FOR_FN (cfun)
        && (e->flags & EDGE_FALLTHRU)
        && (note = extract_asm_operands (PATTERN (BB_END (e->src)))))
      {
!       int n = ASM_OPERANDS_LABEL_LENGTH (note);
  
!       for (int i = 0; i < n; ++i)
! 	if (XEXP (ASM_OPERANDS_LABEL (note, i), 0) == BB_HEAD (e->dest))
! 	  {
  	    asm_goto_edge = true;
! 	    break;
! 	  }
      }
  
    if (EDGE_COUNT (e->src->succs) >= 2 || abnormal_edge_flags || asm_goto_edge)
*************** force_nonfallthru_and_redirect (edge e,
*** 1680,1694 ****
           and the reg crossing note should be removed.  */
        fixup_partition_crossing (new_edge);
  
!       /* If asm goto has any label refs to target's label,
! 	 add also edge from asm goto bb to target.  */
        if (asm_goto_edge)
  	{
! 	  new_edge->probability /= 2;
! 	  jump_block->count /= 2;
! 	  edge new_edge2 = make_edge (new_edge->src, target,
! 				      e->flags & ~EDGE_FALLTHRU);
! 	  new_edge2->probability = probability - new_edge->probability;
  	}
  
        new_bb = jump_block;
--- 1646,1690 ----
           and the reg crossing note should be removed.  */
        fixup_partition_crossing (new_edge);
  
!       /* If asm goto has any label refs to e->dest, change them to point
! 	 to jump_block instead.  */
        if (asm_goto_edge)
  	{
! 	  int n = ASM_OPERANDS_LABEL_LENGTH (note);
! 
! 	  for (int i = 0; i < n; ++i)
! 	    if (XEXP (ASM_OPERANDS_LABEL (note, i), 0) == BB_HEAD (e->dest))
! 	      {
! 		LABEL_NUSES (XEXP (ASM_OPERANDS_LABEL (note, i), 0))--;
! 		XEXP (ASM_OPERANDS_LABEL (note, i), 0)
! 		  = block_label (jump_block);
! 		LABEL_NUSES (XEXP (ASM_OPERANDS_LABEL (note, i), 0))++;
! 	      }
! 
! 	  rtx_insn *insn = BB_END (new_edge->src);
! 	  rtx note;
! 	  rtx_insn *old_label = BB_HEAD (e->dest);
! 	  rtx_insn *new_label = BB_HEAD (jump_block);
! 
! 	  if (JUMP_LABEL (insn) == old_label)
! 	    {
! 	      JUMP_LABEL (insn) = new_label;
! 	      note = find_reg_note (insn, REG_LABEL_TARGET, new_label);
! 	      if (note)
! 		remove_note (insn, note);
! 	    }
! 	  else
! 	    {
! 	      note = find_reg_note (insn, REG_LABEL_TARGET, old_label);
! 	      if (note)
! 		remove_note (insn, note);
! 	      if (JUMP_LABEL (insn) != new_label
! 		  && !find_reg_note (insn, REG_LABEL_TARGET, new_label))
! 		add_reg_note (insn, REG_LABEL_TARGET, new_label);
! 	    }
! 	  while ((note = find_reg_note (insn, REG_LABEL_OPERAND, old_label))
! 		 != NULL_RTX)
! 	    XEXP (note, 0) = new_label;
  	}
  
        new_bb = jump_block;
diff -Nrcpad gcc-16-20260208/gcc/cobol/ChangeLog gcc-16-20260215/gcc/cobol/ChangeLog
*** gcc-16-20260208/gcc/cobol/ChangeLog	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/ChangeLog	Sun Feb 15 22:32:05 2026
***************
*** 1,3 ****
--- 1,57 ----
+ 2026-02-13  Robert Dubner  <rdubner@symas.com>
+ 
+ 	PR cobol/119455
+ 	* genapi.cc (mh_source_is_group): Formatting.
+ 	(mh_source_is_literalA): Implement accelerated move.
+ 	(mh_alpha_to_alpha): New function; implements accelerated move.
+ 	(move_helper): Calls new mh_alpha_to_alpha.
+ 
+ 2026-02-12  Robert Dubner  <rdubner@symas.com>
+ 
+ 	* cbldiag.h: Copyright updated to 2026.
+ 	* cdf-copy.cc: Likewise.
+ 	* cdf.y: Likewise.
+ 	* cdfval.h: Likewise.
+ 	* cobol-system.h: Likewise.
+ 	* convert.cc: Likewise.
+ 	* copybook.h: Likewise.
+ 	* except.cc: Likewise.
+ 	* exceptg.h: Likewise.
+ 	* genapi.cc: Likewise.
+ 	* genapi.h: Likewise.
+ 	* gengen.cc: Likewise.
+ 	* gengen.h: Likewise.
+ 	* genmath.cc: Likewise.
+ 	* genmath.h: Likewise.
+ 	* genutil.cc: Likewise.
+ 	* genutil.h: Likewise.
+ 	* inspect.h: Likewise.
+ 	* lang-specs.h: Likewise.
+ 	* lexio.cc: Likewise.
+ 	* lexio.h: Likewise.
+ 	* messages.cc: Likewise.
+ 	* parse.y: Likewise.
+ 	* parse_ante.h: Likewise.
+ 	* parse_util.h: Likewise.
+ 	* scan.l: Likewise.
+ 	* scan_ante.h: Likewise.
+ 	* scan_post.h: Likewise.
+ 	* show_parse.h: Likewise.
+ 	* structs.cc: Likewise.
+ 	* structs.h: Likewise.
+ 	* symbols.cc: Likewise.
+ 	* symbols.h: Likewise.
+ 	* symfind.cc: Likewise.
+ 	* util.cc: Likewise.
+ 	* util.h: Likewise.
+ 
+ 2026-02-12  Robert Dubner  <rdubner@symas.com>
+ 
+ 	* genapi.cc (establish_using): Use a 128-bit type for
+ 	float-extended; handle numeric-edited values of different sizes
+ 	and signs correctly.
+ 	(create_and_call):  Use a 128-bit type for float-extended.
+ 
  2026-02-06  Robert Dubner  <rdubner@symas.com>
  
  	PR cobol/119332
diff -Nrcpad gcc-16-20260208/gcc/cobol/cbldiag.h gcc-16-20260215/gcc/cobol/cbldiag.h
*** gcc-16-20260208/gcc/cobol/cbldiag.h	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/cbldiag.h	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/cdf-copy.cc gcc-16-20260215/gcc/cobol/cdf-copy.cc
*** gcc-16-20260208/gcc/cobol/cdf-copy.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/cdf-copy.cc	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/cdf.y gcc-16-20260215/gcc/cobol/cdf.y
*** gcc-16-20260208/gcc/cobol/cdf.y	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/cdf.y	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/cdfval.h gcc-16-20260215/gcc/cobol/cdfval.h
*** gcc-16-20260208/gcc/cobol/cdfval.h	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/cdfval.h	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
--- 1,5 ----
  /*
!  * Copyright (c) 2021-2026 Symas Corporation
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
diff -Nrcpad gcc-16-20260208/gcc/cobol/cobol-system.h gcc-16-20260215/gcc/cobol/cobol-system.h
*** gcc-16-20260208/gcc/cobol/cobol-system.h	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/cobol-system.h	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/convert.cc gcc-16-20260215/gcc/cobol/convert.cc
*** gcc-16-20260208/gcc/cobol/convert.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/convert.cc	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/copybook.h gcc-16-20260215/gcc/cobol/copybook.h
*** gcc-16-20260208/gcc/cobol/copybook.h	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/copybook.h	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/except.cc gcc-16-20260215/gcc/cobol/except.cc
*** gcc-16-20260208/gcc/cobol/except.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/except.cc	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
--- 1,5 ----
  /*
!  * Copyright (c) 2021-2026 Symas Corporation
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
diff -Nrcpad gcc-16-20260208/gcc/cobol/exceptg.h gcc-16-20260215/gcc/cobol/exceptg.h
*** gcc-16-20260208/gcc/cobol/exceptg.h	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/exceptg.h	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
   /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
   /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/genapi.cc gcc-16-20260215/gcc/cobol/genapi.cc
*** gcc-16-20260208/gcc/cobol/genapi.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/genapi.cc	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
*************** establish_using(size_t nusing,
*** 7012,7018 ****
        tree par_type = tree_type_from_field_type(args[i].refer.field, nbytes);
        if( par_type == FLOAT )
          {
!         par_type = SSIZE_T;
          }
        if( par_type == DOUBLE )
          {
--- 7012,7025 ----
        tree par_type = tree_type_from_field_type(args[i].refer.field, nbytes);
        if( par_type == FLOAT )
          {
!         if( nbytes == 16 )
!           {
!           par_type = INT128;
!           }
!         else
!           {
!           par_type = SSIZE_T;
!           }
          }
        if( par_type == DOUBLE )
          {
*************** establish_using(size_t nusing,
*** 7087,7142 ****
  
        // It makes more sense if you don't think about it too hard.
  
-       // We need to be able to restore prior arguments when doing recursive
-       // calls:
-       IF( member(args[i].refer.field->var_decl_node, "data"),
-           ne_op,
-           gg_cast(UCHAR_P, null_pointer_node) )
-         {
-         gg_call(VOID,
-                 "__gg__push_local_variable",
-                 gg_get_address_of(args[i].refer.field->var_decl_node),
-                 NULL_TREE);
-         }
-       ELSE
-         ENDIF
- 
-       tree base = gg_define_variable(UCHAR_P);
-       gg_assign(rt_i, build_int_cst_type(INT, i));
-       //gg_printf("The rt_i counter is %d\n", rt_i, NULL_TREE);
-       IF( rt_i, lt_op , var_decl_call_parameter_count )
-         {
-         if( i == 0 )
-           {
-           // This is the first parameter.
-           parameter = DECL_ARGUMENTS(current_function->function_decl);
-           }
-         else
-           {
-           // These are subsequent parameters
-           parameter = TREE_CHAIN(parameter);
-           }
-         gg_assign(base, gg_cast(UCHAR_P, parameter));
- 
-         if( args[i].refer.field->attr & any_length_e )
-           {
-           // gg_printf("side channel: Length of \"%s\" is %ld\n",
-                     // member(args[i].refer.field->var_decl_node, "name"),
-                     // gg_array_value(var_decl_call_parameter_lengths, rt_i),
-                     // NULL_TREE);
- 
-           // Get the length from the global lengths[] side channel.  Don't
-           // forget to use the length mask on the table value.
-           gg_assign(member(args[i].refer.field->var_decl_node, "capacity"),
-                     gg_array_value(var_decl_call_parameter_lengths, rt_i));
-           }
-         }
-       ELSE
-         {
-         gg_assign(base, gg_cast(UCHAR_P, null_pointer_node));
-         }
-         ENDIF
- 
        // Arriving here means that we are processing an instruction like
        // this:
        // PROCEDURE DIVISION USING using[0] using[1] ... using using[nusing-1]
--- 7094,7099 ----
*************** establish_using(size_t nusing,
*** 7145,7150 ****
--- 7102,7108 ----
        // an OTHER-TO-COBOL call and the var_decl_call_parameter_lengths array
        // is not valid
  
+       // Sort out the USING BY; it can be BY REFERENCE or BY VALUE:
        cbl_ffi_crv_t crv = args[i].crv;
        cbl_field_t *new_var = args[i].refer.field;
  
*************** establish_using(size_t nusing,
*** 7163,7208 ****
            }
          }
  
!       if( crv == by_value_e )
          {
!         // 'parameter' is the 64-bit or 128-bit value that was placed on the stack
  
          size_t nbytes;
          tree_type_from_field_type(new_var, nbytes);
          tree parm = gg_define_variable(INT128);
  
          if( nbytes <= 8 )
            {
            // Our input is a 64-bit number
            if( new_var->attr & signable_e )
              {
!             IF( gg_bitwise_and( gg_cast(SIZE_T, base),
                                  build_int_cst_type(SIZE_T, 0x8000000000000000ULL)),
                  ne_op,
                  gg_cast(SIZE_T, integer_zero_node) )
                {
!               // Our input is a negative number
                gg_assign(parm, gg_cast(INT128, integer_minus_one_node));
                }
              ELSE
                {
!               // Our input is a positive number
                gg_assign(parm, gg_cast(INT128, integer_zero_node));
                }
              ENDIF
              }
            else
              {
!             // This is a 64-bit positive number:
              gg_assign(parm, gg_cast(INT128, integer_zero_node));
              }
            }
-         // At this point, parm has been set to 0 or -1
  
          gg_memcpy(gg_get_address_of(parm),
!                   gg_get_address_of(base),
                    build_int_cst_type(SIZE_T, nbytes));
- 
          tree array_type = build_array_type_nelts(UCHAR, new_var->data.capacity());
          tree data_decl_node = gg_define_variable( array_type,
                                                    NULL,
--- 7121,7278 ----
            }
          }
  
!       // We need to be able to restore prior arguments when doing recursive
!       // calls:
!       IF( member(args[i].refer.field->var_decl_node, "data"),
!           ne_op,
!           gg_cast(UCHAR_P, null_pointer_node) )
          {
!         gg_call(VOID,
!                 "__gg__push_local_variable",
!                 gg_get_address_of(args[i].refer.field->var_decl_node),
!                 NULL_TREE);
!         }
!       ELSE
!         ENDIF
! 
!       if( crv == by_reference_e )
!         {
!         // The passed parameter, if it exists, is a pointer to a COBOL
!         // variable's data area
!         tree reference = gg_define_variable(UCHAR_P);
!         gg_assign(rt_i, build_int_cst_type(INT, i));
!         IF( rt_i, lt_op , var_decl_call_parameter_count )
!           {
!           if( i == 0 )
!             {
!             // This is the first parameter.
!             parameter = DECL_ARGUMENTS(current_function->function_decl);
!             }
!           else
!             {
!             // These are subsequent parameters
!             parameter = TREE_CHAIN(parameter);
!             }
!           gg_assign(reference, gg_cast(UCHAR_P, parameter));
! 
!           if( args[i].refer.field->attr & any_length_e )
!             {
!             // gg_printf("side channel: Length of \"%s\" is %ld\n",
!                       // member(args[i].refer.field->var_decl_node, "name"),
!                       // gg_array_value(var_decl_call_parameter_lengths, rt_i),
!                       // NULL_TREE);
! 
!             // Get the length from the global lengths[] side channel.  Don't
!             // forget to use the length mask on the table value.
!             gg_assign(member(args[i].refer.field->var_decl_node, "capacity"),
!                       gg_array_value(var_decl_call_parameter_lengths, rt_i));
!             }
!           }
!         ELSE
!           {
!           gg_assign(reference, gg_cast(UCHAR_P, null_pointer_node));
!           }
!         ENDIF
!         // 'parameter' is a reference, so it it becomes the data member of
!         // the cblc_field_t COBOL variable.
!         gg_assign(member(args[i].field()->var_decl_node, "data"), reference);
  
+         // We need to apply reference + offset to the LINKAGE variable
+         // and all of its children
+         propogate_linkage_offsets( args[i].field(), reference );
+         }
+ 
+       if( crv == by_value_e )
+         {
          size_t nbytes;
          tree_type_from_field_type(new_var, nbytes);
          tree parm = gg_define_variable(INT128);
  
+         tree value_type;
+         if( nbytes == 16 )
+           {
+           value_type = INT128;
+           }
+         else
+           {
+           value_type = SSIZE_T;
+           }
+ 
+         // 'parameter' is the 64-bit or 128-bit value that was placed on the stack
+         tree value = gg_define_variable(value_type);
+ 
+         gg_assign(rt_i, build_int_cst_type(INT, i));
+         IF( rt_i, lt_op , var_decl_call_parameter_count )
+           {
+           if( i == 0 )
+             {
+             // This is the first parameter.
+             parameter = DECL_ARGUMENTS(current_function->function_decl);
+             }
+           else
+             {
+             // These are subsequent parameters
+             parameter = TREE_CHAIN(parameter);
+             }
+           gg_assign(value, gg_cast(value_type, parameter));
+           gg_memcpy(gg_get_address_of(value),
+                     gg_get_address_of(parameter),
+                     build_int_cst_type(SIZE_T, nbytes));
+ 
+           if( args[i].refer.field->attr & any_length_e )
+             {
+             // gg_printf("side channel: Length of \"%s\" is %ld\n",
+                       // member(args[i].refer.field->var_decl_node, "name"),
+                       // gg_array_value(var_decl_call_parameter_lengths, rt_i),
+                       // NULL_TREE);
+ 
+             // Get the length from the global lengths[] side channel.  Don't
+             // forget to use the length mask on the table value.
+             gg_assign(member(args[i].refer.field->var_decl_node, "capacity"),
+                       gg_array_value(var_decl_call_parameter_lengths, rt_i));
+             }
+           }
+         ELSE
+           {
+           gg_assign(value, gg_cast(value_type, integer_zero_node));
+           }
+         ENDIF
+ 
          if( nbytes <= 8 )
            {
            // Our input is a 64-bit number
            if( new_var->attr & signable_e )
              {
!             IF( gg_bitwise_and( gg_cast(SIZE_T, value),
                                  build_int_cst_type(SIZE_T, 0x8000000000000000ULL)),
                  ne_op,
                  gg_cast(SIZE_T, integer_zero_node) )
                {
!               // Our input is a negative number.  Set it to -1, so that the
!               // eight high-order bytes are 0xFF
                gg_assign(parm, gg_cast(INT128, integer_minus_one_node));
                }
              ELSE
                {
!               // Our input is a positive number, so set it to zero, so that
!               // the eight high-order bytes are 0x00
                gg_assign(parm, gg_cast(INT128, integer_zero_node));
                }
              ENDIF
              }
            else
              {
!             // This is a 64-bit positive number: so set it to zero, so that
!               // the eight high-order bytes are 0x00
              gg_assign(parm, gg_cast(INT128, integer_zero_node));
              }
            }
  
+         // Now copy over the little-endian binary bytes, either 8 or 16 as
+         // necessary
          gg_memcpy(gg_get_address_of(parm),
!                   gg_get_address_of(value),
                    build_int_cst_type(SIZE_T, nbytes));
          tree array_type = build_array_type_nelts(UCHAR, new_var->data.capacity());
          tree data_decl_node = gg_define_variable( array_type,
                                                    NULL,
*************** establish_using(size_t nusing,
*** 7253,7268 ****
            next_index += 1;
            }
          }
-       else
-         {
-         // 'parameter' is a reference, so it it becomes the data member of
-         // the cblc_field_t COBOL variable.
-         gg_assign(member(args[i].field()->var_decl_node, "data"), base);
- 
-         // We need to apply base + offset to the LINKAGE variable
-         // and all of its children
-         propogate_linkage_offsets( args[i].field(), base );
-         }
        }
      }
    }
--- 7323,7328 ----
*************** create_and_call(size_t narg,
*** 13297,13304 ****
              if( !(args[i].refer.field->attr & intermediate_e) )
                {
                // All temporaries are SIZE_T
!               if( args[i].refer.field->type == FldFloat
!                   && args[i].refer.field->data.capacity() == 16 )
                  {
                  as_int128 = true;
                  }
--- 13357,13363 ----
              if( !(args[i].refer.field->attr & intermediate_e) )
                {
                // All temporaries are SIZE_T
!               if( args[i].refer.field->type == FldFloat )
                  {
                  as_int128 = true;
                  }
*************** mh_source_is_group( const cbl_refer_t &d
*** 15646,15652 ****
                      const TREEPLET    &tsrc)
    {
    bool retval = false;
!  charmap_t *charmap = __gg__get_charmap(destref.field->codeset.encoding);
    if(   sourceref.field->type == FldGroup && !(destref.field->attr & rjust_e)
       && sourceref.field->codeset.encoding == destref.field->codeset.encoding
       && charmap->stride() == 1)
--- 15705,15711 ----
                      const TREEPLET    &tsrc)
    {
    bool retval = false;
!   charmap_t *charmap = __gg__get_charmap(destref.field->codeset.encoding);
    if(   sourceref.field->type == FldGroup && !(destref.field->attr & rjust_e)
       && sourceref.field->codeset.encoding == destref.field->codeset.encoding
       && charmap->stride() == 1)
*************** mh_source_is_group( const cbl_refer_t &d
*** 15668,15674 ****
        }
      ELSE
        {
!       // There are too-few source bytes:
        int dest_space = charmap->mapped_character(ascii_space);
        gg_memset(tdest, build_int_cst_type(INT, dest_space), dbytes);
        gg_memcpy(tdest, tsource, sbytes);
--- 15727,15733 ----
        }
      ELSE
        {
!       // There are too few source bytes:
        int dest_space = charmap->mapped_character(ascii_space);
        gg_memset(tdest, build_int_cst_type(INT, dest_space), dbytes);
        gg_memcpy(tdest, tsource, sbytes);
*************** mh_source_is_literalA(const cbl_refer_t
*** 15802,15839 ****
          }
        }
  
!     // If the source is flagged ALL, or if we are setting the destination to
!     // a figurative constant, pass along the ALL bit:
!     int rounded_parameter = rounded
!                            | ((sourceref.all || figconst ) ? REFER_ALL_BIT : 0);
! 
!     if( size_error )
        {
!       gg_assign(size_error,
!                 gg_call_expr( INT,
!                               "__gg__move_literala",
!                               gg_get_address_of(destref.field->var_decl_node),
!                               refer_offset(destref),
!                               refer_size_dest(destref),
!                               build_int_cst_type(INT, rounded_parameter),
!                               build_string_literal(outlength,
!                                                    buffer),
!                               build_int_cst_type( SIZE_T, outlength),
!                               NULL_TREE));
        }
      else
        {
!                 gg_call     ( INT,
!                               "__gg__move_literala",
!                               gg_get_address_of(destref.field->var_decl_node),
!                               refer_offset(destref),
!                               refer_size_dest(destref),
!                               build_int_cst_type(INT, rounded_parameter),
!                               build_string_literal(outlength,
!                                                    buffer),
!                               build_int_cst_type( SIZE_T, outlength),
!                               NULL_TREE);
        }
      if(    destref.refmod.from
          || destref.refmod.len )
        {
--- 15861,15951 ----
          }
        }
  
!     // Check to see if we can do a simple alphanumeric-to-alphanumeric move
!     if( (   destref.field->type == FldAlphanumeric
!          || destref.field->type == FldGroup )
!        && !(destref.field->attr & any_length_e)
!        && !sourceref.all                         
!        && !size_error)
        {
!       // A simple alpha-to-alpha move is possible
!       size_t dest_bytes = destref.field->data.capacity();
!       // We have 'outlength' bytes in 'buffer' that need to go to
!       // destref.field->data.capacity() bytes at destref.field->data.
!       char *src = static_cast<char *>(xmalloc(dest_bytes));
!       size_t src_bytes = std::min(outlength, dest_bytes);
!       charmap_t *charmap = __gg__get_charmap(destref.field->codeset.encoding);
!       charmap->memset(src, charmap->mapped_character(ascii_space), dest_bytes);
! 
!       if( destref.field->attr & rjust_e )
!         {
!         size_t fill = 0;
!         if( src_bytes < dest_bytes )
!           {
!           fill = dest_bytes - src_bytes;
!           }
!         memcpy(src+fill, buffer+outlength-src_bytes, src_bytes);
!         }
!       else
!         {
!         memcpy(src, buffer, src_bytes);
!         }
!       // src is now the desired string, space-filled if necessary on the right,
!       // (or on the left, for rjust_e destinations).
! 
!       if( refer_is_clean(destref) )
!         {
!         gg_memcpy(member(destref.field->var_decl_node, "data"),
!                   build_string_literal(dest_bytes, src),
!                   build_int_cst_type(SIZE_T, dest_bytes));
!         }
!       else
!         {
!         gg_memcpy(gg_add(member(destref.field->var_decl_node, "data"),
!                          refer_offset(destref)),
!                   build_string_literal(dest_bytes, src),
!                   refer_size_dest(destref));
!         }
!       free(src);
        }
      else
        {
!       // This is more complicated than a simple alpha-to-alpha move
! 
!       // If the source is flagged ALL, or if we are setting the destination to
!       // a figurative constant, pass along the ALL bit:
!       int rounded_parameter = rounded
!                              | ((sourceref.all || figconst ) ? REFER_ALL_BIT : 0);
! 
!       if( size_error )
!         {
!         gg_assign(size_error,
!                   gg_call_expr( INT,
!                                 "__gg__move_literala",
!                                 gg_get_address_of(destref.field->var_decl_node),
!                                 refer_offset(destref),
!                                 refer_size_dest(destref),
!                                 build_int_cst_type(INT, rounded_parameter),
!                                 build_string_literal(outlength,
!                                                      buffer),
!                                 build_int_cst_type( SIZE_T, outlength),
!                                 NULL_TREE));
!         }
!       else
!         {
!                   gg_call     ( INT,
!                                 "__gg__move_literala",
!                                 gg_get_address_of(destref.field->var_decl_node),
!                                 refer_offset(destref),
!                                 refer_size_dest(destref),
!                                 build_int_cst_type(INT, rounded_parameter),
!                                 build_string_literal(outlength,
!                                                      buffer),
!                                 build_int_cst_type( SIZE_T, outlength),
!                                 NULL_TREE);
!         }
        }
+ 
      if(    destref.refmod.from
          || destref.refmod.len )
        {
*************** mh_source_is_literalA(const cbl_refer_t
*** 15845,15850 ****
--- 15957,16074 ----
    return moved;
    }
  
+ static bool
+ mh_alpha_to_alpha(const cbl_refer_t &destref,
+                   const cbl_refer_t &sourceref,
+                         cbl_round_t /*rounded*/,
+                         tree        size_error)
+   {
+   bool moved = false;
+   // If a bunch of conditions are met, we can do a move without resorting to
+   // the library.
+   if(   sourceref.field->type == FldAlphanumeric
+      && destref.field->type   == FldAlphanumeric
+      && !size_error
+      && sourceref.field->codeset.encoding == destref.field->codeset.encoding
+      && !destref.refmod.from
+      && !destref.refmod.len
+      && !(destref.field->attr   & rjust_e)
+      && !(sourceref.field->attr & any_length_e)
+      && !(destref.field->attr   & any_length_e)
+      && !(sourceref.field->attr & intermediate_e)
+      && !sourceref.all
+      )
+     {
+     // We are in a position to simply move bytes from the source to the dest.
+     if( refer_is_clean(sourceref) && refer_is_clean(destref) )
+       {
+       // Source and destination are both clean
+       if( destref.field->data.capacity() <= sourceref.field->data.capacity() )
+         {
+         // This is the simplest case of all
+         gg_memcpy(member(  destref.field->var_decl_node, "data"),
+                   member(sourceref.field->var_decl_node, "data"),
+                   build_int_cst_type(SIZE_T, destref.field->data.capacity()));
+         moved = true;
+         }
+       else
+         {
+         // This is a tad more complicated.  The source is too short, so we need
+         // to copy over what we can...
+         gg_memcpy(member(  destref.field->var_decl_node, "data"),
+                  member(sourceref.field->var_decl_node, "data"),
+                  build_int_cst_type(SIZE_T, sourceref.field->data.capacity()));
+         // And then space-fill the rest:
+         size_t fill_bytes =
+             destref.field->data.capacity() - sourceref.field->data.capacity();
+ 
+         // ...and then create a memory area with the fill spaces...
+         char *spaces = static_cast<char *>(xmalloc(fill_bytes));
+         charmap_t *charmap =__gg__get_charmap(destref.field->codeset.encoding);
+         charmap->memset(spaces,
+                         charmap->mapped_character(ascii_space),
+                         fill_bytes);
+         // ...and then copy those spaces into place.
+         gg_memcpy(
+           gg_add(member(destref.field->var_decl_node, "data"),
+                  build_int_cst_type(SIZE_T, sourceref.field->data.capacity())),
+           build_string_literal(fill_bytes, spaces),
+           build_int_cst_type(SIZE_T, fill_bytes));
+         free(spaces);
+         moved = true;
+         }
+       }
+     else
+       {
+       // Either the source or the dest is a table or refmod, so we need to do
+       // more work.
+       tree source_data = gg_define_variable(UCHAR_P);
+       tree source_len  = gg_define_variable(SIZE_T);
+ 
+       tree dest_data = gg_define_variable(UCHAR_P);
+       tree dest_len  = gg_define_variable(SIZE_T);
+ 
+       gg_assign(source_data,
+                 gg_add(member(sourceref.field->var_decl_node, "data"),
+                        refer_offset(sourceref)));
+       gg_assign(source_len, refer_size_source(sourceref));
+ 
+       gg_assign(dest_data,
+                 gg_add(member(destref.field->var_decl_node, "data"),
+                        refer_offset(destref)));
+       gg_assign(dest_len, refer_size_dest(destref));
+       IF( source_len, ge_op, dest_len )
+         {
+         // The source has enough (or more) bytes to fill the destination:
+         gg_memcpy(dest_data, source_data, dest_len);
+         }
+       ELSE
+         {
+         // The source data is too short.  We need to copy over what we have...
+         gg_memcpy(dest_data, source_data, source_len);
+ 
+         // And then right-fill the remainder with spaces. Create a buffer with
+         // more than enough spaces for our purposes:
+         size_t fill_bytes = destref.field->data.capacity();
+         char *spaces = static_cast<char *>(xmalloc(fill_bytes));
+         charmap_t *charmap =__gg__get_charmap(destref.field->codeset.encoding);
+         charmap->memset(spaces,
+                         charmap->mapped_character(ascii_space),
+                         fill_bytes);
+         // And then copy enough of those spaces into place.
+         gg_memcpy(gg_add(dest_data, source_len),
+                   build_string_literal(fill_bytes, spaces),
+                   gg_subtract(dest_len, source_len));
+         free(spaces);
+         }
+       ENDIF
+ 
+       moved = true;
+       }
+     }
+   return moved;
+   }
+ 
  static void
  move_helper(tree size_error,        // This is an INT
              cbl_refer_t destref,
*************** move_helper(tree size_error,        // T
*** 15873,15879 ****
  
    tree st_data = NULL_TREE;
    tree st_size = NULL_TREE;
- 
    if( restore_on_error )
      {
      // We are creating a copy of the original destination in case we clobber it
--- 16097,16102 ----
*************** move_helper(tree size_error,        // T
*** 15897,15908 ****
                st_size);
      }
  
-   if(     (sourceref.field->attr & (linkage_e | based_e))
-       ||  (  destref.field->attr & (linkage_e | based_e)) )
-     {
-     //goto dont_be_clever; this will go through to the default.
-     }
- 
    // if( !moved ) // commented out to quiet cppcheck
      {
      moved = mh_source_is_group(destref, sourceref, tsource);
--- 16120,16125 ----
*************** move_helper(tree size_error,        // T
*** 15957,15962 ****
--- 16174,16187 ----
      }
  
    if( !moved )
+     {
+     moved = mh_alpha_to_alpha(destref,
+                               sourceref,
+                               rounded,
+                               size_error);
+     }
+ 
+   if( !moved )
      {
      SHOW_PARSE1
        {
diff -Nrcpad gcc-16-20260208/gcc/cobol/genapi.h gcc-16-20260215/gcc/cobol/genapi.h
*** gcc-16-20260208/gcc/cobol/genapi.h	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/genapi.h	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/gengen.cc gcc-16-20260215/gcc/cobol/gengen.cc
*** gcc-16-20260208/gcc/cobol/gengen.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/gengen.cc	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/gengen.h gcc-16-20260215/gcc/cobol/gengen.h
*** gcc-16-20260208/gcc/cobol/gengen.h	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/gengen.h	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/genmath.cc gcc-16-20260215/gcc/cobol/genmath.cc
*** gcc-16-20260208/gcc/cobol/genmath.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/genmath.cc	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/genmath.h gcc-16-20260215/gcc/cobol/genmath.h
*** gcc-16-20260208/gcc/cobol/genmath.h	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/genmath.h	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/genutil.cc gcc-16-20260215/gcc/cobol/genutil.cc
*** gcc-16-20260208/gcc/cobol/genutil.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/genutil.cc	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/genutil.h gcc-16-20260215/gcc/cobol/genutil.h
*** gcc-16-20260208/gcc/cobol/genutil.h	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/genutil.h	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/inspect.h gcc-16-20260215/gcc/cobol/inspect.h
*** gcc-16-20260208/gcc/cobol/inspect.h	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/inspect.h	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/lang-specs.h gcc-16-20260215/gcc/cobol/lang-specs.h
*** gcc-16-20260208/gcc/cobol/lang-specs.h	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/lang-specs.h	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/lexio.cc gcc-16-20260215/gcc/cobol/lexio.cc
*** gcc-16-20260208/gcc/cobol/lexio.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/lexio.cc	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/lexio.h gcc-16-20260215/gcc/cobol/lexio.h
*** gcc-16-20260208/gcc/cobol/lexio.h	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/lexio.h	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
--- 1,5 ----
  /*
!  * Copyright (c) 2021-2026 Symas Corporation
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
diff -Nrcpad gcc-16-20260208/gcc/cobol/messages.cc gcc-16-20260215/gcc/cobol/messages.cc
*** gcc-16-20260208/gcc/cobol/messages.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/messages.cc	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/parse.y gcc-16-20260215/gcc/cobol/parse.y
*** gcc-16-20260208/gcc/cobol/parse.y	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/parse.y	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/parse_ante.h gcc-16-20260215/gcc/cobol/parse_ante.h
*** gcc-16-20260208/gcc/cobol/parse_ante.h	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/parse_ante.h	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/parse_util.h gcc-16-20260215/gcc/cobol/parse_util.h
*** gcc-16-20260208/gcc/cobol/parse_util.h	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/parse_util.h	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/scan.l gcc-16-20260215/gcc/cobol/scan.l
*** gcc-16-20260208/gcc/cobol/scan.l	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/scan.l	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/scan_ante.h gcc-16-20260215/gcc/cobol/scan_ante.h
*** gcc-16-20260208/gcc/cobol/scan_ante.h	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/scan_ante.h	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/scan_post.h gcc-16-20260215/gcc/cobol/scan_post.h
*** gcc-16-20260208/gcc/cobol/scan_post.h	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/scan_post.h	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/show_parse.h gcc-16-20260215/gcc/cobol/show_parse.h
*** gcc-16-20260208/gcc/cobol/show_parse.h	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/show_parse.h	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/structs.cc gcc-16-20260215/gcc/cobol/structs.cc
*** gcc-16-20260208/gcc/cobol/structs.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/structs.cc	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/structs.h gcc-16-20260215/gcc/cobol/structs.h
*** gcc-16-20260208/gcc/cobol/structs.h	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/structs.h	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/symbols.cc gcc-16-20260215/gcc/cobol/symbols.cc
*** gcc-16-20260208/gcc/cobol/symbols.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/symbols.cc	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/symbols.h gcc-16-20260215/gcc/cobol/symbols.h
*** gcc-16-20260208/gcc/cobol/symbols.h	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/symbols.h	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
   /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
   /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/symfind.cc gcc-16-20260215/gcc/cobol/symfind.cc
*** gcc-16-20260208/gcc/cobol/symfind.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/symfind.cc	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
--- 1,5 ----
  /*
!  * Copyright (c) 2021-2026 Symas Corporation
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
diff -Nrcpad gcc-16-20260208/gcc/cobol/util.cc gcc-16-20260215/gcc/cobol/util.cc
*** gcc-16-20260208/gcc/cobol/util.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/util.cc	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/cobol/util.h gcc-16-20260215/gcc/cobol/util.h
*** gcc-16-20260208/gcc/cobol/util.h	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/cobol/util.h	Sun Feb 15 22:32:05 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/gcc/config/aarch64/aarch64-json-schema.h gcc-16-20260215/gcc/config/aarch64/aarch64-json-schema.h
*** gcc-16-20260208/gcc/config/aarch64/aarch64-json-schema.h	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/config/aarch64/aarch64-json-schema.h	Sun Feb 15 22:32:05 2026
*************** static const char *schema_json = R"json(
*** 176,181 ****
--- 176,201 ----
  	"store_cost": "int"
        },
        "sve": {
+ 	"int_stmt_cost": "int",
+ 	"fp_stmt_cost": "int",
+ 	"ld2_st2_permute_cost": "int",
+ 	"ld3_st3_permute_cost": "int",
+ 	"ld4_st4_permute_cost": "int",
+ 	"permute_cost": "int",
+ 	"reduc_i8_cost": "int",
+ 	"reduc_i16_cost": "int",
+ 	"reduc_i32_cost": "int",
+ 	"reduc_i64_cost": "int",
+ 	"reduc_f16_cost": "int",
+ 	"reduc_f32_cost": "int",
+ 	"reduc_f64_cost": "int",
+ 	"store_elt_extra_cost": "int",
+ 	"vec_to_scalar_cost": "int",
+ 	"scalar_to_vec_cost": "int",
+ 	"align_load_cost": "int",
+ 	"unalign_load_cost": "int",
+ 	"unalign_store_cost": "int",
+ 	"store_cost": "int",
  	"clast_cost": "int",
  	"fadda_f16_cost": "int",
  	"fadda_f32_cost": "int",
diff -Nrcpad gcc-16-20260208/gcc/config/aarch64/aarch64-json-tunings-parser-generated.inc gcc-16-20260215/gcc/config/aarch64/aarch64-json-tunings-parser-generated.inc
*** gcc-16-20260208/gcc/config/aarch64/aarch64-json-tunings-parser-generated.inc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/config/aarch64/aarch64-json-tunings-parser-generated.inc	Sun Feb 15 22:32:05 2026
*************** template <typename T>
*** 175,180 ****
--- 175,200 ----
  static void
  parse_vec_costs_sve (const json::object *jo, T &sve)
  {
+   PARSE_INTEGER_FIELD (jo, "int_stmt_cost", sve.int_stmt_cost);
+   PARSE_INTEGER_FIELD (jo, "fp_stmt_cost", sve.fp_stmt_cost);
+   PARSE_INTEGER_FIELD (jo, "ld2_st2_permute_cost", sve.ld2_st2_permute_cost);
+   PARSE_INTEGER_FIELD (jo, "ld3_st3_permute_cost", sve.ld3_st3_permute_cost);
+   PARSE_INTEGER_FIELD (jo, "ld4_st4_permute_cost", sve.ld4_st4_permute_cost);
+   PARSE_INTEGER_FIELD (jo, "permute_cost", sve.permute_cost);
+   PARSE_INTEGER_FIELD (jo, "reduc_i8_cost", sve.reduc_i8_cost);
+   PARSE_INTEGER_FIELD (jo, "reduc_i16_cost", sve.reduc_i16_cost);
+   PARSE_INTEGER_FIELD (jo, "reduc_i32_cost", sve.reduc_i32_cost);
+   PARSE_INTEGER_FIELD (jo, "reduc_i64_cost", sve.reduc_i64_cost);
+   PARSE_INTEGER_FIELD (jo, "reduc_f16_cost", sve.reduc_f16_cost);
+   PARSE_INTEGER_FIELD (jo, "reduc_f32_cost", sve.reduc_f32_cost);
+   PARSE_INTEGER_FIELD (jo, "reduc_f64_cost", sve.reduc_f64_cost);
+   PARSE_INTEGER_FIELD (jo, "store_elt_extra_cost", sve.store_elt_extra_cost);
+   PARSE_INTEGER_FIELD (jo, "vec_to_scalar_cost", sve.vec_to_scalar_cost);
+   PARSE_INTEGER_FIELD (jo, "scalar_to_vec_cost", sve.scalar_to_vec_cost);
+   PARSE_INTEGER_FIELD (jo, "align_load_cost", sve.align_load_cost);
+   PARSE_INTEGER_FIELD (jo, "unalign_load_cost", sve.unalign_load_cost);
+   PARSE_INTEGER_FIELD (jo, "unalign_store_cost", sve.unalign_store_cost);
+   PARSE_INTEGER_FIELD (jo, "store_cost", sve.store_cost);
    PARSE_INTEGER_FIELD (jo, "clast_cost", sve.clast_cost);
    PARSE_INTEGER_FIELD (jo, "fadda_f16_cost", sve.fadda_f16_cost);
    PARSE_INTEGER_FIELD (jo, "fadda_f32_cost", sve.fadda_f32_cost);
diff -Nrcpad gcc-16-20260208/gcc/config/aarch64/aarch64-json-tunings-parser.cc gcc-16-20260215/gcc/config/aarch64/aarch64-json-tunings-parser.cc
*** gcc-16-20260208/gcc/config/aarch64/aarch64-json-tunings-parser.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/config/aarch64/aarch64-json-tunings-parser.cc	Sun Feb 15 22:32:05 2026
*************** aarch64_load_tuning_params_from_json_str
*** 496,501 ****
--- 496,515 ----
      }
  
    parse_tunings (jo, *tune);
+ 
+   /* dispatch_constraints are not represented in JSON tunings.  If the JSON
+      sets DISPATCH_SCHED in extra_tuning_flags but the base model does not
+      provide dispatch_constraints, clear the flag to avoid an assertion
+      failure later.  */
+   if ((tune->extra_tuning_flags & AARCH64_EXTRA_TUNE_DISPATCH_SCHED)
+       && tune->dispatch_constraints == nullptr)
+     {
+       warning (0, "JSON tuning enables dispatch scheduling but "
+ 	       "%<dispatch_constraints%> is not available; "
+ 	       "disabling dispatch scheduling");
+       tune->extra_tuning_flags &= ~AARCH64_EXTRA_TUNE_DISPATCH_SCHED;
+     }
+ 
    return;
  }
  
diff -Nrcpad gcc-16-20260208/gcc/config/aarch64/aarch64-json-tunings-printer-generated.inc gcc-16-20260215/gcc/config/aarch64/aarch64-json-tunings-printer-generated.inc
*** gcc-16-20260208/gcc/config/aarch64/aarch64-json-tunings-printer-generated.inc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/config/aarch64/aarch64-json-tunings-printer-generated.inc	Sun Feb 15 22:32:05 2026
*************** serialize_vec_costs_sve (const T &sve)
*** 209,214 ****
--- 209,234 ----
  {
    auto sve_obj = std::make_unique<json::object> ();
  
+   SERIALIZE_INTEGER_FIELD (sve_obj, "int_stmt_cost", sve.int_stmt_cost);
+   SERIALIZE_INTEGER_FIELD (sve_obj, "fp_stmt_cost", sve.fp_stmt_cost);
+   SERIALIZE_INTEGER_FIELD (sve_obj, "ld2_st2_permute_cost", sve.ld2_st2_permute_cost);
+   SERIALIZE_INTEGER_FIELD (sve_obj, "ld3_st3_permute_cost", sve.ld3_st3_permute_cost);
+   SERIALIZE_INTEGER_FIELD (sve_obj, "ld4_st4_permute_cost", sve.ld4_st4_permute_cost);
+   SERIALIZE_INTEGER_FIELD (sve_obj, "permute_cost", sve.permute_cost);
+   SERIALIZE_INTEGER_FIELD (sve_obj, "reduc_i8_cost", sve.reduc_i8_cost);
+   SERIALIZE_INTEGER_FIELD (sve_obj, "reduc_i16_cost", sve.reduc_i16_cost);
+   SERIALIZE_INTEGER_FIELD (sve_obj, "reduc_i32_cost", sve.reduc_i32_cost);
+   SERIALIZE_INTEGER_FIELD (sve_obj, "reduc_i64_cost", sve.reduc_i64_cost);
+   SERIALIZE_INTEGER_FIELD (sve_obj, "reduc_f16_cost", sve.reduc_f16_cost);
+   SERIALIZE_INTEGER_FIELD (sve_obj, "reduc_f32_cost", sve.reduc_f32_cost);
+   SERIALIZE_INTEGER_FIELD (sve_obj, "reduc_f64_cost", sve.reduc_f64_cost);
+   SERIALIZE_INTEGER_FIELD (sve_obj, "store_elt_extra_cost", sve.store_elt_extra_cost);
+   SERIALIZE_INTEGER_FIELD (sve_obj, "vec_to_scalar_cost", sve.vec_to_scalar_cost);
+   SERIALIZE_INTEGER_FIELD (sve_obj, "scalar_to_vec_cost", sve.scalar_to_vec_cost);
+   SERIALIZE_INTEGER_FIELD (sve_obj, "align_load_cost", sve.align_load_cost);
+   SERIALIZE_INTEGER_FIELD (sve_obj, "unalign_load_cost", sve.unalign_load_cost);
+   SERIALIZE_INTEGER_FIELD (sve_obj, "unalign_store_cost", sve.unalign_store_cost);
+   SERIALIZE_INTEGER_FIELD (sve_obj, "store_cost", sve.store_cost);
    SERIALIZE_INTEGER_FIELD (sve_obj, "clast_cost", sve.clast_cost);
    SERIALIZE_INTEGER_FIELD (sve_obj, "fadda_f16_cost", sve.fadda_f16_cost);
    SERIALIZE_INTEGER_FIELD (sve_obj, "fadda_f32_cost", sve.fadda_f32_cost);
diff -Nrcpad gcc-16-20260208/gcc/config/aarch64/aarch64-protos.h gcc-16-20260215/gcc/config/aarch64/aarch64-protos.h
*** gcc-16-20260208/gcc/config/aarch64/aarch64-protos.h	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/config/aarch64/aarch64-protos.h	Sun Feb 15 22:32:05 2026
*************** bool aarch64_uimm12_shift (unsigned HOST
*** 984,989 ****
--- 984,990 ----
  int aarch64_movk_shift (const wide_int_ref &, const wide_int_ref &);
  bool aarch64_is_mov_xn_imm (unsigned HOST_WIDE_INT);
  bool aarch64_use_return_insn_p (void);
+ bool aarch64_use_simple_return_insn_p (void);
  const char *aarch64_output_casesi (rtx *);
  const char *aarch64_output_load_tp (rtx);
  const char *aarch64_output_sme_zero_za (rtx);
diff -Nrcpad gcc-16-20260208/gcc/config/aarch64/aarch64.cc gcc-16-20260215/gcc/config/aarch64/aarch64.cc
*** gcc-16-20260208/gcc/config/aarch64/aarch64.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/config/aarch64/aarch64.cc	Sun Feb 15 22:32:05 2026
*************** aarch64_use_return_insn_p (void)
*** 10794,10799 ****
--- 10794,10813 ----
    return known_eq (cfun->machine->frame.frame_size, 0);
  }
  
+ /* Return false for locally streaming functions in order to avoid
+    shrink-wrapping them.  Shrink-wrapping is unsafe when the function prologue
+    and epilogue contain streaming state change, because these implicitly change
+    the meaning of poly_int values.  */
+ 
+ bool
+ aarch64_use_simple_return_insn_p (void)
+ {
+   if (aarch64_cfun_enables_pstate_sm ())
+     return false;
+ 
+   return true;
+ }
+ 
  /* Generate the epilogue instructions for returning from a function.
     This is almost exactly the reverse of the prolog sequence, except
     that we need to insert barriers to avoid scheduling loads that read
diff -Nrcpad gcc-16-20260208/gcc/config/aarch64/aarch64.md gcc-16-20260215/gcc/config/aarch64/aarch64.md
*** gcc-16-20260208/gcc/config/aarch64/aarch64.md	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/config/aarch64/aarch64.md	Sun Feb 15 22:32:05 2026
***************
*** 1435,1441 ****
  
  (define_insn "simple_return"
    [(simple_return)]
!   ""
    {
      output_asm_insn ("ret", operands);
      return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ());
--- 1435,1441 ----
  
  (define_insn "simple_return"
    [(simple_return)]
!   "aarch64_use_simple_return_insn_p ()"
    {
      output_asm_insn ("ret", operands);
      return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ());
diff -Nrcpad gcc-16-20260208/gcc/config/aarch64/tuning_models/olympus.h gcc-16-20260215/gcc/config/aarch64/tuning_models/olympus.h
*** gcc-16-20260208/gcc/config/aarch64/tuning_models/olympus.h	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/config/aarch64/tuning_models/olympus.h	Sun Feb 15 22:32:05 2026
*************** static sve_vec_cost olympus_sve_vector_c
*** 77,83 ****
      2, /* store_elt_extra_cost  */
      8, /* vec_to_scalar_cost  */
      4, /* scalar_to_vec_cost  */
!     4, /* align_load_cost  */
      6, /* unalign_load_cost  */
      1, /* unalign_store_cost  */
      1  /* store_cost  */
--- 77,83 ----
      2, /* store_elt_extra_cost  */
      8, /* vec_to_scalar_cost  */
      4, /* scalar_to_vec_cost  */
!     6, /* align_load_cost  */
      6, /* unalign_load_cost  */
      1, /* unalign_store_cost  */
      1  /* store_cost  */
diff -Nrcpad gcc-16-20260208/gcc/config/bpf/bpf.h gcc-16-20260215/gcc/config/bpf/bpf.h
*** gcc-16-20260208/gcc/config/bpf/bpf.h	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/config/bpf/bpf.h	Sun Feb 15 22:32:05 2026
*************** enum reg_class
*** 365,372 ****
  /* The SPARC port says: Nonzero if access to memory by bytes is slow
     and undesirable.  For RISC chips, it means that access to memory by
     bytes is no better than access by words when possible, so grab a
!    whole word and maybe make use of that.  */
! #define SLOW_BYTE_ACCESS 1
  
  /* Threshold of number of scalar memory-to-memory move instructions,
     _below_ which a sequence of insns should be generated instead of a
--- 365,376 ----
  /* The SPARC port says: Nonzero if access to memory by bytes is slow
     and undesirable.  For RISC chips, it means that access to memory by
     bytes is no better than access by words when possible, so grab a
!    whole word and maybe make use of that.
!    BPF programs will be JIT-ed to various architectures, so we cannot
!    say for certain what the access patterns on the final architecture
!    are.  From the BPF verifier perspective, smaller loads are actually
!    preferable so set this to zero.  */
! #define SLOW_BYTE_ACCESS 0
  
  /* Threshold of number of scalar memory-to-memory move instructions,
     _below_ which a sequence of insns should be generated instead of a
diff -Nrcpad gcc-16-20260208/gcc/config/cris/cris.cc gcc-16-20260215/gcc/config/cris/cris.cc
*** gcc-16-20260208/gcc/config/cris/cris.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/config/cris/cris.cc	Sun Feb 15 22:32:05 2026
*************** cris_split_constant (HOST_WIDE_INT wval,
*** 2799,2809 ****
  
  /* Try to change a comparison against a constant to be against zero, and
     an unsigned compare against zero to be an equality test.  Beware:
!    only valid for compares of integer-type operands.  Also, note that we
!    don't use operand 0 at the moment.  */
  
  void
! cris_reduce_compare (rtx *relp, rtx *, rtx *op1p)
  {
    rtx op1 = *op1p;
    rtx_code code = GET_CODE (*relp);
--- 2799,2809 ----
  
  /* Try to change a comparison against a constant to be against zero, and
     an unsigned compare against zero to be an equality test.  Beware:
!    only valid for compares of integer-type operands.  Also forces one operand
!    to be a register, unless either is 0.  */
  
  void
! cris_reduce_compare (rtx *relp, rtx *op0p, rtx *op1p)
  {
    rtx op1 = *op1p;
    rtx_code code = GET_CODE (*relp);
*************** cris_reduce_compare (rtx *relp, rtx *, r
*** 2849,2857 ****
  
    if (code != GET_CODE (*relp))
    {
!     *op1p = const0_rtx;
      PUT_CODE (*relp, code);
    }
  }
  
  /* The expander for the prologue pattern name.  */
--- 2849,2866 ----
  
    if (code != GET_CODE (*relp))
    {
!     op1 = const0_rtx;
!     *op1p = op1;
      PUT_CODE (*relp, code);
    }
+ 
+   if (op1 != const0_rtx && *op0p != const0_rtx)
+     {
+       machine_mode op1mode = GET_MODE (op1);
+ 
+       *op0p = force_reg (op1mode != VOIDmode ? op1mode : GET_MODE (*op0p),
+ 			 *op0p);
+     }
  }
  
  /* The expander for the prologue pattern name.  */
diff -Nrcpad gcc-16-20260208/gcc/config/cris/cris.md gcc-16-20260215/gcc/config/cris/cris.md
*** gcc-16-20260208/gcc/config/cris/cris.md	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/config/cris/cris.md	Sun Feb 15 22:32:05 2026
***************
*** 173,178 ****
--- 173,181 ----
  (define_mode_iterator BWD [SI HI QI])
  (define_mode_iterator BWDD [DI SI HI QI])
  
+ ;; Need to handle BWD and SF similarly, at least in the expander.
+ (define_mode_iterator BWDSF [SI HI QI SF])
+ 
  ;; To be able to refer to the same mode_attr for both a multi-mode
  ;; and a mode-specific pattern, we use some singleton iterators.
  (define_mode_iterator DI_ [DI])
***************
*** 560,570 ****
  
  ;; Normal move patterns from SI on.
  
! (define_expand "movsi"
    [(parallel
      [(set
!       (match_operand:SI 0 "nonimmediate_operand")
!       (match_operand:SI 1 "general_operand"))
       (clobber (reg:CC CRIS_CC0_REGNUM))])]
    ""
  {
--- 563,573 ----
  
  ;; Normal move patterns from SI on.
  
! (define_expand "mov<mode>"
    [(parallel
      [(set
!       (match_operand:BWDSF 0 "nonimmediate_operand")
!       (match_operand:BWDSF 1 "general_operand"))
       (clobber (reg:CC CRIS_CC0_REGNUM))])]
    ""
  {
***************
*** 572,585 ****
       input.  */
    if (MEM_P (operands[0])
        && ! REG_S_P (operands[1])
!       && operands[1] != const0_rtx
        && can_create_pseudo_p ())
!     operands[1] = force_reg (SImode, operands[1]);
  
     /* At post-reload time, we'll get here for e.g. split multi-mode insns
        with a memory destination.  Go directly to the clobber-less variant.
!       FIXME: Also applies to special-register source or destination.  */
!    if (reload_completed
         && (MEM_P (operands[0]) || operands[1] == const0_rtx))
       {
          emit_insn (gen_rtx_SET (operands[0], operands[1]));
--- 575,590 ----
       input.  */
    if (MEM_P (operands[0])
        && ! REG_S_P (operands[1])
!       && operands[1] != CONST0_RTX (<MODE>mode)
        && can_create_pseudo_p ())
!     operands[1] = force_reg (<MODE>mode, operands[1]);
  
     /* At post-reload time, we'll get here for e.g. split multi-mode insns
        with a memory destination.  Go directly to the clobber-less variant.
!       FIXME: Also applies to special-register source or destination.
!       Only do this for integer modes.  */
!    if (SCALAR_INT_MODE_P (<MODE>mode)
!        && reload_completed
         && (MEM_P (operands[0]) || operands[1] == const0_rtx))
       {
          emit_insn (gen_rtx_SET (operands[0], operands[1]));
***************
*** 656,669 ****
     (set_attr "cc<cccc><ccnz><ccnzvc>"
  	     "*,*,none,none,*,none,none,*,*,none,none,none,none,none,none,*,none")])
  
! ;; FIXME: See movsi.
! 
! (define_insn "<acc><anz><anzvc>movhi<setcc><setnz><setnzvc>"
    [(set
      (match_operand:HI 0 "nonimmediate_operand" "=r,r, r,Q>,r,Q>,r,r,r,g,g,r,r,x")
      (match_operand:HI 1 "general_operand"	"r,Q>,M,M, I,r, L,O,n,M,r,g,x,r"))
     (clobber (reg:CC CRIS_CC0_REGNUM))]
!   ""
  {
    switch (which_alternative)
      {
--- 661,674 ----
     (set_attr "cc<cccc><ccnz><ccnzvc>"
  	     "*,*,none,none,*,none,none,*,*,none,none,none,none,none,none,*,none")])
  
! (define_insn "*movhi_internal<setcc><setnz><setnzvc>"
    [(set
      (match_operand:HI 0 "nonimmediate_operand" "=r,r, r,Q>,r,Q>,r,r,r,g,g,r,r,x")
      (match_operand:HI 1 "general_operand"	"r,Q>,M,M, I,r, L,O,n,M,r,g,x,r"))
     (clobber (reg:CC CRIS_CC0_REGNUM))]
!   "(register_operand (operands[0], HImode)
!     || register_operand (operands[1], HImode)
!     || operands[1] == const0_rtx)"
  {
    switch (which_alternative)
      {
***************
*** 700,712 ****
    [(set_attr "slottable" "yes,yes,yes,yes,yes,yes,no,yes,no,no,no,no,yes,yes")
     (set_attr "cc<cccc><ccnz><ccnzvc>" "*,*,none,none,*,none,*,clobber,*,none,none,*,none,none")])
  
! (define_insn "movstricthi"
    [(set
      (strict_low_part
       (match_operand:HI 0 "nonimmediate_operand" "+r,r, r,Q>,Q>,g,r,g"))
      (match_operand:HI 1 "general_operand"	 "r,Q>,M,M, r, M,g,r"))
     (clobber (reg:CC CRIS_CC0_REGNUM))]
!   ""
    "@
     move.w %1,%0
     move.w %1,%0
--- 705,736 ----
    [(set_attr "slottable" "yes,yes,yes,yes,yes,yes,no,yes,no,no,no,no,yes,yes")
     (set_attr "cc<cccc><ccnz><ccnzvc>" "*,*,none,none,*,none,*,clobber,*,none,none,*,none,none")])
  
! (define_expand "movstrict<mode>"
!   [(parallel
!     [(set
!       (strict_low_part (match_operand:BW 0 "nonimmediate_operand"))
!       (match_operand:BW 1 "general_operand"))
!      (clobber (reg:CC CRIS_CC0_REGNUM))])]
!   ""
! {
!   /* If the output goes to a MEM, make sure we have zero or a register as
!      input.  */
!   if (MEM_P (operands[0])
!       && ! REG_S_P (operands[1])
!       && operands[1] != const0_rtx
!       && can_create_pseudo_p ())
!     operands[1] = force_reg (<MODE>mode, operands[1]);
! })
! 
! (define_insn "*movstricthi_internal"
    [(set
      (strict_low_part
       (match_operand:HI 0 "nonimmediate_operand" "+r,r, r,Q>,Q>,g,r,g"))
      (match_operand:HI 1 "general_operand"	 "r,Q>,M,M, r, M,g,r"))
     (clobber (reg:CC CRIS_CC0_REGNUM))]
!   "(register_operand (operands[0], HImode)
!     || register_operand (operands[1], HImode)
!     || operands[1] == const0_rtx)"
    "@
     move.w %1,%0
     move.w %1,%0
***************
*** 734,744 ****
    ""
    "")
  
! (define_insn "<acc><anz><anzvc>movqi<setcc><setnz><setnzvc>"
    [(set (match_operand:QI 0 "nonimmediate_operand" "=r,Q>,r, r,Q>,r,g,g,r,r,r,x")
  	(match_operand:QI 1 "general_operand"	    "r,r, Q>,M,M, I,M,r,O,g,x,r"))
     (clobber (reg:CC CRIS_CC0_REGNUM))]
!   ""
    "@
     move.b %1,%0
     move.b %1,%0
--- 758,770 ----
    ""
    "")
  
! (define_insn "*movqi_internal<setcc><setnz><setnzvc>"
    [(set (match_operand:QI 0 "nonimmediate_operand" "=r,Q>,r, r,Q>,r,g,g,r,r,r,x")
  	(match_operand:QI 1 "general_operand"	    "r,r, Q>,M,M, I,M,r,O,g,x,r"))
     (clobber (reg:CC CRIS_CC0_REGNUM))]
!   "(register_operand (operands[0], QImode)
!     || register_operand (operands[1], QImode)
!     || operands[1] == const0_rtx)"
    "@
     move.b %1,%0
     move.b %1,%0
***************
*** 756,767 ****
     (set_attr "cc<cccc><ccnz><ccnzvc>"
  	     "*,none,*,none,none,*,none,none,clobber,*,none,none")])
  
! (define_insn "movstrictqi"
    [(set (strict_low_part
  	 (match_operand:QI 0 "nonimmediate_operand" "+r,Q>,r, r,Q>,g,g,r"))
  	(match_operand:QI 1 "general_operand"	     "r,r, Q>,M,M, M,r,g"))
     (clobber (reg:CC CRIS_CC0_REGNUM))]
!   ""
    "@
     move.b %1,%0
     move.b %1,%0
--- 782,795 ----
     (set_attr "cc<cccc><ccnz><ccnzvc>"
  	     "*,none,*,none,none,*,none,none,clobber,*,none,none")])
  
! (define_insn "*movstrictqi_internal"
    [(set (strict_low_part
  	 (match_operand:QI 0 "nonimmediate_operand" "+r,Q>,r, r,Q>,g,g,r"))
  	(match_operand:QI 1 "general_operand"	     "r,r, Q>,M,M, M,r,g"))
     (clobber (reg:CC CRIS_CC0_REGNUM))]
!   "(register_operand (operands[0], QImode)
!     || register_operand (operands[1], QImode)
!     || operands[1] == const0_rtx)"
    "@
     move.b %1,%0
     move.b %1,%0
***************
*** 778,788 ****
  ;; all ones); the worthwhile one is "0.0".
  ;; It will use clear, so we know ALL types of immediate 0 never change cc.
  
! (define_insn "movsf"
    [(set (match_operand:SF 0 "nonimmediate_operand" "=r,Q>,r, r,Q>,g,g,r,r,x,Q>,m,x, x")
  	(match_operand:SF 1 "general_operand"       "r,r, Q>,G,G, G,r,g,x,r,x, x,Q>,g"))
     (clobber (reg:CC CRIS_CC0_REGNUM))]
!   ""
    "@
     move.d %1,%0
     move.d %1,%0
--- 806,818 ----
  ;; all ones); the worthwhile one is "0.0".
  ;; It will use clear, so we know ALL types of immediate 0 never change cc.
  
! (define_insn "*movsf_internal"
    [(set (match_operand:SF 0 "nonimmediate_operand" "=r,Q>,r, r,Q>,g,g,r,r,x,Q>,m,x, x")
  	(match_operand:SF 1 "general_operand"       "r,r, Q>,G,G, G,r,g,x,r,x, x,Q>,g"))
     (clobber (reg:CC CRIS_CC0_REGNUM))]
!   "(register_operand (operands[0], SFmode)
!     || register_operand (operands[1], SFmode)
!     || operands[1] == CONST0_RTX (SFmode))"
    "@
     move.d %1,%0
     move.d %1,%0
***************
*** 2319,2325 ****
  	 (label_ref (match_operand 2 ""))
  	 (pc)))
     (clobber (reg:CC CRIS_CC0_REGNUM))]
!   ""
    "#"
    "&& reload_completed"
    [(set (reg:<xCC> CRIS_CC0_REGNUM)
--- 2349,2357 ----
  	 (label_ref (match_operand 2 ""))
  	 (pc)))
     (clobber (reg:CC CRIS_CC0_REGNUM))]
!   "(register_operand (operands[0], <MODE>mode)
!     || register_operand (operands[1], <MODE>mode)
!     || operands[1] == const0_rtx)"
    "#"
    "&& reload_completed"
    [(set (reg:<xCC> CRIS_CC0_REGNUM)
***************
*** 2475,2481 ****
  	 (match_operand:BWDD 1 "nonimmediate_operand" "<cmp_op0c>")
  	 (match_operand:BWDD 2 "general_operand" "<cmp_op1c>")))
     (clobber (reg:CC CRIS_CC0_REGNUM))]
!   ""
    "#"
    "&& reload_completed"
    [(set (reg:<xCC> CRIS_CC0_REGNUM)
--- 2507,2515 ----
  	 (match_operand:BWDD 1 "nonimmediate_operand" "<cmp_op0c>")
  	 (match_operand:BWDD 2 "general_operand" "<cmp_op1c>")))
     (clobber (reg:CC CRIS_CC0_REGNUM))]
!   "(register_operand (operands[1], <MODE>mode)
!     || register_operand (operands[2], <MODE>mode)
!     || operands[2] == const0_rtx)"
    "#"
    "&& reload_completed"
    [(set (reg:<xCC> CRIS_CC0_REGNUM)
diff -Nrcpad gcc-16-20260208/gcc/config/riscv/riscv.cc gcc-16-20260215/gcc/config/riscv/riscv.cc
*** gcc-16-20260208/gcc/config/riscv/riscv.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/config/riscv/riscv.cc	Sun Feb 15 22:32:06 2026
*************** riscv_legitimize_move (machine_mode mode
*** 3912,3920 ****
  		}
  	    }
  
  	  if (need_int_reg_p)
  	    emit_move_insn (dest, gen_lowpart (GET_MODE (dest), int_reg));
! 	  else
  	    emit_move_insn (dest, int_reg);
  	  return true;
  	}
--- 3912,3927 ----
  		}
  	    }
  
+ 	  /* If we are extracting a single element out of a vector and do
+ 	     not need an intermediate register, then the extraction will
+ 	     occur directly into RESULT.  RESULT is the same as DEST and
+ 	     INT_REG.  So we end up with a nop move.  That is not a major
+ 	     problem, except in this case it'll send us right back into
+ 	     this code and we recurse.  Given we put the value in RESULT
+ 	     already we can just elide the nop move here and be done.  */
  	  if (need_int_reg_p)
  	    emit_move_insn (dest, gen_lowpart (GET_MODE (dest), int_reg));
! 	  else if (!rtx_equal_p (dest, int_reg)) 
  	    emit_move_insn (dest, int_reg);
  	  return true;
  	}
diff -Nrcpad gcc-16-20260208/gcc/config/sol2.h gcc-16-20260215/gcc/config/sol2.h
*** gcc-16-20260208/gcc/config/sol2.h	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/config/sol2.h	Sun Feb 15 22:32:06 2026
*************** along with GCC; see the file COPYING3.
*** 49,57 ****
  
  #define SIG_ATOMIC_TYPE "int"
  
! /* ??? This definition of int8_t follows the system header but does
!    not conform to C99.  Likewise int_fast8_t, int_least8_t.  */
! #define INT8_TYPE "char"
  #define INT16_TYPE "short int"
  #define INT32_TYPE "int"
  #define INT64_TYPE (LONG_TYPE_SIZE == 64 ? "long int" : "long long int")
--- 49,59 ----
  
  #define SIG_ATOMIC_TYPE "int"
  
! /* <sys/int_types.h> uses char (which is signed) to define int8_t, which does
!    not conform to C99, 7.18.1.1 Exact-width integer types.  Likewise
!    int_fast8_t, int_least8_t.  Until this is fixed, it's handled by
!    fixincludes.  */
! #define INT8_TYPE "signed char"
  #define INT16_TYPE "short int"
  #define INT32_TYPE "int"
  #define INT64_TYPE (LONG_TYPE_SIZE == 64 ? "long int" : "long long int")
*************** along with GCC; see the file COPYING3.
*** 60,66 ****
  #define UINT32_TYPE "unsigned int"
  #define UINT64_TYPE (LONG_TYPE_SIZE == 64 ? "long unsigned int" : "long long unsigned int")
  
! #define INT_LEAST8_TYPE "char"
  #define INT_LEAST16_TYPE "short int"
  #define INT_LEAST32_TYPE "int"
  #define INT_LEAST64_TYPE (LONG_TYPE_SIZE == 64 ? "long int" : "long long int")
--- 62,68 ----
  #define UINT32_TYPE "unsigned int"
  #define UINT64_TYPE (LONG_TYPE_SIZE == 64 ? "long unsigned int" : "long long unsigned int")
  
! #define INT_LEAST8_TYPE "signed char"
  #define INT_LEAST16_TYPE "short int"
  #define INT_LEAST32_TYPE "int"
  #define INT_LEAST64_TYPE (LONG_TYPE_SIZE == 64 ? "long int" : "long long int")
*************** along with GCC; see the file COPYING3.
*** 69,75 ****
  #define UINT_LEAST32_TYPE "unsigned int"
  #define UINT_LEAST64_TYPE (LONG_TYPE_SIZE == 64 ? "long unsigned int" : "long long unsigned int")
  
! #define INT_FAST8_TYPE "char"
  #define INT_FAST16_TYPE "int"
  #define INT_FAST32_TYPE "int"
  #define INT_FAST64_TYPE (LONG_TYPE_SIZE == 64 ? "long int" : "long long int")
--- 71,77 ----
  #define UINT_LEAST32_TYPE "unsigned int"
  #define UINT_LEAST64_TYPE (LONG_TYPE_SIZE == 64 ? "long unsigned int" : "long long unsigned int")
  
! #define INT_FAST8_TYPE "signed char"
  #define INT_FAST16_TYPE "int"
  #define INT_FAST32_TYPE "int"
  #define INT_FAST64_TYPE (LONG_TYPE_SIZE == 64 ? "long int" : "long long int")
diff -Nrcpad gcc-16-20260208/gcc/config/sparc/sol2.h gcc-16-20260215/gcc/config/sparc/sol2.h
*** gcc-16-20260208/gcc/config/sparc/sol2.h	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/config/sparc/sol2.h	Sun Feb 15 22:32:06 2026
*************** along with GCC; see the file COPYING3.
*** 45,57 ****
  
  /* Supposedly the same as vanilla sparc svr4, except for the stuff below: */
  
! /* If the assembler supports -xarch=sparc4, we switch to the explicit
!    word size selection mechanism available both in GNU as and Sun as,
!    for the Niagara4 and above configurations.  */
! #ifdef HAVE_AS_SPARC4
! 
! #define AS_SPARC32_FLAG ""
! #define AS_SPARC64_FLAG ""
  
  #if !HAVE_GNU_AS
  #undef ASM_ARCH32_SPEC
--- 45,52 ----
  
  /* Supposedly the same as vanilla sparc svr4, except for the stuff below: */
  
! /* We switch to the explicit word size selection mechanism available both in
!    GNU as and Sun as, for the Niagara4 and above configurations.  */
  
  #if !HAVE_GNU_AS
  #undef ASM_ARCH32_SPEC
*************** along with GCC; see the file COPYING3.
*** 64,100 ****
  #undef ASM_SPEC
  #define ASM_SPEC ASM_SPEC_BASE " %(asm_arch)" ASM_PIC_SPEC
  
- #else /* HAVE_AS_SPARC4 */
- 
- #define AS_SPARC32_FLAG "-xarch=v8plus"
- #define AS_SPARC64_FLAG "-xarch=v9"
- 
- #undef AS_NIAGARA4_FLAG
- #define AS_NIAGARA4_FLAG AS_NIAGARA3_FLAG
- 
- #undef ASM_ARCH32_SPEC
- #define ASM_ARCH32_SPEC ""
- 
- #undef ASM_ARCH64_SPEC
- #define ASM_ARCH64_SPEC ""
- 
- #undef ASM_ARCH_DEFAULT_SPEC
- #define ASM_ARCH_DEFAULT_SPEC ""
- 
- #undef ASM_ARCH_SPEC
- #define ASM_ARCH_SPEC ""
- 
- /* Both Sun as and GNU as understand -K PIC.  */
- #undef ASM_SPEC
- #define ASM_SPEC ASM_SPEC_BASE ASM_PIC_SPEC
- 
- #endif /* HAVE_AS_SPARC4 */
- 
- 
  #undef ASM_CPU32_DEFAULT_SPEC
! #define ASM_CPU32_DEFAULT_SPEC	""
  #undef ASM_CPU64_DEFAULT_SPEC
! #define ASM_CPU64_DEFAULT_SPEC	"-xarch=v9"
  
  #if TARGET_CPU_DEFAULT == TARGET_CPU_v9
  #undef CPP_CPU64_DEFAULT_SPEC
--- 59,68 ----
  #undef ASM_SPEC
  #define ASM_SPEC ASM_SPEC_BASE " %(asm_arch)" ASM_PIC_SPEC
  
  #undef ASM_CPU32_DEFAULT_SPEC
! #define ASM_CPU32_DEFAULT_SPEC ""
  #undef ASM_CPU64_DEFAULT_SPEC
! #define ASM_CPU64_DEFAULT_SPEC "-xarch=v9"
  
  #if TARGET_CPU_DEFAULT == TARGET_CPU_v9
  #undef CPP_CPU64_DEFAULT_SPEC
*************** along with GCC; see the file COPYING3.
*** 143,178 ****
  #undef CPP_CPU64_DEFAULT_SPEC
  #define CPP_CPU64_DEFAULT_SPEC ""
  #undef ASM_CPU32_DEFAULT_SPEC
! #define ASM_CPU32_DEFAULT_SPEC "-xarch=v8plus" AS_NIAGARA3_FLAG
  #undef ASM_CPU64_DEFAULT_SPEC
! #define ASM_CPU64_DEFAULT_SPEC "-xarch=v9" AS_NIAGARA3_FLAG
  #endif
  
  #if TARGET_CPU_DEFAULT == TARGET_CPU_niagara4
  #undef CPP_CPU64_DEFAULT_SPEC
  #define CPP_CPU64_DEFAULT_SPEC ""
  #undef ASM_CPU32_DEFAULT_SPEC
! #define ASM_CPU32_DEFAULT_SPEC AS_SPARC32_FLAG AS_NIAGARA4_FLAG
  #undef ASM_CPU64_DEFAULT_SPEC
! #define ASM_CPU64_DEFAULT_SPEC AS_SPARC64_FLAG AS_NIAGARA4_FLAG
  #endif
  
  #if TARGET_CPU_DEFAULT == TARGET_CPU_niagara7
  #undef CPP_CPU64_DEFAULT_SPEC
  #define CPP_CPU64_DEFAULT_SPEC ""
  #undef ASM_CPU32_DEFAULT_SPEC
! #define ASM_CPU32_DEFAULT_SPEC AS_SPARC32_FLAG AS_NIAGARA7_FLAG
  #undef ASM_CPU64_DEFAULT_SPEC
! #define ASM_CPU64_DEFAULT_SPEC AS_SPARC64_FLAG AS_NIAGARA7_FLAG
  #endif
  
  #if TARGET_CPU_DEFAULT == TARGET_CPU_m8
  #undef CPP_CPU64_DEFAULT_SPEC
  #define CPP_CPU64_DEFAULT_SPEC ""
  #undef ASM_CPU32_DEFAULT_SPEC
! #define ASM_CPU32_DEFAULT_SPEC AS_SPARC32_FLAG AS_M8_FLAG
  #undef ASM_CPU64_DEFAULT_SPEC
! #define ASM_CPU64_DEFAULT_SPEC AS_SPARC64_FLAG AS_M8_FLAG
  #endif
  
  #undef CPP_CPU_SPEC
--- 111,146 ----
  #undef CPP_CPU64_DEFAULT_SPEC
  #define CPP_CPU64_DEFAULT_SPEC ""
  #undef ASM_CPU32_DEFAULT_SPEC
! #define ASM_CPU32_DEFAULT_SPEC "-xarch=v8plusd"
  #undef ASM_CPU64_DEFAULT_SPEC
! #define ASM_CPU64_DEFAULT_SPEC "-xarch=v9d"
  #endif
  
  #if TARGET_CPU_DEFAULT == TARGET_CPU_niagara4
  #undef CPP_CPU64_DEFAULT_SPEC
  #define CPP_CPU64_DEFAULT_SPEC ""
  #undef ASM_CPU32_DEFAULT_SPEC
! #define ASM_CPU32_DEFAULT_SPEC "-xarch=sparc4"
  #undef ASM_CPU64_DEFAULT_SPEC
! #define ASM_CPU64_DEFAULT_SPEC "-xarch=sparc4"
  #endif
  
  #if TARGET_CPU_DEFAULT == TARGET_CPU_niagara7
  #undef CPP_CPU64_DEFAULT_SPEC
  #define CPP_CPU64_DEFAULT_SPEC ""
  #undef ASM_CPU32_DEFAULT_SPEC
! #define ASM_CPU32_DEFAULT_SPEC "-xarch=sparc5"
  #undef ASM_CPU64_DEFAULT_SPEC
! #define ASM_CPU64_DEFAULT_SPEC "-xarch=sparc5"
  #endif
  
  #if TARGET_CPU_DEFAULT == TARGET_CPU_m8
  #undef CPP_CPU64_DEFAULT_SPEC
  #define CPP_CPU64_DEFAULT_SPEC ""
  #undef ASM_CPU32_DEFAULT_SPEC
! #define ASM_CPU32_DEFAULT_SPEC "-xarch=sparc6"
  #undef ASM_CPU64_DEFAULT_SPEC
! #define ASM_CPU64_DEFAULT_SPEC "-xarch=sparc6"
  #endif
  
  #undef CPP_CPU_SPEC
*************** extern const char *host_detect_local_cpu
*** 288,297 ****
  %{mcpu=ultrasparc3:" DEF_ARCH32_SPEC("-xarch=v8plusb") DEF_ARCH64_SPEC("-xarch=v9b") "} \
  %{mcpu=niagara:" DEF_ARCH32_SPEC("-xarch=v8plusb") DEF_ARCH64_SPEC("-xarch=v9b") "} \
  %{mcpu=niagara2:" DEF_ARCH32_SPEC("-xarch=v8plusb") DEF_ARCH64_SPEC("-xarch=v9b") "} \
! %{mcpu=niagara3:" DEF_ARCH32_SPEC("-xarch=v8plus" AS_NIAGARA3_FLAG) DEF_ARCH64_SPEC("-xarch=v9" AS_NIAGARA3_FLAG) "} \
! %{mcpu=niagara4:" DEF_ARCH32_SPEC(AS_SPARC32_FLAG AS_NIAGARA4_FLAG) DEF_ARCH64_SPEC(AS_SPARC64_FLAG AS_NIAGARA4_FLAG) "} \
! %{mcpu=niagara7:" DEF_ARCH32_SPEC(AS_SPARC32_FLAG AS_NIAGARA7_FLAG) DEF_ARCH64_SPEC(AS_SPARC64_FLAG AS_NIAGARA7_FLAG) "} \
! %{mcpu=m8:" DEF_ARCH32_SPEC(AS_SPARC32_FLAG AS_M8_FLAG) DEF_ARCH64_SPEC(AS_SPARC64_FLAG AS_M8_FLAG) "} \
  %{!mcpu=m8:%{!mcpu=niagara7:%{!mcpu=niagara4:%{!mcpu=niagara3:%{!mcpu=niagara2:%{!mcpu=niagara:%{!mcpu=ultrasparc3:%{!mcpu=ultrasparc:%{!mcpu=v9:%{mcpu*:" DEF_ARCH32_SPEC("-xarch=v8") DEF_ARCH64_SPEC("-xarch=v9") "}}}}}}}}}} \
  %{!mcpu*:%(asm_cpu_default)} \
  "
--- 256,265 ----
  %{mcpu=ultrasparc3:" DEF_ARCH32_SPEC("-xarch=v8plusb") DEF_ARCH64_SPEC("-xarch=v9b") "} \
  %{mcpu=niagara:" DEF_ARCH32_SPEC("-xarch=v8plusb") DEF_ARCH64_SPEC("-xarch=v9b") "} \
  %{mcpu=niagara2:" DEF_ARCH32_SPEC("-xarch=v8plusb") DEF_ARCH64_SPEC("-xarch=v9b") "} \
! %{mcpu=niagara3:" DEF_ARCH32_SPEC("-xarch=v8plusd") DEF_ARCH64_SPEC("-xarch=v9d") "} \
! %{mcpu=niagara4:" DEF_ARCH32_SPEC("-xarch=sparc4") DEF_ARCH64_SPEC("-xarch=sparc4") "} \
! %{mcpu=niagara7:" DEF_ARCH32_SPEC("-xarch=sparc5") DEF_ARCH64_SPEC("-xarch=sparc5") "} \
! %{mcpu=m8:" DEF_ARCH32_SPEC("-xarch=sparc6") DEF_ARCH64_SPEC("-xarch=sparc6") "} \
  %{!mcpu=m8:%{!mcpu=niagara7:%{!mcpu=niagara4:%{!mcpu=niagara3:%{!mcpu=niagara2:%{!mcpu=niagara:%{!mcpu=ultrasparc3:%{!mcpu=ultrasparc:%{!mcpu=v9:%{mcpu*:" DEF_ARCH32_SPEC("-xarch=v8") DEF_ARCH64_SPEC("-xarch=v9") "}}}}}}}}}} \
  %{!mcpu*:%(asm_cpu_default)} \
  "
diff -Nrcpad gcc-16-20260208/gcc/config/sparc/sparc.cc gcc-16-20260215/gcc/config/sparc/sparc.cc
*** gcc-16-20260208/gcc/config/sparc/sparc.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/config/sparc/sparc.cc	Sun Feb 15 22:32:06 2026
*************** sparc_option_override (void)
*** 1891,1908 ****
  
    target_flags &= ~cpu->disable;
    target_flags |= (cpu->enable
- #ifndef HAVE_AS_FMAF_HPC_VIS3
- 		   & ~(MASK_FMAF | MASK_VIS3)
- #endif
- #ifndef HAVE_AS_SPARC4
- 		   & ~MASK_CBCOND
- #endif
- #ifndef HAVE_AS_SPARC5_VIS4
- 		   & ~(MASK_VIS4 | MASK_SUBXC)
- #endif
- #ifndef HAVE_AS_SPARC6
- 		   & ~(MASK_VIS4B)
- #endif
  #ifndef HAVE_AS_LEON
  		   & ~(MASK_LEON | MASK_LEON3)
  #endif
--- 1891,1896 ----
diff -Nrcpad gcc-16-20260208/gcc/config/sparc/sparc.h gcc-16-20260215/gcc/config/sparc/sparc.h
*** gcc-16-20260208/gcc/config/sparc/sparc.h	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/config/sparc/sparc.h	Sun Feb 15 22:32:06 2026
*************** along with GCC; see the file COPYING3.
*** 174,192 ****
  #endif
  #if TARGET_CPU_DEFAULT == TARGET_CPU_niagara3
  #define CPP_CPU64_DEFAULT_SPEC "-D__sparc_v9__"
! #define ASM_CPU64_DEFAULT_SPEC "-Av9" AS_NIAGARA3_FLAG
  #endif
  #if TARGET_CPU_DEFAULT == TARGET_CPU_niagara4
  #define CPP_CPU64_DEFAULT_SPEC "-D__sparc_v9__"
! #define ASM_CPU64_DEFAULT_SPEC AS_NIAGARA4_FLAG
  #endif
  #if TARGET_CPU_DEFAULT == TARGET_CPU_niagara7
  #define CPP_CPU64_DEFAULT_SPEC "-D__sparc_v9__"
! #define ASM_CPU64_DEFAULT_SPEC AS_NIAGARA7_FLAG
  #endif
  #if TARGET_CPU_DEFAULT == TARGET_CPU_m8
  #define CPP_CPU64_DEFAULT_SPEC "-D__sparc_v9__"
! #define ASM_CPU64_DEFAULT_SPEC AS_M8_FLAG
  #endif
  
  #else
--- 174,192 ----
  #endif
  #if TARGET_CPU_DEFAULT == TARGET_CPU_niagara3
  #define CPP_CPU64_DEFAULT_SPEC "-D__sparc_v9__"
! #define ASM_CPU64_DEFAULT_SPEC "-Av9d"
  #endif
  #if TARGET_CPU_DEFAULT == TARGET_CPU_niagara4
  #define CPP_CPU64_DEFAULT_SPEC "-D__sparc_v9__"
! #define ASM_CPU64_DEFAULT_SPEC "-xarch=sparc4"
  #endif
  #if TARGET_CPU_DEFAULT == TARGET_CPU_niagara7
  #define CPP_CPU64_DEFAULT_SPEC "-D__sparc_v9__"
! #define ASM_CPU64_DEFAULT_SPEC "-xarch=sparc5"
  #endif
  #if TARGET_CPU_DEFAULT == TARGET_CPU_m8
  #define CPP_CPU64_DEFAULT_SPEC "-D__sparc_v9__"
! #define ASM_CPU64_DEFAULT_SPEC "-xarch=sparc6"
  #endif
  
  #else
*************** along with GCC; see the file COPYING3.
*** 344,353 ****
  %{mcpu=ultrasparc3:%{!mv8plus:-Av9b}} \
  %{mcpu=niagara:%{!mv8plus:-Av9b}} \
  %{mcpu=niagara2:%{!mv8plus:-Av9b}} \
! %{mcpu=niagara3:%{!mv8plus:-Av9" AS_NIAGARA3_FLAG "}} \
! %{mcpu=niagara4:%{!mv8plus:" AS_NIAGARA4_FLAG "}} \
! %{mcpu=niagara7:%{!mv8plus:" AS_NIAGARA7_FLAG "}} \
! %{mcpu=m8:%{!mv8plus:" AS_M8_FLAG "}} \
  %{!mcpu*:%(asm_cpu_default)} \
  "
  
--- 344,353 ----
  %{mcpu=ultrasparc3:%{!mv8plus:-Av9b}} \
  %{mcpu=niagara:%{!mv8plus:-Av9b}} \
  %{mcpu=niagara2:%{!mv8plus:-Av9b}} \
! %{mcpu=niagara3:%{!mv8plus:-Av9d}} \
! %{mcpu=niagara4:%{!mv8plus:-xarch=sparc4}} \
! %{mcpu=niagara7:%{!mv8plus:-xarch=sparc5}} \
! %{mcpu=m8:%{!mv8plus:-xarch=sparc6}} \
  %{!mcpu*:%(asm_cpu_default)} \
  "
  
*************** extern int sparc_indent_opcode;
*** 1624,1653 ****
     activated in separate configuration files.  */
  #define TARGET_TLS HAVE_AS_TLS
  
- #ifdef HAVE_AS_FMAF_HPC_VIS3
- #define AS_NIAGARA3_FLAG "d"
- #else
- #define AS_NIAGARA3_FLAG "b"
- #endif
- 
- #ifdef HAVE_AS_SPARC4
- #define AS_NIAGARA4_FLAG "-xarch=sparc4"
- #else
- #define AS_NIAGARA4_FLAG "-Av9" AS_NIAGARA3_FLAG
- #endif
- 
- #ifdef HAVE_AS_SPARC5_VIS4
- #define AS_NIAGARA7_FLAG "-xarch=sparc5"
- #else
- #define AS_NIAGARA7_FLAG AS_NIAGARA4_FLAG
- #endif
- 
- #ifdef HAVE_AS_SPARC6
- #define AS_M8_FLAG "-xarch=sparc6"
- #else
- #define AS_M8_FLAG AS_NIAGARA7_FLAG
- #endif
- 
  #ifdef HAVE_AS_LEON
  #define AS_LEON_FLAG "-Aleon"
  #define AS_LEONV7_FLAG "-Aleon"
--- 1624,1629 ----
diff -Nrcpad gcc-16-20260208/gcc/config/sparc/sparc.md gcc-16-20260215/gcc/config/sparc/sparc.md
*** gcc-16-20260208/gcc/config/sparc/sparc.md	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/config/sparc/sparc.md	Sun Feb 15 22:32:06 2026
***************
*** 1713,1723 ****
  			      UNSPEC_MOVE_PIC)))]
    "flag_pic"
  {
- #ifdef HAVE_AS_SPARC_GOTDATA_OP
    return "xor\t%1, %%gdop_lox10(%a2), %0";
- #else
-   return "or\t%1, %%lo(%a2), %0";
- #endif
  })
  
  (define_insn "movsi_high_pic"
--- 1713,1719 ----
***************
*** 1725,1735 ****
          (high:SI (unspec:SI [(match_operand 1 "" "")] UNSPEC_MOVE_PIC)))]
    "flag_pic && check_pic (1)"
  {
- #ifdef HAVE_AS_SPARC_GOTDATA_OP
    return "sethi\t%%gdop_hix22(%a1), %0";
- #else
-   return "sethi\t%%hi(%a1), %0";
- #endif
  })
  
  (define_insn "movsi_pic_gotdata_op"
--- 1721,1727 ----
***************
*** 1740,1750 ****
  		   UNSPEC_MOVE_GOTDATA))]
    "flag_pic && check_pic (1)"
  {
- #ifdef HAVE_AS_SPARC_GOTDATA_OP
    return "ld\t[%1 + %2], %0, %%gdop(%a3)";
- #else
-   return "ld\t[%1 + %2], %0";
- #endif
  }
    [(set_attr "type" "load")
     (set_attr "subtype" "regular")])
--- 1732,1738 ----
***************
*** 1934,1944 ****
  			      UNSPEC_MOVE_PIC)))]
    "TARGET_ARCH64 && flag_pic"
  {
- #ifdef HAVE_AS_SPARC_GOTDATA_OP
    return "xor\t%1, %%gdop_lox10(%a2), %0";
- #else
-   return "or\t%1, %%lo(%a2), %0";
- #endif
  })
  
  (define_insn "movdi_high_pic"
--- 1922,1928 ----
***************
*** 1946,1956 ****
          (high:DI (unspec:DI [(match_operand 1 "" "")] UNSPEC_MOVE_PIC)))]
    "TARGET_ARCH64 && flag_pic && check_pic (1)"
  {
- #ifdef HAVE_AS_SPARC_GOTDATA_OP
    return "sethi\t%%gdop_hix22(%a1), %0";
- #else
-   return "sethi\t%%hi(%a1), %0";
- #endif
  })
  
  (define_insn "movdi_pic_gotdata_op"
--- 1930,1936 ----
***************
*** 1961,1971 ****
  		   UNSPEC_MOVE_GOTDATA))]
    "TARGET_ARCH64 && flag_pic && check_pic (1)"
  {
- #ifdef HAVE_AS_SPARC_GOTDATA_OP
    return "ldx\t[%1 + %2], %0, %%gdop(%a3)";
- #else
-   return "ldx\t[%1 + %2], %0";
- #endif
  }
    [(set_attr "type" "load")
     (set_attr "subtype" "regular")])
--- 1941,1947 ----
diff -Nrcpad gcc-16-20260208/gcc/config/vax/vax.cc gcc-16-20260215/gcc/config/vax/vax.cc
*** gcc-16-20260208/gcc/config/vax/vax.cc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/config/vax/vax.cc	Sun Feb 15 22:32:06 2026
*************** indirectable_address_p (rtx x, bool stri
*** 1811,1817 ****
  static bool
  nonindexed_address_p (rtx x, bool strict)
  {
-   rtx xfoo0;
    if (REG_P (x))
      {
        if (! reload_in_progress
--- 1811,1816 ----
*************** nonindexed_address_p (rtx x, bool strict
*** 1823,1833 ****
      return true;
    if (indirectable_address_p (x, strict, false))
      return true;
!   xfoo0 = XEXP (x, 0);
!   if (MEM_P (x) && indirectable_address_p (xfoo0, strict, true))
      return true;
    if ((GET_CODE (x) == PRE_DEC || GET_CODE (x) == POST_INC)
!       && BASE_REGISTER_P (xfoo0, strict))
      return true;
    return false;
  }
--- 1822,1831 ----
      return true;
    if (indirectable_address_p (x, strict, false))
      return true;
!   if (MEM_P (x) && indirectable_address_p (XEXP (x, 0), strict, true))
      return true;
    if ((GET_CODE (x) == PRE_DEC || GET_CODE (x) == POST_INC)
!       && BASE_REGISTER_P (XEXP (x, 0), strict))
      return true;
    return false;
  }
diff -Nrcpad gcc-16-20260208/gcc/config/vax/vax.md gcc-16-20260215/gcc/config/vax/vax.md
*** gcc-16-20260208/gcc/config/vax/vax.md	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/config/vax/vax.md	Sun Feb 15 22:32:06 2026
***************
*** 2909,2915 ****
    "#"
    "reload_completed"
    [(parallel
!      [(match_dup 1)
        (set (pc)
  	   (plus:SI (sign_extend:SI
  		      (mem:HI (plus:SI
--- 2909,2915 ----
    "#"
    "reload_completed"
    [(parallel
!      [(use (match_dup 1))
        (set (pc)
  	   (plus:SI (sign_extend:SI
  		      (mem:HI (plus:SI
***************
*** 2922,2928 ****
    "")
  
  (define_insn "*casesi1"
!   [(match_operand:SI 1 "const_int_operand" "n")
     (set (pc)
  	(plus:SI (sign_extend:SI
  		   (mem:HI (plus:SI
--- 2922,2928 ----
    "")
  
  (define_insn "*casesi1"
!   [(use (match_operand:SI 1 "const_int_operand" "n"))
     (set (pc)
  	(plus:SI (sign_extend:SI
  		   (mem:HI (plus:SI
diff -Nrcpad gcc-16-20260208/gcc/config.gcc gcc-16-20260215/gcc/config.gcc
*** gcc-16-20260208/gcc/config.gcc	Sun Feb  8 22:32:06 2026
--- gcc-16-20260215/gcc/config.gcc	Sun Feb 15 22:32:05 2026
*************** case "${target}" in
*** 4357,4364 ****
  		fi
  		for which in cpu arch tune; do
  			eval "val=\$with_$which"
! 			base_val=`echo $val | sed -E -e 's/\+.*//'`
! 			ext_val=`echo $val | sed -E -e 's/[a-z0-9.-]+//'`
  
  			if [ $which = arch ]; then
  			  def=aarch64-arches.def
--- 4357,4371 ----
  		fi
  		for which in cpu arch tune; do
  			eval "val=\$with_$which"
! 			filtered_val=`echo "$val" | sed -E -e 's/[-A-Za-z0-9.+]+//'`
! 			if [ x"$filtered_val" != x ]; then
! 			  echo "Invalid characters used in --with-$which=$val"
! 			  exit 1
! 			fi
! 
! 			escaped_val=`echo "$val" | sed -E -e 's/\./\\\./g'`
! 			base_val=`echo "$escaped_val" | sed -E -e 's/\+.*//'`
! 			ext_val=`echo "$escaped_val" | sed -E -e 's/^[^+]*//'`
  
  			if [ $which = arch ]; then
  			  def=aarch64-arches.def
*************** case "${target}" in
*** 4390,4409 ****
  
  			  while [ x"$ext_val" != x ]
  			  do
! 				ext_val=`echo $ext_val | sed -E -e 's/\+//'`
! 				ext=`echo $ext_val | sed -E -e 's/\+.*//'`
! 				base_ext=`echo $ext | sed -E -e 's/^no//'`
  				opt_line=`echo -e "$options_parsed" | \
  					grep "^\"$base_ext\""`
  
! 				if [ x"$base_ext" = x ] \
! 				    || [ x"$opt_line" != x ]; then
  				  true
  				else
  				  echo "Unknown extension used in --with-$which=$val" 1>&2
  				  exit 1
  				fi
! 				ext_val=`echo $ext_val | sed -E -e 's/[a-z0-9-]+//'`
  			  done
  
  			  true
--- 4397,4415 ----
  
  			  while [ x"$ext_val" != x ]
  			  do
! 				ext_val=`echo "$ext_val" | sed -E -e 's/\+//'`
! 				ext=`echo "$ext_val" | sed -E -e 's/\+.*//'`
! 				base_ext=`echo "$ext" | sed -E -e 's/^no//'`
  				opt_line=`echo -e "$options_parsed" | \
  					grep "^\"$base_ext\""`
  
! 				if [ x"$opt_line" != x ]; then
  				  true
  				else
  				  echo "Unknown extension used in --with-$which=$val" 1>&2
  				  exit 1
  				fi
! 				ext_val=`echo "$ext_val" | sed -E -e 's/[^+]+//'`
  			  done
  
  			  true
diff -Nrcpad gcc-16-20260208/gcc/config.in gcc-16-20260215/gcc/config.in
*** gcc-16-20260208/gcc/config.in	Sun Feb  8 22:32:19 2026
--- gcc-16-20260215/gcc/config.in	Sun Feb 15 22:32:17 2026
***************
*** 477,488 ****
  #endif
  
  
- /* Define if your assembler supports FMAF, HPC, and VIS 3.0 instructions. */
- #ifndef USED_FOR_TARGET
- #undef HAVE_AS_FMAF_HPC_VIS3
- #endif
- 
- 
  /* Define if your assembler supports the --gdwarf2 option. */
  #ifndef USED_FOR_TARGET
  #undef HAVE_AS_GDWARF2_DEBUG_FLAG
--- 477,482 ----
***************
*** 786,815 ****
  #endif
  
  
- /* Define if your assembler supports SPARC4 instructions. */
- #ifndef USED_FOR_TARGET
- #undef HAVE_AS_SPARC4
- #endif
- 
- 
- /* Define if your assembler supports SPARC5 and VIS 4.0 instructions. */
- #ifndef USED_FOR_TARGET
- #undef HAVE_AS_SPARC5_VIS4
- #endif
- 
- 
- /* Define if your assembler supports SPARC6 instructions. */
- #ifndef USED_FOR_TARGET
- #undef HAVE_AS_SPARC6
- #endif
- 
- 
- /* Define if your assembler and linker support GOTDATA_OP relocs. */
- #ifndef USED_FOR_TARGET
- #undef HAVE_AS_SPARC_GOTDATA_OP
- #endif
- 
- 
  /* Define if your assembler supports call36 relocation. */
  #ifndef USED_FOR_TARGET
  #undef HAVE_AS_SUPPORT_CALL36
--- 780,785 ----
diff -Nrcpad gcc-16-20260208/gcc/configure gcc-16-20260215/gcc/configure
*** gcc-16-20260208/gcc/configure	Sun Feb  8 22:32:19 2026
--- gcc-16-20260215/gcc/configure	Sun Feb 15 22:32:17 2026
*************** $as_echo "#define HAVE_ZSTD_H 1" >>confd
*** 10661,10670 ****
  elif test "x$with_zstd" != x; then
      as_fn_error $? "Unable to find zstd.h.  See config.log for details." "$LINENO" 5
  fi
- fi
  
  CXXFLAGS="$saved_CXXFLAGS"
  LDFLAGS="$saved_LDFLAGS"
  
  
  
--- 10661,10670 ----
  elif test "x$with_zstd" != x; then
      as_fn_error $? "Unable to find zstd.h.  See config.log for details." "$LINENO" 5
  fi
  
  CXXFLAGS="$saved_CXXFLAGS"
  LDFLAGS="$saved_LDFLAGS"
+ fi
  
  
  
*************** else
*** 26188,26202 ****
      as_32_opt=-m32
      as_64_opt=-m64
      ;;
!   i?86-*-*:* | x86_64-*-*:* )
          case "$target" in
!       i?86-*-*)
  	gcc_cv_as_flags=--32
  	;;
        x86_64-*-linux-gnux32*)
  	gcc_cv_as_flags=--x32
  	;;
!       x86_64-*-linux*)
  	gcc_cv_as_flags=--64
  	;;
      esac
--- 26188,26202 ----
      as_32_opt=-m32
      as_64_opt=-m64
      ;;
!   i?86-*-*:* | x86_64-*-*:* | sparc*-*-*:*)
          case "$target" in
!       i?86-*-* | sparc-*-*)
  	gcc_cv_as_flags=--32
  	;;
        x86_64-*-linux-gnux32*)
  	gcc_cv_as_flags=--x32
  	;;
!       x86_64-*-* | sparcv9-*-* | sparc64-*-*)
  	gcc_cv_as_flags=--64
  	;;
      esac
*************** $as_echo "#define HAVE_AS_RELAX_OPTION 1
*** 29229,29284 ****
  fi
  
  
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for GOTDATA_OP relocs" >&5
- $as_echo_n "checking assembler for GOTDATA_OP relocs... " >&6; }
- if ${gcc_cv_as_sparc_gotdata_op+:} false; then :
-   $as_echo_n "(cached) " >&6
- else
-   gcc_cv_as_sparc_gotdata_op=no
-   if test x"$gcc_cv_as" != x; then
-     $as_echo '.text
- .align 4
- foo:
- 	nop
- bar:
- 	sethi %gdop_hix22(foo), %g1
- 	xor    %g1, %gdop_lox10(foo), %g1
- 	ld    [%l7 + %g1], %g2, %gdop(foo)' > conftest.s
-     if { ac_try='$gcc_cv_as $gcc_cv_as_flags -K PIC -o conftest.o conftest.s >&5'
-   { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
-   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-   test $ac_status = 0; }; }
-     then
- 	if test x$gcc_cv_ld != x \
-        && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1; then
-          if test x$gcc_cv_objdump != x; then
-            if $gcc_cv_objdump -s -j .text conftest 2> /dev/null \
-               | grep ' 03000004 82186004 c405c001'> /dev/null 2>&1; then
- 	       gcc_cv_as_sparc_gotdata_op=no
-            else
- 	       gcc_cv_as_sparc_gotdata_op=yes
-            fi
-          fi
-        fi
-        rm -f conftest
-     else
-       echo "configure: failed program was" >&5
-       cat conftest.s >&5
-     fi
-     rm -f conftest.o conftest.s
-   fi
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_sparc_gotdata_op" >&5
- $as_echo "$gcc_cv_as_sparc_gotdata_op" >&6; }
- if test $gcc_cv_as_sparc_gotdata_op = yes; then
- 
- $as_echo "#define HAVE_AS_SPARC_GOTDATA_OP 1" >>confdefs.h
- 
- fi
- 
- 
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for offsetable %lo()" >&5
  $as_echo_n "checking assembler for offsetable %lo()... " >&6; }
  if ${gcc_cv_as_sparc_offsetable_lo10+:} false; then :
--- 29229,29234 ----
*************** $as_echo "#define HAVE_AS_OFFSETABLE_LO1
*** 29316,29477 ****
  
  fi
  
- 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for FMAF, HPC, and VIS 3.0 instructions" >&5
- $as_echo_n "checking assembler for FMAF, HPC, and VIS 3.0 instructions... " >&6; }
- if ${gcc_cv_as_sparc_fmaf+:} false; then :
-   $as_echo_n "(cached) " >&6
- else
-   gcc_cv_as_sparc_fmaf=no
-   if test x"$gcc_cv_as" != x; then
-     $as_echo '.text
-        .register %g2, #scratch
-        .register %g3, #scratch
-        .align 4
-        fmaddd %f0, %f2, %f4, %f6
-        addxccc %g1, %g2, %g3
-        fsrl32 %f2, %f4, %f8
-        fnaddd %f10, %f12, %f14' > conftest.s
-     if { ac_try='$gcc_cv_as $gcc_cv_as_flags -xarch=v9d -o conftest.o conftest.s >&5'
-   { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
-   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-   test $ac_status = 0; }; }
-     then
- 	gcc_cv_as_sparc_fmaf=yes
-     else
-       echo "configure: failed program was" >&5
-       cat conftest.s >&5
-     fi
-     rm -f conftest.o conftest.s
-   fi
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_sparc_fmaf" >&5
- $as_echo "$gcc_cv_as_sparc_fmaf" >&6; }
- if test $gcc_cv_as_sparc_fmaf = yes; then
- 
- $as_echo "#define HAVE_AS_FMAF_HPC_VIS3 1" >>confdefs.h
- 
- fi
- 
- 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for SPARC4 instructions" >&5
- $as_echo_n "checking assembler for SPARC4 instructions... " >&6; }
- if ${gcc_cv_as_sparc_sparc4+:} false; then :
-   $as_echo_n "(cached) " >&6
- else
-   gcc_cv_as_sparc_sparc4=no
-   if test x"$gcc_cv_as" != x; then
-     $as_echo '.text
-        .register %g2, #scratch
-        .register %g3, #scratch
-        .align 4
-        cxbe %g2, %g3, 1f
- 1:     cwbneg %g2, %g3, 1f
- 1:     sha1
-        md5
-        aes_kexpand0 %f4, %f6, %f8
-        des_round %f38, %f40, %f42, %f44
-        camellia_f %f54, %f56, %f58, %f60
-        kasumi_fi_xor %f46, %f48, %f50, %f52' > conftest.s
-     if { ac_try='$gcc_cv_as $gcc_cv_as_flags -xarch=sparc4 -o conftest.o conftest.s >&5'
-   { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
-   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-   test $ac_status = 0; }; }
-     then
- 	gcc_cv_as_sparc_sparc4=yes
-     else
-       echo "configure: failed program was" >&5
-       cat conftest.s >&5
-     fi
-     rm -f conftest.o conftest.s
-   fi
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_sparc_sparc4" >&5
- $as_echo "$gcc_cv_as_sparc_sparc4" >&6; }
- if test $gcc_cv_as_sparc_sparc4 = yes; then
- 
- $as_echo "#define HAVE_AS_SPARC4 1" >>confdefs.h
- 
- fi
- 
- 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for SPARC5 and VIS 4.0 instructions" >&5
- $as_echo_n "checking assembler for SPARC5 and VIS 4.0 instructions... " >&6; }
- if ${gcc_cv_as_sparc_sparc5+:} false; then :
-   $as_echo_n "(cached) " >&6
- else
-   gcc_cv_as_sparc_sparc5=no
-   if test x"$gcc_cv_as" != x; then
-     $as_echo '.text
-        .register %g2, #scratch
-        .register %g3, #scratch
-        .align 4
-        subxc %g1, %g2, %g3
-        fpadd8 %f0, %f2, %f4' > conftest.s
-     if { ac_try='$gcc_cv_as $gcc_cv_as_flags -xarch=sparc5 -o conftest.o conftest.s >&5'
-   { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
-   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-   test $ac_status = 0; }; }
-     then
- 	gcc_cv_as_sparc_sparc5=yes
-     else
-       echo "configure: failed program was" >&5
-       cat conftest.s >&5
-     fi
-     rm -f conftest.o conftest.s
-   fi
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_sparc_sparc5" >&5
- $as_echo "$gcc_cv_as_sparc_sparc5" >&6; }
- if test $gcc_cv_as_sparc_sparc5 = yes; then
- 
- $as_echo "#define HAVE_AS_SPARC5_VIS4 1" >>confdefs.h
- 
- fi
- 
- 
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for SPARC6 instructions" >&5
- $as_echo_n "checking assembler for SPARC6 instructions... " >&6; }
- if ${gcc_cv_as_sparc_sparc6+:} false; then :
-   $as_echo_n "(cached) " >&6
- else
-   gcc_cv_as_sparc_sparc6=no
-   if test x"$gcc_cv_as" != x; then
-     $as_echo '.text
-        .register %g2, #scratch
-        .register %g3, #scratch
-        .align 4
-        rd %entropy, %g1
-        fpsll64x %f0, %f2, %f4' > conftest.s
-     if { ac_try='$gcc_cv_as $gcc_cv_as_flags -xarch=sparc6 -o conftest.o conftest.s >&5'
-   { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
-   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-   test $ac_status = 0; }; }
-     then
- 	gcc_cv_as_sparc_sparc6=yes
-     else
-       echo "configure: failed program was" >&5
-       cat conftest.s >&5
-     fi
-     rm -f conftest.o conftest.s
-   fi
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_sparc_sparc6" >&5
- $as_echo "$gcc_cv_as_sparc_sparc6" >&6; }
- if test $gcc_cv_as_sparc_sparc6 = yes; then
- 
- $as_echo "#define HAVE_AS_SPARC6 1" >>confdefs.h
- 
- fi
- 
  
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for LEON instructions" >&5
  $as_echo_n "checking assembler for LEON instructions... " >&6; }
--- 29266,29271 ----
diff -Nrcpad gcc-16-20260208/gcc/configure.ac gcc-16-20260215/gcc/configure.ac
*** gcc-16-20260208/gcc/configure.ac	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/configure.ac	Sun Feb 15 22:32:06 2026
*************** if test $gcc_cv_header_zstd_h = yes; the
*** 1565,1574 ****
  elif test "x$with_zstd" != x; then
      as_fn_error $? "Unable to find zstd.h.  See config.log for details." "$LINENO" 5
  fi
- fi
  
  CXXFLAGS="$saved_CXXFLAGS"
  LDFLAGS="$saved_LDFLAGS"
  
  dnl Disabled until we have a complete test for buggy enum bitfields.
  dnl gcc_AC_C_ENUM_BF_UNSIGNED
--- 1565,1574 ----
  elif test "x$with_zstd" != x; then
      as_fn_error $? "Unable to find zstd.h.  See config.log for details." "$LINENO" 5
  fi
  
  CXXFLAGS="$saved_CXXFLAGS"
  LDFLAGS="$saved_LDFLAGS"
+ fi
  
  dnl Disabled until we have a complete test for buggy enum bitfields.
  dnl gcc_AC_C_ENUM_BF_UNSIGNED
*************** EOF
*** 4730,4761 ****
        [AC_DEFINE(HAVE_AS_RELAX_OPTION, 1,
  		[Define if your assembler supports -relax option.])])
  
-     gcc_GAS_CHECK_FEATURE([GOTDATA_OP relocs],
-       gcc_cv_as_sparc_gotdata_op,
-       [-K PIC],
- [.text
- .align 4
- foo:
- 	nop
- bar:
- 	sethi %gdop_hix22(foo), %g1
- 	xor    %g1, %gdop_lox10(foo), %g1
- 	ld    [[%l7 + %g1]], %g2, %gdop(foo)],
-       [if test x$gcc_cv_ld != x \
-        && $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1; then
-          if test x$gcc_cv_objdump != x; then
-            if $gcc_cv_objdump -s -j .text conftest 2> /dev/null \
-               | grep ' 03000004 82186004 c405c001'> /dev/null 2>&1; then
- 	       gcc_cv_as_sparc_gotdata_op=no
-            else
- 	       gcc_cv_as_sparc_gotdata_op=yes
-            fi
-          fi
-        fi
-        rm -f conftest],
-       [AC_DEFINE(HAVE_AS_SPARC_GOTDATA_OP, 1,
- 		[Define if your assembler and linker support GOTDATA_OP relocs.])])
- 
      gcc_GAS_CHECK_FEATURE([offsetable %lo()],
        gcc_cv_as_sparc_offsetable_lo10,
        [-xarch=v9],
--- 4730,4735 ----
*************** bar:
*** 4770,4831 ****
         [AC_DEFINE(HAVE_AS_OFFSETABLE_LO10, 1,
  	         [Define if your assembler supports offsetable %lo().])])
  
-     gcc_GAS_CHECK_FEATURE([FMAF, HPC, and VIS 3.0 instructions],
-       gcc_cv_as_sparc_fmaf,
-       [-xarch=v9d],
-       [.text
-        .register %g2, #scratch
-        .register %g3, #scratch
-        .align 4
-        fmaddd %f0, %f2, %f4, %f6
-        addxccc %g1, %g2, %g3
-        fsrl32 %f2, %f4, %f8
-        fnaddd %f10, %f12, %f14],,
-       [AC_DEFINE(HAVE_AS_FMAF_HPC_VIS3, 1,
-                 [Define if your assembler supports FMAF, HPC, and VIS 3.0 instructions.])])
- 
-     gcc_GAS_CHECK_FEATURE([SPARC4 instructions],
-       gcc_cv_as_sparc_sparc4,
-       [-xarch=sparc4],
-       [.text
-        .register %g2, #scratch
-        .register %g3, #scratch
-        .align 4
-        cxbe %g2, %g3, 1f
- 1:     cwbneg %g2, %g3, 1f
- 1:     sha1
-        md5
-        aes_kexpand0 %f4, %f6, %f8
-        des_round %f38, %f40, %f42, %f44
-        camellia_f %f54, %f56, %f58, %f60
-        kasumi_fi_xor %f46, %f48, %f50, %f52],,
-       [AC_DEFINE(HAVE_AS_SPARC4, 1,
-                 [Define if your assembler supports SPARC4 instructions.])])
- 
-     gcc_GAS_CHECK_FEATURE([SPARC5 and VIS 4.0 instructions],
-       gcc_cv_as_sparc_sparc5,
-       [-xarch=sparc5],
-       [.text
-        .register %g2, #scratch
-        .register %g3, #scratch
-        .align 4
-        subxc %g1, %g2, %g3
-        fpadd8 %f0, %f2, %f4],,
-       [AC_DEFINE(HAVE_AS_SPARC5_VIS4, 1,
-                 [Define if your assembler supports SPARC5 and VIS 4.0 instructions.])])
- 
-     gcc_GAS_CHECK_FEATURE([SPARC6 instructions],
-       gcc_cv_as_sparc_sparc6,
-       [-xarch=sparc6],
-       [.text
-        .register %g2, #scratch
-        .register %g3, #scratch
-        .align 4
-        rd %entropy, %g1
-        fpsll64x %f0, %f2, %f4],,
-       [AC_DEFINE(HAVE_AS_SPARC6, 1,
-                 [Define if your assembler supports SPARC6 instructions.])])
- 
      gcc_GAS_CHECK_FEATURE([LEON instructions],
        gcc_cv_as_sparc_leon,
        [-Aleon],
--- 4744,4749 ----
diff -Nrcpad gcc-16-20260208/gcc/cp/ChangeLog gcc-16-20260215/gcc/cp/ChangeLog
*** gcc-16-20260208/gcc/cp/ChangeLog	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/cp/ChangeLog	Sun Feb 15 22:32:06 2026
***************
*** 1,3 ****
--- 1,151 ----
+ 2026-02-13  Marek Polacek  <polacek@redhat.com>
+ 
+ 	* cp-tree.h (inform_tree_category): Declare.
+ 	* error.cc (inform_tree_category): New.
+ 	* parser.cc (cp_parser_splice_specifier): Use OVL_FIRST when checking
+ 	for TEMPLATE_DECL.
+ 	(cp_parser_splice_type_specifier): Reword an error message.  Call
+ 	inform_tree_category.
+ 	(cp_parser_splice_expression): Check check_splice_expr earlier.  Reword
+ 	error messages.  Call inform_tree_category.  Turn an error into an
+ 	assert.  Use missing_template_diag instead of giving an error about
+ 	a missing 'template' keyword.
+ 	(cp_parser_splice_scope_specifier): Reword an error message.  Call
+ 	inform_tree_category.
+ 	(missing_template_diag): Forward declare.  Drop "enum" in a parameter.
+ 	* reflect.cc (check_splice_expr): Reword error messages.  Call
+ 	inform_tree_category.
+ 
+ 2026-02-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/124012
+ 	* reflect.cc (check_out_of_consteval_use_r): New function.
+ 	(check_out_of_consteval_use): Use it instead of lambda.  Don't ignore
+ 	constexpr/constinit vars in the walker and walk DECL_VALUE_EXPR of
+ 	vars which have it.  Ignore expr equal to constexpr VAR_DECL.  In
+ 	diagnostics only complain about missing constexpr on VAR_DECLs without
+ 	that flag and never suggest constinit.  Remove constinit traces from
+ 	function comment.
+ 
+ 2026-02-13  Dhruv Chawla  <dhruvc@nvidia.com>
+ 
+ 	* Make-lang.in (cc1plus.fda): Likewise.
+ 
+ 2026-02-12  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	* constraint.cc (finish_shorthand_constraint): Add is_non_type
+ 	parameter.  Handle constrained auto NTTPs.
+ 	* cp-tree.h (copy_template_args): Declare.
+ 	(expand_template_argument_pack): Declare.
+ 	(finish_shorthand_constraint): Adjust declaration.
+ 	* mangle.cc (write_template_param_decl): Obtain constraints of
+ 	an auto NTTP through TEMPLATE_PARM_CONSTRAINTS instead of
+ 	PLACEHOLDER_TYPE_CONSTRAINTS.
+ 	* parser.cc (cp_parser_constrained_type_template_parm): Inline
+ 	into its only caller and remove.
+ 	(cp_parser_constrained_non_type_template_parm): Likewise.
+ 	(finish_constrained_parameter): Simplify after the above.  Replace
+ 	the type of an ordinary constrained auto NTTP with a
+ 	non-constrained one and set TEMPLATE_PARM_CONSTRAINTS for it.
+ 	(cp_parser_template_parameter): Dispatch to
+ 	finish_constrained_parameter for a constrained auto NTTP.
+ 	* pt.cc (process_template_parm): Pass is_non_type to
+ 	finish_shorthand_constraint.  Use TEMPLATE_PARM_CONSTRAINTS
+ 	instead of TREE_TYPE for clarity.
+ 	(expand_template_argument_pack): Remove forward declaration.
+ 	(copy_template_args): Likewise.
+ 	(make_constrained_placeholder_type): Return the type not the
+ 	TYPE_NAME for consistency with make_auto_1 etc.
+ 	(do_auto_deduction): Assert we no longer see simple constrained
+ 	autos during coercion/deduction.
+ 
+ 2026-02-12  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	* cp-gimplify.cc (cp_gimplify_expr) <case CALL_EXPR>: Adjust
+ 	r16-7487 comment.
+ 
+ 2026-02-12  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/123989
+ 	* cp-gimplify.cc (cp_gimplify_expr) <case CALL_EXPR>: Evaluate
+ 	the object argument of an xobj memfn call first too.
+ 
+ 2026-02-12  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/124045
+ 	* parser.cc (cp_parser_parse_and_diagnose_invalid_type_name): Also
+ 	abort the tentative parse when id is error_mark_node.
+ 	(cp_parser_simple_declaration): Set CP_PARSER_FLAGS_TYPENAME_OPTIONAL
+ 	when in a namespace scope.
+ 	(cp_parser_single_declaration): Use cp_parser_flags instead of int.
+ 
+ 2026-02-12  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/98939
+ 	PR libstdc++/119745
+ 	* class.cc (object_parms_correspond): Allow differing
+ 	FUNCTION_REF_QUALIFIED in C++20.
+ 
+ 2026-02-11  Boris Staletic  <boris.staletic@protonmail.com>
+ 
+ 	PR c++/123660
+ 	PR c++/123661
+ 	* pt.cc (tsubst_splice_expr): Handle pointers to non-static members
+ 	from splice expressions
+ 
+ 2026-02-10  Marek Polacek  <polacek@redhat.com>
+ 
+ 	* parser.cc (struct saved_token_sentinel): Save input_location.
+ 	(saved_token_sentinel::rollback): Restore input_location.
+ 	(cp_parser_splice_spec_is_nns_p): Use saved_token_sentinel.  Refactor.
+ 
+ 2026-02-10  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/122621
+ 	* pt.cc (tsubst_pack_expansion): Use tf_partial instead of
+ 	tf_none, except when substituting outer (non-dependent) template
+ 	arguments.
+ 
+ 2026-02-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/123984
+ 	* reflect.cc (eval_define_aggregate): Set TYPE_BEING_DEFINED on type
+ 	after pushclass, call build_self_reference, remove assertion that
+ 	TYPE_FIELDS (type) is NULL and instead set fields to
+ 	TYPE_FIELDS (type).
+ 
+ 2026-02-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/123889
+ 	* constexpr.cc (explain_invalid_constexpr_fn): Diagnose
+ 	NULL or error_mark_node massaged on non-constructor.
+ 
+ 2026-02-08  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/123738
+ 	* module.cc (preprocess_module): Complain for any non-imported
+ 	module declaration in a module purview.
+ 
+ 2026-02-08  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/123823
+ 	PR c++/123640
+ 	* parser.cc (cp_parser_splice_specifier): New typename_p parameter.
+ 	Use cp_parser_nth_token_starts_template_argument_list_p instead of
+ 	checking CPP_LESS.  Check for typename/template/TEMPLATE_DECL before
+ 	parsing a template-id.
+ 	(cp_parser_splice_type_specifier): Adjust the call to
+ 	cp_parser_splice_specifier.
+ 	(cp_parser_splice_expression): Don't detect unparenthesized splice
+ 	expressions here.  Adjust the call to cp_parser_splice_specifier.
+ 	(cp_parser_splice_scope_specifier): Adjust the call to
+ 	cp_parser_splice_specifier.
+ 	(cp_parser_skip_entire_splice_expr): New, broken out of...
+ 	(cp_parser_splice_spec_is_nns_p): ...this.
+ 	(cp_parser_template_id): Call pop_deferring_access_checks.
+ 	(cp_parser_template_argument): Detect unparenthesized splice
+ 	expressions here.
+ 
  2026-02-07  Jakub Jelinek  <jakub@redhat.com>
  
  	PR c++/123659
diff -Nrcpad gcc-16-20260208/gcc/cp/Make-lang.in gcc-16-20260215/gcc/cp/Make-lang.in
*** gcc-16-20260208/gcc/cp/Make-lang.in	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/cp/Make-lang.in	Sun Feb 15 22:32:06 2026
*************** components_in_prev = "bfd opcodes binuti
*** 210,216 ****
  components_in_prev_target = "libstdc++-v3 libsanitizer libvtv libgcc libbacktrace libphobos zlib libgomp libatomic"
  
  cc1plus.fda: create_fdas_for_cc1plus
! 	$(PROFILE_MERGER) $(shell ls -ha cc1plus_*.fda) --output_file cc1plus.fda -gcov_version 2
  
  create_fdas_for_cc1plus: ../stage1-gcc/cc1plus$(exeext) ../prev-gcc/$(PERF_DATA)
  	for component_in_prev in "$(components_in_prev)"; do \
--- 210,216 ----
  components_in_prev_target = "libstdc++-v3 libsanitizer libvtv libgcc libbacktrace libphobos zlib libgomp libatomic"
  
  cc1plus.fda: create_fdas_for_cc1plus
! 	$(PROFILE_MERGER) $(shell ls -ha cc1plus_*.fda) --output_file cc1plus.fda -gcov_version 3
  
  create_fdas_for_cc1plus: ../stage1-gcc/cc1plus$(exeext) ../prev-gcc/$(PERF_DATA)
  	for component_in_prev in "$(components_in_prev)"; do \
diff -Nrcpad gcc-16-20260208/gcc/cp/class.cc gcc-16-20260215/gcc/cp/class.cc
*** gcc-16-20260208/gcc/cp/class.cc	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/cp/class.cc	Sun Feb 15 22:32:06 2026
*************** object_parms_correspond (tree fn, tree m
*** 1223,1231 ****
        && DECL_IOBJ_MEMBER_FUNCTION_P (method))
      {
        /* Either both or neither need to be ref-qualified for
! 	 differing quals to allow overloading.  */
!       if ((FUNCTION_REF_QUALIFIED (fn_type)
! 	   == FUNCTION_REF_QUALIFIED (method_type))
  	  && (type_memfn_quals (fn_type) != type_memfn_quals (method_type)
  	      || type_memfn_rqual (fn_type) != type_memfn_rqual (method_type)))
  	return false;
--- 1223,1232 ----
        && DECL_IOBJ_MEMBER_FUNCTION_P (method))
      {
        /* Either both or neither need to be ref-qualified for
! 	 differing quals to allow overloading before C++20 (P1787R6).  */
!       if ((cxx_dialect >= cxx20
! 	   || (FUNCTION_REF_QUALIFIED (fn_type)
! 	       == FUNCTION_REF_QUALIFIED (method_type)))
  	  && (type_memfn_quals (fn_type) != type_memfn_quals (method_type)
  	      || type_memfn_rqual (fn_type) != type_memfn_rqual (method_type)))
  	return false;
diff -Nrcpad gcc-16-20260208/gcc/cp/constexpr.cc gcc-16-20260215/gcc/cp/constexpr.cc
*** gcc-16-20260208/gcc/cp/constexpr.cc	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/cp/constexpr.cc	Sun Feb 15 22:32:06 2026
*************** explain_invalid_constexpr_fn (tree fun)
*** 1124,1129 ****
--- 1124,1132 ----
  		/* Also check the body, not just the ctor-initializer.  */
  		require_potential_rvalue_constant_expression (body);
  	    }
+ 	  else if (massaged == NULL_TREE || massaged == error_mark_node)
+ 	    error ("body of %<constexpr%> function %qD not a return-statement",
+ 		   fun);
  	}
      }
  }
diff -Nrcpad gcc-16-20260208/gcc/cp/constraint.cc gcc-16-20260215/gcc/cp/constraint.cc
*** gcc-16-20260208/gcc/cp/constraint.cc	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/cp/constraint.cc	Sun Feb 15 22:32:06 2026
*************** build_constrained_parameter (tree cnc, t
*** 1218,1224 ****
     done only after the requires clause has been parsed (or not).  */
  
  tree
! finish_shorthand_constraint (tree decl, tree constr)
  {
    /* No requirements means no constraints.  */
    if (!constr)
--- 1218,1224 ----
     done only after the requires clause has been parsed (or not).  */
  
  tree
! finish_shorthand_constraint (tree decl, tree constr, bool is_non_type)
  {
    /* No requirements means no constraints.  */
    if (!constr)
*************** finish_shorthand_constraint (tree decl,
*** 1227,1235 ****
    if (error_operand_p (constr))
      return NULL_TREE;
  
!   tree proto = CONSTRAINED_PARM_PROTOTYPE (constr);
!   tree con = CONSTRAINED_PARM_CONCEPT (constr);
!   tree args = CONSTRAINED_PARM_EXTRA_ARGS (constr);
  
    bool variadic_concept_p = template_parameter_pack_p (proto);
    bool declared_pack_p = template_parameter_pack_p (decl);
--- 1227,1252 ----
    if (error_operand_p (constr))
      return NULL_TREE;
  
!   tree proto, con, args;
!   if (is_non_type)
!     {
!       /* This function should not see constrained auto&, auto* NTTPs, and a
! 	 simple constrained auto NTTP type should by now have been replaced
! 	 by ordinary auto; see finish_constrained_parameter.  */
!       gcc_checking_assert (is_auto (TREE_TYPE (decl))
! 			   && !is_constrained_auto (TREE_TYPE (decl)));
!       gcc_checking_assert (TREE_CODE (constr) == TEMPLATE_ID_EXPR);
!       tree tmpl = TREE_OPERAND (constr, 0);
!       proto = concept_prototype_parameter (tmpl);
!       con = DECL_TEMPLATE_RESULT (tmpl);
!       args = TREE_OPERAND (constr, 1);
!     }
!   else
!     {
!       proto = CONSTRAINED_PARM_PROTOTYPE (constr);
!       con = CONSTRAINED_PARM_CONCEPT (constr);
!       args = CONSTRAINED_PARM_EXTRA_ARGS (constr);
!     }
  
    bool variadic_concept_p = template_parameter_pack_p (proto);
    bool declared_pack_p = template_parameter_pack_p (decl);
*************** finish_shorthand_constraint (tree decl,
*** 1243,1249 ****
  
    /* Build the concept constraint-expression.  */
    tree tmpl = DECL_TI_TEMPLATE (con);
!   tree check = build_concept_check (tmpl, arg, args, tf_warning_or_error);
  
    /* Make the check a fold-expression if needed.
       Use UNKNOWN_LOCATION so write_template_args can tell the
--- 1260,1278 ----
  
    /* Build the concept constraint-expression.  */
    tree tmpl = DECL_TI_TEMPLATE (con);
!   tree check;
!   if (is_non_type)
!     {
!       arg = finish_decltype_type (arg, /*id_expr=*/true, tf_warning_or_error);
!       if (ARGUMENT_PACK_P (TREE_VEC_ELT (args, 0)))
! 	args = expand_template_argument_pack (args);
!       else
! 	args = copy_template_args (args);
!       TREE_VEC_ELT (args, 0) = arg;
!       check = build_concept_check (tmpl, args, tf_warning_or_error);
!     }
!   else
!     check = build_concept_check (tmpl, arg, args, tf_warning_or_error);
  
    /* Make the check a fold-expression if needed.
       Use UNKNOWN_LOCATION so write_template_args can tell the
diff -Nrcpad gcc-16-20260208/gcc/cp/cp-gimplify.cc gcc-16-20260215/gcc/cp/cp-gimplify.cc
*** gcc-16-20260208/gcc/cp/cp-gimplify.cc	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/cp/cp-gimplify.cc	Sun Feb 15 22:32:06 2026
*************** cp_gimplify_expr (tree *expr_p, gimple_s
*** 921,927 ****
  	  tree fntype = TREE_TYPE (CALL_EXPR_FN (*expr_p));
  	  if (INDIRECT_TYPE_P (fntype))
  	    fntype = TREE_TYPE (fntype);
! 	  if (TREE_CODE (fntype) == METHOD_TYPE)
  	    {
  	      int nargs = call_expr_nargs (*expr_p);
  	      bool side_effects = false;
--- 921,935 ----
  	  tree fntype = TREE_TYPE (CALL_EXPR_FN (*expr_p));
  	  if (INDIRECT_TYPE_P (fntype))
  	    fntype = TREE_TYPE (fntype);
! 	  tree decl = cp_get_callee_fndecl_nofold (*expr_p);
! 	  /* We can't just rely on 'decl' because virtual function callees
! 	     are expressed as OBJ_TYPE_REF.  Note that the xobj memfn check
! 	     will also hold for calls of the form (&A::f)(a, ...) which does
! 	     not require such sequencing, though it's allowed under
! 	     "indeterminately sequenced".  */
! 	  if (TREE_CODE (fntype) == METHOD_TYPE
! 	      || (decl && DECL_LANG_SPECIFIC (decl)
! 		  && DECL_XOBJ_MEMBER_FUNCTION_P (decl)))
  	    {
  	      int nargs = call_expr_nargs (*expr_p);
  	      bool side_effects = false;
*************** cp_genericize_r (tree *stmt_p, int *walk
*** 1914,1919 ****
--- 1922,1943 ----
        return NULL_TREE;
      }
  
+   if ((TREE_CODE (stmt) == VAR_DECL
+        || TREE_CODE (stmt) == PARM_DECL
+        || TREE_CODE (stmt) == RESULT_DECL)
+       && DECL_HAS_VALUE_EXPR_P (stmt)
+       /* Walk DECL_VALUE_EXPR mainly for benefit of xobj lambdas so that we
+ 	 adjust any invisiref object parm uses within the capture proxies.
+ 	 TODO: For GCC 17 do this walking unconditionally.  */
+       && current_function_decl
+       && DECL_XOBJ_MEMBER_FUNCTION_P (current_function_decl)
+       && LAMBDA_FUNCTION_P (current_function_decl))
+     {
+       tree ve = DECL_VALUE_EXPR (stmt);
+       cp_walk_tree (&ve, cp_genericize_r, data, NULL);
+       SET_DECL_VALUE_EXPR (stmt, ve);
+     }
+ 
    switch (TREE_CODE (stmt))
      {
      case ADDR_EXPR:
diff -Nrcpad gcc-16-20260208/gcc/cp/cp-tree.h gcc-16-20260215/gcc/cp/cp-tree.h
*** gcc-16-20260208/gcc/cp/cp-tree.h	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/cp/cp-tree.h	Sun Feb 15 22:32:06 2026
*************** extern bool pedwarn_cxx98
*** 7688,7693 ****
--- 7688,7694 ----
  extern location_t location_of                   (tree);
  extern void qualified_name_lookup_error		(tree, tree, tree,
  						 location_t);
+ void inform_tree_category			(tree);
  
  struct decl_location_traits
    : simple_cache_map_traits<tree_decl_hash, location_t> { };
*************** extern bool is_specialization_of_friend
*** 8113,8118 ****
--- 8114,8121 ----
  extern bool comp_template_args			(tree, tree, tree * = NULL,
  						 tree * = NULL);
  extern int template_args_equal                  (tree, tree);
+ extern tree copy_template_args			(tree);
+ extern tree expand_template_argument_pack	(tree);
  extern tree maybe_process_partial_specialization (tree);
  extern tree most_specialized_instantiation	(tree);
  extern tree most_specialized_partial_spec       (tree, tsubst_flags_t, bool = false);
*************** extern tree build_concept_check
*** 9176,9182 ****
  extern tree build_constrained_parameter         (tree, tree, tree = NULL_TREE);
  extern bool equivalent_placeholder_constraints  (tree, tree);
  extern hashval_t iterative_hash_placeholder_constraint	(tree, hashval_t);
! extern tree finish_shorthand_constraint         (tree, tree);
  extern tree finish_requires_expr                (location_t, tree, tree);
  extern tree finish_simple_requirement           (location_t, tree);
  extern tree finish_type_requirement             (location_t, tree);
--- 9179,9185 ----
  extern tree build_constrained_parameter         (tree, tree, tree = NULL_TREE);
  extern bool equivalent_placeholder_constraints  (tree, tree);
  extern hashval_t iterative_hash_placeholder_constraint	(tree, hashval_t);
! extern tree finish_shorthand_constraint         (tree, tree, bool);
  extern tree finish_requires_expr                (location_t, tree, tree);
  extern tree finish_simple_requirement           (location_t, tree);
  extern tree finish_type_requirement             (location_t, tree);
diff -Nrcpad gcc-16-20260208/gcc/cp/error.cc gcc-16-20260215/gcc/cp/error.cc
*** gcc-16-20260208/gcc/cp/error.cc	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/cp/error.cc	Sun Feb 15 22:32:06 2026
*************** function_category (tree fn)
*** 3976,3981 ****
--- 3976,4017 ----
      return G_("In function %qD");
  }
  
+ /* We expected some kind of tree but instead got T and emitted a diagnostic.
+    Print the category of T (type, expression, ...) if possible.  */
+ 
+ void
+ inform_tree_category (tree t)
+ {
+   const location_t loc = location_of (t);
+ 
+   t = maybe_get_first_fn (t);
+   if (TREE_CODE (t) == TYPE_DECL)
+     t = TREE_TYPE (t);
+ 
+   if (TYPE_P (t))
+     inform (loc, "but %qE is a type", t);
+   else if (EXPR_P (t))
+     inform (loc, "but %qE is an expression", t);
+   else if (DECL_DECOMPOSITION_P (t) && !DECL_DECOMP_IS_BASE (t))
+     inform (loc, "but %qE is a structured binding", t);
+   else if (VAR_P (t))
+     inform (loc, "but %qE is a variable", t);
+   else if (TREE_CODE (t) == PARM_DECL)
+     inform (loc, "but %qE is a parameter", t);
+   else if (TREE_CODE (t) == FUNCTION_DECL)
+     inform (loc, "but %qE is a function", t);
+   else if (TREE_CODE (t) == FIELD_DECL)
+     inform (loc, "but %qE is a data member", t);
+   else if (DECL_FUNCTION_TEMPLATE_P (t))
+     inform (loc, "but %qE is a function template", t);
+   else if (DECL_CLASS_TEMPLATE_P (t))
+     inform (loc, "but %qE is a class template", t);
+   else if (TREE_CODE (t) == NAMESPACE_DECL)
+     inform (loc, "but %qE is a namespace", t);
+   else if (TREE_CODE (t) == CONST_DECL && !DECL_TEMPLATE_PARM_P (t))
+     inform (loc, "but %qE is an enumerator", t);
+ }
+ 
  /* Disable warnings about missing quoting in GCC diagnostics for
     the pp_verbatim calls.  Their format strings deliberately don't
     follow GCC diagnostic conventions.  */
diff -Nrcpad gcc-16-20260208/gcc/cp/mangle.cc gcc-16-20260215/gcc/cp/mangle.cc
*** gcc-16-20260208/gcc/cp/mangle.cc	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/cp/mangle.cc	Sun Feb 15 22:32:06 2026
*************** write_template_param_decl (tree parm)
*** 1921,1928 ****
  	write_string ("Tn");
  
  	tree type = TREE_TYPE (decl);
  	if (tree c = (is_auto (type)
! 		      ? PLACEHOLDER_TYPE_CONSTRAINTS (type)
  		      : NULL_TREE))
  	  {
  	    if (AUTO_IS_DECLTYPE (type))
--- 1921,1930 ----
  	write_string ("Tn");
  
  	tree type = TREE_TYPE (decl);
+ 	/* TODO: We need to also mangle constrained auto*, auto&, etc, but
+ 	   it's not clear how.  See finish_constrained_parameter.  */
  	if (tree c = (is_auto (type)
! 		      ? TEMPLATE_PARM_CONSTRAINTS (parm)
  		      : NULL_TREE))
  	  {
  	    if (AUTO_IS_DECLTYPE (type))
diff -Nrcpad gcc-16-20260208/gcc/cp/parser.cc gcc-16-20260215/gcc/cp/parser.cc
*** gcc-16-20260208/gcc/cp/parser.cc	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/cp/parser.cc	Sun Feb 15 22:32:06 2026
*************** static tree omp_start_variant_function
*** 279,284 ****
--- 279,286 ----
  static int omp_finish_variant_function
    (cp_parser *, tree, tree, tree, bool, bool);
  static void maybe_start_implicit_template (cp_parser *parser);
+ static void missing_template_diag
+   (location_t, diagnostics::kind = diagnostics::kind::warning);
  
  /* Manifest constants.  */
  #define CP_LEXER_BUFFER_SIZE ((256 * 1024) / sizeof (cp_token))
*************** struct saved_token_sentinel
*** 1635,1644 ****
  {
    cp_lexer *lexer;
    unsigned len;
    saved_token_sentinel_mode mode;
    saved_token_sentinel (cp_lexer *_lexer,
  			saved_token_sentinel_mode _mode = STS_COMMIT)
!     : lexer (_lexer), mode (_mode)
    {
      len = lexer->saved_tokens.length ();
      cp_lexer_save_tokens (lexer);
--- 1637,1647 ----
  {
    cp_lexer *lexer;
    unsigned len;
+   location_t loc;
    saved_token_sentinel_mode mode;
    saved_token_sentinel (cp_lexer *_lexer,
  			saved_token_sentinel_mode _mode = STS_COMMIT)
!     : lexer (_lexer), loc (input_location), mode (_mode)
    {
      len = lexer->saved_tokens.length ();
      cp_lexer_save_tokens (lexer);
*************** struct saved_token_sentinel
*** 1646,1653 ****
    void rollback ()
    {
      cp_lexer_rollback_tokens (lexer);
!     cp_lexer_set_source_position_from_token
!       (cp_lexer_previous_token (lexer));
      mode = STS_DONOTHING;
    }
    ~saved_token_sentinel ()
--- 1649,1655 ----
    void rollback ()
    {
      cp_lexer_rollback_tokens (lexer);
!     input_location = loc;
      mode = STS_DONOTHING;
    }
    ~saved_token_sentinel ()
*************** cp_parser_parse_and_diagnose_invalid_typ
*** 4171,4177 ****
    /* If the next token is a (, this is a function with no explicit return
       type, i.e. constructor, destructor or conversion op.  */
    if (cp_lexer_next_token_is (parser->lexer, CPP_OPEN_PAREN)
!       || TREE_CODE (id) == TYPE_DECL)
      {
        cp_parser_abort_tentative_parse (parser);
        return false;
--- 4173,4180 ----
    /* If the next token is a (, this is a function with no explicit return
       type, i.e. constructor, destructor or conversion op.  */
    if (cp_lexer_next_token_is (parser->lexer, CPP_OPEN_PAREN)
!       || TREE_CODE (id) == TYPE_DECL
!       || id == error_mark_node)
      {
        cp_parser_abort_tentative_parse (parser);
        return false;
*************** cp_parser_splice_specifier (cp_parser *p
*** 6182,6188 ****
        /* As a courtesy to the user, if there is a < after a template
  	 name, parse the construct as an s-s-s and warn about the missing
  	 'template'; it can't be anything else.  */
!       && (template_p || typename_p || TREE_CODE (expr) == TEMPLATE_DECL))
      {
        /* For member access splice-specialization-specifier, try to wrap
  	 non-dependent splice for function template into a BASELINK so
--- 6185,6193 ----
        /* As a courtesy to the user, if there is a < after a template
  	 name, parse the construct as an s-s-s and warn about the missing
  	 'template'; it can't be anything else.  */
!       && (template_p
! 	  || typename_p
! 	  || TREE_CODE (OVL_FIRST (expr)) == TEMPLATE_DECL))
      {
        /* For member access splice-specialization-specifier, try to wrap
  	 non-dependent splice for function template into a BASELINK so
*************** cp_parser_splice_type_specifier (cp_pars
*** 6251,6257 ****
    if (!valid_splice_type_p (type))
      {
        if (!cp_parser_simulate_error (parser))
! 	error_at (loc, "reflection %qE not usable in a splice type", type);
        type = NULL_TREE;
      }
  
--- 6256,6266 ----
    if (!valid_splice_type_p (type))
      {
        if (!cp_parser_simulate_error (parser))
! 	{
! 	  auto_diagnostic_group d;
! 	  error_at (loc, "expected a reflection of a type");
! 	  inform_tree_category (type);
! 	}
        type = NULL_TREE;
      }
  
*************** cp_parser_splice_expression (cp_parser *
*** 6312,6374 ****
        return error_mark_node;
      }
  
    if (template_p)
      {
        /* [expr.prim.splice] For a splice-expression of the form template
  	 splice-specifier, the splice-specifier shall designate a function
  	 template.  */
!       if (!targs_p)
  	{
! 	  if (!really_overloaded_fn (t) && !dependent_splice_p (t))
! 	    {
! 	      auto_diagnostic_group d;
! 	      error_at (loc, "reflection %qE not usable in a template splice",
! 			t);
! 	      inform (loc, "only function templates are allowed here");
! 	      return error_mark_node;
! 	    }
  	}
        /* [expr.prim.splice] For a splice-expression of the form
  	 template splice-specialization-specifier, the splice-specifier of the
! 	 splice-specialization-specifier shall designate a template.  */
!       else
! 	{
! 	  if (really_overloaded_fn (t)
! 	      || get_template_info (t)
! 	      || TREE_CODE (t) == TEMPLATE_ID_EXPR)
! 	    /* OK */;
! 	  else
! 	    {
! 	      auto_diagnostic_group d;
! 	      error_at (loc, "reflection %qE not usable in a template splice",
! 			t);
! 	      inform (loc, "only templates are allowed here");
! 	      return error_mark_node;
! 	    }
! 	}
      }
    else if (/* No 'template' but there were template arguments?  */
! 	   targs_p
! 	   /* No 'template' but the splice-specifier designates a template?  */
! 	   || really_overloaded_fn (t))
!     {
!       auto_diagnostic_group d;
!       if (targs_p)
! 	error_at (loc, "reflection %qE not usable in a splice expression with "
! 		  "template arguments", t);
!       else
! 	error_at (loc, "reflection %qE not usable in a splice expression", t);
!       location_t sloc = expr.get_start ();
!       rich_location richloc (line_table, sloc);
!       richloc.add_fixit_insert_before (sloc, "template ");
!       inform (&richloc, "add %<template%> to denote a template");
!       return error_mark_node;
!     }
! 
!   /* Make sure this splice-expression produces an expression.  */
!   if (!check_splice_expr (loc, expr.get_start (), t, address_p,
! 			  member_access_p, /*complain=*/true))
!     return error_mark_node;
  
    /* When doing foo.[: bar :], cp_parser_postfix_dot_deref_expression wants
       to see an identifier or a TEMPLATE_ID_EXPR, if we have something like
--- 6321,6362 ----
        return error_mark_node;
      }
  
+   /* Make sure this splice-expression produces an expression.  */
+   if (!check_splice_expr (loc, expr.get_start (), t, address_p,
+ 			  member_access_p, /*complain=*/true))
+     return error_mark_node;
+ 
    if (template_p)
      {
        /* [expr.prim.splice] For a splice-expression of the form template
  	 splice-specifier, the splice-specifier shall designate a function
  	 template.  */
!       if (!targs_p
! 	  && !really_overloaded_fn (t)
! 	  && !dependent_splice_p (t))
  	{
! 	  auto_diagnostic_group d;
! 	  error_at (loc, "expected a reflection of a function template");
! 	  inform_tree_category (t);
! 	  return error_mark_node;
  	}
        /* [expr.prim.splice] For a splice-expression of the form
  	 template splice-specialization-specifier, the splice-specifier of the
! 	 splice-specialization-specifier shall designate a template.  Since
! 	 we would have already complained, just check that we have a template.  */
!       gcc_checking_assert (really_overloaded_fn (t)
! 			   || get_template_info (t)
! 			   || TREE_CODE (t) == TEMPLATE_ID_EXPR
! 			   || dependent_splice_p (t));
      }
    else if (/* No 'template' but there were template arguments?  */
! 	   (targs_p
! 	    /* No 'template' but the splice-specifier designates a function
! 	       template?  */
! 	    || really_overloaded_fn (t))
! 	   && warning_enabled_at (loc, OPT_Wmissing_template_keyword))
!     /* Were 'template' present, this would be valid code, so keep going.  */
!     missing_template_diag (loc, diagnostics::kind::pedwarn);
  
    /* When doing foo.[: bar :], cp_parser_postfix_dot_deref_expression wants
       to see an identifier or a TEMPLATE_ID_EXPR, if we have something like
*************** cp_parser_splice_scope_specifier (cp_par
*** 6470,6482 ****
    if (!valid_splice_scope_p (scope))
      {
        auto_diagnostic_group d;
!       error_at (loc, "reflection not usable in a splice scope");
!       if (TYPE_P (scope))
! 	inform (loc, "%qT is not a class, namespace, or enumeration",
! 		tree (scope));
!       else
! 	inform (loc, "%qE is not a class, namespace, or enumeration",
! 		tree (scope));
        scope = error_mark_node;
      }
  
--- 6458,6466 ----
    if (!valid_splice_scope_p (scope))
      {
        auto_diagnostic_group d;
!       error_at (loc, "expected a reflection of a class, namespace, or "
! 		"enumeration");
!       inform_tree_category (tree (scope));
        scope = error_mark_node;
      }
  
*************** cp_parser_skip_entire_splice_expr (cp_pa
*** 6523,6540 ****
  static bool
  cp_parser_splice_spec_is_nns_p (cp_parser *parser)
  {
!   /* ??? It'd be nice to use saved_token_sentinel, but its rollback
!      uses cp_lexer_previous_token, but we may be the first token in the
!      file so there are no previous tokens.  Sigh.  */
!   cp_lexer_save_tokens (parser->lexer);
! 
!   const bool ok = (cp_parser_skip_entire_splice_expr (parser)
! 		   && cp_lexer_next_token_is (parser->lexer, CPP_SCOPE));
! 
!   /* Roll back the tokens we skipped.  */
!   cp_lexer_rollback_tokens (parser->lexer);
! 
!   return ok;
  }
  
  /* Return true if the N-th token is '[:' and its closing ':]' is NOT
--- 6507,6515 ----
  static bool
  cp_parser_splice_spec_is_nns_p (cp_parser *parser)
  {
!   saved_token_sentinel toks (parser->lexer, STS_ROLLBACK);
!   return (cp_parser_skip_entire_splice_expr (parser)
! 	  && cp_lexer_next_token_is (parser->lexer, CPP_SCOPE));
  }
  
  /* Return true if the N-th token is '[:' and its closing ':]' is NOT
*************** cp_parser_primary_expression (cp_parser
*** 7243,7249 ****
  
  static void
  missing_template_diag (location_t loc,
! 		       enum diagnostics::kind diag_kind = diagnostics::kind::warning)
  {
    if (warning_suppressed_at (loc, OPT_Wmissing_template_keyword))
      return;
--- 7218,7224 ----
  
  static void
  missing_template_diag (location_t loc,
! 		       diagnostics::kind diag_kind/*=kind::warning*/)
  {
    if (warning_suppressed_at (loc, OPT_Wmissing_template_keyword))
      return;
*************** cp_parser_simple_declaration (cp_parser*
*** 17933,17941 ****
       omitted only when declaring a class or enumeration, that is when
       the decl-specifier-seq contains either a class-specifier, an
       elaborated-type-specifier, or an enum-specifier.  */
!   cp_parser_decl_specifier_seq (parser,
! 				CP_PARSER_FLAGS_OPTIONAL,
! 				&decl_specifiers,
  				&declares_class_or_enum);
    /* We no longer need to defer access checks.  */
    stop_deferring_access_checks ();
--- 17908,17919 ----
       omitted only when declaring a class or enumeration, that is when
       the decl-specifier-seq contains either a class-specifier, an
       elaborated-type-specifier, or an enum-specifier.  */
!   cp_parser_flags flags = CP_PARSER_FLAGS_OPTIONAL;
!   /* [temp.res.general]/4.4.1: a decl-specifier of the decl-specifier-seq
!      of a simple-declaration in namespace scope is a type-only context.  */
!   if (at_namespace_scope_p ())
!     flags |= CP_PARSER_FLAGS_TYPENAME_OPTIONAL;
!   cp_parser_decl_specifier_seq (parser, flags, &decl_specifiers,
  				&declares_class_or_enum);
    /* We no longer need to defer access checks.  */
    stop_deferring_access_checks ();
*************** cp_parser_check_constrained_type_parm (c
*** 20581,20614 ****
    return true;
  }
  
- /* Finish parsing/processing a template type parameter and checking
-    various restrictions. */
- 
- static inline tree
- cp_parser_constrained_type_template_parm (cp_parser *parser,
-                                           tree id,
-                                           cp_parameter_declarator* parmdecl)
- {
-   if (cp_parser_check_constrained_type_parm (parser, parmdecl))
-     return finish_template_type_parm (class_type_node, id);
-   else
-     return error_mark_node;
- }
- 
- /* Create a new non-type template parameter from the given PARM
-    declarator.  */
- 
- static tree
- cp_parser_constrained_non_type_template_parm (bool *is_non_type,
- 					      cp_parameter_declarator *parm)
- {
-   *is_non_type = true;
-   cp_declarator *decl = parm->declarator;
-   cp_decl_specifier_seq *specs = &parm->decl_specifiers;
-   specs->type = TREE_TYPE (DECL_INITIAL (specs->type));
-   return grokdeclarator (decl, specs, TPARM, 0, NULL);
- }
- 
  /* Build a constrained template parameter based on the PARMDECL
     declarator. The type of PARMDECL is the constrained type, which
     refers to the prototype template parameter that ultimately
--- 20559,20564 ----
*************** finish_constrained_parameter (cp_parser
*** 20619,20642 ****
                                cp_parameter_declarator *parmdecl,
                                bool *is_non_type)
  {
!   tree decl = parmdecl->decl_specifiers.type;
    tree id = get_unqualified_id (parmdecl->declarator);
    tree def = parmdecl->default_argument;
-   tree proto = DECL_INITIAL (decl);
  
    /* Build the parameter. Return an error if the declarator was invalid. */
    tree parm;
!   if (TREE_CODE (proto) == TYPE_DECL)
!     parm = cp_parser_constrained_type_template_parm (parser, id, parmdecl);
    else
!     parm = cp_parser_constrained_non_type_template_parm (is_non_type, parmdecl);
    if (parm == error_mark_node)
      return error_mark_node;
  
    /* Finish the parameter decl and create a node attaching the
       default argument and constraint.  */
    parm = build_tree_list (def, parm);
!   TEMPLATE_PARM_CONSTRAINTS (parm) = decl;
  
    return parm;
  }
--- 20569,20628 ----
                                cp_parameter_declarator *parmdecl,
                                bool *is_non_type)
  {
!   tree constr = parmdecl->decl_specifiers.type;
    tree id = get_unqualified_id (parmdecl->declarator);
    tree def = parmdecl->default_argument;
  
    /* Build the parameter. Return an error if the declarator was invalid. */
+   bool set_template_parm_constraints_p = true;
    tree parm;
!   if (is_constrained_auto (constr))
!     {
!       /* Constrained non-type parameter.  */
!       *is_non_type = true;
!       if (!parmdecl->declarator
! 	  || parmdecl->declarator->kind == cdk_id)
! 	/* For a simple constrained auto NTTP, move its constraint from
! 	   PLACEHOLDER_TYPE_CONSTRAINTS to TEMPLATE_PARM_CONSTRAINTS to
! 	   eventually include them in the template's associated constraints.
! 	   finish_shorthand_constraint will convert the constraint to its
! 	   final form.  */
! 	parmdecl->decl_specifiers.type = (AUTO_IS_DECLTYPE (constr)
! 					  ? make_decltype_auto ()
! 					  : make_auto ());
!       else
! 	/* ??? For constrained auto*, auto& etc it's not clear how to represent
! 	   the type-constraint as an associated constraint (we need it in terms
! 	   of the pointed-to type).  We keep it in PLACEHOLDER_TYPE_CONSTRAINTS
! 	   and effectively treat it like a non-NTTP constrained auto.  */
! 	set_template_parm_constraints_p = false;
!       parm = grokdeclarator (parmdecl->declarator,
! 			     &parmdecl->decl_specifiers,
! 			     TPARM, /*initialized=*/0, /*attrlist=*/NULL);
!     }
    else
!     {
!       /* Constrained type parameter.  */
!       gcc_checking_assert (CONSTRAINED_PARM_CONCEPT (constr));
!       if (cp_parser_check_constrained_type_parm (parser, parmdecl))
! 	parm = finish_template_type_parm (class_type_node, id);
!       else
! 	parm = error_mark_node;
!     }
    if (parm == error_mark_node)
      return error_mark_node;
  
    /* Finish the parameter decl and create a node attaching the
       default argument and constraint.  */
    parm = build_tree_list (def, parm);
!   if (set_template_parm_constraints_p)
!     {
!       if (*is_non_type)
! 	TEMPLATE_PARM_CONSTRAINTS (parm)
! 	  = PLACEHOLDER_TYPE_CONSTRAINTS (constr);
!       else
! 	TEMPLATE_PARM_CONSTRAINTS (parm) = constr;
!     }
  
    return parm;
  }
*************** cp_parser_template_parameter (cp_parser*
*** 20833,20839 ****
      }
  
    /* The parameter may have been constrained type parameter.  */
!   if (declares_constrained_type_template_parameter (parameter_declarator))
      return finish_constrained_parameter (parser,
                                           parameter_declarator,
                                           is_non_type);
--- 20819,20827 ----
      }
  
    /* The parameter may have been constrained type parameter.  */
!   tree type = parameter_declarator->decl_specifiers.type;
!   if (declares_constrained_type_template_parameter (parameter_declarator)
!       || (type && is_constrained_auto (type)))
      return finish_constrained_parameter (parser,
                                           parameter_declarator,
                                           is_non_type);
*************** cp_parser_single_declaration (cp_parser*
*** 36490,36496 ****
        && (cp_lexer_next_token_is_not (parser->lexer, CPP_SEMICOLON)
  	  || decl_specifiers.type != error_mark_node))
      {
!       int flags = CP_PARSER_FLAGS_TYPENAME_OPTIONAL;
        /* FIXME: Delay parsing for all template friends, not just class
  	 template scope ones (PR114764).  */
        if (member_p && (!(friend_p && *friend_p)
--- 36478,36484 ----
        && (cp_lexer_next_token_is_not (parser->lexer, CPP_SEMICOLON)
  	  || decl_specifiers.type != error_mark_node))
      {
!       cp_parser_flags flags = CP_PARSER_FLAGS_TYPENAME_OPTIONAL;
        /* FIXME: Delay parsing for all template friends, not just class
  	 template scope ones (PR114764).  */
        if (member_p && (!(friend_p && *friend_p)
diff -Nrcpad gcc-16-20260208/gcc/cp/pt.cc gcc-16-20260215/gcc/cp/pt.cc
*** gcc-16-20260208/gcc/cp/pt.cc	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/cp/pt.cc	Sun Feb 15 22:32:06 2026
*************** static tree convert_template_argument (t
*** 169,175 ****
  				       tsubst_flags_t, int, tree);
  static tree for_each_template_parm (tree, tree_fn_t, void*,
  				    hash_set<tree> *, bool, tree_fn_t = NULL);
- static tree expand_template_argument_pack (tree);
  static tree build_template_parm_index (int, int, int, tree, tree);
  static bool inline_needs_template_parms (tree, bool);
  static void push_inline_template_parms_recursive (tree, int);
--- 169,174 ----
*************** static int template_decl_level (tree);
*** 184,190 ****
  static int check_cv_quals_for_unify (int, tree, tree);
  static int unify_pack_expansion (tree, tree, tree,
  				 tree, unification_kind_t, bool, bool);
- static tree copy_template_args (tree);
  static tree tsubst_template_parms (tree, tree, tsubst_flags_t);
  static void tsubst_each_template_parm_constraints (tree, tree, tsubst_flags_t);
  static tree tsubst_arg_types (tree, tree, tree, tsubst_flags_t, tree);
--- 183,188 ----
*************** process_template_parm (tree list, locati
*** 4747,4753 ****
  
    tree decl = NULL_TREE;
    tree defval = TREE_PURPOSE (parm);
!   tree constr = TREE_TYPE (parm);
  
    if (is_non_type)
      {
--- 4745,4751 ----
  
    tree decl = NULL_TREE;
    tree defval = TREE_PURPOSE (parm);
!   tree constr = TEMPLATE_PARM_CONSTRAINTS (parm);
  
    if (is_non_type)
      {
*************** process_template_parm (tree list, locati
*** 4845,4851 ****
    /* Build requirements for the type/template parameter.
       This must be done after SET_DECL_TEMPLATE_PARM_P or
       process_template_parm could fail. */
!   tree reqs = finish_shorthand_constraint (parm, constr);
  
    decl = pushdecl (decl);
    if (!is_non_type)
--- 4843,4849 ----
    /* Build requirements for the type/template parameter.
       This must be done after SET_DECL_TEMPLATE_PARM_P or
       process_template_parm could fail. */
!   tree reqs = finish_shorthand_constraint (parm, constr, is_non_type);
  
    decl = pushdecl (decl);
    if (!is_non_type)
*************** make_argument_pack (tree vec)
*** 14400,14406 ****
  /* Return an exact copy of template args T that can be modified
     independently.  */
  
! static tree
  copy_template_args (tree t)
  {
    if (t == error_mark_node)
--- 14398,14404 ----
  /* Return an exact copy of template args T that can be modified
     independently.  */
  
! tree
  copy_template_args (tree t)
  {
    if (t == error_mark_node)
*************** tsubst_splice_expr (tree t, tree args, t
*** 16771,16776 ****
--- 16769,16785 ----
  			     SPLICE_EXPR_MEMBER_ACCESS_P (t),
  			     (complain & tf_error)))
      return error_mark_node;
+ 
+   if (SPLICE_EXPR_ADDRESS_P (t))
+     {
+       if (BASELINK_P (op))
+ 	op = build_offset_ref (BINFO_TYPE (BASELINK_ACCESS_BINFO (op)), op,
+ 			       /*address_p=*/true, complain);
+       else if (DECL_NONSTATIC_MEMBER_P (op))
+ 	op = build_offset_ref (DECL_CONTEXT (op), op,
+ 			       /*address_p=*/true, complain);
+     }
+ 
    if (outer_automatic_var_p (op))
      op = process_outer_var_ref (op, complain);
    /* Like in cp_parser_splice_expression, for foo.[: bar :]
*************** make_constrained_placeholder_type (tree
*** 30829,30836 ****
    /* Our canonical type depends on the constraint.  */
    TYPE_CANONICAL (type) = canonical_type_parameter (type);
  
!   /* Attach the constraint to the type declaration. */
!   return TYPE_NAME (type);
  }
  
  /* Make a "constrained auto" type-specifier.  */
--- 30838,30844 ----
    /* Our canonical type depends on the constraint.  */
    TYPE_CANONICAL (type) = canonical_type_parameter (type);
  
!   return type;
  }
  
  /* Make a "constrained auto" type-specifier.  */
*************** alias_ctad_tweaks (tree tmpl, tree uguid
*** 31718,31724 ****
  			  (INNERMOST_TEMPLATE_PARMS (fullatparms)));
      }
  
!   tsubst_flags_t complain = tf_none;
    tree aguides = NULL_TREE;
    tree atparms = INNERMOST_TEMPLATE_PARMS (fullatparms);
    unsigned natparms = TREE_VEC_LENGTH (atparms);
--- 31726,31732 ----
  			  (INNERMOST_TEMPLATE_PARMS (fullatparms)));
      }
  
!   tsubst_flags_t complain = tf_partial;
    tree aguides = NULL_TREE;
    tree atparms = INNERMOST_TEMPLATE_PARMS (fullatparms);
    unsigned natparms = TREE_VEC_LENGTH (atparms);
*************** alias_ctad_tweaks (tree tmpl, tree uguid
*** 31825,31831 ****
  	  if (ci)
  	    {
  	      if (tree outer_targs = outer_template_args (f))
! 		ci = tsubst_constraint_info (ci, outer_targs, complain, in_decl);
  	      ci = tsubst_constraint_info (ci, targs, complain, in_decl);
  	    }
  	  if (ci == error_mark_node)
--- 31833,31840 ----
  	  if (ci)
  	    {
  	      if (tree outer_targs = outer_template_args (f))
! 		ci = tsubst_constraint_info (ci, outer_targs,
! 					     complain & ~tf_partial, in_decl);
  	      ci = tsubst_constraint_info (ci, targs, complain, in_decl);
  	    }
  	  if (ci == error_mark_node)
*************** do_auto_deduction (tree type, tree init,
*** 32645,32650 ****
--- 32654,32664 ----
      /* Constraints will be checked after deduction.  */;
    else if (tree constr = NON_ERROR (PLACEHOLDER_TYPE_CONSTRAINTS (auto_node)))
      {
+       if (context == adc_unify)
+ 	/* Simple constrained auto NTTPs should have gotten their constraint
+ 	   moved to the template's associated constraints.  */
+ 	gcc_checking_assert (type != auto_node);
+ 
        if (processing_template_decl)
  	{
  	  gcc_checking_assert (context == adc_variable_type
diff -Nrcpad gcc-16-20260208/gcc/cp/reflect.cc gcc-16-20260215/gcc/cp/reflect.cc
*** gcc-16-20260208/gcc/cp/reflect.cc	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/cp/reflect.cc	Sun Feb 15 22:32:06 2026
*************** eval_define_aggregate (location_t loc, c
*** 6080,6087 ****
    if (!TYPE_BINFO (type))
      xref_basetypes (type, NULL_TREE);
    pushclass (type);
!   gcc_assert (!TYPE_FIELDS (type));
!   tree fields = NULL_TREE;
    for (int i = 0; i < TREE_VEC_LENGTH (rvec); ++i)
      {
        tree ra = TREE_VEC_ELT (rvec, i);
--- 6080,6088 ----
    if (!TYPE_BINFO (type))
      xref_basetypes (type, NULL_TREE);
    pushclass (type);
!   TYPE_BEING_DEFINED (type) = 1;
!   build_self_reference ();
!   tree fields = TYPE_FIELDS (type);
    for (int i = 0; i < TREE_VEC_LENGTH (rvec); ++i)
      {
        tree ra = TREE_VEC_ELT (rvec, i);
*************** consteval_only_p (tree t)
*** 8091,8098 ****
    return !!cp_walk_tree (&t, consteval_only_type_r, &visited, &visited);
  }
  
  /* Detect if a consteval-only expression EXPR or a consteval-only
!    variable EXPR not declared constexpr/constinit is used outside
     a manifestly constant-evaluated context.  E.g.:
  
       void f() {
--- 8092,8170 ----
    return !!cp_walk_tree (&t, consteval_only_type_r, &visited, &visited);
  }
  
+ /* A walker for check_out_of_consteval_use_r.  It cannot be a lambda, because
+    we have to call this recursively.  */
+ 
+ static tree
+ check_out_of_consteval_use_r (tree *tp, int *walk_subtrees, void *pset)
+ {
+   tree t = *tp;
+ 
+   /* No need to look into types or unevaluated operands.  */
+   if (TYPE_P (t)
+       || unevaluated_p (TREE_CODE (t))
+       /* Don't walk INIT_EXPRs, because we'd emit bogus errors about
+ 	 member initializers.  */
+       || TREE_CODE (t) == INIT_EXPR
+       /* Don't walk BIND_EXPR_VARS.  */
+       || TREE_CODE (t) == BIND_EXPR
+       /* And don't recurse on DECL_EXPRs.  */
+       || TREE_CODE (t) == DECL_EXPR)
+     {
+       *walk_subtrees = false;
+       return NULL_TREE;
+     }
+ 
+   /* A subexpression of a manifestly constant-evaluated expression is
+      an immediate function context.  For example,
+ 
+       consteval void foo (std::meta::info) { }
+       void g() { foo (^^void); }
+ 
+       is all good.  */
+   if (tree decl = cp_get_callee_fndecl_nofold (t))
+     if (immediate_invocation_p (decl))
+       {
+ 	*walk_subtrees = false;
+ 	return NULL_TREE;
+       }
+ 
+   if (VAR_P (t) && DECL_HAS_VALUE_EXPR_P (t))
+     {
+       tree vexpr = DECL_VALUE_EXPR (t);
+       if (tree ret = cp_walk_tree (&vexpr, check_out_of_consteval_use_r, pset,
+ 				   (hash_set<tree> *) pset))
+ 	return ret;
+     }
+ 
+   /* Now check the type to see if we are dealing with a consteval-only
+      expression.  */
+   if (!consteval_only_p (t))
+     return NULL_TREE;
+ 
+   /* Already escalated?  */
+   if (current_function_decl
+       && DECL_IMMEDIATE_FUNCTION_P (current_function_decl))
+     {
+       *walk_subtrees = false;
+       return NULL_TREE;
+     }
+ 
+   /* We might have to escalate if we are in an immediate-escalating
+      function.  */
+   if (immediate_escalating_function_p (current_function_decl))
+     {
+       promote_function_to_consteval (current_function_decl);
+       *walk_subtrees = false;
+       return NULL_TREE;
+     }
+ 
+   *walk_subtrees = false;
+   return t;
+ }
+ 
  /* Detect if a consteval-only expression EXPR or a consteval-only
!    variable EXPR not declared constexpr is used outside
     a manifestly constant-evaluated context.  E.g.:
  
       void f() {
*************** consteval_only_p (tree t)
*** 8114,8201 ****
  bool
  check_out_of_consteval_use (tree expr, bool complain/*=true*/)
  {
!   if (!flag_reflection || in_immediate_context ())
      return false;
  
!   auto walker = [](tree *tp, int *walk_subtrees, void *) -> tree
!     {
!       tree t = *tp;
! 
!       /* No need to look into types or unevaluated operands.  */
!       if (TYPE_P (t)
! 	  || unevaluated_p (TREE_CODE (t))
! 	  /* Don't walk INIT_EXPRs, because we'd emit bogus errors about
! 	     member initializers.  */
! 	  || TREE_CODE (t) == INIT_EXPR
! 	  /* Don't walk BIND_EXPR_VARS.  */
! 	  || TREE_CODE (t) == BIND_EXPR
! 	  /* And don't recurse on DECL_EXPRs.  */
! 	  || TREE_CODE (t) == DECL_EXPR)
! 	{
! 	  *walk_subtrees = false;
! 	  return NULL_TREE;
! 	}
! 
!       /* A subexpression of a manifestly constant-evaluated expression is
! 	 an immediate function context.  For example,
! 
! 	   consteval void foo (std::meta::info) { }
! 	   void g() { foo (^^void); }
! 
! 	 is all good.  */
!       if (tree decl = cp_get_callee_fndecl_nofold (t))
! 	if (immediate_invocation_p (decl))
! 	  {
! 	    *walk_subtrees = false;
! 	    return NULL_TREE;
! 	  }
! 
!       if (VAR_P (t)
! 	  && (DECL_DECLARED_CONSTEXPR_P (t) || DECL_DECLARED_CONSTINIT_P (t)))
! 	/* This is fine, don't bother checking the type.  */
! 	return NULL_TREE;
! 
!       /* Now check the type to see if we are dealing with a consteval-only
! 	 expression.  */
!       if (!consteval_only_p (t))
! 	return NULL_TREE;
! 
!       /* Already escalated?  */
!       if (current_function_decl
! 	  && DECL_IMMEDIATE_FUNCTION_P (current_function_decl))
! 	{
! 	  *walk_subtrees = false;
! 	  return NULL_TREE;
! 	}
! 
!       /* We might have to escalate if we are in an immediate-escalating
! 	 function.  */
!       if (immediate_escalating_function_p (current_function_decl))
! 	{
! 	  promote_function_to_consteval (current_function_decl);
! 	  *walk_subtrees = false;
! 	  return NULL_TREE;
! 	}
! 
!       *walk_subtrees = false;
!       return t;
!     };
  
!   if (tree t = cp_walk_tree_without_duplicates (&expr, walker, nullptr))
      {
        if (complain)
  	{
! 	  if (VAR_P (t))
  	    {
  	      auto_diagnostic_group d;
  	      error_at (cp_expr_loc_or_input_loc (t),
  			"consteval-only variable %qD not declared %<constexpr%> "
  			"used outside a constant-evaluated context", t);
! 	      if (TREE_STATIC (t) || CP_DECL_THREAD_LOCAL_P (t))
! 		inform (DECL_SOURCE_LOCATION (t), "add %<constexpr%> or "
! 			"%<constinit%>");
! 	      else
! 		inform (DECL_SOURCE_LOCATION (t), "add %<constexpr%>");
  	    }
  	  else
  	    error_at (cp_expr_loc_or_input_loc (t),
--- 8186,8209 ----
  bool
  check_out_of_consteval_use (tree expr, bool complain/*=true*/)
  {
!   if (!flag_reflection || in_immediate_context () || expr == NULL_TREE)
      return false;
  
!   if (VAR_P (expr) && DECL_DECLARED_CONSTEXPR_P (expr))
!     return false;
  
!   hash_set<tree> pset;
!   if (tree t = cp_walk_tree (&expr, check_out_of_consteval_use_r, &pset, &pset))
      {
        if (complain)
  	{
! 	  if (VAR_P (t) && !DECL_DECLARED_CONSTEXPR_P (t))
  	    {
  	      auto_diagnostic_group d;
  	      error_at (cp_expr_loc_or_input_loc (t),
  			"consteval-only variable %qD not declared %<constexpr%> "
  			"used outside a constant-evaluated context", t);
! 	      inform (DECL_SOURCE_LOCATION (t), "add %<constexpr%>");
  	    }
  	  else
  	    error_at (cp_expr_loc_or_input_loc (t),
*************** check_splice_expr (location_t loc, locat
*** 8330,8337 ****
  	  if (TYPE_P (t))
  	    {
  	      auto_diagnostic_group d;
! 	      error_at (loc, "expected a reflection of an expression instead "
! 			"of type %qT", t);
  	      if (start_loc != UNKNOWN_LOCATION)
  		{
  		  rich_location richloc (line_table, start_loc);
--- 8338,8345 ----
  	  if (TYPE_P (t))
  	    {
  	      auto_diagnostic_group d;
! 	      error_at (loc, "expected a reflection of an expression");
! 	      inform_tree_category (t);
  	      if (start_loc != UNKNOWN_LOCATION)
  		{
  		  rich_location richloc (line_table, start_loc);
*************** check_splice_expr (location_t loc, locat
*** 8344,8351 ****
  			"a type-only context");
  	    }
  	  else
! 	    error_at (loc, "expected a reflection of an expression instead "
! 		      "of %qD", t);
  	}
        return false;
      }
--- 8352,8362 ----
  			"a type-only context");
  	    }
  	  else
! 	    {
! 	      auto_diagnostic_group d;
! 	      error_at (loc, "expected a reflection of an expression");
! 	      inform_tree_category (t);
! 	    }
  	}
        return false;
      }
diff -Nrcpad gcc-16-20260208/gcc/d/ChangeLog gcc-16-20260215/gcc/d/ChangeLog
*** gcc-16-20260208/gcc/d/ChangeLog	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/d/ChangeLog	Sun Feb 15 22:32:06 2026
***************
*** 1,3 ****
--- 1,43 ----
+ 2026-02-08  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	* d-tree.h (build_libcall): New declaration.
+ 	* runtime.cc (build_libcall_1): New function.
+ 	(build_libcall): New overload.
+ 	* d-codegen.cc (build_assert_call): Call build_libcall without Type
+ 	argument.
+ 	(build_array_bounds_call): Likewise.
+ 	(build_bounds_index_condition): Likewise.
+ 	(build_bounds_slice_condition): Likewise.
+ 	(build_closure): Likewise.
+ 	* expr.cc (ExprVisitor::visit): Likewise.
+ 	* toir.cc (IRVisitor::visit): Likewise.
+ 
+ 2026-02-08  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	PR d/124026
+ 	* expr.cc (ExprVisitor::visit (FuncExp *)): Always convert function
+ 	literal to a delegate if the expression expects one.
+ 
+ 2026-02-08  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	PR d/123995
+ 	* d-codegen.cc (build_assert_call): Cast libcall result to `noreturn'.
+ 	(build_array_bounds_call):  Likewise.
+ 	(build_bounds_index_condition): Likewise.
+ 	(build_bounds_slice_condition): Likewise.
+ 	* expr.cc (ExprVisitor::visit (ThrowExp *)): Likewise.
+ 	* toir.cc (IRVisitor::visit (ThrowStatement *)): Likewise.
+ 	* runtime.cc (enum d_libcall_type): Add LCT_NORETURN.
+ 	(get_libcall_type): Handle LCT_NORETURN.
+ 	* runtime.def (ASSERTP): Change return type to `noreturn'.
+ 	(ASSERT_MSG): Likewise.
+ 	(UNITTESTP): Likewise.
+ 	(UNITTEST_MSG): Likewise.
+ 	(ARRAYBOUNDSP): Likewise.
+ 	(ARRAYBOUNDS_SLICEP): Likewise.
+ 	(ARRAYBOUNDS_INDEXP): Likewise.
+ 	(THROW): Likewise.
+ 
  2026-02-06  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
  
  	PR middle-end/123892
diff -Nrcpad gcc-16-20260208/gcc/diagnostics/html-sink.cc gcc-16-20260215/gcc/diagnostics/html-sink.cc
*** gcc-16-20260208/gcc/diagnostics/html-sink.cc	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/diagnostics/html-sink.cc	Sun Feb 15 22:32:06 2026
*************** public:
*** 170,175 ****
--- 170,181 ----
    std::unique_ptr<xml::node>
    maybe_make_state_diagram (const paths::event &event);
  
+   const logical_locations::manager *
+   get_logical_loc_mgr () const
+   {
+     return m_context.get_logical_location_manager ();
+   }
+ 
  private:
    void
    add_stylesheet (std::string url);
*************** private:
*** 201,207 ****
    pretty_printer *m_printer;
    const line_maps *m_line_maps;
    html_generation_options m_html_gen_opts;
-   const logical_locations::manager *m_logical_loc_mgr;
  
    std::unique_ptr<xml::document> m_document;
    xml::element *m_head_element;
--- 207,212 ----
*************** html_builder::html_builder (context &dc,
*** 426,432 ****
    m_printer (&pp),
    m_line_maps (line_maps),
    m_html_gen_opts (html_gen_opts),
-   m_logical_loc_mgr (nullptr),
    m_head_element (nullptr),
    m_title_element (nullptr),
    m_body_element (nullptr),
--- 431,436 ----
*************** html_builder::html_builder (context &dc,
*** 437,445 ****
  {
    gcc_assert (m_line_maps);
  
-   if (auto client_data_hooks = dc.get_client_data_hooks ())
-     m_logical_loc_mgr = client_data_hooks->get_logical_location_manager ();
- 
    m_document = std::make_unique<xml::document> ();
    m_document->m_doctypedecl = std::make_unique<html_doctypedecl> ();
    {
--- 441,446 ----
*************** html_builder::maybe_make_state_diagram (
*** 636,642 ****
    if (!m_html_gen_opts.m_show_state_diagrams)
      return nullptr;
  
!   if (!m_logical_loc_mgr)
      return nullptr;
  
    /* Get state graph; if we're going to print it later, also request
--- 637,644 ----
    if (!m_html_gen_opts.m_show_state_diagrams)
      return nullptr;
  
!   auto logical_loc_mgr = get_logical_loc_mgr ();
!   if (!logical_loc_mgr)
      return nullptr;
  
    /* Get state graph; if we're going to print it later, also request
*************** html_builder::maybe_make_state_diagram (
*** 649,655 ****
  
    // Convert it to .dot AST
    auto dot_graph = state_graphs::make_dot_graph (*state_graph,
! 						 *m_logical_loc_mgr);
    gcc_assert (dot_graph);
  
    auto wrapper = std::make_unique<xml::element> ("div", false);
--- 651,657 ----
  
    // Convert it to .dot AST
    auto dot_graph = state_graphs::make_dot_graph (*state_graph,
! 						 *logical_loc_mgr);
    gcc_assert (dot_graph);
  
    auto wrapper = std::make_unique<xml::element> ("div", false);
*************** html_builder::make_element_for_diagnosti
*** 1083,1098 ****
    gcc_assert (xp.get_num_open_tags () == depth_within_alert_div);
  
    /* Show any logical location.  */
!   if (m_logical_loc_mgr)
      if (auto client_data_hooks = m_context.get_client_data_hooks ())
        if (auto logical_loc = client_data_hooks->get_current_logical_location ())
  	if (logical_loc != m_last_logical_location)
  	  {
  	    enum logical_locations::kind kind
! 	      = m_logical_loc_mgr->get_kind (logical_loc);;
  	    if (const char *label = get_label_for_logical_location_kind (kind))
  	      if (const char *name_with_scope
! 		  = m_logical_loc_mgr->get_name_with_scope (logical_loc))
  		add_labelled_value (xp, "logical-location",
  				    label, name_with_scope, true);
  	    m_last_logical_location = logical_loc;
--- 1085,1100 ----
    gcc_assert (xp.get_num_open_tags () == depth_within_alert_div);
  
    /* Show any logical location.  */
!   if (auto logical_loc_mgr = get_logical_loc_mgr ())
      if (auto client_data_hooks = m_context.get_client_data_hooks ())
        if (auto logical_loc = client_data_hooks->get_current_logical_location ())
  	if (logical_loc != m_last_logical_location)
  	  {
  	    enum logical_locations::kind kind
! 	      = logical_loc_mgr->get_kind (logical_loc);;
  	    if (const char *label = get_label_for_logical_location_kind (kind))
  	      if (const char *name_with_scope
! 		  = logical_loc_mgr->get_name_with_scope (logical_loc))
  		add_labelled_value (xp, "logical-location",
  				    label, name_with_scope, true);
  	    m_last_logical_location = logical_loc;
diff -Nrcpad gcc-16-20260208/gcc/diagnostics/sarif-sink.cc gcc-16-20260215/gcc/diagnostics/sarif-sink.cc
*** gcc-16-20260208/gcc/diagnostics/sarif-sink.cc	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/diagnostics/sarif-sink.cc	Sun Feb 15 22:32:06 2026
*************** public:
*** 801,807 ****
    const logical_locations::manager *
    get_logical_location_manager () const
    {
!     return m_logical_loc_mgr;
    }
  
    void
--- 801,809 ----
    const logical_locations::manager *
    get_logical_location_manager () const
    {
!     if (auto client_data_hooks = m_context.get_client_data_hooks ())
!       return client_data_hooks->get_logical_location_manager ();
!     return nullptr;
    }
  
    void
*************** private:
*** 994,1001 ****
    const line_maps *m_line_maps;
    sarif_token_printer m_token_printer;
  
-   const logical_locations::manager *m_logical_loc_mgr;
- 
    /* The JSON object for the invocation object.  */
    std::unique_ptr<sarif_invocation> m_invocation_obj;
  
--- 996,1001 ----
*************** sarif_builder::sarif_builder (diagnostic
*** 1700,1706 ****
    m_printer (&printer),
    m_line_maps (line_maps),
    m_token_printer (*this),
-   m_logical_loc_mgr (nullptr),
    m_invocation_obj
      (std::make_unique<sarif_invocation> (*this,
  					 dc.get_original_argv ())),
--- 1700,1705 ----
*************** sarif_builder::sarif_builder (diagnostic
*** 1721,1729 ****
  {
    gcc_assert (m_line_maps);
    gcc_assert (m_serialization_format);
- 
-   if (auto client_data_hooks = dc.get_client_data_hooks ())
-     m_logical_loc_mgr = client_data_hooks->get_logical_location_manager ();
  }
  
  sarif_builder::~sarif_builder ()
--- 1720,1725 ----
*************** set_any_logical_locs_arr (sarif_location
*** 2307,2313 ****
  {
    if (!logical_loc)
      return;
!   gcc_assert (m_logical_loc_mgr);
    auto location_locs_arr = std::make_unique<json::array> ();
  
    auto logical_loc_obj = make_minimal_sarif_logical_location (logical_loc);
--- 2303,2310 ----
  {
    if (!logical_loc)
      return;
!   auto logical_loc_mgr = get_logical_location_manager ();
!   gcc_assert (logical_loc_mgr);
    auto location_locs_arr = std::make_unique<json::array> ();
  
    auto logical_loc_obj = make_minimal_sarif_logical_location (logical_loc);
*************** int
*** 3061,3088 ****
  sarif_builder::
  ensure_sarif_logical_location_for (logical_locations::key k)
  {
!   gcc_assert (m_logical_loc_mgr);
  
    auto sarif_logical_loc = std::make_unique<sarif_logical_location> ();
  
!   if (const char *short_name = m_logical_loc_mgr->get_short_name (k))
      sarif_logical_loc->set_string ("name", short_name);
  
    /* "fullyQualifiedName" property (SARIF v2.1.0 section 3.33.5).  */
!   if (const char *name_with_scope = m_logical_loc_mgr->get_name_with_scope (k))
      sarif_logical_loc->set_string ("fullyQualifiedName", name_with_scope);
  
    /* "decoratedName" property (SARIF v2.1.0 section 3.33.6).  */
!   if (const char *internal_name = m_logical_loc_mgr->get_internal_name (k))
      sarif_logical_loc->set_string ("decoratedName", internal_name);
  
    /* "kind" property (SARIF v2.1.0 section 3.33.7).  */
!   enum logical_locations::kind kind = m_logical_loc_mgr->get_kind (k);
    if (const char *sarif_kind_str = maybe_get_sarif_kind (kind))
      sarif_logical_loc->set_string ("kind", sarif_kind_str);
  
    /* "parentIndex" property (SARIF v2.1.0 section 3.33.8).  */
!   if (auto parent_key = m_logical_loc_mgr->get_parent (k))
      {
        /* Recurse upwards.  */
        int parent_index = ensure_sarif_logical_location_for (parent_key);
--- 3058,3086 ----
  sarif_builder::
  ensure_sarif_logical_location_for (logical_locations::key k)
  {
!   auto logical_loc_mgr = get_logical_location_manager ();
!   gcc_assert (logical_loc_mgr);
  
    auto sarif_logical_loc = std::make_unique<sarif_logical_location> ();
  
!   if (const char *short_name = logical_loc_mgr->get_short_name (k))
      sarif_logical_loc->set_string ("name", short_name);
  
    /* "fullyQualifiedName" property (SARIF v2.1.0 section 3.33.5).  */
!   if (const char *name_with_scope = logical_loc_mgr->get_name_with_scope (k))
      sarif_logical_loc->set_string ("fullyQualifiedName", name_with_scope);
  
    /* "decoratedName" property (SARIF v2.1.0 section 3.33.6).  */
!   if (const char *internal_name = logical_loc_mgr->get_internal_name (k))
      sarif_logical_loc->set_string ("decoratedName", internal_name);
  
    /* "kind" property (SARIF v2.1.0 section 3.33.7).  */
!   enum logical_locations::kind kind = logical_loc_mgr->get_kind (k);
    if (const char *sarif_kind_str = maybe_get_sarif_kind (kind))
      sarif_logical_loc->set_string ("kind", sarif_kind_str);
  
    /* "parentIndex" property (SARIF v2.1.0 section 3.33.8).  */
!   if (auto parent_key = logical_loc_mgr->get_parent (k))
      {
        /* Recurse upwards.  */
        int parent_index = ensure_sarif_logical_location_for (parent_key);
*************** std::unique_ptr<sarif_logical_location>
*** 3105,3111 ****
  sarif_builder::
  make_minimal_sarif_logical_location (logical_locations::key logical_loc)
  {
!   gcc_assert (m_logical_loc_mgr);
  
    /* Ensure that m_cached_logical_locs has a "logicalLocation" object
       (SARIF v2.1.0 section 3.33) for LOGICAL_LOC, and return its index within
--- 3103,3110 ----
  sarif_builder::
  make_minimal_sarif_logical_location (logical_locations::key logical_loc)
  {
!   auto logical_loc_mgr = get_logical_location_manager ();
!   gcc_assert (logical_loc_mgr);
  
    /* Ensure that m_cached_logical_locs has a "logicalLocation" object
       (SARIF v2.1.0 section 3.33) for LOGICAL_LOC, and return its index within
*************** make_minimal_sarif_logical_location (log
*** 3120,3126 ****
  
    /* "fullyQualifiedName" property (SARIF v2.1.0 section 3.33.5).  */
    if (const char *name_with_scope
!         = m_logical_loc_mgr->get_name_with_scope (logical_loc))
      sarif_logical_loc->set_string ("fullyQualifiedName", name_with_scope);
  
    return sarif_logical_loc;
--- 3119,3125 ----
  
    /* "fullyQualifiedName" property (SARIF v2.1.0 section 3.33.5).  */
    if (const char *name_with_scope
! 	= logical_loc_mgr->get_name_with_scope (logical_loc))
      sarif_logical_loc->set_string ("fullyQualifiedName", name_with_scope);
  
    return sarif_logical_loc;
diff -Nrcpad gcc-16-20260208/gcc/doc/analyzer.texi gcc-16-20260215/gcc/doc/analyzer.texi
*** gcc-16-20260208/gcc/doc/analyzer.texi	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/doc/analyzer.texi	Sun Feb 15 22:32:06 2026
*************** To prevent this, we follow various appro
*** 219,225 ****
  @enumerate a
  @item
  state pruning: which tries to discard state that won't be relevant
! later on withing the function.
  This can be disabled via @option{-fno-analyzer-state-purge}.
  
  @item
--- 219,225 ----
  @enumerate a
  @item
  state pruning: which tries to discard state that won't be relevant
! later on within the function.
  This can be disabled via @option{-fno-analyzer-state-purge}.
  
  @item
diff -Nrcpad gcc-16-20260208/gcc/doc/install.texi gcc-16-20260215/gcc/doc/install.texi
*** gcc-16-20260208/gcc/doc/install.texi	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/doc/install.texi	Sun Feb 15 22:32:06 2026
*************** to be available for each multilib varian
*** 3063,3068 ****
--- 3063,3093 ----
  @samp{zlib} is only used when the system installed library is not available.
  @end table
  
+ @subheading COBOL-Specific Options
+ 
+ The following options apply to the build of the COBOL runtime library.
+ 
+ @table @code
+ @item --with-target-libxml2=@var{list}
+ @itemx --with-target-libxml2-include=@var{list}
+ @itemx --with-target-libxml2-lib=@var{list}
+ Specify search directories for the libxml2 header files and
+ libraries.  @var{list} is a comma separated list of key value pairs of the
+ form @samp{@var{multilibdir}=@var{path}}, where the default multilib key
+ is named as @samp{.} (dot), or is omitted (e.g.@:
+ @samp{--with-target-libxml2=/opt/libxml2,32=/opt-libxml2-32}).
+ 
+ The options @option{--with-target-libxml2-include} and
+ @option{--with-target-libxml2-lib} must always be specified together
+ for each multilib variant and they take precedence over
+ @option{--with-target-libxml2}.  If @option{--with-target-libxml2-include}
+ is missing values for a multilib, then the value for the default
+ multilib is used (e.g.@: @samp{--with-target-libxml2-include=/opt/libxml2/include}
+ @samp{--with-target-libxml2-lib=/opt/libxml2/lib64,32=/opt-libxml2/lib32}).
+ If none of these options are specified, the library is assumed in
+ default locations.
+ @end table
+ 
  @html
  <hr />
  <p>
diff -Nrcpad gcc-16-20260208/gcc/doc/invoke.texi gcc-16-20260215/gcc/doc/invoke.texi
*** gcc-16-20260208/gcc/doc/invoke.texi	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/doc/invoke.texi	Sun Feb 15 22:32:06 2026
*************** These options are supported for Xtensa t
*** 37217,37227 ****
  @item -mconst16
  @itemx -mno-const16
  Enable or disable use of @code{CONST16} instructions for loading
! constant values.  The @code{CONST16} instruction is currently not a
! standard option from Tensilica.  When enabled, @code{CONST16}
! instructions are always used in place of the standard @code{L32R}
! instructions.  The use of @code{CONST16} is enabled by default only if
! the @code{L32R} instruction is not available.
  
  @opindex mserialize-volatile
  @opindex mno-serialize-volatile
--- 37217,37226 ----
  @item -mconst16
  @itemx -mno-const16
  Enable or disable use of @code{CONST16} instructions for loading
! constant values.  When enabled, @code{CONST16} instructions are always
! used in place of the standard @code{L32R} instructions.  The use of
! @code{CONST16} is enabled by default only if the @code{L32R} instruction
! is not available.
  
  @opindex mserialize-volatile
  @opindex mno-serialize-volatile
diff -Nrcpad gcc-16-20260208/gcc/fortran/ChangeLog gcc-16-20260215/gcc/fortran/ChangeLog
*** gcc-16-20260208/gcc/fortran/ChangeLog	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/fortran/ChangeLog	Sun Feb 15 22:32:06 2026
***************
*** 1,3 ****
--- 1,67 ----
+ 2026-02-14  Christopher Albert  <albert@tugraz.at>
+ 	    Harald Anlauf  <anlauf@gcc.gnu.org>
+ 
+ 	PR fortran/123943
+ 	* resolve.cc (gfc_max_forall_iterators_in_chain): New helper
+ 	function for factorization of iterator-depth counting.
+ 	(gfc_count_forall_iterators): Use it.
+ 
+ 2026-02-14  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/99250
+ 	* check.cc (gfc_check_coshape): New function.
+ 	* gfortran.h: Add GFC_ISYM_COSHAPE to gfc_isym_id.
+ 	* intrinsic.cc (add_functions): Add the coshape prototype and
+ 	its 'make_generic'.
+ 	* intrinsic.h: Add prototypes for gfc_check_coshape and
+ 	gfc_resolve_coshape.
+ 	* intrinsic.texi : Add entries for coshape.
+ 	* iresolve.cc (gfc_resolve_coshape): New function.
+ 	* trans-array.cc (gfc_conv_ss_startstride): Add 'case
+ 	GFC_ISYM_COSHAPE' in two places.
+ 	* trans-intrinsic.cc (conv_intrinsic_cobound): Modify assert in
+ 	scalarized section for lbound. Set bound to zero for scalar
+ 	case of coshape. Keep the lbound and use it together with the
+ 	scalarized ubound to obtain the coshape.
+ 	(gfc_conv_intrinsic_function, gfc_add_intrinsic_ss_code and
+ 	gfc_walk_intrinsic_function): Add 'case GFC_ISYM_COSHAPE' as
+ 	appropriate.
+ 
+ 2026-02-08  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/85547
+ 	* decl.cc (gfc_match_volatile): Fix frontend memleak.
+ 	(gfc_match_asynchronous): Likewise.
+ 	* dump-parse-tree.cc (show_expr): Show type-spec for character
+ 	array constructor when given.
+ 	* simplify.cc (gfc_simplify_len): Simplify LEN() when type-spec
+ 	is provided for character array constructor.
+ 	* trans-intrinsic.cc (gfc_conv_intrinsic_len): Likewise.
+ 
+ 2026-02-08  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/123961
+ 	* check.cc (array_check): Extend check to class array functions.
+ 	* class.cc (gfc_add_class_array_ref): Fix NULL pointer dereference.
+ 
+ 2026-02-08  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/123545
+ 	PR fortran/123673
+ 	* decl.cc (gfc_get_pdt_instance): If a pdt_type component is
+ 	allocatable or has allocatable components, mark it alloc_comp.
+ 	(gfc_match_decl_type_spec): Sometimes in compiling contained
+ 	functions, the symtree for the constructor points to the type
+ 	instead of the constructor symbol. This corrects itself later
+ 	in compilation so return MATCH_YES.
+ 	* trans-decl.cc (gfc_generate_function_code): Unconditionally
+ 	nullify allocatable components as well as applying the default
+ 	initializer.
+ 	* trans-expr.cc (gfc_trans_alloc_subarray_assign): Restrict the
+ 	freeing of the destination data to non-allocatable expressions
+ 	and, instead, add the se finalblock to the encompassing final_
+ 	block.
+ 
  2026-02-06  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
  
  	PR middle-end/123892
diff -Nrcpad gcc-16-20260208/gcc/fortran/check.cc gcc-16-20260215/gcc/fortran/check.cc
*** gcc-16-20260208/gcc/fortran/check.cc	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/fortran/check.cc	Sun Feb 15 22:32:06 2026
*************** gfc_check_complex (gfc_expr *x, gfc_expr
*** 2772,2777 ****
--- 2772,2797 ----
  
  
  bool
+ gfc_check_coshape (gfc_expr *coarray, gfc_expr *kind)
+ {
+   if (flag_coarray == GFC_FCOARRAY_NONE)
+     {
+       gfc_fatal_error ("Coarrays disabled at %L, use %<-fcoarray=%> to enable",
+ 		       gfc_current_intrinsic_where);
+       return false;
+     }
+ 
+   if (!coarray_check (coarray, 0))
+     return false;
+ 
+   if (!kind_check (kind, 2, BT_INTEGER))
+     return false;
+ 
+   return true;
+ }
+ 
+ 
+ bool
  gfc_check_count (gfc_expr *mask, gfc_expr *dim, gfc_expr *kind)
  {
    if (!logical_array_check (mask, 0))
diff -Nrcpad gcc-16-20260208/gcc/fortran/decl.cc gcc-16-20260215/gcc/fortran/decl.cc
*** gcc-16-20260208/gcc/fortran/decl.cc	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/fortran/decl.cc	Sun Feb 15 22:32:06 2026
*************** gfc_get_pdt_instance (gfc_actual_arglist
*** 3960,3969 ****
    /* Pointers to the parameter specification being used.  */
    gfc_actual_arglist *actual_param;
    gfc_actual_arglist *tail = NULL;
!   /* Used to build up the name of the PDT instance. The prefix uses 4
       characters and each KIND parameter 2 more.  Allow 8 of the latter. */
!   char name[GFC_MAX_SYMBOL_LEN + 21];
! 
    bool name_seen = (param_list == NULL);
    bool assumed_seen = false;
    bool deferred_seen = false;
--- 3960,3968 ----
    /* Pointers to the parameter specification being used.  */
    gfc_actual_arglist *actual_param;
    gfc_actual_arglist *tail = NULL;
!   /* Used to build up the name of the PDT instance. The prefix uses 3
       characters and each KIND parameter 2 more.  Allow 8 of the latter. */
!   char name[GFC_MAX_SYMBOL_LEN + PDT_PREFIX_LEN + 16];
    bool name_seen = (param_list == NULL);
    bool assumed_seen = false;
    bool deferred_seen = false;
*************** gfc_get_pdt_instance (gfc_actual_arglist
*** 3980,3986 ****
  
    type_param_name_list = pdt->formal;
    actual_param = param_list;
!   sprintf (name, "Pdt%s", pdt->name);
  
    /* Prevent a PDT component of the same type as the template from being
       converted into an instance. Doing this results in the component being
--- 3979,3985 ----
  
    type_param_name_list = pdt->formal;
    actual_param = param_list;
!   sprintf (name, "%s%s", PDT_PREFIX, pdt->name);
  
    /* Prevent a PDT component of the same type as the template from being
       converted into an instance. Doing this results in the component being
diff -Nrcpad gcc-16-20260208/gcc/fortran/gfortran.h gcc-16-20260215/gcc/fortran/gfortran.h
*** gcc-16-20260208/gcc/fortran/gfortran.h	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/fortran/gfortran.h	Sun Feb 15 22:32:06 2026
*************** enum gfc_isym_id
*** 490,495 ****
--- 490,496 ----
    GFC_ISYM_COS,
    GFC_ISYM_COSD,
    GFC_ISYM_COSH,
+   GFC_ISYM_COSHAPE,
    GFC_ISYM_COTAN,
    GFC_ISYM_COTAND,
    GFC_ISYM_COUNT,
*************** bool gfc_may_be_finalized (gfc_typespec)
*** 4309,4314 ****
--- 4310,4317 ----
  	(expr && expr->expr_type == EXPR_VARIABLE \
  	 && expr->symtree->n.sym->assoc \
  	 && expr->symtree->n.sym->assoc->inferred_type)
+ #define PDT_PREFIX "PDT"
+ #define PDT_PREFIX_LEN 3
  #define IS_PDT(sym) \
  	(sym != NULL && sym->ts.type == BT_DERIVED \
  	 && sym->ts.u.derived \
diff -Nrcpad gcc-16-20260208/gcc/fortran/intrinsic.cc gcc-16-20260215/gcc/fortran/intrinsic.cc
*** gcc-16-20260208/gcc/fortran/intrinsic.cc	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/fortran/intrinsic.cc	Sun Feb 15 22:32:06 2026
*************** add_functions (void)
*** 1840,1845 ****
--- 1840,1853 ----
  
    make_generic ("cosh", GFC_ISYM_COSH, GFC_STD_F77);
  
+   add_sym_2 ("coshape", GFC_ISYM_COSHAPE, CLASS_INQUIRY, ACTUAL_NO,
+ 	     BT_INTEGER, di, GFC_STD_F2018,
+ 	     gfc_check_coshape, NULL , gfc_resolve_coshape,
+ 	     ca, BT_REAL, dr, REQUIRED,
+ 	     kind, BT_INTEGER, di, OPTIONAL);
+ 
+   make_generic ("coshape", GFC_ISYM_COSHAPE, GFC_STD_F2018);
+ 
    add_sym_3 ("count", GFC_ISYM_COUNT, CLASS_TRANSFORMATIONAL, ACTUAL_NO,
  	     BT_INTEGER, di, GFC_STD_F95,
  	     gfc_check_count, gfc_simplify_count, gfc_resolve_count,
diff -Nrcpad gcc-16-20260208/gcc/fortran/intrinsic.h gcc-16-20260215/gcc/fortran/intrinsic.h
*** gcc-16-20260208/gcc/fortran/intrinsic.h	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/fortran/intrinsic.h	Sun Feb 15 22:32:06 2026
*************** bool gfc_check_chdir (gfc_expr *);
*** 53,58 ****
--- 53,59 ----
  bool gfc_check_chmod (gfc_expr *, gfc_expr *);
  bool gfc_check_cmplx (gfc_expr *, gfc_expr *, gfc_expr *);
  bool gfc_check_complex (gfc_expr *, gfc_expr *);
+ bool gfc_check_coshape (gfc_expr *, gfc_expr *);
  bool gfc_check_co_broadcast (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
  bool gfc_check_co_minmax (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
  bool gfc_check_co_sum (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
*************** void gfc_resolve_complex (gfc_expr *, gf
*** 498,503 ****
--- 499,505 ----
  void gfc_resolve_conjg (gfc_expr *, gfc_expr *);
  void gfc_resolve_cos (gfc_expr *, gfc_expr *);
  void gfc_resolve_cosh (gfc_expr *, gfc_expr *);
+ void gfc_resolve_coshape (gfc_expr *, gfc_expr *, gfc_expr *);
  void gfc_resolve_count (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
  void gfc_resolve_cshift (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
  void gfc_resolve_ctime (gfc_expr *, gfc_expr *);
diff -Nrcpad gcc-16-20260208/gcc/fortran/intrinsic.texi gcc-16-20260215/gcc/fortran/intrinsic.texi
*** gcc-16-20260208/gcc/fortran/intrinsic.texi	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/fortran/intrinsic.texi	Sun Feb 15 22:32:06 2026
*************** Some basic guidelines for editing this d
*** 127,132 ****
--- 127,133 ----
  * @code{COS}:           COS,       Cosine function
  * @code{COSD}:          COSD,      Cosine function, degrees
  * @code{COSH}:          COSH,      Hyperbolic cosine function
+ * @code{COSHAPE}:       COSHAPE,   Determine the coshape of a coarray
  * @code{COSPI}:         COSPI,     Circular cosine function
  * @code{COTAN}:         COTAN,     Cotangent function
  * @code{COTAND}:        COTAND,    Cotangent function, degrees
*************** Inverse function: @*
*** 4635,4640 ****
--- 4636,4683 ----
  
  
  
+ @node COSHAPE
+ @section @code{COSHAPE} --- Determine the coshape of a coarray
+ @fnindex COSHAPE
+ @cindex coarray, coshape
+ 
+ @table @asis
+ @item @emph{Synopsis}:
+ @code{RESULT = COSHAPE(COARRAY [, KIND])}
+ 
+ @item @emph{Description}:
+ Returns the shape of the cobounds of a coarray.
+ 
+ @item @emph{Class}:
+ Inquiry function
+ 
+ @item @emph{Arguments}:
+ @multitable @columnfractions .15 .70
+ @item @var{COARRAY} @tab Shall be an coarray, of any type.
+ @item @var{KIND} @tab (Optional) A scalar @code{INTEGER} constant
+ expression indicating the kind parameter of the result.
+ @end multitable
+ 
+ 
+ @item @emph{Example}:
+ 
+ @smallexample
+ program test_cosh
+   real(8) :: x[*]
+   integer, allocatable :: csh (:)
+   csh = coshape(x, kind = kind(csh))
+ end program test_cosh
+ @end smallexample
+ 
+ @item @emph{Standard}:
+ Fortran 2018
+ 
+ @item @emph{See also}:
+ @ref{SHAPE}
+ @end table
+ 
+ 
+ 
  @node COSPI
  @section @code{COSPI} --- Circular cosine function
  @fnindex COSPI
*************** END PROGRAM
*** 13563,13568 ****
--- 13606,13612 ----
  Fortran 90 and later, with @var{KIND} argument Fortran 2003 and later
  
  @item @emph{See also}:
+ @ref{COSHAPE}, @*
  @ref{RESHAPE}, @*
  @ref{SIZE}
  @end table
diff -Nrcpad gcc-16-20260208/gcc/fortran/iresolve.cc gcc-16-20260215/gcc/fortran/iresolve.cc
*** gcc-16-20260208/gcc/fortran/iresolve.cc	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/fortran/iresolve.cc	Sun Feb 15 22:32:06 2026
*************** gfc_resolve_cosh (gfc_expr *f, gfc_expr
*** 733,738 ****
--- 733,757 ----
  
  
  void
+ gfc_resolve_coshape (gfc_expr *f, gfc_expr *array, gfc_expr *kind)
+ {
+   f->ts.type = BT_INTEGER;
+   if (kind)
+     f->ts.kind = mpz_get_si (kind->value.integer);
+   else
+     f->ts.kind = gfc_default_integer_kind;
+ 
+   f->value.function.name
+     = gfc_get_string ("__coshape_%c%d", gfc_type_letter (array->ts.type),
+ 		      gfc_type_abi_kind (&array->ts));
+   f->rank = 1;
+   f->corank = 0;
+   f->shape = gfc_get_shape (1);
+   mpz_init_set_si (f->shape[0], array->corank);
+ }
+ 
+ 
+ void
  gfc_resolve_count (gfc_expr *f, gfc_expr *mask, gfc_expr *dim, gfc_expr *kind)
  {
    f->ts.type = BT_INTEGER;
diff -Nrcpad gcc-16-20260208/gcc/fortran/module.cc gcc-16-20260215/gcc/fortran/module.cc
*** gcc-16-20260208/gcc/fortran/module.cc	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/fortran/module.cc	Sun Feb 15 22:32:06 2026
*************** read_module (void)
*** 5843,5855 ****
  	  /* Include pdt_types if their associated pdt_template is in a
  	     USE, ONLY list.  */
  	  if (p == NULL && name[0] == 'P'
! 	      && startswith (name, "Pdt")
  	      && module_list)
  	    {
  	      gfc_use_list *ml = module_list;
  	      for (; ml; ml = ml->next)
  		if (ml->rename
! 		    && !strncmp (&name[3], ml->rename->use_name,
  				 strlen (ml->rename->use_name)))
  		  p = name;
  	    }
--- 5843,5856 ----
  	  /* Include pdt_types if their associated pdt_template is in a
  	     USE, ONLY list.  */
  	  if (p == NULL && name[0] == 'P'
! 	      && startswith (name, PDT_PREFIX)
  	      && module_list)
  	    {
  	      gfc_use_list *ml = module_list;
  	      for (; ml; ml = ml->next)
  		if (ml->rename
! 		    && !strncmp (&name[PDT_PREFIX_LEN],
! 				 ml->rename->use_name,
  				 strlen (ml->rename->use_name)))
  		  p = name;
  	    }
diff -Nrcpad gcc-16-20260208/gcc/fortran/resolve.cc gcc-16-20260215/gcc/fortran/resolve.cc
*** gcc-16-20260208/gcc/fortran/resolve.cc	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/fortran/resolve.cc	Sun Feb 15 22:32:06 2026
*************** gfc_resolve_forall_body (gfc_code *code,
*** 12433,12465 ****
     nested forall constructs. This is used to allocate the needed memory
     in gfc_resolve_forall.  */
  
  static int
  gfc_count_forall_iterators (gfc_code *code)
  {
!   int max_iters, sub_iters, current_iters;
    gfc_forall_iterator *fa;
  
    gcc_assert (code->op == EXEC_FORALL || code->op == EXEC_DO_CONCURRENT);
-   max_iters = 0;
-   current_iters = 0;
  
    for (fa = code->ext.concur.forall_iterator; fa; fa = fa->next)
!     current_iters ++;
! 
!   code = code->block->next;
! 
!   while (code)
!     {
!       if (code->op == EXEC_FORALL || code->op == EXEC_DO_CONCURRENT)
!         {
!           sub_iters = gfc_count_forall_iterators (code);
!           if (sub_iters > max_iters)
!             max_iters = sub_iters;
!         }
!       code = code->next;
!     }
  
!   return current_iters + max_iters;
  }
  
  
--- 12433,12482 ----
     nested forall constructs. This is used to allocate the needed memory
     in gfc_resolve_forall.  */
  
+ static int gfc_count_forall_iterators (gfc_code *code);
+ 
+ /* Return the deepest nested FORALL/DO CONCURRENT iterator count in CODE's
+    next-chain, descending into block arms such as IF/ELSE branches.  */
+ 
+ static int
+ gfc_max_forall_iterators_in_chain (gfc_code *code)
+ {
+   int max_iters = 0;
+ 
+   for (gfc_code *c = code; c; c = c->next)
+     {
+       int sub_iters = 0;
+ 
+       if (c->op == EXEC_FORALL || c->op == EXEC_DO_CONCURRENT)
+ 	sub_iters = gfc_count_forall_iterators (c);
+       else if (c->block)
+ 	for (gfc_code *b = c->block; b; b = b->block)
+ 	  {
+ 	    int arm_iters = gfc_max_forall_iterators_in_chain (b->next);
+ 	    if (arm_iters > sub_iters)
+ 	      sub_iters = arm_iters;
+ 	  }
+ 
+       if (sub_iters > max_iters)
+ 	max_iters = sub_iters;
+     }
+ 
+   return max_iters;
+ }
+ 
+ 
  static int
  gfc_count_forall_iterators (gfc_code *code)
  {
!   int current_iters = 0;
    gfc_forall_iterator *fa;
  
    gcc_assert (code->op == EXEC_FORALL || code->op == EXEC_DO_CONCURRENT);
  
    for (fa = code->ext.concur.forall_iterator; fa; fa = fa->next)
!     current_iters++;
  
!   return current_iters + gfc_max_forall_iterators_in_chain (code->block->next);
  }
  
  
*************** resolve_typebound_procedure (gfc_symtree
*** 16684,16692 ****
  	  goto error;
  	}
  
!       if (resolve_bindings_derived->attr.pdt_template
! 	  && gfc_pdt_is_instance_of (resolve_bindings_derived,
! 				     CLASS_DATA (me_arg)->ts.u.derived)
            && (me_arg->param_list != NULL)
            && (gfc_spec_list_type (me_arg->param_list,
  				  CLASS_DATA(me_arg)->ts.u.derived)
--- 16701,16710 ----
  	  goto error;
  	}
  
!       if (((resolve_bindings_derived->attr.pdt_template
! 	    && gfc_pdt_is_instance_of (resolve_bindings_derived,
! 				       CLASS_DATA (me_arg)->ts.u.derived))
! 	   || resolve_bindings_derived->attr.pdt_type)
            && (me_arg->param_list != NULL)
            && (gfc_spec_list_type (me_arg->param_list,
  				  CLASS_DATA(me_arg)->ts.u.derived)
diff -Nrcpad gcc-16-20260208/gcc/fortran/symbol.cc gcc-16-20260215/gcc/fortran/symbol.cc
*** gcc-16-20260208/gcc/fortran/symbol.cc	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/fortran/symbol.cc	Sun Feb 15 22:32:06 2026
*************** gfc_type_is_extension_of (gfc_symbol *t1
*** 5467,5480 ****
     gfc_symbol *t2 -> pdt instance to be verified.
  
     In decl.cc, gfc_get_pdt_instance, a pdt instance is given a 3 character
!    prefix "Pdt", followed by an underscore list of the kind parameters,
     up to a maximum of 8 kind parameters.  To verify if a PDT Type corresponds
     to the template, this functions extracts t2's derive_type name,
     and compares it to the derive_type name of t1 for compatibility.
  
     For example:
  
!    t2->name = Pdtf_2_2; extract out the 'f' and compare with t1->name.  */
  
  bool
  gfc_pdt_is_instance_of (gfc_symbol *t1, gfc_symbol *t2)
--- 5467,5480 ----
     gfc_symbol *t2 -> pdt instance to be verified.
  
     In decl.cc, gfc_get_pdt_instance, a pdt instance is given a 3 character
!    prefix PDT_PREFIX, followed by an underscore list of the kind parameters,
     up to a maximum of 8 kind parameters.  To verify if a PDT Type corresponds
     to the template, this functions extracts t2's derive_type name,
     and compares it to the derive_type name of t1 for compatibility.
  
     For example:
  
!    t2->name = PDT_PREFIXf_2_2; extract the 'f' and compare with t1->name.  */
  
  bool
  gfc_pdt_is_instance_of (gfc_symbol *t1, gfc_symbol *t2)
*************** gfc_pdt_is_instance_of (gfc_symbol *t1,
*** 5483,5489 ****
      return false;
  
    /* Limit comparison to length of t1->name to ignore new kind params.  */
!   if ( !(strncmp (&(t2->name[3]), t1->name, strlen (t1->name)) == 0) )
      return false;
  
    return true;
--- 5483,5490 ----
      return false;
  
    /* Limit comparison to length of t1->name to ignore new kind params.  */
!   if ( !(strncmp (&(t2->name[PDT_PREFIX_LEN]), t1->name,
! 		  strlen (t1->name)) == 0) )
      return false;
  
    return true;
diff -Nrcpad gcc-16-20260208/gcc/fortran/trans-array.cc gcc-16-20260215/gcc/fortran/trans-array.cc
*** gcc-16-20260208/gcc/fortran/trans-array.cc	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/fortran/trans-array.cc	Sun Feb 15 22:32:06 2026
*************** gfc_conv_ss_startstride (gfc_loopinfo *
*** 5259,5264 ****
--- 5259,5265 ----
  	    {
  	    case GFC_ISYM_LBOUND:
  	    case GFC_ISYM_UBOUND:
+ 	    case GFC_ISYM_COSHAPE:
  	    case GFC_ISYM_LCOBOUND:
  	    case GFC_ISYM_UCOBOUND:
  	    case GFC_ISYM_MAXLOC:
*************** done:
*** 5385,5390 ****
--- 5386,5392 ----
  		  /* Otherwise fall through GFC_SS_FUNCTION.  */
  		  gcc_fallthrough ();
  	      }
+ 	    case GFC_ISYM_COSHAPE:
  	    case GFC_ISYM_LCOBOUND:
  	    case GFC_ISYM_UCOBOUND:
  	    case GFC_ISYM_THIS_IMAGE:
diff -Nrcpad gcc-16-20260208/gcc/fortran/trans-intrinsic.cc gcc-16-20260215/gcc/fortran/trans-intrinsic.cc
*** gcc-16-20260208/gcc/fortran/trans-intrinsic.cc	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/fortran/trans-intrinsic.cc	Sun Feb 15 22:32:06 2026
*************** conv_intrinsic_cobound (gfc_se * se, gfc
*** 2618,2629 ****
    gfc_actual_arglist *arg;
    gfc_actual_arglist *arg2;
    gfc_se argse;
!   tree bound, resbound, resbound2, desc, cond, tmp;
    tree type;
    int corank;
  
    gcc_assert (expr->value.function.isym->id == GFC_ISYM_LCOBOUND
  	      || expr->value.function.isym->id == GFC_ISYM_UCOBOUND
  	      || expr->value.function.isym->id == GFC_ISYM_THIS_IMAGE);
  
    arg = expr->value.function.actual;
--- 2618,2630 ----
    gfc_actual_arglist *arg;
    gfc_actual_arglist *arg2;
    gfc_se argse;
!   tree bound, lbound, resbound, resbound2, desc, cond, tmp;
    tree type;
    int corank;
  
    gcc_assert (expr->value.function.isym->id == GFC_ISYM_LCOBOUND
  	      || expr->value.function.isym->id == GFC_ISYM_UCOBOUND
+ 	      || expr->value.function.isym->id == GFC_ISYM_COSHAPE
  	      || expr->value.function.isym->id == GFC_ISYM_THIS_IMAGE);
  
    arg = expr->value.function.actual;
*************** conv_intrinsic_cobound (gfc_se * se, gfc
*** 2643,2649 ****
    if (se->ss)
      {
        /* Create an implicit second parameter from the loop variable.  */
!       gcc_assert (!arg2->expr);
        gcc_assert (corank > 0);
        gcc_assert (se->loop->dimen == 1);
        gcc_assert (se->ss->info->expr == expr);
--- 2644,2651 ----
    if (se->ss)
      {
        /* Create an implicit second parameter from the loop variable.  */
!       gcc_assert (!arg2->expr
! 		  || expr->value.function.isym->id == GFC_ISYM_COSHAPE);
        gcc_assert (corank > 0);
        gcc_assert (se->loop->dimen == 1);
        gcc_assert (se->ss->info->expr == expr);
*************** conv_intrinsic_cobound (gfc_se * se, gfc
*** 2653,2661 ****
  			       bound, gfc_rank_cst[arg->expr->rank]);
        gfc_advance_se_ss_chain (se);
      }
    else
      {
-       /* use the passed argument.  */
        gcc_assert (arg2->expr);
        gfc_init_se (&argse, NULL);
        gfc_conv_expr_type (&argse, arg2->expr, gfc_array_index_type);
--- 2655,2664 ----
  			       bound, gfc_rank_cst[arg->expr->rank]);
        gfc_advance_se_ss_chain (se);
      }
+   else if (expr->value.function.isym->id == GFC_ISYM_COSHAPE)
+     bound = gfc_index_zero_node;
    else
      {
        gcc_assert (arg2->expr);
        gfc_init_se (&argse, NULL);
        gfc_conv_expr_type (&argse, arg2->expr, gfc_array_index_type);
*************** conv_intrinsic_cobound (gfc_se * se, gfc
*** 2704,2711 ****
  
    resbound = gfc_conv_descriptor_lbound_get (desc, bound);
  
    /* Handle UCOBOUND with special handling of the last codimension.  */
!   if (expr->value.function.isym->id == GFC_ISYM_UCOBOUND)
      {
        /* Last codimension: For -fcoarray=single just return
  	 the lcobound - otherwise add
--- 2707,2721 ----
  
    resbound = gfc_conv_descriptor_lbound_get (desc, bound);
  
+   /* COSHAPE needs the lower cobound and so it is stashed here before resbound
+      is overwritten.  */
+   lbound = NULL_TREE;
+   if (expr->value.function.isym->id == GFC_ISYM_COSHAPE)
+     lbound = resbound;
+ 
    /* Handle UCOBOUND with special handling of the last codimension.  */
!   if (expr->value.function.isym->id == GFC_ISYM_UCOBOUND
!       || expr->value.function.isym->id == GFC_ISYM_COSHAPE)
      {
        /* Last codimension: For -fcoarray=single just return
  	 the lcobound - otherwise add
*************** conv_intrinsic_cobound (gfc_se * se, gfc
*** 2759,2764 ****
--- 2769,2786 ----
  	}
        else
  	se->expr = resbound;
+ 
+       /* Get the coshape for this dimension.  */
+       if (expr->value.function.isym->id == GFC_ISYM_COSHAPE)
+ 	{
+ 	  gcc_assert (lbound != NULL_TREE);
+ 	  se->expr = fold_build2_loc (input_location, MINUS_EXPR,
+ 				      gfc_array_index_type,
+ 				      se->expr, lbound);
+ 	  se->expr = fold_build2_loc (input_location, PLUS_EXPR,
+ 				      gfc_array_index_type,
+ 				      se->expr, gfc_index_one_node);
+ 	}
      }
    else
      se->expr = resbound;
*************** gfc_conv_intrinsic_function (gfc_se * se
*** 11319,11324 ****
--- 11341,11350 ----
        gfc_conv_intrinsic_conjg (se, expr);
        break;
  
+     case GFC_ISYM_COSHAPE:
+       conv_intrinsic_cobound (se, expr);
+       break;
+ 
      case GFC_ISYM_COUNT:
        gfc_conv_intrinsic_count (se, expr);
        break;
*************** gfc_add_intrinsic_ss_code (gfc_loopinfo
*** 12021,12026 ****
--- 12047,12053 ----
      {
      case GFC_ISYM_UBOUND:
      case GFC_ISYM_LBOUND:
+     case GFC_ISYM_COSHAPE:
      case GFC_ISYM_UCOBOUND:
      case GFC_ISYM_LCOBOUND:
      case GFC_ISYM_MAXLOC:
*************** gfc_walk_intrinsic_bound (gfc_ss * ss, g
*** 12046,12051 ****
--- 12073,12079 ----
  
    /* The two argument version returns a scalar.  */
    if (expr->value.function.isym->id != GFC_ISYM_SHAPE
+       && expr->value.function.isym->id != GFC_ISYM_COSHAPE
        && expr->value.function.actual->next->expr)
      return ss;
  
*************** gfc_walk_intrinsic_function (gfc_ss * ss
*** 12224,12229 ****
--- 12252,12258 ----
    /* Special cases.  */
    switch (isym->id)
      {
+     case GFC_ISYM_COSHAPE:
      case GFC_ISYM_LBOUND:
      case GFC_ISYM_LCOBOUND:
      case GFC_ISYM_UBOUND:
diff -Nrcpad gcc-16-20260208/gcc/ifcvt.cc gcc-16-20260215/gcc/ifcvt.cc
*** gcc-16-20260208/gcc/ifcvt.cc	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/ifcvt.cc	Sun Feb 15 22:32:06 2026
*************** noce_try_cond_arith (struct noce_if_info
*** 3194,3199 ****
--- 3194,3202 ----
    else if (!(noce_cond_zero_binary_op_supported (a) && REG_P (b)))
      goto fail;
  
+   if (code == UNKNOWN)
+     goto fail;
+ 
    op = GET_CODE (a);
  
    /* Canonicalize x = (z op y) : y to x = (y op z) : y */
diff -Nrcpad gcc-16-20260208/gcc/ipa-devirt.cc gcc-16-20260215/gcc/ipa-devirt.cc
*** gcc-16-20260208/gcc/ipa-devirt.cc	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/ipa-devirt.cc	Sun Feb 15 22:32:06 2026
*************** ipa_devirt (void)
*** 3845,3867 ****
   	       with the speculation.  */
  	    if (e->speculative)
  	      {
- 		bool found = false;
  		for (cgraph_node * likely_target: likely_targets)
  		  if (e->speculative_call_for_target (likely_target))
  		    {
! 		      found = true;
! 		      break;
  		    }
- 		if (found)
- 		  {
- 		    fprintf (dump_file, "We agree with speculation\n\n");
- 		    stats.nok++;
- 		  }
- 		else
- 		  {
- 		    fprintf (dump_file, "We disagree with speculation\n\n");
- 		    stats.nwrong++;
- 		  }
  		continue;
  	      }
  	    bool first = true;
--- 3845,3865 ----
   	       with the speculation.  */
  	    if (e->speculative)
  	      {
  		for (cgraph_node * likely_target: likely_targets)
  		  if (e->speculative_call_for_target (likely_target))
  		    {
! 		      fprintf (dump_file,
! 			       "We agree with speculation on target %s\n\n",
! 			       likely_target->dump_name ());
! 		      stats.nok++;
! 		    }
! 		  else
! 		    {
! 		      fprintf (dump_file,
! 			       "We disagree with speculation on target %s\n\n",
! 			       likely_target->dump_name ());
! 		      stats.nwrong++;
  		    }
  		continue;
  	      }
  	    bool first = true;
*************** ipa_devirt (void)
*** 3908,3913 ****
--- 3906,3921 ----
  	else if (cgraph_simple_indirect_info *sii
  		 = dyn_cast <cgraph_simple_indirect_info *> (e->indirect_info))
  	  {
+ 	    if (e->speculative)
+ 	      {
+ 		if (dump_file)
+ 		  fprintf (dump_file, "Call is already speculated\n\n");
+ 		stats.nspeculated++;
+ 
+ 		/* When dumping see if we agree with speculation.  */
+ 		if (!dump_file)
+ 		  continue;
+ 	      }
  	    if (!sii->fnptr_loaded_from_record
  		|| !opt_for_fn (n->decl,
  				flag_speculatively_call_stored_functions))
*************** ipa_devirt (void)
*** 3930,3935 ****
--- 3938,3957 ----
  		    if (alias)
  		      likely_tgt_node = alias;
  		  }
+ 		if (e->speculative)
+ 		  {
+ 		    if (e->speculative_call_for_target (likely_tgt_node))
+ 		      {
+ 			fprintf (dump_file, "Simple call agree with speculation\n\n");
+ 			stats.nok++;
+ 		      }
+ 		    else
+ 		      {
+ 			fprintf (dump_file, "Simple call disagree with speculation\n\n");
+ 			stats.nwrong++;
+ 		      }
+ 		    continue;
+ 		  }
  
  		if (dump_enabled_p ())
  		  dump_printf_loc (MSG_OPTIMIZED_LOCATIONS, e->call_stmt,
diff -Nrcpad gcc-16-20260208/gcc/json-parsing.cc gcc-16-20260215/gcc/json-parsing.cc
*** gcc-16-20260208/gcc/json-parsing.cc	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/json-parsing.cc	Sun Feb 15 22:32:06 2026
*************** assert_err_eq (const location &loc,
*** 1495,1500 ****
--- 1495,1519 ----
  		 (END_UNICHAR_IDX), (END_LINE), (END_COLUMN),	\
  		 (EXPECTED_MSG))
  
+ /* Implementation detail of ASSERT_JSON_POINTER_EQ.  */
+ 
+ static void
+ assert_json_pointer_eq (const location &loc,
+ 			const json::value *jv,
+ 			const char *expected_str)
+ {
+   pretty_printer pp;
+   ASSERT_TRUE_AT (loc, jv);
+   jv->print_pointer (&pp);
+   ASSERT_STREQ_AT (loc, pp_formatted_text (&pp), expected_str);
+ }
+ 
+ /* Assert that JV is a non-NULL json::value *, and that
+    jv->print_pointer prints EXPECTED_STR.  */
+ 
+ #define ASSERT_JSON_POINTER_EQ(JV, EXPECTED_STR) \
+   assert_json_pointer_eq ((SELFTEST_LOCATION), (JV), (EXPECTED_STR))
+ 
  /* Verify that the JSON lexer works as expected.  */
  
  static void
*************** test_parse_object ()
*** 2130,2135 ****
--- 2149,2155 ----
  		   0, line_1, 0,
  		   32, line_1, 32);
    const json::object *jo = static_cast <const json::object *> (jv);
+   ASSERT_JSON_POINTER_EQ (jv, "");
  
    json::value *foo_value = jo->get ("foo");
    ASSERT_NE (foo_value, nullptr);
*************** test_parse_object ()
*** 2140,2145 ****
--- 2160,2166 ----
    ASSERT_RANGE_EQ (*range,
  		   8, line_1, 8,
  		   12, line_1, 12);
+   ASSERT_JSON_POINTER_EQ (foo_value, "/foo");
  
    json::value *baz_value = jo->get ("baz");
    ASSERT_NE (baz_value, nullptr);
*************** test_parse_object ()
*** 2149,2154 ****
--- 2170,2176 ----
    ASSERT_RANGE_EQ (*range,
  		   22, line_1, 22,
  		   31, line_1, 31);
+   ASSERT_JSON_POINTER_EQ (baz_value, "/baz");
  
    json::array *baz_array = as_a <json::array *> (baz_value);
    ASSERT_EQ (baz_array->length (), 2);
*************** test_parse_object ()
*** 2160,2165 ****
--- 2182,2188 ----
    ASSERT_RANGE_EQ (*range,
  		   23, line_1, 23,
  		   24, line_1, 24);
+   ASSERT_JSON_POINTER_EQ (element0, "/baz/0");
  
    json::value *element1 = baz_array->get (1);
    ASSERT_EQ (element1->get_kind (), JSON_NULL);
*************** test_parse_object ()
*** 2168,2173 ****
--- 2191,2197 ----
    ASSERT_RANGE_EQ (*range,
  		   27, line_1, 27,
  		   30, line_1, 30);
+   ASSERT_JSON_POINTER_EQ (element1, "/baz/1");
  }
  
  /* Verify that the JSON literals "true", "false" and "null" are parsed
*************** test_parsing_comments ()
*** 2297,2302 ****
--- 2321,2348 ----
    }
  }
  
+ /* Verify that JSON Pointers are correctly escaped.  */
+ 
+ static void
+ test_pointer_escaping ()
+ {
+   std::unique_ptr<error> err;
+   /* Example adapted from RFC 6901 section 5.  */
+   parser_testcase tc
+     ("     {\n"
+      "      \"a/b\": 1,\n"
+      "      \"m~n\": 8\n"
+      "   }\n");
+   ASSERT_EQ (tc.get_error (), nullptr);
+   const json::value *jv = tc.get_value ();
+   ASSERT_NE (jv, nullptr);
+   ASSERT_EQ (jv->get_kind (), JSON_OBJECT);
+ 
+   auto jo = static_cast <const json::object *> (jv);
+   ASSERT_JSON_POINTER_EQ (jo->get ("a/b"), "/a~1b");
+   ASSERT_JSON_POINTER_EQ (jo->get ("m~n"), "/m~0n");
+ }
+ 
  /* Verify that we can parse an empty JSON string.  */
  
  static void
*************** json_parser_cc_tests ()
*** 2378,2383 ****
--- 2424,2430 ----
    test_parse_jsonrpc ();
    test_parse_empty_object ();
    test_parsing_comments ();
+   test_pointer_escaping ();
    test_error_empty_string ();
    test_error_bad_token ();
    test_error_object_with_missing_comma ();
diff -Nrcpad gcc-16-20260208/gcc/json.cc gcc-16-20260215/gcc/json.cc
*** gcc-16-20260208/gcc/json.cc	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/json.cc	Sun Feb 15 22:32:06 2026
*************** pointer::token::operator= (pointer::toke
*** 120,125 ****
--- 120,161 ----
    return *this;
  }
  
+ /* Print this to PP as an RFC 6901 section 3 reference-token.  */
+ 
+ void
+ pointer::token::print (pretty_printer *pp) const
+ {
+   switch (m_kind)
+     {
+     case kind::root_value:
+       break;
+ 
+     case kind::object_member:
+       {
+ 	for (const char *ch = m_data.u_member; *ch; ++ch)
+ 	  {
+ 	    switch (*ch)
+ 	      {
+ 	      case '~':
+ 		pp_string (pp, "~0");
+ 		break;
+ 	      case '/':
+ 		pp_string (pp, "~1");
+ 		break;
+ 	      default:
+ 		pp_character (pp, *ch);
+ 		break;
+ 	      }
+ 	  }
+       }
+       break;
+ 
+     case kind::array_index:
+       pp_scalar (pp, HOST_SIZE_T_PRINT_UNSIGNED, (fmt_size_t) m_data.u_index);
+       break;
+     }
+ }
+ 
  /* class json::value.  */
  
  /* Dump this json::value tree to OUTF.
*************** value::compare (const value &val_a, cons
*** 234,239 ****
--- 270,298 ----
      }
  }
  
+ /* Print this value's JSON Pointer to PP.  */
+ 
+ void
+ value::print_pointer (pretty_printer *pp) const
+ {
+   /* Get path from this value to root.  */
+   auto_vec<const pointer::token *> ancestry;
+   for (auto *iter = this; iter; iter = iter->m_pointer_token.m_parent)
+     ancestry.safe_push (&iter->m_pointer_token);
+ 
+   /* Walk backward, going from root to this value.  */
+   ancestry.reverse ();
+   bool first = true;
+   for (auto iter : ancestry)
+     {
+       if (first)
+ 	first = false;
+       else
+ 	pp_character (pp, '/');
+       iter->print (pp);
+     }
+ }
+ 
  /* class json::object, a subclass of json::value, representing
     an ordered collection of key/value pairs.  */
  
diff -Nrcpad gcc-16-20260208/gcc/json.h gcc-16-20260215/gcc/json.h
*** gcc-16-20260208/gcc/json.h	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/json.h	Sun Feb 15 22:32:06 2026
*************** struct token
*** 107,112 ****
--- 107,114 ----
    token &
    operator= (token &&other);
  
+   void print (pretty_printer *pp) const;
+ 
    json::value *m_parent;
    union u
    {
*************** class value
*** 174,179 ****
--- 176,182 ----
    static int compare (const json::value &val_a, const json::value &val_b);
  
    const pointer::token &get_pointer_token () const { return m_pointer_token; }
+   void print_pointer (pretty_printer *pp) const;
  
    pointer::token m_pointer_token;
  };
diff -Nrcpad gcc-16-20260208/gcc/libsarifreplay.cc gcc-16-20260215/gcc/libsarifreplay.cc
*** gcc-16-20260208/gcc/libsarifreplay.cc	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/libsarifreplay.cc	Sun Feb 15 22:32:06 2026
*************** along with GCC; see the file COPYING3.
*** 32,37 ****
--- 32,38 ----
  #include "sarif-spec-urls.def"
  #include "libsarifreplay.h"
  #include "label-text.h"
+ #include "pretty-print.h"
  
  namespace {
  
*************** make_logical_location_from_jv (libgdiagn
*** 145,151 ****
      parent = make_logical_location_from_jv (mgr,
  					    *jv.m_pointer_token.m_parent);
  
!   std::string short_name;
    std::string fully_qualified_name;
    switch (pointer_token.m_kind)
      {
--- 146,154 ----
      parent = make_logical_location_from_jv (mgr,
  					    *jv.m_pointer_token.m_parent);
  
!   pretty_printer pp;
!   pointer_token.print (&pp);
!   std::string short_name = pp_formatted_text (&pp);
    std::string fully_qualified_name;
    switch (pointer_token.m_kind)
      {
*************** make_logical_location_from_jv (libgdiagn
*** 153,171 ****
        gcc_unreachable ();
  
      case json::pointer::token::kind::root_value:
-       short_name = "";
        fully_qualified_name = "";
        break;
  
      case json::pointer::token::kind::object_member:
-       short_name = pointer_token.m_data.u_member;
        gcc_assert (parent.m_inner);
        fully_qualified_name
  	= std::string (parent.get_fully_qualified_name ()) + "/" + short_name;
        break;
  
      case json::pointer::token::kind::array_index:
-       short_name = std::to_string (pointer_token.m_data.u_index);
        gcc_assert (parent.m_inner);
        fully_qualified_name
  	= std::string (parent.get_fully_qualified_name ()) + "/" + short_name;
--- 156,171 ----
diff -Nrcpad gcc-16-20260208/gcc/lra-constraints.cc gcc-16-20260215/gcc/lra-constraints.cc
*** gcc-16-20260208/gcc/lra-constraints.cc	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/lra-constraints.cc	Sun Feb 15 22:32:06 2026
***************
*** 134,139 ****
--- 134,140 ----
  #include "print-rtl.h"
  #include "function-abi.h"
  #include "rtl-iter.h"
+ #include "hash-set.h"
  
  /* Value of LRA_CURR_RELOAD_NUM at the beginning of BB of the current
     insn.  Remember that LRA_CURR_RELOAD_NUM is the number of emitted
*************** satisfies_address_constraint_p (rtx op,
*** 495,500 ****
--- 496,518 ----
    return satisfies_address_constraint_p (&ad, constraint);
  }
  
+ /* Set of equivalences whose original targets have set up pointer flag.  */
+ static hash_set <rtx> *pointer_equiv_set;
+ 
+ /* Add x to pointer_equiv_set.  */
+ void
+ lra_pointer_equiv_set_add (rtx x)
+ {
+   pointer_equiv_set->add (x);
+ }
+ 
+ /* Return true if x is in pointer_equiv_set.  */
+ bool
+ lra_pointer_equiv_set_in (rtx x)
+ {
+   return pointer_equiv_set->contains (x);
+ }
+ 
  /* Initiate equivalences for LRA.  As we keep original equivalences
     before any elimination, we need to make copies otherwise any change
     in insns might change the equivalences.  */
*************** lra_init_equiv (void)
*** 511,516 ****
--- 529,542 ----
        if ((res = ira_reg_equiv[i].invariant) != NULL_RTX)
  	ira_reg_equiv[i].invariant = copy_rtx (res);
      }
+   pointer_equiv_set = new hash_set <rtx>;
+ }
+ 
+ /* Finish equivalence data for LRA.  */
+ void
+ lra_finish_equiv (void)
+ {
+   delete pointer_equiv_set;
  }
  
  static rtx loc_equivalence_callback (rtx, const_rtx, void *);
*************** get_equiv (rtx x)
*** 560,568 ****
    gcc_unreachable ();
  }
  
! /* If we have decided to substitute X with the equivalent value,
!    return that value after elimination for INSN, otherwise return
!    X.  */
  static rtx
  get_equiv_with_elimination (rtx x, rtx_insn *insn)
  {
--- 586,594 ----
    gcc_unreachable ();
  }
  
! /* If we have decided to substitute X with the equivalent value, return that
!    value after elimination for INSN, otherwise return X.  Add the result to
!    pointer_equiv_set if X has set up pointer flag.  */
  static rtx
  get_equiv_with_elimination (rtx x, rtx_insn *insn)
  {
*************** get_equiv_with_elimination (rtx x, rtx_i
*** 570,577 ****
  
    if (x == res || CONSTANT_P (res))
      return res;
!   return lra_eliminate_regs_1 (insn, res, GET_MODE (res),
! 			       false, false, 0, true);
  }
  
  /* Set up curr_operand_mode.  */
--- 596,606 ----
  
    if (x == res || CONSTANT_P (res))
      return res;
!   res = lra_eliminate_regs_1 (insn, res, GET_MODE (res),
! 			      false, false, 0, true);
!   if (REG_POINTER (x))
!     lra_pointer_equiv_set_add (res);
!   return res;
  }
  
  /* Set up curr_operand_mode.  */
*************** canonicalize_reload_addr (rtx addr)
*** 653,658 ****
--- 682,708 ----
    return addr;
  }
  
+ /* Return rtx accessing reload REG of RCLASS matching another reload reg in
+    MODE.  */
+ static rtx
+ get_matching_reload_reg_subreg (machine_mode mode, rtx reg,
+ 				enum reg_class rclass)
+ {
+   int hard_regno = ira_class_hard_regs[rclass][0];
+   if (subreg_regno_offset (hard_regno,
+ 			   GET_MODE (reg),
+ 			   subreg_lowpart_offset (mode, GET_MODE (reg)),
+ 			   mode) == 0)
+     /* For matching scalar int modes generate the right subreg byte offset for
+        BE targets -- see call of reload.cc:operands_match_p in
+        recog.cc:constrain_operands.  */
+     return lowpart_subreg (mode, reg, GET_MODE (reg));
+   int offset = (lra_constraint_offset (hard_regno, GET_MODE (reg))
+ 		- lra_constraint_offset (hard_regno, mode)) * UNITS_PER_WORD;
+   lra_assert (offset >= 0);
+   return gen_rtx_SUBREG (mode, reg, offset);
+ }
+ 
  /* Create a new pseudo using MODE, RCLASS, EXCLUDE_START_HARD_REGS, ORIGINAL or
     reuse an existing reload pseudo.  Don't reuse an existing reload pseudo if
     IN_SUBREG_P is true and the reused pseudo should be wrapped up in a SUBREG.
*************** get_reload_reg (enum op_type type, machi
*** 737,743 ****
  		if (maybe_lt (GET_MODE_SIZE (GET_MODE (reg)),
  			      GET_MODE_SIZE (mode)))
  		  continue;
! 		reg = lowpart_subreg (mode, reg, GET_MODE (reg));
  		if (reg == NULL_RTX || GET_CODE (reg) != SUBREG)
  		  continue;
  	      }
--- 787,793 ----
  		if (maybe_lt (GET_MODE_SIZE (GET_MODE (reg)),
  			      GET_MODE_SIZE (mode)))
  		  continue;
! 		reg = get_matching_reload_reg_subreg (mode, reg, new_class);
  		if (reg == NULL_RTX || GET_CODE (reg) != SUBREG)
  		  continue;
  	      }
*************** match_reload (signed char out, signed ch
*** 1105,1111 ****
  	    = lra_create_new_reg_with_unique_value (inmode, in_rtx, goal_class,
  						    exclude_start_hard_regs,
  						    "");
! 	  new_out_reg = gen_lowpart_SUBREG (outmode, reg);
  	  LRA_SUBREG_P (new_out_reg) = 1;
  	  /* If the input reg is dying here, we can use the same hard
  	     register for REG and IN_RTX.  We do it only for original
--- 1155,1161 ----
  	    = lra_create_new_reg_with_unique_value (inmode, in_rtx, goal_class,
  						    exclude_start_hard_regs,
  						    "");
! 	  new_out_reg = get_matching_reload_reg_subreg (outmode, reg, goal_class);
  	  LRA_SUBREG_P (new_out_reg) = 1;
  	  /* If the input reg is dying here, we can use the same hard
  	     register for REG and IN_RTX.  We do it only for original
*************** match_reload (signed char out, signed ch
*** 1124,1130 ****
  						    goal_class,
  						    exclude_start_hard_regs,
  						    "");
! 	  new_in_reg = gen_lowpart_SUBREG (inmode, reg);
  	  /* NEW_IN_REG is non-paradoxical subreg.  We don't want
  	     NEW_OUT_REG living above.  We add clobber clause for
  	     this.  This is just a temporary clobber.  We can remove
--- 1174,1180 ----
  						    goal_class,
  						    exclude_start_hard_regs,
  						    "");
! 	  new_in_reg = get_matching_reload_reg_subreg (inmode, reg, goal_class);
  	  /* NEW_IN_REG is non-paradoxical subreg.  We don't want
  	     NEW_OUT_REG living above.  We add clobber clause for
  	     this.  This is just a temporary clobber.  We can remove
*************** process_addr_reg (rtx *loc, bool check_o
*** 1605,1611 ****
  	      dump_value_slim (lra_dump_file, *loc, 1);
  	      fprintf (lra_dump_file, "\n");
  	    }
! 	  *loc = copy_rtx (*loc);
  	}
        if (*loc != reg || ! in_class_p (reg, cl, &new_class))
  	{
--- 1655,1664 ----
  	      dump_value_slim (lra_dump_file, *loc, 1);
  	      fprintf (lra_dump_file, "\n");
  	    }
! 	  rtx new_equiv = copy_rtx (*loc);
! 	  if (lra_pointer_equiv_set_in (*loc))
! 	    lra_pointer_equiv_set_add (new_equiv);
! 	  *loc = new_equiv;
  	}
        if (*loc != reg || ! in_class_p (reg, cl, &new_class))
  	{
*************** curr_insn_transform (bool check_only_p)
*** 4333,4339 ****
  	if (subst != old)
  	  {
  	    equiv_substition_p[i] = true;
! 	    subst = copy_rtx (subst);
  	    lra_assert (REG_P (old));
  	    if (GET_CODE (op) != SUBREG)
  	      *curr_id->operand_loc[i] = subst;
--- 4386,4395 ----
  	if (subst != old)
  	  {
  	    equiv_substition_p[i] = true;
! 	    rtx new_subst = copy_rtx (subst);
! 	    if (lra_pointer_equiv_set_in (subst))
! 	      lra_pointer_equiv_set_add (new_subst);
! 	    subst = new_subst;
  	    lra_assert (REG_P (old));
  	    if (GET_CODE (op) != SUBREG)
  	      *curr_id->operand_loc[i] = subst;
diff -Nrcpad gcc-16-20260208/gcc/lra-int.h gcc-16-20260215/gcc/lra-int.h
*** gcc-16-20260208/gcc/lra-int.h	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/lra-int.h	Sun Feb 15 22:32:06 2026
*************** extern bitmap_head lra_optional_reload_p
*** 359,364 ****
--- 359,367 ----
  /* lra-constraints.cc: */
  
  extern void lra_init_equiv (void);
+ extern void lra_pointer_equiv_set_add (rtx);
+ extern bool lra_pointer_equiv_set_in (rtx);
+ extern void lra_finish_equiv (void);
  extern int lra_constraint_offset (int, machine_mode);
  
  extern int lra_constraint_iter;
diff -Nrcpad gcc-16-20260208/gcc/lra.cc gcc-16-20260215/gcc/lra.cc
*** gcc-16-20260208/gcc/lra.cc	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/lra.cc	Sun Feb 15 22:32:06 2026
*************** int lra_curr_reload_num;
*** 489,504 ****
  
  static void remove_insn_scratches (rtx_insn *insn);
  
! /* Emit x := y, processing special case when y = u + v or y = u + v *
!    scale + w through emit_add (Y can be an address which is base +
!    index reg * scale + displacement in general case).  X may be used
!    as intermediate result therefore it should be not in Y.  */
  void
  lra_emit_move (rtx x, rtx y)
  {
    int old;
    rtx_insn *insn;
  
    if (GET_CODE (y) != PLUS)
      {
        if (rtx_equal_p (x, y))
--- 489,513 ----
  
  static void remove_insn_scratches (rtx_insn *insn);
  
! /* Emit x := y, processing special case when y = u + v or y = u + v * scale + w
!    through emit_add (Y can be an address which is base + index reg * scale +
!    displacement in general case).  X may be used as intermediate result
!    therefore it should be not in Y.  Set up pointer flag of X if Y is
!    equivalence whose original target has setup pointer flag.  */
  void
  lra_emit_move (rtx x, rtx y)
  {
    int old;
    rtx_insn *insn;
  
+   if ((REG_P (x) || MEM_P (x)) && lra_pointer_equiv_set_in (y))
+      {
+        /* Set up pointer flag from original equivalence target: */
+        if (REG_P (x))
+ 	 REG_POINTER (x) = 1;
+        else
+ 	 MEM_POINTER (x) = 1;
+      }
    if (GET_CODE (y) != PLUS)
      {
        if (rtx_equal_p (x, y))
*************** lra (FILE *f, int verbose)
*** 2608,2613 ****
--- 2617,2623 ----
    sbitmap_free (lra_constraint_insn_stack_bitmap);
    lra_constraint_insn_stack.release ();
    finish_insn_recog_data ();
+   lra_finish_equiv ();
    regstat_free_n_sets_and_refs ();
    regstat_free_ri ();
    reload_completed = 1;
diff -Nrcpad gcc-16-20260208/gcc/lto/ChangeLog gcc-16-20260215/gcc/lto/ChangeLog
*** gcc-16-20260208/gcc/lto/ChangeLog	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/lto/ChangeLog	Sun Feb 15 22:32:06 2026
***************
*** 1,3 ****
--- 1,7 ----
+ 2026-02-13  Dhruv Chawla  <dhruvc@nvidia.com>
+ 
+ 	* Make-lang.in (lto1.fda): Likewise.
+ 
  2026-02-06  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
  
  	PR middle-end/123892
diff -Nrcpad gcc-16-20260208/gcc/lto/Make-lang.in gcc-16-20260215/gcc/lto/Make-lang.in
*** gcc-16-20260208/gcc/lto/Make-lang.in	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/lto/Make-lang.in	Sun Feb 15 22:32:06 2026
*************** components_in_prev = "bfd opcodes binuti
*** 106,112 ****
  components_in_prev_target = "libstdc++-v3 libsanitizer libvtv libgcc libbacktrace libphobos zlib libgomp libatomic"
  
  lto1.fda: create_fdas_for_lto1
! 	$(PROFILE_MERGER) $(shell ls -ha lto1_*.fda) --output_file lto1.fda -gcov_version 2
  
  create_fdas_for_lto1: ../stage1-gcc/lto1$(exeext) ../prev-gcc/$(PERF_DATA)
  	for component_in_prev in "$(components_in_prev)"; do \
--- 106,112 ----
  components_in_prev_target = "libstdc++-v3 libsanitizer libvtv libgcc libbacktrace libphobos zlib libgomp libatomic"
  
  lto1.fda: create_fdas_for_lto1
! 	$(PROFILE_MERGER) $(shell ls -ha lto1_*.fda) --output_file lto1.fda -gcov_version 3
  
  create_fdas_for_lto1: ../stage1-gcc/lto1$(exeext) ../prev-gcc/$(PERF_DATA)
  	for component_in_prev in "$(components_in_prev)"; do \
diff -Nrcpad gcc-16-20260208/gcc/omp-low.cc gcc-16-20260215/gcc/omp-low.cc
*** gcc-16-20260208/gcc/omp-low.cc	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/omp-low.cc	Sun Feb 15 22:32:06 2026
*************** is_taskreg_ctx (omp_context *ctx)
*** 396,406 ****
    return is_parallel_ctx (ctx) || is_task_ctx (ctx) || is_host_teams_ctx (ctx);
  }
  
! /* Return true if EXPR is variable sized.  */
  
  static inline bool
! is_variable_sized (const_tree expr)
  {
    return !TREE_CONSTANT (TYPE_SIZE_UNIT (TREE_TYPE (expr)));
  }
  
--- 396,410 ----
    return is_parallel_ctx (ctx) || is_task_ctx (ctx) || is_host_teams_ctx (ctx);
  }
  
! /* Return true if EXPR is variable sized.  If IS_REF is true, then
!    EXPR is assumed to be a reference and the object it refers
!    to is checked instead.  */
  
  static inline bool
! is_variable_sized (const_tree expr, bool is_ref = false)
  {
+   if (is_ref)
+     expr = TREE_TYPE (expr);
    return !TREE_CONSTANT (TYPE_SIZE_UNIT (TREE_TYPE (expr)));
  }
  
*************** lower_omp_target (gimple_stmt_iterator *
*** 12813,12822 ****
  
    ilist = NULL;
    olist = NULL;
    for (c = clauses; c ; c = OMP_CLAUSE_CHAIN (c))
      switch (OMP_CLAUSE_CODE (c))
        {
! 	tree var, x;
  
        default:
  	break;
--- 12817,12833 ----
  
    ilist = NULL;
    olist = NULL;
+ 
+   gimple_seq alloc_dlist = NULL;
+   hash_map<tree, tree> alloc_map;
+   hash_map<tree, gimple_seq> alloc_seq_map;
+ 
    for (c = clauses; c ; c = OMP_CLAUSE_CHAIN (c))
      switch (OMP_CLAUSE_CODE (c))
        {
! 	tree var, x, new_var, allocator, allocate_ptr, size;
! 	gimple_seq alloc_seq;
! 	bool by_ref;
  
        default:
  	break;
*************** lower_omp_target (gimple_stmt_iterator *
*** 12997,13006 ****
  	  }
  	map_cnt++;
  	var = OMP_CLAUSE_DECL (c);
! 	if (!omp_privatize_by_reference (var)
! 	    && !is_gimple_reg_type (TREE_TYPE (var)))
  	  {
- 	    tree new_var = lookup_decl (var, ctx);
  	    if (is_variable_sized (var))
  	      {
  		tree pvar = DECL_VALUE_EXPR (var);
--- 13008,13032 ----
  	  }
  	map_cnt++;
  	var = OMP_CLAUSE_DECL (c);
! 	new_var = lookup_decl (var, ctx);
! 	allocator = NULL_TREE;
! 	allocate_ptr = NULL_TREE;
! 	size = TREE_TYPE (var);
! 	by_ref = omp_privatize_by_reference (var);
! 	if (by_ref)
! 	  size = TREE_TYPE (size);
! 	size = TYPE_SIZE_UNIT (size);
! 	if (is_variable_sized (var, by_ref))
! 	  size = lookup_decl (size, ctx);
! 	alloc_seq = NULL;
! 	if (lower_private_allocate (var, new_var, allocator, allocate_ptr,
! 				    &alloc_seq, ctx, by_ref, size))
! 	  {
! 	    alloc_map.put (new_var, allocate_ptr);
! 	    alloc_seq_map.put (new_var, alloc_seq);
! 	  }
! 	if (!by_ref && !is_gimple_reg_type (TREE_TYPE (var)))
  	  {
  	    if (is_variable_sized (var))
  	      {
  		tree pvar = DECL_VALUE_EXPR (var);
*************** lower_omp_target (gimple_stmt_iterator *
*** 13011,13016 ****
--- 13037,13044 ----
  		x = build_fold_indirect_ref (new_pvar);
  		TREE_THIS_NOTRAP (x) = 1;
  	      }
+ 	    else if (allocate_ptr)
+ 	      x = build_fold_indirect_ref (allocate_ptr);
  	    else
  	      x = build_receiver_ref (var, true, ctx);
  	    SET_DECL_VALUE_EXPR (new_var, x);
*************** lower_omp_target (gimple_stmt_iterator *
*** 13020,13025 ****
--- 13048,13073 ----
  	  if (OMP_CLAUSE_CODE (c) != OMP_CLAUSE_HAS_DEVICE_ADDR
  	      && lang_hooks.decls.omp_array_data (var, true))
  	    map_cnt += 2;
+ 
+       do_dtor:
+ 	if (allocator)
+ 	  {
+ 	    if (!is_gimple_val (allocator))
+ 	      {
+ 		tree avar = create_tmp_var (TREE_TYPE (allocator));
+ 		gimplify_assign (avar, allocator, &alloc_dlist);
+ 		allocator = avar;
+ 	      }
+ 	    if (!is_gimple_val (allocate_ptr))
+ 	      {
+ 		tree apvar = create_tmp_var (TREE_TYPE (allocate_ptr));
+ 		gimplify_assign (apvar, allocate_ptr, &alloc_dlist);
+ 		allocate_ptr = apvar;
+ 	      }
+ 	    tree f = builtin_decl_explicit (BUILT_IN_GOMP_FREE);
+ 	    gimple *g = gimple_build_call (f, 2, allocate_ptr, allocator);
+ 	    gimple_seq_add_stmt (&alloc_dlist, g);
+ 	  }
  	break;
  
        case OMP_CLAUSE_PRIVATE:
*************** lower_omp_target (gimple_stmt_iterator *
*** 13034,13040 ****
  	    break;
  	  }
  	var = OMP_CLAUSE_DECL (c);
! 	if (is_variable_sized (var))
  	  {
  	    tree new_var = lookup_decl (var, ctx);
  	    tree pvar = DECL_VALUE_EXPR (var);
--- 13082,13106 ----
  	    break;
  	  }
  	var = OMP_CLAUSE_DECL (c);
! 	new_var = lookup_decl (var, ctx);
! 	allocator = NULL_TREE;
! 	allocate_ptr = NULL_TREE;
! 	alloc_seq = NULL;
! 	size = TREE_TYPE (var);
! 	by_ref = omp_privatize_by_reference (var);
! 	if (by_ref)
! 	  size = TREE_TYPE (size);
! 	size = TYPE_SIZE_UNIT (size);
! 	if (is_variable_sized (var, by_ref))
! 	  size = lookup_decl (size, ctx);
! 	lower_private_allocate (var, new_var, allocator, allocate_ptr,
! 				&alloc_seq, ctx, by_ref, size);
! 	if (allocate_ptr)
! 	  {
! 	    alloc_map.put (new_var, allocate_ptr);
! 	    alloc_seq_map.put (new_var, alloc_seq);
! 	  }
! 	if (!allocate_ptr && is_variable_sized (var))
  	  {
  	    tree new_var = lookup_decl (var, ctx);
  	    tree pvar = DECL_VALUE_EXPR (var);
*************** lower_omp_target (gimple_stmt_iterator *
*** 13047,13053 ****
  	    SET_DECL_VALUE_EXPR (new_var, x);
  	    DECL_HAS_VALUE_EXPR_P (new_var) = 1;
  	  }
! 	break;
  
        case OMP_CLAUSE_USE_DEVICE_PTR:
        case OMP_CLAUSE_USE_DEVICE_ADDR:
--- 13113,13119 ----
  	    SET_DECL_VALUE_EXPR (new_var, x);
  	    DECL_HAS_VALUE_EXPR_P (new_var) = 1;
  	  }
! 	goto do_dtor;
  
        case OMP_CLAUSE_USE_DEVICE_PTR:
        case OMP_CLAUSE_USE_DEVICE_ADDR:
*************** lower_omp_target (gimple_stmt_iterator *
*** 13961,13970 ****
    if (offloaded || data_region)
      {
        tree prev = NULL_TREE;
        for (c = clauses; c ; c = OMP_CLAUSE_CHAIN (c))
  	switch (OMP_CLAUSE_CODE (c))
  	  {
! 	    tree var, x;
  	  default:
  	    break;
  	  case OMP_CLAUSE_FIRSTPRIVATE:
--- 14027,14037 ----
    if (offloaded || data_region)
      {
        tree prev = NULL_TREE;
+       bool by_ref;
        for (c = clauses; c ; c = OMP_CLAUSE_CHAIN (c))
  	switch (OMP_CLAUSE_CODE (c))
  	  {
! 	    tree var, x, new_var, *allocate_ptr;
  	  default:
  	    break;
  	  case OMP_CLAUSE_FIRSTPRIVATE:
*************** lower_omp_target (gimple_stmt_iterator *
*** 13972,13984 ****
  	    if (is_gimple_omp_oacc (ctx->stmt))
  	      break;
  	    var = OMP_CLAUSE_DECL (c);
! 	    if (omp_privatize_by_reference (var)
! 		|| is_gimple_reg_type (TREE_TYPE (var)))
  	      {
- 		tree new_var = lookup_decl (var, ctx);
  		tree type;
  		type = TREE_TYPE (var);
! 		if (omp_privatize_by_reference (var))
  		  type = TREE_TYPE (type);
  		if ((INTEGRAL_TYPE_P (type)
  		     && TYPE_PRECISION (type) <= POINTER_SIZE)
--- 14039,14072 ----
  	    if (is_gimple_omp_oacc (ctx->stmt))
  	      break;
  	    var = OMP_CLAUSE_DECL (c);
! 	    new_var = lookup_decl (var, ctx);
! 	    allocate_ptr = alloc_map.get (new_var);
! 	    by_ref = omp_privatize_by_reference (var);
! 	    if (allocate_ptr)
! 	      {
! 		if (is_variable_sized (var, by_ref))
! 		  /* Handle this in the next pass when the size is
! 		     available.  */
! 		  break;
! 
! 		gimple_seq *allocate_seq = alloc_seq_map.get (new_var);
! 		gcc_assert (allocate_seq);
! 		gimple_seq_add_seq (&new_body, *allocate_seq);
! 
! 		if (by_ref)
! 		  {
! 		    x = fold_convert (TREE_TYPE (new_var), *allocate_ptr);
! 		    gimplify_assign (new_var, x, &new_body);
! 		    new_var = build_fold_indirect_ref (new_var);
! 		  }
! 		else
! 		  new_var = build_simple_mem_ref (*allocate_ptr);
! 	      }
! 	    if (by_ref || is_gimple_reg_type (TREE_TYPE (var)))
  	      {
  		tree type;
  		type = TREE_TYPE (var);
! 		if (by_ref)
  		  type = TREE_TYPE (type);
  		if ((INTEGRAL_TYPE_P (type)
  		     && TYPE_PRECISION (type) <= POINTER_SIZE)
*************** lower_omp_target (gimple_stmt_iterator *
*** 13990,13996 ****
  		    x = fold_convert (type, x);
  		    gimplify_expr (&x, &new_body, NULL, is_gimple_val,
  				   fb_rvalue);
! 		    if (omp_privatize_by_reference (var))
  		      {
  			tree v = create_tmp_var_raw (type, get_name (var));
  			gimple_add_tmp_var (v);
--- 14078,14084 ----
  		    x = fold_convert (type, x);
  		    gimplify_expr (&x, &new_body, NULL, is_gimple_val,
  				   fb_rvalue);
! 		    if (by_ref && !allocate_ptr)
  		      {
  			tree v = create_tmp_var_raw (type, get_name (var));
  			gimple_add_tmp_var (v);
*************** lower_omp_target (gimple_stmt_iterator *
*** 13999,14015 ****
  					     gimple_build_assign (v, x));
  			x = build_fold_addr_expr (v);
  		      }
! 		    gimple_seq_add_stmt (&new_body,
! 					 gimple_build_assign (new_var, x));
  		  }
  		else
  		  {
! 		    bool by_ref = !omp_privatize_by_reference (var);
! 		    x = build_receiver_ref (var, by_ref, ctx);
  		    gimplify_expr (&x, &new_body, NULL, is_gimple_val,
  				   fb_rvalue);
! 		    gimple_seq_add_stmt (&new_body,
! 					 gimple_build_assign (new_var, x));
  		  }
  	      }
  	    else if (is_variable_sized (var))
--- 14087,14100 ----
  					     gimple_build_assign (v, x));
  			x = build_fold_addr_expr (v);
  		      }
! 		    gimplify_assign (new_var, x, &new_body);
  		  }
  		else
  		  {
! 		    x = build_receiver_ref (var, allocate_ptr || !by_ref, ctx);
  		    gimplify_expr (&x, &new_body, NULL, is_gimple_val,
  				   fb_rvalue);
! 		    gimplify_assign (new_var, x, &new_body);
  		  }
  	      }
  	    else if (is_variable_sized (var))
*************** lower_omp_target (gimple_stmt_iterator *
*** 14024,14052 ****
  		gimple_seq_add_stmt (&new_body,
  				     gimple_build_assign (new_var, x));
  	      }
  	    break;
  	  case OMP_CLAUSE_PRIVATE:
  	    if (is_gimple_omp_oacc (ctx->stmt))
  	      break;
  	    var = OMP_CLAUSE_DECL (c);
! 	    if (omp_privatize_by_reference (var))
  	      {
  		location_t clause_loc = OMP_CLAUSE_LOCATION (c);
! 		tree new_var = lookup_decl (var, ctx);
! 		x = TYPE_SIZE_UNIT (TREE_TYPE (TREE_TYPE (new_var)));
! 		if (TREE_CONSTANT (x))
  		  {
! 		    x = create_tmp_var_raw (TREE_TYPE (TREE_TYPE (new_var)),
! 					    get_name (var));
! 		    gimple_add_tmp_var (x);
! 		    TREE_ADDRESSABLE (x) = 1;
! 		    x = build_fold_addr_expr_loc (clause_loc, x);
  		  }
  		else
! 		  break;
  
- 		x = fold_convert_loc (clause_loc, TREE_TYPE (new_var), x);
- 		gimplify_expr (&x, &new_body, NULL, is_gimple_val, fb_rvalue);
  		gimple_seq_add_stmt (&new_body,
  				     gimple_build_assign (new_var, x));
  	      }
--- 14109,14167 ----
  		gimple_seq_add_stmt (&new_body,
  				     gimple_build_assign (new_var, x));
  	      }
+ 	    else if (allocate_ptr)
+ 	      {
+ 		x = build_receiver_ref (var, true, ctx);
+ 		new_var = unshare_expr (new_var);
+ 		x = lang_hooks.decls.omp_clause_copy_ctor (c, new_var, x);
+ 		gimplify_and_add (x, &new_body);
+ 	      }
  	    break;
  	  case OMP_CLAUSE_PRIVATE:
  	    if (is_gimple_omp_oacc (ctx->stmt))
  	      break;
  	    var = OMP_CLAUSE_DECL (c);
! 	    new_var = lookup_decl (var, ctx);
! 	    allocate_ptr = alloc_map.get (new_var);
! 	    by_ref = omp_privatize_by_reference (var);
! 	    if (allocate_ptr)
! 	      {
! 		if (is_variable_sized (var, by_ref))
! 		  /* Handle this in the next pass when the size is
! 		     available.  */
! 		  break;
! 
! 		gimple_seq *allocate_seq = alloc_seq_map.get (new_var);
! 		gcc_assert (allocate_seq);
! 		gimple_seq_add_seq (&new_body, *allocate_seq);
! 
! 		if (!by_ref)
! 		  new_var = build_simple_mem_ref (*allocate_ptr);
! 	      }
! 	    if (by_ref)
  	      {
  		location_t clause_loc = OMP_CLAUSE_LOCATION (c);
! 		if (!allocate_ptr)
  		  {
! 		    x = TYPE_SIZE_UNIT (TREE_TYPE (TREE_TYPE (new_var)));
! 		    if (TREE_CONSTANT (x))
! 		      {
! 			x = create_tmp_var_raw (TREE_TYPE (TREE_TYPE (new_var)),
! 						get_name (var));
! 			gimple_add_tmp_var (x);
! 			TREE_ADDRESSABLE (x) = 1;
! 			x = build_fold_addr_expr_loc (clause_loc, x);
! 		      }
! 		    else
! 		      break;
! 
! 		    x = fold_convert_loc (clause_loc, TREE_TYPE (new_var), x);
! 		    gimplify_expr (&x, &new_body, NULL, is_gimple_val,
! 				   fb_rvalue);
  		  }
  		else
! 		  x = *allocate_ptr;
  
  		gimple_seq_add_stmt (&new_body,
  				     gimple_build_assign (new_var, x));
  	      }
*************** lower_omp_target (gimple_stmt_iterator *
*** 14055,14061 ****
  	  case OMP_CLAUSE_USE_DEVICE_ADDR:
  	  case OMP_CLAUSE_HAS_DEVICE_ADDR:
  	  case OMP_CLAUSE_IS_DEVICE_PTR:
- 	    tree new_var;
  	    gimple_seq assign_body;
  	    bool is_array_data;
  	    bool do_optional_check;
--- 14170,14175 ----
*************** lower_omp_target (gimple_stmt_iterator *
*** 14343,14368 ****
  	    break;
  	  case OMP_CLAUSE_PRIVATE:
  	    var = OMP_CLAUSE_DECL (c);
! 	    if (is_variable_sized (var))
  	      {
- 		location_t clause_loc = OMP_CLAUSE_LOCATION (c);
  		tree new_var = lookup_decl (var, ctx);
! 		tree pvar = DECL_VALUE_EXPR (var);
! 		gcc_assert (TREE_CODE (pvar) == INDIRECT_REF);
! 		pvar = TREE_OPERAND (pvar, 0);
  		gcc_assert (DECL_P (pvar));
  		tree new_pvar = lookup_decl (pvar, ctx);
! 		tree atmp = builtin_decl_explicit (BUILT_IN_ALLOCA_WITH_ALIGN);
! 		tree al = size_int (DECL_ALIGN (var));
! 		tree x = TYPE_SIZE_UNIT (TREE_TYPE (new_var));
! 		x = build_call_expr_loc (clause_loc, atmp, 2, x, al);
! 		x = fold_convert_loc (clause_loc, TREE_TYPE (new_pvar), x);
  		gimplify_expr (&x, &new_body, NULL, is_gimple_val, fb_rvalue);
  		gimple_seq_add_stmt (&new_body,
  				     gimple_build_assign (new_pvar, x));
  	      }
! 	    else if (omp_privatize_by_reference (var)
! 		     && !is_gimple_omp_oacc (ctx->stmt))
  	      {
  		location_t clause_loc = OMP_CLAUSE_LOCATION (c);
  		tree new_var = lookup_decl (var, ctx);
--- 14457,14499 ----
  	    break;
  	  case OMP_CLAUSE_PRIVATE:
  	    var = OMP_CLAUSE_DECL (c);
! 	    by_ref = omp_privatize_by_reference (var);
! 	    if (is_variable_sized (var, by_ref))
  	      {
  		tree new_var = lookup_decl (var, ctx);
! 		tree *allocate_ptr = alloc_map.get (new_var);
! 		if (allocate_ptr)
! 		  {
! 		    gimple_seq *allocate_seq = alloc_seq_map.get (new_var);
! 		    gcc_assert (allocate_seq);
! 		    gimple_seq_add_seq (&new_body, *allocate_seq);
! 		  }
! 		location_t clause_loc = OMP_CLAUSE_LOCATION (c);
! 		tree pvar = var;
! 		if (!by_ref)
! 		  {
! 		    pvar = DECL_VALUE_EXPR (var);
! 		    gcc_assert (TREE_CODE (pvar) == INDIRECT_REF);
! 		    pvar = TREE_OPERAND (pvar, 0);
! 		  }
  		gcc_assert (DECL_P (pvar));
  		tree new_pvar = lookup_decl (pvar, ctx);
! 		tree x;
! 		if (!allocate_ptr)
! 		  {
! 		    tree atmp = builtin_decl_explicit (BUILT_IN_ALLOCA_WITH_ALIGN);
! 		    tree al = size_int (DECL_ALIGN (var));
! 		    x = TYPE_SIZE_UNIT (TREE_TYPE (new_var));
! 		    x = build_call_expr_loc (clause_loc, atmp, 2, x, al);
! 		    x = fold_convert_loc (clause_loc, TREE_TYPE (new_pvar), x);
! 		  }
! 		else
! 		  x = *allocate_ptr;
  		gimplify_expr (&x, &new_body, NULL, is_gimple_val, fb_rvalue);
  		gimple_seq_add_stmt (&new_body,
  				     gimple_build_assign (new_pvar, x));
  	      }
! 	    else if (by_ref && !is_gimple_omp_oacc (ctx->stmt))
  	      {
  		location_t clause_loc = OMP_CLAUSE_LOCATION (c);
  		tree new_var = lookup_decl (var, ctx);
*************** lower_omp_target (gimple_stmt_iterator *
*** 14384,14389 ****
--- 14515,14556 ----
  				     gimple_build_assign (new_var, x));
  	      }
  	    break;
+ 	  case OMP_CLAUSE_FIRSTPRIVATE:
+ 	    var = OMP_CLAUSE_DECL (c);
+ 	    by_ref = omp_privatize_by_reference (var);
+ 	    if (is_variable_sized (var, by_ref))
+ 	      {
+ 		tree new_var = lookup_decl (var, ctx);
+ 		tree *allocate_ptr = alloc_map.get (new_var);
+ 		if (!allocate_ptr)
+ 		  break;
+ 		gimple_seq *allocate_seq = alloc_seq_map.get (new_var);
+ 		gcc_assert (allocate_seq);
+ 		gimple_seq_add_seq (&new_body, *allocate_seq);
+ 
+ 		location_t clause_loc = OMP_CLAUSE_LOCATION (c);
+ 		tree pvar = var;
+ 		if (!by_ref)
+ 		  {
+ 		    pvar = DECL_VALUE_EXPR (var);
+ 		    gcc_assert (TREE_CODE (pvar) == INDIRECT_REF);
+ 		    pvar = TREE_OPERAND (pvar, 0);
+ 		  }
+ 		gcc_assert (DECL_P (pvar));
+ 		tree new_pvar = lookup_decl (pvar, ctx);
+ 		tree x = fold_convert_loc (clause_loc, TREE_TYPE (new_pvar),
+ 					   *allocate_ptr);
+ 		gimplify_expr (&x, &new_body, NULL, is_gimple_val, fb_rvalue);
+ 		gimple_seq_add_stmt (&new_body,
+ 				     gimple_build_assign (new_pvar, x));
+ 
+ 		x = build_receiver_ref (var, true, ctx);
+ 		new_var = unshare_expr (new_var);
+ 		if (by_ref)
+ 		  new_var = build_fold_indirect_ref (new_var);
+ 		x = lang_hooks.decls.omp_clause_copy_ctor (c, new_var, x);
+ 		gimplify_and_add (x, &new_body);
+ 	      }
  	  }
  
        gimple_seq fork_seq = NULL;
*************** lower_omp_target (gimple_stmt_iterator *
*** 14408,14413 ****
--- 14575,14581 ----
        gimple_seq_add_seq (&new_body, fork_seq);
        gimple_seq_add_seq (&new_body, tgt_body);
        gimple_seq_add_seq (&new_body, join_seq);
+       gimple_seq_add_seq (&new_body, alloc_dlist);
  
        if (offloaded)
  	{
diff -Nrcpad gcc-16-20260208/gcc/testsuite/ChangeLog gcc-16-20260215/gcc/testsuite/ChangeLog
*** gcc-16-20260208/gcc/testsuite/ChangeLog	Sun Feb  8 22:32:07 2026
--- gcc-16-20260215/gcc/testsuite/ChangeLog	Sun Feb 15 22:32:07 2026
***************
*** 1,3 ****
--- 1,657 ----
+ 2026-02-14  Kalvis Duckmanton  <kalvisd@gmail.com>
+ 
+ 	PR target/112400
+ 	* g++.dg/torture/pr112400.C: New file.
+ 
+ 2026-02-14  Christopher Albert  <albert@tugraz.at>
+ 	    Harald Anlauf  <anlauf@gcc.gnu.org>
+ 
+ 	PR fortran/123943
+ 	* gfortran.dg/pr123943.f90: New test.
+ 
+ 2026-02-14  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/99250
+ 	* gfortran.dg/coshape_1.f90: New test.
+ 
+ 2026-02-14  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/124086
+ 	* c-c++-common/torture/pr124086-1.c: New test.
+ 	* g++.dg/torture/pr124086-1.C: New test.
+ 
+ 2026-02-14  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* gcc.dg/tree-ssa/copy-prop-aggregate-return-1.c: Limit check to x86_64
+ 	and aarch64.
+ 
+ 2026-02-14  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	* g++.dg/warn/uninit-pr95825-1.C: Skip if no address sanitizer.
+ 
+ 2026-02-13  Vladimir N. Makarov  <vmakarov@redhat.com>
+ 
+ 	PR rtl-optimization/124079
+ 	* gcc.target/s390/pr124079.c: New.
+ 
+ 2026-02-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/95825
+ 	* g++.dg/warn/uninit-pr95825-1.C: New test.
+ 	* gcc.dg/tree-ssa/copy-prop-aggregate-return-1.c: New test.
+ 
+ 2026-02-13  Marek Polacek  <polacek@redhat.com>
+ 
+ 	* g++.dg/reflect/crash10.C: Adjust expected diagnostics.
+ 	* g++.dg/reflect/crash2.C: Likewise.
+ 	* g++.dg/reflect/crash3.C: Likewise.
+ 	* g++.dg/reflect/crash7.C: Likewise.
+ 	* g++.dg/reflect/crash9.C: Likewise.
+ 	* g++.dg/reflect/dep5.C: Likewise.
+ 	* g++.dg/reflect/diag1.C: Likewise.
+ 	* g++.dg/reflect/error10.C: Likewise.
+ 	* g++.dg/reflect/error12.C: Likewise.
+ 	* g++.dg/reflect/error5.C: Likewise.
+ 	* g++.dg/reflect/expr3.C: Likewise.
+ 	* g++.dg/reflect/member1.C: Likewise.
+ 	* g++.dg/reflect/ns2.C: Likewise.  Test more cases.
+ 	* g++.dg/reflect/p2996-12.C: Likewise.
+ 	* g++.dg/reflect/splice5.C: Likewise.
+ 	* g++.dg/reflect/diag1a.C: New test.
+ 	* g++.dg/reflect/diag1b.C: New test.
+ 
+ 2026-02-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/124012
+ 	* g++.dg/reflect/pr124012.C: New test.
+ 	* g++.dg/reflect/init1.C (r): Change constinit to constexpr.
+ 	(p): Change constinit to constexpr const.
+ 	* g++.dg/reflect/init6.C: Expect diagnostics for constinit
+ 	consteval-only vars.
+ 	* g++.dg/reflect/init7.C: Likewise.
+ 	* g++.dg/reflect/init10.C: Likewise.
+ 	* g++.dg/reflect/diag3.C: Likewise.  Don't expect suggestion to
+ 	add constinit.
+ 
+ 2026-02-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR testsuite/115827
+ 	* gcc.dg/auto-init-uninit-17.c: Avoid CCP.
+ 	* gcc.dg/uninit-17.c: Likewise.
+ 
+ 2026-02-13  Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	PR middle-end/113436
+ 	* c-c++-common/gomp/pr113436-1.c: Replace '#include <omp.h>' by
+ 	local declaration for omp_allocator_handle_t.
+ 	* c-c++-common/gomp/pr113436-2.c: Likewise.
+ 	* g++.dg/gomp/pr113436.C: Likewise.
+ 	* gfortran.dg/gomp/pr113436-1.f90: Replace 'use omp_lib' by local
+ 	omp_*_mem_alloc parameter declarations.
+ 	* gfortran.dg/gomp/pr113436-2.f90: Likewise.
+ 	* gfortran.dg/gomp/pr113436-3.f90: Likewise.
+ 	* gfortran.dg/gomp/pr113436-4.f90: Likewise.
+ 
+ 2026-02-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/99959
+ 	* gcc.dg/uninit-pr99959.c: New testcase.
+ 
+ 2026-02-12  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR c/105555
+ 	* gcc.dg/complex-10.c: New test.
+ 
+ 2026-02-12  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	* g++.dg/cpp26/pack-indexing15.C: Adjust expected error upon
+ 	constrained auto NTTP satisfaction failure.
+ 	* g++.dg/cpp2a/concepts-placeholder12.C: Likewise.
+ 	* g++.dg/cpp2a/concepts-pr97093.C: Likewise.
+ 	* g++.dg/cpp2a/concepts-template-parm2.C: Likewise.
+ 	* g++.dg/cpp2a/concepts-template-parm6.C: Likewise.
+ 	* g++.dg/cpp2a/concepts-template-parm12.C: New test.
+ 
+ 2026-02-12  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/123989
+ 	* g++.dg/cpp23/explicit-obj-eval-order.C: New test.
+ 
+ 2026-02-12  Kwok Cheung Yeung  <kcyeung@baylibre.com>
+ 
+ 	PR middle-end/113436
+ 	* c-c++-common/gomp/pr113436-1.c: New.
+ 	* c-c++-common/gomp/pr113436-2.c: New.
+ 	* g++.dg/gomp/pr113436.C: New.
+ 	* gfortran.dg/gomp/pr113436-1.f90: New.
+ 	* gfortran.dg/gomp/pr113436-2.f90: New.
+ 	* gfortran.dg/gomp/pr113436-3.f90: New.
+ 	* gfortran.dg/gomp/pr113436-4.f90: New.
+ 
+ 2026-02-12  Robert Dubner  <rdubner@symas.com>
+ 
+ 	* cobol.dg/group2/USING_COMP-3_BY_REFERENCE.cob: New test.
+ 	* cobol.dg/group2/USING_COMP-3_BY_REFERENCE.out: New test.
+ 	* cobol.dg/group2/USING_COMP-3_BY_VALUE.cob: New test.
+ 	* cobol.dg/group2/USING_COMP-3_BY_VALUE.out: New test.
+ 	* cobol.dg/group2/USING_FLOAT-SLX_BY_REFERENCE.cob: New test.
+ 	* cobol.dg/group2/USING_FLOAT-SLX_BY_REFERENCE.out: New test.
+ 	* cobol.dg/group2/USING_FLOAT-SLX_BY_VALUE.cob: New test.
+ 	* cobol.dg/group2/USING_FLOAT-SLX_BY_VALUE.out: New test.
+ 	* cobol.dg/group2/USING_NumericDisplay_BY_REFERENCE.cob: New test.
+ 	* cobol.dg/group2/USING_NumericDisplay_BY_REFERENCE.out: New test.
+ 	* cobol.dg/group2/USING_NumericDisplay_BY_VALUE.cob: New test.
+ 	* cobol.dg/group2/USING_NumericDisplay_BY_VALUE.out: New test.
+ 	* cobol.dg/group2/USING_Signed_-_COMP-3_BY_REFERENCE.cob: New test.
+ 	* cobol.dg/group2/USING_Signed_-_COMP-3_BY_REFERENCE.out: New test.
+ 	* cobol.dg/group2/USING_Signed_-_COMP-3_BY_VALUE.cob: New test.
+ 	* cobol.dg/group2/USING_Signed_-_COMP-3_BY_VALUE.out: New test.
+ 	* cobol.dg/group2/USING_Signed_-_NumericDisplay_BY_REFERENCE.cob: New test.
+ 	* cobol.dg/group2/USING_Signed_-_NumericDisplay_BY_REFERENCE.out: New test.
+ 	* cobol.dg/group2/USING_Signed_-_NumericDisplay_BY_VALUE.cob: New test.
+ 	* cobol.dg/group2/USING_Signed_-_NumericDisplay_BY_VALUE.out: New test.
+ 	* cobol.dg/group2/USING_Signed___COMP-3_BY_REFERENCE.cob: New test.
+ 	* cobol.dg/group2/USING_Signed___COMP-3_BY_REFERENCE.out: New test.
+ 	* cobol.dg/group2/USING_Signed___COMP-3_BY_VALUE.cob: New test.
+ 	* cobol.dg/group2/USING_Signed___COMP-3_BY_VALUE.out: New test.
+ 	* cobol.dg/group2/USING_Signed___NumericDisplay_BY_REFERENCE.cob: New test.
+ 	* cobol.dg/group2/USING_Signed___NumericDisplay_BY_REFERENCE.out: New test.
+ 	* cobol.dg/group2/USING_Signed___NumericDisplay_BY_VALUE.cob: New test.
+ 	* cobol.dg/group2/USING_Signed___NumericDisplay_BY_VALUE.out: New test.
+ 
+ 2026-02-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	* gcc.dg/vect/vect.exp: Adjust vec-scal-*.c glob.  Merge
+ 	globbing of non-bb-slp-*.c tests to a *.c glob excluding
+ 	bb-slp-*.c.
+ 	* gcc.dg/vect/vec-scal-opt.c: Move ...
+ 	* gcc.dg/vect/veclower/vec-scal-opt.c: ... here.
+ 	* gcc.dg/vect/vec-scal-opt1.c: Move ...
+ 	* gcc.dg/vect/veclower/vec-scal-opt1.c: ... here.
+ 	* gcc.dg/vect/vec-scal-opt2.c: Move ...
+ 	* gcc.dg/vect/veclower/vec-scal-opt2.c: ... here.
+ 	* gcc.dg/vect/complex/fast-math-bb-slp-complex-add-double.c: Rename to ...
+ 	* gcc.dg/vect/complex/bb-slp-complex-add-double.c: ... this.
+ 	* gcc.dg/vect/complex/fast-math-bb-slp-complex-add-float.c: Rename to ...
+ 	* gcc.dg/vect/complex/bb-slp-complex-add-float.c: ... this.
+ 	* gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c: Rename to ...
+ 	* gcc.dg/vect/complex/bb-slp-complex-add-half-float.c: ... this.
+ 	* gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c: Rename to ...
+ 	* gcc.dg/vect/complex/bb-slp-complex-add-pattern-double.c: ... this.
+ 	* gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-float.c: Rename to ...
+ 	* gcc.dg/vect/complex/bb-slp-complex-add-pattern-float.c: ... this.
+ 	* gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c: Rename to ...
+ 	* gcc.dg/vect/complex/bb-slp-complex-add-pattern-half-float.c: ... this.
+ 	* gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-double.c: Rename to ...
+ 	* gcc.dg/vect/complex/bb-slp-complex-mla-double.c: ... this.
+ 	* gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-float.c: Rename to ...
+ 	* gcc.dg/vect/complex/bb-slp-complex-mla-float.c: ... this.
+ 	* gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c: Rename to ...
+ 	* gcc.dg/vect/complex/bb-slp-complex-mla-half-float.c: ... this.
+ 	* gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-double.c: Rename to ...
+ 	* gcc.dg/vect/complex/bb-slp-complex-mls-double.c: ... this.
+ 	* gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-float.c: Rename to ...
+ 	* gcc.dg/vect/complex/bb-slp-complex-mls-float.c: ... this.
+ 	* gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c: Rename to ...
+ 	* gcc.dg/vect/complex/bb-slp-complex-mls-half-float.c: ... this.
+ 	* gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c: Rename to ...
+ 	* gcc.dg/vect/complex/bb-slp-complex-mul-double.c: ... this.
+ 	* gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c: Rename to ...
+ 	* gcc.dg/vect/complex/bb-slp-complex-mul-float.c : ... this.
+ 	* gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c: Rename to ...
+ 	* gcc.dg/vect/complex/bb-slp-complex-mul-half-float.c: ... this.
+ 	* gcc.dg/vect/complex/complex-add-pattern-template.c: Skip.
+ 	* gcc.dg/vect/complex/complex-add-template.c: Skip.
+ 	* gcc.dg/vect/complex/complex-mla-template.c: Skip.
+ 	* gcc.dg/vect/complex/complex-mls-template.c: Skip.
+ 	* gcc.dg/vect/complex/complex-mul-template.c: Skip.
+ 	* gcc.dg/vect/complex/complex-operations.c: Skip.
+ 
+ 2026-02-12  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/124045
+ 	* g++.dg/reflect/type1.C: Don't expect an error for a missing typename
+ 	in a namespace scope.
+ 
+ 2026-02-12  James Bohl  <bohlj47@gmail.com>
+ 
+ 	PR algol68/124049
+ 	* algol68/execute/modules/program-25.a68: New test.
+ 	* algol68/execute/modules/module25a.a68: New file.
+ 	* algol68/execute/modules/module25b.a68: New file.
+ 
+ 2026-02-12  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR rtl-optimization/124062
+ 	* gcc.dg/torture/pr124062-1.c: New test.
+ 
+ 2026-02-12  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/98939
+ 	PR libstdc++/119745
+ 	* g++.dg/cpp0x/ref-qual5.C: Expect no diagnostics in C++20.
+ 
+ 2026-02-12  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/117369
+ 	* c-c++-common/analyzer/sprintf-pr117369.c: New test.
+ 	* gcc.dg/analyzer/doom-d_main-IdentifyVersion.c: Update expected
+ 	results to reflect complexity limits being hit earlier.
+ 
+ 2026-02-12  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/111099
+ 	* gcc.dg/analyzer/torture/ice-pr111099.c: New test.
+ 
+ 2026-02-12  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/124073
+ 	* g++.dg/analyzer/ice-pr124073.C: New test.
+ 
+ 2026-02-11  Joseph Myers  <josmyers@redhat.com>
+ 
+ 	* lib/tsan-dg.exp (orig_tsan_options_saved, orig_tsan_options):
+ 	New global variables.
+ 	(tsan_init): Save TSAN_OPTIONS and set it to color=never.
+ 	(tsan_finish): Restore TSAN_OPTIONS.
+ 	* c-c++-common/asan/pr64820.c: Include color=never in
+ 	ASAN_OPTIONS.
+ 	* c-c++-common/asan/use-after-return-1.c: Likewise.
+ 
+ 2026-02-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	* gcc.dg/vect/bb-slp-cond-1.c: Disable epilogue vectorization.
+ 
+ 2026-02-11  Chris Bazley  <Chris.Bazley@arm.com>
+ 
+ 	* gcc.target/aarch64/rev_32_1.c: New test.
+ 	* gcc.target/aarch64/rev_32_2.c: New test.
+ 	* gcc.target/aarch64/rev_32_3.c: New test
+ 
+ 2026-02-11  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/124055
+ 	* gcc.dg/analyzer/ice-pr124055-1.c: New test.
+ 	* gcc.dg/analyzer/ice-pr124055-2.c: New test.
+ 
+ 2026-02-11  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/123973
+ 	* c-c++-common/analyzer/infinite-recursion-pr123973.c: New test.
+ 
+ 2026-02-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	* gcc.dg/vect/vect.exp: Remove remaining filename based
+ 	testcase options in favor of dg-additional-options.
+ 	* gcc.dg/vect/O-pr46167.c: Use dg-additional-options.
+ 	* gcc.dg/vect/O1-pr33854.c: Likewise.
+ 	* gcc.dg/vect/O1-pr41008.c: Likewise.
+ 	* gcc.dg/vect/Os-vect-95.c: Likewise.
+ 	* gcc.dg/vect/ggc-pr37574.c: Likewise.
+ 	* gcc.dg/vect/no-fre-pre-pr50208.c: Likewise.
+ 	* gcc.dg/vect/no-tree-dom-vect-bug.c: Likewise.
+ 	* gcc.dg/vect/no-tree-fre-pr50039.c: Likewise.
+ 	* gcc.dg/vect/no-tree-pre-pr45241.c: Likewise.
+ 	* gcc.dg/vect/no-tree-pre-slp-29.c: Likewise.
+ 	* gcc.dg/vect/unswitch-loops-pr26969.c: Likewise.
+ 	* gcc.dg/vect/O3-pr36098.c: Likewise.
+ 	* gcc.dg/vect/O3-pr39675-2.c: Likewise.
+ 	* gcc.dg/vect/O3-pr41881.c: Likewise.
+ 	* gcc.dg/vect/O3-pr45971.c: Likewise.
+ 	* gcc.dg/vect/O3-pr46077.c: Likewise.
+ 	* gcc.dg/vect/O3-pr49087.c: Likewise.
+ 	* gcc.dg/vect/O3-pr70130.c: Likewise.
+ 	* gcc.dg/vect/O3-pr85794.c: Likewise.
+ 	* gcc.dg/vect/O3-pr87546.c: Likewise.
+ 	* gcc.dg/vect/O3-slp-reduc-10.c: Likewise.
+ 	* gcc.dg/vect/O3-vect-pr32243.c: Likewise.
+ 	* gcc.dg/vect/O3-vect-pr34223.c: Likewise.
+ 	* gcc.dg/vect/O3-vect-pr61917.c: Likewise.
+ 	* gcc.dg/vect/aligned-section-anchors-nest-1.c: Likewise.
+ 	* gcc.dg/vect/aligned-section-anchors-vect-70.c: Likewise.
+ 	* gcc.dg/vect/aligned-section-anchors-vect-71.c: Likewise.
+ 	* gcc.dg/vect/aligned-section-anchors-vect-72.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-noreassoc-outer-1.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-noreassoc-outer-2.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-noreassoc-outer-3.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-noreassoc-outer-4.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-noreassoc-outer-5.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-noreassoc-slp-reduc-7.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-outer-1.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-outer-10.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-outer-10a.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-outer-10b.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-outer-11.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-outer-12.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-outer-13.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-outer-14.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-outer-15.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-outer-16.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-outer-17.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-outer-18.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-outer-19.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-outer-2.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-outer-20.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-outer-21.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-outer-22.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-outer-3.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-outer-4.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-outer-5.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-outer-6-global.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-outer-6.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-outer-7.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-outer-8.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-outer-9.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-outer-9a.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-outer-9b.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-pr49199.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-pr86725-1.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-pr86725-2.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-pr86725-3.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-pr86725-4.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-pr86725-5.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-slp-30.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-slp-31.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-vect-iv-1.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-vect-iv-2.c: Likewise.
+ 	* gcc.dg/vect/no-scevccp-vect-iv-3.c: Likewise.
+ 	* gcc.dg/vect/no-section-anchors-vect-31.c: Likewise.
+ 	* gcc.dg/vect/no-section-anchors-vect-34.c: Likewise.
+ 	* gcc.dg/vect/no-section-anchors-vect-36.c: Likewise.
+ 	* gcc.dg/vect/no-section-anchors-vect-64.c: Likewise.
+ 	* gcc.dg/vect/no-section-anchors-vect-65.c: Likewise.
+ 	* gcc.dg/vect/no-section-anchors-vect-66.c: Likewise.
+ 	* gcc.dg/vect/no-section-anchors-vect-68.c: Likewise.
+ 	* gcc.dg/vect/no-section-anchors-vect-69.c: Likewise.
+ 	* gcc.dg/vect/no-section-anchors-vect-outer-4h.c: Likewise.
+ 	* gcc.dg/vect/no-trapping-math-1.c: Likewise.
+ 	* gcc.dg/vect/no-trapping-math-2.c: Likewise.
+ 	* gcc.dg/vect/no-trapping-math-vect-111.c: Likewise.
+ 	* gcc.dg/vect/no-trapping-math-vect-ifcvt-11.c: Likewise.
+ 	* gcc.dg/vect/no-trapping-math-vect-ifcvt-12.c: Likewise.
+ 	* gcc.dg/vect/no-trapping-math-vect-ifcvt-13.c: Likewise.
+ 	* gcc.dg/vect/no-trapping-math-vect-ifcvt-14.c: Likewise.
+ 	* gcc.dg/vect/no-trapping-math-vect-ifcvt-15.c: Likewise.
+ 	* gcc.dg/vect/section-anchors-pr27770.c: Likewise.
+ 	* gcc.dg/vect/section-anchors-vect-69.c: Likewise.
+ 	* gcc.dg/vect/no-tree-reassoc-bb-slp-12.c: Rename to ...
+ 	* gcc.dg/vect/bb-slp-12.c: ... this.  Use dg-additional-options.
+ 	* gcc.dg/vect/fast-math-bb-slp-call-1.c: Rename to ...
+ 	* gcc.dg/vect/bb-slp-call-1.c: ... this.
+ 	* gcc.dg/vect/fast-math-bb-slp-call-2.c: Rename to ...
+ 	* gcc.dg/vect/bb-slp-call-2.c: ... this.
+ 	* gcc.dg/vect/fast-math-bb-slp-call-3.c: Rename to ...
+ 	* gcc.dg/vect/bb-slp-call-3.c: ... this.
+ 	* gcc.dg/vect/no-tree-sra-bb-slp-pr50730.c: Rename to ...
+ 	* gcc.dg/vect/bb-slp-pr50730.c: ... this.  Use dg-additional-options.
+ 
+ 2026-02-11  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR tree-optimization/124038
+ 	* gcc.target/riscv/rvv/pr124038.c: New test.
+ 
+ 2026-02-11  Eric Botcazou  <ebotcazou@adacore.com>
+ 	    Liam Powell  <liam@liampwll.com>
+ 
+ 	* gnat.dg/allocator4.adb: New test.
+ 
+ 2026-02-11  Jonathan Yong  <10walls@gmail.com>
+ 
+ 	* g++.dg/expr/cast11.C: Cast to intptr_t instead of long.
+ 	* g++.dg/opt/pr55717.C: Ditto.
+ 	* g++.dg/warn/Wunused-value-1.C: Ditto.
+ 
+ 2026-02-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/124056
+ 	* gcc.target/i386/pr124056.c: New test.
+ 
+ 2026-02-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/116600
+ 	PR middle-end/123386
+ 	* gcc.c-torture/compile/pr116600.c: New test.
+ 	* gcc.c-torture/compile/pr123386.c: New test.
+ 
+ 2026-02-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	* g++.dg/vect/vect.exp: Remove param-max-aliased-* handling.
+ 	* g++.dg/vect/param-max-aliased-pr26197.cc: Rename to ...
+ 	* g++.dg/vect/pr26197.cc: ... this and fixup array overflow.
+ 
+ 2026-02-11  Boris Staletic  <boris.staletic@protonmail.com>
+ 
+ 	PR c++/123660
+ 	PR c++/123661
+ 	* g++.dg/reflect/splice10.C: New test.
+ 	* g++.dg/reflect/splice11.C: New test.
+ 
+ 2026-02-11  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* gcc.target/i386/vectorize-aocl1.c: Require glibc.
+ 
+ 2026-02-11  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	PR tree-optimization/114375
+ 	* gcc.dg/vect/vect-pr114375.c: Adjust dump pattern requirement
+ 	to match that of options.
+ 
+ 2026-02-10  Alice Carlotti  <alice.carlotti@arm.com>
+ 
+ 	PR target/123624
+ 	* gcc.target/aarch64/sme/sme-shrinkwrap.c: New test.
+ 
+ 2026-02-10  Juergen Christ  <jchrist@linux.ibm.com>
+ 
+ 	PR tree-optimization/122297
+ 	* gcc.dg/vect/nodump-extractlast-1.c: Fix typo.
+ 	* gcc.dg/vect/nodump-extractlast-2.c: New test.
+ 
+ 2026-02-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/107690
+ 	* g++.dg/vect/vect-pr107690.cc: New testcase.
+ 
+ 2026-02-10  Jonathan Yong  <10walls@gmail.com>
+ 
+ 	* gcc.dg/torture/pr70935.c: change long to __INTPTR_TYPE__.
+ 
+ 2026-02-10  Jonathan Yong  <10walls@gmail.com>
+ 
+ 	* gcc.dg/torture/pr70935.c: change from DOS to unix line end.
+ 
+ 2026-02-10  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/113496
+ 	* gcc.dg/analyzer/ice-pr113496.c: New test.
+ 
+ 2026-02-10  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/122621
+ 	* g++.dg/cpp2a/class-deduction-alias26.C: New test.
+ 
+ 2026-02-09  Federico Angelilli  <code@fedang.net>
+ 	    David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR analyzer/123981
+ 	* gcc.dg/analyzer/null-deref-pr123981-1.c: New test.
+ 	* gcc.dg/analyzer/null-deref-pr123981-2.c: New test.
+ 
+ 2026-02-09  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR diagnostics/124014
+ 	* gcc.dg/sarif-output/ice-pr124014.c: New test.
+ 
+ 2026-02-09  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	PR algol68/124028
+ 	* algol68/execute/bits-shift-4.a68: New test.
+ 
+ 2026-02-09  Jose E. Marchesi  <jemarch@gnu.org>
+ 
+ 	* algol68/compile/formal-hole-1.a68: New test.
+ 
+ 2026-02-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	* gfortran.dg/finalizer_recursive_alloc_2.f90: Update dg-output string.
+ 
+ 2026-02-09  David Faust  <david.faust@oracle.com>
+ 
+ 	PR target/123556
+ 	* gcc.target/bpf/pr123556.c: New test.
+ 
+ 2026-02-09  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* c-c++-common/tls-attr-dll.c: New test.
+ 
+ 2026-02-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/123984
+ 	* g++.dg/reflect/define_aggregate6.C: New test.
+ 
+ 2026-02-09  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* gcc.target/s390/vector/partial/s390-vec-length-epil-1.c:
+ 	Use arch z14 instead of native.
+ 	* gcc.target/s390/vector/partial/s390-vec-length-epil-2.c:
+ 	Ditto.
+ 	* gcc.target/s390/vector/partial/s390-vec-length-epil-3.c:
+ 	Ditto.
+ 	* gcc.target/s390/vector/partial/s390-vec-length-epil-7.c:
+ 	Ditto.
+ 	* gcc.target/s390/vector/partial/s390-vec-length-epil-run-1.c:
+ 	Ditto.
+ 	* gcc.target/s390/vector/partial/s390-vec-length-epil-run-2.c:
+ 	Ditto.
+ 	* gcc.target/s390/vector/partial/s390-vec-length-epil-run-3.c:
+ 	Ditto.
+ 	* gcc.target/s390/vector/partial/s390-vec-length-epil-run-7.c:
+ 	Ditto.
+ 	* gcc.target/s390/vector/partial/s390-vec-length-full-1.c:
+ 	Ditto.
+ 	* gcc.target/s390/vector/partial/s390-vec-length-full-2.c:
+ 	Ditto.
+ 	* gcc.target/s390/vector/partial/s390-vec-length-full-3.c:
+ 	Ditto.
+ 	* gcc.target/s390/vector/partial/s390-vec-length-full-7.c:
+ 	Ditto.
+ 	* gcc.target/s390/vector/partial/s390-vec-length-full-run-1.c:
+ 	Ditto.
+ 	* gcc.target/s390/vector/partial/s390-vec-length-full-run-2.c:
+ 	Ditto.
+ 	* gcc.target/s390/vector/partial/s390-vec-length-full-run-3.c:
+ 	Ditto.
+ 	* gcc.target/s390/vector/partial/s390-vec-length-full-run-7.c:
+ 	Ditto.
+ 	* gcc.target/s390/vector/partial/s390-vec-length-small.c:
+ 	Ditto.
+ 
+ 2026-02-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/123225
+ 	* gcc.dg/vect/costmodel/x86_64/costmodel-pr123225.c: New testcase.
+ 
+ 2026-02-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR testsuite/124036
+ 	* gcc.dg/torture/pr117567.c: Add -w.
+ 
+ 2026-02-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124034
+ 	* gcc.dg/vect/vect-early-break_142-pr124034.c: New testcase.
+ 
+ 2026-02-09  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR tree-optimization/117217
+ 	* g++.dg/torture/pr117217-1.C: New test.
+ 	* g++.dg/torture/pr117217-2.C: Likewise.
+ 
+ 2026-02-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/123889
+ 	* g++.dg/cpp0x/constexpr-123889.C: New test.
+ 
+ 2026-02-09  Jeff Law  <jeffrey.law@oss.qualcomm.com>
+ 
+ 	PR target/123911
+ 	* gcc.target/riscv/pr123911.c: New test.
+ 
+ 2026-02-08  Eric Botcazou  <ebotcazou@adacore.com>
+ 	    Liam Powell  <liam@liampwll.com>
+ 
+ 	* gnat.dg/protected_type1.adb: New test.
+ 
+ 2026-02-08  Eric Botcazou  <ebotcazou@adacore.com>
+ 	    Liam Powell  <liam@liampwll.com>
+ 
+ 	* gnat.dg/specs/component_size1.ads: New test.
+ 
+ 2026-02-08  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/85547
+ 	* gfortran.dg/string_length_5.f90: New test.
+ 
+ 2026-02-08  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	PR d/123995
+ 	* gdc.dg/pr123995.d: New test.
+ 
+ 2026-02-08  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/123961
+ 	* gfortran.dg/class_array_24.f90: New test.
+ 
+ 2026-02-08  Dimitar Dimitrov  <dimitar@dinux.eu>
+ 
+ 	* g++.dg/analyzer/ice-pr116228.C: Use __SIZE_TYPE__ for "new"
+ 	operator declaration.
+ 
+ 2026-02-08  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/123545
+ 	PR fortran/123673
+ 	PR fortran/122949
+ 	* gfortran.dg/pdt_82.f03: New test.
+ 	* gfortran.dg/pdt_83.f03: New test.
+ 	* gfortran.dg/pr122949.f90: New test.
+ 
+ 2026-02-08  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/123738
+ 	* g++.dg/modules/dep-5.C: New test.
+ 
+ 2026-02-08  Jonathan Yong  <10walls@gmail.com>
+ 
+ 	* gcc.target/i386/pr63542-2.c: Change long unsigned casts
+ 	to __UINTPTR_TYPE__.
+ 
+ 2026-02-08  Jonathan Yong  <10walls@gmail.com>
+ 
+ 	* gcc.dg/analyzer/null-deref-pr105755.c:
+ 	(ptrdiff_t): Change from long int to __PTRDIFF_TYPE__.
+ 	(EMACS_INT): Change from long int to __UINTPTR_TYPE__.
+ 	(intmax_t): change from long int to __INTMAX_TYPE__.
+ 
+ 2026-02-08  Jonathan Yong  <10walls@gmail.com>
+ 
+ 	* gcc.dg/pr97750.c: make llp64 warnings consistent with lp64
+ 
+ 2026-02-08  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/123823
+ 	PR c++/123640
+ 	* g++.dg/reflect/crash6.C: Adjust expected diagnostic.
+ 	* g++.dg/reflect/expr3.C: Likewise.  Test more cases.
+ 	* g++.dg/reflect/splice4.C: Adjust expected diagnostic.
+ 	* g++.dg/reflect/error12.C: New test.
+ 	* g++.dg/reflect/parse1.C: New test.
+ 	* g++.dg/reflect/parse2.C: New test.
+ 	* g++.dg/reflect/parse3.C: New test.
+ 	* g++.dg/reflect/parse4.C: New test.
+ 	* g++.dg/reflect/parse5.C: New test.
+ 	* g++.dg/reflect/parse6.C: New test.
+ 
  2026-02-07  Marek Polacek  <polacek@redhat.com>
  
  	PR c++/123616
diff -Nrcpad gcc-16-20260208/gcc/testsuite/algol68/compile/formal-hole-1.a68 gcc-16-20260215/gcc/testsuite/algol68/compile/formal-hole-1.a68
*** gcc-16-20260208/gcc/testsuite/algol68/compile/formal-hole-1.a68	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/algol68/compile/formal-hole-1.a68	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,7 ----
+ { Freestanding formal hole. }
+ 
+ begin
+       proc msleep = (int ms) void:
+          proc(bits)int (nest C "usleep") (BIN ms);
+       skip
+ end
diff -Nrcpad gcc-16-20260208/gcc/testsuite/algol68/execute/bits-shift-4.a68 gcc-16-20260215/gcc/testsuite/algol68/execute/bits-shift-4.a68
*** gcc-16-20260208/gcc/testsuite/algol68/execute/bits-shift-4.a68	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/algol68/execute/bits-shift-4.a68	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,10 ----
+ begin
+       int shft := 2;
+ 
+       int i := 12;
+       bits x = BIN i;
+       int j := Abs(x Shl 2);
+       int k := Abs(x Shl shft);
+ 
+       assert (j = k)
+ end
diff -Nrcpad gcc-16-20260208/gcc/testsuite/algol68/execute/modules/module25a.a68 gcc-16-20260215/gcc/testsuite/algol68/execute/modules/module25a.a68
*** gcc-16-20260208/gcc/testsuite/algol68/execute/modules/module25a.a68	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/algol68/execute/modules/module25a.a68	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,10 ----
+ module Module_25a =
+ def
+     pub mode Union_a = union (int,real);
+     pub proc union_a_string = (Union_a x) string:
+         case x
+         in (int): "int",
+            (real): "real"
+         esac;
+     skip
+ fed
diff -Nrcpad gcc-16-20260208/gcc/testsuite/algol68/execute/modules/module25b.a68 gcc-16-20260215/gcc/testsuite/algol68/execute/modules/module25b.a68
*** gcc-16-20260208/gcc/testsuite/algol68/execute/modules/module25b.a68	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/algol68/execute/modules/module25b.a68	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,10 ----
+ module Module_25b =
+ def
+     pub mode Union_b = union (real,int);
+     pub proc union_b_string = (Union_b x) string:
+         case x
+         in (int): "int",
+            (real): "real"
+         esac;
+     skip
+ fed
diff -Nrcpad gcc-16-20260208/gcc/testsuite/algol68/execute/modules/program-25.a68 gcc-16-20260215/gcc/testsuite/algol68/execute/modules/program-25.a68
*** gcc-16-20260208/gcc/testsuite/algol68/execute/modules/program-25.a68	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/algol68/execute/modules/program-25.a68	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,9 ----
+ { dg-modules "module25a module25b" }
+ access Module_25a,Module_25b begin
+     Union_a a = 1;
+     Union_b b = 1;
+     assert(union_a_string(a) = "int");
+     assert(union_a_string(b) = "int");
+     assert(union_b_string(a) = "int");
+     assert(union_b_string(b) = "int")
+ end
diff -Nrcpad gcc-16-20260208/gcc/testsuite/c-c++-common/analyzer/infinite-recursion-pr123973.c gcc-16-20260215/gcc/testsuite/c-c++-common/analyzer/infinite-recursion-pr123973.c
*** gcc-16-20260208/gcc/testsuite/c-c++-common/analyzer/infinite-recursion-pr123973.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/c-c++-common/analyzer/infinite-recursion-pr123973.c	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,7 ----
+ #define Z 8
+ 
+ void fun(int x, int y)
+ {
+   if (x + y > Z)
+     fun(x, Z - x); /* { dg-bogus "infinite recursion" } */
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/c-c++-common/analyzer/sprintf-pr117369.c gcc-16-20260215/gcc/testsuite/c-c++-common/analyzer/sprintf-pr117369.c
*** gcc-16-20260208/gcc/testsuite/c-c++-common/analyzer/sprintf-pr117369.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/c-c++-common/analyzer/sprintf-pr117369.c	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-additional-options "-O" } */
+ 
+ extern int
+ sprintf (char *__restrict __s,
+ 	 const char *__restrict __format, ...)
+   __attribute__ ((__nothrow__));
+ 
+ int
+ main()
+ {
+   char buf[16];
+   sprintf(buf + 1, "."); /* { dg-bogus "buffer overflow" } */
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/c-c++-common/asan/pr64820.c gcc-16-20260215/gcc/testsuite/c-c++-common/asan/pr64820.c
*** gcc-16-20260208/gcc/testsuite/c-c++-common/asan/pr64820.c	Sun Feb  8 22:32:08 2026
--- gcc-16-20260215/gcc/testsuite/c-c++-common/asan/pr64820.c	Sun Feb 15 22:32:07 2026
***************
*** 1,7 ****
  /* { dg-do run } */
  /* { dg-require-effective-target fstack_protector } */
  /* { dg-options "-fstack-protector-strong" } */
! /* { dg-set-target-env-var ASAN_OPTIONS "detect_stack_use_after_return=1" } */
  /* { dg-shouldfail "asan" } */
  
  __attribute__((noinline))
--- 1,7 ----
  /* { dg-do run } */
  /* { dg-require-effective-target fstack_protector } */
  /* { dg-options "-fstack-protector-strong" } */
! /* { dg-set-target-env-var ASAN_OPTIONS "color=never detect_stack_use_after_return=1" } */
  /* { dg-shouldfail "asan" } */
  
  __attribute__((noinline))
diff -Nrcpad gcc-16-20260208/gcc/testsuite/c-c++-common/asan/use-after-return-1.c gcc-16-20260215/gcc/testsuite/c-c++-common/asan/use-after-return-1.c
*** gcc-16-20260208/gcc/testsuite/c-c++-common/asan/use-after-return-1.c	Sun Feb  8 22:32:08 2026
--- gcc-16-20260215/gcc/testsuite/c-c++-common/asan/use-after-return-1.c	Sun Feb 15 22:32:07 2026
***************
*** 1,5 ****
  /* { dg-do run } */
! /* { dg-set-target-env-var ASAN_OPTIONS "detect_stack_use_after_return=1" } */
  /* { dg-shouldfail "asan" } */
  
  #include <stdio.h>
--- 1,5 ----
  /* { dg-do run } */
! /* { dg-set-target-env-var ASAN_OPTIONS "color=never detect_stack_use_after_return=1" } */
  /* { dg-shouldfail "asan" } */
  
  #include <stdio.h>
diff -Nrcpad gcc-16-20260208/gcc/testsuite/c-c++-common/gomp/pr113436-1.c gcc-16-20260215/gcc/testsuite/c-c++-common/gomp/pr113436-1.c
*** gcc-16-20260208/gcc/testsuite/c-c++-common/gomp/pr113436-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/c-c++-common/gomp/pr113436-1.c	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,55 ----
+ /* PR middle-end/113436 */
+ /* { dg-do compile } */
+ /* { dg-options "-fopenmp -fdump-tree-omplower" } */
+ 
+ // #include <omp.h>
+ typedef __UINTPTR_TYPE__ omp_uintptr_t;
+ 
+ #if __cplusplus >= 201103L
+ # define __GOMP_UINTPTR_T_ENUM : omp_uintptr_t
+ #else
+ # define __GOMP_UINTPTR_T_ENUM
+ #endif
+ 
+ typedef enum omp_allocator_handle_t __GOMP_UINTPTR_T_ENUM
+ {
+   omp_null_allocator = 0,
+   omp_default_mem_alloc = 1,
+   omp_large_cap_mem_alloc = 2,
+   omp_const_mem_alloc = 3,
+   omp_high_bw_mem_alloc = 4,
+   omp_low_lat_mem_alloc = 5,
+   omp_cgroup_mem_alloc = 6,
+   omp_pteam_mem_alloc = 7,
+   omp_thread_mem_alloc = 8,
+   ompx_gnu_pinned_mem_alloc = 200,
+   ompx_gnu_managed_mem_alloc = 201,
+   __omp_allocator_handle_t_max__ = __UINTPTR_MAX__
+ } omp_allocator_handle_t;
+ 
+ 
+ void
+ f()
+ {
+   int A, B[10], *C;
+   A = 5;
+   C = (int *) __builtin_malloc (sizeof (int) * 10);
+   for (int i = 0; i < 10; i++)
+     B[i] = C[i] = i+5;
+       
+   #pragma omp target private(A) private(B) private(C) allocate(allocator(omp_low_lat_mem_alloc), align(128): A, B, C)
+     {
+       A = 99;
+       for (int i = 0; i < 10; i++)
+         B[i] = -i-23;
+       C = &A;
+     }
+ }
+ 
+ /* { dg-final { scan-tree-dump "D\\\.\[0-9\]\+ = __builtin_GOMP_alloc \\\(128, 4, 5\\\);" "omplower" { target int32 } } } */
+ /* { dg-final { scan-tree-dump "D\\\.\[0-9\]\+ = __builtin_GOMP_alloc \\\(128, 40, 5\\\);" "omplower" { target int32 } } } */
+ /* { dg-final { scan-tree-dump "D\\\.\[0-9\]\+ = __builtin_GOMP_alloc \\\(128, 8, 5\\\);" "omplower" { target { lp64 || llp64 } } } } */
+ /* { dg-final { scan-tree-dump "\\\*D\\\.\[0-9\]\+ = 99;" "omplower" } } */
+ /* { dg-final { scan-tree-dump "\\\(\\\*D\\\.\[0-9\]\+\\\)\\\[i\\\] = D\\\.\[0-9\]\+;" "omplower" } } */
+ /* { dg-final { scan-tree-dump "\\\*D\\\.\[0-9\]\+ = D\\\.\[0-9\]\+;" "omplower" } } */
+ /* { dg-final { scan-tree-dump-times "__builtin_GOMP_free \\\(D\\\.\[0-9\]\+, 5\\\);" 3 "omplower" } } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/c-c++-common/gomp/pr113436-2.c gcc-16-20260215/gcc/testsuite/c-c++-common/gomp/pr113436-2.c
*** gcc-16-20260208/gcc/testsuite/c-c++-common/gomp/pr113436-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/c-c++-common/gomp/pr113436-2.c	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,56 ----
+ /* PR middle-end/113436 */
+ /* { dg-do compile } */
+ /* { dg-options "-fopenmp -fdump-tree-omplower" } */
+ 
+ // #include <omp.h>
+ typedef __UINTPTR_TYPE__ omp_uintptr_t;
+ 
+ #if __cplusplus >= 201103L
+ # define __GOMP_UINTPTR_T_ENUM : omp_uintptr_t
+ #else
+ # define __GOMP_UINTPTR_T_ENUM
+ #endif
+ 
+ typedef enum omp_allocator_handle_t __GOMP_UINTPTR_T_ENUM
+ {
+   omp_null_allocator = 0,
+   omp_default_mem_alloc = 1,
+   omp_large_cap_mem_alloc = 2,
+   omp_const_mem_alloc = 3,
+   omp_high_bw_mem_alloc = 4,
+   omp_low_lat_mem_alloc = 5,
+   omp_cgroup_mem_alloc = 6,
+   omp_pteam_mem_alloc = 7,
+   omp_thread_mem_alloc = 8,
+   ompx_gnu_pinned_mem_alloc = 200,
+   ompx_gnu_managed_mem_alloc = 201,
+   __omp_allocator_handle_t_max__ = __UINTPTR_MAX__
+ } omp_allocator_handle_t;
+ 
+ 
+ void
+ g()
+ {
+   int A, B[10], *C;
+   A = 5;
+   C = (int *) __builtin_malloc (sizeof (int) * 10);
+   for (int i = 0; i < 10; i++)
+     B[i] = C[i] = i+5;
+       
+   #pragma omp target firstprivate(A) firstprivate(B) firstprivate(C) allocate(allocator(omp_high_bw_mem_alloc), align(64): A, B, C)
+     {
+       A = 99;
+       for (int i = 0; i < 10; i++)
+         B[i] = -i-23;
+       C = &A;
+     }
+ }
+ 
+ /* { dg-final { scan-tree-dump "D\\\.\[0-9\]\+ = __builtin_GOMP_alloc \\\(64, 4, 4\\\);" "omplower" { target int32 } } } */
+ /* { dg-final { scan-tree-dump "D\\\.\[0-9\]\+ = __builtin_GOMP_alloc \\\(64, 40, 4\\\);" "omplower" { target int32 } } } */
+ /* { dg-final { scan-tree-dump "D\\\.\[0-9\]\+ = __builtin_GOMP_alloc \\\(64, 8, 4\\\);" "omplower" { target { lp64 || llp64 } } } } */
+ /* { dg-final { scan-tree-dump-times "\\\*D\\\.\[0-9\]\+ = D\\\.\[0-9\]\+;" 3 "omplower" } } */
+ /* { dg-final { scan-tree-dump "\\\(\\\*D\\\.\[0-9\]\+\\\) = \\\(\\\*D\\\.\[0-9\]\+\\\);" "omplower" } } */
+ /* { dg-final { scan-tree-dump "\\\*D\\\.\[0-9\]\+ = 99;" "omplower" } } */
+ /* { dg-final { scan-tree-dump "\\\(\\\*D\\\.\[0-9\]\+\\\)\\\[i\\\] = D\\\.\[0-9\]\+;" "omplower" } } */
+ /* { dg-final { scan-tree-dump-times "__builtin_GOMP_free \\\(D\\\.\[0-9\]+, 4\\\)" 3 "omplower" } } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/c-c++-common/tls-attr-dll.c gcc-16-20260215/gcc/testsuite/c-c++-common/tls-attr-dll.c
*** gcc-16-20260208/gcc/testsuite/c-c++-common/tls-attr-dll.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/c-c++-common/tls-attr-dll.c	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,5 ----
+ /* { dg-do compile { target i?86-*-mingw* x86_64-*-mingw* } } */
+ 
+ __declspec (dllimport) __thread int foo1; /* { dg-error "thread-local variable" } */
+ 
+ __declspec (dllexport) __thread int foo2; /* { dg-error "thread-local variable" } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/c-c++-common/torture/pr124086-1.c gcc-16-20260215/gcc/testsuite/c-c++-common/torture/pr124086-1.c
*** gcc-16-20260208/gcc/testsuite/c-c++-common/torture/pr124086-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/c-c++-common/torture/pr124086-1.c	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-do compile } */
+ /* { dg-options "" } */
+ /* PR tree-optimization/124086 */
+ 
+ /* Disable for non power of 2 long double as a vector of that is not supported. */
+ #if (__SIZEOF_LONG_DOUBLE__ & -__SIZEOF_LONG_DOUBLE__) == __SIZEOF_LONG_DOUBLE__
+ 
+ typedef __attribute__((__vector_size__(2*sizeof(long double)))) int V;
+ int j;
+ 
+ void
+ foo()
+ {
+   V v = (V){0, -0xd};
+   _Complex long double t =  *(_Complex long double *)&v;
+   j = __real__ t;
+ }
+ 
+ #endif
diff -Nrcpad gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_COMP-3_BY_REFERENCE.cob gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_COMP-3_BY_REFERENCE.cob
*** gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_COMP-3_BY_REFERENCE.cob	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_COMP-3_BY_REFERENCE.cob	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,90 ----
+        *> { dg-do run }
+        *> { dg-output-file "group2/USING_COMP-3_BY_REFERENCE.out" }
+         identification division.
+         program-id.  prog.
+         data division.
+         working-storage section.
+         01 var8    pic 9(2) comp-3.
+         01 var16   pic 9(4) comp-3.
+         01 var32   pic 9(8) comp-3.
+         01 var64   pic 9(16) comp-3.
+         01 var128  pic 9(32) comp-3.
+         01 var8r   pic 9(2) comp-3.
+         01 var16r  pic 9(4) comp-3.
+         01 var32r  pic 9(8) comp-3.
+         01 var64r  pic 9(16) comp-3.
+         01 var128r pic 9(32) comp-3.
+         procedure division.
+             move    12 to var8
+             move    1234 to var16
+             move    12345678 to var32
+             move    1234567890123456 to var64
+             move    12345678901234567890123456789012 to var128
+             display     var8
+             call     "rvar8" using by reference var8 returning var8r
+             display     var8r
+             display     var16
+             call     "rvar16" using by reference var16 returning var16r
+             display     var16r
+             display     var32
+             call     "rvar32" using by reference var32 returning var32r
+             display     var32r
+             display     var64
+             call     "rvar64" using by reference var64 returning var64r
+             display     var64r
+             display     var128
+             call     "rvar128" using by reference var128 returning var128r
+             display     var128r
+             goback.
+         end program prog.
+ 
+         identification division.
+         program-id. rvar8.
+         data division.
+         linkage section.
+         01  var         pic 9(2) comp-3               .
+         01  varr        pic 9(2) comp-3               .
+         procedure division using by reference var returning varr.
+             move var to varr.
+         end program rvar8.
+ 
+         identification division.
+         program-id. rvar16.
+         data division.
+         linkage section.
+         01  var         pic 9(4) comp-3               .
+         01  varr        pic 9(4) comp-3               .
+         procedure division using by reference var returning varr.
+             move var to varr.
+         end program rvar16.
+ 
+         identification division.
+         program-id. rvar32.
+         data division.
+         linkage section.
+         01  var         pic 9(8) comp-3               .
+         01  varr        pic 9(8) comp-3               .
+         procedure division using by reference var returning varr.
+             move var to varr.
+         end program rvar32.
+ 
+         identification division.
+         program-id. rvar64.
+         data division.
+         linkage section.
+         01  var         pic 9(16) comp-3               .
+         01  varr        pic 9(16) comp-3               .
+         procedure division using by reference var returning varr.
+             move var to varr.
+         end program rvar64.
+ 
+         identification division.
+         program-id. rvar128.
+         data division.
+         linkage section.
+         01  var         pic 9(32) comp-3               .
+         01  varr        pic 9(32) comp-3               .
+         procedure division using by reference var returning varr.
+            move var to varr.
+         end program rvar128.
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_COMP-3_BY_REFERENCE.out gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_COMP-3_BY_REFERENCE.out
*** gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_COMP-3_BY_REFERENCE.out	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_COMP-3_BY_REFERENCE.out	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,11 ----
+ 12
+ 12
+ 1234
+ 1234
+ 12345678
+ 12345678
+ 1234567890123456
+ 1234567890123456
+ 12345678901234567890123456789012
+ 12345678901234567890123456789012
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_COMP-3_BY_VALUE.cob gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_COMP-3_BY_VALUE.cob
*** gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_COMP-3_BY_VALUE.cob	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_COMP-3_BY_VALUE.cob	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,90 ----
+        *> { dg-do run }
+        *> { dg-output-file "group2/USING_COMP-3_BY_VALUE.out" }
+         identification division.
+         program-id.  prog.
+         data division.
+         working-storage section.
+         01 var8    pic 9(2) comp-3.
+         01 var16   pic 9(4) comp-3.
+         01 var32   pic 9(8) comp-3.
+         01 var64   pic 9(16) comp-3.
+         01 var128  pic 9(32) comp-3.
+         01 var8r   pic 9(2) comp-3.
+         01 var16r  pic 9(4) comp-3.
+         01 var32r  pic 9(8) comp-3.
+         01 var64r  pic 9(16) comp-3.
+         01 var128r pic 9(32) comp-3.
+         procedure division.
+             move    12 to var8
+             move    1234 to var16
+             move    12345678 to var32
+             move    1234567890123456 to var64
+             move    12345678901234567890123456789012 to var128
+             display     var8
+             call     "rvar8" using by value var8 returning var8r
+             display     var8r
+             display     var16
+             call     "rvar16" using by value var16 returning var16r
+             display     var16r
+             display     var32
+             call     "rvar32" using by value var32 returning var32r
+             display     var32r
+             display     var64
+             call     "rvar64" using by value var64 returning var64r
+             display     var64r
+             display     var128
+             call     "rvar128" using by value var128 returning var128r
+             display     var128r
+             goback.
+         end program prog.
+ 
+         identification division.
+         program-id. rvar8.
+         data division.
+         linkage section.
+         01  var         pic 9(2) comp-3              .
+         01  varr        pic 9(2) comp-3               .
+         procedure division using by value var returning varr.
+             move var to varr.
+         end program rvar8.
+ 
+         identification division.
+         program-id. rvar16.
+         data division.
+         linkage section.
+         01  var         pic 9(4) comp-3               .
+         01  varr        pic 9(4) comp-3               .
+         procedure division using by value var returning varr.
+             move var to varr.
+         end program rvar16.
+ 
+         identification division.
+         program-id. rvar32.
+         data division.
+         linkage section.
+         01  var         pic 9(8) comp-3               .
+         01  varr        pic 9(8) comp-3               .
+         procedure division using by value var returning varr.
+             move var to varr.
+         end program rvar32.
+ 
+         identification division.
+         program-id. rvar64.
+         data division.
+         linkage section.
+         01  var         pic 9(16) comp-3               .
+         01  varr        pic 9(16) comp-3               .
+         procedure division using by value var returning varr.
+             move var to varr.
+         end program rvar64.
+ 
+         identification division.
+         program-id. rvar128.
+         data division.
+         linkage section.
+         01  var         pic 9(32) comp-3               .
+         01  varr        pic 9(32) comp-3               .
+         procedure division using by value var returning varr.
+            move var to varr.
+         end program rvar128.
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_COMP-3_BY_VALUE.out gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_COMP-3_BY_VALUE.out
*** gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_COMP-3_BY_VALUE.out	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_COMP-3_BY_VALUE.out	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,11 ----
+ 12
+ 12
+ 1234
+ 1234
+ 12345678
+ 12345678
+ 1234567890123456
+ 1234567890123456
+ 12345678901234567890123456789012
+ 12345678901234567890123456789012
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_FLOAT-SLX_BY_REFERENCE.cob gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_FLOAT-SLX_BY_REFERENCE.cob
*** gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_FLOAT-SLX_BY_REFERENCE.cob	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_FLOAT-SLX_BY_REFERENCE.cob	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,58 ----
+        *> { dg-do run }
+        *> { dg-output-file "group2/USING_FLOAT-SLX_BY_REFERENCE.out" }
+         identification division.
+         program-id.  prog.
+         data division.
+         working-storage section.
+         01 var1 float-short         .
+         01 var2 float-long          .
+         01 var3 float-extended      .
+         01 var1r float-short        .
+         01 var2r float-long         .
+         01 var3r float-extended     .
+         procedure division.
+             move 1.234E30 to var1
+             move 2.345E300 to var2
+             move 3.456E4000 to var3
+             display     var1
+             call     "rvar1" using by reference var1 returning var1r
+             display     var1r
+             display     var2
+             call     "rvar2" using by reference var2 returning var2r
+             display     var2r
+             display     var3
+             call     "rvar3" using by reference var3 returning var3r
+             display     var3r
+             goback.
+         end program prog.
+ 
+         identification division.
+         program-id. rvar1.
+         data division.
+         linkage section.
+         01  var    float-short.
+         01  varr   float-short.
+         procedure division using by reference var returning varr.
+             move var to varr.
+         end program rvar1.
+ 
+         identification division.
+         program-id. rvar2.
+         data division.
+         linkage section.
+         01  var    float-long.
+         01  varr   float-long.
+         procedure division using by reference var returning varr.
+            move var to varr.
+         end program rvar2.
+ 
+         identification division.
+         program-id. rvar3.
+         data division.
+         linkage section.
+         01  var    float-extended.
+         01  varr   float-extended.
+         procedure division using by reference var returning varr.
+            move var to varr.
+         end program rvar3.
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_FLOAT-SLX_BY_REFERENCE.out gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_FLOAT-SLX_BY_REFERENCE.out
*** gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_FLOAT-SLX_BY_REFERENCE.out	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_FLOAT-SLX_BY_REFERENCE.out	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,7 ----
+ 1.233999999E+30
+ 1.233999999E+30
+ 2.34500000000000002E+300
+ 2.34500000000000002E+300
+ 3.455999999999999999999999999999999993E+4000
+ 3.455999999999999999999999999999999993E+4000
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_FLOAT-SLX_BY_VALUE.cob gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_FLOAT-SLX_BY_VALUE.cob
*** gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_FLOAT-SLX_BY_VALUE.cob	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_FLOAT-SLX_BY_VALUE.cob	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,58 ----
+        *> { dg-do run }
+        *> { dg-output-file "group2/USING_FLOAT-SLX_BY_VALUE.out" }
+         identification division.
+         program-id.  prog.
+         data division.
+         working-storage section.
+         01 var1 float-short         .
+         01 var2 float-long          .
+         01 var3 float-extended      .
+         01 var1r float-short        .
+         01 var2r float-long         .
+         01 var3r float-extended     .
+         procedure division.
+             move 1.234E30 to var1
+             move 2.345E300 to var2
+             move 3.456E4000 to var3
+             display     var1
+             call     "rvar1" using by value var1 returning var1r
+             display     var1r
+             display     var2
+             call     "rvar2" using by value var2 returning var2r
+             display     var2r
+             display     var3
+             call     "rvar3" using by value var3 returning var3r
+             display     var3r
+             goback.
+         end program prog.
+ 
+         identification division.
+         program-id. rvar1.
+         data division.
+         linkage section.
+         01  var    float-short.
+         01  varr   float-short.
+         procedure division using by value var returning varr.
+             move var to varr.
+         end program rvar1.
+ 
+         identification division.
+         program-id. rvar2.
+         data division.
+         linkage section.
+         01  var    float-long.
+         01  varr   float-long.
+         procedure division using by value var returning varr.
+            move var to varr.
+         end program rvar2.
+ 
+         identification division.
+         program-id. rvar3.
+         data division.
+         linkage section.
+         01  var    float-extended.
+         01  varr   float-extended.
+         procedure division using by value var returning varr.
+            move var to varr.
+         end program rvar3.
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_FLOAT-SLX_BY_VALUE.out gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_FLOAT-SLX_BY_VALUE.out
*** gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_FLOAT-SLX_BY_VALUE.out	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_FLOAT-SLX_BY_VALUE.out	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,7 ----
+ 1.233999999E+30
+ 1.233999999E+30
+ 2.34500000000000002E+300
+ 2.34500000000000002E+300
+ 3.455999999999999999999999999999999993E+4000
+ 3.455999999999999999999999999999999993E+4000
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_NumericDisplay_BY_REFERENCE.cob gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_NumericDisplay_BY_REFERENCE.cob
*** gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_NumericDisplay_BY_REFERENCE.cob	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_NumericDisplay_BY_REFERENCE.cob	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,90 ----
+        *> { dg-do run }
+        *> { dg-output-file "group2/USING_NumericDisplay_BY_REFERENCE.out" }
+         identification division.
+         program-id.  prog.
+         data division.
+         working-storage section.
+         01 var8    pic 9(2).
+         01 var16   pic 9(4).
+         01 var32   pic 9(8).
+         01 var64   pic 9(16).
+         01 var128  pic 9(32).
+         01 var8r   pic 9(2).
+         01 var16r  pic 9(4).
+         01 var32r  pic 9(8).
+         01 var64r  pic 9(16).
+         01 var128r pic 9(32).
+         procedure division.
+             move    12 to var8
+             move    1234 to var16
+             move    12345678 to var32
+             move    1234567890123456 to var64
+             move    12345678901234567890123456789012 to var128
+             display     var8
+             call     "rvar8" using by reference var8 returning var8r
+             display     var8r
+             display     var16
+             call     "rvar16" using by reference var16 returning var16r
+             display     var16r
+             display     var32
+             call     "rvar32" using by reference var32 returning var32r
+             display     var32r
+             display     var64
+             call     "rvar64" using by reference var64 returning var64r
+             display     var64r
+             display     var128
+             call     "rvar128" using by reference var128 returning var128r
+             display     var128r
+             goback.
+         end program prog.
+ 
+         identification division.
+         program-id. rvar8.
+         data division.
+         linkage section.
+         01  var         pic 9(2)               .
+         01  varr        pic 9(2)               .
+         procedure division using by reference var returning varr.
+             move var to varr.
+         end program rvar8.
+ 
+         identification division.
+         program-id. rvar16.
+         data division.
+         linkage section.
+         01  var         pic 9(4)               .
+         01  varr        pic 9(4)               .
+         procedure division using by reference var returning varr.
+             move var to varr.
+         end program rvar16.
+ 
+         identification division.
+         program-id. rvar32.
+         data division.
+         linkage section.
+         01  var         pic 9(8)               .
+         01  varr        pic 9(8)               .
+         procedure division using by reference var returning varr.
+             move var to varr.
+         end program rvar32.
+ 
+         identification division.
+         program-id. rvar64.
+         data division.
+         linkage section.
+         01  var         pic 9(16)               .
+         01  varr        pic 9(16)               .
+         procedure division using by reference var returning varr.
+             move var to varr.
+         end program rvar64.
+ 
+         identification division.
+         program-id. rvar128.
+         data division.
+         linkage section.
+         01  var         pic 9(32)               .
+         01  varr        pic 9(32)               .
+         procedure division using by reference var returning varr.
+            move var to varr.
+         end program rvar128.
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_NumericDisplay_BY_REFERENCE.out gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_NumericDisplay_BY_REFERENCE.out
*** gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_NumericDisplay_BY_REFERENCE.out	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_NumericDisplay_BY_REFERENCE.out	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,11 ----
+ 12
+ 12
+ 1234
+ 1234
+ 12345678
+ 12345678
+ 1234567890123456
+ 1234567890123456
+ 12345678901234567890123456789012
+ 12345678901234567890123456789012
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_NumericDisplay_BY_VALUE.cob gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_NumericDisplay_BY_VALUE.cob
*** gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_NumericDisplay_BY_VALUE.cob	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_NumericDisplay_BY_VALUE.cob	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,90 ----
+        *> { dg-do run }
+        *> { dg-output-file "group2/USING_NumericDisplay_BY_VALUE.out" }
+         identification division.
+         program-id.  prog.
+         data division.
+         working-storage section.
+         01 var8    pic 9(2).
+         01 var16   pic 9(4).
+         01 var32   pic 9(8).
+         01 var64   pic 9(16).
+         01 var128  pic 9(32).
+         01 var8r   pic 9(2).
+         01 var16r  pic 9(4).
+         01 var32r  pic 9(8).
+         01 var64r  pic 9(16).
+         01 var128r pic 9(32).
+         procedure division.
+             move    12 to var8
+             move    1234 to var16
+             move    12345678 to var32
+             move    1234567890123456 to var64
+             move    12345678901234567890123456789012 to var128
+             display     var8
+             call     "rvar8" using by value var8 returning var8r
+             display     var8r
+             display     var16
+             call     "rvar16" using by value var16 returning var16r
+             display     var16r
+             display     var32
+             call     "rvar32" using by value var32 returning var32r
+             display     var32r
+             display     var64
+             call     "rvar64" using by value var64 returning var64r
+             display     var64r
+             display     var128
+             call     "rvar128" using by value var128 returning var128r
+             display     var128r
+             goback.
+         end program prog.
+ 
+         identification division.
+         program-id. rvar8.
+         data division.
+         linkage section.
+         01  var         pic 9(2)               .
+         01  varr        pic 9(2)               .
+         procedure division using by value var returning varr.
+             move var to varr.
+         end program rvar8.
+ 
+         identification division.
+         program-id. rvar16.
+         data division.
+         linkage section.
+         01  var         pic 9(4)               .
+         01  varr        pic 9(4)               .
+         procedure division using by value var returning varr.
+             move var to varr.
+         end program rvar16.
+ 
+         identification division.
+         program-id. rvar32.
+         data division.
+         linkage section.
+         01  var         pic 9(8)               .
+         01  varr        pic 9(8)               .
+         procedure division using by value var returning varr.
+             move var to varr.
+         end program rvar32.
+ 
+         identification division.
+         program-id. rvar64.
+         data division.
+         linkage section.
+         01  var         pic 9(16)               .
+         01  varr        pic 9(16)               .
+         procedure division using by value var returning varr.
+             move var to varr.
+         end program rvar64.
+ 
+         identification division.
+         program-id. rvar128.
+         data division.
+         linkage section.
+         01  var         pic 9(32)               .
+         01  varr        pic 9(32)               .
+         procedure division using by value var returning varr.
+            move var to varr.
+         end program rvar128.
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_NumericDisplay_BY_VALUE.out gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_NumericDisplay_BY_VALUE.out
*** gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_NumericDisplay_BY_VALUE.out	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_NumericDisplay_BY_VALUE.out	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,11 ----
+ 12
+ 12
+ 1234
+ 1234
+ 12345678
+ 12345678
+ 1234567890123456
+ 1234567890123456
+ 12345678901234567890123456789012
+ 12345678901234567890123456789012
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed_-_COMP-3_BY_REFERENCE.cob gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed_-_COMP-3_BY_REFERENCE.cob
*** gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed_-_COMP-3_BY_REFERENCE.cob	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed_-_COMP-3_BY_REFERENCE.cob	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,90 ----
+        *> { dg-do run }
+        *> { dg-output-file "group2/USING_Signed_-_COMP-3_BY_REFERENCE.out" }
+         identification division.
+         program-id.  prog.
+         data division.
+         working-storage section.
+         01 var8    pic s9(2) comp-3.
+         01 var16   pic s9(4) comp-3.
+         01 var32   pic s9(8) comp-3.
+         01 var64   pic s9(16) comp-3.
+         01 var128  pic s9(32) comp-3.
+         01 var8r   pic s9(2) comp-3.
+         01 var16r  pic s9(4) comp-3.
+         01 var32r  pic s9(8) comp-3.
+         01 var64r  pic s9(16) comp-3.
+         01 var128r pic s9(32) comp-3.
+         procedure division.
+             move    -12 to var8
+             move    -1234 to var16
+             move    -12345678 to var32
+             move    -1234567890123456 to var64
+             move    -12345678901234567890123456789012 to var128
+             display     var8
+             call     "rvar8" using by reference var8 returning var8r
+             display     var8r
+             display     var16
+             call     "rvar16" using by reference var16 returning var16r
+             display     var16r
+             display     var32
+             call     "rvar32" using by reference var32 returning var32r
+             display     var32r
+             display     var64
+             call     "rvar64" using by reference var64 returning var64r
+             display     var64r
+             display     var128
+             call     "rvar128" using by reference var128 returning var128r
+             display     var128r
+             goback.
+         end program prog.
+ 
+         identification division.
+         program-id. rvar8.
+         data division.
+         linkage section.
+         01  var         pic s9(2) comp-3               .
+         01  varr        pic s9(2) comp-3               .
+         procedure division using by reference var returning varr.
+             move var to varr.
+         end program rvar8.
+ 
+         identification division.
+         program-id. rvar16.
+         data division.
+         linkage section.
+         01  var         pic s9(4) comp-3               .
+         01  varr        pic s9(4) comp-3               .
+         procedure division using by reference var returning varr.
+             move var to varr.
+         end program rvar16.
+ 
+         identification division.
+         program-id. rvar32.
+         data division.
+         linkage section.
+         01  var         pic s9(8) comp-3               .
+         01  varr        pic s9(8) comp-3               .
+         procedure division using by reference var returning varr.
+             move var to varr.
+         end program rvar32.
+ 
+         identification division.
+         program-id. rvar64.
+         data division.
+         linkage section.
+         01  var         pic s9(16) comp-3               .
+         01  varr        pic s9(16) comp-3               .
+         procedure division using by reference var returning varr.
+             move var to varr.
+         end program rvar64.
+ 
+         identification division.
+         program-id. rvar128.
+         data division.
+         linkage section.
+         01  var         pic s9(32) comp-3               .
+         01  varr        pic s9(32) comp-3               .
+         procedure division using by reference var returning varr.
+            move var to varr.
+         end program rvar128.
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed_-_COMP-3_BY_REFERENCE.out gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed_-_COMP-3_BY_REFERENCE.out
*** gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed_-_COMP-3_BY_REFERENCE.out	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed_-_COMP-3_BY_REFERENCE.out	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,11 ----
+ -12
+ -12
+ -1234
+ -1234
+ -12345678
+ -12345678
+ -1234567890123456
+ -1234567890123456
+ -12345678901234567890123456789012
+ -12345678901234567890123456789012
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed_-_COMP-3_BY_VALUE.cob gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed_-_COMP-3_BY_VALUE.cob
*** gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed_-_COMP-3_BY_VALUE.cob	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed_-_COMP-3_BY_VALUE.cob	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,90 ----
+        *> { dg-do run }
+        *> { dg-output-file "group2/USING_Signed_-_COMP-3_BY_VALUE.out" }
+         identification division.
+         program-id.  prog.
+         data division.
+         working-storage section.
+         01 var8    pic s9(2) comp-3.
+         01 var16   pic s9(4) comp-3.
+         01 var32   pic s9(8) comp-3.
+         01 var64   pic s9(16) comp-3.
+         01 var128  pic s9(32) comp-3.
+         01 var8r   pic s9(2) comp-3.
+         01 var16r  pic s9(4) comp-3.
+         01 var32r  pic s9(8) comp-3.
+         01 var64r  pic s9(16) comp-3.
+         01 var128r pic s9(32) comp-3.
+         procedure division.
+             move    -12 to var8
+             move    -1234 to var16
+             move    -12345678 to var32
+             move    -1234567890123456 to var64
+             move    -12345678901234567890123456789012 to var128
+             display     var8
+             call     "rvar8" using by value var8 returning var8r
+             display     var8r
+             display     var16
+             call     "rvar16" using by value var16 returning var16r
+             display     var16r
+             display     var32
+             call     "rvar32" using by value var32 returning var32r
+             display     var32r
+             display     var64
+             call     "rvar64" using by value var64 returning var64r
+             display     var64r
+             display     var128
+             call     "rvar128" using by value var128 returning var128r
+             display     var128r
+             goback.
+         end program prog.
+ 
+         identification division.
+         program-id. rvar8.
+         data division.
+         linkage section.
+         01  var         pic s9(2) comp-3               .
+         01  varr        pic s9(2) comp-3               .
+         procedure division using by value var returning varr.
+             move var to varr.
+         end program rvar8.
+ 
+         identification division.
+         program-id. rvar16.
+         data division.
+         linkage section.
+         01  var         pic s9(4) comp-3               .
+         01  varr        pic s9(4) comp-3               .
+         procedure division using by value var returning varr.
+             move var to varr.
+         end program rvar16.
+ 
+         identification division.
+         program-id. rvar32.
+         data division.
+         linkage section.
+         01  var         pic s9(8) comp-3               .
+         01  varr        pic s9(8) comp-3               .
+         procedure division using by value var returning varr.
+             move var to varr.
+         end program rvar32.
+ 
+         identification division.
+         program-id. rvar64.
+         data division.
+         linkage section.
+         01  var         pic s9(16) comp-3               .
+         01  varr        pic s9(16) comp-3               .
+         procedure division using by value var returning varr.
+             move var to varr.
+         end program rvar64.
+ 
+         identification division.
+         program-id. rvar128.
+         data division.
+         linkage section.
+         01  var         pic s9(32) comp-3               .
+         01  varr        pic s9(32) comp-3               .
+         procedure division using by value var returning varr.
+            move var to varr.
+         end program rvar128.
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed_-_COMP-3_BY_VALUE.out gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed_-_COMP-3_BY_VALUE.out
*** gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed_-_COMP-3_BY_VALUE.out	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed_-_COMP-3_BY_VALUE.out	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,11 ----
+ -12
+ -12
+ -1234
+ -1234
+ -12345678
+ -12345678
+ -1234567890123456
+ -1234567890123456
+ -12345678901234567890123456789012
+ -12345678901234567890123456789012
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed_-_NumericDisplay_BY_REFERENCE.cob gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed_-_NumericDisplay_BY_REFERENCE.cob
*** gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed_-_NumericDisplay_BY_REFERENCE.cob	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed_-_NumericDisplay_BY_REFERENCE.cob	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,90 ----
+        *> { dg-do run }
+        *> { dg-output-file "group2/USING_Signed_-_NumericDisplay_BY_REFERENCE.out" }
+         identification division.
+         program-id.  prog.
+         data division.
+         working-storage section.
+         01 var8    pic s9(2).
+         01 var16   pic s9(4).
+         01 var32   pic s9(8).
+         01 var64   pic s9(16).
+         01 var128  pic s9(32).
+         01 var8r   pic s9(2).
+         01 var16r  pic s9(4).
+         01 var32r  pic s9(8).
+         01 var64r  pic s9(16).
+         01 var128r pic s9(32).
+         procedure division.
+             move    -12 to var8
+             move    -1234 to var16
+             move    -12345678 to var32
+             move    -1234567890123456 to var64
+             move    -12345678901234567890123456789012 to var128
+             display     var8
+             call     "rvar8" using by reference var8 returning var8r
+             display     var8r
+             display     var16
+             call     "rvar16" using by reference var16 returning var16r
+             display     var16r
+             display     var32
+             call     "rvar32" using by reference var32 returning var32r
+             display     var32r
+             display     var64
+             call     "rvar64" using by reference var64 returning var64r
+             display     var64r
+             display     var128
+             call     "rvar128" using by reference var128 returning var128r
+             display     var128r
+             goback.
+         end program prog.
+ 
+         identification division.
+         program-id. rvar8.
+         data division.
+         linkage section.
+         01  var         pic s9(2)               .
+         01  varr        pic s9(2)               .
+         procedure division using by reference var returning varr.
+             move var to varr.
+         end program rvar8.
+ 
+         identification division.
+         program-id. rvar16.
+         data division.
+         linkage section.
+         01  var         pic s9(4)               .
+         01  varr        pic s9(4)               .
+         procedure division using by reference var returning varr.
+             move var to varr.
+         end program rvar16.
+ 
+         identification division.
+         program-id. rvar32.
+         data division.
+         linkage section.
+         01  var         pic s9(8)               .
+         01  varr        pic s9(8)               .
+         procedure division using by reference var returning varr.
+             move var to varr.
+         end program rvar32.
+ 
+         identification division.
+         program-id. rvar64.
+         data division.
+         linkage section.
+         01  var         pic s9(16)               .
+         01  varr        pic s9(16)               .
+         procedure division using by reference var returning varr.
+             move var to varr.
+         end program rvar64.
+ 
+         identification division.
+         program-id. rvar128.
+         data division.
+         linkage section.
+         01  var         pic s9(32)               .
+         01  varr        pic s9(32)               .
+         procedure division using by reference var returning varr.
+            move var to varr.
+         end program rvar128.
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed_-_NumericDisplay_BY_REFERENCE.out gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed_-_NumericDisplay_BY_REFERENCE.out
*** gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed_-_NumericDisplay_BY_REFERENCE.out	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed_-_NumericDisplay_BY_REFERENCE.out	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,11 ----
+ -12
+ -12
+ -1234
+ -1234
+ -12345678
+ -12345678
+ -1234567890123456
+ -1234567890123456
+ -12345678901234567890123456789012
+ -12345678901234567890123456789012
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed_-_NumericDisplay_BY_VALUE.cob gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed_-_NumericDisplay_BY_VALUE.cob
*** gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed_-_NumericDisplay_BY_VALUE.cob	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed_-_NumericDisplay_BY_VALUE.cob	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,90 ----
+        *> { dg-do run }
+        *> { dg-output-file "group2/USING_Signed_-_NumericDisplay_BY_VALUE.out" }
+         identification division.
+         program-id.  prog.
+         data division.
+         working-storage section.
+         01 var8    pic s9(2).
+         01 var16   pic s9(4).
+         01 var32   pic s9(8).
+         01 var64   pic s9(16).
+         01 var128  pic s9(32).
+         01 var8r   pic s9(2).
+         01 var16r  pic s9(4).
+         01 var32r  pic s9(8).
+         01 var64r  pic s9(16).
+         01 var128r pic s9(32).
+         procedure division.
+             move    -12 to var8
+             move    -1234 to var16
+             move    -12345678 to var32
+             move    -1234567890123456 to var64
+             move    -12345678901234567890123456789012 to var128
+             display     var8
+             call     "rvar8" using by value var8 returning var8r
+             display     var8r
+             display     var16
+             call     "rvar16" using by value var16 returning var16r
+             display     var16r
+             display     var32
+             call     "rvar32" using by value var32 returning var32r
+             display     var32r
+             display     var64
+             call     "rvar64" using by value var64 returning var64r
+             display     var64r
+             display     var128
+             call     "rvar128" using by value var128 returning var128r
+             display     var128r
+             goback.
+         end program prog.
+ 
+         identification division.
+         program-id. rvar8.
+         data division.
+         linkage section.
+         01  var         pic s9(2)               .
+         01  varr        pic s9(2)               .
+         procedure division using by value var returning varr.
+             move var to varr.
+         end program rvar8.
+ 
+         identification division.
+         program-id. rvar16.
+         data division.
+         linkage section.
+         01  var         pic s9(4)               .
+         01  varr        pic s9(4)               .
+         procedure division using by value var returning varr.
+             move var to varr.
+         end program rvar16.
+ 
+         identification division.
+         program-id. rvar32.
+         data division.
+         linkage section.
+         01  var         pic s9(8)               .
+         01  varr        pic s9(8)               .
+         procedure division using by value var returning varr.
+             move var to varr.
+         end program rvar32.
+ 
+         identification division.
+         program-id. rvar64.
+         data division.
+         linkage section.
+         01  var         pic s9(16)               .
+         01  varr        pic s9(16)               .
+         procedure division using by value var returning varr.
+             move var to varr.
+         end program rvar64.
+ 
+         identification division.
+         program-id. rvar128.
+         data division.
+         linkage section.
+         01  var         pic s9(32)               .
+         01  varr        pic s9(32)               .
+         procedure division using by value var returning varr.
+            move var to varr.
+         end program rvar128.
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed_-_NumericDisplay_BY_VALUE.out gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed_-_NumericDisplay_BY_VALUE.out
*** gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed_-_NumericDisplay_BY_VALUE.out	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed_-_NumericDisplay_BY_VALUE.out	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,11 ----
+ -12
+ -12
+ -1234
+ -1234
+ -12345678
+ -12345678
+ -1234567890123456
+ -1234567890123456
+ -12345678901234567890123456789012
+ -12345678901234567890123456789012
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed___COMP-3_BY_REFERENCE.cob gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed___COMP-3_BY_REFERENCE.cob
*** gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed___COMP-3_BY_REFERENCE.cob	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed___COMP-3_BY_REFERENCE.cob	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,90 ----
+        *> { dg-do run }
+        *> { dg-output-file "group2/USING_Signed___COMP-3_BY_REFERENCE.out" }
+         identification division.
+         program-id.  prog.
+         data division.
+         working-storage section.
+         01 var8    pic s9(2) comp-3.
+         01 var16   pic s9(4) comp-3.
+         01 var32   pic s9(8) comp-3.
+         01 var64   pic s9(16) comp-3.
+         01 var128  pic s9(32) comp-3.
+         01 var8r   pic s9(2) comp-3.
+         01 var16r  pic s9(4) comp-3.
+         01 var32r  pic s9(8) comp-3.
+         01 var64r  pic s9(16) comp-3.
+         01 var128r pic s9(32) comp-3.
+         procedure division.
+             move    12 to var8
+             move    1234 to var16
+             move    12345678 to var32
+             move    1234567890123456 to var64
+             move    12345678901234567890123456789012 to var128
+             display     var8
+             call     "rvar8" using by reference var8 returning var8r
+             display     var8r
+             display     var16
+             call     "rvar16" using by reference var16 returning var16r
+             display     var16r
+             display     var32
+             call     "rvar32" using by reference var32 returning var32r
+             display     var32r
+             display     var64
+             call     "rvar64" using by reference var64 returning var64r
+             display     var64r
+             display     var128
+             call     "rvar128" using by reference var128 returning var128r
+             display     var128r
+             goback.
+         end program prog.
+ 
+         identification division.
+         program-id. rvar8.
+         data division.
+         linkage section.
+         01  var         pic 9(2) comp-3               .
+         01  varr        pic 9(2) comp-3               .
+         procedure division using by reference var returning varr.
+             move var to varr.
+         end program rvar8.
+ 
+         identification division.
+         program-id. rvar16.
+         data division.
+         linkage section.
+         01  var         pic 9(4) comp-3               .
+         01  varr        pic 9(4) comp-3               .
+         procedure division using by reference var returning varr.
+             move var to varr.
+         end program rvar16.
+ 
+         identification division.
+         program-id. rvar32.
+         data division.
+         linkage section.
+         01  var         pic 9(8) comp-3               .
+         01  varr        pic 9(8) comp-3               .
+         procedure division using by reference var returning varr.
+             move var to varr.
+         end program rvar32.
+ 
+         identification division.
+         program-id. rvar64.
+         data division.
+         linkage section.
+         01  var         pic 9(16) comp-3               .
+         01  varr        pic 9(16) comp-3               .
+         procedure division using by reference var returning varr.
+             move var to varr.
+         end program rvar64.
+ 
+         identification division.
+         program-id. rvar128.
+         data division.
+         linkage section.
+         01  var         pic 9(32) comp-3               .
+         01  varr        pic 9(32) comp-3               .
+         procedure division using by reference var returning varr.
+            move var to varr.
+         end program rvar128.
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed___COMP-3_BY_REFERENCE.out gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed___COMP-3_BY_REFERENCE.out
*** gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed___COMP-3_BY_REFERENCE.out	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed___COMP-3_BY_REFERENCE.out	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,11 ----
+ +12
+ +12
+ +1234
+ +1234
+ +12345678
+ +12345678
+ +1234567890123456
+ +1234567890123456
+ +12345678901234567890123456789012
+ +12345678901234567890123456789012
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed___COMP-3_BY_VALUE.cob gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed___COMP-3_BY_VALUE.cob
*** gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed___COMP-3_BY_VALUE.cob	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed___COMP-3_BY_VALUE.cob	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,90 ----
+        *> { dg-do run }
+        *> { dg-output-file "group2/USING_Signed___COMP-3_BY_VALUE.out" }
+         identification division.
+         program-id.  prog.
+         data division.
+         working-storage section.
+         01 var8    pic s9(2) comp-3.
+         01 var16   pic s9(4) comp-3.
+         01 var32   pic s9(8) comp-3.
+         01 var64   pic s9(16) comp-3.
+         01 var128  pic s9(32) comp-3.
+         01 var8r   pic s9(2) comp-3.
+         01 var16r  pic s9(4) comp-3.
+         01 var32r  pic s9(8) comp-3.
+         01 var64r  pic s9(16) comp-3.
+         01 var128r pic s9(32) comp-3.
+         procedure division.
+             move    12 to var8
+             move    1234 to var16
+             move    12345678 to var32
+             move    1234567890123456 to var64
+             move    12345678901234567890123456789012 to var128
+             display     var8
+             call     "rvar8" using by value var8 returning var8r
+             display     var8r
+             display     var16
+             call     "rvar16" using by value var16 returning var16r
+             display     var16r
+             display     var32
+             call     "rvar32" using by value var32 returning var32r
+             display     var32r
+             display     var64
+             call     "rvar64" using by value var64 returning var64r
+             display     var64r
+             display     var128
+             call     "rvar128" using by value var128 returning var128r
+             display     var128r
+             goback.
+         end program prog.
+ 
+         identification division.
+         program-id. rvar8.
+         data division.
+         linkage section.
+         01  var         pic 9(2) comp-3               .
+         01  varr        pic 9(2) comp-3               .
+         procedure division using by value var returning varr.
+             move var to varr.
+         end program rvar8.
+ 
+         identification division.
+         program-id. rvar16.
+         data division.
+         linkage section.
+         01  var         pic 9(4) comp-3               .
+         01  varr        pic 9(4) comp-3               .
+         procedure division using by value var returning varr.
+             move var to varr.
+         end program rvar16.
+ 
+         identification division.
+         program-id. rvar32.
+         data division.
+         linkage section.
+         01  var         pic 9(8) comp-3               .
+         01  varr        pic 9(8) comp-3               .
+         procedure division using by value var returning varr.
+             move var to varr.
+         end program rvar32.
+ 
+         identification division.
+         program-id. rvar64.
+         data division.
+         linkage section.
+         01  var         pic 9(16) comp-3               .
+         01  varr        pic 9(16) comp-3               .
+         procedure division using by value var returning varr.
+             move var to varr.
+         end program rvar64.
+ 
+         identification division.
+         program-id. rvar128.
+         data division.
+         linkage section.
+         01  var         pic 9(32) comp-3               .
+         01  varr        pic 9(32) comp-3               .
+         procedure division using by value var returning varr.
+            move var to varr.
+         end program rvar128.
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed___COMP-3_BY_VALUE.out gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed___COMP-3_BY_VALUE.out
*** gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed___COMP-3_BY_VALUE.out	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed___COMP-3_BY_VALUE.out	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,11 ----
+ +12
+ +12
+ +1234
+ +1234
+ +12345678
+ +12345678
+ +1234567890123456
+ +1234567890123456
+ +12345678901234567890123456789012
+ +12345678901234567890123456789012
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed___NumericDisplay_BY_REFERENCE.cob gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed___NumericDisplay_BY_REFERENCE.cob
*** gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed___NumericDisplay_BY_REFERENCE.cob	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed___NumericDisplay_BY_REFERENCE.cob	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,90 ----
+        *> { dg-do run }
+        *> { dg-output-file "group2/USING_Signed___NumericDisplay_BY_REFERENCE.out" }
+         identification division.
+         program-id.  prog.
+         data division.
+         working-storage section.
+         01 var8    pic s9(2).
+         01 var16   pic s9(4).
+         01 var32   pic s9(8).
+         01 var64   pic s9(16).
+         01 var128  pic s9(32).
+         01 var8r   pic s9(2).
+         01 var16r  pic s9(4).
+         01 var32r  pic s9(8).
+         01 var64r  pic s9(16).
+         01 var128r pic s9(32).
+         procedure division.
+             move    12 to var8
+             move    1234 to var16
+             move    12345678 to var32
+             move    1234567890123456 to var64
+             move    12345678901234567890123456789012 to var128
+             display     var8
+             call     "rvar8" using by reference var8 returning var8r
+             display     var8r
+             display     var16
+             call     "rvar16" using by reference var16 returning var16r
+             display     var16r
+             display     var32
+             call     "rvar32" using by reference var32 returning var32r
+             display     var32r
+             display     var64
+             call     "rvar64" using by reference var64 returning var64r
+             display     var64r
+             display     var128
+             call     "rvar128" using by reference var128 returning var128r
+             display     var128r
+             goback.
+         end program prog.
+ 
+         identification division.
+         program-id. rvar8.
+         data division.
+         linkage section.
+         01  var         pic 9(2)               .
+         01  varr        pic 9(2)               .
+         procedure division using by reference var returning varr.
+             move var to varr.
+         end program rvar8.
+ 
+         identification division.
+         program-id. rvar16.
+         data division.
+         linkage section.
+         01  var         pic 9(4)               .
+         01  varr        pic 9(4)               .
+         procedure division using by reference var returning varr.
+             move var to varr.
+         end program rvar16.
+ 
+         identification division.
+         program-id. rvar32.
+         data division.
+         linkage section.
+         01  var         pic 9(8)               .
+         01  varr        pic 9(8)               .
+         procedure division using by reference var returning varr.
+             move var to varr.
+         end program rvar32.
+ 
+         identification division.
+         program-id. rvar64.
+         data division.
+         linkage section.
+         01  var         pic 9(16)               .
+         01  varr        pic 9(16)               .
+         procedure division using by reference var returning varr.
+             move var to varr.
+         end program rvar64.
+ 
+         identification division.
+         program-id. rvar128.
+         data division.
+         linkage section.
+         01  var         pic 9(32)               .
+         01  varr        pic 9(32)               .
+         procedure division using by reference var returning varr.
+            move var to varr.
+         end program rvar128.
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed___NumericDisplay_BY_REFERENCE.out gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed___NumericDisplay_BY_REFERENCE.out
*** gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed___NumericDisplay_BY_REFERENCE.out	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed___NumericDisplay_BY_REFERENCE.out	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,11 ----
+ +12
+ +12
+ +1234
+ +1234
+ +12345678
+ +12345678
+ +1234567890123456
+ +1234567890123456
+ +12345678901234567890123456789012
+ +12345678901234567890123456789012
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed___NumericDisplay_BY_VALUE.cob gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed___NumericDisplay_BY_VALUE.cob
*** gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed___NumericDisplay_BY_VALUE.cob	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed___NumericDisplay_BY_VALUE.cob	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,90 ----
+        *> { dg-do run }
+        *> { dg-output-file "group2/USING_Signed___NumericDisplay_BY_VALUE.out" }
+         identification division.
+         program-id.  prog.
+         data division.
+         working-storage section.
+         01 var8    pic s9(2).
+         01 var16   pic s9(4).
+         01 var32   pic s9(8).
+         01 var64   pic s9(16).
+         01 var128  pic s9(32).
+         01 var8r   pic s9(2).
+         01 var16r  pic s9(4).
+         01 var32r  pic s9(8).
+         01 var64r  pic s9(16).
+         01 var128r pic s9(32).
+         procedure division.
+             move    12 to var8
+             move    1234 to var16
+             move    12345678 to var32
+             move    1234567890123456 to var64
+             move    12345678901234567890123456789012 to var128
+             display     var8
+             call     "rvar8" using by value var8 returning var8r
+             display     var8r
+             display     var16
+             call     "rvar16" using by value var16 returning var16r
+             display     var16r
+             display     var32
+             call     "rvar32" using by value var32 returning var32r
+             display     var32r
+             display     var64
+             call     "rvar64" using by value var64 returning var64r
+             display     var64r
+             display     var128
+             call     "rvar128" using by value var128 returning var128r
+             display     var128r
+             goback.
+         end program prog.
+ 
+         identification division.
+         program-id. rvar8.
+         data division.
+         linkage section.
+         01  var         pic 9(2)               .
+         01  varr        pic 9(2)               .
+         procedure division using by value var returning varr.
+             move var to varr.
+         end program rvar8.
+ 
+         identification division.
+         program-id. rvar16.
+         data division.
+         linkage section.
+         01  var         pic 9(4)               .
+         01  varr        pic 9(4)               .
+         procedure division using by value var returning varr.
+             move var to varr.
+         end program rvar16.
+ 
+         identification division.
+         program-id. rvar32.
+         data division.
+         linkage section.
+         01  var         pic 9(8)               .
+         01  varr        pic 9(8)               .
+         procedure division using by value var returning varr.
+             move var to varr.
+         end program rvar32.
+ 
+         identification division.
+         program-id. rvar64.
+         data division.
+         linkage section.
+         01  var         pic 9(16)               .
+         01  varr        pic 9(16)               .
+         procedure division using by value var returning varr.
+             move var to varr.
+         end program rvar64.
+ 
+         identification division.
+         program-id. rvar128.
+         data division.
+         linkage section.
+         01  var         pic 9(32)               .
+         01  varr        pic 9(32)               .
+         procedure division using by value var returning varr.
+            move var to varr.
+         end program rvar128.
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed___NumericDisplay_BY_VALUE.out gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed___NumericDisplay_BY_VALUE.out
*** gcc-16-20260208/gcc/testsuite/cobol.dg/group2/USING_Signed___NumericDisplay_BY_VALUE.out	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/cobol.dg/group2/USING_Signed___NumericDisplay_BY_VALUE.out	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,11 ----
+ +12
+ +12
+ +1234
+ +1234
+ +12345678
+ +12345678
+ +1234567890123456
+ +1234567890123456
+ +12345678901234567890123456789012
+ +12345678901234567890123456789012
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/analyzer/ice-pr124073.C gcc-16-20260215/gcc/testsuite/g++.dg/analyzer/ice-pr124073.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/analyzer/ice-pr124073.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/g++.dg/analyzer/ice-pr124073.C	Sun Feb 15 22:32:07 2026
***************
*** 0 ****
--- 1,24 ----
+ // { dg-do compile { target c++11 } }
+ 
+ template <typename _Tp> struct remove_cv {
+   using type = _Tp;
+ };
+ struct basic_string {
+   ~basic_string();
+ };
+ template <typename T> using remove_cvref_t = remove_cv<T>;
+ template <typename> struct basic_string_view {};
+ template <typename> struct basic_format_string;
+ auto format(...) -> basic_string {} // { dg-warning "no return statement" }
+ template <int N>
+ auto compile_string_to_view(const char (&)[N]) -> basic_string_view<char>;
+ 
+ void MallocError() {
+   format([] {
+     using char_type = remove_cvref_t<decltype(0)>;
+     struct FMT_COMPILE_STRING {
+       operator char_type() {} // { dg-warning "no return statement" }
+     };
+     return FMT_COMPILE_STRING();
+   });
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/cpp0x/constexpr-123889.C gcc-16-20260215/gcc/testsuite/g++.dg/cpp0x/constexpr-123889.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/cpp0x/constexpr-123889.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/g++.dg/cpp0x/constexpr-123889.C	Sun Feb 15 22:32:08 2026
***************
*** 0 ****
--- 1,14 ----
+ // PR c++/123889
+ // { dg-do compile { target c++11 } }
+ 
+ template <class T>
+ constexpr int func (T) {
+ // { dg-message "'constexpr int func\\\(T\\\) \\\[with T = int\\\]' is not usable as a 'constexpr' function because:" "" { target c++11_only } .-1 }
+ // { dg-error "body of 'constexpr' function 'constexpr int func\\\(T\\\) \\\[with T = int\\\]' not a return-statement" "" { target c++11_only } .-2 }
+   return 1;
+   return 2;
+ }
+ 
+ static_assert (func (1) == 1, "");
+ // { dg-error "non-constant condition for static assertion" "" { target c++11_only } .-1 }
+ // { dg-error "'constexpr int func\\\(T\\\) \\\[with T = int\\\]' called in a constant expression" "" { target c++11_only } .-2 }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/cpp0x/ref-qual5.C gcc-16-20260215/gcc/testsuite/g++.dg/cpp0x/ref-qual5.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/cpp0x/ref-qual5.C	Sun Feb  8 22:32:08 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/cpp0x/ref-qual5.C	Sun Feb 15 22:32:08 2026
***************
*** 1,5 ****
--- 1,6 ----
  // 13.1: ...cannot be overloaded if any of them, but not all, have a
  // ref-qualifier.
+ // In C++20 this was relaxed by P1787R6 "Declarations and where to find them"
  
  // { dg-require-effective-target c++11 }
  
*************** class Y {
*** 7,13 ****
    void h() &;
    void h() const &;	       // OK
    void h() &&;		       // OK, all declarations have a ref-qualifier
!   void i() &;		       // { dg-message "" }
!   void i() const;	       // { dg-error "" } prior declaration of i
! 			       // has a ref-qualifier
  };
--- 8,14 ----
    void h() &;
    void h() const &;	       // OK
    void h() &&;		       // OK, all declarations have a ref-qualifier
!   void i() &;		       // { dg-message "" "" { target c++17_down } }
!   void i() const;	       // { dg-error "" "" { target c++17_down } }
! 			       // prior declaration of i has a ref-qualifier
  };
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/cpp23/explicit-obj-eval-order.C gcc-16-20260215/gcc/testsuite/g++.dg/cpp23/explicit-obj-eval-order.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/cpp23/explicit-obj-eval-order.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/g++.dg/cpp23/explicit-obj-eval-order.C	Sun Feb 15 22:32:08 2026
***************
*** 0 ****
--- 1,16 ----
+ // PR c++/123989
+ // { dg-do run { target c++23 } }
+ 
+ struct A {
+   int m = 42;
+ 
+   void f(this A self, int n) {
+     if (self.m != 42 || n != 43)
+       __builtin_abort();
+   }
+ };
+ 
+ int main() {
+   A a;
+   a.f(++a.m);
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda20.C gcc-16-20260215/gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda20.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda20.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/g++.dg/cpp23/explicit-obj-lambda20.C	Sun Feb 15 22:32:08 2026
***************
*** 0 ****
--- 1,17 ----
+ // PR c++/121500
+ // { dg-do run { target c++23 } }
+ 
+ struct A {
+   A() = default;
+   A(const A& other) : n(other.n) { }
+   int n = 42;
+ };
+ 
+ int main() {
+   A a;
+   auto l = [a](this auto self) {
+     return a.n == 42;
+   };
+   if (!l())
+     __builtin_abort();
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/cpp26/pack-indexing15.C gcc-16-20260215/gcc/testsuite/g++.dg/cpp26/pack-indexing15.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/cpp26/pack-indexing15.C	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/cpp26/pack-indexing15.C	Sun Feb 15 22:32:08 2026
*************** foo ()
*** 17,20 ****
  }
  
  Set<bool> sb;
! Set<float> sf; // { dg-error "placeholder constraints not satisfied" }
--- 17,20 ----
  }
  
  Set<bool> sb;
! Set<float> sf; // { dg-error "constraint failure" }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/cpp2a/class-deduction-alias26.C gcc-16-20260215/gcc/testsuite/g++.dg/cpp2a/class-deduction-alias26.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/cpp2a/class-deduction-alias26.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/g++.dg/cpp2a/class-deduction-alias26.C	Sun Feb 15 22:32:08 2026
***************
*** 0 ****
--- 1,17 ----
+ // PR c++/122621
+ // { dg-do compile { target c++20 } }
+ 
+ template <class, class>
+ concept constructible_from = true;
+ 
+ template <class... ElemTs>
+ struct Tuple {
+     template <class... Ts> requires (... && constructible_from<ElemTs, Ts>)
+     Tuple(Ts &&...) {}
+ };
+ 
+ template <class... Us>
+ using A = Tuple<Tuple<Us...>>;
+ 
+ using type = decltype(A{0});
+ using type = Tuple<Tuple<>>;
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/cpp2a/concepts-placeholder12.C gcc-16-20260215/gcc/testsuite/g++.dg/cpp2a/concepts-placeholder12.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/cpp2a/concepts-placeholder12.C	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/cpp2a/concepts-placeholder12.C	Sun Feb 15 22:32:08 2026
*************** int main() {
*** 22,29 ****
    A<false>::g(X<0>{}); // { dg-error "no match|constraints" }
  
    bool v1 = A<true>::value<0>;
!   bool v2 = A<false>::value<0>;  // { dg-error "constraints" }
  
    A<true>::D<0> d1;
!   A<false>::D<0> d2; // { dg-error "constraints" }
  }
--- 22,29 ----
    A<false>::g(X<0>{}); // { dg-error "no match|constraints" }
  
    bool v1 = A<true>::value<0>;
!   bool v2 = A<false>::value<0>;  // { dg-error "invalid variable template" }
  
    A<true>::D<0> d1;
!   A<false>::D<0> d2; // { dg-error "constraint failure" }
  }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/cpp2a/concepts-pr97093.C gcc-16-20260215/gcc/testsuite/g++.dg/cpp2a/concepts-pr97093.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/cpp2a/concepts-pr97093.C	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/cpp2a/concepts-pr97093.C	Sun Feb 15 22:32:08 2026
*************** struct pc
*** 29,32 ****
  };
  
  constexpr auto cc = pc {};
! constexpr auto mmcc = m <cc> {}; // { dg-error "not satisfied" }
--- 29,32 ----
  };
  
  constexpr auto cc = pc {};
! constexpr auto mmcc = m <cc> {}; // { dg-error "constraint failure" }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/cpp2a/concepts-template-parm12.C gcc-16-20260215/gcc/testsuite/g++.dg/cpp2a/concepts-template-parm12.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/cpp2a/concepts-template-parm12.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/g++.dg/cpp2a/concepts-template-parm12.C	Sun Feb 15 22:32:08 2026
***************
*** 0 ****
--- 1,31 ----
+ // { dg-do compile { target c++20 } }
+ // Verify partial ordering with respect to associated constraints
+ // works in the presence of constrained NTTPs.
+ 
+ template<class T> concept C = true;
+ 
+ template<class T> concept D = C<T> && true;
+ 
+ template<class T> concept E = true;
+ 
+ template<C auto V> void f() = delete;
+ template<D auto V> void f(); // more constrained
+ 
+ template<C auto V> void g();
+ template<C auto V> void g(); // redeclaration
+ 
+ template<C auto V> void h();
+ template<E auto V> void h(); // ambiguous
+ 
+ template<C auto V> struct A;
+ template<D auto V> struct A<V> { }; // more constrained
+ 
+ template<D auto V> struct B;
+ template<C auto V> struct B<V> { }; // { dg-error "not more constrained" }
+ 
+ int main() {
+   f<0>();
+   g<0>();
+   h<0>(); // { dg-error "ambiguous" }
+   A<0> a;
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/cpp2a/concepts-template-parm2.C gcc-16-20260215/gcc/testsuite/g++.dg/cpp2a/concepts-template-parm2.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/cpp2a/concepts-template-parm2.C	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/cpp2a/concepts-template-parm2.C	Sun Feb 15 22:32:08 2026
*************** template<Int T = char> struct S1 { };
*** 12,15 ****
  template<Int auto X = false> struct S2 { };
  
  S1<> s1; // { dg-error "constraint failure" }
! S2<> s2; // { dg-error "placeholder constraints not satisfied" }
--- 12,15 ----
  template<Int auto X = false> struct S2 { };
  
  S1<> s1; // { dg-error "constraint failure" }
! S2<> s2; // { dg-error "constraint failure" }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/cpp2a/concepts-template-parm6.C gcc-16-20260215/gcc/testsuite/g++.dg/cpp2a/concepts-template-parm6.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/cpp2a/concepts-template-parm6.C	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/cpp2a/concepts-template-parm6.C	Sun Feb 15 22:32:08 2026
*************** template<Int... Ts> struct S3 { }; // re
*** 40,44 ****
  S3<int, int, char> x0; // { dg-error "template constraint failure" }
  
  template<Int auto... Xs> struct S4 { }; // requires (C<X> && ...) with each X deduced
! S4<0, 1, 2, 'a'> x1; // { dg-error "placeholder constraints not satisfied" }
  
--- 40,44 ----
  S3<int, int, char> x0; // { dg-error "template constraint failure" }
  
  template<Int auto... Xs> struct S4 { }; // requires (C<X> && ...) with each X deduced
! S4<0, 1, 2, 'a'> x1; // { dg-error "template constraint failure" }
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/expr/cast11.C gcc-16-20260215/gcc/testsuite/g++.dg/expr/cast11.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/expr/cast11.C	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/expr/cast11.C	Sun Feb 15 22:32:08 2026
*************** template<typename T> void g(T const&&) {
*** 10,15 ****
--- 10,17 ----
  
  struct B { int i; const char c; } b = {};
  
+ typedef __INTPTR_TYPE__ intptr_t;
+ 
  void f1()
  {
    int i = 0;
*************** void f1()
*** 19,25 ****
    f((long* const)&i);			// { dg-warning "5:type qualifiers ignored" }
  
    f(static_cast<long const>(i));	// { dg-warning "5:type qualifiers ignored" }
!   f(reinterpret_cast<long const>(&i));	// { dg-warning "5:type qualifiers ignored" }
  
    f(static_cast<int* const>(&i));	// { dg-warning "5:type qualifiers ignored" }
    f(const_cast<int* const>(&i));	// { dg-warning "5:type qualifiers ignored" }
--- 21,27 ----
    f((long* const)&i);			// { dg-warning "5:type qualifiers ignored" }
  
    f(static_cast<long const>(i));	// { dg-warning "5:type qualifiers ignored" }
!   f(reinterpret_cast<intptr_t const>(&i));	// { dg-warning "5:type qualifiers ignored" }
  
    f(static_cast<int* const>(&i));	// { dg-warning "5:type qualifiers ignored" }
    f(const_cast<int* const>(&i));	// { dg-warning "5:type qualifiers ignored" }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/gomp/pr113436.C gcc-16-20260215/gcc/testsuite/g++.dg/gomp/pr113436.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/gomp/pr113436.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/g++.dg/gomp/pr113436.C	Sun Feb 15 22:32:08 2026
***************
*** 0 ****
--- 1,46 ----
+ // PR middle-end/113436
+ // { dg-do "compile" }
+ // { dg-options "-std=gnu++20 -fopenmp -fdump-tree-omplower" }
+ 
+ // #include <omp.h>
+ typedef __UINTPTR_TYPE__ omp_uintptr_t;
+ 
+ #if __cplusplus >= 201103L
+ # define __GOMP_UINTPTR_T_ENUM : omp_uintptr_t
+ #else
+ # define __GOMP_UINTPTR_T_ENUM
+ #endif
+ 
+ typedef enum omp_allocator_handle_t __GOMP_UINTPTR_T_ENUM
+ {
+   omp_null_allocator = 0,
+   omp_default_mem_alloc = 1,
+   omp_large_cap_mem_alloc = 2,
+   omp_const_mem_alloc = 3,
+   omp_high_bw_mem_alloc = 4,
+   omp_low_lat_mem_alloc = 5,
+   omp_cgroup_mem_alloc = 6,
+   omp_pteam_mem_alloc = 7,
+   omp_thread_mem_alloc = 8,
+   ompx_gnu_pinned_mem_alloc = 200,
+   ompx_gnu_managed_mem_alloc = 201,
+   __omp_allocator_handle_t_max__ = __UINTPTR_MAX__
+ } omp_allocator_handle_t;
+ 
+ 
+ void f()
+ {
+   int a[10];
+   auto &aRef = a;
+ 
+   #pragma omp target firstprivate(aRef) \
+ 		     allocate(align(128), allocator(omp_low_lat_mem_alloc): aRef)
+     aRef[0] = 1;
+ }
+ 
+ // { dg-final { scan-tree-dump "aRef\\\.\[0-9\]\+ = __builtin_GOMP_alloc \\\(128, 40, 5\\\);" "omplower" { target int32 } } }
+ // { dg-final { scan-tree-dump "aRef = aRef\\\.\[0-9\]\+;" "omplower" } }
+ // { dg-final { scan-tree-dump "D\\\.\[0-9\]\+ = \\\(\\\*D\\\.\[0-9\]+\\\);" "omplower" } }
+ // { dg-final { scan-tree-dump "\\\(\\\*aRef\\\) = D\\\.\[0-9\]\+;" "omplower" } }
+ // { dg-final { scan-tree-dump "\\\(\\\*aRef\\\)\\\[0\\\] = 1;" "omplower" } }
+ // { dg-final { scan-tree-dump "__builtin_GOMP_free \\\(aRef\\\.\[0-9\]\+, 5\\\);" "omplower" } }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/opt/pr55717.C gcc-16-20260215/gcc/testsuite/g++.dg/opt/pr55717.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/opt/pr55717.C	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/opt/pr55717.C	Sun Feb 15 22:32:08 2026
***************
*** 3,8 ****
--- 3,9 ----
  // { dg-options "-O -g" }
  
  typedef unsigned uint32_t __attribute__((mode (__SI__)));
+ typedef __INTPTR_TYPE__ intptr_t;
  
  struct DebugOnly {};
  template <class T>
*************** struct AllocationSiteKey
*** 95,101 ****
    uint32_t offset : 24;
    int kind;
    typedef AllocationSiteKey Lookup;
!   static unsigned hash (AllocationSiteKey key) { return (long (key.script->code + key.offset)) ^ key.kind; }
  };
  void
  TypeCompartment::sweep (FreeOp *)
--- 96,102 ----
    uint32_t offset : 24;
    int kind;
    typedef AllocationSiteKey Lookup;
!   static unsigned hash (AllocationSiteKey key) { return (intptr_t (key.script->code + key.offset)) ^ key.kind; }
  };
  void
  TypeCompartment::sweep (FreeOp *)
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/reflect/crash10.C gcc-16-20260215/gcc/testsuite/g++.dg/reflect/crash10.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/reflect/crash10.C	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/reflect/crash10.C	Sun Feb 15 22:32:08 2026
***************
*** 4,11 ****
  struct S { };
  using X = S;
  
! template <auto V> constexpr int e = [:V:];  // { dg-error "expected a reflection of an expression instead of type .X." }
! template <auto V> constexpr int e2 = [:V:]; // { dg-error "expected a reflection of an expression instead of type .X." }
  constexpr auto h = ^^X;
  constexpr auto i = e<([:^^h:])>;
  constexpr auto j = e2<^^X>;
--- 4,12 ----
  struct S { };
  using X = S;
  
! template <auto V> constexpr int e = [:V:];  // { dg-error "expected a reflection of an expression" }
! // { dg-message "but .X. is a type" "" { target *-*-* } 4 }
! template <auto V> constexpr int e2 = [:V:]; // { dg-error "expected a reflection of an expression" }
  constexpr auto h = ^^X;
  constexpr auto i = e<([:^^h:])>;
  constexpr auto j = e2<^^X>;
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/reflect/crash2.C gcc-16-20260215/gcc/testsuite/g++.dg/reflect/crash2.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/reflect/crash2.C	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/reflect/crash2.C	Sun Feb 15 22:32:08 2026
*************** void
*** 13,20 ****
  f ()
  {
    // Parsed as "S::tfn < S".
!   [: ^^T :]::tfn<[: ^^T :]>();	// { dg-error "expected primary-expression|expected a reflection of an expression instead of type .S." }
  // { dg-warning "expected .template. keyword" "" { target *-*-* } .-1 }
    int i = [: ^^T :]::var<int>;	// { dg-error "missing|expected" }
  }
  
--- 13,21 ----
  f ()
  {
    // Parsed as "S::tfn < S".
!   [: ^^T :]::tfn<[: ^^T :]>();	// { dg-error "expected primary-expression|expected a reflection of an expression" }
  // { dg-warning "expected .template. keyword" "" { target *-*-* } .-1 }
+ // { dg-message "but .S. is a type" "" { target *-*-* } 4 }
    int i = [: ^^T :]::var<int>;	// { dg-error "missing|expected" }
  }
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/reflect/crash3.C gcc-16-20260215/gcc/testsuite/g++.dg/reflect/crash3.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/reflect/crash3.C	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/reflect/crash3.C	Sun Feb 15 22:32:08 2026
***************
*** 1,8 ****
  // { dg-do compile { target c++26 } }
  // { dg-additional-options "-freflection" }
  
! template <auto V> constexpr int e = [:V:];  // { dg-error "expected a reflection of an expression instead of type .int." }
! template <auto V> constexpr int e2 = [:V:]; // { dg-error "expected a reflection of an expression instead of type .int." }
  constexpr auto h = ^^int;
  constexpr auto i = e<([:^^h:])>;
  constexpr auto j = e2<^^int>;
--- 1,10 ----
  // { dg-do compile { target c++26 } }
  // { dg-additional-options "-freflection" }
  
! template <auto V> constexpr int e = [:V:];  // { dg-error "expected a reflection of an expression" }
! // { dg-message "but .int. is a type" "" { target *-*-* } .-1 }
! template <auto V> constexpr int e2 = [:V:]; // { dg-error "expected a reflection of an expression" }
! // { dg-message "but .int. is a type" "" { target *-*-* } .-1 }
  constexpr auto h = ^^int;
  constexpr auto i = e<([:^^h:])>;
  constexpr auto j = e2<^^int>;
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/reflect/crash7.C gcc-16-20260215/gcc/testsuite/g++.dg/reflect/crash7.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/reflect/crash7.C	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/reflect/crash7.C	Sun Feb 15 22:32:08 2026
*************** template<info R>
*** 12,18 ****
  void
  f ()
  {
!   int j = s.template [:R:]<int>; // { dg-error "expected a reflection of an expression instead of type .S." }
  }
  
  void
--- 12,19 ----
  void
  f ()
  {
!   int j = s.template [:R:]<int>; // { dg-error "expected a reflection of an expression" }
!   // { dg-message "but .S. is a type" "" { target *-*-* } 6 }
  }
  
  void
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/reflect/crash9.C gcc-16-20260215/gcc/testsuite/g++.dg/reflect/crash9.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/reflect/crash9.C	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/reflect/crash9.C	Sun Feb 15 22:32:08 2026
***************
*** 3,10 ****
  
  namespace N { }
  
! template <auto V> constexpr int e = [:V:];  // { dg-error "expected a reflection of an expression instead of .N." }
! template <auto V> constexpr int e2 = [:V:]; // { dg-error "expected a reflection of an expression instead of .N." }
  constexpr auto h = ^^N;
  constexpr auto i = e<([:^^h:])>;
  constexpr auto j = e2<^^N>;
--- 3,11 ----
  
  namespace N { }
  
! template <auto V> constexpr int e = [:V:];  // { dg-error "expected a reflection of an expression" }
! // { dg-message "but .N. is a namespace" "" { target *-*-* } 4 }
! template <auto V> constexpr int e2 = [:V:]; // { dg-error "expected a reflection of an expression" }
  constexpr auto h = ^^N;
  constexpr auto i = e<([:^^h:])>;
  constexpr auto j = e2<^^N>;
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/reflect/define_aggregate6.C gcc-16-20260215/gcc/testsuite/g++.dg/reflect/define_aggregate6.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/reflect/define_aggregate6.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/g++.dg/reflect/define_aggregate6.C	Sun Feb 15 22:32:08 2026
***************
*** 0 ****
--- 1,22 ----
+ // PR c++/123984
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <meta>
+ 
+ struct A;
+ consteval
+ {
+   define_aggregate (^^A, { data_member_spec (^^int, {.name{"_"}}) });
+ }
+ 
+ struct B : A {};
+ 
+ constexpr int
+ get (B &&d)
+ {
+   constexpr auto ctx = std::meta::access_context::unchecked ();
+   return static_cast <A*> (&d)->[: nonstatic_data_members_of (^^A, ctx)[0] :];
+ }
+ 
+ static_assert (get (B { 123 }) == 123);
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/reflect/dep5.C gcc-16-20260215/gcc/testsuite/g++.dg/reflect/dep5.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/reflect/dep5.C	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/reflect/dep5.C	Sun Feb 15 22:32:08 2026
*************** f ()
*** 18,25 ****
    static_assert ([: ^^T :]::x == 42);
    typename [: ^^T :]::type a = 42;
    [: ^^T :]::fn (42);
!   [: ^^T :]::template tfn<([: ^^T :])>();  // { dg-error "expected a reflection of an expression instead of type .S." }
!   auto x = [: ^^T :]::template var<([: ^^T :])>;  // { dg-error "expected a reflection of an expression instead of type .S." }
  }
  
  void
--- 18,26 ----
    static_assert ([: ^^T :]::x == 42);
    typename [: ^^T :]::type a = 42;
    [: ^^T :]::fn (42);
!   [: ^^T :]::template tfn<([: ^^T :])>();  // { dg-error "expected a reflection of an expression" }
!   // { dg-message "but .S. is a type" "" { target *-*-* } 4 }
!   auto x = [: ^^T :]::template var<([: ^^T :])>;  // { dg-error "expected a reflection of an expression" }
  }
  
  void
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/reflect/diag1.C gcc-16-20260215/gcc/testsuite/g++.dg/reflect/diag1.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/reflect/diag1.C	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/reflect/diag1.C	Sun Feb 15 22:32:08 2026
*************** void
*** 14,25 ****
  f ()
  {
    S s;
!   s.[: ^^S::tfn :](42); // { dg-error "reflection .S::tfn. not usable in a splice expression" }
! // { dg-message "add .template. to denote a template" "" { target *-*-* } .-1 }
    s.template [: ^^S::tfn :](42);
  
    constexpr auto r = ^^fortytwo;
!   constexpr int i1 = [:r:]<int>; // { dg-error "reflection .fortytwo<int>. not usable in a splice expression with template arguments" }
! // { dg-message "add .template. to denote a template" "" { target *-*-* } .-1 }
    constexpr int i2 = template [:r:]<int>;
  }
--- 14,23 ----
  f ()
  {
    S s;
!   s.[: ^^S::tfn :](42); // { dg-error "expected 'template' keyword before dependent template name" }
    s.template [: ^^S::tfn :](42);
  
    constexpr auto r = ^^fortytwo;
!   constexpr int i1 = [:r:]<int>; // { dg-error "expected 'template' keyword before dependent template name" }
    constexpr int i2 = template [:r:]<int>;
  }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/reflect/diag1a.C gcc-16-20260215/gcc/testsuite/g++.dg/reflect/diag1a.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/reflect/diag1a.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/g++.dg/reflect/diag1a.C	Sun Feb 15 22:32:08 2026
***************
*** 0 ****
--- 1,24 ----
+ // { dg-do compile { target c++26 } }
+ // { dg-options "" }
+ // { dg-additional-options "-freflection" }
+ // Test that we offer some helpful diagnostic.
+ 
+ struct S {
+   template<typename T>
+   void tfn (T) { }
+ };
+ 
+ template<typename T>
+ constexpr T fortytwo = 42;
+ 
+ void
+ f ()
+ {
+   S s;
+   s.[: ^^S::tfn :](42); // { dg-warning "expected 'template' keyword before dependent template name" }
+   s.template [: ^^S::tfn :](42);
+ 
+   constexpr auto r = ^^fortytwo;
+   constexpr int i1 = [:r:]<int>; // { dg-warning "expected 'template' keyword before dependent template name" }
+   constexpr int i2 = template [:r:]<int>;
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/reflect/diag1b.C gcc-16-20260215/gcc/testsuite/g++.dg/reflect/diag1b.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/reflect/diag1b.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/g++.dg/reflect/diag1b.C	Sun Feb 15 22:32:08 2026
***************
*** 0 ****
--- 1,23 ----
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection -Wno-missing-template-keyword" }
+ // Test that we offer some helpful diagnostic.
+ 
+ struct S {
+   template<typename T>
+   void tfn (T) { }
+ };
+ 
+ template<typename T>
+ constexpr T fortytwo = 42;
+ 
+ void
+ f ()
+ {
+   S s;
+   s.[: ^^S::tfn :](42); // { dg-bogus "expected 'template' keyword before dependent template name" }
+   s.template [: ^^S::tfn :](42);
+ 
+   constexpr auto r = ^^fortytwo;
+   constexpr int i1 = [:r:]<int>; // { dg-bogus "expected 'template' keyword before dependent template name" }
+   constexpr int i2 = template [:r:]<int>;
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/reflect/diag3.C gcc-16-20260215/gcc/testsuite/g++.dg/reflect/diag3.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/reflect/diag3.C	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/reflect/diag3.C	Sun Feb 15 22:32:08 2026
***************
*** 1,14 ****
  // { dg-do compile { target c++26 } }
  // { dg-additional-options "-freflection" }
! // Test that we suggest adding "constexpr" or "constinit" (where allowed).
  
  auto foo = ^^int;  // { dg-error "consteval-only variable .foo." }
! // { dg-message "add .constexpr. or .constinit." "" { target *-*-* } .-1 }
! constinit auto foo_ = ^^int;
  constexpr auto foo__ = ^^int;
  thread_local auto tfoo = ^^int;  // { dg-error "consteval-only variable .tfoo." }
! // { dg-message "add .constexpr. or .constinit." "" { target *-*-* } .-1 }
! thread_local constinit auto tfoo_ = ^^int;
  thread_local constexpr auto tfoo__ = ^^int;
  
  void
--- 1,16 ----
  // { dg-do compile { target c++26 } }
  // { dg-additional-options "-freflection" }
! // Test that we suggest adding "constexpr" (where allowed).
  
  auto foo = ^^int;  // { dg-error "consteval-only variable .foo." }
! // { dg-message "add .constexpr." "" { target *-*-* } .-1 }
! constinit auto foo_ = ^^int; // { dg-error "consteval-only variable .foo_." }
! // { dg-message "add .constexpr." "" { target *-*-* } .-1 }
  constexpr auto foo__ = ^^int;
  thread_local auto tfoo = ^^int;  // { dg-error "consteval-only variable .tfoo." }
! // { dg-message "add .constexpr." "" { target *-*-* } .-1 }
! thread_local constinit auto tfoo_ = ^^int; // { dg-error "consteval-only variable .tfoo_." }
! // { dg-message "add .constexpr." "" { target *-*-* } .-1 }
  thread_local constexpr auto tfoo__ = ^^int;
  
  void
*************** f ()
*** 18,28 ****
  // { dg-message "add .constexpr." "" { target *-*-* } .-1 }
    constexpr auto ref_ = ^^int;
    static auto sref = ^^int;  // { dg-error "consteval-only variable .sref." }
! // { dg-message "add .constexpr. or .constinit." "" { target *-*-* } .-1 }
!   static auto constinit sref_ = ^^int;
    static auto constexpr sref__ = ^^int;
    thread_local auto tref = ^^int; // { dg-error "consteval-only variable .tref." }
! // { dg-message "add .constexpr. or .constinit." "" { target *-*-* } .-1 }
!   thread_local constinit auto tref_ = ^^int;
    thread_local constexpr auto tref__ = ^^int;
  }
--- 20,32 ----
  // { dg-message "add .constexpr." "" { target *-*-* } .-1 }
    constexpr auto ref_ = ^^int;
    static auto sref = ^^int;  // { dg-error "consteval-only variable .sref." }
! // { dg-message "add .constexpr." "" { target *-*-* } .-1 }
!   static auto constinit sref_ = ^^int; // { dg-error "consteval-only variable .sref_." }
! // { dg-message "add .constexpr." "" { target *-*-* } .-1 }
    static auto constexpr sref__ = ^^int;
    thread_local auto tref = ^^int; // { dg-error "consteval-only variable .tref." }
! // { dg-message "add .constexpr." "" { target *-*-* } .-1 }
!   thread_local constinit auto tref_ = ^^int; // { dg-error "consteval-only variable .tref_." }
! // { dg-message "add .constexpr." "" { target *-*-* } .-1 }
    thread_local constexpr auto tref__ = ^^int;
  }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/reflect/error10.C gcc-16-20260215/gcc/testsuite/g++.dg/reflect/error10.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/reflect/error10.C	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/reflect/error10.C	Sun Feb 15 22:32:08 2026
***************
*** 4,32 ****
  int g;
  
  void
! fn0 (int, typename [: ^^:: :] i) // { dg-error "reflection .::. not usable in a splice type|declared" }
  {
  }
  
  void
! fn1 (int, typename [: ^^g :] i) // { dg-error "reflection .g. not usable in a splice type|declared" }
  {
  }
  
  void
! fn2 (int, typename [: ^^fn1 :] i) // { dg-error "reflection .fn1. not usable in a splice type|declared" }
  {
  }
  
  void
! fn3 (int p, typename [: ^^p :] i) // { dg-error "reflection .p. not usable in a splice type|declared" }
  {
  }
  
  enum Harold { Budd };
  
  void
! fn4 (int, typename [: ^^Budd :] i) // { dg-error "reflection .Budd. not usable in a splice type|declared" }
  {
  }
  
--- 4,37 ----
  int g;
  
  void
! fn0 (int, typename [: ^^:: :] i) // { dg-error "expected a reflection of a type|declared" }
! // { dg-message "but .::. is a namespace" "" { target *-*-* } 0 }
  {
  }
  
  void
! fn1 (int, typename [: ^^g :] i) // { dg-error "expected a reflection of a type|declared" }
! // { dg-message "but .g. is a variable" "" { target *-*-* } 4 }
  {
  }
  
  void
! fn2 (int, typename [: ^^fn1 :] i) // { dg-error "expected a reflection of a type|declared" }
! // { dg-message "but .fn1. is a function" "" { target *-*-* } 13 }
  {
  }
  
  void
! fn3 (int p, typename [: ^^p :] i) // { dg-error "expected a reflection of a type|declared" }
! // { dg-message "but .p. is a parameter" "" { target *-*-* } 25 }
  {
  }
  
  enum Harold { Budd };
  
  void
! fn4 (int, typename [: ^^Budd :] i) // { dg-error "expected a reflection of a type|declared" }
! // { dg-message "but .Budd. is an enumerator" "" { target *-*-* } 30 }
  {
  }
  
*************** template<int>
*** 34,39 ****
  struct S {};
  
  void
! fn5 (int, typename [: ^^S :] i) // { dg-error "reflection .S. not usable in a splice type|declared" }
  {
  }
--- 39,54 ----
  struct S {};
  
  void
! fn5 (int, typename [: ^^S :] i) // { dg-error "expected a reflection of a type|declared" }
! // { dg-message "but .S. is a class template" "" { target *-*-* } 39 }
! {
! }
! 
! template<int>
! void bar ();
! 
! void
! fn6 (int, typename [: ^^bar :] i) // { dg-error "expected a reflection of a type|declared" }
! // { dg-message "but .bar. is a function template" "" { target *-*-* } 48 }
  {
  }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/reflect/error12.C gcc-16-20260215/gcc/testsuite/g++.dg/reflect/error12.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/reflect/error12.C	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/reflect/error12.C	Sun Feb 15 22:32:08 2026
*************** constexpr auto r = ^^i;
*** 7,22 ****
  constexpr bool b0 = template [:r:] < 0 > 0;  // { dg-error "not a template" }
  constexpr bool b1 = template [:r:] < 0 < 0;  // { dg-error "not a template|expected" }
  constexpr bool b2 = template [:r:] < 43;     // { dg-error "not a template|expected" }
! constexpr bool b3 = template [:r:] <= 43;    // { dg-error "template splice" }
! constexpr bool b4 = template [:r:] > 41;     // { dg-error "template splice" }
! constexpr bool b5 = template [:r:] >= 41;    // { dg-error "template splice" }
! constexpr bool b6 = template [:r:] == 42;    // { dg-error "template splice" }
! constexpr bool b7 = template [:r:] != 41;    // { dg-error "template splice" }
  
  template<bool> struct S { };
  S<template [:r:] < 43> s1;    // { dg-error "not a template|invalid" }
! S<template [:r:] <= 43> s2;   // { dg-error "template splice|invalid" }
! S<(template [:r:] > 41)> s3;  // { dg-error "template splice|invalid" }
! S<template [:r:] >= 41> s4;   // { dg-error "template splice|invalid" }
! S<template [:r:] == 42> s5;   // { dg-error "template splice|invalid" }
! S<template[:r:] != 41> s6;    // { dg-error "template splice|invalid" }
--- 7,23 ----
  constexpr bool b0 = template [:r:] < 0 > 0;  // { dg-error "not a template" }
  constexpr bool b1 = template [:r:] < 0 < 0;  // { dg-error "not a template|expected" }
  constexpr bool b2 = template [:r:] < 43;     // { dg-error "not a template|expected" }
! constexpr bool b3 = template [:r:] <= 43;    // { dg-error "expected a reflection of a function template" }
! // { dg-message "but .i. is a variable" "" { target *-*-* } 5 }
! constexpr bool b4 = template [:r:] > 41;     // { dg-error "expected a reflection of a function template" }
! constexpr bool b5 = template [:r:] >= 41;    // { dg-error "expected a reflection of a function template" }
! constexpr bool b6 = template [:r:] == 42;    // { dg-error "expected a reflection of a function template" }
! constexpr bool b7 = template [:r:] != 41;    // { dg-error "expected a reflection of a function template" }
  
  template<bool> struct S { };
  S<template [:r:] < 43> s1;    // { dg-error "not a template|invalid" }
! S<template [:r:] <= 43> s2;   // { dg-error "expected a reflection|invalid" }
! S<(template [:r:] > 41)> s3;  // { dg-error "expected a reflection|invalid" }
! S<template [:r:] >= 41> s4;   // { dg-error "expected a reflection|invalid" }
! S<template [:r:] == 42> s5;   // { dg-error "expected a reflection|invalid" }
! S<template[:r:] != 41> s6;    // { dg-error "expected a reflection|invalid" }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/reflect/error5.C gcc-16-20260215/gcc/testsuite/g++.dg/reflect/error5.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/reflect/error5.C	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/reflect/error5.C	Sun Feb 15 22:32:08 2026
*************** template<info R>
*** 9,15 ****
  void
  f ()
  {
!   int i = [:R:]; // { dg-error "expected a reflection of an expression instead of .N." }
  }
  
  void
--- 9,16 ----
  void
  f ()
  {
!   int i = [:R:]; // { dg-error "expected a reflection of an expression" }
!   // { dg-message "but .N. is a namespace" "" { target *-*-* } 6 }
  }
  
  void
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/reflect/expr3.C gcc-16-20260215/gcc/testsuite/g++.dg/reflect/expr3.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/reflect/expr3.C	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/reflect/expr3.C	Sun Feb 15 22:32:08 2026
*************** void
*** 24,51 ****
  g ()
  {
    int i1 = [: ^^x :];
!   int i2 = template [: ^^x :];    // { dg-error "reflection .x. not usable in a template splice" }
    int i3 = [: ^^two<int> :];
!   int i4 = template [: ^^two<int> :]; // { dg-error "reflection .two<int>. not usable in a template splice" }
!   int i5 = [: ^^foo :](42);	      // { dg-error "reflection .foo. not usable in a splice expression" }
    int i6 = template [: ^^foo :](42);
    int i7 = [: ^^foo<int> :](42);
!   int i8 = template [: ^^foo<int> :](42);   // { dg-error "reflection .foo<int>. not usable in a template splice" }
!   int i9 = [: ^^foo :]<int>(42);	    // { dg-error "reflection .foo. not usable in a splice expression|expected" }
    int i10 = template [: ^^foo :]<int>(42);
    int i11 = template [: ^^bar :]<int>(42);  // { dg-error "no matching function for call" }
!   int i12 = [: ^^two :]<int>;		    // { dg-error "reflection .two<int>. not usable in a splice expression with template arguments" }
    int i13 = template [: ^^two :]<int>;
  
!   [: ^^ST :]<int> c1;  // { dg-error "reflection .ST<int>. not usable in a splice expression with template arguments" }
    typename [: ^^ST :]<int> c2;
    template [: ^^ST :]<int> c3;  // { dg-error "expected a reflection of an expression" }
    [: ^^S :]<int> c4;   // { dg-error "expected a reflection of an expression|expected primary-expression" }
    template [: ^^S :]<int> c5;   // { dg-error ".S. is not a template" }
    typename [: ^^S :]<int> c6;   // { dg-error ".S. is not a template|expected" }
    [: ^^bar :]<int>();	// { dg-error "expected" }
  
!   auto x1 = [: ^^ST :]<int>{};	  // { dg-error "reflection .ST<int>. not usable in a splice expression with template arguments" }
    auto x2 = template [: ^^ST :]<int>{};	// { dg-error "expected a reflection of an expression" }
    auto x3 = typename [: ^^ST :]<int>{};
  }
--- 24,57 ----
  g ()
  {
    int i1 = [: ^^x :];
!   int i2 = template [: ^^x :];    // { dg-error "expected a reflection of a function template" }
!   // { dg-message "but .x. is a variable" "" { target *-*-* } 4 }
    int i3 = [: ^^two<int> :];
!   int i4 = template [: ^^two<int> :]; // { dg-error "expected a reflection of a function template" }
!   // { dg-message "but .two<int>. is a variable" "" { target *-*-* } 6 }
!   int i5 = [: ^^foo :](42);	      // { dg-error "expected 'template' keyword before dependent template name" }
    int i6 = template [: ^^foo :](42);
    int i7 = [: ^^foo<int> :](42);
!   int i8 = template [: ^^foo<int> :](42);   // { dg-error "expected a reflection of a function template" }
!   // { dg-message "but .foo<int>. is a function" "" { target *-*-* } 9 }
!   int i9 = [: ^^foo :]<int>(42);	    // { dg-error "expected .template. keyword before dependent template name" }
    int i10 = template [: ^^foo :]<int>(42);
    int i11 = template [: ^^bar :]<int>(42);  // { dg-error "no matching function for call" }
!   int i12 = [: ^^two :]<int>;		    // { dg-error "expected 'template' keyword before dependent template name" }
    int i13 = template [: ^^two :]<int>;
  
!   [: ^^ST :]<int> c1;  // { dg-error "expected a reflection of an expression" }
!   // { dg-message "but .ST<int>. is a type" "" { target *-*-* } 16 }
    typename [: ^^ST :]<int> c2;
    template [: ^^ST :]<int> c3;  // { dg-error "expected a reflection of an expression" }
    [: ^^S :]<int> c4;   // { dg-error "expected a reflection of an expression|expected primary-expression" }
+   // { dg-message "but .S. is a type" "" { target *-*-* } 13 }
+   // { dg-message "add .typename. to denote a type outside a type-only context" "" { target *-*-* } .-2 }
    template [: ^^S :]<int> c5;   // { dg-error ".S. is not a template" }
    typename [: ^^S :]<int> c6;   // { dg-error ".S. is not a template|expected" }
    [: ^^bar :]<int>();	// { dg-error "expected" }
  
!   auto x1 = [: ^^ST :]<int>{};	  // { dg-error "expected a reflection of an expression" }
    auto x2 = template [: ^^ST :]<int>{};	// { dg-error "expected a reflection of an expression" }
    auto x3 = typename [: ^^ST :]<int>{};
  }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/reflect/init1.C gcc-16-20260215/gcc/testsuite/g++.dg/reflect/init1.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/reflect/init1.C	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/reflect/init1.C	Sun Feb 15 22:32:08 2026
*************** struct W {
*** 22,29 ****
    decltype(^^::) i = ^^W::i;
  };
  
! constinit info r = ^^int;
! constinit info *p = &r;
  
  consteval void
  f ()
--- 22,29 ----
    decltype(^^::) i = ^^W::i;
  };
  
! constexpr info r = ^^int;
! constexpr const info *p = &r;
  
  consteval void
  f ()
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/reflect/init10.C gcc-16-20260215/gcc/testsuite/g++.dg/reflect/init10.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/reflect/init10.C	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/reflect/init10.C	Sun Feb 15 22:32:08 2026
*************** struct A {
*** 10,16 ****
  };
  
  A a1;  // { dg-error "consteval-only variable .a1." }
! constinit A a2;
  constexpr A a3;
  
  struct B {
--- 10,16 ----
  };
  
  A a1;  // { dg-error "consteval-only variable .a1." }
! constinit A a2;  // { dg-error "consteval-only variable .a2." }
  constexpr A a3;
  
  struct B {
*************** struct B {
*** 20,24 ****
  };
  
  B b1;  // { dg-error "consteval-only variable .b1." }
! constinit B b2;
  constexpr B b3;
--- 20,24 ----
  };
  
  B b1;  // { dg-error "consteval-only variable .b1." }
! constinit B b2;  // { dg-error "consteval-only variable .b2." }
  constexpr B b3;
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/reflect/init6.C gcc-16-20260215/gcc/testsuite/g++.dg/reflect/init6.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/reflect/init6.C	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/reflect/init6.C	Sun Feb 15 22:32:08 2026
*************** struct N {
*** 12,22 ****
  };
  
  S s1;  // { dg-error "consteval-only variable" }
! constinit S s2{};
  constexpr S s3{^^int};
  
  N n1;  // { dg-error "consteval-only variable" }
! constinit N n2;
  constexpr N n3;
  
  template<typename T>
--- 12,22 ----
  };
  
  S s1;  // { dg-error "consteval-only variable" }
! constinit S s2{};  // { dg-error "consteval-only variable" }
  constexpr S s3{^^int};
  
  N n1;  // { dg-error "consteval-only variable" }
! constinit N n2;  // { dg-error "consteval-only variable" }
  constexpr N n3;
  
  template<typename T>
*************** struct X {
*** 25,31 ****
  };
  
  X<info> x1;  // { dg-error "consteval-only variable" }
! constinit X<info> x2{};
  constexpr X<info> x3{^^int};
  
  void
--- 25,31 ----
  };
  
  X<info> x1;  // { dg-error "consteval-only variable" }
! constinit X<info> x2{};  // { dg-error "consteval-only variable" }
  constexpr X<info> x3{^^int};
  
  void
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/reflect/init7.C gcc-16-20260215/gcc/testsuite/g++.dg/reflect/init7.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/reflect/init7.C	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/reflect/init7.C	Sun Feb 15 22:32:08 2026
*************** info r1 = ^^int;  // { dg-error "constev
*** 9,15 ****
  const info r2 = ^^int;  // { dg-error "consteval-only variable .r2. not declared .constexpr. used outside a constant-evaluated context" }
  
  constexpr info r3 = ^^int;
! constinit info r4 = ^^int;
  const info *const p1 = &r3;  // { dg-error "consteval-only variable .p1. not declared .constexpr. used outside a constant-evaluated context" }
  info *p2;  // { dg-error "consteval-only variable .p2. not declared .constexpr. used outside a constant-evaluated context" }
  const info &q = r3;  // { dg-error "consteval-only variable .q. not declared .constexpr. used outside a constant-evaluated context" }
--- 9,15 ----
  const info r2 = ^^int;  // { dg-error "consteval-only variable .r2. not declared .constexpr. used outside a constant-evaluated context" }
  
  constexpr info r3 = ^^int;
! constinit info r4 = ^^int;  // { dg-error "consteval-only variable .r4. not declared .constexpr. used outside a constant-evaluated context" }
  const info *const p1 = &r3;  // { dg-error "consteval-only variable .p1. not declared .constexpr. used outside a constant-evaluated context" }
  info *p2;  // { dg-error "consteval-only variable .p2. not declared .constexpr. used outside a constant-evaluated context" }
  const info &q = r3;  // { dg-error "consteval-only variable .q. not declared .constexpr. used outside a constant-evaluated context" }
*************** g ()
*** 23,29 ****
    static info l4 = ^^int;  // { dg-error "consteval-only variable .l4. not declared .constexpr. used outside a constant-evaluated context" }
    static const info l5 = ^^int;  // { dg-error "consteval-only variable .l5. not declared .constexpr. used outside a constant-evaluated context" }
    static constexpr info l6 = ^^int;
!   static constinit info l7 = ^^int;
  }
  
  consteval void
--- 23,29 ----
    static info l4 = ^^int;  // { dg-error "consteval-only variable .l4. not declared .constexpr. used outside a constant-evaluated context" }
    static const info l5 = ^^int;  // { dg-error "consteval-only variable .l5. not declared .constexpr. used outside a constant-evaluated context" }
    static constexpr info l6 = ^^int;
!   static constinit info l7 = ^^int;  // { dg-error "consteval-only variable .l7. not declared .constexpr. used outside a constant-evaluated context" }
  }
  
  consteval void
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/reflect/member1.C gcc-16-20260215/gcc/testsuite/g++.dg/reflect/member1.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/reflect/member1.C	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/reflect/member1.C	Sun Feb 15 22:32:09 2026
*************** f ()
*** 55,63 ****
    sp->template [: ^^S::tfn :](42);
    s.template [: ^^S::tfn :]<int>(42);
    sp->template [: ^^S::tfn :]<int>(42);
!   s.[: ^^S::var :]<int> = 1; // { dg-error "reflection .var<int>. not usable in a splice expression with template arguments" }
    s.template [: ^^S::var :]<int> = 1;
!   sp->[: ^^S::var :]<int> = 1; // { dg-error "reflection .var<int>. not usable in a splice expression with template arguments" }
    sp->template [: ^^S::var :]<int> = 1;
    s.[: ^^S::b :].[: ^^B::a :].val;
    sp->[: ^^S::b :].[: ^^B::a :].val;
--- 55,63 ----
    sp->template [: ^^S::tfn :](42);
    s.template [: ^^S::tfn :]<int>(42);
    sp->template [: ^^S::tfn :]<int>(42);
!   s.[: ^^S::var :]<int> = 1; // { dg-error "expected 'template' keyword before dependent template name" }
    s.template [: ^^S::var :]<int> = 1;
!   sp->[: ^^S::var :]<int> = 1; // { dg-error "expected 'template' keyword before dependent template name" }
    sp->template [: ^^S::var :]<int> = 1;
    s.[: ^^S::b :].[: ^^B::a :].val;
    sp->[: ^^S::b :].[: ^^B::a :].val;
*************** f ()
*** 74,82 ****
    cp->template [: ^^C<int>::tfn :](42);
    c.template [: ^^C<int>::tfn :]<int>(42);
    cp->template [: ^^C<int>::tfn :]<int>(42);
!   c.[: ^^C<int>::var :]<int> = 1; // { dg-error "reflection .var<int>. not usable in a splice expression with template arguments" }
    c.template [: ^^C<int>::var :]<int> = 1;
!   cp->[: ^^C<int>::var :]<int> = 1; // { dg-error "reflection .var<int>. not usable in a splice expression with template arguments" }
    cp->template [: ^^C<int>::var :]<int> = 1;
    c.[: ^^C<int>::b :].[: ^^B::a :].val;
    cp->[: ^^C<int>::b :].[: ^^B::a :].val;
--- 74,82 ----
    cp->template [: ^^C<int>::tfn :](42);
    c.template [: ^^C<int>::tfn :]<int>(42);
    cp->template [: ^^C<int>::tfn :]<int>(42);
!   c.[: ^^C<int>::var :]<int> = 1; // { dg-error "expected 'template' keyword before dependent template name" }
    c.template [: ^^C<int>::var :]<int> = 1;
!   cp->[: ^^C<int>::var :]<int> = 1; // { dg-error "expected 'template' keyword before dependent template name" }
    cp->template [: ^^C<int>::var :]<int> = 1;
    c.[: ^^C<int>::b :].[: ^^B::a :].val;
    cp->[: ^^C<int>::b :].[: ^^B::a :].val;
*************** f ()
*** 92,99 ****
    sp.[: ^^S::x :] = 2; // { dg-error "which is of pointer type" }
    c.[: ^^C<char>::x :] = 1; // { dg-error "is not a base of" }
    cp->[: ^^C<char>::x :] = 1; // { dg-error "is not a base of" }
!   s.template [: ^^S::N :].t;  // { dg-error "reflection .S::N. not usable in a template splice" }
    S::template [: ^^S::N<int> :] e1;  // { dg-error "expected unqualified-id" }
    C<int>::template [: ^^S::N<int> :] e2;  // { dg-error "expected unqualified-id" }
!   s.template [: ^^S::var<int> :] = 1;  // { dg-error "reflection .S::var<int>. not usable in a template splice" }
  }
--- 92,101 ----
    sp.[: ^^S::x :] = 2; // { dg-error "which is of pointer type" }
    c.[: ^^C<char>::x :] = 1; // { dg-error "is not a base of" }
    cp->[: ^^C<char>::x :] = 1; // { dg-error "is not a base of" }
!   s.template [: ^^S::N :].t;  // { dg-error "expected a reflection of a function template" }
!   // { dg-message "but .S::N. is a class template" "" { target *-*-* } 20 }
    S::template [: ^^S::N<int> :] e1;  // { dg-error "expected unqualified-id" }
    C<int>::template [: ^^S::N<int> :] e2;  // { dg-error "expected unqualified-id" }
!   s.template [: ^^S::var<int> :] = 1;  // { dg-error "expected a reflection of a function template" }
!   // { dg-message "but .S::var<int>. is a variable" "" { target *-*-* } 22 }
  }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/reflect/ns2.C gcc-16-20260215/gcc/testsuite/g++.dg/reflect/ns2.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/reflect/ns2.C	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/reflect/ns2.C	Sun Feb 15 22:32:09 2026
***************
*** 3,21 ****
  // Test reflections on namespaces.  Invalid stuff.
  
  void foo (int);
  
  namespace N {
  }
  
  void
! f1 ()
  {
    constexpr auto r = ^^::;
!   [: r :] foo (0); // { dg-error "expected" }
  
    constexpr auto q = ^^int;
!   [: q :]::T x; // { dg-error "reflection not usable in a splice scope|expected" }
!   // { dg-message ".int. is not a class, namespace, or enumeration" "" { target *-*-* } .-1 }
  
    constexpr auto x = ^^N::X;  // { dg-error ".N::X. has not been declared" }
  }
--- 3,45 ----
  // Test reflections on namespaces.  Invalid stuff.
  
  void foo (int);
+ int i;
+ enum E { EE };
+ template<typename>
+ struct S { int i, j, k;  };
+ template<typename>
+ void bar ();
  
  namespace N {
  }
  
  void
! f1 (int p)
  {
    constexpr auto r = ^^::;
!   [: r :] foo (0); // { dg-error "expected a reflection of an expression" }
!   // { dg-message "but .::. is a namespace" "" { target *-*-* } 0 }
  
    constexpr auto q = ^^int;
!   [: q :]::T x; // { dg-error "expected a reflection of a class, namespace, or enumeration|expected" }
!   // { dg-message "but .int. is a type" "" { target *-*-* } .-1 }
!   [: ^^foo :]::X; // { dg-error "expected a reflection of a class, namespace, or enumeration" }
!   // { dg-message "but .foo. is a function" "" { target *-*-* } 5 }
!   [: ^^EE :]::Y;  // { dg-error "expected a reflection of a class, namespace, or enumeration" }
!   // { dg-message "but .EE. is an enumerator" "" { target *-*-* } 7 }
!   [: ^^S :]::Z;	  // { dg-error "expected a reflection of a class, namespace, or enumeration" }
!   // { dg-message "but .S. is a class template" "" { target *-*-* } 9 }
!   [: ^^bar :]::W; // { dg-error "expected a reflection of a class, namespace, or enumeration" }
!   // { dg-message "but .bar. is a function template" "" { target *-*-* } 11 }
!   [: ^^i :]::U;	  // { dg-error "expected a reflection of a class, namespace, or enumeration" }
!   // { dg-message "but .i. is a variable" "" { target *-*-* } 6 }
!   [: ^^p :]::V;	  // { dg-error "expected a reflection of a class, namespace, or enumeration" }
!   // { dg-message "but .p. is a parameter" "" { target *-*-* } 17 }
!   auto [a, b, c] = S<int>{1, 2, 3};
!   [: ^^a :]::G;  // { dg-error "expected a reflection of a class, namespace, or enumeration" }
!   // { dg-message "but .a. is a structured binding" "" { target *-*-* } 38 }
!   [: ^^S<int>::i :]::H;	// { dg-error "expected a reflection of a class, namespace, or enumeration" }
!   // { dg-message "but .S<int>::i. is a data member" "" { target *-*-* } 9 }
  
    constexpr auto x = ^^N::X;  // { dg-error ".N::X. has not been declared" }
  }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/reflect/p2996-12.C gcc-16-20260215/gcc/testsuite/g++.dg/reflect/p2996-12.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/reflect/p2996-12.C	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/reflect/p2996-12.C	Sun Feb 15 22:32:09 2026
*************** using alias = [:^^TCls:]<([:^^v:])>;
*** 15,21 ****
  static_assert(alias::s == 2);
  
  // error: < means less than
! auto o1 = [:^^TCls:]<([:^^v:])>();  // { dg-error "reflection .TCls<1>. not usable" }
  // OK, o2 is an object of type TCls<1>
  auto o2 = typename [:^^TCls:]<([:^^v:])>();
  
--- 15,22 ----
  static_assert(alias::s == 2);
  
  // error: < means less than
! auto o1 = [:^^TCls:]<([:^^v:])>();  // { dg-error "expected a reflection of an expression" }
! // { dg-message "but .TCls<1>. is a type" "" { target *-*-* } 8 }
  // OK, o2 is an object of type TCls<1>
  auto o2 = typename [:^^TCls:]<([:^^v:])>();
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/reflect/pr124012.C gcc-16-20260215/gcc/testsuite/g++.dg/reflect/pr124012.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/reflect/pr124012.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/g++.dg/reflect/pr124012.C	Sun Feb 15 22:32:09 2026
***************
*** 0 ****
--- 1,44 ----
+ // PR c++/124012
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ void foo (char);
+ void corge (const char *);
+ struct A { char a; decltype (^^::) b; };
+ 
+ void
+ bar ()
+ {
+   constexpr auto [a, b] = A {};
+   foo (a);			// { dg-error "consteval-only expressions are only allowed in a constant-evaluated context" }
+ }
+ 
+ void
+ baz ()
+ {
+   constexpr auto a = A {};
+   foo (a.a);			// { dg-error "consteval-only expressions are only allowed in a constant-evaluated context" }
+ }
+ 
+ void
+ qux ()
+ {
+   constexpr auto a = A {};
+   corge (&a.a);			// { dg-error "consteval-only expressions are only allowed in a constant-evaluated context" }
+ }
+ 
+ void
+ garply ()
+ {
+   constexpr auto [a, b] = A {};
+   corge (&a);			// { dg-error "consteval-only expressions are only allowed in a constant-evaluated context" }
+ }
+ 
+ void
+ fred ()
+ {
+   constexpr auto [a, b] = A {};
+   constexpr auto c = a;
+   foo (c);
+   corge (&c);
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/reflect/splice10.C gcc-16-20260215/gcc/testsuite/g++.dg/reflect/splice10.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/reflect/splice10.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/g++.dg/reflect/splice10.C	Sun Feb 15 22:32:09 2026
***************
*** 0 ****
--- 1,28 ----
+ // PR c++/123660
+ // PR c++/123661
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <meta>
+ 
+ struct s {
+   int get_z(this s) { return 4; }
+   static int get_y() { return 4; }
+   int get_x() { return 3; }
+   int xx;
+   static int xxx;
+ };
+ 
+ int s::xxx = 5;
+ 
+ template<typename T, decltype(0uz) I>
+ constexpr auto test() {
+   constexpr auto ctx = std::meta::access_context::current();
+   return &[:members_of(^^T, ctx)[I]:];
+ }
+ 
+ static_assert(test<s, 0uz>() == &s::get_z);
+ static_assert(test<s, 1uz>() == &s::get_y);
+ static_assert(test<s, 2uz>() == &s::get_x);
+ static_assert(test<s, 3uz>() == &s::xx);
+ static_assert(test<s, 4uz>() == &s::xxx);
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/reflect/splice11.C gcc-16-20260215/gcc/testsuite/g++.dg/reflect/splice11.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/reflect/splice11.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/g++.dg/reflect/splice11.C	Sun Feb 15 22:32:09 2026
***************
*** 0 ****
--- 1,29 ----
+ // PR c++/123660
+ // PR c++/123661
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <meta>
+ 
+ void f() {}
+ struct s {
+   int get_z(this s) { return 4; }
+   static int get_y() { return 4; }
+   int get_x() { return 3; }
+   int xx;
+   static int xxx;
+ };
+ 
+ int s::xxx = 5;
+ 
+ template<std::meta::info refl_expr>
+ constexpr auto test() {
+   return &[:refl_expr:];
+ }
+ 
+ static_assert(test<^^s::get_z>() == &s::get_z);
+ static_assert(test<^^s::get_y>() == &s::get_y);
+ static_assert(test<^^s::get_x>() == &s::get_x);
+ static_assert(test<^^s::xx>() == &s::xx);
+ static_assert(test<^^s::xxx>() == &s::xxx);
+ static_assert(test<^^f>() == &f);
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/reflect/splice5.C gcc-16-20260215/gcc/testsuite/g++.dg/reflect/splice5.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/reflect/splice5.C	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/reflect/splice5.C	Sun Feb 15 22:32:09 2026
*************** struct S {
*** 13,22 ****
  void
  baz (S &s)
  {
!   template [: ^^foo :] (0);			// { dg-error "reflection 'foo' not usable in a template splice" }
!   template [: ^^bar :] (0);			// { dg-message "only function templates are allowed here" "" { target *-*-* } .-1 }
!   s.template [: ^^S::foo :] (0);		// { dg-error "reflection 'S::foo' not usable in a template splice" }
!   s.template [: ^^S::bar :] (0);		// { dg-message "only function templates are allowed here" "" { target *-*-* } .-1 }
  }
  
  template <int N>
--- 13,24 ----
  void
  baz (S &s)
  {
!   template [: ^^foo :] (0);			// { dg-error "expected a reflection of a function template" }
!   // { dg-message "but .foo. is a function" "" { target *-*-* } 4 }
!   template [: ^^bar :] (0);
!   s.template [: ^^S::foo :] (0);		// { dg-error "expected a reflection of a function template" }
!   // { dg-message "but .S::foo. is a function" "" { target *-*-* } 8 }
!   s.template [: ^^S::bar :] (0);
  }
  
  template <int N>
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/reflect/type1.C gcc-16-20260215/gcc/testsuite/g++.dg/reflect/type1.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/reflect/type1.C	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/reflect/type1.C	Sun Feb 15 22:32:09 2026
*************** constexpr info g7 = ^^T;
*** 21,31 ****
  constexpr info g8 = ^^decltype(^^int);
  constexpr info g9 = ^^void() const & noexcept;
  
! [: g1 :] u1;  // { dg-error "expected unqualified-id" }
  typename [: g1 :] u2;
  
  namespace N {
!   [: g1 :] nu1;  // { dg-error "expected unqualified-id" }
    typename [: g1 :] nu2;
  }
  
--- 21,31 ----
  constexpr info g8 = ^^decltype(^^int);
  constexpr info g9 = ^^void() const & noexcept;
  
! [: g1 :] u1;
  typename [: g1 :] u2;
  
  namespace N {
!   [: g1 :] nu1;
    typename [: g1 :] nu2;
  }
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/torture/pr112400.C gcc-16-20260215/gcc/testsuite/g++.dg/torture/pr112400.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/torture/pr112400.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/g++.dg/torture/pr112400.C	Sun Feb 15 22:32:09 2026
***************
*** 0 ****
--- 1,114 ----
+ /* { dg-do compile } */
+ /* { dg-options "-Wno-return-type" } */
+ 
+ typedef struct a *b;
+ template <typename c, typename d> c e(d);
+ enum f { g, h, i };
+ enum j { k, l, m, aa };
+ struct a {
+   f ab;
+ };
+ struct af {
+ } n;
+ struct ah;
+ class al;
+ b q;
+ void r(a *);
+ struct o : af {};
+ struct p : o {};
+ struct ag : p {};
+ j s(af *);
+ b t();
+ f fn4();
+ unsigned fn5(ag *);
+ b u(ag *, unsigned);
+ af *v(b(b), b);
+ static bool w(al *, af *, b(b), b aw, b *ax, j) {
+   r(ax[2]);
+   if (aw)
+     return false;
+ }
+ ag *ay;
+ void x(al *at, b as(b), b bb, b bc) {
+   switch (bb->ab)
+   case i:
+     if (af *bd = v(as, bb))
+       if (e<ah *>(bd))
+ 	switch (fn4())
+ 	case h: {
+ 	  b be;
+ 	  switch (be->ab)
+ 	  case i:
+ 	    if (af *bf = v(as, be))
+ 	      if (e<ah *>(bf))
+ 		if (ag *bg = e<ag *>(bf))
+ 		  switch (s(bg)) {
+ 		  case k:
+ 		    if (fn5(bg) == 1) {
+ 		      b bh = u(bg, 0);
+ 		      bh = t();
+ 		      switch (bc->ab)
+ 		      case g: {
+ 			b ax[]{be, bh, bc};
+ 			w(at, &n, as, q, ax, k);
+ 		      }
+ 		    }
+ 		    break;
+ 		  case l:
+ 		    if (fn5(bg) == 1) {
+ 		      b bh = u(bg, 0);
+ 		      bh = t();
+ 		      switch (bc->ab)
+ 		      case g: {
+ 			b ax[]{be, bh, bc};
+ 			w(at, &n, as, q, ax, l);
+ 		      }
+ 		    }
+ 		  }
+ 	}
+ 	  else switch (s(ay)) {
+ 	  case k:
+ 	    if (fn5(ay) == 1) {
+ 	      b be = u(ay, 0);
+ 	      be = t();
+ 	      switch (bc->ab)
+ 	      case g: {
+ 		b ax[]{bb, be, bc};
+ 		w(at, &n, as, q, ax, k);
+ 	      }
+ 	    }
+ 	    break;
+ 	  case l:
+ 	    if (fn5(ay) == 1) {
+ 	      b be = u(ay, 0);
+ 	      be = t();
+ 	      switch (bc->ab)
+ 	      case g: {
+ 		b ax[]{bb, be, bc};
+ 		w(at, &n, as, q, ax, l);
+ 	      }
+ 	    }
+ 	    break;
+ 	  case m:
+ 	    if (fn5(ay) == 1) {
+ 	      b be = u(ay, 0);
+ 	      be = t();
+ 	      switch (bc->ab)
+ 	      case g: {
+ 		b ax[]{bb, be, bc};
+ 		w(at, &n, as, q, ax, m);
+ 	      }
+ 	    }
+ 	    break;
+ 	  case aa:
+ 	    if (fn5(ay) == 1) {
+ 	      b be = u(ay, 0);
+ 	      be = t();
+ 	      switch (bc->ab)
+ 	      case g: {
+ 		b ax[]{bb, be, bc};
+ 		w(at, &n, as, q, ax, aa);
+ 	      }
+ 	    }
+ 	  }
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/torture/pr117217-1.C gcc-16-20260215/gcc/testsuite/g++.dg/torture/pr117217-1.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/torture/pr117217-1.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/g++.dg/torture/pr117217-1.C	Sun Feb 15 22:32:09 2026
***************
*** 0 ****
--- 1,24 ----
+ struct [[gnu::packed]] A {
+   int i;
+   bool b;
+ };
+ 
+ struct [[gnu::packed]] B {
+   int i;
+   bool b : 1;
+ };
+ 
+ struct E {
+   union Data {
+     A a;
+     B b;
+     Data(const B &b) : b(b) {}
+   } data;
+ };
+ 
+ extern B copy;
+ 
+ int main() {
+   E e{{B()}};
+   copy = e.data.b; // NEEDED FOR ICE
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/torture/pr117217-2.C gcc-16-20260215/gcc/testsuite/g++.dg/torture/pr117217-2.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/torture/pr117217-2.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/g++.dg/torture/pr117217-2.C	Sun Feb 15 22:32:09 2026
***************
*** 0 ****
--- 1,24 ----
+ struct a {
+   int b;
+   long c;
+   long d;
+   bool f;
+ };
+ struct g {
+   int b;
+   long c;
+   long d;
+   bool : 1;
+ } h;
+ struct l {
+   union i {
+     a j;
+     g k;
+     i(g m) : k(m) {}
+   } data;
+ };
+ int main() {
+   l e{g()};
+   h = e.data.k;
+   return 0;
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/torture/pr124086-1.C gcc-16-20260215/gcc/testsuite/g++.dg/torture/pr124086-1.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/torture/pr124086-1.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/g++.dg/torture/pr124086-1.C	Sun Feb 15 22:32:09 2026
***************
*** 0 ****
--- 1,14 ----
+ // { dg-do compile { target lp64 } }
+ 
+ // PR tree-optimization/124086
+ 
+ int j;
+ int *v;
+ void
+ foo()
+ {
+   int t;
+   v = &t;
+   auto t1 = __builtin_bit_cast(_Complex int, v);
+   j = __real__ t1;
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/vect/param-max-aliased-pr26197.cc gcc-16-20260215/gcc/testsuite/g++.dg/vect/param-max-aliased-pr26197.cc
*** gcc-16-20260208/gcc/testsuite/g++.dg/vect/param-max-aliased-pr26197.cc	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/vect/param-max-aliased-pr26197.cc	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- /* { dg-do compile } */
- 
- void g(const void*);
- struct B
- {
-   int* x[2];
-   int *p;
-   B()
-   {
-      for (int** p=x; p<x+4; ++p)
-       *p = 0;
-   }
-   ~B()
-    {
-       g(p);
-    }
- };
- void bar()
- {
-   const B &b = B();
-   g(&b);
- }
- 
--- 0 ----
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/vect/pr26197.cc gcc-16-20260215/gcc/testsuite/g++.dg/vect/pr26197.cc
*** gcc-16-20260208/gcc/testsuite/g++.dg/vect/pr26197.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/g++.dg/vect/pr26197.cc	Sun Feb 15 22:32:09 2026
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do compile } */
+ 
+ void g(const void*);
+ struct B
+ {
+   int* x[4];
+   int *p;
+   B()
+   {
+      for (int** p=x; p<x+4; ++p)
+       *p = 0;
+   }
+   ~B()
+    {
+       g(p);
+    }
+ };
+ void bar()
+ {
+   const B &b = B();
+   g(&b);
+ }
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/vect/vect-pr107690.cc gcc-16-20260215/gcc/testsuite/g++.dg/vect/vect-pr107690.cc
*** gcc-16-20260208/gcc/testsuite/g++.dg/vect/vect-pr107690.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/g++.dg/vect/vect-pr107690.cc	Sun Feb 15 22:32:09 2026
***************
*** 0 ****
--- 1,16 ----
+ // { dg-do compile }
+ // { dg-require-effective-target vect_int }
+ // { dg-additional-options "-std=gnu++20" }
+ 
+ #include <algorithm>
+ #include <array>
+ #include <ranges>
+ 
+ std::array<int, 16> foo(std::array<int, 16> u, std::array<int, 16> const &v)
+ {
+   std::ranges::transform(u, v, u.begin(), std::plus<int>());
+   return u;
+ }
+ 
+ // { dg-final { scan-tree-dump "optimized: loop vectorized" "vect" } }
+ // { dg-final { scan-tree-dump-not "Loop being analyzed as uncounted" "vect" } }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/vect/vect.exp gcc-16-20260215/gcc/testsuite/g++.dg/vect/vect.exp
*** gcc-16-20260208/gcc/testsuite/g++.dg/vect/vect.exp	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/vect/vect.exp	Sun Feb 15 22:32:09 2026
*************** et-dg-runtest g++-dg-runtest [lsort [glo
*** 72,83 ****
  global SAVED_DEFAULT_VECTCFLAGS
  set SAVED_DEFAULT_VECTCFLAGS $DEFAULT_VECTCFLAGS
      
- # --param max-aliased-vops=0
- set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
- lappend DEFAULT_VECTCFLAGS "--param max-aliased-vops=0"
- et-dg-runtest g++-dg-runtest [lsort [glob -nocomplain \
- 	$srcdir/$subdir/param-max-aliased*.\[cS\]]] "" $DEFAULT_VECTCFLAGS
- 
  # Clean up.
  set dg-do-what-default ${save-dg-do-what-default} 
  
--- 72,77 ----
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/warn/Wunused-value-1.C gcc-16-20260215/gcc/testsuite/g++.dg/warn/Wunused-value-1.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/warn/Wunused-value-1.C	Sun Feb  8 22:32:09 2026
--- gcc-16-20260215/gcc/testsuite/g++.dg/warn/Wunused-value-1.C	Sun Feb 15 22:32:09 2026
***************
*** 2,12 ****
  // { dg-do compile { target c++11 } }
  // { dg-options "-Wunused" }
  
  void
  g ()
  {
!   (long) new int{};
!   long(new int{});
!   (long) new int();
!   long(new int());
  }
--- 2,14 ----
  // { dg-do compile { target c++11 } }
  // { dg-options "-Wunused" }
  
+ typedef __INTPTR_TYPE__ intptr_t;
+ 
  void
  g ()
  {
!   (intptr_t) new int{};
!   intptr_t(new int{});
!   (intptr_t) new int();
!   intptr_t(new int());
  }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/g++.dg/warn/uninit-pr95825-1.C gcc-16-20260215/gcc/testsuite/g++.dg/warn/uninit-pr95825-1.C
*** gcc-16-20260208/gcc/testsuite/g++.dg/warn/uninit-pr95825-1.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/g++.dg/warn/uninit-pr95825-1.C	Sun Feb 15 22:32:09 2026
***************
*** 0 ****
--- 1,23 ----
+ // { dg-do compile }
+ // { dg-options "-O1 -fsanitize=address" }
+ // { dg-skip-if "no address sanitizer" { no_fsanitize_address } }
+ 
+ // PR tree-optimization/95825
+ 
+ struct s1
+ {
+   char init;
+   int value;
+ };
+ 
+ static struct s1 f()
+ {
+   struct s1 t;
+   t.init = 0;
+   return t; /* { dg-bogus "is used uninitialized" } */
+ }
+ 
+ struct s1 g()
+ {
+   return f();
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.c-torture/compile/pr116600.c gcc-16-20260215/gcc/testsuite/gcc.c-torture/compile/pr116600.c
*** gcc-16-20260208/gcc/testsuite/gcc.c-torture/compile/pr116600.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.c-torture/compile/pr116600.c	Sun Feb 15 22:32:09 2026
***************
*** 0 ****
--- 1,24 ----
+ /* PR rtl-optimization/116600 */
+ 
+ int a, b;
+ int foo ();
+ 
+ int
+ bar ()
+ {
+   int c = ({ int d = 0, e = foo ();
+ 	     b = __builtin_expect (e, 1); if (b) ; else d = 4; d; });
+   if (c)
+     return c;
+   foo ();
+   if (a)
+     __asm__ goto ("" : : : : l);
+ l:
+   return 0;
+ }
+ 
+ void
+ baz ()
+ {
+   bar ();
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.c-torture/compile/pr123386.c gcc-16-20260215/gcc/testsuite/gcc.c-torture/compile/pr123386.c
*** gcc-16-20260208/gcc/testsuite/gcc.c-torture/compile/pr123386.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.c-torture/compile/pr123386.c	Sun Feb 15 22:32:09 2026
***************
*** 0 ****
--- 1,25 ----
+ /* PR middle-end/123386 */
+ 
+ char *a;
+ int b;
+ 
+ void
+ foo (char *)
+ {
+   if (b)
+     __builtin_abort ();
+ }
+ 
+ void
+ bar (char *c)
+ {
+   __asm__ goto ("" : : : : d);
+   foo (a);
+   __asm__ goto ("" : : : : d);
+   if (c)
+     bar (a);
+   __asm__ goto ("" : : : : d);
+ d:
+   if (b)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/analyzer/doom-d_main-IdentifyVersion.c gcc-16-20260215/gcc/testsuite/gcc.dg/analyzer/doom-d_main-IdentifyVersion.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/analyzer/doom-d_main-IdentifyVersion.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/analyzer/doom-d_main-IdentifyVersion.c	Sun Feb 15 22:32:09 2026
*************** IdentifyVersion(void)
*** 220,272 ****
    if (!access(doom2wad, 4)) {
      gamemode = commercial;
      D_AddFile(doom2wad);
!     return; /* { dg-warning "leak of 'doom2wad'" } */
!     /* { dg-warning "leak of 'doomuwad'"    "leak" { target *-*-* } .-1 } */
!     /* { dg-warning "leak of 'doomwad'"     "leak" { target *-*-* } .-2 } */
!     /* { dg-warning "leak of 'doom1wad'"    "leak" { target *-*-* } .-3 } */
!     /* { dg-warning "leak of 'plutoniawad'" "leak" { target *-*-* } .-4 } */
!     /* { dg-warning "leak of 'tntwad'"      "leak" { target *-*-* } .-5 } */
!     /* { dg-warning "leak of 'doom2fwad'"   "leak" { target *-*-* } .-6 } */
    }
  
    if (!access(plutoniawad, 4)) {
      gamemode = commercial;
      D_AddFile(plutoniawad);
!     return; /* { dg-warning "leak of 'doom2wad'" } */
!     /* { dg-warning "leak of 'doomuwad'"    "leak" { target *-*-* } .-1 } */
!     /* { dg-warning "leak of 'doomwad'"     "leak" { target *-*-* } .-2 } */
!     /* { dg-warning "leak of 'doom1wad'"    "leak" { target *-*-* } .-3 } */
!     /* { dg-warning "leak of 'plutoniawad'" "leak" { target *-*-* } .-4 } */
!     /* { dg-warning "leak of 'tntwad'"      "leak" { target *-*-* } .-5 } */
!     /* { dg-warning "leak of 'doom2fwad'"   "leak" { target *-*-* } .-6 } */
    }
  
    if (!access(tntwad, 4)) {
      gamemode = commercial;
      D_AddFile(tntwad);
!     return; /* { dg-warning "leak of 'doom2wad'" } */
!     /* { dg-warning "leak of 'doomuwad'"    "leak" { target *-*-* } .-1 } */
!     /* { dg-warning "leak of 'doomwad'"     "leak" { target *-*-* } .-2 } */
!     /* { dg-warning "leak of 'doom1wad'"    "leak" { target *-*-* } .-3 } */
!     /* { dg-warning "leak of 'plutoniawad'" "leak" { target *-*-* } .-4 } */
!     /* { dg-warning "leak of 'tntwad'"      "leak" { target *-*-* } .-5 } */
!     /* { dg-warning "leak of 'doom2fwad'"   "leak" { target *-*-* } .-6 } */
    }
  
    if (!access(doomuwad, 4)) {
      gamemode = retail;
      D_AddFile(doomuwad);
!     return; /* { dg-warning "leak of 'doom2wad'" } */
!     /* { dg-warning "leak of 'doomuwad'"    "leak" { target *-*-* } .-1 } */
!     /* { dg-warning "leak of 'doomwad'"     "leak" { target *-*-* } .-2 } */
!     /* { dg-warning "leak of 'doom1wad'"    "leak" { target *-*-* } .-3 } */
!     /* { dg-warning "leak of 'plutoniawad'" "leak" { target *-*-* } .-4 } */
!     /* { dg-warning "leak of 'tntwad'"      "leak" { target *-*-* } .-5 } */
!     /* { dg-warning "leak of 'doom2fwad'"   "leak" { target *-*-* } .-6 } */
    }
  
    /* [...snip...] */
  
    printf("Game mode indeterminate.\n");
    gamemode = indetermined;
! }
--- 220,278 ----
    if (!access(doom2wad, 4)) {
      gamemode = commercial;
      D_AddFile(doom2wad);
!     return; /* { dg-warning "leak of 'doom2wad'" "" { xfail *-*-* } } */
!     /* { dg-warning "leak of 'doomuwad'"    "leak" { xfail *-*-* } .-1 } */
!     /* { dg-warning "leak of 'doomwad'"     "leak" { xfail *-*-* } .-2 } */
!     /* { dg-warning "leak of 'doom1wad'"    "leak" { xfail *-*-* } .-3 } */
!     /* { dg-warning "leak of 'plutoniawad'" "leak" { xfail *-*-* } .-4 } */
!     /* { dg-warning "leak of 'tntwad'"      "leak" { xfail *-*-* } .-5 } */
!     /* { dg-warning "leak of 'doom2fwad'"   "leak" { xfail *-*-* } .-6 } */
    }
  
    if (!access(plutoniawad, 4)) {
      gamemode = commercial;
      D_AddFile(plutoniawad);
!     return; /* { dg-warning "leak of 'doom2wad'" "" { xfail *-*-* } } */
!     /* { dg-warning "leak of 'doomuwad'"    "leak" { xfail *-*-* } .-1 } */
!     /* { dg-warning "leak of 'doomwad'"     "leak" { xfail *-*-* } .-2 } */
!     /* { dg-warning "leak of 'doom1wad'"    "leak" { xfail *-*-* } .-3 } */
!     /* { dg-warning "leak of 'plutoniawad'" "leak" { xfail *-*-* } .-4 } */
!     /* { dg-warning "leak of 'tntwad'"      "leak" { xfail *-*-* } .-5 } */
!     /* { dg-warning "leak of 'doom2fwad'"   "leak" { xfail *-*-* } .-6 } */
    }
  
    if (!access(tntwad, 4)) {
      gamemode = commercial;
      D_AddFile(tntwad);
!     return; /* { dg-warning "leak of 'doom2wad'"  "" { xfail *-*-* } } */
!     /* { dg-warning "leak of 'doomuwad'"    "leak" { xfail *-*-* } .-1 } */
!     /* { dg-warning "leak of 'doomwad'"     "leak" { xfail *-*-* } .-2 } */
!     /* { dg-warning "leak of 'doom1wad'"    "leak" { xfail *-*-* } .-3 } */
!     /* { dg-warning "leak of 'plutoniawad'" "leak" { xfail *-*-* } .-4 } */
!     /* { dg-warning "leak of 'tntwad'"      "leak" { xfail *-*-* } .-5 } */
!     /* { dg-warning "leak of 'doom2fwad'"   "leak" { xfail *-*-* } .-6 } */
    }
  
    if (!access(doomuwad, 4)) {
      gamemode = retail;
      D_AddFile(doomuwad);
!     return; /* { dg-warning "leak of 'doom2wad'"  "" { xfail *-*-* } } */
!     /* { dg-warning "leak of 'doomuwad'"    "leak" { xfail *-*-* } .-1 } */
!     /* { dg-warning "leak of 'doomwad'"     "leak" { xfail *-*-* } .-2 } */
!     /* { dg-warning "leak of 'doom1wad'"    "leak" { xfail *-*-* } .-3 } */
!     /* { dg-warning "leak of 'plutoniawad'" "leak" { xfail *-*-* } .-4 } */
!     /* { dg-warning "leak of 'tntwad'"      "leak" { xfail *-*-* } .-5 } */
!     /* { dg-warning "leak of 'doom2fwad'"   "leak" { xfail *-*-* } .-6 } */
    }
  
    /* [...snip...] */
  
    printf("Game mode indeterminate.\n");
    gamemode = indetermined;
! } /* { dg-warning "leak of 'doom2wad'" } */
! /* { dg-warning "leak of 'doomuwad'"    "leak" { target *-*-* } .-1 } */
! /* { dg-warning "leak of 'doomwad'"     "leak" { target *-*-* } .-2 } */
! /* { dg-warning "leak of 'doom1wad'"    "leak" { target *-*-* } .-3 } */
! /* { dg-warning "leak of 'plutoniawad'" "leak" { target *-*-* } .-4 } */
! /* { dg-warning "leak of 'tntwad'"      "leak" { target *-*-* } .-5 } */
! /* { dg-warning "leak of 'doom2fwad'"   "leak" { target *-*-* } .-6 } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/analyzer/ice-pr113496.c gcc-16-20260215/gcc/testsuite/gcc.dg/analyzer/ice-pr113496.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/analyzer/ice-pr113496.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/analyzer/ice-pr113496.c	Sun Feb 15 22:32:09 2026
***************
*** 0 ****
--- 1,21 ----
+ /* { dg-additional-options "-fdump-analyzer" } */
+ 
+ enum { PIPE_SWIZZLE_X, PIPE_SWIZZLE_Z, PIPE_SWIZZLE_W };
+ enum { UTIL_FORMAT_COLORSPACE_YUV, UTIL_FORMAT_COLORSPACE_ZS } colorspace;
+ int util_format_colormask_descutil_format_colormask_colormask,
+     util_format_get_component_bits_component,
+     util_format_get_component_bits_desc_0_3_0;
+ void util_format_colormask_descutil_format_colormask() {
+   switch (colorspace) {
+   case UTIL_FORMAT_COLORSPACE_YUV:
+     util_format_colormask_descutil_format_colormask_colormask = 0;
+     for (;;)
+     case UTIL_FORMAT_COLORSPACE_ZS:; /* { dg-warning "infinite loop" } */
+   }
+ }
+ unsigned util_format_get_component_bits() {
+   switch (util_format_get_component_bits_component)
+   case PIPE_SWIZZLE_X:
+   case PIPE_SWIZZLE_W:
+     return util_format_get_component_bits_desc_0_3_0;
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/analyzer/ice-pr124055-1.c gcc-16-20260215/gcc/testsuite/gcc.dg/analyzer/ice-pr124055-1.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/analyzer/ice-pr124055-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/analyzer/ice-pr124055-1.c	Sun Feb 15 22:32:09 2026
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-additional-options "-O -fdump-analyzer -frounding-math" } */
+ 
+ void *p;
+ 
+ static inline void
+ bar(_Complex float f)
+ {
+   __builtin_strcpy(p, (void *)&f); /* { dg-warning "uninit" } */
+ }
+ 
+ void
+ foo()
+ {
+   bar(72057594037927934);
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/analyzer/ice-pr124055-2.c gcc-16-20260215/gcc/testsuite/gcc.dg/analyzer/ice-pr124055-2.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/analyzer/ice-pr124055-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/analyzer/ice-pr124055-2.c	Sun Feb 15 22:32:09 2026
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-additional-options "-O -fdump-analyzer -frounding-math" } */
+ 
+ void *p;
+ 
+ static inline void
+ bar(_Complex float f)
+ {
+   __builtin_strcpy(p, (void *)&f);
+ }
+ 
+ void
+ foo()
+ {
+   bar(0);
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/analyzer/null-deref-pr123981-1.c gcc-16-20260215/gcc/testsuite/gcc.dg/analyzer/null-deref-pr123981-1.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/analyzer/null-deref-pr123981-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/analyzer/null-deref-pr123981-1.c	Sun Feb 15 22:32:09 2026
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile { target x86_64-*-* } } */
+ /* { dg-additional-options "-mfsgsbase" } */
+ 
+ #include <immintrin.h>
+ #define getgs() ((int __seg_gs *)0)
+ 
+ int main()
+ {
+   static int gsval = 42;
+   _writegsbase_u64((unsigned long long)&gsval);
+   return *getgs(); /* { dg-bogus "-Wanalyzer-null-dereference" } */
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/analyzer/null-deref-pr123981-2.c gcc-16-20260215/gcc/testsuite/gcc.dg/analyzer/null-deref-pr123981-2.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/analyzer/null-deref-pr123981-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/analyzer/null-deref-pr123981-2.c	Sun Feb 15 22:32:09 2026
***************
*** 0 ****
--- 1,8 ----
+ /* { dg-do compile { target { i?86-*-* x86_64-*-* } } } */
+ 
+ #define getfs() ((int __seg_fs *)0)
+ 
+ int main()
+ {
+   return *getfs(); /* { dg-bogus "-Wanalyzer-null-dereference" } */
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/analyzer/torture/ice-pr111099.c gcc-16-20260215/gcc/testsuite/gcc.dg/analyzer/torture/ice-pr111099.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/analyzer/torture/ice-pr111099.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/analyzer/torture/ice-pr111099.c	Sun Feb 15 22:32:09 2026
***************
*** 0 ****
--- 1,17 ----
+ int
+ get_count_bits_in_reg(int bit_start, int bit_count, int i_reg)
+ {
+   int ret_count = 0;
+   int num_reg = 0;
+   int last_used_bit = (bit_start + bit_count - 1);
+   for (int num_bit = bit_start; num_bit <= last_used_bit; ++num_bit) {
+     ++ret_count;
+     if ((((num_bit + 1) % 32) == 0) || (num_bit == last_used_bit)) {
+       if (i_reg == num_reg++) {
+ 	return ret_count;
+       }
+       ret_count = 0;
+     }
+   }
+   return 0;
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/auto-init-uninit-17.c gcc-16-20260215/gcc/testsuite/gcc.dg/auto-init-uninit-17.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/auto-init-uninit-17.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/auto-init-uninit-17.c	Sun Feb 15 22:32:09 2026
***************
*** 2,15 ****
  /* { dg-options "-O -Wuninitialized -ftrivial-auto-var-init=zero" } */
  
  typedef _Complex float C;
! C foo(int cond)
  {
    C f;
    __imag__ f = 0;
    if (cond)
!     {
!       __real__ f = 1;
!       return f;
!     }
    return f;	/* { dg-warning "may be used" "unconditional" } */
  }
--- 2,12 ----
  /* { dg-options "-O -Wuninitialized -ftrivial-auto-var-init=zero" } */
  
  typedef _Complex float C;
! C foo(int cond, float r)
  {
    C f;
    __imag__ f = 0;
    if (cond)
!     __real__ f = r; /* No constant to avoid a CCP induced false negative. */
    return f;	/* { dg-warning "may be used" "unconditional" } */
  }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/complex-10.c gcc-16-20260215/gcc/testsuite/gcc.dg/complex-10.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/complex-10.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/complex-10.c	Sun Feb 15 22:32:09 2026
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ /* { dg-options "" } */
+ 
+ /* PR c/105555 */
+ 
+ struct C {
+   __complex int i;
+ };
+ struct C p[10];
+ int *foo1(void) {
+   return &__real(p->i);
+ }
+ 
+ int *foo2(void) {
+   return &__imag(p->i);
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/sarif-output/ice-pr124014.c gcc-16-20260215/gcc/testsuite/gcc.dg/sarif-output/ice-pr124014.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/sarif-output/ice-pr124014.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/sarif-output/ice-pr124014.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,4 ----
+ /* { dg-options "-fdiagnostics-add-output=sarif -fbranch-probabilities" } */
+ /* { dg-additional-options "-flto" { target lto } }  */
+ 
+ void main() {} /* { dg-warning "missing-profile" } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/torture/pr117567.c gcc-16-20260215/gcc/testsuite/gcc.dg/torture/pr117567.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/torture/pr117567.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/torture/pr117567.c	Sun Feb 15 22:32:10 2026
***************
*** 1,6 ****
  /* { dg-do compile } */
  /* { dg-require-effective-target int32plus } */
! /* { dg-additional-options "-fwrapv" } */
  
  extern signed char a[];
  long b;
--- 1,6 ----
  /* { dg-do compile } */
  /* { dg-require-effective-target int32plus } */
! /* { dg-additional-options "-fwrapv -w" } */
  
  extern signed char a[];
  long b;
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/torture/pr124062-1.c gcc-16-20260215/gcc/testsuite/gcc.dg/torture/pr124062-1.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/torture/pr124062-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/torture/pr124062-1.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ 
+ /* PR rtl-optimization/124062 */
+ 
+ void a(int);
+ double b;
+ void c(int d, int e) {
+   int f = e;
+   if (b < 0)
+     f += d;
+   a(f);
+   a(e);
+ }
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/torture/pr70935.c gcc-16-20260215/gcc/testsuite/gcc.dg/torture/pr70935.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/torture/pr70935.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/torture/pr70935.c	Sun Feb 15 22:32:10 2026
***************
*** 1,40 ****
! /* { dg-do compile } */
! /* { dg-options "-O3 -g" } */
  /* { dg-require-effective-target ptr32plus } */
! 
! int d0, sj, v0, rp, zi;
! 
! void
! zn(void)
! {
!   if (v0 != 0)
!     {
!       int *js, *r3;
!       int pm, gc;
! 
!       for (gc = 0; gc < 1; ++gc)
!         {
!           sj = 1;
!           while (sj != 0)
!             ;
!         }
!       r3 = &pm;
!       *js = (long)&gc;
! ka:
!       for (d0 = 0; d0 < 2; ++d0)
!         {
!           d0 = zi;
!           if (zi)
!             for (pm = 2; pm != 0; --pm)
!               ;
!         }
!       while (*r3 != 0)
!         {
!           while (pm)
!             ;
!           ++r3;
!         }
!     }
!   rp = 0;
!   goto ka;
  }
--- 1,40 ----
! /* { dg-do compile } */
! /* { dg-options "-O3 -g" } */
  /* { dg-require-effective-target ptr32plus } */
! 
! int d0, sj, v0, rp, zi;
! 
! void
! zn(void)
! {
!   if (v0 != 0)
!     {
!       int *js, *r3;
!       int pm, gc;
! 
!       for (gc = 0; gc < 1; ++gc)
!         {
!           sj = 1;
!           while (sj != 0)
!             ;
!         }
!       r3 = &pm;
!       *js = (__INTPTR_TYPE__)&gc;
! ka:
!       for (d0 = 0; d0 < 2; ++d0)
!         {
!           d0 = zi;
!           if (zi)
!             for (pm = 2; pm != 0; --pm)
!               ;
!         }
!       while (*r3 != 0)
!         {
!           while (pm)
!             ;
!           ++r3;
!         }
!     }
!   rp = 0;
!   goto ka;
  }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/torture/tls-return-1.c gcc-16-20260215/gcc/testsuite/gcc.dg/torture/tls-return-1.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/torture/tls-return-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/torture/tls-return-1.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ /* { dg-options "" } */
+ 
+ 
+ /* PR tree-optimization/124099 */ 
+ 
+ struct s1 { int t[2];};
+ __thread struct s1 t;
+ struct s1 g()
+ { 
+   return t;
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/tree-ssa/copy-prop-aggregate-return-1.c gcc-16-20260215/gcc/testsuite/gcc.dg/tree-ssa/copy-prop-aggregate-return-1.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/tree-ssa/copy-prop-aggregate-return-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/tree-ssa/copy-prop-aggregate-return-1.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fdump-tree-forwprop1-details"  } */
+ 
+ struct s1
+ {
+   char init;
+   int value;
+ };
+ 
+ static inline struct s1 f()
+ {
+   struct s1 t;
+   t.init = 0;
+   return t;
+ }
+ 
+ struct s1 g()
+ {
+   return f();
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "after previous" 1 "forwprop1" { target { { x86_64_*-*-* i?86-*-* } && !ia32 } ||  { aarch64*-*-* } } } } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/uninit-17.c gcc-16-20260215/gcc/testsuite/gcc.dg/uninit-17.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/uninit-17.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/uninit-17.c	Sun Feb 15 22:32:10 2026
***************
*** 2,15 ****
  /* { dg-options "-O -Wuninitialized" } */
  
  typedef _Complex float C;
! C foo(int cond)
  {
    C f;
    __imag__ f = 0;
    if (cond)
!     {
!       __real__ f = 1;
!       return f;
!     }
    return f;	/* { dg-warning "may be used" "unconditional" } */
  }
--- 2,12 ----
  /* { dg-options "-O -Wuninitialized" } */
  
  typedef _Complex float C;
! C foo(int cond, float r)
  {
    C f;
    __imag__ f = 0;
    if (cond)
!     __real__ f = r; /* No constant to avoid a CCP induced false negative. */
    return f;	/* { dg-warning "may be used" "unconditional" } */
  }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/uninit-pr99959.c gcc-16-20260215/gcc/testsuite/gcc.dg/uninit-pr99959.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/uninit-pr99959.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/uninit-pr99959.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -Wuninitialized" } */
+ 
+ void g (void)
+ {
+   int i;
+ 
+   void f (int *t)
+   {
+     __builtin_printf ("%i", i); /* { dg-warning  "is used uninitialized" } */
+   }
+ 
+   int t __attribute__ ((cleanup (f))) = 0;
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O-pr46167.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O-pr46167.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O-pr46167.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O-pr46167.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-additional-options "-O" } */
  
  int foo (char c, int i)
  {
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O1-pr33854.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O1-pr33854.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O1-pr33854.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O1-pr33854.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* Testcase by Martin Michlmayr <tbm@cyrius.com> */
  /* { dg-do compile } */
+ /* { dg-additional-options "-O1" } */
  
  extern void *malloc (__SIZE_TYPE__ __size);
  typedef struct VMatrix_ VMatrix;
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O1-pr41008.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O1-pr41008.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O1-pr41008.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O1-pr41008.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-additional-options "-O1" } */
  
  double heating[2][2];
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O3-pr36098.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O3-pr36098.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O3-pr36098.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O3-pr36098.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-do compile } */
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-O3 -fno-ipa-cp-clone" } */
  
  typedef struct {
    int iatom[3];
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O3-pr39675-2.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O3-pr39675-2.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O3-pr39675-2.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O3-pr39675-2.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-do compile } */
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-O3 -fno-ipa-cp-clone" } */
  
  #define N 128
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O3-pr41881.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O3-pr41881.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O3-pr41881.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O3-pr41881.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-additional-options "-O3 -fno-ipa-cp-clone" } */
  
  #define TYPE int
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O3-pr45971.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O3-pr45971.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O3-pr45971.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O3-pr45971.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-do compile } */
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-O3 -fno-ipa-cp-clone" } */
  
  void
  foo (int *x, int *y)
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O3-pr46077.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O3-pr46077.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O3-pr46077.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O3-pr46077.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-do compile } */
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-O3 -fno-ipa-cp-clone" } */
  
  void intf_pcmPlayEffect(int *src, int *dst, int size) {
   int i;
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O3-pr49087.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O3-pr49087.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O3-pr49087.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O3-pr49087.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-additional-options "-O3 -fno-ipa-cp-clone" } */
  
  static char func2() { }
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O3-pr70130.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O3-pr70130.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O3-pr70130.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O3-pr70130.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-require-effective-target vsx_hw { target powerpc*-*-* } } */
  /* { dg-additional-options "-mdejagnu-cpu=power7 -mvsx" { target powerpc*-*-* } } */
+ /* { dg-additional-options "-O3 -fno-ipa-cp-clone" } */
  
  #include "tree-vect.h"
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O3-pr85794.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O3-pr85794.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O3-pr85794.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O3-pr85794.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-additional-options "-O3 -fno-ipa-cp-clone" } */
  
  int a, b, *c, d;
  int *f[6];
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O3-pr87546.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O3-pr87546.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O3-pr87546.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O3-pr87546.c	Sun Feb 15 22:32:10 2026
***************
*** 1,3 ****
--- 1,5 ----
+ /* { dg-additional-options "-O3 -fno-ipa-cp-clone" } */
+ 
  #include "tree-vect.h"
  
  int a;
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O3-slp-reduc-10.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O3-slp-reduc-10.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O3-slp-reduc-10.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O3-slp-reduc-10.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-O3 -fno-ipa-cp-clone" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O3-vect-pr32243.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O3-vect-pr32243.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O3-vect-pr32243.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O3-vect-pr32243.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-additional-options "-O3 -fno-ipa-cp-clone" } */
  
  typedef struct __GLcontextRec GLcontext;
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O3-vect-pr34223.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O3-vect-pr34223.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O3-vect-pr34223.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O3-vect-pr34223.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-O3 -fno-ipa-cp-clone" } */
  
  #include "tree-vect.h"
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O3-vect-pr61917.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O3-vect-pr61917.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/O3-vect-pr61917.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/O3-vect-pr61917.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-additional-options "-O3 -fno-ipa-cp-clone" } */
  
  int a, b, c, d;
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/Os-vect-95.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/Os-vect-95.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/Os-vect-95.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/Os-vect-95.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_float } */
+ /* { dg-additional-options "-Os" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/aligned-section-anchors-nest-1.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/aligned-section-anchors-nest-1.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/aligned-section-anchors-nest-1.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/aligned-section-anchors-nest-1.c	Sun Feb 15 22:32:10 2026
***************
*** 1,6 ****
--- 1,7 ----
  /* { dg-do compile } */
  /* { dg-require-effective-target section_anchors } */
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fsection-anchors -fdump-ipa-increase_alignment-details" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-70.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-70.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-70.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-70.c	Sun Feb 15 22:32:10 2026
***************
*** 1,6 ****
--- 1,7 ----
  /* { dg-do compile } */
  /* { dg-require-effective-target section_anchors } */
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fsection-anchors -fdump-ipa-increase_alignment-details" } */
  
  #define N 32
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-71.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-71.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-71.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-71.c	Sun Feb 15 22:32:10 2026
***************
*** 1,6 ****
--- 1,7 ----
  /* { dg-do compile } */
  /* { dg-require-effective-target section_anchors } */
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fsection-anchors -fdump-ipa-increase_alignment-details" } */
  
  /* Should not increase alignment of the struct because
     sizeof (A.e) < sizeof(corresponding vector type).  */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-72.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-72.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-72.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/aligned-section-anchors-vect-72.c	Sun Feb 15 22:32:10 2026
***************
*** 1,6 ****
--- 1,7 ----
  /* { dg-do compile } */
  /* { dg-require-effective-target section_anchors } */
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fsection-anchors -fdump-ipa-increase_alignment-details" } */
  
  #define N 32
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/bb-slp-12.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/bb-slp-12.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/bb-slp-12.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/bb-slp-12.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,52 ----
+ /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-reassoc" } */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 16 
+ 
+ unsigned int out[N];
+ unsigned int in1[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
+ unsigned int in2[N] = {10,11,12,13,14,15,16,17,18,19,110,111,112,113,114,115};
+ 
+ __attribute__ ((noinline)) int
+ main1 (unsigned int x, unsigned int y)
+ {
+   int i;
+   unsigned int *pin1 = &in1[0];
+   unsigned int *pin2 = &in2[0];
+   unsigned int *pout = &out[0];
+   unsigned int a0, a1, a2, a3;
+ 
+   a0 = *pin2++ - *pin1++ + 23;
+   a1 = *pin2++ - *pin1++ + 142;
+   a2 = *pin2++ - *pin1++ + 2;
+   a3 = *pin2++ - *pin1++ + 31;
+   
+   *pout++ = a0 * x;
+   *pout++ = a1 * y;
+   *pout++ = a2 * x;
+   *pout++ = a3 * y;
+ 
+   /* Check results.  */
+   if (out[0] != (in2[0] - in1[0] + 23) * x
+       || out[1] != (in2[1] - in1[1] + 142) * y
+       || out[2] != (in2[2] - in1[2] + 2) * x
+       || out[3] != (in2[3] - in1[3] + 31) * y)
+     abort();
+ 
+   return 0;
+ }
+ 
+ int main (void)
+ {
+   check_vect ();
+ 
+   main1 (2, 3);
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: basic block" 1 "slp2" { target vect_int_mult } } } */
+   
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/bb-slp-call-1.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/bb-slp-call-1.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/bb-slp-call-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/bb-slp-call-1.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,51 ----
+ /* { dg-additional-options "-ffast-math" } */
+ 
+ #include "tree-vect.h"
+ 
+ extern float copysignf (float, float);
+ extern float sqrtf (float);
+ extern float fabsf (float);
+ extern void abort (void);
+ float a[64], b[64], c[64], d[64];
+ 
+ __attribute__((noinline, noclone)) void
+ f1 (void)
+ {
+   a[0] = copysignf (b[0], c[0]) + 1.0f + sqrtf (d[0]);
+   a[1] = copysignf (b[1], c[1]) + 2.0f + sqrtf (d[1]);
+   a[2] = copysignf (b[2], c[2]) + 3.0f + sqrtf (d[2]);
+   a[3] = copysignf (b[3], c[3]) + 4.0f + sqrtf (d[3]);
+   a[4] = copysignf (b[4], c[4]) + 5.0f + sqrtf (d[4]);
+   a[5] = copysignf (b[5], c[5]) + 6.0f + sqrtf (d[5]);
+   a[6] = copysignf (b[6], c[6]) + 7.0f + sqrtf (d[6]);
+   a[7] = copysignf (b[7], c[7]) + 8.0f + sqrtf (d[7]);
+ }
+ 
+ __attribute__((noinline, noclone)) int
+ main1 ()
+ {
+   int i;
+ 
+   for (i = 0; i < 8; i++)
+     {
+       asm ("");
+       b[i] = (i & 1) ? -4 * i : 4 * i;
+       c[i] = (i & 2) ? -8 * i : 8 * i;
+       d[i] = i * i;
+     }
+   f1 ();
+ #pragma GCC novector
+   for (i = 0; i < 8; i++)
+     if (fabsf (((i & 2) ? -4 * i : 4 * i) + 1 + i + i - a[i]) >= 0.0001f)
+       abort ();
+   return 0;
+ }
+ 
+ int
+ main ()
+ {
+   check_vect ();
+   return main1 ();
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: basic block" 1 "slp2" { target { vect_call_copysignf && vect_call_sqrtf } } } } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/bb-slp-call-2.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/bb-slp-call-2.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/bb-slp-call-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/bb-slp-call-2.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,69 ----
+ /* { dg-require-effective-target vect_double } */
+ /* { dg-additional-options "-ffast-math" } */
+ 
+ #include "tree-vect.h"
+ 
+ extern long int lrint (double);
+ extern void abort (void);
+ long int a[64];
+ double b[64];
+ 
+ __attribute__((noinline, noclone)) void
+ f1 (void)
+ {
+   a[0] = lrint (b[0]) + 1;
+   a[1] = lrint (b[1]) + 2;
+   a[2] = lrint (b[2]) + 3;
+   a[3] = lrint (b[3]) + 4;
+   a[4] = lrint (b[4]) + 5;
+   a[5] = lrint (b[5]) + 6;
+   a[6] = lrint (b[6]) + 7;
+   a[7] = lrint (b[7]) + 8;
+ }
+ 
+ __attribute__((noinline, noclone)) void
+ f2 (void)
+ {
+   a[0] = lrint (b[0]);
+   a[1] = lrint (b[1]);
+   a[2] = lrint (b[2]);
+   a[3] = lrint (b[3]);
+   a[4] = lrint (b[4]);
+   a[5] = lrint (b[5]);
+   a[6] = lrint (b[6]);
+   a[7] = lrint (b[7]);
+ }
+ 
+ __attribute__((noinline, noclone)) int
+ main1 ()
+ {
+   int i;
+ 
+   for (i = 0; i < 8; i++)
+     {
+       asm ("");
+       b[i] = ((i & 1) ? -4 * i : 4 * i) + 0.25;
+     }
+   f1 ();
+ #pragma GCC novector
+   for (i = 0; i < 8; i++)
+     if (a[i] != ((i & 1) ? -4 * i : 4 * i) + 1 + i)
+       abort ();
+     else
+       a[i] = 131.25;
+   f2 ();
+ #pragma GCC novector
+   for (i = 0; i < 8; i++)
+     if (a[i] != ((i & 1) ? -4 * i : 4 * i))
+       abort ();
+   return 0;
+ }
+ 
+ int
+ main ()
+ {
+   check_vect ();
+   return main1 ();
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: basic block" 2 "slp2" { target vect_call_lrint } } } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/bb-slp-call-3.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/bb-slp-call-3.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/bb-slp-call-3.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/bb-slp-call-3.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,76 ----
+ /* { dg-additional-options "-ffast-math" } */
+ 
+ #include "tree-vect.h"
+ 
+ extern double sqrt (double);
+ extern double fabs (double);
+ extern double ceil (double);
+ extern double floor (double);
+ 
+ extern void abort (void);
+ 
+ #define MIN(a, b) (((a) < (b)) ? (a) : (b))
+ #define MAX(a, b) (((a) > (b)) ? (a) : (b))
+ 
+ typedef struct {
+     int initialHeight, initialWidth;
+     int rotatedHeight, rotatedWidth;
+     int autoCropHeight, autoCropWidth;
+ } ufraw_data;
+ 
+ void __attribute__((noinline,noclone))
+ ufraw_test(ufraw_data *uf)
+ {
+   int iWidth = uf->initialWidth;
+   int iHeight = uf->initialHeight;
+   double aspectRatio = ((double)iWidth) / iHeight;
+   double midX = iWidth / 2.0 - 0.5;
+   double midY = iHeight / 2.0 - 0.5;
+   double maxX = 0, maxY = 0;
+   double minX = 999999, minY = 999999;
+   double lastX = 0, lastY = 0, area = 0;
+   double scale;
+   int i;
+   for (i = 0; i < iWidth + iHeight - 1; i++)
+     {
+       int x, y;
+       if (i < iWidth) { // Trace the left border of the image
+ 	  x = i;
+ 	  y = 0;
+       } else { // Trace the bottom border of the image
+ 	  x = iWidth - 1;
+ 	  y = i - iWidth + 1;
+       }
+       double srcX = x - midX;
+       double srcY = y - midY;
+       // A digital planimeter:
+       area += srcY * lastX - srcX * lastY;
+       lastX = srcX;
+       lastY = srcY;
+       maxX = MAX(maxX, fabs(srcX));
+       maxY = MAX(maxY, fabs(srcY));
+       if (fabs(srcX / srcY) > aspectRatio)
+ 	minX = MIN(minX, fabs(srcX));
+       else
+ 	minY = MIN(minY, fabs(srcY));
+     }
+   scale = sqrt((iWidth - 1) * (iHeight - 1) / area);
+   uf->rotatedWidth = MIN(ceil(2 * maxX + 1.0) * scale, 2 * iWidth);
+   uf->rotatedHeight = MIN(ceil(2 * maxY + 1.0) * scale, 2 * iHeight);
+   uf->autoCropWidth = MIN(floor(2 * minX) * scale, 2 * iWidth);
+   uf->autoCropHeight = MIN(floor(2 * minY) * scale, 2 * iHeight);
+   if (uf->autoCropWidth != 3)
+     abort ();
+ }
+ 
+ int main()
+ {
+   ufraw_data uf_data;
+   ufraw_data *uf = &uf_data;
+   check_vect ();
+   uf->initialWidth = 4;
+   uf->initialHeight = 5;
+   ufraw_test(uf);
+   return 0;
+ }
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/bb-slp-cond-1.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/bb-slp-cond-1.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/bb-slp-cond-1.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/bb-slp-cond-1.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_condition } */
+ /* { dg-additional-options "--param vect-epilogues-nomask=0" } */
  /* { dg-additional-options "-fdump-tree-vect-details" } */
  
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/bb-slp-pr50730.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/bb-slp-pr50730.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/bb-slp-pr50730.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/bb-slp-pr50730.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_float } */
+ /* { dg-additional-options "-fno-tree-sra" } */
+ 
+ typedef __complex__ float Value;
+ typedef struct {
+   Value a[16 / sizeof (Value)];
+ } A;
+ 
+ A sum(A a,A b)
+ {
+   a.a[0]+=b.a[0];
+   a.a[1]+=b.a[1];
+   return a;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "optimized: basic block" 1 "slp2" } } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-double.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-double.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-double.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-double.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_double } */
+ /* { dg-add-options arm_v8_3a_complex_neon } */
+ /* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
+ 
+ #define UNROLL
+ 
+ #define TYPE double
+ #define N 16
+ #include "complex-add-template.c"
+ 
+ /* { dg-final { scan-tree-dump-times "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT90" 32 "slp1" { target { vect_complex_add_double } } } } */
+ /* { dg-final { scan-tree-dump-times "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT270" 32 "slp1" { target { vect_complex_add_double } } } } */
+ 
+ /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "slp1" } } */
+ /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "slp1" } } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-float.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-float.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-float.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-float.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_float } */
+ /* { dg-add-options arm_v8_3a_complex_neon } */
+ /* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
+ 
+ #define UNROLL
+ 
+ #define TYPE float
+ #define N 16
+ #include "complex-add-template.c"
+ 
+ /* { dg-final { scan-tree-dump-times "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT90" 16 "slp1" { target { vect_complex_add_float } } } } */
+ /* { dg-final { scan-tree-dump-times "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT270" 16 "slp1" { target { vect_complex_add_float } } } } */
+ /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "slp1" } } */
+ /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "slp1" } } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-half-float.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-half-float.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-half-float.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-half-float.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_complex_add_half } */
+ /* { dg-require-effective-target arm_v8_3a_fp16_complex_neon_ok } */
+ /* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
+ /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
+ 
+ #define TYPE _Float16
+ #define N 16
+ #include "complex-add-template.c"
+ 
+ /* Vectorization is failing for these cases.  They should work but for now ignore.  */
+ 
+ /* { dg-final { scan-tree-dump "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT270" "slp1" { xfail *-*-* } } } */
+ /* { dg-final { scan-tree-dump "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT90" "slp1" { xfail *-*-* } } } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-double.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-double.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-double.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-double.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
+ /* { dg-require-effective-target vect_double } */
+ /* { dg-add-options arm_v8_3a_complex_neon } */
+ 
+ #define UNROLL
+ 
+ #define TYPE double
+ #define N 16
+ #include "complex-add-pattern-template.c"
+ 
+ /* { dg-final { scan-tree-dump-times "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT90" 20 "slp1" { target { vect_complex_add_double } } } } */
+ /* { dg-final { scan-tree-dump-times "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT270" 8 "slp1" { target { vect_complex_add_double } } } } */
+ /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "slp1" } } */
+ /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "slp1" } } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-float.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-float.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-float.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-float.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_float } */
+ /* { dg-add-options arm_v8_3a_complex_neon } */
+ /* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
+ 
+ #define UNROLL
+ 
+ #define TYPE float
+ #define N 16
+ #include "complex-add-pattern-template.c"
+ 
+ /* { dg-final { scan-tree-dump-times "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT90" 10 "slp1" { target { vect_complex_add_float } } } } */
+ /* { dg-final { scan-tree-dump-times "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT270" 4 "slp1" { target { vect_complex_add_float } } } } */
+ /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "slp1" } } */
+ /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "slp1" } } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-half-float.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-half-float.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-half-float.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-add-pattern-half-float.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_complex_add_half } */
+ /* { dg-require-effective-target arm_v8_3a_fp16_complex_neon_ok } */
+ /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
+ /* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
+ 
+ #define UNROLL
+ 
+ #define TYPE _Float16
+ #define N 16
+ #include "complex-add-pattern-template.c"
+ 
+ /* { dg-final { scan-tree-dump-times "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT90" 5 "slp1" { target { vect_complex_add_half } } } } */
+ /* { dg-final { scan-tree-dump-times "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT270" 2 "slp1" { target { vect_complex_add_half } } } } */
+ /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "slp1" } } */
+ /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "slp1" } } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mla-double.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mla-double.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mla-double.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mla-double.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_complex_add_double } */
+ /* { dg-add-options arm_v8_3a_complex_neon } */
+ /* { dg-additional-options "-ffast-math -fdump-tree-vect-details" } */
+ 
+ #define TYPE double
+ #define N 16
+ #include "complex-mla-template.c"
+ 
+ /* { dg-final { scan-tree-dump "Found COMPLEX_FMA_CONJ" "vect" } } */
+ /* { dg-final { scan-tree-dump "Found COMPLEX_FMA" "vect" } } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mla-float.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mla-float.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mla-float.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mla-float.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_complex_add_float } */
+ /* { dg-additional-options "-ffast-math -fdump-tree-vect-details" } */
+ /* { dg-add-options arm_v8_3a_complex_neon } */
+ 
+ #define TYPE float
+ #define N 16
+ #include "complex-mla-template.c"
+ /* { dg-final { scan-tree-dump "Found COMPLEX_FMA_CONJ" "vect" } } */
+ /* { dg-final { scan-tree-dump "Found COMPLEX_FMA" "vect" } } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mla-half-float.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mla-half-float.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mla-half-float.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mla-half-float.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_complex_add_half } */
+ /* { dg-require-effective-target arm_v8_3a_fp16_complex_neon_ok } */
+ /* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
+ /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
+ 
+ #define TYPE _Float16
+ #define N 16
+ #include "complex-mla-template.c"
+ 
+ /* { dg-final { scan-tree-dump "Found COMPLEX_FMA_CONJ" "slp1" { xfail *-*-* } } } */
+ /* { dg-final { scan-tree-dump "Found COMPLEX_FMA" "slp1"  { xfail *-*-* } } } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mls-double.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mls-double.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mls-double.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mls-double.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_complex_add_double } */
+ /* { dg-add-options arm_v8_3a_complex_neon } */
+ /* { dg-additional-options "-ffast-math -fdump-tree-vect-details" } */
+ 
+ #define TYPE double
+ #define N 16
+ #include "complex-mls-template.c"
+ 
+ /* { dg-final { scan-tree-dump "Found COMPLEX_FMS_CONJ" "vect" } } */
+ /* { dg-final { scan-tree-dump "Found COMPLEX_FMS" "vect" } } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mls-float.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mls-float.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mls-float.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mls-float.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_complex_add_float } */
+ /* { dg-additional-options "-ffast-math -fdump-tree-vect-details" } */
+ /* { dg-add-options arm_v8_3a_complex_neon } */
+ 
+ #define TYPE float
+ #define N 16
+ #include "complex-mls-template.c"
+ 
+ /* { dg-final { scan-tree-dump "Found COMPLEX_FMS_CONJ" "vect" } } */
+ /* { dg-final { scan-tree-dump "Found COMPLEX_FMS" "vect" } } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mls-half-float.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mls-half-float.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mls-half-float.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mls-half-float.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_complex_add_half } */
+ /* { dg-require-effective-target arm_v8_3a_fp16_complex_neon_ok } */
+ /* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
+ /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
+ 
+ #define TYPE _Float16
+ #define N 16
+ #include "complex-mls-template.c"
+ 
+ /* { dg-final { scan-tree-dump "Found COMPLEX_FMS_CONJ" "slp1"  { xfail *-*-* } } } */
+ /* { dg-final { scan-tree-dump "Found COMPLEX_FMS" "slp1"  { xfail *-*-* } } } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mul-double.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mul-double.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mul-double.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mul-double.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_complex_add_double } */
+ /* { dg-add-options arm_v8_3a_complex_neon } */
+ /* { dg-additional-options "-ffast-math -fdump-tree-vect-details" } */
+ 
+ #define TYPE double
+ #define N 16
+ #include "complex-mul-template.c"
+ 
+ /* { dg-final { scan-tree-dump "Found COMPLEX_MUL_CONJ" "vect" } } */
+ /* { dg-final { scan-tree-dump "Found COMPLEX_MUL" "vect" } } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mul-float.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mul-float.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mul-float.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mul-float.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_complex_add_float } */
+ /* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
+ /* { dg-add-options arm_v8_3a_complex_neon } */
+ 
+ #define TYPE float
+ #define N 16
+ #include "complex-mul-template.c"
+ 
+ /* { dg-final { scan-tree-dump "Found COMPLEX_MUL_CONJ" "slp1" } } */
+ /* { dg-final { scan-tree-dump "Found COMPLEX_MUL" "slp1" } } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mul-half-float.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mul-half-float.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mul-half-float.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/bb-slp-complex-mul-half-float.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_complex_add_half } */
+ /* { dg-require-effective-target arm_v8_3a_fp16_complex_neon_ok } */
+ /* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
+ /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
+ 
+ #define TYPE _Float16
+ #define N 16
+ #include "complex-mul-template.c"
+ 
+ /* { dg-final { scan-tree-dump "Found COMPLEX_MUL_CONJ" "slp1"  { xfail *-*-* } } } */
+ /* { dg-final { scan-tree-dump "Found COMPLEX_MUL" "slp1"  { xfail *-*-* } } } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/complex-add-pattern-template.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/complex-add-pattern-template.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/complex-add-pattern-template.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/complex-add-pattern-template.c	Sun Feb 15 22:32:10 2026
***************
*** 1,3 ****
--- 1,5 ----
+ /* { dg-skip-if "template file" { *-*-* } } */
+ 
  void add90 (TYPE a[restrict N], TYPE b[restrict N], TYPE c[restrict N])
  {
  #if defined (UNROLL)
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/complex-add-template.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/complex-add-template.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/complex-add-template.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/complex-add-template.c	Sun Feb 15 22:32:10 2026
***************
*** 1,3 ****
--- 1,5 ----
+ /* { dg-skip-if "template file" { *-*-* } } */
+ 
  #include <complex.h>
  
  void add0 (_Complex TYPE a[restrict N], _Complex TYPE b[restrict N],
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/complex-mla-template.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/complex-mla-template.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/complex-mla-template.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/complex-mla-template.c	Sun Feb 15 22:32:10 2026
***************
*** 1,3 ****
--- 1,5 ----
+ /* { dg-skip-if "template file" { *-*-* } } */
+ 
  #include <complex.h>
  
  void fma0 (_Complex TYPE a[restrict N], _Complex TYPE b[restrict N],
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/complex-mls-template.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/complex-mls-template.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/complex-mls-template.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/complex-mls-template.c	Sun Feb 15 22:32:10 2026
***************
*** 1,3 ****
--- 1,5 ----
+ /* { dg-skip-if "template file" { *-*-* } } */
+ 
  #include <complex.h>
  
  void fms0 (_Complex TYPE a[restrict N], _Complex TYPE b[restrict N],
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/complex-mul-template.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/complex-mul-template.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/complex-mul-template.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/complex-mul-template.c	Sun Feb 15 22:32:10 2026
***************
*** 1,3 ****
--- 1,5 ----
+ /* { dg-skip-if "template file" { *-*-* } } */
+ 
  #include <complex.h>
  
  void mul0 (_Complex TYPE a[restrict N], _Complex TYPE b[restrict N],
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/complex-operations.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/complex-operations.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/complex-operations.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/complex-operations.c	Sun Feb 15 22:32:10 2026
***************
*** 1,3 ****
--- 1,5 ----
+ /* { dg-skip-if "template file" { *-*-* } } */
+ 
  #include <stdio.h>
  #include <complex.h>
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-double.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-double.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-double.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,16 ****
- /* { dg-do compile } */
- /* { dg-require-effective-target vect_double } */
- /* { dg-add-options arm_v8_3a_complex_neon } */
- /* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
- 
- #define UNROLL
- 
- #define TYPE double
- #define N 16
- #include "complex-add-template.c"
- 
- /* { dg-final { scan-tree-dump-times "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT90" 32 "slp1" { target { vect_complex_add_double } } } } */
- /* { dg-final { scan-tree-dump-times "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT270" 32 "slp1" { target { vect_complex_add_double } } } } */
- 
- /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "slp1" } } */
- /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "slp1" } } */
--- 0 ----
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-float.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-float.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-float.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,15 ****
- /* { dg-do compile } */
- /* { dg-require-effective-target vect_float } */
- /* { dg-add-options arm_v8_3a_complex_neon } */
- /* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
- 
- #define UNROLL
- 
- #define TYPE float
- #define N 16
- #include "complex-add-template.c"
- 
- /* { dg-final { scan-tree-dump-times "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT90" 16 "slp1" { target { vect_complex_add_float } } } } */
- /* { dg-final { scan-tree-dump-times "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT270" 16 "slp1" { target { vect_complex_add_float } } } } */
- /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "slp1" } } */
- /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "slp1" } } */
--- 0 ----
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,14 ****
- /* { dg-do compile } */
- /* { dg-require-effective-target vect_complex_add_half } */
- /* { dg-require-effective-target arm_v8_3a_fp16_complex_neon_ok } */
- /* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
- /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
- 
- #define TYPE _Float16
- #define N 16
- #include "complex-add-template.c"
- 
- /* Vectorization is failing for these cases.  They should work but for now ignore.  */
- 
- /* { dg-final { scan-tree-dump "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT270" "slp1" { xfail *-*-* } } } */
- /* { dg-final { scan-tree-dump "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT90" "slp1" { xfail *-*-* } } } */
--- 0 ----
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,15 ****
- /* { dg-do compile } */
- /* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
- /* { dg-require-effective-target vect_double } */
- /* { dg-add-options arm_v8_3a_complex_neon } */
- 
- #define UNROLL
- 
- #define TYPE double
- #define N 16
- #include "complex-add-pattern-template.c"
- 
- /* { dg-final { scan-tree-dump-times "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT90" 20 "slp1" { target { vect_complex_add_double } } } } */
- /* { dg-final { scan-tree-dump-times "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT270" 8 "slp1" { target { vect_complex_add_double } } } } */
- /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "slp1" } } */
- /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "slp1" } } */
--- 0 ----
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-float.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-float.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-float.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,15 ****
- /* { dg-do compile } */
- /* { dg-require-effective-target vect_float } */
- /* { dg-add-options arm_v8_3a_complex_neon } */
- /* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
- 
- #define UNROLL
- 
- #define TYPE float
- #define N 16
- #include "complex-add-pattern-template.c"
- 
- /* { dg-final { scan-tree-dump-times "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT90" 10 "slp1" { target { vect_complex_add_float } } } } */
- /* { dg-final { scan-tree-dump-times "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT270" 4 "slp1" { target { vect_complex_add_float } } } } */
- /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "slp1" } } */
- /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "slp1" } } */
--- 0 ----
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,16 ****
- /* { dg-do compile } */
- /* { dg-require-effective-target vect_complex_add_half } */
- /* { dg-require-effective-target arm_v8_3a_fp16_complex_neon_ok } */
- /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
- /* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
- 
- #define UNROLL
- 
- #define TYPE _Float16
- #define N 16
- #include "complex-add-pattern-template.c"
- 
- /* { dg-final { scan-tree-dump-times "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT90" 5 "slp1" { target { vect_complex_add_half } } } } */
- /* { dg-final { scan-tree-dump-times "add new stmt: \[^\n\r]*COMPLEX_ADD_ROT270" 2 "slp1" { target { vect_complex_add_half } } } } */
- /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "slp1" } } */
- /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT90" "slp1" } } */
--- 0 ----
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-double.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-double.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-double.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,11 ****
- /* { dg-do compile } */
- /* { dg-require-effective-target vect_complex_add_double } */
- /* { dg-add-options arm_v8_3a_complex_neon } */
- /* { dg-additional-options "-ffast-math -fdump-tree-vect-details" } */
- 
- #define TYPE double
- #define N 16
- #include "complex-mla-template.c"
- 
- /* { dg-final { scan-tree-dump "Found COMPLEX_FMA_CONJ" "vect" } } */
- /* { dg-final { scan-tree-dump "Found COMPLEX_FMA" "vect" } } */
--- 0 ----
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-float.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-float.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-float.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- /* { dg-do compile } */
- /* { dg-require-effective-target vect_complex_add_float } */
- /* { dg-additional-options "-ffast-math -fdump-tree-vect-details" } */
- /* { dg-add-options arm_v8_3a_complex_neon } */
- 
- #define TYPE float
- #define N 16
- #include "complex-mla-template.c"
- /* { dg-final { scan-tree-dump "Found COMPLEX_FMA_CONJ" "vect" } } */
- /* { dg-final { scan-tree-dump "Found COMPLEX_FMA" "vect" } } */
--- 0 ----
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- /* { dg-do compile } */
- /* { dg-require-effective-target vect_complex_add_half } */
- /* { dg-require-effective-target arm_v8_3a_fp16_complex_neon_ok } */
- /* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
- /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
- 
- #define TYPE _Float16
- #define N 16
- #include "complex-mla-template.c"
- 
- /* { dg-final { scan-tree-dump "Found COMPLEX_FMA_CONJ" "slp1" { xfail *-*-* } } } */
- /* { dg-final { scan-tree-dump "Found COMPLEX_FMA" "slp1"  { xfail *-*-* } } } */
--- 0 ----
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-double.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-double.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-double.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,11 ****
- /* { dg-do compile } */
- /* { dg-require-effective-target vect_complex_add_double } */
- /* { dg-add-options arm_v8_3a_complex_neon } */
- /* { dg-additional-options "-ffast-math -fdump-tree-vect-details" } */
- 
- #define TYPE double
- #define N 16
- #include "complex-mls-template.c"
- 
- /* { dg-final { scan-tree-dump "Found COMPLEX_FMS_CONJ" "vect" } } */
- /* { dg-final { scan-tree-dump "Found COMPLEX_FMS" "vect" } } */
--- 0 ----
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-float.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-float.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-float.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,11 ****
- /* { dg-do compile } */
- /* { dg-require-effective-target vect_complex_add_float } */
- /* { dg-additional-options "-ffast-math -fdump-tree-vect-details" } */
- /* { dg-add-options arm_v8_3a_complex_neon } */
- 
- #define TYPE float
- #define N 16
- #include "complex-mls-template.c"
- 
- /* { dg-final { scan-tree-dump "Found COMPLEX_FMS_CONJ" "vect" } } */
- /* { dg-final { scan-tree-dump "Found COMPLEX_FMS" "vect" } } */
--- 0 ----
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- /* { dg-do compile } */
- /* { dg-require-effective-target vect_complex_add_half } */
- /* { dg-require-effective-target arm_v8_3a_fp16_complex_neon_ok } */
- /* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
- /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
- 
- #define TYPE _Float16
- #define N 16
- #include "complex-mls-template.c"
- 
- /* { dg-final { scan-tree-dump "Found COMPLEX_FMS_CONJ" "slp1"  { xfail *-*-* } } } */
- /* { dg-final { scan-tree-dump "Found COMPLEX_FMS" "slp1"  { xfail *-*-* } } } */
--- 0 ----
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,11 ****
- /* { dg-do compile } */
- /* { dg-require-effective-target vect_complex_add_double } */
- /* { dg-add-options arm_v8_3a_complex_neon } */
- /* { dg-additional-options "-ffast-math -fdump-tree-vect-details" } */
- 
- #define TYPE double
- #define N 16
- #include "complex-mul-template.c"
- 
- /* { dg-final { scan-tree-dump "Found COMPLEX_MUL_CONJ" "vect" } } */
- /* { dg-final { scan-tree-dump "Found COMPLEX_MUL" "vect" } } */
--- 0 ----
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,11 ****
- /* { dg-do compile } */
- /* { dg-require-effective-target vect_complex_add_float } */
- /* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
- /* { dg-add-options arm_v8_3a_complex_neon } */
- 
- #define TYPE float
- #define N 16
- #include "complex-mul-template.c"
- 
- /* { dg-final { scan-tree-dump "Found COMPLEX_MUL_CONJ" "slp1" } } */
- /* { dg-final { scan-tree-dump "Found COMPLEX_MUL" "slp1" } } */
--- 0 ----
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c	Sun Feb  8 22:32:10 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- /* { dg-do compile } */
- /* { dg-require-effective-target vect_complex_add_half } */
- /* { dg-require-effective-target arm_v8_3a_fp16_complex_neon_ok } */
- /* { dg-additional-options "-ffast-math -fno-tree-loop-vectorize" } */
- /* { dg-add-options arm_v8_3a_fp16_complex_neon } */
- 
- #define TYPE _Float16
- #define N 16
- #include "complex-mul-template.c"
- 
- /* { dg-final { scan-tree-dump "Found COMPLEX_MUL_CONJ" "slp1"  { xfail *-*-* } } } */
- /* { dg-final { scan-tree-dump "Found COMPLEX_MUL" "slp1"  { xfail *-*-* } } } */
--- 0 ----
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr123225.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr123225.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr123225.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-pr123225.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-msse4" } */
+ 
+ short *
+ foo (short *arr)
+ {
+   unsigned int pos = 0;
+   while(1)
+     {
+       arr++;
+       if (*arr == 0)
+ 	break;
+     }
+   return arr;
+ }
+ 
+ /* { dg-final { scan-tree-dump-not "optimized" "vect" } } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-1.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-1.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-1.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,51 ****
- /* { dg-additional-options "-ffast-math" } */
- 
- #include "tree-vect.h"
- 
- extern float copysignf (float, float);
- extern float sqrtf (float);
- extern float fabsf (float);
- extern void abort (void);
- float a[64], b[64], c[64], d[64];
- 
- __attribute__((noinline, noclone)) void
- f1 (void)
- {
-   a[0] = copysignf (b[0], c[0]) + 1.0f + sqrtf (d[0]);
-   a[1] = copysignf (b[1], c[1]) + 2.0f + sqrtf (d[1]);
-   a[2] = copysignf (b[2], c[2]) + 3.0f + sqrtf (d[2]);
-   a[3] = copysignf (b[3], c[3]) + 4.0f + sqrtf (d[3]);
-   a[4] = copysignf (b[4], c[4]) + 5.0f + sqrtf (d[4]);
-   a[5] = copysignf (b[5], c[5]) + 6.0f + sqrtf (d[5]);
-   a[6] = copysignf (b[6], c[6]) + 7.0f + sqrtf (d[6]);
-   a[7] = copysignf (b[7], c[7]) + 8.0f + sqrtf (d[7]);
- }
- 
- __attribute__((noinline, noclone)) int
- main1 ()
- {
-   int i;
- 
-   for (i = 0; i < 8; i++)
-     {
-       asm ("");
-       b[i] = (i & 1) ? -4 * i : 4 * i;
-       c[i] = (i & 2) ? -8 * i : 8 * i;
-       d[i] = i * i;
-     }
-   f1 ();
- #pragma GCC novector
-   for (i = 0; i < 8; i++)
-     if (fabsf (((i & 2) ? -4 * i : 4 * i) + 1 + i + i - a[i]) >= 0.0001f)
-       abort ();
-   return 0;
- }
- 
- int
- main ()
- {
-   check_vect ();
-   return main1 ();
- }
- 
- /* { dg-final { scan-tree-dump-times "optimized: basic block" 1 "slp2" { target { vect_call_copysignf && vect_call_sqrtf } } } } */
--- 0 ----
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-2.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-2.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-2.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,69 ****
- /* { dg-require-effective-target vect_double } */
- /* { dg-additional-options "-ffast-math" } */
- 
- #include "tree-vect.h"
- 
- extern long int lrint (double);
- extern void abort (void);
- long int a[64];
- double b[64];
- 
- __attribute__((noinline, noclone)) void
- f1 (void)
- {
-   a[0] = lrint (b[0]) + 1;
-   a[1] = lrint (b[1]) + 2;
-   a[2] = lrint (b[2]) + 3;
-   a[3] = lrint (b[3]) + 4;
-   a[4] = lrint (b[4]) + 5;
-   a[5] = lrint (b[5]) + 6;
-   a[6] = lrint (b[6]) + 7;
-   a[7] = lrint (b[7]) + 8;
- }
- 
- __attribute__((noinline, noclone)) void
- f2 (void)
- {
-   a[0] = lrint (b[0]);
-   a[1] = lrint (b[1]);
-   a[2] = lrint (b[2]);
-   a[3] = lrint (b[3]);
-   a[4] = lrint (b[4]);
-   a[5] = lrint (b[5]);
-   a[6] = lrint (b[6]);
-   a[7] = lrint (b[7]);
- }
- 
- __attribute__((noinline, noclone)) int
- main1 ()
- {
-   int i;
- 
-   for (i = 0; i < 8; i++)
-     {
-       asm ("");
-       b[i] = ((i & 1) ? -4 * i : 4 * i) + 0.25;
-     }
-   f1 ();
- #pragma GCC novector
-   for (i = 0; i < 8; i++)
-     if (a[i] != ((i & 1) ? -4 * i : 4 * i) + 1 + i)
-       abort ();
-     else
-       a[i] = 131.25;
-   f2 ();
- #pragma GCC novector
-   for (i = 0; i < 8; i++)
-     if (a[i] != ((i & 1) ? -4 * i : 4 * i))
-       abort ();
-   return 0;
- }
- 
- int
- main ()
- {
-   check_vect ();
-   return main1 ();
- }
- 
- /* { dg-final { scan-tree-dump-times "optimized: basic block" 2 "slp2" { target vect_call_lrint } } } */
--- 0 ----
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-3.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-3.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-3.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/fast-math-bb-slp-call-3.c	Thu Jan  1 00:00:00 1970
***************
*** 1,76 ****
- /* { dg-additional-options "-ffast-math" } */
- 
- #include "tree-vect.h"
- 
- extern double sqrt (double);
- extern double fabs (double);
- extern double ceil (double);
- extern double floor (double);
- 
- extern void abort (void);
- 
- #define MIN(a, b) (((a) < (b)) ? (a) : (b))
- #define MAX(a, b) (((a) > (b)) ? (a) : (b))
- 
- typedef struct {
-     int initialHeight, initialWidth;
-     int rotatedHeight, rotatedWidth;
-     int autoCropHeight, autoCropWidth;
- } ufraw_data;
- 
- void __attribute__((noinline,noclone))
- ufraw_test(ufraw_data *uf)
- {
-   int iWidth = uf->initialWidth;
-   int iHeight = uf->initialHeight;
-   double aspectRatio = ((double)iWidth) / iHeight;
-   double midX = iWidth / 2.0 - 0.5;
-   double midY = iHeight / 2.0 - 0.5;
-   double maxX = 0, maxY = 0;
-   double minX = 999999, minY = 999999;
-   double lastX = 0, lastY = 0, area = 0;
-   double scale;
-   int i;
-   for (i = 0; i < iWidth + iHeight - 1; i++)
-     {
-       int x, y;
-       if (i < iWidth) { // Trace the left border of the image
- 	  x = i;
- 	  y = 0;
-       } else { // Trace the bottom border of the image
- 	  x = iWidth - 1;
- 	  y = i - iWidth + 1;
-       }
-       double srcX = x - midX;
-       double srcY = y - midY;
-       // A digital planimeter:
-       area += srcY * lastX - srcX * lastY;
-       lastX = srcX;
-       lastY = srcY;
-       maxX = MAX(maxX, fabs(srcX));
-       maxY = MAX(maxY, fabs(srcY));
-       if (fabs(srcX / srcY) > aspectRatio)
- 	minX = MIN(minX, fabs(srcX));
-       else
- 	minY = MIN(minY, fabs(srcY));
-     }
-   scale = sqrt((iWidth - 1) * (iHeight - 1) / area);
-   uf->rotatedWidth = MIN(ceil(2 * maxX + 1.0) * scale, 2 * iWidth);
-   uf->rotatedHeight = MIN(ceil(2 * maxY + 1.0) * scale, 2 * iHeight);
-   uf->autoCropWidth = MIN(floor(2 * minX) * scale, 2 * iWidth);
-   uf->autoCropHeight = MIN(floor(2 * minY) * scale, 2 * iHeight);
-   if (uf->autoCropWidth != 3)
-     abort ();
- }
- 
- int main()
- {
-   ufraw_data uf_data;
-   ufraw_data *uf = &uf_data;
-   check_vect ();
-   uf->initialWidth = 4;
-   uf->initialHeight = 5;
-   ufraw_test(uf);
-   return 0;
- }
- 
--- 0 ----
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/ggc-pr37574.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/ggc-pr37574.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/ggc-pr37574.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/ggc-pr37574.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-additional-options "--param ggc-min-expand=0 --param ggc-min-heapsize=0" } */
  
  #include <stdarg.h>
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-fre-pre-pr50208.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-fre-pre-pr50208.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-fre-pre-pr50208.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-fre-pre-pr50208.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-additional-options "-fno-tree-fre -fno-tree-pre" } */
  
  char c;
  int a, b;
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-1.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-1.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-1.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-1.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop -fno-tree-reassoc" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-2.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-2.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-2.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-2.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop -fno-tree-reassoc" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-3.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-3.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-3.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-3.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop -fno-tree-reassoc" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-4.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-4.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-4.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-4.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop -fno-tree-reassoc" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-5.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-5.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-5.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-5.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop -fno-tree-reassoc" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-slp-reduc-7.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-slp-reduc-7.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-slp-reduc-7.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-slp-reduc-7.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* Disabling epilogues until we find a better way to deal with scans.  */
  /* { dg-additional-options "--param vect-epilogues-nomask=0" } */
+ /* { dg-additional-options "-fno-tree-scev-cprop -fno-tree-reassoc" } */
  /* { dg-require-effective-target vect_int } */
  
  #include <stdarg.h>
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-1.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-1.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-1.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-1.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #define N 40
  signed short image[N][N];
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10a.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10a.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10a.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10a.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10b.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10b.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10b.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-10b.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-11.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-11.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-11.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-11.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-12.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-12.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-12.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-12.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-require-effective-target vect_int } */
  /* { dg-require-effective-target vect_pack_trunc } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-13.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-13.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-13.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-13.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-require-effective-target vect_int } */
  /* { dg-additional-options "--param max-completely-peel-times=1" } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-14.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-14.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-14.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-14.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-15.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-15.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-15.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-15.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-16.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-16.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-16.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-16.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-17.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-17.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-17.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-17.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-18.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-18.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-18.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-18.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-19.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-19.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-19.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-19.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-2.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-2.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-2.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-2.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-do compile } */
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #define N 40
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-20.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-20.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-20.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-20.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-21.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-21.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-21.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-21.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-22.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-22.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-22.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-22.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-3.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-3.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-3.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-3.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-4.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-4.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-4.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-4.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-5.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-5.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-5.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-5.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6-global.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6-global.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6-global.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6-global.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-7.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-7.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-7.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-7.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-require-effective-target vect_int } */
  /* { dg-additional-options "--param max-completely-peel-times=1" } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-8.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-8.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-8.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-8.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9a.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9a.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9a.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9a.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9b.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9b.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9b.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-9b.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-pr49199.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-pr49199.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-pr49199.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-pr49199.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-do compile } */
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  int const_bar (void) __attribute__ ((__const__));
  int pure_bar (void) __attribute__ ((__pure__));
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-1.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-1.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-1.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-1.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-do compile } */
  /* { dg-additional-options "-O -w" } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  int foo;
  int
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-2.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-2.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-2.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-2.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-do compile } */
  /* { dg-additional-options "-O -w" } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  int
  nr (int xe)
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-3.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-3.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-3.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-3.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-do compile } */
  /* { dg-additional-options "-O -w" } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  int foo;
  int
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-4.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-4.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-4.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-4.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-do compile } */
  /* { dg-additional-options "-O -w" } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  int
  nr (unsigned int xe, unsigned int qqn)
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-5.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-5.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-5.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-pr86725-5.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-do compile } */
  /* { dg-additional-options "-O -w" } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  unsigned int foo;
  int
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-slp-30.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-slp-30.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-slp-30.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-slp-30.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-slp-31.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-slp-31.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-slp-31.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-slp-31.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-1.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-1.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-1.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-1.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-2.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-2.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-2.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-2.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-3.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-3.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-3.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-scevccp-vect-iv-3.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* Disabling epilogues until we find a better way to deal with scans.  */
  /* { dg-additional-options "--param vect-epilogues-nomask=0" } */
+ /* { dg-additional-options "-fno-tree-scev-cprop" } */
  /* { dg-do compile } */
  /* { dg-require-effective-target vect_int } */
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-31.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-31.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-31.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-31.c	Sun Feb 15 22:32:10 2026
***************
*** 2,7 ****
--- 2,8 ----
  /* { dg-additional-options "--param vect-epilogues-nomask=0" } */
  /* { dg-require-effective-target vect_int } */
  /* { dg-add-options bind_pic_locally } */
+ /* { dg-additional-options "-fno-section-anchors" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-34.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-34.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-34.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-34.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-require-effective-target vect_int } */
  /* { dg-add-options bind_pic_locally } */
+ /* { dg-additional-options "-fno-section-anchors" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-36.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-36.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-36.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-36.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-require-effective-target vect_int } */
  /* { dg-add-options bind_pic_locally } */
+ /* { dg-additional-options "-fno-section-anchors" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-64.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-64.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-64.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-64.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* Disabling epilogues until we find a better way to deal with scans.  */
  /* { dg-additional-options "--param vect-epilogues-nomask=0" } */
+ /* { dg-additional-options "-fno-section-anchors" } */
  /* { dg-require-effective-target vect_int } */
  /* { dg-add-options bind_pic_locally } */
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-65.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-65.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-65.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-65.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-require-effective-target vect_int } */
  /* { dg-add-options bind_pic_locally } */
+ /* { dg-additional-options "-fno-section-anchors" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-66.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-66.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-66.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-66.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* Disabling epilogues until we find a better way to deal with scans.  */
  /* { dg-additional-options "--param vect-epilogues-nomask=0" } */
+ /* { dg-additional-options "-fno-section-anchors" } */
  /* { dg-require-effective-target vect_int } */
  
  #include <stdarg.h>
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-68.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-68.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-68.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-68.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* Disabling epilogues until we find a better way to deal with scans.  */
  /* { dg-additional-options "--param vect-epilogues-nomask=0" } */
+ /* { dg-additional-options "-fno-section-anchors" } */
  /* { dg-require-effective-target vect_int } */
  /* { dg-skip-if "AArch64 tiny code model does not support programs larger than 1MiB" {aarch64_tiny} } */
  /* { dg-add-options bind_pic_locally } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-69.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-69.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-69.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-69.c	Sun Feb 15 22:32:10 2026
***************
*** 1,6 ****
--- 1,7 ----
  /* { dg-require-effective-target vect_int } */
  /* { dg-add-options bind_pic_locally } */
  /* { dg-additional-options "--param vect-max-peeling-for-alignment=0" } */
+ /* { dg-additional-options "-fno-section-anchors" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-outer-4h.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-outer-4h.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-outer-4h.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-outer-4h.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-section-anchors" } */
  #include <stdarg.h>
  #include "tree-vect.h"
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-trapping-math-1.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-trapping-math-1.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-trapping-math-1.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-trapping-math-1.c	Sun Feb 15 22:32:10 2026
***************
*** 1,6 ****
--- 1,8 ----
  /* Test for pr30485.  */
  /* { dg-do compile } */
  /* { dg-require-effective-target vect_condition } */
+ /* { dg-additional-options "-fno-trapping-math" } */
+ 
  void
  foo (float a[32], float b[2][32])
  {
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-trapping-math-2.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-trapping-math-2.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-trapping-math-2.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-trapping-math-2.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* Test for pr30485.  */
  /* { dg-require-effective-target vect_float } */
+ /* { dg-additional-options "-fno-trapping-math" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-111.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-111.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-111.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-111.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_float } */
+ /* { dg-additional-options "-fno-trapping-math" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-11.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-11.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-11.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-11.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-require-effective-target vect_condition } */
  /* { dg-require-effective-target vect_float } */
+ /* { dg-additional-options "-fno-trapping-math" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-12.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-12.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-12.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-12.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-require-effective-target vect_condition } */
  /* { dg-require-effective-target vect_float } */
+ /* { dg-additional-options "-fno-trapping-math" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-13.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-13.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-13.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-13.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-require-effective-target vect_condition } */
  /* { dg-require-effective-target vect_float } */
+ /* { dg-additional-options "-fno-trapping-math" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-14.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-14.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-14.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-14.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-require-effective-target vect_condition } */
  /* { dg-require-effective-target vect_float } */
+ /* { dg-additional-options "-fno-trapping-math" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-15.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-15.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-15.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-trapping-math-vect-ifcvt-15.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-require-effective-target vect_condition } */
  /* { dg-require-effective-target vect_float } */
+ /* { dg-additional-options "-fno-trapping-math" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-tree-dom-vect-bug.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-tree-dom-vect-bug.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-tree-dom-vect-bug.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-tree-dom-vect-bug.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-dominator-opts" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-tree-fre-pr50039.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-tree-fre-pr50039.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-tree-fre-pr50039.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-tree-fre-pr50039.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-additional-options "-fno-tree-fre" } */
  
  extern unsigned char g_5;
  extern int g_31, g_76;
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-tree-pre-pr45241.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-tree-pre-pr45241.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-tree-pre-pr45241.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-tree-pre-pr45241.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* PR tree-optimization/45241 */
  /* { dg-do compile } */
+ /* { dg-additional-options "-fno-tree-pre" } */
  
  int
  foo (short x)
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-tree-pre-slp-29.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-tree-pre-slp-29.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-tree-pre-slp-29.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-tree-pre-slp-29.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-fno-tree-pre" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-tree-reassoc-bb-slp-12.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-tree-reassoc-bb-slp-12.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-tree-reassoc-bb-slp-12.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-tree-reassoc-bb-slp-12.c	Thu Jan  1 00:00:00 1970
***************
*** 1,51 ****
- /* { dg-require-effective-target vect_int } */
- 
- #include <stdarg.h>
- #include "tree-vect.h"
- 
- #define N 16 
- 
- unsigned int out[N];
- unsigned int in1[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
- unsigned int in2[N] = {10,11,12,13,14,15,16,17,18,19,110,111,112,113,114,115};
- 
- __attribute__ ((noinline)) int
- main1 (unsigned int x, unsigned int y)
- {
-   int i;
-   unsigned int *pin1 = &in1[0];
-   unsigned int *pin2 = &in2[0];
-   unsigned int *pout = &out[0];
-   unsigned int a0, a1, a2, a3;
- 
-   a0 = *pin2++ - *pin1++ + 23;
-   a1 = *pin2++ - *pin1++ + 142;
-   a2 = *pin2++ - *pin1++ + 2;
-   a3 = *pin2++ - *pin1++ + 31;
-   
-   *pout++ = a0 * x;
-   *pout++ = a1 * y;
-   *pout++ = a2 * x;
-   *pout++ = a3 * y;
- 
-   /* Check results.  */
-   if (out[0] != (in2[0] - in1[0] + 23) * x
-       || out[1] != (in2[1] - in1[1] + 142) * y
-       || out[2] != (in2[2] - in1[2] + 2) * x
-       || out[3] != (in2[3] - in1[3] + 31) * y)
-     abort();
- 
-   return 0;
- }
- 
- int main (void)
- {
-   check_vect ();
- 
-   main1 (2, 3);
- 
-   return 0;
- }
- 
- /* { dg-final { scan-tree-dump-times "optimized: basic block" 1 "slp2" { target vect_int_mult } } } */
-   
--- 0 ----
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-tree-sra-bb-slp-pr50730.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-tree-sra-bb-slp-pr50730.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/no-tree-sra-bb-slp-pr50730.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/no-tree-sra-bb-slp-pr50730.c	Thu Jan  1 00:00:00 1970
***************
*** 1,16 ****
- /* { dg-do compile } */
- /* { dg-require-effective-target vect_float } */
- 
- typedef __complex__ float Value;
- typedef struct {
-   Value a[16 / sizeof (Value)];
- } A;
- 
- A sum(A a,A b)
- {
-   a.a[0]+=b.a[0];
-   a.a[1]+=b.a[1];
-   return a;
- }
- 
- /* { dg-final { scan-tree-dump-times "optimized: basic block" 1 "slp2" } } */
--- 0 ----
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/nodump-extractlast-1.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/nodump-extractlast-1.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/nodump-extractlast-1.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/nodump-extractlast-1.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
! /* Check for a bung in the treatment of LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS when
     using VEC_EXTRACT.  */
  /* { dg-require-effective-target vect_int } */
  
--- 1,4 ----
! /* Check for a bug in the treatment of LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS when
     using VEC_EXTRACT.  */
  /* { dg-require-effective-target vect_int } */
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/nodump-extractlast-2.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/nodump-extractlast-2.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/nodump-extractlast-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/nodump-extractlast-2.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,23 ----
+ /* Check for a bug in the treatment of LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS when
+    using VEC_EXTRACT.  This variant uses .LEN_LOAD which might use QImode
+    vectors during load, but SImode vectors for the extraction.  */
+ int __attribute__ ((noinline, noclone))
+ test_int (int *x, int n, int value)
+ {
+   int last;
+   for (int j = 0; j < n; ++j)
+     {
+       last = x[j];
+       x[j] = last * value;
+     }
+   return last;
+ }
+ 
+ int
+ main ()
+ {
+   int arr[] = {1,2,3,4,5,1};
+   if (test_int (arr, sizeof (arr) / sizeof (arr[0]), 42) != 1)
+     __builtin_abort();
+   return 0;
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/section-anchors-pr27770.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/section-anchors-pr27770.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/section-anchors-pr27770.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/section-anchors-pr27770.c	Sun Feb 15 22:32:10 2026
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target section_anchors } */ 
+ /* { dg-additional-options "-fsection-anchors" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/section-anchors-vect-69.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/section-anchors-vect-69.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/section-anchors-vect-69.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/section-anchors-vect-69.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-require-effective-target section_anchors } */
  /* { dg-additional-options "--param vect-max-peeling-for-alignment=0" } */
+ /* { dg-additional-options "-fsection-anchors" } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/unswitch-loops-pr26969.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/unswitch-loops-pr26969.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/unswitch-loops-pr26969.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/unswitch-loops-pr26969.c	Sun Feb 15 22:32:10 2026
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-do compile } */
  /* { dg-require-effective-target vect_int } */
+ /* { dg-additional-options "-funswitch-loops" } */
  
  void
  ruby_re_compile_fastmap (char *fastmap, int options)
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/vec-scal-opt.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/vec-scal-opt.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/vec-scal-opt.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/vec-scal-opt.c	Thu Jan  1 00:00:00 1970
***************
*** 1,22 ****
- /* { dg-do compile } */
- /* { dg-require-effective-target vect_shift } */
- /* { dg-require-effective-target vect_int } */
- 
- #define vidx(type, vec, idx) (*((type *) &(vec) + idx))
- #define vector(elcount, type)  \
- __attribute__((vector_size((elcount)*sizeof(type)))) type
- 
- short k;
- 
- int main (int argc, char *argv[]) {
-    k = argc;
-    vector(8, short) v0 = {argc,1,2,3,4,5,6,7};
-    vector(8, short) v2 = {k,   k,k,k,k,k,k,k};
-    vector(8, short) r1;
- 
-    r1 = v0 >> v2;
- 
-    return vidx(short, r1, 0);
- }
- 
- /* { dg-final { scan-tree-dump-times ">> _\[0-9\]*" 1 "veclower21" } } */
--- 0 ----
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/vec-scal-opt1.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/vec-scal-opt1.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/vec-scal-opt1.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/vec-scal-opt1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,20 ****
- /* { dg-do compile } */
- /* { dg-require-effective-target vect_shift } */
- /* { dg-require-effective-target vect_int } */
- 
- #define vidx(type, vec, idx) (*((type *) &(vec) + idx))
- #define vector(elcount, type)  \
- __attribute__((vector_size((elcount)*sizeof(type)))) type
- 
- short k;
- 
- int main (int argc, char *argv[]) {
-    vector(8, short) v0 = {argc,1,2,3,4,5,6,7};
-    vector(8, short) r1;
- 
-    r1 = v0 >> (vector(8, short)){2,2,2,2,2,2,2,2};
- 
-    return vidx(short, r1, 0);
- }
- 
- /* { dg-final { scan-tree-dump-times ">> 2" 1 "veclower21" } } */
--- 0 ----
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/vec-scal-opt2.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/vec-scal-opt2.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/vec-scal-opt2.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/vec-scal-opt2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,19 ****
- /* { dg-do compile } */
- /* { dg-require-effective-target vect_shift } */
- /* { dg-require-effective-target vect_int } */
- 
- #define vidx(type, vec, idx) (*((type *) &(vec) + idx))
- #define vector(elcount, type)  \
- __attribute__((vector_size((elcount)*sizeof(type)))) type
- 
- int main (int argc, char *argv[]) {
-    vector(8, short) v0 = {argc,1,2,3,4,5,6,7};
-    vector(8, short) v1 = {2,2,2,2,2,2,2,2};
-    vector(8, short) r1;
- 
-    r1 = v0 >> v1;
- 
-    return vidx(short, r1, 0);
- }
- 
- /* { dg-final { scan-tree-dump-times ">> 2" 1 "veclower21" } } */
--- 0 ----
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/veclower/vec-scal-opt.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/veclower/vec-scal-opt.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/veclower/vec-scal-opt.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/veclower/vec-scal-opt.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_shift } */
+ /* { dg-require-effective-target vect_int } */
+ 
+ #define vidx(type, vec, idx) (*((type *) &(vec) + idx))
+ #define vector(elcount, type)  \
+ __attribute__((vector_size((elcount)*sizeof(type)))) type
+ 
+ short k;
+ 
+ int main (int argc, char *argv[]) {
+    k = argc;
+    vector(8, short) v0 = {argc,1,2,3,4,5,6,7};
+    vector(8, short) v2 = {k,   k,k,k,k,k,k,k};
+    vector(8, short) r1;
+ 
+    r1 = v0 >> v2;
+ 
+    return vidx(short, r1, 0);
+ }
+ 
+ /* { dg-final { scan-tree-dump-times ">> _\[0-9\]*" 1 "veclower21" } } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/veclower/vec-scal-opt1.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/veclower/vec-scal-opt1.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/veclower/vec-scal-opt1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/veclower/vec-scal-opt1.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_shift } */
+ /* { dg-require-effective-target vect_int } */
+ 
+ #define vidx(type, vec, idx) (*((type *) &(vec) + idx))
+ #define vector(elcount, type)  \
+ __attribute__((vector_size((elcount)*sizeof(type)))) type
+ 
+ short k;
+ 
+ int main (int argc, char *argv[]) {
+    vector(8, short) v0 = {argc,1,2,3,4,5,6,7};
+    vector(8, short) r1;
+ 
+    r1 = v0 >> (vector(8, short)){2,2,2,2,2,2,2,2};
+ 
+    return vidx(short, r1, 0);
+ }
+ 
+ /* { dg-final { scan-tree-dump-times ">> 2" 1 "veclower21" } } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/veclower/vec-scal-opt2.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/veclower/vec-scal-opt2.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/veclower/vec-scal-opt2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/veclower/vec-scal-opt2.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_shift } */
+ /* { dg-require-effective-target vect_int } */
+ 
+ #define vidx(type, vec, idx) (*((type *) &(vec) + idx))
+ #define vector(elcount, type)  \
+ __attribute__((vector_size((elcount)*sizeof(type)))) type
+ 
+ int main (int argc, char *argv[]) {
+    vector(8, short) v0 = {argc,1,2,3,4,5,6,7};
+    vector(8, short) v1 = {2,2,2,2,2,2,2,2};
+    vector(8, short) r1;
+ 
+    r1 = v0 >> v1;
+ 
+    return vidx(short, r1, 0);
+ }
+ 
+ /* { dg-final { scan-tree-dump-times ">> 2" 1 "veclower21" } } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/vect-early-break_142-pr124034.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/vect-early-break_142-pr124034.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/vect-early-break_142-pr124034.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/vect-early-break_142-pr124034.c	Sun Feb 15 22:32:10 2026
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-add-options vect_early_break } */
+ 
+ #include "tree-vect.h"
+ 
+ __attribute__((noipa))
+ static 
+ long
+ memeqbyte (char byte, void *data, long length)
+ {
+   char *p = data;
+   for (long i = 0; i < 16; i++, length--)
+     {
+       if (length == 0)
+         return 0;
+       if (p[i] != byte)
+         return 0;
+     }
+   return length;
+ }
+ 
+ #define n 16
+ 
+ int
+ main ()
+ {
+   char iov[n];
+   check_vect ();
+   __builtin_memset (iov, 'x', n);
+   if (memeqbyte('x', iov, n))
+    __builtin_abort();
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/vect-pr114375.c gcc-16-20260215/gcc/testsuite/gcc.dg/vect/vect-pr114375.c
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/vect-pr114375.c	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/vect-pr114375.c	Sun Feb 15 22:32:10 2026
*************** int main()
*** 43,46 ****
    return 0;
  }
  
! /* { dg-final { scan-tree-dump "LOOP VECTORIZED" "vect" { target avx2 } } } */
--- 43,46 ----
    return 0;
  }
  
! /* { dg-final { scan-tree-dump "LOOP VECTORIZED" "vect" { target avx2_runtime } } } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.dg/vect/vect.exp gcc-16-20260215/gcc/testsuite/gcc.dg/vect/vect.exp
*** gcc-16-20260208/gcc/testsuite/gcc.dg/vect/vect.exp	Sun Feb  8 22:32:11 2026
--- gcc-16-20260215/gcc/testsuite/gcc.dg/vect/vect.exp	Sun Feb 15 22:32:10 2026
*************** clearcap-init
*** 54,80 ****
  global VEC_FLAGS
  set VEC_FLAGS $DEFAULT_VECTCFLAGS
  
- global O1_VECTCFLAGS
- set O1_VECTCFLAGS $DEFAULT_VECTCFLAGS
- lappend O1_VECTCFLAGS "-O1"
- lappend O1_VECTCFLAGS "-fdump-tree-vect-details"
- 
- global O_VECTCFLAGS
- set O_VECTCFLAGS $DEFAULT_VECTCFLAGS
- lappend O_VECTCFLAGS "-O"
- lappend O_VECTCFLAGS "-fdump-tree-vect-details"
- 
  lappend DEFAULT_VECTCFLAGS "-O2"
  
- # Tests that should be run without generating dump info
- et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/nodump-*.\[cS\]]] \
- 	"" $DEFAULT_VECTCFLAGS
- 
  # "-O -fdump-tree-veclower2"
  lappend VEC_FLAGS "-O" "-fdump-tree-veclower2"
  et-dg-runtest dg-runtest [lsort [glob -nocomplain \
! 	$srcdir/$subdir/vec-scal-*.\[cS\]]] \
  	"" $VEC_FLAGS
  
  set VECT_SLP_CFLAGS $DEFAULT_VECTCFLAGS
--- 54,65 ----
  global VEC_FLAGS
  set VEC_FLAGS $DEFAULT_VECTCFLAGS
  
  lappend DEFAULT_VECTCFLAGS "-O2"
  
  # "-O -fdump-tree-veclower2"
  lappend VEC_FLAGS "-O" "-fdump-tree-veclower2"
  et-dg-runtest dg-runtest [lsort [glob -nocomplain \
! 	$srcdir/$subdir/veclower/*.\[cS\]]] \
  	"" $VEC_FLAGS
  
  set VECT_SLP_CFLAGS $DEFAULT_VECTCFLAGS
*************** if { [check_effective_target_lto] } {
*** 88,291 ****
      lappend VECT_ADDITIONAL_FLAGS "-flto -ffat-lto-objects"
  }
  foreach flags $VECT_ADDITIONAL_FLAGS {
!     et-dg-runtest dg-runtest [lsort \
! 	[glob -nocomplain $srcdir/$subdir/pr*.\[cS\]]] \
! 	$flags $DEFAULT_VECTCFLAGS
!     et-dg-runtest dg-runtest [lsort \
! 	[glob -nocomplain $srcdir/$subdir/vect-*.\[cS\]]] \
! 	$flags $DEFAULT_VECTCFLAGS
      et-dg-runtest dg-runtest [lsort \
  	[glob -nocomplain $srcdir/$subdir/tsvc/*.\[cS\]]] \
  	$flags $DEFAULT_VECTCFLAGS
-     et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/slp-*.\[cS\]]] \
- 	$flags $DEFAULT_VECTCFLAGS
-     et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/no-fast-math-*.\[cS\]]] \
- 	$flags $DEFAULT_VECTCFLAGS
-     et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/no-math-errno-*.\[cS\]]] \
- 	$flags $DEFAULT_VECTCFLAGS
-     et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/no-vfa-*.\[cS\]]] \
- 	$flags $DEFAULT_VECTCFLAGS
-     et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/fast-math-\[ipsvc\]*.\[cS\]]] \
- 	$flags $DEFAULT_VECTCFLAGS
-     et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/wrapv-*.\[cS\]]] \
- 	$flags $DEFAULT_VECTCFLAGS
-     et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/trapv-*.\[cS\]]] \
- 	$flags $DEFAULT_VECTCFLAGS
  
      et-dg-runtest dg-runtest [lsort \
! 	[glob -nocomplain $srcdir/$subdir/fast-math-bb-slp-*.\[cS\]]] \
! 	$flags $VECT_SLP_CFLAGS
!     et-dg-runtest dg-runtest [lsort \
! 	[glob -nocomplain $srcdir/$subdir/bb-slp*.\[cS\]]] \
  	$flags $VECT_SLP_CFLAGS
  }
  
- #### Tests with special options
- global SAVED_DEFAULT_VECTCFLAGS
- set SAVED_DEFAULT_VECTCFLAGS $DEFAULT_VECTCFLAGS
- set SAVED_VECT_SLP_CFLAGS $VECT_SLP_CFLAGS
- 
- # -fno-tree-dce tests
- set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
- lappend DEFAULT_VECTCFLAGS "-fno-tree-dce"
- et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/no-tree-dce-*.\[cS\]]] \
- 	"" $DEFAULT_VECTCFLAGS
- 
- # -fsection-anchors tests
- set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
- lappend DEFAULT_VECTCFLAGS "-fsection-anchors"
- et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/section-anchors-*.\[cS\]]] \
- 	"" $DEFAULT_VECTCFLAGS
- 
- # alignment-sensitive -fsection-anchors tests
- set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
- lappend DEFAULT_VECTCFLAGS "-fsection-anchors" \
- 	"-fdump-ipa-increase_alignment-details"
- et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/aligned-section-anchors-*.\[cS\]]] \
- 	"" $DEFAULT_VECTCFLAGS
- 
- # -fno-section-anchors tests
- set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
- lappend DEFAULT_VECTCFLAGS "-fno-section-anchors"
- et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/no-section-anchors-*.\[cS\]]] \
- 	"" $DEFAULT_VECTCFLAGS
- 
- # -funswitch-loops tests
- set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
- lappend DEFAULT_VECTCFLAGS "-funswitch-loops"
- et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/unswitch-loops-*.\[cS\]]] \
- 	"" $DEFAULT_VECTCFLAGS
- 
- # -fno-trapping-math tests
- set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
- lappend DEFAULT_VECTCFLAGS "-fno-trapping-math"
- et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/no-trapping-math-*.\[cS\]]] \
- 	"" $DEFAULT_VECTCFLAGS
- 
- # -fno-tree-scev-cprop
- set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
- lappend DEFAULT_VECTCFLAGS "-fno-tree-scev-cprop"
- et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/no-scevccp-vect-*.\[cS\]]] \
- 	"" $DEFAULT_VECTCFLAGS
- 
- # -fno-tree-scev-cprop
- set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
- lappend DEFAULT_VECTCFLAGS "-fno-tree-scev-cprop"
- et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/no-scevccp-pr*.\[cS\]]] \
- 	"" $DEFAULT_VECTCFLAGS
- 
- # -fno-tree-scev-cprop
- set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
- lappend DEFAULT_VECTCFLAGS "-fno-tree-scev-cprop"
- et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/no-scevccp-outer-*.\[cS\]]] \
- 	"" $DEFAULT_VECTCFLAGS
- 
- # -fno-tree-scev-cprop -fno-tree-reassoc
- set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
- lappend DEFAULT_VECTCFLAGS "-fno-tree-scev-cprop" "-fno-tree-reassoc"
- et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/no-scevccp-noreassoc-*.\[cS\]]] \
- 	"" $DEFAULT_VECTCFLAGS
- 
- # -fno-tree-scev-cprop
- set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
- lappend DEFAULT_VECTCFLAGS "-fno-tree-scev-cprop"
- et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/no-scevccp-slp-*.\[cS\]]] \
- 	"" $DEFAULT_VECTCFLAGS
- 
- # -fno-tree-dominator-opts
- set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
- lappend DEFAULT_VECTCFLAGS "-fno-tree-dominator-opts"
- et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/no-tree-dom-*.\[cS\]]] \
- 	"" $DEFAULT_VECTCFLAGS
- 
- # -fno-tree-pre
- set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
- lappend DEFAULT_VECTCFLAGS "-fno-tree-pre"
- et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/no-tree-pre-*.\[cS\]]] \
- 	"" $DEFAULT_VECTCFLAGS
- 
- # With -Os
- set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
- lappend DEFAULT_VECTCFLAGS "-Os"
- et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/Os-vect-*.\[cS\]]] \
- 	"" $DEFAULT_VECTCFLAGS
- 
- # With --param ggc-min-expand=0 --param ggc-min-heapsize=0 
- set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
- lappend DEFAULT_VECTCFLAGS "--param" "ggc-min-expand=0" "--param" "ggc-min-heapsize=0"
- et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/ggc-*.\[cS\]]] \
- 	"" $DEFAULT_VECTCFLAGS
- 
- # With -O3.
- # Don't allow IPA cloning, because it throws our counts out of whack.
- set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
- lappend DEFAULT_VECTCFLAGS "-O3" "-fno-ipa-cp-clone"
- 
- et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/O3-*.\[cS\]]] \
- 	"" $DEFAULT_VECTCFLAGS
- 
- # With -O1
- et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/O1-*.\[cS\]]] \
- 	"" $O1_VECTCFLAGS
- 
- # With -O
- et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/O-*.\[cS\]]] \
- 	"" $O_VECTCFLAGS
- 
- # -fno-tree-reassoc
- set VECT_SLP_CFLAGS $SAVED_VECT_SLP_CFLAGS
- lappend VECT_SLP_CFLAGS "-fno-tree-reassoc"
- et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/no-tree-reassoc-bb-slp-*.\[cS\]]] \
- 	"" $VECT_SLP_CFLAGS
- 
- # -fno-tree-fre
- set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
- lappend DEFAULT_VECTCFLAGS "-fno-tree-fre"
- et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/no-tree-fre-*.\[cS\]]] \
- 	"" $DEFAULT_VECTCFLAGS
- 
- # -fno-tree-fre -fno-tree-pre
- set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
- lappend DEFAULT_VECTCFLAGS "-fno-tree-fre" "-fno-tree-pre"
- et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/no-fre-pre*.\[cS\]]] \
- 	"" $DEFAULT_VECTCFLAGS
- 
- # -fno-tree-sra
- set VECT_SLP_CFLAGS $SAVED_VECT_SLP_CFLAGS
- lappend VECT_SLP_CFLAGS "-fno-tree-sra"
- et-dg-runtest dg-runtest [lsort \
- 	[glob -nocomplain $srcdir/$subdir/no-tree-sra-bb-slp-*.\[cS\]]] \
- 	"" $VECT_SLP_CFLAGS
- 
- 
  # Clean up.
  set dg-do-what-default ${save-dg-do-what-default}
  
--- 73,95 ----
      lappend VECT_ADDITIONAL_FLAGS "-flto -ffat-lto-objects"
  }
  foreach flags $VECT_ADDITIONAL_FLAGS {
!     set tests ""
!     foreach file [glob -nocomplain $srcdir/$subdir/*.\[cS\]] {
! 	if { ! [string match $srcdir/$subdir/bb-slp-*.\[cS\] $file] } {
! 	   lappend tests $file
! 	}
!     }
!     et-dg-runtest dg-runtest $tests $flags $DEFAULT_VECTCFLAGS
! 
      et-dg-runtest dg-runtest [lsort \
  	[glob -nocomplain $srcdir/$subdir/tsvc/*.\[cS\]]] \
  	$flags $DEFAULT_VECTCFLAGS
  
      et-dg-runtest dg-runtest [lsort \
! 	[glob -nocomplain $srcdir/$subdir/bb-slp-*.\[cS\]]] \
  	$flags $VECT_SLP_CFLAGS
  }
  
  # Clean up.
  set dg-do-what-default ${save-dg-do-what-default}
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.target/aarch64/rev_32_1.c gcc-16-20260215/gcc/testsuite/gcc.target/aarch64/rev_32_1.c
*** gcc-16-20260208/gcc/testsuite/gcc.target/aarch64/rev_32_1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.target/aarch64/rev_32_1.c	Sun Feb 15 22:32:11 2026
***************
*** 0 ****
--- 1,25 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-O2" } */
+ /* { dg-final { check-function-bodies "**" "" } } */
+ 
+ /* If the compiler mistakenly vectorizes byte order reversal
+  * then the resultant code is inevitably less efficient than a
+  * rev instruction.  Guard against such regressions.
+  */
+ typedef unsigned int __u32;
+ typedef unsigned char __u8;
+ 
+ /*
+ ** rev:
+ **	rev	w1, w1
+ **	str	w1, \[x0\]
+ **	ret
+ */
+ void
+ rev (__u8 (*dst)[4], __u32 src)
+ {
+   (*dst)[0] = src >> 24;
+   (*dst)[1] = src >> 16;
+   (*dst)[2] = src >> 8;
+   (*dst)[3] = src >> 0;
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.target/aarch64/rev_32_2.c gcc-16-20260215/gcc/testsuite/gcc.target/aarch64/rev_32_2.c
*** gcc-16-20260208/gcc/testsuite/gcc.target/aarch64/rev_32_2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.target/aarch64/rev_32_2.c	Sun Feb 15 22:32:11 2026
***************
*** 0 ****
--- 1,29 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-O2" } */
+ /* { dg-final { check-function-bodies "**" "" } } */
+ 
+ /* If the compiler mistakenly vectorizes byte order reversal
+  * then the resultant code is inevitably less efficient than a
+  * rev instruction.  Guard against such regressions.
+  */
+ typedef unsigned int __u32;
+ typedef unsigned char __u8;
+ 
+ /*
+ ** rev2:
+ **	ldr	w0, \[x0\]
+ **	rev	w0, w0
+ **	ret
+ */
+ __u32
+ rev2 (const __u8 (*src)[4])
+ {
+   __u32 dst = 0;
+ 
+   dst |= (__u32) (*src)[3] << 0;
+   dst |= (__u32) (*src)[2] << 8;
+   dst |= (__u32) (*src)[1] << 16;
+   dst |= (__u32) (*src)[0] << 24;
+ 
+   return dst;
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.target/aarch64/rev_32_3.c gcc-16-20260215/gcc/testsuite/gcc.target/aarch64/rev_32_3.c
*** gcc-16-20260208/gcc/testsuite/gcc.target/aarch64/rev_32_3.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.target/aarch64/rev_32_3.c	Sun Feb 15 22:32:11 2026
***************
*** 0 ****
--- 1,26 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-O2" } */
+ /* { dg-final { check-function-bodies "**" "" } } */
+ 
+ /* If the compiler mistakenly vectorizes byte order reversal
+  * then the resultant code is inevitably less efficient than a
+  * rev instruction.  Guard against such regressions.
+  */
+ typedef unsigned char __u8;
+ 
+ /*
+ ** rev3:
+ **	ldr	w1, \[x1\]
+ **	rev	w1, w1
+ **	str	w1, \[x0\]
+ **	ret
+ */
+ void
+ rev3 (unsigned char (*__restrict dst)[4],
+       const unsigned char (*__restrict src)[4])
+ {
+   (*dst)[0] = (*src)[3];
+   (*dst)[1] = (*src)[2];
+   (*dst)[2] = (*src)[1];
+   (*dst)[3] = (*src)[0];
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.target/aarch64/sme/sme-shrinkwrap.c gcc-16-20260215/gcc/testsuite/gcc.target/aarch64/sme/sme-shrinkwrap.c
*** gcc-16-20260208/gcc/testsuite/gcc.target/aarch64/sme/sme-shrinkwrap.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.target/aarch64/sme/sme-shrinkwrap.c	Sun Feb 15 22:32:11 2026
***************
*** 0 ****
--- 1,78 ----
+ /* { dg-options "-O3 -fshrink-wrap" } */
+ /* { dg-do run { target { aarch64_sme_hw && aarch64_sve_hw } } } */
+ /* { dg-do compile { target { ! { aarch64_sme_hw && aarch64_sve_hw } } } } */
+ /* { dg-final { check-function-bodies "**" "" } } */
+ 
+ #include <arm_sme.h>
+ 
+ #pragma GCC target "+sve"
+ 
+ [[gnu::noipa]]
+ __arm_streaming
+ int callee (int x)
+ {
+   return 0;
+ }
+ 
+ /*
+ ** foo:
+ **	cbnz	w0, [^\n]*
+ **	cntd	x0
+ **	ret
+ **	...
+ */
+ __arm_streaming
+ int foo(int x)
+ {
+     if (x)
+         return callee(3);
+     return svcntd();
+ }
+ 
+ /*
+ ** bar:
+ **	...
+ **	smstart	[^\n]*
+ **	...
+ ** (
+ **	cntd	[^\n]*
+ **	...
+ **	cbn?z	[^\n]*
+ ** |
+ **	cbn?z	[^\n]*
+ **	...
+ **	cntd	[^\n]*
+ ** )
+ **	...
+ */
+ 
+ __arm_locally_streaming
+ int bar(int x)
+ {
+     if (x)
+         return callee(3);
+     return svcntd();
+ }
+ 
+ /*
+ ** baz:
+ **	cbnz	w0, [^\n]*
+ **	cntd	x0
+ **	ret
+ **	...
+ */
+ __arm_streaming
+ int baz(int x)
+ {
+     if (x)
+         return callee(3);
+     return svcntd();
+ }
+ 
+ [[gnu::noipa]]
+ int main()
+ {
+   if (bar(0) != svcntsd())
+     __builtin_abort();
+   return 0;
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.target/bpf/pr123556.c gcc-16-20260215/gcc/testsuite/gcc.target/bpf/pr123556.c
*** gcc-16-20260208/gcc/testsuite/gcc.target/bpf/pr123556.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.target/bpf/pr123556.c	Sun Feb 15 22:32:11 2026
***************
*** 0 ****
--- 1,33 ----
+ /* PR target/123556.
+    Test that we do not load the bit-fields with a larger aligned load
+    that crosses struct boundaries, which the BPF verifier rejects.  */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -S -dA -masm=normal" } */
+ 
+ struct problem
+ {
+   unsigned char f1;
+   unsigned char f2;
+   struct {
+     unsigned short id;
+     unsigned short val;
+   } stmemb[2];
+ 
+   unsigned char ba:2;
+   unsigned char bb:3;
+ 
+   unsigned short f3;
+ };
+ 
+ int foo (struct problem *p)
+ {
+   if (p->bb != 1)
+     return -1;
+   if (p->ba >= 2)
+     return -1;
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-assembler-not "ldxw" } } */
+ /* { dg-final { scan-assembler-not "ldxdw" } } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.target/i386/pr124056.c gcc-16-20260215/gcc/testsuite/gcc.target/i386/pr124056.c
*** gcc-16-20260208/gcc/testsuite/gcc.target/i386/pr124056.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.target/i386/pr124056.c	Sun Feb 15 22:32:12 2026
***************
*** 0 ****
--- 1,61 ----
+ /* PR middle-end/124056 */
+ /* { dg-do run } */
+ /* { dg-options "-O2 -masm=att" } */
+ 
+ int v;
+ 
+ [[gnu::noipa]] void
+ foo (void)
+ {
+   v = 42;
+ }
+ 
+ [[gnu::noipa]] void
+ bar (void)
+ {
+   v = 43;
+ }
+ 
+ [[gnu::noipa]] int
+ baz (void)
+ {
+   bool err;
+   __asm goto ("movl %1, %%ecx\n\t"
+ 	       "test %%ecx, %%ecx\n\t"
+ 	       "js 1f\n\t"
+ 	       "jmp %l[lab]\n\t"
+ 	    "1: cmpl $-1, %%ecx"
+ 	       : "=@ccz" (err) : "m" (v) : "ecx" : lab);
+   if (err)
+     {
+       bar ();
+       return -1;
+     }
+   return 0;
+ 
+  lab:
+   if (err)
+     {
+       foo ();
+       return -2;
+     }
+ 
+   return 1;
+ }
+ 
+ int
+ main ()
+ {
+   v = 0;
+   if (baz () != -2 || v != 42)
+     __builtin_abort ();
+   v = 1;
+   if (baz () != 1 || v != 1)
+     __builtin_abort ();
+   v = -1;
+   if (baz () != -1 || v != 43)
+     __builtin_abort ();
+   v = -2;
+   if (baz () != 0 || v != -2)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.target/i386/vectorize-aocl1.c gcc-16-20260215/gcc/testsuite/gcc.target/i386/vectorize-aocl1.c
*** gcc-16-20260208/gcc/testsuite/gcc.target/i386/vectorize-aocl1.c	Sun Feb  8 22:32:12 2026
--- gcc-16-20260215/gcc/testsuite/gcc.target/i386/vectorize-aocl1.c	Sun Feb 15 22:32:12 2026
***************
*** 1,4 ****
! /* { dg-do compile { target { ! ia32 } } } */
  /* { dg-options "-O2 -ftree-vectorize -ffast-math -march=znver5 -mveclibabi=aocl" } */
  
  
--- 1,4 ----
! /* { dg-do compile { target { { ! ia32 } && glibc } } } */
  /* { dg-options "-O2 -ftree-vectorize -ffast-math -march=znver5 -mveclibabi=aocl" } */
  
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.target/riscv/pr123911.c gcc-16-20260215/gcc/testsuite/gcc.target/riscv/pr123911.c
*** gcc-16-20260208/gcc/testsuite/gcc.target/riscv/pr123911.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.target/riscv/pr123911.c	Sun Feb 15 22:32:12 2026
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile */
+ /* { dg-options "-march=rv64gv -mabi=lp64d" { target { rv64 } } } */
+ /* { dg-options "-march=rv32gv -mabi=ilp32" { target { rv32 } } } */
+ 
+ typedef __attribute__((__vector_size__(8))) char W;
+ typedef __attribute__((__vector_size__(64))) short V;
+ 
+ V
+ foo(V v, W w)
+ {
+   __builtin_memmove(30 + (char *)&v, &w, 1);
+   __builtin_memmove(&v, &w, 8);
+   return v;
+ }
+ 
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.target/riscv/rvv/pr124038.c gcc-16-20260215/gcc/testsuite/gcc.target/riscv/rvv/pr124038.c
*** gcc-16-20260208/gcc/testsuite/gcc.target/riscv/rvv/pr124038.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.target/riscv/rvv/pr124038.c	Sun Feb 15 22:32:12 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 --param=avoid-fma-max-bits=8 -march=rv64gv -mabi=lp64d -fdump-tree-widening_mul" } */
+ 
+ typedef __attribute__((__vector_size__(1))) unsigned char U;
+ typedef __attribute__((__vector_size__(1))) signed char V;
+ 
+ U u;
+ signed char c;
+ 
+ U
+ foo(V v)
+ {
+   v *= c;
+   return u + v;
+ }
+ 
+ /* { dg-final { scan-tree-dump "FMA" "widening_mul" } } */
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.target/s390/pr124079.c gcc-16-20260215/gcc/testsuite/gcc.target/s390/pr124079.c
*** gcc-16-20260208/gcc/testsuite/gcc.target/s390/pr124079.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gcc.target/s390/pr124079.c	Sun Feb 15 22:32:12 2026
***************
*** 0 ****
--- 1,8 ----
+ /* PR rtl-optimization/124079 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -march=z13" } */
+ 
+ int foo (const char *a, const char *b)
+ {
+   return __builtin_strcmp (a, b);
+ }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-1.c gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-1.c
*** gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-1.c	Sun Feb  8 22:32:13 2026
--- gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-1.c	Sun Feb 15 22:32:12 2026
***************
*** 1,5 ****
  /* { dg-do compile { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=native -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1 --param=min-vect-loop-bound=0" } */
  
--- 1,5 ----
  /* { dg-do compile { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=z14 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1 --param=min-vect-loop-bound=0" } */
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-2.c gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-2.c
*** gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-2.c	Sun Feb  8 22:32:13 2026
--- gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-2.c	Sun Feb 15 22:32:12 2026
***************
*** 1,5 ****
  /* { dg-do compile { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=native -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1 --param=min-vect-loop-bound=0" } */
  
--- 1,5 ----
  /* { dg-do compile { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=z14 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1 --param=min-vect-loop-bound=0" } */
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-3.c gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-3.c
*** gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-3.c	Sun Feb  8 22:32:13 2026
--- gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-3.c	Sun Feb 15 22:32:12 2026
***************
*** 1,5 ****
  /* { dg-do compile { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=native -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1 --param=min-vect-loop-bound=0" } */
  
--- 1,5 ----
  /* { dg-do compile { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=z14 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1 --param=min-vect-loop-bound=0" } */
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-7.c gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-7.c
*** gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-7.c	Sun Feb  8 22:32:13 2026
--- gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-7.c	Sun Feb 15 22:32:12 2026
***************
*** 1,5 ****
  /* { dg-do compile { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=native -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -ffast-math -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1 --param=min-vect-loop-bound=0" } */
  
--- 1,5 ----
  /* { dg-do compile { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=z14 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -ffast-math -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1 --param=min-vect-loop-bound=0" } */
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-1.c gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-1.c
*** gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-1.c	Sun Feb  8 22:32:13 2026
--- gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-1.c	Sun Feb 15 22:32:12 2026
***************
*** 1,5 ****
  /* { dg-do run { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=native -O2 -ftree-vectorize -fno-vect-cost-model -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1" } */
  
--- 1,5 ----
  /* { dg-do run { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=z14 -O2 -ftree-vectorize -fno-vect-cost-model -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1" } */
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-2.c gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-2.c
*** gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-2.c	Sun Feb  8 22:32:13 2026
--- gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-2.c	Sun Feb 15 22:32:12 2026
***************
*** 1,5 ****
  /* { dg-do run { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=native -O2 -ftree-vectorize -fno-vect-cost-model -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1" } */
  
--- 1,5 ----
  /* { dg-do run { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=z14 -O2 -ftree-vectorize -fno-vect-cost-model -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1" } */
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-3.c gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-3.c
*** gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-3.c	Sun Feb  8 22:32:13 2026
--- gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-3.c	Sun Feb 15 22:32:12 2026
***************
*** 1,5 ****
  /* { dg-do run { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=native -O2 -ftree-vectorize -fno-vect-cost-model -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1" } */
  
--- 1,5 ----
  /* { dg-do run { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=z14 -O2 -ftree-vectorize -fno-vect-cost-model -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1" } */
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-7.c gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-7.c
*** gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-7.c	Sun Feb  8 22:32:13 2026
--- gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-epil-run-7.c	Sun Feb 15 22:32:12 2026
***************
*** 1,5 ****
  /* { dg-do run { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=native -O2 -ftree-vectorize -fno-vect-cost-model -ffast-math -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1" } */
  
--- 1,5 ----
  /* { dg-do run { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=z14 -O2 -ftree-vectorize -fno-vect-cost-model -ffast-math -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=1" } */
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-1.c gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-1.c
*** gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-1.c	Sun Feb  8 22:32:13 2026
--- gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-1.c	Sun Feb 15 22:32:12 2026
***************
*** 1,5 ****
  /* { dg-do compile { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=native -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2" } */
  
--- 1,5 ----
  /* { dg-do compile { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=z14 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2" } */
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-2.c gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-2.c
*** gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-2.c	Sun Feb  8 22:32:13 2026
--- gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-2.c	Sun Feb 15 22:32:12 2026
***************
*** 1,5 ****
  /* { dg-do compile { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=native -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2" } */
  
--- 1,5 ----
  /* { dg-do compile { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=z14 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2" } */
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-3.c gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-3.c
*** gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-3.c	Sun Feb  8 22:32:13 2026
--- gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-3.c	Sun Feb 15 22:32:12 2026
***************
*** 1,5 ****
  /* { dg-do compile { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=native -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2 --param=min-vect-loop-bound=0" } */
  
--- 1,5 ----
  /* { dg-do compile { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=z14 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2 --param=min-vect-loop-bound=0" } */
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-7.c gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-7.c
*** gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-7.c	Sun Feb  8 22:32:13 2026
--- gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-7.c	Sun Feb 15 22:32:12 2026
***************
*** 1,5 ****
  /* { dg-do compile { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=native -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2" } */
  
--- 1,5 ----
  /* { dg-do compile { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=z14 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2" } */
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-1.c gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-1.c
*** gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-1.c	Sun Feb  8 22:32:13 2026
--- gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-1.c	Sun Feb 15 22:32:12 2026
***************
*** 1,5 ****
  /* { dg-do run { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=native -O2 -ftree-vectorize -fno-vect-cost-model -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2" } */
  
--- 1,5 ----
  /* { dg-do run { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=z14 -O2 -ftree-vectorize -fno-vect-cost-model -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2" } */
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-2.c gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-2.c
*** gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-2.c	Sun Feb  8 22:32:13 2026
--- gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-2.c	Sun Feb 15 22:32:12 2026
***************
*** 1,5 ****
  /* { dg-do run { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=native -O2 -ftree-vectorize -fno-vect-cost-model -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2" } */
  
--- 1,5 ----
  /* { dg-do run { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=z14 -O2 -ftree-vectorize -fno-vect-cost-model -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2" } */
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-3.c gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-3.c
*** gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-3.c	Sun Feb  8 22:32:13 2026
--- gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-3.c	Sun Feb 15 22:32:12 2026
***************
*** 1,5 ****
  /* { dg-do run { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=native -O2 -ftree-vectorize -fno-vect-cost-model -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2" } */
  
--- 1,5 ----
  /* { dg-do run { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=z14 -O2 -ftree-vectorize -fno-vect-cost-model -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2" } */
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-7.c gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-7.c
*** gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-7.c	Sun Feb  8 22:32:13 2026
--- gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-full-run-7.c	Sun Feb 15 22:32:12 2026
***************
*** 1,5 ****
  /* { dg-do run { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=native -O2 -ftree-vectorize -fno-vect-cost-model -ffast-math -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2" } */
  
--- 1,5 ----
  /* { dg-do run { target { lp64 && s390_vx } } } */
! /* { dg-options "-march=z14 -O2 -ftree-vectorize -fno-vect-cost-model -ffast-math -fno-trapping-math" } */
  
  /* { dg-additional-options "--param=vect-partial-vector-usage=2" } */
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-small.c gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-small.c
*** gcc-16-20260208/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-small.c	Sun Feb  8 22:32:13 2026
--- gcc-16-20260215/gcc/testsuite/gcc.target/s390/vector/partial/s390-vec-length-small.c	Sun Feb 15 22:32:12 2026
***************
*** 1,5 ****
  /* { dg-do compile { target { lp64 && s390_vx } } } */
! /* { dg-options "-mzarch -march=native -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops" } */
  
  /* { dg-additional-options "--param=min-vect-loop-bound=0 --param=vect-partial-vector-usage=2 -fno-trapping-math" } */
  
--- 1,5 ----
  /* { dg-do compile { target { lp64 && s390_vx } } } */
! /* { dg-options "-mzarch -march=z14 -O2 -ftree-vectorize -fno-vect-cost-model -fno-unroll-loops" } */
  
  /* { dg-additional-options "--param=min-vect-loop-bound=0 --param=vect-partial-vector-usage=2 -fno-trapping-math" } */
  
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gfortran.dg/coshape_1.f90 gcc-16-20260215/gcc/testsuite/gfortran.dg/coshape_1.f90
*** gcc-16-20260208/gcc/testsuite/gfortran.dg/coshape_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gfortran.dg/coshape_1.f90	Sun Feb 15 22:32:13 2026
***************
*** 0 ****
--- 1,47 ----
+ ! { dg-do compile }
+ ! { dg-options "-fcoarray=lib -fdump-tree-original" }
+ !
+ ! Test the coshape intrinsic (PR99250)
+ ! 
+ program coshape_1
+    integer, Parameter :: i4 = kind (1_4), i8 = kind (1_8)
+    real, codimension[-1:*] :: cr
+    real, dimension(4,4), codimension[0:2,*] :: cr2
+    integer(i4) :: no_images, val4(2)
+    integer(i8), allocatable :: val8(:)
+ 
+    no_images = num_images()
+ 
+    if (this_image() == 1) then
+ 
+ ! First without the KIND argument...
+       val4(1:1) = coshape(cr)
+       if (val4(1) /= no_images) stop 1
+       if (val4(1) /= 1 + ucobound (cr, 1, i4) - lcobound (cr, 1, i4)) stop 2
+       if (mod (no_images,3) == 0) then
+          val4 = coshape(cr2)
+          if (val4(1) /= 3 .or. product (val4(1:2)) /= no_images) stop 3
+          if (val4(2) /= 1 + ucobound (cr2, 2, i4) - lcobound (cr2, 2, i4)) stop 4
+       else
+          print *, "No. images must be a multiple of 3 for the coshape test #"
+       endif
+ 
+ ! ...then with it
+       if (kind (coshape(cr, kind = i4)) /= i4) stop 5
+       if (kind (coshape(cr, kind = i8)) /= i8) stop 6
+ 
+       val8 = coshape(cr, kind = i8)
+       if (val8(1) /= 1 + ucobound (cr, 1, i8) - lcobound (cr, 1, i8)) stop 7
+       if (val8(1) /= no_images) stop 8
+       if (mod (no_images,3) == 0) then
+          val8 = coshape(cr2, kind = i8)
+          if (val8(1) /= 3 .or. product (val8(1:2)) /= no_images) stop 9
+          if (val8(2) /= 1 + ucobound (cr2, 2, i8) - lcobound (cr2, 2, i8)) stop 10
+       else
+          print *, "No. images must be a multiple of 3 for the coshape test #"
+       endif
+       if (any (shape(cr2) /= [4,4])) stop 11
+    endif
+ 
+ end program coshape_1
+ ! { dg-final { scan-tree-dump-times "_gfortran_caf_num_images" 9 "original" } }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gfortran.dg/finalizer_recursive_alloc_2.f90 gcc-16-20260215/gcc/testsuite/gfortran.dg/finalizer_recursive_alloc_2.f90
*** gcc-16-20260208/gcc/testsuite/gfortran.dg/finalizer_recursive_alloc_2.f90	Sun Feb  8 22:32:14 2026
--- gcc-16-20260215/gcc/testsuite/gfortran.dg/finalizer_recursive_alloc_2.f90	Sun Feb 15 22:32:13 2026
***************
*** 1,5 ****
  ! { dg-do run }
! ! { dg-output " finalizing id\\s+0\\n finalizing id\\s+1\\n finalizer count =\\s+2\\n" }
  ! PR fortran/90519
  
  module pr90519_finalizer_run_mod
--- 1,5 ----
  ! { dg-do run }
! ! { dg-output " finalizing id\\s+0\(\r*\n+) finalizing id\\s+1\(\r*\n+) finalizer count =\\s+2\(\r*\n+)" }
  ! PR fortran/90519
  
  module pr90519_finalizer_run_mod
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gfortran.dg/gomp/pr113436-1.f90 gcc-16-20260215/gcc/testsuite/gfortran.dg/gomp/pr113436-1.f90
*** gcc-16-20260208/gcc/testsuite/gfortran.dg/gomp/pr113436-1.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gfortran.dg/gomp/pr113436-1.f90	Sun Feb 15 22:32:13 2026
***************
*** 0 ****
--- 1,60 ----
+ ! PR middle-end/113436
+ ! { dg-do compile }
+ ! { dg-options "-fopenmp -fdump-tree-omplower" }
+ 
+ module m
+ use iso_c_binding
+ integer, parameter :: omp_allocator_handle_kind = c_intptr_t
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_null_allocator = 0
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_default_mem_alloc = 1
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_large_cap_mem_alloc = 2
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_const_mem_alloc = 3
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_high_bw_mem_alloc = 4
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_low_lat_mem_alloc = 5
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_cgroup_mem_alloc = 6
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_pteam_mem_alloc = 7
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_thread_mem_alloc = 8
+ end
+ 
+ 
+ program g
+ !  use omp_lib
+   use m
+   implicit none
+ 
+   integer :: A, B(10)
+   integer, allocatable :: C(:)
+   integer :: i
+ 
+   A = 5;
+   allocate(C(10))
+   do i = 1, 10
+     B(i) = i + 5
+     C(i) = B(i)
+   end do
+       
+   !$omp target private(A) private(B) private(C) allocate(allocator(omp_high_bw_mem_alloc), align(64): A, B, C)
+       A = 99
+       do i = 1, 10
+         B(i) = -i - 23
+         C(i) = i + 23
+       end do
+   !$omp end target
+ end program g
+ 
+ ! { dg-final { scan-tree-dump "D\\\.\[0-9\]\+ = __builtin_GOMP_alloc \\\(64, 4, 4\\\);" "omplower" { target int32 } } }
+ ! { dg-final { scan-tree-dump "D\\\.\[0-9\]\+ = __builtin_GOMP_alloc \\\(64, 40, 4\\\);" "omplower" { target int32 } } }
+ ! { dg-final { scan-tree-dump-times "D\\\.\[0-9\]\+ = __builtin_GOMP_alloc \\\(64, \[0-9\]\+, 4\\\);" 3 "omplower" } }
+ ! { dg-final { scan-tree-dump "\\\*D\\\.\[0-9\]\+ = 99;" "omplower" } }
+ ! { dg-final { scan-tree-dump "\\\(\\\*D\\\.\[0-9\]\+\\\)\\\[D\\\.\[0-9\]\+\\\] = D\\\.\[0-9\]\+;" "omplower" } }
+ ! { dg-final { scan-tree-dump "D\\\.\[0-9\]\+\\\]\\\[D\\\.\[0-9\]\+\\\] = D\\\.\[0-9\]\+;" "omplower" } }
+ ! { dg-final { scan-tree-dump-times "__builtin_GOMP_free \\\(D\\\.\[0-9\]+, 4\\\)" 3 "omplower" } }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gfortran.dg/gomp/pr113436-2.f90 gcc-16-20260215/gcc/testsuite/gfortran.dg/gomp/pr113436-2.f90
*** gcc-16-20260208/gcc/testsuite/gfortran.dg/gomp/pr113436-2.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gfortran.dg/gomp/pr113436-2.f90	Sun Feb 15 22:32:13 2026
***************
*** 0 ****
--- 1,62 ----
+ ! PR middle-end/113436
+ ! { dg-do compile }
+ ! { dg-options "-fopenmp -fdump-tree-omplower" }
+ 
+ module m
+ use iso_c_binding
+ integer, parameter :: omp_allocator_handle_kind = c_intptr_t
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_null_allocator = 0
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_default_mem_alloc = 1
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_large_cap_mem_alloc = 2
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_const_mem_alloc = 3
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_high_bw_mem_alloc = 4
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_low_lat_mem_alloc = 5
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_cgroup_mem_alloc = 6
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_pteam_mem_alloc = 7
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_thread_mem_alloc = 8
+ end
+ 
+ program g
+ !  use omp_lib
+   use m
+   implicit none
+ 
+   integer :: A, B(10)
+   integer, allocatable :: C(:)
+   integer :: i
+ 
+   A = 5;
+   allocate(C(10))
+   do i = 1, 10
+     B(i) = i + 5
+     C(i) = B(i)
+   end do
+       
+   !$omp target firstprivate(A) firstprivate(B) firstprivate(C) allocate(allocator(omp_high_bw_mem_alloc), align(64): A, B, C)
+     A = 99
+     do i = 1, 10
+       B(i) = -i - 23
+       C(i) = i + 23
+     end do
+   !$omp end target
+ end program g
+ 
+ ! { dg-final { scan-tree-dump "D\\\.\[0-9\]\+ = __builtin_GOMP_alloc \\\(64, 4, 4\\\);" "omplower" { target int32 } } }
+ ! { dg-final { scan-tree-dump "D\\\.\[0-9\]\+ = __builtin_GOMP_alloc \\\(64, 40, 4\\\);" "omplower" { target int32 } } }
+ ! { dg-final { scan-tree-dump-times "D\\\.\[0-9\]\+ = __builtin_GOMP_alloc \\\(64, \[0-9\]\+, 4\\\);" 3 "omplower" } }
+ ! { dg-final { scan-tree-dump "\\\*D\\\.\[0-9\]\+ = D\\\.\[0-9\]\+;" "omplower" } }
+ ! { dg-final { scan-tree-dump "\\\(\\\*D\\\.\[0-9\]\+\\\) = \\\(\\\*D\\\.\[0-9\]\+\\\);" "omplower" } }
+ ! { dg-final { scan-tree-dump "\\\*D\\\.\[0-9\]\+ = \\\*D\\\.\[0-9\]\+;" "omplower" } }
+ ! { dg-final { scan-tree-dump "\\\*D\\\.\[0-9\]\+ = 99;" "omplower" } }
+ ! { dg-final { scan-tree-dump "\\\(\\\*D\\\.\[0-9\]\+\\\)\\\[D\\\.\[0-9\]\+\\\] = D\\\.\[0-9\]\+;" "omplower" } }
+ ! { dg-final { scan-tree-dump "D\\\.\[0-9\]\+\\\]\\\[D\\\.\[0-9\]\+\\\] = D\\\.\[0-9\]\+;" "omplower" } }
+ ! { dg-final { scan-tree-dump-times "__builtin_GOMP_free \\\(D\\\.\[0-9\]+, 4\\\)" 3 "omplower" } }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gfortran.dg/gomp/pr113436-3.f90 gcc-16-20260215/gcc/testsuite/gfortran.dg/gomp/pr113436-3.f90
*** gcc-16-20260208/gcc/testsuite/gfortran.dg/gomp/pr113436-3.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gfortran.dg/gomp/pr113436-3.f90	Sun Feb 15 22:32:13 2026
***************
*** 0 ****
--- 1,50 ----
+ ! PR middle-end/113436
+ ! { dg-do compile }
+ ! { dg-options "-fopenmp -fno-automatic -fdump-tree-omplower" }
+ 
+ module m
+ use iso_c_binding
+ integer, parameter :: omp_allocator_handle_kind = c_intptr_t
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_null_allocator = 0
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_default_mem_alloc = 1
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_large_cap_mem_alloc = 2
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_const_mem_alloc = 3
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_high_bw_mem_alloc = 4
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_low_lat_mem_alloc = 5
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_cgroup_mem_alloc = 6
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_pteam_mem_alloc = 7
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_thread_mem_alloc = 8
+ end
+ 
+ program g
+ !  use omp_lib
+   use m
+   implicit none
+ 
+   integer :: A(10)
+   integer :: i
+ 
+   do i = 1, 10
+     A(i) = i + 5
+   end do
+       
+   !$omp target private(A) allocate(allocator(omp_high_bw_mem_alloc), align(16): A)
+       do i = 1, 10
+         A(i) = -i + 23
+       end do
+   !$omp end target
+ end program g
+ 
+ ! { dg-excess-errors "Flag '-fno-automatic' overwrites '-frecursive' implied by '-fopenmp'" }
+ ! { dg-final { scan-tree-dump "D\\\.\[0-9\]\+ = __builtin_GOMP_alloc \\\(16, 40, 4\\\);" "omplower" { target int32 } } }
+ ! { dg-final { scan-tree-dump "\\\(\\\*D\\\.\[0-9\]\+\\\)\\\[D\\\.\[0-9\]\+\\\] = D\\\.\[0-9\]\+;" "omplower" } }
+ ! { dg-final { scan-tree-dump "__builtin_GOMP_free \\\(D\\\.\[0-9\]+, 4\\\)" "omplower" } }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gfortran.dg/gomp/pr113436-4.f90 gcc-16-20260215/gcc/testsuite/gfortran.dg/gomp/pr113436-4.f90
*** gcc-16-20260208/gcc/testsuite/gfortran.dg/gomp/pr113436-4.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gfortran.dg/gomp/pr113436-4.f90	Sun Feb 15 22:32:13 2026
***************
*** 0 ****
--- 1,51 ----
+ ! PR middle-end/113436
+ ! { dg-do compile }
+ ! { dg-options "-fopenmp -fno-automatic -fdump-tree-omplower" }
+ 
+ module m
+ use iso_c_binding
+ integer, parameter :: omp_allocator_handle_kind = c_intptr_t
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_null_allocator = 0
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_default_mem_alloc = 1
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_large_cap_mem_alloc = 2
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_const_mem_alloc = 3
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_high_bw_mem_alloc = 4
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_low_lat_mem_alloc = 5
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_cgroup_mem_alloc = 6
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_pteam_mem_alloc = 7
+         integer (kind=omp_allocator_handle_kind), &
+                  parameter :: omp_thread_mem_alloc = 8
+ end
+ 
+ program g
+ !  use omp_lib
+   use m
+   implicit none
+ 
+   integer :: A(10)
+   integer :: i
+ 
+   do i = 1, 10
+     A(i) = i + 5
+   end do
+       
+   !$omp target firstprivate(A) allocate(allocator(omp_high_bw_mem_alloc), align(32): A)
+       do i = 1, 10
+         A(i) = -i + 23
+       end do
+   !$omp end target
+ end program g
+ 
+ ! { dg-excess-errors "Flag '-fno-automatic' overwrites '-frecursive' implied by '-fopenmp'" }
+ ! { dg-final { scan-tree-dump "D\\\.\[0-9\]\+ = __builtin_GOMP_alloc \\\(32, 40, 4\\\);" "omplower" { target int32 } } }
+ ! { dg-final { scan-tree-dump "\\\(\\\*D\\\.\[0-9\]\+\\\) = \\\(\\\*D\\\.\[0-9\]\+\\\);" "omplower" } }
+ ! { dg-final { scan-tree-dump "\\\(\\\*D\\\.\[0-9\]\+\\\)\\\[D\\\.\[0-9\]\+\\\] = D\\\.\[0-9\]\+;" "omplower" } }
+ ! { dg-final { scan-tree-dump "__builtin_GOMP_free \\\(D\\\.\[0-9\]+, 4\\\)" "omplower" } }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gfortran.dg/pdt_15.f03 gcc-16-20260215/gcc/testsuite/gfortran.dg/pdt_15.f03
*** gcc-16-20260208/gcc/testsuite/gfortran.dg/pdt_15.f03	Sun Feb  8 22:32:14 2026
--- gcc-16-20260215/gcc/testsuite/gfortran.dg/pdt_15.f03	Sun Feb 15 22:32:13 2026
*************** contains
*** 101,106 ****
      if (int (pop_8 (root)) .ne. 0) STOP 4
    end subroutine
  end program ch2701
! ! { dg-final { scan-tree-dump-times "Pdtlink_8._deallocate " 5 "original" } }
  ! { dg-final { scan-tree-dump-times ".n.data = 0B" 9 "original" } }
  ! { dg-final { scan-tree-dump-times "__builtin_free" 15 "original" } }
--- 101,106 ----
      if (int (pop_8 (root)) .ne. 0) STOP 4
    end subroutine
  end program ch2701
! ! { dg-final { scan-tree-dump-times "PDTlink_8._deallocate " 5 "original" } }
  ! { dg-final { scan-tree-dump-times ".n.data = 0B" 9 "original" } }
  ! { dg-final { scan-tree-dump-times "__builtin_free" 15 "original" } }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gfortran.dg/pdt_71.f03 gcc-16-20260215/gcc/testsuite/gfortran.dg/pdt_71.f03
*** gcc-16-20260208/gcc/testsuite/gfortran.dg/pdt_71.f03	Sun Feb  8 22:32:14 2026
--- gcc-16-20260215/gcc/testsuite/gfortran.dg/pdt_71.f03	Sun Feb 15 22:32:13 2026
*************** contains
*** 40,44 ****
      print *, kind (z%x%n), z%x%n
    end subroutine
  end
! ! { dg-final { scan-tree-dump-times "Pdtt2_4.1.x.n = 8" 1 "original" } }
! ! { dg-final { scan-tree-dump-times "z = Pdtt2_4.1" 1 "original" } }
--- 40,44 ----
      print *, kind (z%x%n), z%x%n
    end subroutine
  end
! ! { dg-final { scan-tree-dump-times "PDTt2_4.1.x.n = 8" 1 "original" } }
! ! { dg-final { scan-tree-dump-times "z = PDTt2_4.1" 1 "original" } }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gfortran.dg/pdt_79.f03 gcc-16-20260215/gcc/testsuite/gfortran.dg/pdt_79.f03
*** gcc-16-20260208/gcc/testsuite/gfortran.dg/pdt_79.f03	Sun Feb  8 22:32:14 2026
--- gcc-16-20260215/gcc/testsuite/gfortran.dg/pdt_79.f03	Sun Feb 15 22:32:13 2026
*************** contains
*** 57,61 ****
    end subroutine                ! { dg-warning ".mapped_tensor. is used uninitialized" }
  
  end
! ! { dg-final { scan-tree-dump-times "Pdttensor_t_4.2.j = 42" 1 "original" } }
! ! { dg-final { scan-tree-dump-times "struct Pdttensor_t_4 mt" 1 "original" } }
--- 57,61 ----
    end subroutine                ! { dg-warning ".mapped_tensor. is used uninitialized" }
  
  end
! ! { dg-final { scan-tree-dump-times "PDTtensor_t_4.2.j = 42" 1 "original" } }
! ! { dg-final { scan-tree-dump-times "struct PDTtensor_t_4 mt" 1 "original" } }
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gfortran.dg/pdt_84.f03 gcc-16-20260215/gcc/testsuite/gfortran.dg/pdt_84.f03
*** gcc-16-20260208/gcc/testsuite/gfortran.dg/pdt_84.f03	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gfortran.dg/pdt_84.f03	Sun Feb 15 22:32:13 2026
***************
*** 0 ****
--- 1,28 ----
+ ! { dg-do compile }
+ !
+ ! Test the fix for PR108663
+ !
+ ! Contributed by
+ !
+ module m
+    type t(n)
+       integer, len :: n
+       integer :: a(n)
+    end type
+ contains
+    subroutine s(x, arr)
+       type(t(2)) :: x
+       integer :: arr(2)
+       if (any (x%a /= arr)) stop 1
+    end
+ end
+ program p
+    use m, only: t, pdtt, s       ! { dg-error "not found in module" }
+ 
+    type(t(2)) :: y = t(2)([1,2])
+    type (pdtt)  :: z             ! { dg-error "being used before it is defined" }
+ 
+    call s(y, [1,2])
+    y = t(2)([3,4])
+    call s(y, [3,4])
+ end
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gfortran.dg/pr123943.f90 gcc-16-20260215/gcc/testsuite/gfortran.dg/pr123943.f90
*** gcc-16-20260208/gcc/testsuite/gfortran.dg/pr123943.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gfortran.dg/pr123943.f90	Sun Feb 15 22:32:13 2026
***************
*** 0 ****
--- 1,48 ----
+ ! { dg-do compile }
+ ! PR fortran/123943
+ !
+ ! Nested DO CONCURRENT in block constructs must not ICE in gfc_resolve_forall.
+ ! Reduced testcase by Harald Anlauf <anlauf@gcc.gnu.org>
+ 
+ subroutine nested_in_if
+   implicit none
+   integer :: k, l
+ 
+   do concurrent (k = 1:5)
+     if (k == 3) then
+       do concurrent (l = 1:4)
+       end do
+     end if
+   end do
+ end subroutine nested_in_if
+ 
+ 
+ subroutine nested_in_if_else
+   implicit none
+   integer :: k, l
+ 
+   do concurrent (k = 1:5)
+     if (k == 3) then
+       do concurrent (l = 1:4)
+       end do
+     else
+       do concurrent (l = 1:2)
+       end do
+     end if
+   end do
+ end subroutine nested_in_if_else
+ 
+ 
+ subroutine nested_in_select_case
+   implicit none
+   integer :: k, l
+ 
+   do concurrent (k = 1:5)
+     select case (k)
+     case (3)
+       do concurrent (l = 1:4)
+       end do
+     case default
+     end select
+   end do
+ end subroutine nested_in_select_case
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gnat.dg/allocator4.adb gcc-16-20260215/gcc/testsuite/gnat.dg/allocator4.adb
*** gcc-16-20260208/gcc/testsuite/gnat.dg/allocator4.adb	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gnat.dg/allocator4.adb	Sun Feb 15 22:32:13 2026
***************
*** 0 ****
--- 1,23 ----
+ --  { dg-do compile }
+ --  { dg-options "-gnatws" }
+ 
+ with System.Storage_Pools.Subpools; use System.Storage_Pools.Subpools;
+ with Ada.Finalization;              use Ada.Finalization;
+ 
+ procedure Allocator4 is
+ 
+    type My_Subpool_Type is new Root_Subpool with null record;
+    type My_Subpool_Access_Type is access all My_Subpool_Type;
+ 
+    My_Subpool        : aliased My_Subpool_Type;
+    My_Subpool_Access : Subpool_Handle := My_Subpool'Unchecked_Access;
+ 
+    type T is new Ada.Finalization.Controlled with null record;
+ 
+    A : access T := new (Subpool_Handle'(My_Subpool'Unchecked_Access)) T;
+    B : access T := new (My_Subpool_Access) T;
+    C : access T := new (My_Subpool'Access) T;
+ 
+ begin
+    null;
+ end;
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gnat.dg/protected_type1.adb gcc-16-20260215/gcc/testsuite/gnat.dg/protected_type1.adb
*** gcc-16-20260208/gcc/testsuite/gnat.dg/protected_type1.adb	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gnat.dg/protected_type1.adb	Sun Feb 15 22:32:13 2026
***************
*** 0 ****
--- 1,25 ----
+ --  { dg-do compile }
+ 
+ with Ada.Finalization;
+ 
+ procedure Protected_Type1 is
+ 
+   type T is new Ada.Finalization.Controlled with null record;
+ 
+   protected type Queue is
+     entry Get_Next_Line (Line : out String);
+   private
+     A : T;
+   end Queue;
+ 
+   protected body Queue is
+     entry Get_Next_Line (Line : out String)
+       when A /= (Ada.Finalization.Controlled with null record) is
+     begin
+       null;
+     end Get_Next_Line;
+   end Queue;
+ 
+ begin
+   null;
+ end;
diff -Nrcpad gcc-16-20260208/gcc/testsuite/gnat.dg/specs/component_size1.ads gcc-16-20260215/gcc/testsuite/gnat.dg/specs/component_size1.ads
*** gcc-16-20260208/gcc/testsuite/gnat.dg/specs/component_size1.ads	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/gcc/testsuite/gnat.dg/specs/component_size1.ads	Sun Feb 15 22:32:13 2026
***************
*** 0 ****
--- 1,30 ----
+ --  { dg-do compile }
+ --  { dg-options "-gnatc" }
+ 
+ package Component_Size1 is
+ 
+   type T1 is delta 2.0**(-8) range 0.0 .. 1.0 - 2.0**(-8);
+ 
+   type Arr1 is array (Boolean) of T1
+     with Component_Size => 1; -- { dg-error "too small" }
+ 
+   type Rec1 is record
+     Comp : T1;
+   end record;
+   for Rec1 use record
+     Comp at 0 range 0 .. 0; -- { dg-error "too small" }
+   end record;
+ 
+   type T2 is array (1 .. 8) of Boolean with Pack => True;
+ 
+   type Arr2 is array (Boolean) of T2
+     with Component_Size => 1; -- { dg-error "too small" }
+ 
+   type Rec2 is record
+     Comp : T2;
+   end record;
+   for Rec2 use record
+     Comp at 0 range 0 .. 0; -- { dg-error "too small" }
+   end record;
+ 
+ end Component_Size1;
diff -Nrcpad gcc-16-20260208/gcc/testsuite/lib/tsan-dg.exp gcc-16-20260215/gcc/testsuite/lib/tsan-dg.exp
*** gcc-16-20260208/gcc/testsuite/lib/tsan-dg.exp	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/gcc/testsuite/lib/tsan-dg.exp	Sun Feb 15 22:32:13 2026
*************** proc tsan_link_flags { paths } {
*** 81,86 ****
--- 81,89 ----
      return "$flags"
  }
  
+ set orig_tsan_options_saved 0
+ set orig_tsan_options 0
+ 
  #
  # tsan_init -- called at the start of each subdir of tests
  #
*************** proc tsan_init { args } {
*** 93,98 ****
--- 96,112 ----
      global tsan_saved_ALWAYS_CXXFLAGS
      global dg-do-what-default
      global tsan_saved_dg-do-what-default
+     global orig_tsan_options_saved
+     global orig_tsan_options
+ 
+     if { $orig_tsan_options_saved == 0 } {
+ 	# Save the original environment.
+ 	if [info exists env(TSAN_OPTIONS)] {
+ 	    set orig_tsan_options "$env(TSAN_OPTIONS)"
+ 	    set orig_tsan_options_saved 1
+ 	}
+     }
+     setenv TSAN_OPTIONS color=never
  
      set link_flags ""
      if ![is_remote host] {
*************** proc tsan_finish { args } {
*** 134,139 ****
--- 148,161 ----
      global tsan_saved_dg-do-what-default
      global tsan_saved_library_path
      global ld_library_path
+     global orig_tsan_options_saved
+     global orig_tsan_options
+ 
+     if { $orig_tsan_options_saved } {
+ 	setenv TSAN_OPTIONS "$orig_tsan_options"
+     } elseif [info exists env(TSAN_OPTIONS)] {
+ 	unsetenv TSAN_OPTIONS
+     }
  
      if [info exists tsan_saved_ALWAYS_CXXFLAGS ] {
  	set ALWAYS_CXXFLAGS $tsan_saved_ALWAYS_CXXFLAGS
diff -Nrcpad gcc-16-20260208/gcc/tree-complex.cc gcc-16-20260215/gcc/tree-complex.cc
*** gcc-16-20260208/gcc/tree-complex.cc	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/gcc/tree-complex.cc	Sun Feb 15 22:32:14 2026
*************** extract_component (gimple_stmt_iterator
*** 664,677 ****
        }
  
      case VIEW_CONVERT_EXPR:
!       /* Getting the real/imag parts of a VCE of a ssa-name requires
! 	 to place the complex into a ssa name before getting the
! 	 2 parts.
  	 As `IMAGPART_EXPR<VIEW_CONVERT_EXPR<a_BN>>` is an invalid
  	 gimple. This will only show up when gimplifying it.
  	 Note this creates an extra copy.  The call to
  	 force_gimple_operand_gsi would create one too.  */
!       if (TREE_CODE (TREE_OPERAND (t, 0)) == SSA_NAME)
  	{
  	  gcc_assert (gimple_p);
  	  tree new_cplx = make_ssa_name (TREE_TYPE (t));
--- 664,681 ----
        }
  
      case VIEW_CONVERT_EXPR:
!       /* Getting the real/imag parts of a VCE of a ssa-name
!          (or gimple invariant) requires to place the complex
! 	 into a ssa name before getting the 2 parts.
  	 As `IMAGPART_EXPR<VIEW_CONVERT_EXPR<a_BN>>` is an invalid
  	 gimple. This will only show up when gimplifying it.
  	 Note this creates an extra copy.  The call to
  	 force_gimple_operand_gsi would create one too.  */
!       tree expr;
!       expr = TREE_OPERAND (t, 0);
!       if (TREE_CODE (expr) == SSA_NAME
! 	  || (is_gimple_min_invariant (expr)
! 	      && TREE_CODE (expr) != STRING_CST))
  	{
  	  gcc_assert (gimple_p);
  	  tree new_cplx = make_ssa_name (TREE_TYPE (t));
diff -Nrcpad gcc-16-20260208/gcc/tree-sra.cc gcc-16-20260215/gcc/tree-sra.cc
*** gcc-16-20260208/gcc/tree-sra.cc	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/gcc/tree-sra.cc	Sun Feb 15 22:32:14 2026
*************** create_access_replacement (struct access
*** 2588,2595 ****
    DECL_IGNORED_P (repl) = DECL_IGNORED_P (access->base);
  
    if (DECL_NAME (access->base)
!       && !DECL_IGNORED_P (access->base)
!       && !DECL_ARTIFICIAL (access->base))
      {
        char *pretty_name = make_fancy_name (access->expr);
        tree debug_expr = unshare_expr_without_location (access->expr), d;
--- 2588,2595 ----
    DECL_IGNORED_P (repl) = DECL_IGNORED_P (access->base);
  
    if (DECL_NAME (access->base)
!       && ((!DECL_IGNORED_P (access->base) && !DECL_ARTIFICIAL (access->base))
! 	  || (VAR_P (access->base) && DECL_NONLOCAL_FRAME (access->base))))
      {
        char *pretty_name = make_fancy_name (access->expr);
        tree debug_expr = unshare_expr_without_location (access->expr), d;
*************** propagate_subaccesses_from_rhs (struct a
*** 3265,3270 ****
--- 3265,3271 ----
  	}
  
        if (rchild->grp_unscalarizable_region
+ 	  || (rchild->size % BITS_PER_UNIT) != 0
  	  || !budget_for_propagation_access (lacc->base))
  	{
  	  if (!lacc->grp_write && access_or_its_child_written (rchild))
*************** propagate_subaccesses_from_lhs (struct a
*** 3324,3329 ****
--- 3325,3331 ----
        HOST_WIDE_INT norm_offset = lchild->offset + norm_delta;
  
        if (lchild->grp_unscalarizable_region
+ 	  || (lchild->size % BITS_PER_UNIT) != 0
  	  || child_would_conflict_in_acc (racc, norm_offset, lchild->size,
  					  &matching_acc)
  	  || !budget_for_propagation_access (racc->base))
diff -Nrcpad gcc-16-20260208/gcc/tree-ssa-forwprop.cc gcc-16-20260215/gcc/tree-ssa-forwprop.cc
*** gcc-16-20260208/gcc/tree-ssa-forwprop.cc	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/gcc/tree-ssa-forwprop.cc	Sun Feb 15 22:32:14 2026
*************** optimize_agr_copyprop_arg (gimple *defst
*** 1721,1726 ****
--- 1721,1772 ----
      update_stmt (call);
  }
  
+ /* Helper function for optimize_agr_copyprop, propagate aggregates
+    into the return stmt USE if the operand of the return matches DEST;
+    replacing it with SRC.  */
+ static void
+ optimize_agr_copyprop_return (gimple *defstmt, greturn *use,
+ 			      tree dest, tree src)
+ {
+   tree rvalue = gimple_return_retval (use);
+   if (!rvalue
+       || TREE_CODE (rvalue) == SSA_NAME
+       || is_gimple_min_invariant (rvalue)
+       || TYPE_VOLATILE (TREE_TYPE (rvalue)))
+     return;
+ 
+   /* `return <retval>;` is already the best it could be.
+      Likewise `return *<retval>_N(D)`.  */
+   if (TREE_CODE (rvalue) == RESULT_DECL
+       || (TREE_CODE (rvalue) == MEM_REF
+ 	  && TREE_CODE (TREE_OPERAND (rvalue, 0)) == SSA_NAME
+ 	  && TREE_CODE (SSA_NAME_VAR (TREE_OPERAND (rvalue, 0)))
+ 	       == RESULT_DECL))
+     return;
+   tree newsrc = new_src_based_on_copy (rvalue, dest, src);
+   if (!newsrc)
+     return;
+   /* Currently only support non-global vars.
+      See PR 124099 on enumtls not supporting expanding for GIMPLE_RETURN.
+      FIXME: could support VCEs too?  */
+   if (!VAR_P (newsrc) || is_global_var (newsrc))
+     return;
+   if (dump_file && (dump_flags & TDF_DETAILS))
+     {
+       fprintf (dump_file, "Simplified\n  ");
+       print_gimple_stmt (dump_file, use, 0, dump_flags);
+       fprintf (dump_file, "after previous\n  ");
+       print_gimple_stmt (dump_file, defstmt, 0, dump_flags);
+     }
+   gimple_return_set_retval (use, newsrc);
+   if (dump_file && (dump_flags & TDF_DETAILS))
+     {
+       fprintf (dump_file, "into\n  ");
+       print_gimple_stmt (dump_file, use, 0, dump_flags);
+     }
+   update_stmt (use);
+ }
+ 
  /* Optimizes
     DEST = SRC;
     DEST2 = DEST; # DEST2 = SRC2;
*************** optimize_agr_copyprop (gimple *stmt)
*** 1764,1769 ****
--- 1810,1817 ----
  	optimize_agr_copyprop_1 (stmt, use_stmt, dest, src);
        else if (is_gimple_call (use_stmt))
  	optimize_agr_copyprop_arg (stmt, as_a<gcall*>(use_stmt), dest, src);
+       else if (is_a<greturn*> (use_stmt))
+ 	optimize_agr_copyprop_return (stmt, as_a<greturn*>(use_stmt), dest, src);
      }
  }
  
diff -Nrcpad gcc-16-20260208/gcc/tree-ssa-ifcombine.cc gcc-16-20260215/gcc/tree-ssa-ifcombine.cc
*** gcc-16-20260208/gcc/tree-ssa-ifcombine.cc	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/gcc/tree-ssa-ifcombine.cc	Sun Feb 15 22:32:14 2026
*************** along with GCC; see the file COPYING3.
*** 43,48 ****
--- 43,49 ----
  #include "attribs.h"
  #include "asan.h"
  #include "bitmap.h"
+ #include "cfgloop.h"
  
  #ifndef LOGICAL_OP_NON_SHORT_CIRCUIT
  #define LOGICAL_OP_NON_SHORT_CIRCUIT \
*************** ifcombine_ifandif (basic_block inner_con
*** 818,823 ****
--- 819,839 ----
    if (!outer_cond)
      return false;
  
+   /* niter analysis does not cope with boolean typed loop exit conditions.
+      Avoid turning an analyzable exit into an unanalyzable one.  */
+   if (inner_cond_bb->loop_father == outer_cond_bb->loop_father
+       && loop_exits_from_bb_p (inner_cond_bb->loop_father, inner_cond_bb)
+       && loop_exits_from_bb_p (outer_cond_bb->loop_father, outer_cond_bb))
+     {
+       tree outer_type = TREE_TYPE (gimple_cond_lhs (outer_cond));
+       tree inner_type = TREE_TYPE (gimple_cond_lhs (inner_cond));
+       if (TREE_CODE (outer_type) == INTEGER_TYPE
+ 	  || POINTER_TYPE_P (outer_type)
+ 	  || TREE_CODE (inner_type) == INTEGER_TYPE
+ 	  || POINTER_TYPE_P (inner_type))
+ 	return false;
+     }
+ 
    /* See if we test a single bit of the same name in both tests.  In
       that case remove the outer test, merging both else edges,
       and change the inner one to test for
diff -Nrcpad gcc-16-20260208/gcc/tree-ssa-math-opts.cc gcc-16-20260215/gcc/tree-ssa-math-opts.cc
*** gcc-16-20260208/gcc/tree-ssa-math-opts.cc	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/gcc/tree-ssa-math-opts.cc	Sun Feb 15 22:32:14 2026
*************** along with GCC; see the file COPYING3.
*** 118,124 ****
  #include "tree-ssa-math-opts.h"
  #include "dbgcnt.h"
  #include "cfghooks.h"
- #include "gimple-match.h"
  
  /* This structure represents one basic block that either computes a
     division, or is a common dominator for basic block that compute a
--- 118,123 ----
*************** last_fma_candidate_feeds_initial_phi (fm
*** 3357,3382 ****
    return false;
  }
  
- /* If ARG is a convert that only changes the sign then strip the outer
-    conversion away.  It does not strip conversions recursively.  Otherwise
-    return ARG.  */
- 
- static tree
- strip_nop_view_converts (tree arg)
- {
-   if (TREE_CODE (arg) != SSA_NAME)
-     return arg;
- 
-   gimple *assign = SSA_NAME_DEF_STMT (arg);
-   gimple_match_op res_op;
-   if (gimple_extract_op (assign, &res_op)
-       && (CONVERT_EXPR_CODE_P (res_op.code) || res_op.code == VIEW_CONVERT_EXPR)
-       && tree_nop_conversion_p (TREE_TYPE (res_op.ops[0]), TREE_TYPE (arg)))
-     return res_op.ops[0];
- 
-   return arg;
- }
- 
  /* Combine the multiplication at MUL_STMT with operands MULOP1 and MULOP2
     with uses in additions and subtractions to form fused multiply-add
     operations.  Returns true if successful and MUL_STMT should be removed.
--- 3356,3361 ----
*************** convert_mult_to_fma (gimple *mul_stmt, t
*** 3642,3652 ****
  	    {
  	      gcc_checking_assert (!state->m_initial_phi);
  	      gphi *phi;
! 	      if (strip_nop_view_converts (ops[0]) == result)
  		phi = result_of_phi (ops[1]);
  	      else
  		{
! 		  gcc_assert (strip_nop_view_converts (ops[1]) == result);
  		  phi = result_of_phi (ops[0]);
  		}
  
--- 3621,3631 ----
  	    {
  	      gcc_checking_assert (!state->m_initial_phi);
  	      gphi *phi;
! 	      if (ops[0] == result)
  		phi = result_of_phi (ops[1]);
  	      else
  		{
! 		  gcc_assert (ops[1] == result);
  		  phi = result_of_phi (ops[0]);
  		}
  
diff -Nrcpad gcc-16-20260208/gcc/tree-vect-data-refs.cc gcc-16-20260215/gcc/tree-vect-data-refs.cc
*** gcc-16-20260208/gcc/tree-vect-data-refs.cc	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/gcc/tree-vect-data-refs.cc	Sun Feb 15 22:32:14 2026
*************** vect_enhance_data_refs_alignment (loop_v
*** 3068,3077 ****
  
  /* Function vect_analyze_data_refs_alignment
  
!    Analyze the alignment of the data-references in the loop.
!    Return FALSE if a data reference is found that cannot be vectorized.  */
  
! opt_result
  vect_analyze_data_refs_alignment (loop_vec_info loop_vinfo)
  {
    DUMP_VECT_SCOPE ("vect_analyze_data_refs_alignment");
--- 3068,3076 ----
  
  /* Function vect_analyze_data_refs_alignment
  
!    Analyze the alignment of the data-references in the loop.  */
  
! void
  vect_analyze_data_refs_alignment (loop_vec_info loop_vinfo)
  {
    DUMP_VECT_SCOPE ("vect_analyze_data_refs_alignment");
*************** vect_analyze_data_refs_alignment (loop_v
*** 3094,3101 ****
  					   STMT_VINFO_VECTYPE (dr_info->stmt));
  	}
      }
- 
-   return opt_result::success ();
  }
  
  
--- 3093,3098 ----
diff -Nrcpad gcc-16-20260208/gcc/tree-vect-loop.cc gcc-16-20260215/gcc/tree-vect-loop.cc
*** gcc-16-20260208/gcc/tree-vect-loop.cc	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/gcc/tree-vect-loop.cc	Sun Feb 15 22:32:14 2026
*************** vect_analyze_loop_costing (loop_vec_info
*** 1956,1961 ****
--- 1956,1977 ----
        return -1;
      }
  
+   /* As we cannot use a runtime check to gate profitability for uncounted
+      loops require either an estimate or if none, at least a profitable
+      vectorization within the first vector iteration (that condition
+      will practically never be true due to the required epilog and
+      likely alignment prologue).   */
+   if (LOOP_VINFO_NITERS_UNCOUNTED_P (loop_vinfo)
+       && estimated_niter == -1
+       && min_profitable_estimate > (int) vect_vf_for_cost (loop_vinfo))
+     {
+       if (dump_enabled_p ())
+ 	dump_printf_loc (MSG_NOTE, vect_location,
+ 			 "not vectorized: no loop iteration estimate on the "
+ 			 "uncounted loop and not trivially profitable.\n");
+       return -1;
+     }
+ 
    return 1;
  }
  
*************** start_over:
*** 2312,2328 ****
  
    loop_vinfo->vector_costs = init_cost (loop_vinfo, false);
  
!   /* Analyze the alignment of the data-refs in the loop.
!      Fail if a data reference is found that cannot be vectorized.  */
! 
!   ok = vect_analyze_data_refs_alignment (loop_vinfo);
!   if (!ok)
!     {
!       if (dump_enabled_p ())
! 	dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
! 			 "bad data alignment.\n");
!       return ok;
!     }
  
    /* Prune the list of ddrs to be tested at run-time by versioning for alias.
       It is important to call pruning after vect_analyze_data_ref_accesses,
--- 2328,2335 ----
  
    loop_vinfo->vector_costs = init_cost (loop_vinfo, false);
  
!   /* Analyze the alignment of the data-refs in the loop.  */
!   vect_analyze_data_refs_alignment (loop_vinfo);
  
    /* Prune the list of ddrs to be tested at run-time by versioning for alias.
       It is important to call pruning after vect_analyze_data_ref_accesses,
*************** vectorize_fold_left_reduction (loop_vec_
*** 6528,6534 ****
        if (LOOP_VINFO_FULLY_WITH_LENGTH_P (loop_vinfo))
  	{
  	  len = vect_get_loop_len (loop_vinfo, gsi, lens, vec_num, vectype_in,
! 				   i, 1);
  	  signed char biasval = LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS (loop_vinfo);
  	  bias = build_int_cst (intQI_type_node, biasval);
  	  if (!is_cond_op)
--- 6535,6541 ----
        if (LOOP_VINFO_FULLY_WITH_LENGTH_P (loop_vinfo))
  	{
  	  len = vect_get_loop_len (loop_vinfo, gsi, lens, vec_num, vectype_in,
! 				   i, 1, false);
  	  signed char biasval = LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS (loop_vinfo);
  	  bias = build_int_cst (intQI_type_node, biasval);
  	  if (!is_cond_op)
*************** vectorizable_induction (loop_vec_info lo
*** 9922,9928 ****
  		   _21 = vect_vec_iv_.6_22 + vect_cst__22;  */
  	      vec_loop_lens *lens = &LOOP_VINFO_LENS (loop_vinfo);
  	      tree len = vect_get_loop_len (loop_vinfo, NULL, lens, 1,
! 					    vectype, 0, 0);
  	      if (SCALAR_FLOAT_TYPE_P (stept))
  		expr = gimple_build (&stmts, FLOAT_EXPR, stept, len);
  	      else
--- 9929,9935 ----
  		   _21 = vect_vec_iv_.6_22 + vect_cst__22;  */
  	      vec_loop_lens *lens = &LOOP_VINFO_LENS (loop_vinfo);
  	      tree len = vect_get_loop_len (loop_vinfo, NULL, lens, 1,
! 					    vectype, 0, 0, false);
  	      if (SCALAR_FLOAT_TYPE_P (stept))
  		expr = gimple_build (&stmts, FLOAT_EXPR, stept, len);
  	      else
*************** vectorizable_live_operation_1 (loop_vec_
*** 10069,10075 ****
      {
        /* Emit:
  
! 	 SCALAR_RES = VEC_EXTRACT <VEC_LHS, LEN - (BIAS + 1)>
  
  	 where VEC_LHS is the vectorized live-out result, LEN is the length of
  	 the vector, BIAS is the load-store bias.  The bias should not be used
--- 10076,10082 ----
      {
        /* Emit:
  
! 	 SCALAR_RES = VEC_EXTRACT <VEC_LHS, LEN - 1>
  
  	 where VEC_LHS is the vectorized live-out result, LEN is the length of
  	 the vector, BIAS is the load-store bias.  The bias should not be used
*************** vectorizable_live_operation_1 (loop_vec_
*** 10080,10100 ****
        gimple_stmt_iterator gsi = gsi_last (tem);
        tree len = vect_get_loop_len (loop_vinfo, &gsi,
  				    &LOOP_VINFO_LENS (loop_vinfo),
! 				    1, vectype, 0, 1);
        gimple_seq_add_seq (&stmts, tem);
  
!       /* BIAS + 1.  */
!       signed char biasval = LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS (loop_vinfo);
!       tree bias_plus_one
! 	= int_const_binop (PLUS_EXPR,
! 			   build_int_cst (TREE_TYPE (len), biasval),
! 			   build_one_cst (TREE_TYPE (len)));
! 
!       /* LAST_INDEX = LEN - (BIAS + 1).  */
        tree last_index = gimple_build (&stmts, MINUS_EXPR, TREE_TYPE (len),
! 				     len, bias_plus_one);
  
!       /* SCALAR_RES = VEC_EXTRACT <VEC_LHS, LEN - (BIAS + 1)>.  */
        tree scalar_res
  	= gimple_build (&stmts, CFN_VEC_EXTRACT, TREE_TYPE (vectype),
  			vec_lhs_phi, last_index);
--- 10087,10100 ----
        gimple_stmt_iterator gsi = gsi_last (tem);
        tree len = vect_get_loop_len (loop_vinfo, &gsi,
  				    &LOOP_VINFO_LENS (loop_vinfo),
! 				    1, vectype, 0, 1, false);
        gimple_seq_add_seq (&stmts, tem);
  
!       /* LAST_INDEX = LEN - 1.  */
        tree last_index = gimple_build (&stmts, MINUS_EXPR, TREE_TYPE (len),
! 				     len, build_one_cst (TREE_TYPE (len)));
  
!       /* SCALAR_RES = VEC_EXTRACT <VEC_LHS, LEN - 1>.  */
        tree scalar_res
  	= gimple_build (&stmts, CFN_VEC_EXTRACT, TREE_TYPE (vectype),
  			vec_lhs_phi, last_index);
*************** vect_record_loop_len (loop_vec_info loop
*** 10715,10721 ****
  tree
  vect_get_loop_len (loop_vec_info loop_vinfo, gimple_stmt_iterator *gsi,
  		   vec_loop_lens *lens, unsigned int nvectors, tree vectype,
! 		   unsigned int index, unsigned int factor)
  {
    rgroup_controls *rgl = &(*lens)[nvectors - 1];
    bool use_bias_adjusted_len =
--- 10715,10721 ----
  tree
  vect_get_loop_len (loop_vec_info loop_vinfo, gimple_stmt_iterator *gsi,
  		   vec_loop_lens *lens, unsigned int nvectors, tree vectype,
! 		   unsigned int index, unsigned int factor, bool adjusted)
  {
    rgroup_controls *rgl = &(*lens)[nvectors - 1];
    bool use_bias_adjusted_len =
*************** vect_get_loop_len (loop_vec_info loop_vi
*** 10748,10754 ****
  	}
      }
  
!   if (use_bias_adjusted_len)
      return rgl->bias_adjusted_ctrl;
  
    tree loop_len = rgl->controls[index];
--- 10748,10754 ----
  	}
      }
  
!   if (use_bias_adjusted_len && adjusted)
      return rgl->bias_adjusted_ctrl;
  
    tree loop_len = rgl->controls[index];
*************** vect_get_loop_len (loop_vec_info loop_vi
*** 10771,10776 ****
--- 10771,10806 ----
  	    gsi_insert_seq_before (gsi, seq, GSI_SAME_STMT);
  	}
      }
+   else if (factor && rgl->factor != factor)
+     {
+       /* The number of scalars per iteration, scalar occupied bytes and
+ 	 the number of vectors are both compile-time constants.  */
+       unsigned int nscalars_per_iter
+ 	= exact_div (nvectors * TYPE_VECTOR_SUBPARTS (vectype),
+ 		     LOOP_VINFO_VECT_FACTOR (loop_vinfo)).to_constant ();
+       unsigned int rglvecsize = rgl->factor * rgl->max_nscalars_per_iter;
+       unsigned int vecsize = nscalars_per_iter * factor;
+       if (rglvecsize > vecsize)
+ 	{
+ 	  unsigned int fac = rglvecsize / vecsize;
+ 	  tree iv_type = LOOP_VINFO_RGROUP_IV_TYPE (loop_vinfo);
+ 	  gimple_seq seq = NULL;
+ 	  loop_len = gimple_build (&seq, EXACT_DIV_EXPR, iv_type, loop_len,
+ 				   build_int_cst (iv_type, fac));
+ 	  if (seq)
+ 	    gsi_insert_seq_before (gsi, seq, GSI_SAME_STMT);
+ 	}
+       else if (rglvecsize < vecsize)
+ 	{
+ 	  unsigned int fac = vecsize / rglvecsize;
+ 	  tree iv_type = LOOP_VINFO_RGROUP_IV_TYPE (loop_vinfo);
+ 	  gimple_seq seq = NULL;
+ 	  loop_len = gimple_build (&seq, MULT_EXPR, iv_type, loop_len,
+ 				   build_int_cst (iv_type, fac));
+ 	  if (seq)
+ 	    gsi_insert_seq_before (gsi, seq, GSI_SAME_STMT);
+ 	}
+     }
    return loop_len;
  }
  
*************** vect_gen_loop_len_mask (loop_vec_info lo
*** 10788,10794 ****
    tree all_one_mask = build_all_ones_cst (vectype);
    tree all_zero_mask = build_zero_cst (vectype);
    tree len = vect_get_loop_len (loop_vinfo, gsi, lens, nvectors, vectype, index,
! 				factor);
    tree bias = build_int_cst (intQI_type_node,
  			     LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS (loop_vinfo));
    tree len_mask = make_temp_ssa_name (TREE_TYPE (stmt), NULL, "vec_len_mask");
--- 10818,10824 ----
    tree all_one_mask = build_all_ones_cst (vectype);
    tree all_zero_mask = build_zero_cst (vectype);
    tree len = vect_get_loop_len (loop_vinfo, gsi, lens, nvectors, vectype, index,
! 				factor, true);
    tree bias = build_int_cst (intQI_type_node,
  			     LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS (loop_vinfo));
    tree len_mask = make_temp_ssa_name (TREE_TYPE (stmt), NULL, "vec_len_mask");
*************** vect_update_ivs_after_vectorizer_for_ear
*** 11059,11065 ****
      {
        vec_loop_lens *lens = &LOOP_VINFO_LENS (loop_vinfo);
        tree_vf = vect_get_loop_len (loop_vinfo, NULL, lens, 1,
! 				   NULL_TREE, 0, 0);
      }
  
    tree iter_var;
--- 11089,11095 ----
      {
        vec_loop_lens *lens = &LOOP_VINFO_LENS (loop_vinfo);
        tree_vf = vect_get_loop_len (loop_vinfo, NULL, lens, 1,
! 				   NULL_TREE, 0, 0, true);
      }
  
    tree iter_var;
diff -Nrcpad gcc-16-20260208/gcc/tree-vect-stmts.cc gcc-16-20260215/gcc/tree-vect-stmts.cc
*** gcc-16-20260208/gcc/tree-vect-stmts.cc	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/gcc/tree-vect-stmts.cc	Sun Feb 15 22:32:14 2026
*************** process_use (stmt_vec_info stmt_vinfo, t
*** 644,653 ****
  	   && STMT_VINFO_DEF_TYPE (stmt_vinfo) == vect_induction_def
  	   && (PHI_ARG_DEF_FROM_EDGE (stmt_vinfo->stmt,
  				      loop_latch_edge (bb->loop_father))
! 	       == use)
! 	   && (!LOOP_VINFO_EARLY_BREAKS (loop_vinfo)
! 	       || (gimple_bb (stmt_vinfo->stmt)
! 		   != LOOP_VINFO_LOOP (loop_vinfo)->header)))
      {
        if (dump_enabled_p ())
  	dump_printf_loc (MSG_NOTE, vect_location,
--- 644,650 ----
  	   && STMT_VINFO_DEF_TYPE (stmt_vinfo) == vect_induction_def
  	   && (PHI_ARG_DEF_FROM_EDGE (stmt_vinfo->stmt,
  				      loop_latch_edge (bb->loop_father))
! 	       == use))
      {
        if (dump_enabled_p ())
  	dump_printf_loc (MSG_NOTE, vect_location,
*************** vect_get_strided_load_store_ops (stmt_ve
*** 3184,3190 ****
  	 .MASK_LEN_SCATTER_STORE (vectp_a.9_7, ... );
  	 vectp_a.9_26 = vectp_a.9_7 + ivtmp_8;  */
        tree loop_len
! 	= vect_get_loop_len (loop_vinfo, gsi, loop_lens, 1, vectype, 0, 0);
        tree tmp
  	= fold_build2 (MULT_EXPR, sizetype,
  		       fold_convert (sizetype, unshare_expr (DR_STEP (dr))),
--- 3181,3187 ----
  	 .MASK_LEN_SCATTER_STORE (vectp_a.9_7, ... );
  	 vectp_a.9_26 = vectp_a.9_7 + ivtmp_8;  */
        tree loop_len
! 	= vect_get_loop_len (loop_vinfo, gsi, loop_lens, 1, vectype, 0, 0, true);
        tree tmp
  	= fold_build2 (MULT_EXPR, sizetype,
  		       fold_convert (sizetype, unshare_expr (DR_STEP (dr))),
*************** vect_get_loop_variant_data_ptr_increment
*** 3255,3261 ****
       addr = addr + .SELECT_VL (ARG..) * step;
    */
    tree loop_len
!     = vect_get_loop_len (loop_vinfo, gsi, loop_lens, 1, aggr_type, 0, 0);
    tree len_type = TREE_TYPE (loop_len);
    /* Since the outcome of .SELECT_VL is element size, we should adjust
       it into bytesize so that it can be used in address pointer variable
--- 3252,3258 ----
       addr = addr + .SELECT_VL (ARG..) * step;
    */
    tree loop_len
!     = vect_get_loop_len (loop_vinfo, gsi, loop_lens, 1, aggr_type, 0, 0, true);
    tree len_type = TREE_TYPE (loop_len);
    /* Since the outcome of .SELECT_VL is element size, we should adjust
       it into bytesize so that it can be used in address pointer variable
*************** vectorizable_call (vec_info *vinfo,
*** 3891,3897 ****
  		    {
  		      unsigned int vec_num = vec_oprnds0.length ();
  		      tree len = vect_get_loop_len (loop_vinfo, gsi, lens,
! 						    vec_num, vectype_out, i, 1);
  		      signed char biasval
  			= LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS (loop_vinfo);
  		      tree bias = build_int_cst (intQI_type_node, biasval);
--- 3888,3894 ----
  		    {
  		      unsigned int vec_num = vec_oprnds0.length ();
  		      tree len = vect_get_loop_len (loop_vinfo, gsi, lens,
! 						    vec_num, vectype_out, i, 1, true);
  		      signed char biasval
  			= LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS (loop_vinfo);
  		      tree bias = build_int_cst (intQI_type_node, biasval);
*************** vectorizable_operation (vec_info *vinfo,
*** 7101,7107 ****
  	  if (len_loop_p)
  	    {
  	      tree len = vect_get_loop_len (loop_vinfo, gsi, lens,
! 					    vec_num, vectype, i, 1);
  	      signed char biasval
  		= LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS (loop_vinfo);
  	      tree bias = build_int_cst (intQI_type_node, biasval);
--- 7098,7104 ----
  	  if (len_loop_p)
  	    {
  	      tree len = vect_get_loop_len (loop_vinfo, gsi, lens,
! 					    vec_num, vectype, i, 1, true);
  	      signed char biasval
  		= LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS (loop_vinfo);
  	      tree bias = build_int_cst (intQI_type_node, biasval);
*************** vectorizable_store (vec_info *vinfo,
*** 8817,8823 ****
  	    {
  	      if (loop_lens)
  		final_len = vect_get_loop_len (loop_vinfo, gsi, loop_lens,
! 					       ncopies, vectype, j, 1);
  	      else
  		final_len = size_int (TYPE_VECTOR_SUBPARTS (vectype));
  	      signed char biasval
--- 8814,8820 ----
  	    {
  	      if (loop_lens)
  		final_len = vect_get_loop_len (loop_vinfo, gsi, loop_lens,
! 					       ncopies, vectype, j, 1, true);
  	      else
  		final_len = size_int (TYPE_VECTOR_SUBPARTS (vectype));
  	      signed char biasval
*************** vectorizable_store (vec_info *vinfo,
*** 9015,9021 ****
  		  if (loop_lens)
  		    final_len = vect_get_loop_len (loop_vinfo, gsi,
  						   loop_lens, num_stmts,
! 						   vectype, j, 1);
  		  else
  		    final_len = size_int (TYPE_VECTOR_SUBPARTS (vectype));
  
--- 9012,9018 ----
  		  if (loop_lens)
  		    final_len = vect_get_loop_len (loop_vinfo, gsi,
  						   loop_lens, num_stmts,
! 						   vectype, j, 1, true);
  		  else
  		    final_len = size_int (TYPE_VECTOR_SUBPARTS (vectype));
  
*************** vectorizable_store (vec_info *vinfo,
*** 9399,9405 ****
  	  unsigned factor
  	    = (new_ovmode == vmode) ? 1 : GET_MODE_UNIT_SIZE (vmode);
  	  final_len = vect_get_loop_len (loop_vinfo, gsi, loop_lens,
! 					 vec_num, vectype, i, factor);
  	}
        else if (final_mask)
  	{
--- 9396,9402 ----
  	  unsigned factor
  	    = (new_ovmode == vmode) ? 1 : GET_MODE_UNIT_SIZE (vmode);
  	  final_len = vect_get_loop_len (loop_vinfo, gsi, loop_lens,
! 					 vec_num, vectype, i, factor, true);
  	}
        else if (final_mask)
  	{
*************** vectorizable_load (vec_info *vinfo,
*** 10762,10768 ****
  	    {
  	      if (loop_lens)
  		final_len = vect_get_loop_len (loop_vinfo, gsi, loop_lens,
! 					       ncopies, vectype, j, 1);
  	      else
  		final_len = size_int (TYPE_VECTOR_SUBPARTS (vectype));
  	      signed char biasval
--- 10759,10765 ----
  	    {
  	      if (loop_lens)
  		final_len = vect_get_loop_len (loop_vinfo, gsi, loop_lens,
! 					       ncopies, vectype, j, 1, true);
  	      else
  		final_len = size_int (TYPE_VECTOR_SUBPARTS (vectype));
  	      signed char biasval
*************** vectorizable_load (vec_info *vinfo,
*** 10970,10976 ****
  		{
  		  if (loop_lens)
  		    final_len = vect_get_loop_len (loop_vinfo, gsi, loop_lens,
! 						   vec_num, vectype, i, 1);
  		  else
  		    final_len = build_int_cst (sizetype,
  					       TYPE_VECTOR_SUBPARTS (vectype));
--- 10967,10973 ----
  		{
  		  if (loop_lens)
  		    final_len = vect_get_loop_len (loop_vinfo, gsi, loop_lens,
! 						   vec_num, vectype, i, 1, true);
  		  else
  		    final_len = build_int_cst (sizetype,
  					       TYPE_VECTOR_SUBPARTS (vectype));
*************** vectorizable_load (vec_info *vinfo,
*** 11422,11428 ****
  		unsigned factor
  		  = (new_ovmode == vmode) ? 1 : GET_MODE_UNIT_SIZE (vmode);
  		final_len = vect_get_loop_len (loop_vinfo, gsi, loop_lens,
! 					       vec_num, vectype, i, factor);
  	      }
  	    else if (final_mask)
  	      {
--- 11419,11425 ----
  		unsigned factor
  		  = (new_ovmode == vmode) ? 1 : GET_MODE_UNIT_SIZE (vmode);
  		final_len = vect_get_loop_len (loop_vinfo, gsi, loop_lens,
! 					       vec_num, vectype, i, factor, true);
  	      }
  	    else if (final_mask)
  	      {
*************** vectorizable_condition (vec_info *vinfo,
*** 12501,12508 ****
  	    {
  	      if (lens)
  		{
  		  len = vect_get_loop_len (loop_vinfo, gsi, lens,
! 					   vec_num, vectype, i, 1);
  		  signed char biasval
  		    = LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS (loop_vinfo);
  		  bias = build_int_cst (intQI_type_node, biasval);
--- 12498,12507 ----
  	    {
  	      if (lens)
  		{
+ 		  /* ??? Do we really want the adjusted LEN here?  Isn't this
+ 		     based on number of elements?  */
  		  len = vect_get_loop_len (loop_vinfo, gsi, lens,
! 					   vec_num, vectype, i, 1, true);
  		  signed char biasval
  		    = LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS (loop_vinfo);
  		  bias = build_int_cst (intQI_type_node, biasval);
diff -Nrcpad gcc-16-20260208/gcc/tree-vectorizer.h gcc-16-20260215/gcc/tree-vectorizer.h
*** gcc-16-20260208/gcc/tree-vectorizer.h	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/gcc/tree-vectorizer.h	Sun Feb 15 22:32:14 2026
*************** extern tree vect_get_smallest_scalar_typ
*** 2611,2617 ****
  extern opt_result vect_analyze_data_ref_dependences (loop_vec_info, unsigned int *);
  extern bool vect_slp_analyze_instance_dependence (vec_info *, slp_instance);
  extern opt_result vect_enhance_data_refs_alignment (loop_vec_info);
! extern opt_result vect_analyze_data_refs_alignment (loop_vec_info);
  extern bool vect_slp_analyze_instance_alignment (vec_info *, slp_instance);
  extern opt_result vect_analyze_data_ref_accesses (vec_info *, vec<int> *);
  extern opt_result vect_prune_runtime_alias_test_list (loop_vec_info);
--- 2611,2617 ----
  extern opt_result vect_analyze_data_ref_dependences (loop_vec_info, unsigned int *);
  extern bool vect_slp_analyze_instance_dependence (vec_info *, slp_instance);
  extern opt_result vect_enhance_data_refs_alignment (loop_vec_info);
! extern void vect_analyze_data_refs_alignment (loop_vec_info);
  extern bool vect_slp_analyze_instance_alignment (vec_info *, slp_instance);
  extern opt_result vect_analyze_data_ref_accesses (vec_info *, vec<int> *);
  extern opt_result vect_prune_runtime_alias_test_list (loop_vec_info);
*************** extern void vect_record_loop_len (loop_v
*** 2678,2684 ****
  				  tree, unsigned int);
  extern tree vect_get_loop_len (loop_vec_info, gimple_stmt_iterator *,
  			       vec_loop_lens *, unsigned int, tree,
! 			       unsigned int, unsigned int);
  extern tree vect_gen_loop_len_mask (loop_vec_info, gimple_stmt_iterator *,
  				    gimple_stmt_iterator *, vec_loop_lens *,
  				    unsigned int, tree, tree, unsigned int,
--- 2678,2684 ----
  				  tree, unsigned int);
  extern tree vect_get_loop_len (loop_vec_info, gimple_stmt_iterator *,
  			       vec_loop_lens *, unsigned int, tree,
! 			       unsigned int, unsigned int, bool);
  extern tree vect_gen_loop_len_mask (loop_vec_info, gimple_stmt_iterator *,
  				    gimple_stmt_iterator *, vec_loop_lens *,
  				    unsigned int, tree, tree, unsigned int,
diff -Nrcpad gcc-16-20260208/libgcobol/ChangeLog gcc-16-20260215/libgcobol/ChangeLog
*** gcc-16-20260208/libgcobol/ChangeLog	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/ChangeLog	Sun Feb 15 22:32:14 2026
***************
*** 1,3 ****
--- 1,66 ----
+ 2026-02-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR cobol/122839
+ 	* configure.ac (--with-target-libxml2, --with-target-libxml2-include,
+ 	--with-target-libxml2-lib): New configure options, use those to find
+ 	libxml2.
+ 	(LIBXML2_CPPFLAGS, LIBXML2_LIBS): New AC_SUBSTs.
+ 	* Makefile.am (AM_CPPFLAGS): Add $(LIBXML2_CPPFLAGS) rather than
+ 	-I /usr/include/libxml2.
+ 	(libgcobol_la_LDFLAGS): Add $(LIBXML2_LIBS).
+ 	* configure: Regenerate.
+ 	* config.h.in: Regenerate.
+ 	* Makefile.in: Regenerate.
+ 
+ 2026-02-12  Robert Dubner  <rdubner@symas.com>
+ 
+ 	PR cobol/121499
+ 	* LICENSE: Copyright updated to 2026.
+ 	* Makefile.am: Compile with -fstrict-aliasing.
+ 	* Makefile.in: Autoreconf.
+ 	* acinclude.m4: Copyright updated to 2026.
+ 	* charmaps.cc: Likewise.
+ 	* charmaps.h: Likewise.
+ 	* common-defs.h: Likewise.
+ 	* configure.tgt: Likewise.
+ 	* constants.cc: Likewise.
+ 	* ec.h: Likewise.
+ 	* encodings.h: Likewise.
+ 	* exceptl.h: Likewise.
+ 	* gcobolio.h: Likewise.
+ 	* gfileio.cc: Likewise.
+ 	* gfileio.h: Likewise.
+ 	* gmath.cc (multiply_int256_by_int64): Eliminate aliasing.
+ 	(divide_int256_by_int64): Likewise.
+ 	(multiply_int128_by_int128): Likewise.
+ 	(divide_int128_by_int128): Likewise.
+ 	* gmath.h: Copyright updated to 2026.
+ 	* intrinsic.cc: Likewise.
+ 	* io.cc: Likewise.
+ 	* io.h: Likewise.
+ 	* libgcobol.cc: Likewise.
+ 	* libgcobol.h: Likewise.
+ 	* stringbin.cc: Likewise.
+ 	* stringbin.h: Likewise.
+ 	* valconv.cc: Likewise.
+ 	* valconv.h: Likewise.
+ 	* xmlparse.cc: Likewise.
+ 
+ 2026-02-12  Robert Dubner  <rdubner@symas.com>
+ 
+ 	* Makefile.am: Temporarily continue to use -fno-strict-aliasing.
+ 	* Makefile.in: Likewise.
+ 	* libgcobol.cc (__gg__fetch_call_by_value_value): Simplify handling
+ 	of FldFloat.
+ 	(__gg__assign_value_from_stack): Likewise.
+ 	(__gg__unstring): Avoid uninitialized variable error.
+ 	(__gg__look_at_int128): New function useful for debugging.
+ 	(__gg__look_at_pointer): Likewise.
+ 	* xmlparse.cc (xml_event): Implement namespace XML.
+ 	(cdataBlock): Likewise.
+ 	(characters): Likewise.
+ 	(__gg__xml_parse):  Likewise.
+ 
  2026-02-05  Robert Dubner  <rdubner@symas.com>
  
  	* valconv.cc (__gg__string_to_numeric_edited): Explanatory comment.
diff -Nrcpad gcc-16-20260208/libgcobol/LICENSE gcc-16-20260215/libgcobol/LICENSE
*** gcc-16-20260208/libgcobol/LICENSE	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/LICENSE	Sun Feb 15 22:32:14 2026
***************
*** 1,4 ****
! Copyright (c) 2021-2025 Symas Corporation
  
  Redistribution and use in source and binary forms, with or without
  modification, are permitted provided that the following conditions are
--- 1,4 ----
! 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
diff -Nrcpad gcc-16-20260208/libgcobol/Makefile.am gcc-16-20260215/libgcobol/Makefile.am
*** gcc-16-20260208/libgcobol/Makefile.am	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/Makefile.am	Sun Feb 15 22:32:14 2026
***************
*** 1,4 ****
! # Copyright (C) 2025 Free Software Foundation, Inc.
  # Contributed by the Symas Corporation, 2025
  
  # This file is part of GCC.
--- 1,4 ----
! # Copyright (C) 2026 Free Software Foundation, Inc.
  # Contributed by the Symas Corporation, 2025
  
  # This file is part of GCC.
*************** nobase_libsubinclude_HEADERS =			\
*** 85,97 ****
  WARN_CFLAGS = -W -Wall -Wwrite-strings
  
  AM_CPPFLAGS = -I. -I posix/shim $(LIBQUADINCLUDE)
! AM_CPPFLAGS += -I /usr/include/libxml2
  
  AM_CFLAGS = $(XCFLAGS)
  AM_CXXFLAGS = $(XCFLAGS)
  AM_CXXFLAGS += $(WARN_CFLAGS)
  AM_CXXFLAGS += -DIN_TARGET_LIBS
! AM_CXXFLAGS += -fno-strict-aliasing
  
  if ENABLE_DARWIN_AT_RPATH
  # Handle embedded rpaths for Darwin.
--- 85,97 ----
  WARN_CFLAGS = -W -Wall -Wwrite-strings
  
  AM_CPPFLAGS = -I. -I posix/shim $(LIBQUADINCLUDE)
! AM_CPPFLAGS += $(LIBXML2_CPPFLAGS)
  
  AM_CFLAGS = $(XCFLAGS)
  AM_CXXFLAGS = $(XCFLAGS)
  AM_CXXFLAGS += $(WARN_CFLAGS)
  AM_CXXFLAGS += -DIN_TARGET_LIBS
! AM_CXXFLAGS += -fstrict-aliasing -Wstrict-aliasing -Wstrict-aliasing=3
  
  if ENABLE_DARWIN_AT_RPATH
  # Handle embedded rpaths for Darwin.
*************** endif
*** 103,109 ****
  libgcobol_la_LINK = $(CXXLINK) $(libgcobol_la_LDFLAGS)
  version_arg = -version-info $(LIBGCOBOL_VERSION)
  libgcobol_la_LDFLAGS = $(LTLDFLAGS) $(LIBQUADLIB) $(LTLIBICONV) \
! 	$(extra_ldflags_libgcobol) $(LIBS) $(version_arg)
  libgcobol_la_DEPENDENCIES = libgcobol.spec $(LIBQUADLIB_DEP)
  
  endif BUILD_LIBGCOBOL
--- 103,109 ----
  libgcobol_la_LINK = $(CXXLINK) $(libgcobol_la_LDFLAGS)
  version_arg = -version-info $(LIBGCOBOL_VERSION)
  libgcobol_la_LDFLAGS = $(LTLDFLAGS) $(LIBQUADLIB) $(LTLIBICONV) \
! 	$(extra_ldflags_libgcobol) $(LIBS) $(LIBXML2_LIBS) $(version_arg)
  libgcobol_la_DEPENDENCIES = libgcobol.spec $(LIBQUADLIB_DEP)
  
  endif BUILD_LIBGCOBOL
diff -Nrcpad gcc-16-20260208/libgcobol/Makefile.in gcc-16-20260215/libgcobol/Makefile.in
*** gcc-16-20260208/libgcobol/Makefile.in	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/Makefile.in	Sun Feb 15 22:32:14 2026
***************
*** 14,20 ****
  
  @SET_MAKE@
  
! # Copyright (C) 2025 Free Software Foundation, Inc.
  # Contributed by the Symas Corporation, 2025
  
  # This file is part of GCC.
--- 14,20 ----
  
  @SET_MAKE@
  
! # Copyright (C) 2026 Free Software Foundation, Inc.
  # Contributed by the Symas Corporation, 2025
  
  # This file is part of GCC.
*************** LIBQUADLIB_DEP = @LIBQUADLIB_DEP@
*** 312,317 ****
--- 312,319 ----
  LIBQUADSPEC = @LIBQUADSPEC@
  LIBS = @LIBS@
  LIBTOOL = @LIBTOOL@
+ LIBXML2_CPPFLAGS = @LIBXML2_CPPFLAGS@
+ LIBXML2_LIBS = @LIBXML2_LIBS@
  LIPO = @LIPO@
  LLVM_CONFIG = @LLVM_CONFIG@
  LN_S = @LN_S@
*************** gcc_version := $(shell @get_gcc_base_ver
*** 454,470 ****
  
  @BUILD_LIBGCOBOL_TRUE@WARN_CFLAGS = -W -Wall -Wwrite-strings
  @BUILD_LIBGCOBOL_TRUE@AM_CPPFLAGS = -I. -I posix/shim \
! @BUILD_LIBGCOBOL_TRUE@	$(LIBQUADINCLUDE) -I \
! @BUILD_LIBGCOBOL_TRUE@	/usr/include/libxml2
  @BUILD_LIBGCOBOL_TRUE@AM_CFLAGS = $(XCFLAGS)
  @BUILD_LIBGCOBOL_TRUE@AM_CXXFLAGS = $(XCFLAGS) $(WARN_CFLAGS) \
! @BUILD_LIBGCOBOL_TRUE@	-DIN_TARGET_LIBS -fno-strict-aliasing
  
  # We want to link with the c++ runtime.
  @BUILD_LIBGCOBOL_TRUE@libgcobol_la_LINK = $(CXXLINK) $(libgcobol_la_LDFLAGS)
  @BUILD_LIBGCOBOL_TRUE@version_arg = -version-info $(LIBGCOBOL_VERSION)
  @BUILD_LIBGCOBOL_TRUE@libgcobol_la_LDFLAGS = $(LTLDFLAGS) $(LIBQUADLIB) $(LTLIBICONV) \
! @BUILD_LIBGCOBOL_TRUE@	$(extra_ldflags_libgcobol) $(LIBS) $(version_arg)
  
  @BUILD_LIBGCOBOL_TRUE@libgcobol_la_DEPENDENCIES = libgcobol.spec $(LIBQUADLIB_DEP)
  all: config.h
--- 456,472 ----
  
  @BUILD_LIBGCOBOL_TRUE@WARN_CFLAGS = -W -Wall -Wwrite-strings
  @BUILD_LIBGCOBOL_TRUE@AM_CPPFLAGS = -I. -I posix/shim \
! @BUILD_LIBGCOBOL_TRUE@	$(LIBQUADINCLUDE) $(LIBXML2_CPPFLAGS)
  @BUILD_LIBGCOBOL_TRUE@AM_CFLAGS = $(XCFLAGS)
  @BUILD_LIBGCOBOL_TRUE@AM_CXXFLAGS = $(XCFLAGS) $(WARN_CFLAGS) \
! @BUILD_LIBGCOBOL_TRUE@	-DIN_TARGET_LIBS -fstrict-aliasing \
! @BUILD_LIBGCOBOL_TRUE@	-Wstrict-aliasing -Wstrict-aliasing=3
  
  # We want to link with the c++ runtime.
  @BUILD_LIBGCOBOL_TRUE@libgcobol_la_LINK = $(CXXLINK) $(libgcobol_la_LDFLAGS)
  @BUILD_LIBGCOBOL_TRUE@version_arg = -version-info $(LIBGCOBOL_VERSION)
  @BUILD_LIBGCOBOL_TRUE@libgcobol_la_LDFLAGS = $(LTLDFLAGS) $(LIBQUADLIB) $(LTLIBICONV) \
! @BUILD_LIBGCOBOL_TRUE@	$(extra_ldflags_libgcobol) $(LIBS) $(LIBXML2_LIBS) $(version_arg)
  
  @BUILD_LIBGCOBOL_TRUE@libgcobol_la_DEPENDENCIES = libgcobol.spec $(LIBQUADLIB_DEP)
  all: config.h
diff -Nrcpad gcc-16-20260208/libgcobol/acinclude.m4 gcc-16-20260215/libgcobol/acinclude.m4
*** gcc-16-20260208/libgcobol/acinclude.m4	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/acinclude.m4	Sun Feb 15 22:32:14 2026
***************
*** 1,4 ****
! dnl Copyright (C) 2021-2025 Free Software Foundation, Inc.
  dnl This file is free software; the Free Software Foundation
  dnl gives unlimited permission to copy and/or distribute it,
  dnl with or without modifications, as long as this notice is preserved.
--- 1,4 ----
! dnl Copyright (C) 2021-2026 Free Software Foundation, Inc.
  dnl This file is free software; the Free Software Foundation
  dnl gives unlimited permission to copy and/or distribute it,
  dnl with or without modifications, as long as this notice is preserved.
diff -Nrcpad gcc-16-20260208/libgcobol/charmaps.cc gcc-16-20260215/libgcobol/charmaps.cc
*** gcc-16-20260208/libgcobol/charmaps.cc	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/charmaps.cc	Sun Feb 15 22:32:14 2026
***************
*** 1,6 ****
  // This file is included in both the libgcobol and gcc/cobol compilations
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,6 ----
  // This file is included in both the libgcobol and gcc/cobol compilations
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/libgcobol/charmaps.h gcc-16-20260215/libgcobol/charmaps.h
*** gcc-16-20260208/libgcobol/charmaps.h	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/charmaps.h	Sun Feb 15 22:32:14 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/libgcobol/common-defs.h gcc-16-20260215/libgcobol/common-defs.h
*** gcc-16-20260208/libgcobol/common-defs.h	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/common-defs.h	Sun Feb 15 22:32:14 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/libgcobol/config.h.in gcc-16-20260215/libgcobol/config.h.in
*** gcc-16-20260208/libgcobol/config.h.in	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/config.h.in	Sun Feb 15 22:32:14 2026
***************
*** 55,63 ****
  /* Define to 1 if you have the `random_r' function. */
  #undef HAVE_RANDOM_R
  
- /* Define to 1 if you have the `xmlParseChunk' function. */
- #undef HAVE_SAX_XML_PARSER
- 
  /* Define to 1 if you have the `setstate_r' function. */
  #undef HAVE_SETSTATE_R
  
--- 55,60 ----
diff -Nrcpad gcc-16-20260208/libgcobol/configure gcc-16-20260215/libgcobol/configure
*** gcc-16-20260208/libgcobol/configure	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/configure	Sun Feb 15 22:32:14 2026
*************** LIBQUADINCLUDE
*** 644,649 ****
--- 644,651 ----
  LIBQUADLIB_DEP
  LIBQUADLIB
  LIBQUADSPEC
+ LIBXML2_LIBS
+ LIBXML2_CPPFLAGS
  extra_ldflags_libgcobol
  LIBGCOBOL_VERSION
  BUILD_LIBGCOBOL_FALSE
*************** with_toolexeclibdir
*** 803,808 ****
--- 805,813 ----
  enable_rpath
  with_libiconv_prefix
  with_libiconv_type
+ with_target_libxml2
+ with_target_libxml2_include
+ with_target_libxml2_lib
  enable_libquadmath
  with_gcc_major_version_only
  '
*************** Optional Packages:
*** 1472,1477 ****
--- 1477,1492 ----
    --with-libiconv-prefix[=DIR]  search for libiconv in DIR/include and DIR/lib
    --without-libiconv-prefix     don't search for libiconv in includedir and libdir
    --with-libiconv-type=TYPE     type of library to search for (auto/static/shared)
+   --with-target-libxml2=PATHLIST
+                           specify prefix directory for installed libxml2
+                           package. Equivalent to
+                           --with-target-libxml2-include=PATH/include plus
+                           --with-target-libxml2-lib=PATH/lib
+   --with-target-libxml2-include=PATHLIST
+                           specify directories for installed libxml2 include
+                           files
+   --with-target-libxml2-lib=PATHLIST
+                           specify directories for installed libxml2 library
    --with-gcc-major-version-only
                            use only GCC major number in filesystem paths
  
*************** else
*** 12199,12205 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12202 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 12214,12220 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12217 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
*************** else
*** 12305,12311 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12308 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 12320,12326 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 12323 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
*************** fi
*** 17666,17764 ****
  
  
  # These are libxml2.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xmlSAXUserParseMemory in -lxml2" >&5
- $as_echo_n "checking for xmlSAXUserParseMemory in -lxml2... " >&6; }
- if ${ac_cv_lib_xml2_xmlSAXUserParseMemory+:} false; then :
-   $as_echo_n "(cached) " >&6
- else
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lxml2  $LIBS"
- if test x$gcc_no_link = xyes; then
-   as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
- fi
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
  
! /* Override any GCC internal prototype to avoid an error.
!    Use char because int might match the return type of a GCC
!    builtin and then its argument prototype would still apply.  */
! #ifdef __cplusplus
! extern "C"
! #endif
! char xmlSAXUserParseMemory ();
! int
! main ()
! {
! return xmlSAXUserParseMemory ();
!   ;
!   return 0;
! }
! _ACEOF
! if ac_fn_cxx_try_link "$LINENO"; then :
!   ac_cv_lib_xml2_xmlSAXUserParseMemory=yes
! else
!   ac_cv_lib_xml2_xmlSAXUserParseMemory=no
! fi
! rm -f core conftest.err conftest.$ac_objext \
!     conftest$ac_exeext conftest.$ac_ext
! LIBS=$ac_check_lib_save_LIBS
  fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_xml2_xmlSAXUserParseMemory" >&5
- $as_echo "$ac_cv_lib_xml2_xmlSAXUserParseMemory" >&6; }
- if test "x$ac_cv_lib_xml2_xmlSAXUserParseMemory" = xyes; then :
-   LIBS="-lxml2 $LIBS"
  
- $as_echo "#define HAVE_SAX_XML_PARSER 1" >>confdefs.h
  
  fi
  
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xmlParseChunk in -lxml2" >&5
- $as_echo_n "checking for xmlParseChunk in -lxml2... " >&6; }
- if ${ac_cv_lib_xml2_xmlParseChunk+:} false; then :
-   $as_echo_n "(cached) " >&6
- else
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lxml2  $LIBS"
- if test x$gcc_no_link = xyes; then
-   as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
- fi
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
  
! /* Override any GCC internal prototype to avoid an error.
!    Use char because int might match the return type of a GCC
!    builtin and then its argument prototype would still apply.  */
! #ifdef __cplusplus
! extern "C"
! #endif
! char xmlParseChunk ();
! int
! main ()
! {
! return xmlParseChunk ();
!   ;
!   return 0;
! }
! _ACEOF
! if ac_fn_cxx_try_link "$LINENO"; then :
!   ac_cv_lib_xml2_xmlParseChunk=yes
! else
!   ac_cv_lib_xml2_xmlParseChunk=no
! fi
! rm -f core conftest.err conftest.$ac_objext \
!     conftest$ac_exeext conftest.$ac_ext
! LIBS=$ac_check_lib_save_LIBS
  fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_xml2_xmlParseChunk" >&5
- $as_echo "$ac_cv_lib_xml2_xmlParseChunk" >&6; }
- if test "x$ac_cv_lib_xml2_xmlParseChunk" = xyes; then :
-   LIBS="-lxml2 $LIBS"
  
- $as_echo "#define HAVE_SAX_XML_PARSER 1" >>confdefs.h
  
  fi
  
  
  # Copied from gcc/configure.ac. 2025-06-05 R.J.Dubner
  # At least for glibc, clock_gettime is in librt.  But don't pull that
  # in if it still doesn't give us the function we want.
--- 17681,17791 ----
  
  
  # These are libxml2.
  
! # Check whether --with-target-libxml2 was given.
! if test "${with_target_libxml2+set}" = set; then :
!   withval=$with_target_libxml2;
  fi
  
  
+ # Check whether --with-target-libxml2-include was given.
+ if test "${with_target_libxml2_include+set}" = set; then :
+   withval=$with_target_libxml2_include;
  fi
  
  
! # Check whether --with-target-libxml2-lib was given.
! if test "${with_target_libxml2_lib+set}" = set; then :
!   withval=$with_target_libxml2_lib;
  fi
  
  
+ if test "x$use_libgcobol" = xyes && test "x$libgcobol_cv_have_int128" = xyes; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxml2" >&5
+ $as_echo_n "checking for libxml2... " >&6; }
+   if test "x$with_target_libxml2$with_target_libxml2_include$with_target_libxml2_lib" = x; then
+         LIBXML2_CPPFLAGS="-I /usr/include/libxml2"
+     LIBXML2_LIBS="-lxml2"
+   else
+         if test "x$with_target_libxml2_include" = x && test "x$with_target_libxml2_lib" != x; then
+       as_fn_error $? "found --with-target-libxml2-lib but --with-target-libxml2-include missing" "$LINENO" 5
+     elif test "x$with_target_libxml2_include" != x && test "x$with_target_libxml2_lib" = x; then
+       as_fn_error $? "found --with-target-libxml2-include but --with-target-libxml2-lib missing" "$LINENO" 5
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: using paths configured with --with-target-libxml2 options" >&5
+ $as_echo "using paths configured with --with-target-libxml2 options" >&6; }
+     fi
+     mldir=`${CC-gcc} --print-multi-directory 2>/dev/null`
+     libxml2_val=
+     if test "x$with_target_libxml2" != x; then
+       for i in `echo $with_target_libxml2 | tr ',' ' '`; do
+         case "$i" in
+           *=*) sd=${i%%=*}; d=${i#*=} ;;
+           *) sd=.; d=$i ;;
+         esac
+         if test "$mldir" = "$sd"; then
+           libxml2_val=$d
+         fi
+       done
+       if test "x$libxml2_val" = x; then
+         as_fn_error $? "no multilib path ($mldir) found in --with-target-libxml2" "$LINENO" 5
+       fi
+       libxml2_inc_dir="$libxml2_val/include"
+       libxml2_lib_dir="$libxml2_val/lib"
+     fi
+     libxml2_val=
+     if test "x$with_target_libxml2_include" != x; then
+       for i in `echo $with_target_libxml2_include | tr ',' ' '`; do
+         case "$i" in
+           *=*) sd=${i%%=*}; d=${i#*=} ;;
+           *) sd=.; d=$i; fallback=$i ;;
+         esac
+         if test "$mldir" = "$sd"; then
+           libxml2_val=$d
+         fi
+       done
+       if test "x$libxml2_val" = x && test "x$libxml2_inc_dir" = x && test "x$fallback" != x; then
+         libxml2_inc_dir="$fallback"
+       elif test "x$libxml2_val" = x; then
+         as_fn_error $? "no multilib path ($mldir) found in --with-target-libxml2-include" "$LINENO" 5
+       else
+         libxml2_inc_dir="$libxml2_val"
+       fi
+     fi
+     libxml2_val=
+     if test "x$with_target_libxml2_lib" != x; then
+       for i in `echo $with_target_libxml2_lib | tr ',' ' '`; do
+         case "$i" in
+           *=*) sd=${i%%=*}; d=${i#*=} ;;
+           *) sd=.; d=$i ;;
+         esac
+         if test "$mldir" = "$sd"; then
+           libxml2_val=$d
+         fi
+       done
+       if test "x$libxml2_val" = x; then
+         as_fn_error $? "no multilib path ($mldir) found in --with-target-libxml2-lib" "$LINENO" 5
+       fi
+       libxml2_lib_dir="$libxml2_val"
+     fi
+     if test "x$libxml2_inc_dir" = x; then
+       as_fn_error $? "no multilib path ($mldir) found in --with-target-libxml2-include" "$LINENO" 5
+     fi
+     if test "x$libxml2_lib_dir" = x; then
+       as_fn_error $? "no multilib path ($mldir) found in --with-target-libxml2-lib" "$LINENO" 5
+     fi
+     LIBXML2_CPPFLAGS="-I$libxml2_inc_dir"
+     LIBXML2_LIBS="-L$libxml2_lib_dir -lxml2"
+     { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
+ $as_echo "found" >&6; }
+   fi
+ else
+   LIBXML2_CPPFLAGS=
+   LIBXML2_LIBS=
  fi
  
  
+ 
  # Copied from gcc/configure.ac. 2025-06-05 R.J.Dubner
  # At least for glibc, clock_gettime is in librt.  But don't pull that
  # in if it still doesn't give us the function we want.
diff -Nrcpad gcc-16-20260208/libgcobol/configure.ac gcc-16-20260215/libgcobol/configure.ac
*** gcc-16-20260208/libgcobol/configure.ac	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/configure.ac	Sun Feb 15 22:32:14 2026
*************** libgcobol_have_cacosf128=no
*** 233,246 ****
  AC_SEARCH_LIBS([cacosf128], [c m], libgcobol_have_cacosf128=yes)
  
  # These are libxml2.
! AC_CHECK_LIB(xml2, xmlSAXUserParseMemory,
!   [LIBS="-lxml2 $LIBS"
!    AC_DEFINE(HAVE_SAX_XML_PARSER, 1,
! 	     [Define to 1 if you have the `xmlSAXUserParseMemory' function.])])
! AC_CHECK_LIB(xml2, xmlParseChunk,
!   [LIBS="-lxml2 $LIBS"
!    AC_DEFINE(HAVE_SAX_XML_PARSER, 1,
! 	     [Define to 1 if you have the `xmlParseChunk' function.])])
  
  # Copied from gcc/configure.ac. 2025-06-05 R.J.Dubner
  # At least for glibc, clock_gettime is in librt.  But don't pull that
--- 233,334 ----
  AC_SEARCH_LIBS([cacosf128], [c m], libgcobol_have_cacosf128=yes)
  
  # These are libxml2.
! AC_ARG_WITH([target-libxml2],
! [AS_HELP_STRING([--with-target-libxml2=PATHLIST],
! 		[specify prefix directory for installed libxml2 package.
! 		 Equivalent to --with-target-libxml2-include=PATH/include
! 		 plus --with-target-libxml2-lib=PATH/lib])])
! AC_ARG_WITH([target-libxml2-include],
! [AS_HELP_STRING([--with-target-libxml2-include=PATHLIST],
! 		[specify directories for installed libxml2 include files])])
! AC_ARG_WITH([target-libxml2-lib],
! [AS_HELP_STRING([--with-target-libxml2-lib=PATHLIST],
! 		[specify directories for installed libxml2 library])])
! 
! if test "x$use_libgcobol" = xyes && test "x$libgcobol_cv_have_int128" = xyes; then
!   AC_MSG_CHECKING([for libxml2])
!   if test "x$with_target_libxml2$with_target_libxml2_include$with_target_libxml2_lib" = x; then
!     dnl no libxml2 options, assuming libxml2 in default locations
!     LIBXML2_CPPFLAGS="-I /usr/include/libxml2"
!     LIBXML2_LIBS="-lxml2"
!   else
!     dnl libxml2 options passed by configure flags
!     if test "x$with_target_libxml2_include" = x && test "x$with_target_libxml2_lib" != x; then
!       AC_MSG_ERROR([found --with-target-libxml2-lib but --with-target-libxml2-include missing])
!     elif test "x$with_target_libxml2_include" != x && test "x$with_target_libxml2_lib" = x; then
!       AC_MSG_ERROR([found --with-target-libxml2-include but --with-target-libxml2-lib missing])
!     else
!       AC_MSG_RESULT([using paths configured with --with-target-libxml2 options])
!     fi
!     mldir=`${CC-gcc} --print-multi-directory 2>/dev/null`
!     libxml2_val=
!     if test "x$with_target_libxml2" != x; then
!       for i in `echo $with_target_libxml2 | tr ',' ' '`; do
!         case "$i" in
!           *=*) sd=${i%%=*}; d=${i#*=} ;;
!           *) sd=.; d=$i ;;
!         esac
!         if test "$mldir" = "$sd"; then
!           libxml2_val=$d
!         fi
!       done
!       if test "x$libxml2_val" = x; then
!         AC_MSG_ERROR([no multilib path ($mldir) found in --with-target-libxml2])
!       fi
!       libxml2_inc_dir="$libxml2_val/include"
!       libxml2_lib_dir="$libxml2_val/lib"
!     fi
!     libxml2_val=
!     if test "x$with_target_libxml2_include" != x; then
!       for i in `echo $with_target_libxml2_include | tr ',' ' '`; do
!         case "$i" in
!           *=*) sd=${i%%=*}; d=${i#*=} ;;
!           *) sd=.; d=$i; fallback=$i ;;
!         esac
!         if test "$mldir" = "$sd"; then
!           libxml2_val=$d
!         fi
!       done
!       if test "x$libxml2_val" = x && test "x$libxml2_inc_dir" = x && test "x$fallback" != x; then
!         libxml2_inc_dir="$fallback"
!       elif test "x$libxml2_val" = x; then
!         AC_MSG_ERROR([no multilib path ($mldir) found in --with-target-libxml2-include])
!       else
!         libxml2_inc_dir="$libxml2_val"
!       fi
!     fi
!     libxml2_val=
!     if test "x$with_target_libxml2_lib" != x; then
!       for i in `echo $with_target_libxml2_lib | tr ',' ' '`; do
!         case "$i" in
!           *=*) sd=${i%%=*}; d=${i#*=} ;;
!           *) sd=.; d=$i ;;
!         esac
!         if test "$mldir" = "$sd"; then
!           libxml2_val=$d
!         fi
!       done
!       if test "x$libxml2_val" = x; then
!         AC_MSG_ERROR([no multilib path ($mldir) found in --with-target-libxml2-lib])
!       fi
!       libxml2_lib_dir="$libxml2_val"
!     fi
!     if test "x$libxml2_inc_dir" = x; then
!       AC_MSG_ERROR([no multilib path ($mldir) found in --with-target-libxml2-include])
!     fi
!     if test "x$libxml2_lib_dir" = x; then
!       AC_MSG_ERROR([no multilib path ($mldir) found in --with-target-libxml2-lib])
!     fi
!     LIBXML2_CPPFLAGS="-I$libxml2_inc_dir"
!     LIBXML2_LIBS="-L$libxml2_lib_dir -lxml2"
!     AC_MSG_RESULT([found])
!   fi
! else
!   LIBXML2_CPPFLAGS=
!   LIBXML2_LIBS=
! fi
! AC_SUBST(LIBXML2_CPPFLAGS)
! AC_SUBST(LIBXML2_LIBS)
  
  # Copied from gcc/configure.ac. 2025-06-05 R.J.Dubner
  # At least for glibc, clock_gettime is in librt.  But don't pull that
diff -Nrcpad gcc-16-20260208/libgcobol/configure.tgt gcc-16-20260215/libgcobol/configure.tgt
*** gcc-16-20260208/libgcobol/configure.tgt	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/configure.tgt	Sun Feb 15 22:32:14 2026
***************
*** 1,5 ****
  # -*- shell-script -*-
! # Copyright (C) 2025 Free Software Foundation, Inc.
  #
  # GCC is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
--- 1,5 ----
  # -*- shell-script -*-
! # Copyright (C) 2026 Free Software Foundation, Inc.
  #
  # GCC is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
diff -Nrcpad gcc-16-20260208/libgcobol/constants.cc gcc-16-20260215/libgcobol/constants.cc
*** gcc-16-20260208/libgcobol/constants.cc	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/constants.cc	Sun Feb 15 22:32:14 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/libgcobol/ec.h gcc-16-20260215/libgcobol/ec.h
*** gcc-16-20260208/libgcobol/ec.h	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/ec.h	Sun Feb 15 22:32:14 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
--- 1,5 ----
  /*
!  * Copyright (c) 2021-2026 Symas Corporation
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
diff -Nrcpad gcc-16-20260208/libgcobol/encodings.h gcc-16-20260215/libgcobol/encodings.h
*** gcc-16-20260208/libgcobol/encodings.h	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/encodings.h	Sun Feb 15 22:32:14 2026
***************
*** 1,5 ****
   /*
!  * Copyright (c) 2021_2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
   /*
!  * 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
diff -Nrcpad gcc-16-20260208/libgcobol/exceptl.h gcc-16-20260215/libgcobol/exceptl.h
*** gcc-16-20260208/libgcobol/exceptl.h	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/exceptl.h	Sun Feb 15 22:32:14 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
--- 1,5 ----
  /*
!  * Copyright (c) 2021-2026 Symas Corporation
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
diff -Nrcpad gcc-16-20260208/libgcobol/gcobolio.h gcc-16-20260215/libgcobol/gcobolio.h
*** gcc-16-20260208/libgcobol/gcobolio.h	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/gcobolio.h	Sun Feb 15 22:32:14 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/libgcobol/gfileio.cc gcc-16-20260215/libgcobol/gfileio.cc
*** gcc-16-20260208/libgcobol/gfileio.cc	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/gfileio.cc	Sun Feb 15 22:32:14 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/libgcobol/gfileio.h gcc-16-20260215/libgcobol/gfileio.h
*** gcc-16-20260208/libgcobol/gfileio.h	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/gfileio.h	Sun Feb 15 22:32:14 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/libgcobol/gmath.cc gcc-16-20260215/libgcobol/gmath.cc
*** gcc-16-20260208/libgcobol/gmath.cc	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/gmath.cc	Sun Feb 15 22:32:14 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
*************** typedef struct int256
*** 361,366 ****
--- 361,375 ----
      };
    }int256;
  
+ typedef struct int128
+   {
+   union
+     {
+     uint64_t       i64 [2];
+     uint128        i128;
+     };
+   }int128;
+ 
  static int
  multiply_int256_by_int64(int256 &product, const uint64_t multiplier)
    {
*************** multiply_int256_by_int64(int256 &product
*** 368,378 ****
    // a factor of ten.  This is effectively left-shifting by decimal
    // digits.  See scale_int256_by_digits
    uint64_t overflows[5] = {};
    for(int i=0; i<4; i++)
      {
!     uint128 temp = (uint128)product.i64[i] * multiplier;
!     product.i64[i] = *PTRCAST(uint64_t, &temp);
!     overflows[i+1] = *PTRCAST(uint64_t, PTRCAST(uint8_t, &temp) + 8);
      }
  
    for(int i=1; i<4; i++)
--- 377,389 ----
    // a factor of ten.  This is effectively left-shifting by decimal
    // digits.  See scale_int256_by_digits
    uint64_t overflows[5] = {};
+   int128 temp;
    for(int i=0; i<4; i++)
      {
!     //  cppcheck-suppress unreadVariable  // cppcheck is dumb about unions???
!     temp.i128 = (uint128)product.i64[i] * multiplier;
!     product.i64[i] = temp.i64[0];
!     overflows[i+1] = temp.i64[1];
      }
  
    for(int i=1; i<4; i++)
*************** static void
*** 450,470 ****
  divide_int256_by_int64(int256 &val, uint64_t divisor)
    {
    // val needs to be a positive number
!   uint128 temp = 0;
    for( int i=3; i>=0; i-- )
      {
      // Left shift temp 64 bits:
!     *PTRCAST(uint64_t, ((PTRCAST(uint8_t, &temp))+8))
!                           = *PTRCAST(uint64_t, ((PTRCAST(uint8_t, &temp))+0));
  
      // Put the high digit of val into the bottom of temp
!     *PTRCAST(uint64_t, ((PTRCAST(uint8_t, &temp))+0)) = val.i64[i];
  
      // Divide that combinary by divisor to get the new digits
!     val.i64[i] = temp / divisor;
  
      // And the new temp is that combination modulo divisor
!     temp = temp % divisor;
      }
    }
  
--- 461,480 ----
  divide_int256_by_int64(int256 &val, uint64_t divisor)
    {
    // val needs to be a positive number
!   int128 temp = {};
    for( int i=3; i>=0; i-- )
      {
      // Left shift temp 64 bits:
!     temp.i64[1] = temp.i64[0];
  
      // Put the high digit of val into the bottom of temp
!     temp.i64[0] = val.i64[i];
  
      // Divide that combinary by divisor to get the new digits
!     val.i64[i] = temp.i128 / divisor;
  
      // And the new temp is that combination modulo divisor
!     temp.i128 = temp.i128 % divisor;
      }
    }
  
*************** void multiply_int128_by_int128(int256 &A
*** 1287,1296 ****
    uint128 BD;
  
    // Let's extract the digits.
!   uint64_t a = *PTRCAST(uint64_t, (PTRCAST(unsigned char, (&ab_value))+8));
!   uint64_t b = *PTRCAST(uint64_t, (PTRCAST(unsigned char, (&ab_value))+0));
!   uint64_t c = *PTRCAST(uint64_t, (PTRCAST(unsigned char, (&cd_value))+8));
!   uint64_t d = *PTRCAST(uint64_t, (PTRCAST(unsigned char, (&cd_value))+0));
  
    // multiply (a0 + b) * (c0 + d)
  
--- 1297,1306 ----
    uint128 BD;
  
    // Let's extract the digits.
!   uint64_t a = ab_value>>64;
!   uint64_t b = ab_value;
!   uint64_t c = cd_value>>64;
!   uint64_t d = cd_value;
  
    // multiply (a0 + b) * (c0 + d)
  
*************** divide_int128_by_int128(int256   &quotie
*** 1703,1729 ****
  
        // Now we multiply our 64-bit guess by the 128-bit CD to get the
        // three-place value we are going to subtract from the numerator area.
! 
!       uint64_t subber[3];
!       subber[2] = 0;
  
        // Start with the bottom 128 bits of the "subber"
!       *PTRCAST(uint128, subber) = (uint128) divisor64[0] * quotient.i64[q_place];
  
        // Get the next 128 bits of subber
        temp = (uint128) divisor64[1] * quotient.i64[q_place];
  
        // Add the top of the first product to the bottom of the second:
!       subber[1] += temp64[0];
  
        // See if there was an overflow:
!       if( subber[1] < temp64[0] )
          {
          // There was an overflow
!         subber[2] = 1;
          }
        // And now put the top of the second product into place:
!       subber[2] += temp64[1];
  
        // "subber" is now the three-place product of the two-place divisor times
        // the one-place guess
--- 1713,1740 ----
  
        // Now we multiply our 64-bit guess by the 128-bit CD to get the
        // three-place value we are going to subtract from the numerator area.
!       // We use the bottom three i64[] places of an int256 structure to hold
!       // that three-place value
!       int256 subber;
!       subber.i64[2] = 0;
  
        // Start with the bottom 128 bits of the "subber"
!       subber.i128[0] = (uint128) divisor64[0] * quotient.i64[q_place];
  
        // Get the next 128 bits of subber
        temp = (uint128) divisor64[1] * quotient.i64[q_place];
  
        // Add the top of the first product to the bottom of the second:
!       subber.i64[1] += temp64[0];
  
        // See if there was an overflow:
!       if( subber.i64[1] < temp64[0] )
          {
          // There was an overflow
!         subber.i64[2] = 1;
          }
        // And now put the top of the second product into place:
!       subber.i64[2] += temp64[1];
  
        // "subber" is now the three-place product of the two-place divisor times
        // the one-place guess
*************** divide_int128_by_int128(int256   &quotie
*** 1738,1750 ****
            {
            // We are subtracting from zero and we have a borrow.  Leave the
            // borrow on and just do the subtraction:
!           numerator.i64[q_place + j] -= subber[j];
            }
          else
            {
            uint64_t stash = numerator.i64[q_place + j];
            numerator.i64[q_place + j] -= borrow;
!           numerator.i64[q_place + j] -= subber[j];
            if( numerator.i64[q_place + j] > stash )
              {
              // After subtracting, the value got bigger, which means we have
--- 1749,1761 ----
            {
            // We are subtracting from zero and we have a borrow.  Leave the
            // borrow on and just do the subtraction:
!           numerator.i64[q_place + j] -= subber.i64[j];
            }
          else
            {
            uint64_t stash = numerator.i64[q_place + j];
            numerator.i64[q_place + j] -= borrow;
!           numerator.i64[q_place + j] -= subber.i64[j];
            if( numerator.i64[q_place + j] > stash )
              {
              // After subtracting, the value got bigger, which means we have
*************** divide_int128_by_int128(int256   &quotie
*** 1775,1788 ****
              {
              // We are at the top and have a carry.  Just leave the carry on
              // and do the addition:
!             numerator.i64[q_place + ii] += subber[ii];
              }
            else
              {
              // We are not at the top.
              uint64_t stash = numerator.i64[q_place + ii];
              numerator.i64[q_place + ii] += carry;
!             numerator.i64[q_place + ii] += subber[ii];
              if( numerator.i64[q_place + ii] < stash )
                {
                // The addition caused the result to get smaller, meaning that
--- 1786,1799 ----
              {
              // We are at the top and have a carry.  Just leave the carry on
              // and do the addition:
!             numerator.i64[q_place + ii] += subber.i64[ii];
              }
            else
              {
              // We are not at the top.
              uint64_t stash = numerator.i64[q_place + ii];
              numerator.i64[q_place + ii] += carry;
!             numerator.i64[q_place + ii] += subber.i64[ii];
              if( numerator.i64[q_place + ii] < stash )
                {
                // The addition caused the result to get smaller, meaning that
diff -Nrcpad gcc-16-20260208/libgcobol/gmath.h gcc-16-20260215/libgcobol/gmath.h
*** gcc-16-20260208/libgcobol/gmath.h	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/gmath.h	Sun Feb 15 22:32:14 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/libgcobol/intrinsic.cc gcc-16-20260215/libgcobol/intrinsic.cc
*** gcc-16-20260208/libgcobol/intrinsic.cc	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/intrinsic.cc	Sun Feb 15 22:32:14 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/libgcobol/io.cc gcc-16-20260215/libgcobol/io.cc
*** gcc-16-20260208/libgcobol/io.cc	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/io.cc	Sun Feb 15 22:32:14 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/libgcobol/io.h gcc-16-20260215/libgcobol/io.h
*** gcc-16-20260208/libgcobol/io.h	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/io.h	Sun Feb 15 22:32:14 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/libgcobol/libgcobol.cc gcc-16-20260215/libgcobol/libgcobol.cc
*** gcc-16-20260208/libgcobol/libgcobol.cc	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/libgcobol.cc	Sun Feb 15 22:32:14 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
***************
*** 8,13 ****
--- 8,14 ----
   * * 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
+  * * 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.
*************** __gg__fetch_call_by_value_value(const cb
*** 11568,11590 ****
  
      case FldFloat:
        {
!       switch(length)
!         {
!         case 4:
!           *PTRCAST(float, &retval) = *PTRCAST(float, data);
!           break;
! 
!         case 8:
!           *PTRCAST(double, &retval) = *PTRCAST(double, data);
!           break;
! 
!         case 16:
!           // *(_Float128 *)(&retval) = double(*(_Float128 *)data);
!           GCOB_FP128 t;
!           memcpy(&t, data, 16);
!           memcpy(&retval, &t, 16);
!           break;
!         }
        break;
        }
  
--- 11569,11575 ----
  
      case FldFloat:
        {
!       memcpy(&retval, data, length);
        break;
        }
  
*************** __gg__assign_value_from_stack(cblc_field
*** 11629,11651 ****
  
      case FldFloat:
        {
!       switch(dest->capacity)
!         {
!         case 4:
!           *PTRCAST(float, dest->data) = *PTRCAST(float, (&parameter));
!           break;
! 
!         case 8:
!           *PTRCAST(double, dest->data) = *PTRCAST(double, (&parameter));
!           break;
! 
!         case 16:
!           // *(_Float128 *)(dest->data) = *(_Float128 *)&parameter;
!           GCOB_FP128 t;
!           memcpy(&t, &parameter, 16);
!           memcpy(dest->data, &t, 16);
!           break;
!         }
        break;
        }
  
--- 11614,11620 ----
  
      case FldFloat:
        {
!       memcpy(dest->data, &parameter, dest->capacity);
        break;
        }
  
*************** __gg__unstring( const cblc_field_t *id1,
*** 11745,11752 ****
    int tally = 0;
    size_t pointer = 1;
    size_t nreceiver;
!   size_t left;
!   size_t right;
  
    std::u32string str_id1;
    std::vector<std::u32string> delimiters;
--- 11714,11721 ----
    int tally = 0;
    size_t pointer = 1;
    size_t nreceiver;
!   size_t left=0;
!   size_t right=0;
  
    std::u32string str_id1;
    std::vector<std::u32string> delimiters;
*************** __gg__convert(cblc_field_t *dest,
*** 14634,14636 ****
--- 14603,14629 ----
      __gg__adjust_dest_size(dest, len);
      }
    }
+ 
+ 
+ extern "C"
+ __int128
+ __gg__look_at_int128(__int128 val128)
+   {
+   /* This silly-looking function is included here as an aide to debugging
+      code generated at compile time.  Because it is difficult to use GDB on
+      code created via GENERIC tags (there is, after all, no source code), it's
+      necessary to use things like gg_printf to do print-statement debugging on
+      such code.  But there is no provision in printf for outputting __int128
+      values.  So, I created this routine; during debugging I can generate a
+      call to it, and then with GDB (which can display __int128 values in
+      decimal) I can set a breakpoint here and see the value. */
+   return val128;
+   }
+ 
+ extern "C"
+ void *
+ __gg__look_at_pointer(void *ptr)
+   {
+   // See comment for __gg__look_at_int128
+   return ptr;
+   }
diff -Nrcpad gcc-16-20260208/libgcobol/libgcobol.h gcc-16-20260215/libgcobol/libgcobol.h
*** gcc-16-20260208/libgcobol/libgcobol.h	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/libgcobol.h	Sun Feb 15 22:32:14 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/libgcobol/stringbin.cc gcc-16-20260215/libgcobol/stringbin.cc
*** gcc-16-20260208/libgcobol/stringbin.cc	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/stringbin.cc	Sun Feb 15 22:32:14 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/libgcobol/stringbin.h gcc-16-20260215/libgcobol/stringbin.h
*** gcc-16-20260208/libgcobol/stringbin.h	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/stringbin.h	Sun Feb 15 22:32:14 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/libgcobol/valconv.cc gcc-16-20260215/libgcobol/valconv.cc
*** gcc-16-20260208/libgcobol/valconv.cc	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/valconv.cc	Sun Feb 15 22:32:14 2026
***************
*** 1,6 ****
  // This file is included in both the libgcobol and gcc/cobol compilations
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,6 ----
  // This file is included in both the libgcobol and gcc/cobol compilations
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/libgcobol/valconv.h gcc-16-20260215/libgcobol/valconv.h
*** gcc-16-20260208/libgcobol/valconv.h	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/valconv.h	Sun Feb 15 22:32:14 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
diff -Nrcpad gcc-16-20260208/libgcobol/xmlparse.cc gcc-16-20260215/libgcobol/xmlparse.cc
*** gcc-16-20260208/libgcobol/xmlparse.cc	Sun Feb  8 22:32:15 2026
--- gcc-16-20260215/libgcobol/xmlparse.cc	Sun Feb 15 22:32:14 2026
***************
*** 1,5 ****
  /*
!  * Copyright (c) 2021-2025 Symas Corporation
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
--- 1,5 ----
  /*
!  * 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
*************** xml_event( const char event_name[], size
*** 298,307 ****
    xml_event(event_name, len, text);
  }
  
  static inline void
  xml_event( const char event_name[], const xmlChar * value ) {
    char *text = reinterpret_cast<char*>(const_cast<xmlChar*>(value));
!   xml_event(event_name, strlen(text), text);
  }
  
  /*
--- 298,309 ----
    xml_event(event_name, len, text);
  }
  
+ namespace XML {
+ 
  static inline void
  xml_event( const char event_name[], const xmlChar * value ) {
    char *text = reinterpret_cast<char*>(const_cast<xmlChar*>(value));
!   ::xml_event(event_name, strlen(text), text);
  }
  
  /*
*************** static void cdataBlock(void * CTX,
*** 327,333 ****
                         int len)
  {
    SAYSO_DATA(len, data);
!   xml_event("CONTENT-CHARACTERS", len, data);
  }
  
  static void characters(void * CTX,
--- 329,335 ----
                         int len)
  {
    SAYSO_DATA(len, data);
!   ::xml_event("CONTENT-CHARACTERS", len, data);
  }
  
  static void characters(void * CTX,
*************** static void characters(void * CTX,
*** 335,341 ****
                         int len)
  {
    SAYSO_DATA(len, data);
!   xml_event("CONTENT-CHARACTERS", len, data);
  }
  
  static void comment(void * CTX, const xmlChar * value) {
--- 337,343 ----
                         int len)
  {
    SAYSO_DATA(len, data);
!   ::xml_event("CONTENT-CHARACTERS", len, data);
  }
  
  static void comment(void * CTX, const xmlChar * value) {
*************** __gg__xml_parse(  const cblc_field_t *in
*** 781,784 ****
    return erc;
  }
  
! 
--- 783,786 ----
    return erc;
  }
  
! } // end XML namespace
diff -Nrcpad gcc-16-20260208/libgomp/ChangeLog gcc-16-20260215/libgomp/ChangeLog
*** gcc-16-20260208/libgomp/ChangeLog	Sun Feb  8 22:32:16 2026
--- gcc-16-20260215/libgomp/ChangeLog	Sun Feb 15 22:32:15 2026
***************
*** 1,3 ****
--- 1,17 ----
+ 2026-02-12  Kwok Cheung Yeung  <kcyeung@baylibre.com>
+ 
+ 	PR middle-end/113436
+ 	* libgomp.texi (OpenMP 5.0): Mark allocate clause as implemented.
+ 	(Memory allocation): Add documentation for use in target construct.
+ 	* testsuite/libgomp.c++/firstprivate-1.C: Enable alignment check.
+ 	* testsuite/libgomp.c++/pr113436-1.C: New.
+ 	* testsuite/libgomp.c++/pr113436-2.C: New.
+ 	* testsuite/libgomp.c++/private-1.C: Enable alignment check.
+ 	* testsuite/libgomp.c-c++-common/pr113436-1.c: New.
+ 	* testsuite/libgomp.c-c++-common/pr113436-2.c: New.
+ 	* testsuite/libgomp.fortran/pr113436-1.f90: New.
+ 	* testsuite/libgomp.fortran/pr113436-2.f90: New.
+ 
  2026-02-05  Andrew Stubbs  <ams@baylibre.com>
  
  	* libgomp.texi: Mark TR14 omp_target_is_accessible status as "Y".
diff -Nrcpad gcc-16-20260208/libgomp/libgomp.texi gcc-16-20260215/libgomp/libgomp.texi
*** gcc-16-20260208/libgomp/libgomp.texi	Sun Feb  8 22:32:16 2026
--- gcc-16-20260215/libgomp/libgomp.texi	Sun Feb 15 22:32:15 2026
*************** The OpenMP 4.5 specification is fully su
*** 234,241 ****
  @item Memory management routines @tab Y @tab
  @item @code{allocate} directive @tab P
        @tab C++ unsupported; see also @ref{Memory allocation}
! @item @code{allocate} clause @tab P @tab Clause has no effect on @code{target}
!       (@uref{https://gcc.gnu.org/PR113436,PR113436})
  @item @code{use_device_addr} clause on @code{target data} @tab Y @tab
  @item @code{ancestor} modifier on @code{device} clause @tab Y @tab
  @item Implicit declare target directive @tab Y @tab
--- 234,240 ----
  @item Memory management routines @tab Y @tab
  @item @code{allocate} directive @tab P
        @tab C++ unsupported; see also @ref{Memory allocation}
! @item @code{allocate} clause @tab Y @tab
  @item @code{use_device_addr} clause on @code{target data} @tab Y @tab
  @item @code{ancestor} modifier on @code{device} clause @tab Y @tab
  @item Implicit declare target directive @tab Y @tab
*************** The description below applies to:
*** 6895,6900 ****
--- 6894,6904 ----
        constant expression with value @code{omp_default_mem_alloc} and no
        @code{align} modifier has been specified. (In that case, the normal
        @code{malloc} allocation is used.)
+ @item The @code{allocate} clause can be used in the @code{target} construct
+       to specify the memory used by @code{private} and @code{firstprivate}
+       variables on offload devices.  In the case of @code{firstprivate}, the
+       initial data is first allocated using the default memory allocator, then
+       copied to the memory region specified by the allocator.
  @item The @code{allocate} directive for variables in static memory; while
        the alignment is honored, the normal static memory is used.
  @item Using the @code{allocate} directive for automatic/stack variables, except
diff -Nrcpad gcc-16-20260208/libgomp/testsuite/libgomp.c++/firstprivate-1.C gcc-16-20260215/libgomp/testsuite/libgomp.c++/firstprivate-1.C
*** gcc-16-20260208/libgomp/testsuite/libgomp.c++/firstprivate-1.C	Sun Feb  8 22:32:16 2026
--- gcc-16-20260215/libgomp/testsuite/libgomp.c++/firstprivate-1.C	Sun Feb 15 22:32:15 2026
*************** S::g (int dev)
*** 90,103 ****
                        allocate(allocator(omp_low_lat_mem_alloc), align(128): A, B, C) \
                        device(dev)
      {
- #if 0  /* FIXME: The following is disabled because of PR middle-end/113436.  */
        if (((uintptr_t) &A) % 128  != 0)
  	abort ();
        if (((uintptr_t) &B) % 128  != 0)
  	abort ();
        if (((uintptr_t) &C) % 128  != 0)
  	abort ();
! #endif
        if (A != 5)
  	abort ();
        for (int i = 0; i < 10; i++)
--- 90,102 ----
                        allocate(allocator(omp_low_lat_mem_alloc), align(128): A, B, C) \
                        device(dev)
      {
        if (((uintptr_t) &A) % 128  != 0)
  	abort ();
        if (((uintptr_t) &B) % 128  != 0)
  	abort ();
        if (((uintptr_t) &C) % 128  != 0)
  	abort ();
! 
        if (A != 5)
  	abort ();
        for (int i = 0; i < 10; i++)
*************** St<T>::gt (int dev)
*** 227,240 ****
                       allocate(allocator(omp_low_lat_mem_alloc), align(128): A, B, C) \
                       device(dev)
      {
- #if 0  /* FIXME: The following is disabled because of PR middle-end/113436.  */
        if (((uintptr_t) &A) % 128  != 0)
  	abort ();
        if (((uintptr_t) &B) % 128  != 0)
  	abort ();
        if (((uintptr_t) &C) % 128  != 0)
  	abort ();
! #endif
        if (A != 5)
  	abort ();
        for (int i = 0; i < 10; i++)
--- 226,238 ----
                       allocate(allocator(omp_low_lat_mem_alloc), align(128): A, B, C) \
                       device(dev)
      {
        if (((uintptr_t) &A) % 128  != 0)
  	abort ();
        if (((uintptr_t) &B) % 128  != 0)
  	abort ();
        if (((uintptr_t) &C) % 128  != 0)
  	abort ();
! 
        if (A != 5)
  	abort ();
        for (int i = 0; i < 10; i++)
diff -Nrcpad gcc-16-20260208/libgomp/testsuite/libgomp.c++/pr113436-1.C gcc-16-20260215/libgomp/testsuite/libgomp.c++/pr113436-1.C
*** gcc-16-20260208/libgomp/testsuite/libgomp.c++/pr113436-1.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/libgomp/testsuite/libgomp.c++/pr113436-1.C	Sun Feb 15 22:32:15 2026
***************
*** 0 ****
--- 1,27 ----
+ /* PR middle-end/113436 */
+ /* { dg-do run } */
+ 
+ #include <omp.h>
+ #include <stdint.h>
+ 
+ void
+ test_int_by_ref ()
+ {
+   int a = 5;
+   int &b = a;
+ 
+   #pragma omp target firstprivate(b) \
+ 		     allocate(allocator(omp_high_bw_mem_alloc), align(64): b)
+     {
+       if (((uintptr_t) &b) % 64  != 0)
+ 	__builtin_abort ();
+       b *= 7;
+       if (b != 35)
+ 	__builtin_abort ();
+     }
+ }
+ 
+ int main ()
+ {
+   test_int_by_ref ();
+ }
diff -Nrcpad gcc-16-20260208/libgomp/testsuite/libgomp.c++/pr113436-2.C gcc-16-20260215/libgomp/testsuite/libgomp.c++/pr113436-2.C
*** gcc-16-20260208/libgomp/testsuite/libgomp.c++/pr113436-2.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/libgomp/testsuite/libgomp.c++/pr113436-2.C	Sun Feb 15 22:32:15 2026
***************
*** 0 ****
--- 1,25 ----
+ /* PR middle-end/113436 */
+ /* { dg-do run } */
+ 
+ #include <omp.h>
+ #include <stdint.h>
+ 
+ void
+ test_int_by_ref ()
+ {
+   int a = 5;
+   int &b = a;
+ 
+   #pragma omp target private(b) \
+ 		     allocate(allocator(omp_high_bw_mem_alloc), align(64): b)
+     {
+       if (((uintptr_t) &b) % 64  != 0)
+ 	__builtin_abort ();
+       b = 7;
+     }
+ }
+ 
+ int main ()
+ {
+   test_int_by_ref ();
+ }
diff -Nrcpad gcc-16-20260208/libgomp/testsuite/libgomp.c++/private-1.C gcc-16-20260215/libgomp/testsuite/libgomp.c++/private-1.C
*** gcc-16-20260208/libgomp/testsuite/libgomp.c++/private-1.C	Sun Feb  8 22:32:16 2026
--- gcc-16-20260215/libgomp/testsuite/libgomp.c++/private-1.C	Sun Feb 15 22:32:15 2026
*************** S::g (int dev)
*** 75,88 ****
                       allocate(allocator(omp_low_lat_mem_alloc), align(128): A, B, C) \
                       device(dev)
      {
- #if 0  /* FIXME: The following is disabled because of PR middle-end/113436.  */
        if (((uintptr_t) &A) % 128  != 0)
  	abort ();
        if (((uintptr_t) &B) % 128  != 0)
  	abort ();
        if (((uintptr_t) &C) % 128  != 0)
  	abort ();
! #endif
        A = 99;
        for (int i = 0; i < 10; i++)
  	B[i] = -i-23;
--- 75,87 ----
                       allocate(allocator(omp_low_lat_mem_alloc), align(128): A, B, C) \
                       device(dev)
      {
        if (((uintptr_t) &A) % 128  != 0)
  	abort ();
        if (((uintptr_t) &B) % 128  != 0)
  	abort ();
        if (((uintptr_t) &C) % 128  != 0)
  	abort ();
! 
        A = 99;
        for (int i = 0; i < 10; i++)
  	B[i] = -i-23;
diff -Nrcpad gcc-16-20260208/libgomp/testsuite/libgomp.c-c++-common/pr113436-1.c gcc-16-20260215/libgomp/testsuite/libgomp.c-c++-common/pr113436-1.c
*** gcc-16-20260208/libgomp/testsuite/libgomp.c-c++-common/pr113436-1.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/libgomp/testsuite/libgomp.c-c++-common/pr113436-1.c	Sun Feb 15 22:32:15 2026
***************
*** 0 ****
--- 1,94 ----
+ /* PR middle-end/113436 */
+ /* { dg-do run } */
+ 
+ #include <omp.h>
+ #include <stdint.h>
+ 
+ void
+ test_int_by_val ()
+ {
+   int x = 64;
+ 
+   #pragma omp target firstprivate(x) \
+ 		     allocate(allocator(omp_high_bw_mem_alloc), align(16): x)
+     {
+       if (((uintptr_t) &x) % 16  != 0)
+ 	__builtin_abort ();
+       x *= 2;
+       if (x != 128)
+ 	__builtin_abort ();
+     }
+ }
+ 
+ void
+ test_struct_by_val ()
+ {
+   struct S {
+     int a[4];
+     float b[4];
+   } s = { { 1, 2, 3, 4 }, { 5.0f, 6.0f, 7.0f, 8.0f } };
+ 
+   #pragma omp target firstprivate(s) \
+ 		     allocate(allocator(omp_low_lat_mem_alloc), align(32): s)
+     {
+       if (((uintptr_t) &s) % 32  != 0)
+ 	__builtin_abort ();
+       for (int i = 0; i < 4; i++)
+ 	{
+ 	  s.a[i] *= 2;
+ 	  s.b[i] *= 2.0f;
+ 	}
+       for (int i = 0; i < 4; i++)
+ 	if (s.a[i] != (i + 1) * 2 || s.b[i] != (i + 5) * 2.0f)
+ 	  __builtin_abort ();
+     }
+ }
+ 
+ void
+ test_ptr ()
+ {
+   int x = 42;
+   int *p = &x;
+   uintptr_t p_orig = (uintptr_t) p;
+   uintptr_t p_new;
+ 
+   #pragma omp target firstprivate(p) \
+ 		     allocate(allocator(omp_default_mem_alloc), align(16): p) \
+ 		     map(from: p_new)
+     {
+       if (((uintptr_t) &p) % 16  != 0)
+ 	__builtin_abort ();
+       p_new = (uintptr_t) p;
+     }
+ 
+   if (p_new != p_orig)
+       __builtin_abort ();
+ }
+ 
+ void
+ test_vla (int n)
+ {
+   int x[n];
+   for (int i = 0; i < n; i++)
+     x[i] = i;
+ 
+   #pragma omp target firstprivate(x) \
+ 		     allocate(allocator(omp_high_bw_mem_alloc), align(128): x)
+     {
+       if (((uintptr_t) &x) % 128  != 0)
+ 	__builtin_abort ();
+       for (int i = 0; i < n; i++)
+ 	x[i]++;
+       for (int i = 0; i < n; i++)
+ 	if (x[i] != i + 1)
+ 	  __builtin_abort ();
+     }
+ }
+ 
+ int main ()
+ {
+   test_int_by_val ();
+   test_struct_by_val ();
+   test_ptr ();
+   test_vla (16);
+ }
diff -Nrcpad gcc-16-20260208/libgomp/testsuite/libgomp.c-c++-common/pr113436-2.c gcc-16-20260215/libgomp/testsuite/libgomp.c-c++-common/pr113436-2.c
*** gcc-16-20260208/libgomp/testsuite/libgomp.c-c++-common/pr113436-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/libgomp/testsuite/libgomp.c-c++-common/pr113436-2.c	Sun Feb 15 22:32:15 2026
***************
*** 0 ****
--- 1,80 ----
+ /* PR middle-end/113436 */
+ /* { dg-do run } */
+ 
+ #include <omp.h>
+ #include <stdint.h>
+ 
+ void
+ test_int_by_val ()
+ {
+   int x;
+ 
+   #pragma omp target private(x) \
+ 		     allocate(allocator(omp_high_bw_mem_alloc), align(16): x)
+     {
+       if (((uintptr_t) &x) % 16  != 0)
+ 	__builtin_abort ();
+       x = 2;
+     }
+ }
+ 
+ void
+ test_struct_by_val ()
+ {
+   struct S {
+     int a[4];
+     float b[4];
+   } s = { { 1, 2, 3, 4 }, { 5.0f, 6.0f, 7.0f, 8.0f } };
+ 
+   #pragma omp target private(s) \
+ 		     allocate(allocator(omp_low_lat_mem_alloc), align(32): s)
+     {
+       if (((uintptr_t) &s) % 32  != 0)
+ 	__builtin_abort ();
+       for (int i = 0; i < 4; i++)
+ 	{
+ 	  s.a[i] = i + 1;
+ 	  s.b[i] = 2.0f * i;
+ 	}
+     }
+ }
+ 
+ void
+ test_ptr ()
+ {
+   int x = 42;
+   int *p = &x;
+ 
+   #pragma omp target firstprivate(p) \
+ 		     allocate(allocator(omp_default_mem_alloc), align(16): p)
+     {
+       if (((uintptr_t) &p) % 16  != 0)
+ 	__builtin_abort ();
+       p++;
+     }
+ }
+ 
+ void
+ test_vla (int n)
+ {
+   int x[n];
+   for (int i = 0; i < n; i++)
+     x[i] = i;
+ 
+   #pragma omp target private(x) \
+ 		     allocate(allocator(omp_high_bw_mem_alloc), align(128): x)
+     {
+       if (((uintptr_t) &x) % 128  != 0)
+ 	__builtin_abort ();
+       for (int i = 0; i < n; i++)
+ 	x[i] = i * 2;
+     }
+ }
+ 
+ int main ()
+ {
+   test_int_by_val ();
+   test_struct_by_val ();
+   test_ptr ();
+   test_vla (32);
+ }
diff -Nrcpad gcc-16-20260208/libgomp/testsuite/libgomp.fortran/pr113436-1.f90 gcc-16-20260215/libgomp/testsuite/libgomp.fortran/pr113436-1.f90
*** gcc-16-20260208/libgomp/testsuite/libgomp.fortran/pr113436-1.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/libgomp/testsuite/libgomp.fortran/pr113436-1.f90	Sun Feb 15 22:32:15 2026
***************
*** 0 ****
--- 1,67 ----
+ ! PR middle-end/113436
+ ! { dg-do run }
+ 
+ program main
+   use omp_lib
+   implicit none
+ 
+   call test_integer
+   call test_derived_type
+   call test_vla
+ contains
+   subroutine test_integer
+     integer :: x = 64
+ 
+     !$omp target firstprivate(x) &
+     !$omp & allocate(allocator(omp_high_bw_mem_alloc), align(16): x)
+       if (mod (loc (x), 16) /= 0) stop 1
+       x = x * 2
+       if (x /= 128) stop 2
+     !$omp end target
+   end subroutine
+ 
+   subroutine test_derived_type
+     type :: Ty
+       integer :: a(4)
+       real*4 :: b(4)
+     end type
+     type (Ty) :: t = Ty (a=(/1, 2, 3, 4/), b=(/5.0, 6.0, 7.0, 8.0/))
+     integer :: i
+ 
+     !$omp target firstprivate(t) &
+     !$omp & allocate(allocator(omp_low_lat_mem_alloc), align(32): t)
+       if (mod (loc (t), 32) /= 0) stop 3
+       do i = 1, 4
+ 	t%a(i) = t%a(i) * 2
+ 	t%b(i) = t%b(i) * 2.0
+       end do
+       do i = 1, 4
+ 	if (t%a(i) /= i * 2) stop 4
+ 	if (t%b(i) /= (i + 4) * 2.0) stop 5
+       end do
+     !$omp end target
+   end subroutine
+ 
+   subroutine test_vla
+     integer :: n = 10
+     integer :: i
+     block
+       integer :: a(n)
+ 
+       do i = 1, n
+ 	a(i) = i * 3
+       end do
+ 
+       !$omp target firstprivate(a) &
+       !$omp & allocate(allocator(omp_low_lat_mem_alloc), align(64): a)
+         if (mod (loc (a), 64) /= 0) stop 6
+         do i = 1, n
+ 	  a(i) = a(i) * 2
+         end do
+         do i = 1, n
+ 	  if (a(i) /= i * 6) stop 7
+         end do
+       !$omp end target
+     end block
+   end subroutine
+ end program
diff -Nrcpad gcc-16-20260208/libgomp/testsuite/libgomp.fortran/pr113436-2.f90 gcc-16-20260215/libgomp/testsuite/libgomp.fortran/pr113436-2.f90
*** gcc-16-20260208/libgomp/testsuite/libgomp.fortran/pr113436-2.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/libgomp/testsuite/libgomp.fortran/pr113436-2.f90	Sun Feb 15 22:32:15 2026
***************
*** 0 ****
--- 1,58 ----
+ ! PR middle-end/113436
+ ! { dg-do run }
+ 
+ program main
+   use omp_lib
+   implicit none
+ 
+   call test_integer
+   call test_derived_type
+ contains
+   subroutine test_integer
+     integer :: x
+ 
+     !$omp target private(x) &
+     !$omp & allocate(allocator(omp_high_bw_mem_alloc), align(16): x)
+       if (mod (loc (x), 16) /= 0) stop 1
+       x = 2
+     !$omp end target
+   end subroutine
+ 
+   subroutine test_derived_type
+     type :: Ty
+       integer :: a(4)
+       real*4 :: b(4)
+     end type
+     type (Ty) :: t
+     integer :: i
+ 
+     !$omp target private(t) &
+     !$omp & allocate(allocator(omp_low_lat_mem_alloc), align(32): t)
+       if (mod (loc (t), 32) /= 0) stop 2
+       do i = 1, 4
+ 	t%a(i) = i
+ 	t%b(i) = i * 2.0
+       end do
+     !$omp end target
+   end subroutine
+ 
+   subroutine test_vla
+     integer :: n = 10
+     integer :: i
+     block
+       integer :: a(n)
+ 
+       do i = 1, n
+ 	a(i) = i * 3
+       end do
+ 
+       !$omp target firstprivate(a) &
+       !$omp & allocate(allocator(omp_low_lat_mem_alloc), align(64): a)
+         if (mod (loc (a), 64) /= 0) stop 6
+         do i = 1, n
+ 	  a(i) = a(i) * 2
+         end do
+       !$omp end target
+     end block
+   end subroutine
+ end program
diff -Nrcpad gcc-16-20260208/libiberty/ChangeLog gcc-16-20260215/libiberty/ChangeLog
*** gcc-16-20260208/libiberty/ChangeLog	Sun Feb  8 22:32:16 2026
--- gcc-16-20260215/libiberty/ChangeLog	Sun Feb 15 22:32:15 2026
***************
*** 1,3 ****
--- 1,8 ----
+ 2026-02-12  LIU Hao  <lh_mouse@126.com>
+ 
+ 	* vprintf-support.c (do_strtoul): New function.
+ 	(libiberty_vprintf_buffer_size): Replace `strtoul` with `do_strtoul`.
+ 
  2026-02-05  Matthieu Longo  <matthieu.longo@arm.com>
  
  	* testsuite/test-doubly-linked-list.c: Update.
diff -Nrcpad gcc-16-20260208/libiberty/vprintf-support.c gcc-16-20260215/libiberty/vprintf-support.c
*** gcc-16-20260208/libiberty/vprintf-support.c	Sun Feb  8 22:32:16 2026
--- gcc-16-20260215/libiberty/vprintf-support.c	Sun Feb 15 22:32:15 2026
*************** Floor, Boston, MA 02110-1301, USA.  */
*** 27,32 ****
--- 27,33 ----
  # define va_copy(d,s)  __va_copy((d),(s))
  #endif
  #include <stdio.h>
+ #include <errno.h>
  #ifdef HAVE_STRING_H
  #include <string.h>
  #endif
*************** extern unsigned long strtoul ();
*** 37,42 ****
--- 38,58 ----
  #endif
  #include "libiberty.h"
  
+ static inline unsigned long
+ do_strtoul (const char *str, char **endptr, int base)
+   {
+ #ifdef _WIN32
+     /* The MSVCRT `strtoul()` function resets `errno` to zero upon success.
+        We must preserve it across this call.  */
+     int saved_errno = errno;
+ #endif
+     long value = strtoul (str, endptr, base);
+ #ifdef _WIN32
+     errno = saved_errno;
+ #endif
+     return value;
+   }
+ 
  int
  libiberty_vprintf_buffer_size (const char *format, va_list args)
  {
*************** libiberty_vprintf_buffer_size (const cha
*** 65,71 ****
  	      total_width += abs (va_arg (ap, int));
  	    }
  	  else
! 	    total_width += strtoul (p, (char **) &p, 10);
  	  if (*p == '.')
  	    {
  	      ++p;
--- 81,87 ----
  	      total_width += abs (va_arg (ap, int));
  	    }
  	  else
! 	    total_width += do_strtoul (p, (char **) &p, 10);
  	  if (*p == '.')
  	    {
  	      ++p;
*************** libiberty_vprintf_buffer_size (const cha
*** 75,81 ****
  		  total_width += abs (va_arg (ap, int));
  		}
  	      else
! 	      total_width += strtoul (p, (char **) &p, 10);
  	    }
  	  do
  	    {
--- 91,97 ----
  		  total_width += abs (va_arg (ap, int));
  		}
  	      else
! 		total_width += do_strtoul (p, (char **) &p, 10);
  	    }
  	  do
  	    {
diff -Nrcpad gcc-16-20260208/libitm/ChangeLog gcc-16-20260215/libitm/ChangeLog
*** gcc-16-20260208/libitm/ChangeLog	Sun Feb  8 22:32:16 2026
--- gcc-16-20260215/libitm/ChangeLog	Sun Feb 15 22:32:15 2026
***************
*** 1,3 ****
--- 1,20 ----
+ 2026-02-12  Pietro Monteiro  <pietro@sociotechnical.xyz>
+ 	    Jakub Jelinek   <jakub@redhat.com>
+ 
+ 	PR libitm/69018
+ 	* testsuite/lib/libitm.exp (libitm_init): Check
+ 	GXX_UNDER_TEST.  Add "${blddir}/.libs" to
+ 	always_ld_library_path if blddir is not empty.  Use
+ 	"-fdiagnostics-plain-output".  Don't set compiler to GCC_UNDER_TEST.
+ 	* testsuite/libitm.c++/c++.exp: If $blddir is not empty set
+ 	libstdc++_library_path, shlib_ext, lang_include_flags, add
+ 	"${blddir}/${lang_library_paths}" to ld_library_path.
+ 	Unset libstdc++_library_path and shlib_ext if we skip C++
+ 	tests and at the end of the test run.
+ 	* testsuite/libitm.c/c.exp: Update the FSF address to the
+ 	website in the license text. Unset lang_library_paths and
+ 	lang_include_flags.  Set the compiler to $GCC_UNDER_TEST.
+ 
  2026-01-31  Pietro Monteiro  <pietro@sociotechnical.xyz>
  
  	PR libitm/69018
diff -Nrcpad gcc-16-20260208/libitm/testsuite/lib/libitm.exp gcc-16-20260215/libitm/testsuite/lib/libitm.exp
*** gcc-16-20260208/libitm/testsuite/lib/libitm.exp	Sun Feb  8 22:32:16 2026
--- gcc-16-20260215/libitm/testsuite/lib/libitm.exp	Sun Feb 15 22:32:15 2026
*************** proc libitm_init { args } {
*** 79,85 ****
      global ALWAYS_CFLAGS
      global CFLAGS
      global TOOL_EXECUTABLE TOOL_OPTIONS
!     global GCC_UNDER_TEST
      global TESTING_IN_BUILD_TREE
      global target_triplet
      global always_ld_library_path
--- 79,85 ----
      global ALWAYS_CFLAGS
      global CFLAGS
      global TOOL_EXECUTABLE TOOL_OPTIONS
!     global GCC_UNDER_TEST GXX_UNDER_TEST
      global TESTING_IN_BUILD_TREE
      global target_triplet
      global always_ld_library_path
*************** proc libitm_init { args } {
*** 97,102 ****
--- 97,113 ----
  	} else {
  	    set GCC_UNDER_TEST "[find_gcc]"
  	}
+ 	# Only if we're guessing 'GCC_UNDER_TEST', we're also going to guess
+ 	# 'GXX_UNDER_TEST'
+ 	if ![info exists GXX_UNDER_TEST] then {
+ 	    if [info exists TOOL_EXECUTABLE] {
+ 		set GXX_UNDER_TEST $TOOL_EXECUTABLE
+ 	    } else {
+ 		set GXX_UNDER_TEST "[find_g++]"
+ 	    }
+ 	} else {
+ 	    error "GXX_UNDER_TEST set but not GCC_UNDER_TEST"
+ 	}
      }
  
      if ![info exists tmpdir] {
*************** proc libitm_init { args } {
*** 119,125 ****
      }
  
      # Compute what needs to be put into LD_LIBRARY_PATH
!     set always_ld_library_path ".:${blddir}/.libs"
  
      # Compute what needs to be added to the existing LD_LIBRARY_PATH.
      if {$gccdir != ""} {
--- 130,136 ----
      }
  
      # Compute what needs to be put into LD_LIBRARY_PATH
!     set always_ld_library_path "."
  
      # Compute what needs to be added to the existing LD_LIBRARY_PATH.
      if {$gccdir != ""} {
*************** proc libitm_init { args } {
*** 150,155 ****
--- 161,168 ----
  	lappend ALWAYS_CFLAGS "additional_flags=-B${blddir}/"
  	lappend ALWAYS_CFLAGS "additional_flags=-I${blddir}"
  	lappend ALWAYS_CFLAGS "ldflags=-L${blddir}/.libs"
+ 
+ 	append always_ld_library_path ":${blddir}/.libs"
      }
      lappend ALWAYS_CFLAGS "additional_flags=-I${srcdir}/.."
  
*************** proc libitm_init { args } {
*** 179,185 ****
      # Turn on transactional memory support.
      lappend ALWAYS_CFLAGS "additional_flags=-fgnu-tm"
  
!     lappend ALWAYS_CFLAGS "additional_flags=-fdiagnostics-color=never"
  }
  
  #
--- 192,199 ----
      # Turn on transactional memory support.
      lappend ALWAYS_CFLAGS "additional_flags=-fgnu-tm"
  
!     # Disable caret, color, URL diagnostics
!     lappend ALWAYS_CFLAGS "additional_flags=-fdiagnostics-plain-output"
  }
  
  #
*************** proc libitm_target_compile { source dest
*** 220,226 ****
  
      lappend options "additional_flags=[libio_include_flags]"
      lappend options "timeout=[timeout_value]"
-     lappend options "compiler=$GCC_UNDER_TEST"
  
      set options [concat $libitm_compile_options $options]
  
--- 234,239 ----
diff -Nrcpad gcc-16-20260208/libitm/testsuite/libitm.c/c.exp gcc-16-20260215/libitm/testsuite/libitm.c/c.exp
*** gcc-16-20260208/libitm/testsuite/libitm.c/c.exp	Sun Feb  8 22:32:16 2026
--- gcc-16-20260215/libitm/testsuite/libitm.c/c.exp	Sun Feb 15 22:32:15 2026
***************
*** 9,28 ****
  # GNU General Public License for more details.
  #
  # You should have received a copy of the GNU General Public License
! # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
! if [info exists lang_library_path] then {
!     unset lang_library_path
!     unset lang_link_flags
  }
! if [info exists lang_test_file] then {
!     unset lang_test_file
  }
  
  load_lib libitm-dg.exp
  load_gcc_lib gcc-dg.exp
  
  # If a testcase doesn't have special options, use these.
  if ![info exists DEFAULT_CFLAGS] then {
      set DEFAULT_CFLAGS "-O2"
--- 9,28 ----
  # GNU General Public License for more details.
  #
  # You should have received a copy of the GNU General Public License
! # along with this program; if not, see <http://www.gnu.org/licenses/>.
  
! if [info exists lang_library_paths] then {
!     unset lang_library_paths
  }
! if [info exists lang_include_flags] then {
!     unset lang_include_flags
  }
  
  load_lib libitm-dg.exp
  load_gcc_lib gcc-dg.exp
  
+ lappend ALWAYS_CFLAGS "compiler=$GCC_UNDER_TEST"
+ 
  # If a testcase doesn't have special options, use these.
  if ![info exists DEFAULT_CFLAGS] then {
      set DEFAULT_CFLAGS "-O2"
diff -Nrcpad gcc-16-20260208/libitm/testsuite/libitm.c++/c++.exp gcc-16-20260215/libitm/testsuite/libitm.c++/c++.exp
*** gcc-16-20260208/libitm/testsuite/libitm.c++/c++.exp	Sun Feb  8 22:32:16 2026
--- gcc-16-20260215/libitm/testsuite/libitm.c++/c++.exp	Sun Feb 15 22:32:15 2026
***************
*** 16,54 ****
  load_lib libitm-dg.exp
  load_gcc_lib gcc-dg.exp
  
- global shlib_ext
- 
- set shlib_ext [get_shlib_extension]
- # The C++ tests should be linked with g++, which defaults to -shared-libgcc.
- # Doing that is currently too intrusive, so hardcode here.
- set lang_link_flags "-shared-libgcc -lstdc++"
- set lang_test_file_found 0
- set lang_library_path "../libstdc++-v3/src/.libs"
- 
- # Initialize dg.
- dg-init
- 
- set blddir [lookfor_file [get_multilibs] libitm]
- 
- 
  if { $blddir != "" } {
!     if { ![file exists "${blddir}/${lang_library_path}/libstdc++.a"]
! 	 && ![file exists "${blddir}/${lang_library_path}/libstdc++.${shlib_ext}"] } {
  	verbose -log "No libstdc++ library found, will not execute c++ tests"
! 	unset lang_library_path
  	return
      }
!     lappend lang_library_paths ${lang_library_path}
  } elseif { ![info exists GXX_UNDER_TEST] } {
      verbose -log "GXX_UNDER_TEST not defined, will not execute c++ tests"
      return
  }
  
  # Gather a list of all tests.
  set tests [lsort [glob -nocomplain $srcdir/$subdir/*.C]]
  
  if { $blddir != "" } {
!     set ld_library_path "$always_ld_library_path:${blddir}/${lang_library_path}"
  } else {
      set ld_library_path "$always_ld_library_path"
  }
--- 16,48 ----
  load_lib libitm-dg.exp
  load_gcc_lib gcc-dg.exp
  
  if { $blddir != "" } {
!     set libstdc++_library_path "../libstdc++-v3/src/.libs"
!     set shlib_ext [get_shlib_extension]
!     if { ![file exists "${blddir}/${libstdc++_library_path}/libstdc++.a"]
! 	 && ![file exists "${blddir}/${libstdc++_library_path}/libstdc++.${shlib_ext}"] } {
  	verbose -log "No libstdc++ library found, will not execute c++ tests"
! 	unset libstdc++_library_path
! 	unset shlib_ext
  	return
      }
!     lappend lang_library_paths ${libstdc++_library_path}
  } elseif { ![info exists GXX_UNDER_TEST] } {
      verbose -log "GXX_UNDER_TEST not defined, will not execute c++ tests"
      return
  }
  
+ lappend ALWAYS_CFLAGS "compiler=$GXX_UNDER_TEST"
+ 
+ # Initialize dg.
+ dg-init
+ 
  # Gather a list of all tests.
  set tests [lsort [glob -nocomplain $srcdir/$subdir/*.C]]
  
  if { $blddir != "" } {
!     set lang_include_flags [exec sh ${blddir}/../libstdc++-v3/scripts/testsuite_flags --build-includes]
!     set ld_library_path "$always_ld_library_path:${blddir}/${lang_library_paths}"
  } else {
      set ld_library_path "$always_ld_library_path"
  }
*************** if { $blddir != "" } {
*** 56,73 ****
  append ld_library_path [gcc-set-multilib-library-path $GCC_UNDER_TEST]
  set_ld_library_path_env_vars
  
- set flags_file "${blddir}/../libstdc++-v3/scripts/testsuite_flags"
- if { [file exists $flags_file] } {
-     set lang_include_flags [exec sh $flags_file --build-includes]
- }
- 
  # Main loop.
  dg-runtest $tests "" ""
  
  if { $blddir != "" } {
      unset lang_include_flags
!     unset lang_library_path
      unset lang_library_paths
  }
  
  # All done.
--- 50,63 ----
  append ld_library_path [gcc-set-multilib-library-path $GCC_UNDER_TEST]
  set_ld_library_path_env_vars
  
  # Main loop.
  dg-runtest $tests "" ""
  
  if { $blddir != "" } {
      unset lang_include_flags
!     unset libstdc++_library_path
      unset lang_library_paths
+     unset shlib_ext
  }
  
  # All done.
diff -Nrcpad gcc-16-20260208/libstdc++-v3/ChangeLog gcc-16-20260215/libstdc++-v3/ChangeLog
*** gcc-16-20260208/libstdc++-v3/ChangeLog	Sun Feb  8 22:32:17 2026
--- gcc-16-20260215/libstdc++-v3/ChangeLog	Sun Feb 15 22:32:15 2026
***************
*** 1,3 ****
--- 1,179 ----
+ 2026-02-13  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc
+ 	(__gnu_test::uneq_allocator(int)): Declare as explicit.
+ 	* testsuite/std/memory/indirect/ctor.cc: Construct uneq_allocator
+ 	from int explicitly.
+ 	* testsuite/std/memory/polymorphic/ctor.cc: Likewise.
+ 	* testsuite/std/memory/polymorphic/ctor_poly.cc: Likewise.
+ 	* testsuite/util/testsuite_allocator.h: Likewise.
+ 
+ 2026-02-13  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/121771
+ 	* include/std/tuple (tuple::tuple(const Elements&...)): Use
+ 	type_identity_t to prevent constructor being used for CTAD.
+ 	(tuple::tuple(allocator_arg_t, const A&, const Elements&...)):
+ 	Likewise.
+ 	* testsuite/20_util/tuple/cons/121771.cc: New test.
+ 
+ 2026-02-12  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	* include/bits/regex_executor.tcc (_Executor::_M_rep_once_more):
+ 	Make unnused _Match_mode parameter unnamed.
+ 	(_Executor::_M_handle_repeat): Likewise.
+ 	(_Executor::_M_handle_subexpr_begin): Likewise.
+ 	(_Executor::_M_handle_subexpr_end): Likewise.
+ 	(_Executor::_M_handle_line_begin_assertion): Likewise.
+ 	(_Executor::_M_handle_line_end_assertion): Likewise.
+ 	(_Executor::_M_handle_match): Likewise.
+ 	(_Executor::_M_handle_backref): Likewise.
+ 	(_Executor::_M_handle_alternative): Likewise.
+ 
+ 2026-02-12  Xi Ruoyao  <xry111@xry111.site>
+ 	    Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* testsuite/17_intro/badnames.cc (__unused): Do not define.
+ 	* testsuite/17_intro/names.cc [glibc == 2.43] (__unused): Undef.
+ 
+ 2026-02-12  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/std/type_traits (is_function): Declare before first
+ 	use.
+ 
+ 2026-02-12  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR libstdc++/114865
+ 	* include/std/atomic (atomic<_Tp>::atomic(_Tp)) [C++11]:
+ 	Enable __builtin_clear_padding logic.
+ 	* testsuite/29_atomics/atomic/compare_exchange_padding.cc: Enable
+ 	this test in earlier modes, including C++11.
+ 	* testsuite/29_atomics/atomic/cons/zero_padding.cc [C++11]:
+ 	Enable tests verifying cleared padding bits for a non-static-init
+ 	std::atomic object.
+ 
+ 2026-02-11  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* include/bits/funcref_impl.h (function_ref::function_ref(_Fn&&)):
+ 	Use _S_static and _S_nttp invokers.
+ 	* include/bits/funcwrap.h (_Base_invoker::_S_static):
+ 	Define.
+ 	* include/bits/stl_function.h (std::__is_std_op_template)
+ 	(std::__is_std_op_wrapper) [__cplusplus > 201703L]:
+ 	Moved from std/ranges.
+ 	* include/std/ranges (__detail::__is_std_op_template)
+ 	(__detail::__is_std_op_wrapper): Moved to bits/stl_function.h.
+ 	* testsuite/20_util/function_ref/dangling.cc: New test.
+ 	* testsuite/20_util/function_ref/dangling_neg.cc: New test.
+ 
+ 2026-02-11  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	PR libstdc++/123875
+ 	* testsuite/29_atomics/atomic/cons/static_zero_padding.cc: Move to...
+ 	* testsuite/29_atomics/atomic/cons/zero_padding.cc: ...here and
+ 	added heap tests. Also fixed trailing whitespaces.
+ 
+ 2026-02-11  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/123908
+ 	* config/abi/pre/gnu.ver (GLIBCXX_3.4.35): Add exports for
+ 	std::__get_once_callable and std::__get_once_call.
+ 
+ 2026-02-11  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/regex.tcc (__detail::__lookup_collatename): New
+ 	function.
+ 	(regex_traits::lookup_collatename): Use new function. Elide
+ 	redundant narrowing via ctype facet for regex_traits<char>.
+ 	(regex_traits::lookup_classname): Replace lookup table with
+ 	handwritten prefix match.
+ 
+ 2026-02-11  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/124015
+ 	* include/bits/regex.tcc (regex_traits::lookup_classname): Fix
+ 	handling of icase parameter.
+ 
+ 2026-02-11  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/124015
+ 	* testsuite/28_regex/traits/char/lookup_classname.cc: Check for
+ 	correct result for unrecognized classname. Check that lookup is
+ 	case insensitive. Check that all required classnames are
+ 	recognized. Check that icase flag only affects "lower" and
+ 	"upper".
+ 	* testsuite/28_regex/traits/wchar_t/lookup_classname.cc:
+ 	Likewise.
+ 
+ 2026-02-10  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	PR libstdc++/123875
+ 	* include/bits/atomic_base.h (__atomic_impl::__clear_padding):
+ 	Use if constexpr unconditionally.
+ 	(__atomic_float<_Fp>::__atomic_float(_Fp)): Skip __clear_padding
+ 	call for constant evaluation.
+ 	* include/std/atomic (atomic<_Tp>::atomic(_Tp)): Likewise.
+ 	* testsuite/29_atomics/atomic/cons/static_zero_padding.cc: New test.
+ 
+ 2026-02-10  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/123991
+ 	* include/bits/basic_string.h (compare(size_type, size_type, T)):
+ 	Remove noexcept-specifier.
+ 	(compare(size_type, size_type, T, size_type, size_type)):
+ 	Likewise.
+ 	* include/bits/cow_string.h (compare(size_type, size_type, T)):
+ 	Remove noexcept-specifier.
+ 	(compare(size_type, size_type, T, size_type, size_type)):
+ 	Likewise.
+ 	* testsuite/21_strings/basic_string/operations/compare/char/123991.cc:
+ 	New test.
+ 	* testsuite/21_strings/basic_string/operations/compare/wchar_t/123991.cc:
+ 	New test.
+ 
+ 2026-02-10  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	* include/bits/regex.h (_Executor): Remove __dfs_mode template
+ 	parameter and _V2 inline namespace.
+ 	* include/bits/regex.tcc (__regex_algo_impl): Adjust after
+ 	__dfs_mode template parameter removal.
+ 	* include/bits/regex_executor.h (_Executor): Remove __dfs_mode
+ 	parameter and _V2 inline namespace.
+ 	* include/bits/regex_executor.tcc (_Executor): Likewise.
+ 
+ 2026-02-10  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	* include/bits/regex.tcc (__regex_algo_impl): Pass __use_dfs
+ 	parameter to _Executor's constructor.
+ 	* include/bits/regex_executor.h (_Executor::_Search_mode): New.
+ 	(_Executor::_Executor): Add __use_dfs parameter and initialize
+ 	_M_search_mode.  Adjust after inlining _State_info members into
+ 	_Executor.
+ 	(_Executor::~_Executor): Free _M_visted_states.
+ 	(_Executor::_M_main): Adjust after renaming _M_main_dispatch
+ 	overloads to _M_main_dfs and _M_main_bfs.
+ 	(_Executor::_State_info): Remove.
+ 	(_Executor::_M_visited): Inlined from _State_info.
+ 	(_Executor::_M_get_sol_pos): Likewise.
+ 	(_Executor::_M_states): Remove.
+ 	(_Executor::_M_start): Inlined from _State_info.
+ 	(_Executor::_M_sol_pos): Likewise.
+ 	(_Executor::_M_match_queue): Likewise.
+ 	(_Executor::_M_search_mode): New.
+ 	* include/bits/regex_executor.tcc (_Executor::_M_main_dispatch):
+ 	Renamed to...
+ 	(_Executor::_M_main_dfs, _Executor::_M_main_bfs): ... these.
+ 	(_Executor::_M_*): Adjust after _M_states removal.
+ 	(_Executor::_M_lookhead): Also adjust _Executor constructor
+ 	call.
+ 
+ 2026-02-09  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/124024
+ 	* include/bits/out_ptr.h (out_ptr): Fix doxygen comment to refer
+ 	to the right function.
+ 	(inout_ptr): Improve markup in doxygen comment.
+ 
  2026-02-06  Tomasz Kamiński  <tkaminsk@redhat.com>
  
  	* include/bits/hashtable.h (std::__heterogeneous_hash_key)
diff -Nrcpad gcc-16-20260208/libstdc++-v3/config/abi/pre/gnu.ver gcc-16-20260215/libstdc++-v3/config/abi/pre/gnu.ver
*** gcc-16-20260208/libstdc++-v3/config/abi/pre/gnu.ver	Sun Feb  8 22:32:17 2026
--- gcc-16-20260215/libstdc++-v3/config/abi/pre/gnu.ver	Sun Feb 15 22:32:15 2026
*************** GLIBCXX_3.4.35 {
*** 2586,2591 ****
--- 2586,2597 ----
      _ZNSt12__cow_stringaSERKS_;
      _ZNSt12__cow_stringaSEOS_;
      _ZNKSt12__cow_string5c_strEv;
+ 
+ #if defined (_WIN32) && !defined (__CYGWIN__)
+     _ZSt19__get_once_callablev;
+     _ZSt15__get_once_callv;
+ #endif
+ 
  } GLIBCXX_3.4.34;
  
  # Symbols in the support library (libsupc++) have their own tag.
diff -Nrcpad gcc-16-20260208/libstdc++-v3/include/bits/atomic_base.h gcc-16-20260215/libstdc++-v3/include/bits/atomic_base.h
*** gcc-16-20260208/libstdc++-v3/include/bits/atomic_base.h	Sun Feb  8 22:32:17 2026
--- gcc-16-20260215/libstdc++-v3/include/bits/atomic_base.h	Sun Feb 15 22:32:15 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1003,1023 ****
  #endif
        }
  
      template<typename _Tp>
        _GLIBCXX_ALWAYS_INLINE _GLIBCXX14_CONSTEXPR _Tp*
        __clear_padding(_Tp& __val) noexcept
        {
  	auto* __ptr = std::__addressof(__val);
  #if __has_builtin(__builtin_clear_padding)
! 	if _GLIBCXX17_CONSTEXPR (__atomic_impl::__maybe_has_padding<_Tp>())
  	  __builtin_clear_padding(__ptr);
  #endif
  	return __ptr;
        }
  
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wc++17-extensions"
- 
      template<bool _AtomicRef = false, typename _Tp>
        _GLIBCXX_ALWAYS_INLINE bool
        __compare_exchange(_Tp& __val, _Val<_Tp>& __e, _Val<_Tp>& __i,
--- 1003,1023 ----
  #endif
        }
  
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wc++17-extensions"
+ 
      template<typename _Tp>
        _GLIBCXX_ALWAYS_INLINE _GLIBCXX14_CONSTEXPR _Tp*
        __clear_padding(_Tp& __val) noexcept
        {
  	auto* __ptr = std::__addressof(__val);
  #if __has_builtin(__builtin_clear_padding)
! 	if constexpr (__atomic_impl::__maybe_has_padding<_Tp>())
  	  __builtin_clear_padding(__ptr);
  #endif
  	return __ptr;
        }
  
      template<bool _AtomicRef = false, typename _Tp>
        _GLIBCXX_ALWAYS_INLINE bool
        __compare_exchange(_Tp& __val, _Val<_Tp>& __e, _Val<_Tp>& __i,
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1392,1398 ****
  
        constexpr
        __atomic_float(_Fp __t) : _M_fp(__t)
!       { __atomic_impl::__clear_padding(_M_fp); }
  
        __atomic_float(const __atomic_float&) = delete;
        __atomic_float& operator=(const __atomic_float&) = delete;
--- 1392,1401 ----
  
        constexpr
        __atomic_float(_Fp __t) : _M_fp(__t)
!       { 
!  	if (!std::__is_constant_evaluated())
! 	  __atomic_impl::__clear_padding(_M_fp);
!       }
  
        __atomic_float(const __atomic_float&) = delete;
        __atomic_float& operator=(const __atomic_float&) = delete;
diff -Nrcpad gcc-16-20260208/libstdc++-v3/include/bits/basic_string.h gcc-16-20260215/libstdc++-v3/include/bits/basic_string.h
*** gcc-16-20260208/libstdc++-v3/include/bits/basic_string.h	Sun Feb  8 22:32:17 2026
--- gcc-16-20260215/libstdc++-v3/include/bits/basic_string.h	Sun Feb 15 22:32:15 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 3524,3530 ****
  	_GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR
  	_If_sv<_Tp, int>
  	compare(size_type __pos, size_type __n, const _Tp& __svt) const
- 	noexcept(is_same<_Tp, __sv_type>::value)
  	{
  	  __sv_type __sv = __svt;
  	  return __sv_type(*this).substr(__pos, __n).compare(__sv);
--- 3524,3529 ----
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 3545,3551 ****
  	_If_sv<_Tp, int>
  	compare(size_type __pos1, size_type __n1, const _Tp& __svt,
  		size_type __pos2, size_type __n2 = npos) const
- 	noexcept(is_same<_Tp, __sv_type>::value)
  	{
  	  __sv_type __sv = __svt;
  	  return __sv_type(*this)
--- 3544,3549 ----
diff -Nrcpad gcc-16-20260208/libstdc++-v3/include/bits/cow_string.h gcc-16-20260215/libstdc++-v3/include/bits/cow_string.h
*** gcc-16-20260208/libstdc++-v3/include/bits/cow_string.h	Sun Feb  8 22:32:17 2026
--- gcc-16-20260215/libstdc++-v3/include/bits/cow_string.h	Sun Feb 15 22:32:15 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 2998,3004 ****
        template<typename _Tp>
  	_If_sv<_Tp, int>
  	compare(size_type __pos, size_type __n, const _Tp& __svt) const
- 	noexcept(is_same<_Tp, __sv_type>::value)
  	{
  	  __sv_type __sv = __svt;
  	  return __sv_type(*this).substr(__pos, __n).compare(__sv);
--- 2998,3003 ----
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 3018,3024 ****
  	_If_sv<_Tp, int>
  	compare(size_type __pos1, size_type __n1, const _Tp& __svt,
  		size_type __pos2, size_type __n2 = npos) const
- 	noexcept(is_same<_Tp, __sv_type>::value)
  	{
  	  __sv_type __sv = __svt;
  	  return __sv_type(*this)
--- 3017,3022 ----
diff -Nrcpad gcc-16-20260208/libstdc++-v3/include/bits/funcref_impl.h gcc-16-20260215/libstdc++-v3/include/bits/funcref_impl.h
*** gcc-16-20260208/libstdc++-v3/include/bits/funcref_impl.h	Sun Feb  8 22:32:17 2026
--- gcc-16-20260215/libstdc++-v3/include/bits/funcref_impl.h	Sun Feb 15 22:32:15 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 106,113 ****
  	constexpr
  	function_ref(_Fn&& __f) noexcept
  	{
! 	  _M_invoke = _Invoker::template _S_ptrs<_Vt _GLIBCXX_MOF_CV&>();
! 	  _M_init(std::addressof(__f));
  	}
  
        // _GLIBCXX_RESOLVE_LIB_DEFECTS
--- 106,129 ----
  	constexpr
  	function_ref(_Fn&& __f) noexcept
  	{
! 	  using _Fd = remove_cv_t<_Vt>;
! 	  if constexpr (__is_std_op_wrapper<_Fd>)
! 	    {
! 	      _M_invoke = _Invoker::template _S_nttp<_Fd{}>;
! 	      _M_ptrs._M_obj = nullptr;
! 	    }
! 	  else if constexpr (requires (_ArgTypes&&... __args) {
! 		    _Fd::operator()(std::forward<_ArgTypes>(__args)...);
! 		  })
! 	    {
! 	      _M_invoke = _Invoker::template _S_static<_Fd>;
! 	      _M_ptrs._M_obj = nullptr;
! 	    }
!           else
! 	    {
! 	      _M_invoke = _Invoker::template _S_ptrs<_Vt _GLIBCXX_MOF_CV&>();
! 	      _M_init(std::addressof(__f));
! 	    }
  	}
  
        // _GLIBCXX_RESOLVE_LIB_DEFECTS
diff -Nrcpad gcc-16-20260208/libstdc++-v3/include/bits/funcwrap.h gcc-16-20260215/libstdc++-v3/include/bits/funcwrap.h
*** gcc-16-20260208/libstdc++-v3/include/bits/funcwrap.h	Sun Feb  8 22:32:17 2026
--- gcc-16-20260215/libstdc++-v3/include/bits/funcwrap.h	Sun Feb 15 22:32:15 2026
***************
*** 41,46 ****
--- 41,49 ----
  
  #include <bits/invoke.h>
  #include <bits/utility.h>
+ #if __glibcxx_function_ref
+ #include <bits/stl_function.h>
+ #endif
  
  namespace std _GLIBCXX_VISIBILITY(default)
  {
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 139,144 ****
--- 142,152 ----
  	 { return &_S_call_ptrs<_Adjust_target<_Tp>>; }
  
  #ifdef __glibcxx_function_ref // C++ >= 26
+        template<typename _Fn>
+ 	 static _Ret
+ 	 _S_static(_Ptrs, _Args... __args) noexcept(_Noex)
+ 	 { return _Fn::operator()(std::forward<_Args>(__args)...); }
+ 
         template<auto __fn>
  	 static _Ret
  	 _S_nttp(_Ptrs, _Args... __args) noexcept(_Noex)
diff -Nrcpad gcc-16-20260208/libstdc++-v3/include/bits/out_ptr.h gcc-16-20260215/libstdc++-v3/include/bits/out_ptr.h
*** gcc-16-20260208/libstdc++-v3/include/bits/out_ptr.h	Sun Feb  8 22:32:17 2026
--- gcc-16-20260215/libstdc++-v3/include/bits/out_ptr.h	Sun Feb 15 22:32:15 2026
*************** namespace __detail
*** 397,403 ****
     * @tparam _Pointer The type of pointer to convert to.
     * @param __s The pointer that should take ownership of the result.
     * @param __args... Arguments to use when resetting the smart pointer.
!    * @return A std::inout_ptr_t referring to `__s`.
     * @since C++23
     * @headerfile <memory>
     */
--- 397,403 ----
     * @tparam _Pointer The type of pointer to convert to.
     * @param __s The pointer that should take ownership of the result.
     * @param __args... Arguments to use when resetting the smart pointer.
!    * @return A `std::out_ptr_t` referring to `__s`.
     * @since C++23
     * @headerfile <memory>
     */
*************** namespace __detail
*** 418,424 ****
     * @tparam _Pointer The type of pointer to convert to.
     * @param __s The pointer that should take ownership of the result.
     * @param __args... Arguments to use when resetting the smart pointer.
!    * @return A std::inout_ptr_t referring to `__s`.
     * @since C++23
     * @headerfile <memory>
     */
--- 418,424 ----
     * @tparam _Pointer The type of pointer to convert to.
     * @param __s The pointer that should take ownership of the result.
     * @param __args... Arguments to use when resetting the smart pointer.
!    * @return A `std::inout_ptr_t` referring to `__s`.
     * @since C++23
     * @headerfile <memory>
     */
diff -Nrcpad gcc-16-20260208/libstdc++-v3/include/bits/regex.h gcc-16-20260215/libstdc++-v3/include/bits/regex.h
*** gcc-16-20260208/libstdc++-v3/include/bits/regex.h	Sun Feb  8 22:32:17 2026
--- gcc-16-20260215/libstdc++-v3/include/bits/regex.h	Sun Feb 15 22:32:15 2026
*************** namespace __detail
*** 61,70 ****
  		      _RegexExecutorPolicy		   __policy,
  		      bool				   __match_mode);
  
! _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
!   template<typename, typename, typename, bool>
      class _Executor;
- _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
  
    template<typename _Tp>
      struct __is_contiguous_iter : false_type { };
--- 61,68 ----
  		      _RegexExecutorPolicy		   __policy,
  		      bool				   __match_mode);
  
!   template<typename, typename, typename>
      class _Executor;
  
    template<typename _Tp>
      struct __is_contiguous_iter : false_type { };
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 842,848 ****
  				    regex_constants::match_flag_type,
  				    __detail::_RegexExecutorPolicy, bool);
  
!       template<typename, typename, typename, bool>
  	friend class __detail::_Executor;
  
        flag_type		_M_flags;
--- 840,846 ----
  				    regex_constants::match_flag_type,
  				    __detail::_RegexExecutorPolicy, bool);
  
!       template<typename, typename, typename>
  	friend class __detail::_Executor;
  
        flag_type		_M_flags;
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 2136,2142 ****
  
        /// @cond undocumented
  
!       template<typename, typename, typename, bool>
  	friend class __detail::_Executor;
  
        template<typename _Bp, typename _Ap, typename _Cp, typename _Rp>
--- 2134,2140 ----
  
        /// @cond undocumented
  
!       template<typename, typename, typename>
  	friend class __detail::_Executor;
  
        template<typename _Bp, typename _Ap, typename _Cp, typename _Rp>
diff -Nrcpad gcc-16-20260208/libstdc++-v3/include/bits/regex.tcc gcc-16-20260215/libstdc++-v3/include/bits/regex.tcc
*** gcc-16-20260208/libstdc++-v3/include/bits/regex.tcc	Sun Feb  8 22:32:17 2026
--- gcc-16-20260215/libstdc++-v3/include/bits/regex.tcc	Sun Feb 15 22:32:15 2026
*************** namespace __detail
*** 61,86 ****
        __m._M_resize(__re._M_automaton->_M_sub_count());
  
        bool __ret;
        if ((__re.flags() & regex_constants::__polynomial)
  	  || (__policy == _RegexExecutorPolicy::_S_alternate
  	      && !__re._M_automaton->_M_has_backref))
! 	{
! 	  _Executor<_BiIter, _Alloc, _TraitsT, false>
! 	    __executor(__s, __e, __res, __re, __flags);
! 	  if (__match_mode)
! 	    __ret = __executor._M_match();
! 	  else
! 	    __ret = __executor._M_search();
! 	}
        else
! 	{
! 	  _Executor<_BiIter, _Alloc, _TraitsT, true>
! 	    __executor(__s, __e, __res, __re, __flags);
! 	  if (__match_mode)
! 	    __ret = __executor._M_match();
! 	  else
! 	    __ret = __executor._M_search();
! 	}
        if (__ret)
  	{
  	  for (auto& __it : __res)
--- 61,79 ----
        __m._M_resize(__re._M_automaton->_M_sub_count());
  
        bool __ret;
+       bool __use_dfs = true;
        if ((__re.flags() & regex_constants::__polynomial)
  	  || (__policy == _RegexExecutorPolicy::_S_alternate
  	      && !__re._M_automaton->_M_has_backref))
! 	__use_dfs = false;
! 
!       _Executor<_BiIter, _Alloc, _TraitsT>
! 	__executor(__s, __e, __res, __re, __flags, __use_dfs);
!       if (__match_mode)
! 	__ret = __executor._M_match();
        else
! 	__ret = __executor._M_search();
! 
        if (__ret)
  	{
  	  for (auto& __it : __res)
*************** namespace __detail
*** 113,275 ****
  	}
        return __ret;
      }
    /// @endcond
  } // namespace __detail
  
    template<typename _Ch_type>
    template<typename _Fwd_iter>
      typename regex_traits<_Ch_type>::string_type
      regex_traits<_Ch_type>::
      lookup_collatename(_Fwd_iter __first, _Fwd_iter __last) const
      {
-       typedef std::ctype<char_type> __ctype_type;
-       const __ctype_type& __fctyp(use_facet<__ctype_type>(_M_locale));
- 
-       static const char* const __collatenames[] =
- 	{
- 	  "NUL",
- 	  "SOH",
- 	  "STX",
- 	  "ETX",
- 	  "EOT",
- 	  "ENQ",
- 	  "ACK",
- 	  "alert",
- 	  "backspace",
- 	  "tab",
- 	  "newline",
- 	  "vertical-tab",
- 	  "form-feed",
- 	  "carriage-return",
- 	  "SO",
- 	  "SI",
- 	  "DLE",
- 	  "DC1",
- 	  "DC2",
- 	  "DC3",
- 	  "DC4",
- 	  "NAK",
- 	  "SYN",
- 	  "ETB",
- 	  "CAN",
- 	  "EM",
- 	  "SUB",
- 	  "ESC",
- 	  "IS4",
- 	  "IS3",
- 	  "IS2",
- 	  "IS1",
- 	  "space",
- 	  "exclamation-mark",
- 	  "quotation-mark",
- 	  "number-sign",
- 	  "dollar-sign",
- 	  "percent-sign",
- 	  "ampersand",
- 	  "apostrophe",
- 	  "left-parenthesis",
- 	  "right-parenthesis",
- 	  "asterisk",
- 	  "plus-sign",
- 	  "comma",
- 	  "hyphen",
- 	  "period",
- 	  "slash",
- 	  "zero",
- 	  "one",
- 	  "two",
- 	  "three",
- 	  "four",
- 	  "five",
- 	  "six",
- 	  "seven",
- 	  "eight",
- 	  "nine",
- 	  "colon",
- 	  "semicolon",
- 	  "less-than-sign",
- 	  "equals-sign",
- 	  "greater-than-sign",
- 	  "question-mark",
- 	  "commercial-at",
- 	  "A",
- 	  "B",
- 	  "C",
- 	  "D",
- 	  "E",
- 	  "F",
- 	  "G",
- 	  "H",
- 	  "I",
- 	  "J",
- 	  "K",
- 	  "L",
- 	  "M",
- 	  "N",
- 	  "O",
- 	  "P",
- 	  "Q",
- 	  "R",
- 	  "S",
- 	  "T",
- 	  "U",
- 	  "V",
- 	  "W",
- 	  "X",
- 	  "Y",
- 	  "Z",
- 	  "left-square-bracket",
- 	  "backslash",
- 	  "right-square-bracket",
- 	  "circumflex",
- 	  "underscore",
- 	  "grave-accent",
- 	  "a",
- 	  "b",
- 	  "c",
- 	  "d",
- 	  "e",
- 	  "f",
- 	  "g",
- 	  "h",
- 	  "i",
- 	  "j",
- 	  "k",
- 	  "l",
- 	  "m",
- 	  "n",
- 	  "o",
- 	  "p",
- 	  "q",
- 	  "r",
- 	  "s",
- 	  "t",
- 	  "u",
- 	  "v",
- 	  "w",
- 	  "x",
- 	  "y",
- 	  "z",
- 	  "left-curly-bracket",
- 	  "vertical-line",
- 	  "right-curly-bracket",
- 	  "tilde",
- 	  "DEL",
- 	};
- 
-       string __s;
-       for (; __first != __last; ++__first)
- 	__s += __fctyp.narrow(*__first, 0);
- 
-       for (const auto& __it : __collatenames)
- 	if (__s == __it)
- 	  return string_type(1, __fctyp.widen(
- 	    static_cast<char>(&__it - __collatenames)));
- 
        // TODO Add digraph support:
        // http://boost.sourceforge.net/libs/regex/doc/collating_names.html
  
!       return string_type();
      }
  
    template<typename _Ch_type>
--- 106,292 ----
  	}
        return __ret;
      }
+ 
+   inline void
+   __lookup_collatename(string& __name) noexcept
+   {
+     static const char* const __collatenames[] =
+       {
+ 	"NUL",
+ 	"SOH",
+ 	"STX",
+ 	"ETX",
+ 	"EOT",
+ 	"ENQ",
+ 	"ACK",
+ 	"alert",
+ 	"backspace",
+ 	"tab",
+ 	"newline",
+ 	"vertical-tab",
+ 	"form-feed",
+ 	"carriage-return",
+ 	"SO",
+ 	"SI",
+ 	"DLE",
+ 	"DC1",
+ 	"DC2",
+ 	"DC3",
+ 	"DC4",
+ 	"NAK",
+ 	"SYN",
+ 	"ETB",
+ 	"CAN",
+ 	"EM",
+ 	"SUB",
+ 	"ESC",
+ 	"IS4",
+ 	"IS3",
+ 	"IS2",
+ 	"IS1",
+ 	"space",
+ 	"exclamation-mark",
+ 	"quotation-mark",
+ 	"number-sign",
+ 	"dollar-sign",
+ 	"percent-sign",
+ 	"ampersand",
+ 	"apostrophe",
+ 	"left-parenthesis",
+ 	"right-parenthesis",
+ 	"asterisk",
+ 	"plus-sign",
+ 	"comma",
+ 	"hyphen",
+ 	"period",
+ 	"slash",
+ 	"zero",
+ 	"one",
+ 	"two",
+ 	"three",
+ 	"four",
+ 	"five",
+ 	"six",
+ 	"seven",
+ 	"eight",
+ 	"nine",
+ 	"colon",
+ 	"semicolon",
+ 	"less-than-sign",
+ 	"equals-sign",
+ 	"greater-than-sign",
+ 	"question-mark",
+ 	"commercial-at",
+ 	"A",
+ 	"B",
+ 	"C",
+ 	"D",
+ 	"E",
+ 	"F",
+ 	"G",
+ 	"H",
+ 	"I",
+ 	"J",
+ 	"K",
+ 	"L",
+ 	"M",
+ 	"N",
+ 	"O",
+ 	"P",
+ 	"Q",
+ 	"R",
+ 	"S",
+ 	"T",
+ 	"U",
+ 	"V",
+ 	"W",
+ 	"X",
+ 	"Y",
+ 	"Z",
+ 	"left-square-bracket",
+ 	"backslash",
+ 	"right-square-bracket",
+ 	"circumflex",
+ 	"underscore",
+ 	"grave-accent",
+ 	"a",
+ 	"b",
+ 	"c",
+ 	"d",
+ 	"e",
+ 	"f",
+ 	"g",
+ 	"h",
+ 	"i",
+ 	"j",
+ 	"k",
+ 	"l",
+ 	"m",
+ 	"n",
+ 	"o",
+ 	"p",
+ 	"q",
+ 	"r",
+ 	"s",
+ 	"t",
+ 	"u",
+ 	"v",
+ 	"w",
+ 	"x",
+ 	"y",
+ 	"z",
+ 	"left-curly-bracket",
+ 	"vertical-line",
+ 	"right-curly-bracket",
+ 	"tilde",
+ 	"DEL",
+       };
+ 
+     for (const auto& __it : __collatenames)
+       if (__name == __it)
+ 	{
+ 	  __name.assign(1, static_cast<char>(&__it - __collatenames));
+ 	  return;
+ 	}
+ 
+     __name.clear();
+   }
+ 
    /// @endcond
  } // namespace __detail
  
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wc++17-extensions" // if constexpr
+ 
    template<typename _Ch_type>
    template<typename _Fwd_iter>
      typename regex_traits<_Ch_type>::string_type
      regex_traits<_Ch_type>::
      lookup_collatename(_Fwd_iter __first, _Fwd_iter __last) const
      {
        // TODO Add digraph support:
        // http://boost.sourceforge.net/libs/regex/doc/collating_names.html
  
!       if constexpr (is_same<char_type, char>::value)
! 	{
! 	  string __s(__first, __last);
! 	  __detail::__lookup_collatename(__s);
! 	  return __s;
! 	}
!       else
! 	{
! 	  typedef std::ctype<char_type> __ctype_type;
! 	  const __ctype_type& __fctyp(use_facet<__ctype_type>(_M_locale));
! 
! 	  string __s;
! 	  for (; __first != __last; ++__first)
! 	    __s += __fctyp.narrow(*__first, 0);
! 	  __detail::__lookup_collatename(__s);
! 	  if (__s.empty())
! 	    return string_type();
! 	  else
! 	    return string_type(1, __fctyp.widen(__s[0]));
! 	}
      }
  
    template<typename _Ch_type>
*************** namespace __detail
*** 278,320 ****
      regex_traits<_Ch_type>::
      lookup_classname(_Fwd_iter __first, _Fwd_iter __last, bool __icase) const
      {
        typedef std::ctype<char_type> __ctype_type;
        const __ctype_type& __fctyp(use_facet<__ctype_type>(_M_locale));
  
!       // Mappings from class name to class mask.
!       static const pair<const char*, char_class_type> __classnames[] =
!       {
! 	{"d", ctype_base::digit},
! 	{"w", {ctype_base::alnum, _RegexMask::_S_under}},
! 	{"s", ctype_base::space},
! 	{"alnum", ctype_base::alnum},
! 	{"alpha", ctype_base::alpha},
! 	{"blank", ctype_base::blank},
! 	{"cntrl", ctype_base::cntrl},
! 	{"digit", ctype_base::digit},
! 	{"graph", ctype_base::graph},
! 	{"lower", ctype_base::lower},
! 	{"print", ctype_base::print},
! 	{"punct", ctype_base::punct},
! 	{"space", ctype_base::space},
! 	{"upper", ctype_base::upper},
! 	{"xdigit", ctype_base::xdigit},
        };
  
!       string __s;
!       for (; __first != __last; ++__first)
! 	__s += __fctyp.narrow(__fctyp.tolower(*__first), 0);
  
!       for (const auto& __it : __classnames)
! 	if (__s == __it.first)
  	  {
! 	    if (__icase
! 		&& ((__it.second
! 		     & (ctype_base::lower | ctype_base::upper)) != 0))
! 	      return ctype_base::alpha;
! 	    return __it.second;
  	  }
!       return 0;
      }
  
    template<typename _Ch_type>
--- 295,391 ----
      regex_traits<_Ch_type>::
      lookup_classname(_Fwd_iter __first, _Fwd_iter __last, bool __icase) const
      {
+       if constexpr (__is_any_random_access_iter<_Fwd_iter>::value)
+ 	if ((__last - __first) > 6) [[__unlikely__]]
+ 	  return {}; // "xdigit" is the longest classname
+ 
        typedef std::ctype<char_type> __ctype_type;
        const __ctype_type& __fctyp(use_facet<__ctype_type>(_M_locale));
  
!       auto __read_ch = [&]() -> char {
! 	if (__first == __last)
! 	  return '\0';
! 	char __c = __fctyp.narrow(__fctyp.tolower(*__first), 0);
! 	++__first;
! 	return __c;
        };
  
!       auto __match = [&](const char* __s) -> bool {
! 	do
! 	  if (__read_ch() != *__s)
! 	    return false;
! 	while (*++__s);
! 	return __first == __last;
!       };
  
!       switch(__read_ch())
! 	{
! 	case 'a':
! 	  if (__read_ch() == 'l')
! 	    switch (__read_ch())
! 	      {
! 	      case 'n':
! 		if (__match("um")) // "alnum"
! 		  return ctype_base::alnum;
! 		break;
! 	      case 'p':
! 		if (__match("ha")) // "alpha"
! 		  return ctype_base::alpha;
! 		break;
! 	      }
! 	  break;
! 	case 'b':
! 	  if (__match("lank")) // "blank"
! 	    return ctype_base::blank;
! 	  break;
! 	case 'c':
! 	  if (__match("ntrl")) // "cntrl"
! 	    return ctype_base::cntrl;
! 	  break;
! 	case 'd':
! 	  if (__first == __last || __match("igit")) // "d" or "digit"
! 	    return ctype_base::digit;
! 	  break;
! 	case 'g':
! 	  if (__match("raph")) // "graph"
! 	    return ctype_base::graph;
! 	  break;
! 	case 'l':
! 	  if (__match("ower")) // "lower"
! 	    return __icase ? ctype_base::alpha : ctype_base::lower;
! 	  break;
! 	case 'p':
! 	  switch (__read_ch())
  	  {
! 	  case 'r':
! 	    if (__match("int")) // "print"
! 	      return ctype_base::print;
! 	    break;
! 	  case 'u':
! 	    if (__match("nct")) // "punct"
! 	      return ctype_base::punct;
! 	    break;
  	  }
! 	  break;
! 	case 's':
! 	  if (__first == __last || __match("pace")) // "s" or "space"
! 	    return ctype_base::space;
! 	  break;
! 	case 'u':
! 	  if (__match("pper")) // "upper"
! 	    return __icase ? ctype_base::alpha : ctype_base::upper;
! 	  break;
! 	case 'w':
! 	  if (__first == __last) // "w"
! 	    return {ctype_base::alnum, char_class_type::_S_under};
! 	  break;
! 	case 'x':
! 	  if (__match("digit")) // "xdigit"
! 	    return ctype_base::xdigit;
! 	  break;
! 	}
! 
!       return {};
      }
  
    template<typename _Ch_type>
*************** namespace __detail
*** 331,338 ****
  	    && __c == __fctyp.widen('_'));
      }
  
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wc++17-extensions" // if constexpr
    template<typename _Ch_type>
      int
      regex_traits<_Ch_type>::
--- 402,407 ----
diff -Nrcpad gcc-16-20260208/libstdc++-v3/include/bits/regex_executor.h gcc-16-20260215/libstdc++-v3/include/bits/regex_executor.h
*** gcc-16-20260208/libstdc++-v3/include/bits/regex_executor.h	Sun Feb  8 22:32:17 2026
--- gcc-16-20260215/libstdc++-v3/include/bits/regex_executor.h	Sun Feb 15 22:32:15 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 36,42 ****
  
  namespace __detail
  {
- _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
    /**
     * @addtogroup regex-detail
     * @{
--- 36,41 ----
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 49,64 ****
     * @brief Takes a regex and an input string and does the matching.
     *
     * The %_Executor class has two modes: DFS mode and BFS mode, controlled
!    * by the template parameter %__dfs_mode.
     */
!   template<typename _BiIter, typename _Alloc, typename _TraitsT,
! 	   bool __dfs_mode>
      class _Executor
      {
!       using __search_mode = integral_constant<bool, __dfs_mode>;
!       using __dfs = true_type;
!       using __bfs = false_type;
! 
        enum class _Match_mode : unsigned char { _Exact, _Prefix };
  
      public:
--- 48,59 ----
     * @brief Takes a regex and an input string and does the matching.
     *
     * The %_Executor class has two modes: DFS mode and BFS mode, controlled
!    * by the function parameter %__search_mode.
     */
!   template<typename _BiIter, typename _Alloc, typename _TraitsT>
      class _Executor
      {
!       enum class _Search_mode : unsigned char { _BFS = 0, _DFS = 1 };
        enum class _Match_mode : unsigned char { _Exact, _Prefix };
  
      public:
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 74,80 ****
  		_BiIter         __end,
  		_ResultsVec&    __results,
  		const _RegexT&  __re,
! 		_FlagT          __flags)
        : _M_cur_results(__results.get_allocator()),
  	_M_begin(__begin),
  	_M_end(__end),
--- 69,76 ----
  		_BiIter         __end,
  		_ResultsVec&    __results,
  		const _RegexT&  __re,
! 		_FlagT          __flags,
! 		bool            __use_dfs)
        : _M_cur_results(__results.get_allocator()),
  	_M_begin(__begin),
  	_M_end(__end),
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 82,95 ****
  	_M_nfa(*__re._M_automaton),
  	_M_results(__results),
  	_M_rep_count(_M_nfa.size()),
! 	_M_states(_M_nfa._M_start(), _M_nfa.size()),
! 	_M_flags(__flags)
        {
  	using namespace regex_constants;
  	if (__flags & match_prev_avail) // ignore not_bol and not_bow
  	  _M_flags &= ~(match_not_bol | match_not_bow);
        }
  
        // Set matched when string exactly matches the pattern.
        bool
        _M_match()
--- 78,98 ----
  	_M_nfa(*__re._M_automaton),
  	_M_results(__results),
  	_M_rep_count(_M_nfa.size()),
! 	_M_start(_M_nfa._M_start()),
! 	_M_visited_states(nullptr),
! 	_M_flags(__flags),
! 	_M_search_mode(__use_dfs ? _Search_mode::_DFS : _Search_mode::_BFS)
        {
  	using namespace regex_constants;
  	if (__flags & match_prev_avail) // ignore not_bol and not_bow
  	  _M_flags &= ~(match_not_bol | match_not_bow);
+ 	if (_M_search_mode == _Search_mode::_BFS)
+ 	  _M_visited_states = new bool[_M_nfa.size()];
        }
  
+       ~_Executor()
+       { delete[] _M_visited_states; }
+ 
        // Set matched when string exactly matches the pattern.
        bool
        _M_match()
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 154,166 ****
  
        bool
        _M_main(_Match_mode __match_mode)
!       { return _M_main_dispatch(__match_mode, __search_mode{}); }
  
        bool
!       _M_main_dispatch(_Match_mode __match_mode, __dfs);
  
        bool
!       _M_main_dispatch(_Match_mode __match_mode, __bfs);
  
        bool
        _M_is_word(_CharT __ch) const
--- 157,174 ----
  
        bool
        _M_main(_Match_mode __match_mode)
!       {
! 	if (_M_search_mode == _Search_mode::_DFS)
! 	  return _M_main_dfs(__match_mode);
! 	else
! 	  return _M_main_bfs(__match_mode);
!       }
  
        bool
!       _M_main_dfs(_Match_mode __match_mode);
  
        bool
!       _M_main_bfs(_Match_mode __match_mode);
  
        bool
        _M_is_word(_CharT __ch) const
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 239,300 ****
  	return (_M_re._M_automaton->_M_options() & __m) == __m;
        }
  
!        // Holds additional information used in BFS-mode.
!       template<typename _SearchMode, typename _ResultsVec>
! 	struct _State_info;
! 
!       template<typename _ResultsVec>
! 	struct _State_info<__bfs, _ResultsVec>
! 	{
! 	  explicit
! 	  _State_info(_StateIdT __start, size_t __n)
! 	  : _M_visited_states(new bool[__n]()), _M_start(__start)
! 	  { }
! 
! 	  ~_State_info() { delete[] _M_visited_states; }
! 
! 	  _State_info(const _State_info&) = delete;
! 	  _State_info& operator=(const _State_info&) = delete;
! 
! 	  bool _M_visited(_StateIdT __i)
  	  {
  	    if (_M_visited_states[__i])
  	      return true;
  	    _M_visited_states[__i] = true;
- 	    return false;
  	  }
  
! 	  void _M_queue(_StateIdT __i, const _ResultsVec& __res)
! 	  { _M_match_queue.emplace_back(__i, __res); }
! 
! 	  // Dummy implementations for BFS mode.
! 	  _BiIter* _M_get_sol_pos() { return nullptr; }
! 
! 	  // Saves states that need to be considered for the next character.
! 	  _GLIBCXX_STD_C::vector<pair<_StateIdT, _ResultsVec>> _M_match_queue;
! 	  // Indicates which states are already visited.
! 	  bool*     _M_visited_states;
! 	  // To record current solution.
! 	  _StateIdT _M_start;
! 	};
! 
!       template<typename _ResultsVec>
! 	struct _State_info<__dfs, _ResultsVec>
! 	{
! 	  explicit
! 	  _State_info(_StateIdT __start, size_t) : _M_start(__start)
! 	  { }
! 
! 	  // Dummy implementations for DFS mode.
! 	  bool _M_visited(_StateIdT) const { return false; }
! 	  void _M_queue(_StateIdT, const _ResultsVec&) { }
! 
! 	  _BiIter* _M_get_sol_pos() { return &_M_sol_pos; }
! 
! 	  // To record current solution.
! 	  _StateIdT _M_start;
! 	  _BiIter   _M_sol_pos;
! 	};
  
      public:
        _GLIBCXX_STD_C::vector<_ExecutorFrame<_BiIter>>       _M_frames;
--- 247,265 ----
  	return (_M_re._M_automaton->_M_options() & __m) == __m;
        }
  
!       bool
!       _M_visited(_StateIdT __i)
!       {
! 	if (_M_visited_states)
  	  {
  	    if (_M_visited_states[__i])
  	      return true;
  	    _M_visited_states[__i] = true;
  	  }
+ 	return false;
+       }
  
!       _BiIter* _M_get_sol_pos() { return &_M_sol_pos; }
  
      public:
        _GLIBCXX_STD_C::vector<_ExecutorFrame<_BiIter>>       _M_frames;
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 306,319 ****
        const _NFAT&                                          _M_nfa;
        _ResultsVec&                                          _M_results;
        _GLIBCXX_STD_C::vector<pair<_BiIter, int>>            _M_rep_count;
!       _State_info<__search_mode, _ResultsVec>		    _M_states;
        _FlagT                                                _M_flags;
        // Do we have a solution so far?
        bool                                                  _M_has_sol;
      };
  
   ///@} regex-detail
- _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
  } // namespace __detail
  _GLIBCXX_END_NAMESPACE_VERSION
  } // namespace std
--- 271,290 ----
        const _NFAT&                                          _M_nfa;
        _ResultsVec&                                          _M_results;
        _GLIBCXX_STD_C::vector<pair<_BiIter, int>>            _M_rep_count;
!       // To record current solution.
!       _StateIdT                                             _M_start;
!       _BiIter                                               _M_sol_pos;
!       // (BFS only) Saves states that need to be considered for the next character.
!       _GLIBCXX_STD_C::vector<pair<_StateIdT, _ResultsVec>>  _M_match_queue;
!       // (BFS only) Indicates which states are already visited.
!       bool*                                                 _M_visited_states;
        _FlagT                                                _M_flags;
+       const _Search_mode                                    _M_search_mode;
        // Do we have a solution so far?
        bool                                                  _M_has_sol;
      };
  
   ///@} regex-detail
  } // namespace __detail
  _GLIBCXX_END_NAMESPACE_VERSION
  } // namespace std
diff -Nrcpad gcc-16-20260208/libstdc++-v3/include/bits/regex_executor.tcc gcc-16-20260215/libstdc++-v3/include/bits/regex_executor.tcc
*** gcc-16-20260208/libstdc++-v3/include/bits/regex_executor.tcc	Sun Feb  8 22:32:17 2026
--- gcc-16-20260215/libstdc++-v3/include/bits/regex_executor.tcc	Sun Feb 15 22:32:15 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 36,45 ****
  #pragma GCC diagnostic ignored "-Wc++17-extensions" // if constexpr
  namespace __detail
  {
! _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
!   template<typename _BiIter, typename _Alloc, typename _TraitsT,
! 	   bool __dfs_mode>
!     bool _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>::
      _M_search()
      {
        if (_M_search_from_first())
--- 36,43 ----
  #pragma GCC diagnostic ignored "-Wc++17-extensions" // if constexpr
  namespace __detail
  {
!   template<typename _BiIter, typename _Alloc, typename _TraitsT>
!     bool _Executor<_BiIter, _Alloc, _TraitsT>::
      _M_search()
      {
        if (_M_search_from_first())
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 138,145 ****
      };
  
    // The _M_main function operates in different modes, DFS mode or BFS mode,
!   // indicated by template parameter __dfs_mode, and dispatches to one of the
!   // _M_main_dispatch overloads.
    //
    // ------------------------------------------------------------
    //
--- 136,143 ----
      };
  
    // The _M_main function operates in different modes, DFS mode or BFS mode,
!   // indicated by _M_search_mode, and dispatches to either _M_main_dfs or
!   // _M_main_bfs.
    //
    // ------------------------------------------------------------
    //
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 160,174 ****
    // Time complexity: \Omega(match_length), O(2^(_M_nfa.size()))
    // Space complexity: \theta(match_results.size() + match_length)
    //
!   template<typename _BiIter, typename _Alloc, typename _TraitsT,
! 	   bool __dfs_mode>
!     bool _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>::
!     _M_main_dispatch(_Match_mode __match_mode, __dfs)
      {
        _M_has_sol = false;
!       *_M_states._M_get_sol_pos() = _BiIter();
        _M_cur_results = _M_results;
!       _M_dfs(__match_mode, _M_states._M_start);
        return _M_has_sol;
      }
  
--- 158,171 ----
    // Time complexity: \Omega(match_length), O(2^(_M_nfa.size()))
    // Space complexity: \theta(match_results.size() + match_length)
    //
!   template<typename _BiIter, typename _Alloc, typename _TraitsT>
!     bool _Executor<_BiIter, _Alloc, _TraitsT>::
!     _M_main_dfs(_Match_mode __match_mode)
      {
        _M_has_sol = false;
!       *_M_get_sol_pos() = _BiIter();
        _M_cur_results = _M_results;
!       _M_dfs(__match_mode, _M_start);
        return _M_has_sol;
      }
  
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 182,190 ****
    // It first computes epsilon closure (states that can be achieved without
    // consuming characters) for every state that's still matching,
    // using the same DFS algorithm, but doesn't re-enter states (using
!   // _M_states._M_visited to check), nor follow _S_opcode_match.
    //
!   // Then apply DFS using every _S_opcode_match (in _M_states._M_match_queue)
    // as the start state.
    //
    // It significantly reduces potential duplicate states, so has a better
--- 179,187 ----
    // It first computes epsilon closure (states that can be achieved without
    // consuming characters) for every state that's still matching,
    // using the same DFS algorithm, but doesn't re-enter states (using
!   // _M_visited to check), nor follow _S_opcode_match.
    //
!   // Then apply DFS using every _S_opcode_match (in _M_match_queue)
    // as the start state.
    //
    // It significantly reduces potential duplicate states, so has a better
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 194,213 ****
    //                  O(match_length * _M_nfa.size() * match_results.size())
    // Space complexity: \Omega(_M_nfa.size() + match_results.size())
    //                   O(_M_nfa.size() * match_results.size())
!   template<typename _BiIter, typename _Alloc, typename _TraitsT,
! 	   bool __dfs_mode>
!     bool _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>::
!     _M_main_dispatch(_Match_mode __match_mode, __bfs)
      {
!       _M_states._M_queue(_M_states._M_start, _M_results);
        bool __ret = false;
        while (1)
  	{
  	  _M_has_sol = false;
! 	  if (_M_states._M_match_queue.empty())
  	    break;
! 	  std::fill_n(_M_states._M_visited_states, _M_nfa.size(), false);
! 	  auto __old_queue = std::move(_M_states._M_match_queue);
  	  auto __alloc = _M_cur_results.get_allocator();
  	  for (auto& __task : __old_queue)
  	    {
--- 191,209 ----
    //                  O(match_length * _M_nfa.size() * match_results.size())
    // Space complexity: \Omega(_M_nfa.size() + match_results.size())
    //                   O(_M_nfa.size() * match_results.size())
!   template<typename _BiIter, typename _Alloc, typename _TraitsT>
!     bool _Executor<_BiIter, _Alloc, _TraitsT>::
!     _M_main_bfs(_Match_mode __match_mode)
      {
!       _M_match_queue.emplace_back(_M_start, _M_results);
        bool __ret = false;
        while (1)
  	{
  	  _M_has_sol = false;
! 	  if (_M_match_queue.empty())
  	    break;
! 	  std::fill_n(_M_visited_states, _M_nfa.size(), false);
! 	  auto __old_queue = std::move(_M_match_queue);
  	  auto __alloc = _M_cur_results.get_allocator();
  	  for (auto& __task : __old_queue)
  	    {
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 222,243 ****
  	}
        if (__match_mode == _Match_mode::_Exact)
  	__ret = _M_has_sol;
!       _M_states._M_match_queue.clear();
        return __ret;
      }
  
    // Return whether now match the given sub-NFA.
!   template<typename _BiIter, typename _Alloc, typename _TraitsT,
! 	   bool __dfs_mode>
!     bool _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>::
      _M_lookahead(_StateIdT __next)
      {
        // Backreferences may refer to captured content.
        // We may want to make this faster by not copying,
        // but let's not be clever prematurely.
        _ResultsVec __what(_M_cur_results);
!       _Executor __sub(_M_current, _M_end, __what, _M_re, _M_flags);
!       __sub._M_states._M_start = __next;
        if (__sub._M_search_from_first())
  	{
  	  for (size_t __i = 0; __i < __what.size(); __i++)
--- 218,239 ----
  	}
        if (__match_mode == _Match_mode::_Exact)
  	__ret = _M_has_sol;
!       _M_match_queue.clear();
        return __ret;
      }
  
    // Return whether now match the given sub-NFA.
!   template<typename _BiIter, typename _Alloc, typename _TraitsT>
!     bool _Executor<_BiIter, _Alloc, _TraitsT>::
      _M_lookahead(_StateIdT __next)
      {
        // Backreferences may refer to captured content.
        // We may want to make this faster by not copying,
        // but let's not be clever prematurely.
        _ResultsVec __what(_M_cur_results);
!       _Executor __sub(_M_current, _M_end, __what, _M_re, _M_flags,
! 		      bool(_M_search_mode));
!       __sub._M_start = __next;
        if (__sub._M_search_from_first())
  	{
  	  for (size_t __i = 0; __i < __what.size(); __i++)
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 254,263 ****
    // infinite loop by refusing to continue when it's already been
    // visited more than twice. It's `twice` instead of `once` because
    // we need to spare one more time for potential group capture.
!   template<typename _BiIter, typename _Alloc, typename _TraitsT,
! 	   bool __dfs_mode>
!     void _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>::
!     _M_rep_once_more(_Match_mode __match_mode, _StateIdT __i)
      {
        const auto& __state = _M_nfa[__i];
        auto& __rep_count = _M_rep_count[__i];
--- 250,258 ----
    // infinite loop by refusing to continue when it's already been
    // visited more than twice. It's `twice` instead of `once` because
    // we need to spare one more time for potential group capture.
!   template<typename _BiIter, typename _Alloc, typename _TraitsT>
!     void _Executor<_BiIter, _Alloc, _TraitsT>::
!     _M_rep_once_more(_Match_mode, _StateIdT __i)
      {
        const auto& __state = _M_nfa[__i];
        auto& __rep_count = _M_rep_count[__i];
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 285,300 ****
    // of this quantifier". Executing _M_next first or _M_alt first don't
    // mean the same thing, and we need to choose the correct order under
    // given greedy mode.
!   template<typename _BiIter, typename _Alloc, typename _TraitsT,
! 	   bool __dfs_mode>
!     void _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>::
!     _M_handle_repeat(_Match_mode __match_mode, _StateIdT __i)
      {
        const auto& __state = _M_nfa[__i];
        // Greedy.
        if (!__state._M_neg)
  	{
! 	  if constexpr (__dfs_mode)
  	    // If it's DFS executor and already accepted, we're done.
  	    _M_frames.emplace_back(_S_fopcode_fallback_next, __state._M_next,
  				   _M_current);
--- 280,294 ----
    // of this quantifier". Executing _M_next first or _M_alt first don't
    // mean the same thing, and we need to choose the correct order under
    // given greedy mode.
!   template<typename _BiIter, typename _Alloc, typename _TraitsT>
!     void _Executor<_BiIter, _Alloc, _TraitsT>::
!     _M_handle_repeat(_Match_mode, _StateIdT __i)
      {
        const auto& __state = _M_nfa[__i];
        // Greedy.
        if (!__state._M_neg)
  	{
! 	  if (_M_search_mode == _Search_mode::_DFS)
  	    // If it's DFS executor and already accepted, we're done.
  	    _M_frames.emplace_back(_S_fopcode_fallback_next, __state._M_next,
  				   _M_current);
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 304,310 ****
  	}
        else // Non-greedy mode
  	{
! 	  if constexpr (__dfs_mode)
  	    {
  	      // vice-versa.
  	      _M_frames.emplace_back(_S_fopcode_fallback_rep_once_more, __i,
--- 298,304 ----
  	}
        else // Non-greedy mode
  	{
! 	  if (_M_search_mode == _Search_mode::_DFS)
  	    {
  	      // vice-versa.
  	      _M_frames.emplace_back(_S_fopcode_fallback_rep_once_more, __i,
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 328,337 ****
  	}
      }
  
!   template<typename _BiIter, typename _Alloc, typename _TraitsT,
! 	   bool __dfs_mode>
!     void _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>::
!     _M_handle_subexpr_begin(_Match_mode __match_mode, _StateIdT __i)
      {
        const auto& __state = _M_nfa[__i];
        auto& __res = _M_cur_results[__state._M_subexpr];
--- 322,330 ----
  	}
      }
  
!   template<typename _BiIter, typename _Alloc, typename _TraitsT>
!     void _Executor<_BiIter, _Alloc, _TraitsT>::
!     _M_handle_subexpr_begin(_Match_mode, _StateIdT __i)
      {
        const auto& __state = _M_nfa[__i];
        auto& __res = _M_cur_results[__state._M_subexpr];
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 342,351 ****
        _M_frames.emplace_back(_S_fopcode_next, __state._M_next);
      }
  
!   template<typename _BiIter, typename _Alloc, typename _TraitsT,
! 	   bool __dfs_mode>
!     void _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>::
!     _M_handle_subexpr_end(_Match_mode __match_mode, _StateIdT __i)
      {
        const auto& __state = _M_nfa[__i];
        auto& __res = _M_cur_results[__state._M_subexpr];
--- 335,343 ----
        _M_frames.emplace_back(_S_fopcode_next, __state._M_next);
      }
  
!   template<typename _BiIter, typename _Alloc, typename _TraitsT>
!     void _Executor<_BiIter, _Alloc, _TraitsT>::
!     _M_handle_subexpr_end(_Match_mode, _StateIdT __i)
      {
        const auto& __state = _M_nfa[__i];
        auto& __res = _M_cur_results[__state._M_subexpr];
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 359,388 ****
        _M_frames.emplace_back(_S_fopcode_next, __state._M_next);
      }
  
!   template<typename _BiIter, typename _Alloc, typename _TraitsT,
! 	   bool __dfs_mode>
!     inline void _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>::
!     _M_handle_line_begin_assertion(_Match_mode __match_mode, _StateIdT __i)
      {
        const auto& __state = _M_nfa[__i];
        if (_M_at_begin())
  	_M_frames.emplace_back(_S_fopcode_next, __state._M_next);
      }
  
!   template<typename _BiIter, typename _Alloc, typename _TraitsT,
! 	   bool __dfs_mode>
!     inline void _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>::
!     _M_handle_line_end_assertion(_Match_mode __match_mode, _StateIdT __i)
      {
        const auto& __state = _M_nfa[__i];
        if (_M_at_end())
  	_M_frames.emplace_back(_S_fopcode_next, __state._M_next);
      }
  
!   template<typename _BiIter, typename _Alloc, typename _TraitsT,
! 	   bool __dfs_mode>
!     inline void _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>::
!     _M_handle_word_boundary(_Match_mode __match_mode, _StateIdT __i)
      {
        const auto& __state = _M_nfa[__i];
        if (_M_word_boundary() == !__state._M_neg)
--- 351,377 ----
        _M_frames.emplace_back(_S_fopcode_next, __state._M_next);
      }
  
!   template<typename _BiIter, typename _Alloc, typename _TraitsT>
!     inline void _Executor<_BiIter, _Alloc, _TraitsT>::
!     _M_handle_line_begin_assertion(_Match_mode, _StateIdT __i)
      {
        const auto& __state = _M_nfa[__i];
        if (_M_at_begin())
  	_M_frames.emplace_back(_S_fopcode_next, __state._M_next);
      }
  
!   template<typename _BiIter, typename _Alloc, typename _TraitsT>
!     inline void _Executor<_BiIter, _Alloc, _TraitsT>::
!     _M_handle_line_end_assertion(_Match_mode, _StateIdT __i)
      {
        const auto& __state = _M_nfa[__i];
        if (_M_at_end())
  	_M_frames.emplace_back(_S_fopcode_next, __state._M_next);
      }
  
!   template<typename _BiIter, typename _Alloc, typename _TraitsT>
!     inline void _Executor<_BiIter, _Alloc, _TraitsT>::
!     _M_handle_word_boundary(_Match_mode, _StateIdT __i)
      {
        const auto& __state = _M_nfa[__i];
        if (_M_word_boundary() == !__state._M_neg)
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 391,415 ****
  
    // Here __state._M_alt offers a single start node for a sub-NFA.
    // We recursively invoke our algorithm to match the sub-NFA.
!   template<typename _BiIter, typename _Alloc, typename _TraitsT,
! 	   bool __dfs_mode>
!     void _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>::
!     _M_handle_subexpr_lookahead(_Match_mode __match_mode, _StateIdT __i)
      {
        const auto& __state = _M_nfa[__i];
        if (_M_lookahead(__state._M_alt) == !__state._M_neg)
  	_M_frames.emplace_back(_S_fopcode_next, __state._M_next);
      }
  
!   template<typename _BiIter, typename _Alloc, typename _TraitsT,
! 	   bool __dfs_mode>
!     void _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>::
!     _M_handle_match(_Match_mode __match_mode, _StateIdT __i)
      {
        const auto& __state = _M_nfa[__i];
        if (_M_current == _M_end)
  	return;
!       if constexpr (__dfs_mode)
  	{
  	  if (__state._M_matches(*_M_current))
  	    {
--- 380,402 ----
  
    // Here __state._M_alt offers a single start node for a sub-NFA.
    // We recursively invoke our algorithm to match the sub-NFA.
!   template<typename _BiIter, typename _Alloc, typename _TraitsT>
!     void _Executor<_BiIter, _Alloc, _TraitsT>::
!     _M_handle_subexpr_lookahead(_Match_mode, _StateIdT __i)
      {
        const auto& __state = _M_nfa[__i];
        if (_M_lookahead(__state._M_alt) == !__state._M_neg)
  	_M_frames.emplace_back(_S_fopcode_next, __state._M_next);
      }
  
!   template<typename _BiIter, typename _Alloc, typename _TraitsT>
!     void _Executor<_BiIter, _Alloc, _TraitsT>::
!     _M_handle_match(_Match_mode, _StateIdT __i)
      {
        const auto& __state = _M_nfa[__i];
        if (_M_current == _M_end)
  	return;
!       if (_M_search_mode == _Search_mode::_DFS)
  	{
  	  if (__state._M_matches(*_M_current))
  	    {
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 419,425 ****
  	}
        else
  	if (__state._M_matches(*_M_current))
! 	  _M_states._M_queue(__state._M_next, _M_cur_results);
      }
  
    template<typename _BiIter, typename _TraitsT>
--- 406,412 ----
  	}
        else
  	if (__state._M_matches(*_M_current))
! 	  _M_match_queue.emplace_back(__state._M_next, _M_cur_results);
      }
  
    template<typename _BiIter, typename _TraitsT>
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 474,485 ****
    // then compare it with
    // (_M_current, _M_current + (__submatch.second - __submatch.first)).
    // If matched, keep going; else just return and try another state.
!   template<typename _BiIter, typename _Alloc, typename _TraitsT,
! 	   bool __dfs_mode>
!     void _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>::
!     _M_handle_backref(_Match_mode __match_mode, _StateIdT __i)
      {
!       static_assert(__dfs_mode, "this should never be instantiated");
  
        const auto& __state = _M_nfa[__i];
        auto& __submatch = _M_cur_results[__state._M_backref_index];
--- 461,471 ----
    // then compare it with
    // (_M_current, _M_current + (__submatch.second - __submatch.first)).
    // If matched, keep going; else just return and try another state.
!   template<typename _BiIter, typename _Alloc, typename _TraitsT>
!     void _Executor<_BiIter, _Alloc, _TraitsT>::
!     _M_handle_backref(_Match_mode, _StateIdT __i)
      {
!       __glibcxx_assert(_M_search_mode == _Search_mode::_DFS);
  
        const auto& __state = _M_nfa[__i];
        auto& __submatch = _M_cur_results[__state._M_backref_index];
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 500,511 ****
  	}
      }
  
!   template<typename _BiIter, typename _Alloc, typename _TraitsT,
! 	   bool __dfs_mode>
!     void _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>::
      _M_handle_accept(_Match_mode __match_mode, _StateIdT)
      {
!       if constexpr (__dfs_mode)
  	{
  	  __glibcxx_assert(!_M_has_sol);
  	  if (__match_mode == _Match_mode::_Exact)
--- 486,496 ----
  	}
      }
  
!   template<typename _BiIter, typename _Alloc, typename _TraitsT>
!     void _Executor<_BiIter, _Alloc, _TraitsT>::
      _M_handle_accept(_Match_mode __match_mode, _StateIdT)
      {
!       if (_M_search_mode == _Search_mode::_DFS)
  	{
  	  __glibcxx_assert(!_M_has_sol);
  	  if (__match_mode == _Match_mode::_Exact)
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 521,527 ****
  		_M_results = _M_cur_results;
  	      else // POSIX
  		{
! 		  __glibcxx_assert(_M_states._M_get_sol_pos());
  		  // Here's POSIX's logic: match the longest one. However
  		  // we never know which one (lhs or rhs of "|") is longer
  		  // unless we try both of them and compare the results.
--- 506,512 ----
  		_M_results = _M_cur_results;
  	      else // POSIX
  		{
! 		  __glibcxx_assert(_M_get_sol_pos());
  		  // Here's POSIX's logic: match the longest one. However
  		  // we never know which one (lhs or rhs of "|") is longer
  		  // unless we try both of them and compare the results.
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 529,540 ****
  		  // position of the last successful match. It's better
  		  // to be larger, because POSIX regex is always greedy.
  		  // TODO: This could be slow.
! 		  if (*_M_states._M_get_sol_pos() == _BiIter()
! 		      || std::distance(_M_begin,
! 				       *_M_states._M_get_sol_pos())
  			 < std::distance(_M_begin, _M_current))
  		    {
! 		      *_M_states._M_get_sol_pos() = _M_current;
  		      _M_results = _M_cur_results;
  		    }
  		}
--- 514,524 ----
  		  // position of the last successful match. It's better
  		  // to be larger, because POSIX regex is always greedy.
  		  // TODO: This could be slow.
! 		  if (*_M_get_sol_pos() == _BiIter()
! 		      || std::distance(_M_begin, *_M_get_sol_pos())
  			 < std::distance(_M_begin, _M_current))
  		    {
! 		      *_M_get_sol_pos() = _M_current;
  		      _M_results = _M_cur_results;
  		    }
  		}
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 554,563 ****
  	}
      }
  
!   template<typename _BiIter, typename _Alloc, typename _TraitsT,
! 	   bool __dfs_mode>
!     void _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>::
!     _M_handle_alternative(_Match_mode __match_mode, _StateIdT __i)
      {
        const auto& __state = _M_nfa[__i];
        if (_M_nfa._M_flags & regex_constants::ECMAScript)
--- 538,546 ----
  	}
      }
  
!   template<typename _BiIter, typename _Alloc, typename _TraitsT>
!     void _Executor<_BiIter, _Alloc, _TraitsT>::
!     _M_handle_alternative(_Match_mode, _StateIdT __i)
      {
        const auto& __state = _M_nfa[__i];
        if (_M_nfa._M_flags & regex_constants::ECMAScript)
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 578,592 ****
  	}
      }
  
!   template<typename _BiIter, typename _Alloc, typename _TraitsT,
! 	   bool __dfs_mode>
  #ifdef __OPTIMIZE__
      [[__gnu__::__always_inline__]]
  #endif
!     inline void _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>::
      _M_node(_Match_mode __match_mode, _StateIdT __i)
      {
!       if (_M_states._M_visited(__i))
  	return;
  
        switch (_M_nfa[__i]._M_opcode())
--- 561,574 ----
  	}
      }
  
!   template<typename _BiIter, typename _Alloc, typename _TraitsT>
  #ifdef __OPTIMIZE__
      [[__gnu__::__always_inline__]]
  #endif
!     inline void _Executor<_BiIter, _Alloc, _TraitsT>::
      _M_node(_Match_mode __match_mode, _StateIdT __i)
      {
!       if (_M_visited(__i))
  	return;
  
        switch (_M_nfa[__i]._M_opcode())
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 608,614 ****
  	case _S_opcode_match:
  	  _M_handle_match(__match_mode, __i); break;
  	case _S_opcode_backref:
! 	  if constexpr (__dfs_mode)
  	    _M_handle_backref(__match_mode, __i);
  	  else
  	    __builtin_unreachable();
--- 590,596 ----
  	case _S_opcode_match:
  	  _M_handle_match(__match_mode, __i); break;
  	case _S_opcode_backref:
! 	  if (_M_search_mode == _Search_mode::_DFS)
  	    _M_handle_backref(__match_mode, __i);
  	  else
  	    __builtin_unreachable();
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 622,632 ****
  	}
      }
  
!   template<typename _BiIter, typename _Alloc, typename _TraitsT,
! 	   bool __dfs_mode>
!     void _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>::
      _M_dfs(_Match_mode __match_mode, _StateIdT __start)
      {
        _M_frames.emplace_back(_S_fopcode_next, __start);
  
        while (!_M_frames.empty())
--- 604,614 ----
  	}
      }
  
!   template<typename _BiIter, typename _Alloc, typename _TraitsT>
!     void _Executor<_BiIter, _Alloc, _TraitsT>::
      _M_dfs(_Match_mode __match_mode, _StateIdT __start)
      {
+       const bool __dfs_mode = (_M_search_mode == _Search_mode::_DFS);
        _M_frames.emplace_back(_S_fopcode_next, __start);
  
        while (!_M_frames.empty())
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 639,645 ****
  	    case _S_fopcode_fallback_next:
  	      if (_M_has_sol)
  		break;
! 	      if constexpr (__dfs_mode)
  		_M_current = __frame._M_pos;
  	      [[__fallthrough__]];
  	    case _S_fopcode_next:
--- 621,627 ----
  	    case _S_fopcode_fallback_next:
  	      if (_M_has_sol)
  		break;
! 	      if (__dfs_mode)
  		_M_current = __frame._M_pos;
  	      [[__fallthrough__]];
  	    case _S_fopcode_next:
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 649,655 ****
  	    case _S_fopcode_fallback_rep_once_more:
  	      if (_M_has_sol)
  		break;
! 	      if constexpr (__dfs_mode)
  		_M_current = __frame._M_pos;
  	      [[__fallthrough__]];
  	    case _S_fopcode_rep_once_more:
--- 631,637 ----
  	    case _S_fopcode_fallback_rep_once_more:
  	      if (_M_has_sol)
  		break;
! 	      if (__dfs_mode)
  		_M_current = __frame._M_pos;
  	      [[__fallthrough__]];
  	    case _S_fopcode_rep_once_more:
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 659,665 ****
  	    case _S_fopcode_posix_alternative:
  	      _M_frames.emplace_back(_S_fopcode_merge_sol, 0, _M_has_sol);
  	      _M_frames.emplace_back(_S_fopcode_next, __frame._M_state_id);
! 	      if constexpr (__dfs_mode)
  		_M_current = __frame._M_pos;
  	      _M_has_sol = false;
  	      break;
--- 641,647 ----
  	    case _S_fopcode_posix_alternative:
  	      _M_frames.emplace_back(_S_fopcode_merge_sol, 0, _M_has_sol);
  	      _M_frames.emplace_back(_S_fopcode_next, __frame._M_state_id);
! 	      if (__dfs_mode)
  		_M_current = __frame._M_pos;
  	      _M_has_sol = false;
  	      break;
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 691,699 ****
      }
  
    // Return whether now is at some word boundary.
!   template<typename _BiIter, typename _Alloc, typename _TraitsT,
! 	   bool __dfs_mode>
!     bool _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>::
      _M_word_boundary() const
      {
        if (_M_current == _M_begin && (_M_flags & regex_constants::match_not_bow))
--- 673,680 ----
      }
  
    // Return whether now is at some word boundary.
!   template<typename _BiIter, typename _Alloc, typename _TraitsT>
!     bool _Executor<_BiIter, _Alloc, _TraitsT>::
      _M_word_boundary() const
      {
        if (_M_current == _M_begin && (_M_flags & regex_constants::match_not_bow))
*************** _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
*** 714,720 ****
  
        return __left_is_word != __right_is_word;
      }
- _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
  } // namespace __detail
  #pragma GCC diagnostic pop
  
--- 695,700 ----
diff -Nrcpad gcc-16-20260208/libstdc++-v3/include/bits/stl_function.h gcc-16-20260215/libstdc++-v3/include/bits/stl_function.h
*** gcc-16-20260208/libstdc++-v3/include/bits/stl_function.h	Sun Feb  8 22:32:17 2026
--- gcc-16-20260215/libstdc++-v3/include/bits/stl_function.h	Sun Feb 15 22:32:15 2026
*************** template <typename _Kt, typename _Contai
*** 1537,1542 ****
--- 1537,1592 ----
      __not_container_iterator<_Kt, _Container>;
  #endif
  
+ #if __cplusplus > 201703L
+   template<template<typename> class>
+     constexpr bool __is_std_op_template = false;
+ 
+   template<>
+     inline constexpr bool __is_std_op_template<std::equal_to> = true;
+   template<>
+     inline constexpr bool __is_std_op_template<std::not_equal_to> = true;
+   template<>
+     inline constexpr bool __is_std_op_template<std::greater> = true;
+   template<>
+     inline constexpr bool __is_std_op_template<std::less> = true;
+   template<>
+     inline constexpr bool __is_std_op_template<std::greater_equal> = true;
+   template<>
+     inline constexpr bool __is_std_op_template<std::less_equal> = true;
+   template<>
+     inline constexpr bool __is_std_op_template<std::plus> = true;
+   template<>
+     inline constexpr bool __is_std_op_template<std::minus> = true;
+   template<>
+     inline constexpr bool __is_std_op_template<std::multiplies> = true;
+   template<>
+     inline constexpr bool __is_std_op_template<std::divides> = true;
+   template<>
+     inline constexpr bool __is_std_op_template<std::modulus> = true;
+   template<>
+     inline constexpr bool __is_std_op_template<std::negate> = true;
+   template<>
+     inline constexpr bool __is_std_op_template<std::logical_and> = true;
+   template<>
+     inline constexpr bool __is_std_op_template<std::logical_or> = true;
+   template<>
+     inline constexpr bool __is_std_op_template<std::logical_not> = true;
+   template<>
+     inline constexpr bool __is_std_op_template<std::bit_and> = true;
+   template<>
+     inline constexpr bool __is_std_op_template<std::bit_or> = true;
+   template<>
+     inline constexpr bool __is_std_op_template<std::bit_xor> = true;
+   template<>
+     inline constexpr bool __is_std_op_template<std::bit_not> = true;
+ 
+   template<typename _Fn>
+     constexpr bool __is_std_op_wrapper = false;
+ 
+   template<template<typename> class _Ft, typename _Tp>
+     constexpr bool __is_std_op_wrapper<_Ft<_Tp>>
+       = __is_std_op_template<_Ft>;
+ #endif
  _GLIBCXX_END_NAMESPACE_VERSION
  } // namespace
  
diff -Nrcpad gcc-16-20260208/libstdc++-v3/include/std/atomic gcc-16-20260215/libstdc++-v3/include/std/atomic
*** gcc-16-20260208/libstdc++-v3/include/std/atomic	Sun Feb  8 22:32:17 2026
--- gcc-16-20260215/libstdc++-v3/include/std/atomic	Sun Feb 15 22:32:16 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 247,259 ****
        atomic& operator=(const atomic&) = delete;
        atomic& operator=(const atomic&) volatile = delete;
  
        constexpr atomic(_Tp __i) noexcept : _M_i(__i)
        {
! #if __cplusplus >= 201402L && __has_builtin(__builtin_clear_padding)
  	if _GLIBCXX17_CONSTEXPR (__atomic_impl::__maybe_has_padding<_Tp>())
! 	  __builtin_clear_padding(std::__addressof(_M_i));
  #endif
        }
  
        operator _Tp() const noexcept
        { return load(); }
--- 247,263 ----
        atomic& operator=(const atomic&) = delete;
        atomic& operator=(const atomic&) volatile = delete;
  
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wc++14-extensions" // constexpr ctor body
        constexpr atomic(_Tp __i) noexcept : _M_i(__i)
        {
! #if __has_builtin(__builtin_clear_padding)
  	if _GLIBCXX17_CONSTEXPR (__atomic_impl::__maybe_has_padding<_Tp>())
! 	  if (!std::__is_constant_evaluated())
! 	    __builtin_clear_padding(std::__addressof(_M_i));
  #endif
        }
+ #pragma GCC diagnostic pop
  
        operator _Tp() const noexcept
        { return load(); }
diff -Nrcpad gcc-16-20260208/libstdc++-v3/include/std/ranges gcc-16-20260215/libstdc++-v3/include/std/ranges
*** gcc-16-20260208/libstdc++-v3/include/std/ranges	Sun Feb  8 22:32:17 2026
--- gcc-16-20260215/libstdc++-v3/include/std/ranges	Sun Feb 15 22:32:16 2026
*************** namespace ranges
*** 287,342 ****
  	{ return std::__addressof(_M_value); }
        };
  
-       template<template<typename> class>
- 	constexpr bool __is_std_op_template = false;
- 
-       template<>
- 	inline constexpr bool __is_std_op_template<std::equal_to> = true;
-       template<>
- 	inline constexpr bool __is_std_op_template<std::not_equal_to> = true;
-       template<>
- 	inline constexpr bool __is_std_op_template<std::greater> = true;
-       template<>
- 	inline constexpr bool __is_std_op_template<std::less> = true;
-       template<>
- 	inline constexpr bool __is_std_op_template<std::greater_equal> = true;
-       template<>
- 	inline constexpr bool __is_std_op_template<std::less_equal> = true;
-       template<>
- 	inline constexpr bool __is_std_op_template<std::plus> = true;
-       template<>
- 	inline constexpr bool __is_std_op_template<std::minus> = true;
-       template<>
- 	inline constexpr bool __is_std_op_template<std::multiplies> = true;
-       template<>
- 	inline constexpr bool __is_std_op_template<std::divides> = true;
-       template<>
- 	inline constexpr bool __is_std_op_template<std::modulus> = true;
-       template<>
- 	inline constexpr bool __is_std_op_template<std::negate> = true;
-       template<>
- 	inline constexpr bool __is_std_op_template<std::logical_and> = true;
-       template<>
- 	inline constexpr bool __is_std_op_template<std::logical_or> = true;
-       template<>
- 	inline constexpr bool __is_std_op_template<std::logical_not> = true;
-       template<>
- 	inline constexpr bool __is_std_op_template<std::bit_and> = true;
-       template<>
- 	inline constexpr bool __is_std_op_template<std::bit_or> = true;
-       template<>
- 	inline constexpr bool __is_std_op_template<std::bit_xor> = true;
-       template<>
- 	inline constexpr bool __is_std_op_template<std::bit_not> = true;
- 
- 
-       template<typename _Fn>
- 	constexpr bool __is_std_op_wrapper = false;
- 
-       template<template<typename> class _Ft, typename _Tp>
- 	constexpr bool __is_std_op_wrapper<_Ft<_Tp>>
- 	  = __is_std_op_template<_Ft>;
- 
        namespace __func_handle
        {
  	template<typename _Fn>
--- 287,292 ----
diff -Nrcpad gcc-16-20260208/libstdc++-v3/include/std/tuple gcc-16-20260215/libstdc++-v3/include/std/tuple
*** gcc-16-20260208/libstdc++-v3/include/std/tuple	Sun Feb  8 22:32:17 2026
--- gcc-16-20260215/libstdc++-v3/include/std/tuple	Sun Feb 15 22:32:16 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 969,975 ****
        // Defined as a template to work around PR libstdc++/116440.
        template<typename = void>
  	constexpr explicit(!__convertible<const _Elements&...>())
! 	tuple(const _Elements&... __elements)
  	noexcept(__nothrow_constructible<const _Elements&...>())
  	requires (__constructible<const _Elements&...>())
  	: _Inherited(__elements...)
--- 969,975 ----
        // Defined as a template to work around PR libstdc++/116440.
        template<typename = void>
  	constexpr explicit(!__convertible<const _Elements&...>())
! 	tuple(const type_identity_t<_Elements>&... __elements)
  	noexcept(__nothrow_constructible<const _Elements&...>())
  	requires (__constructible<const _Elements&...>())
  	: _Inherited(__elements...)
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1161,1167 ****
        template<typename _Alloc>
  	constexpr explicit(!__convertible<const _Elements&...>())
  	tuple(allocator_arg_t __tag, const _Alloc& __a,
! 	      const _Elements&... __elements)
  	requires (__constructible<const _Elements&...>())
  	: _Inherited(__tag, __a, __elements...)
  	{ }
--- 1161,1167 ----
        template<typename _Alloc>
  	constexpr explicit(!__convertible<const _Elements&...>())
  	tuple(allocator_arg_t __tag, const _Alloc& __a,
! 	      const type_identity_t<_Elements>&... __elements)
  	requires (__constructible<const _Elements&...>())
  	: _Inherited(__tag, __a, __elements...)
  	{ }
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1470,1483 ****
        template<bool _NotEmpty = (sizeof...(_Elements) >= 1),
  	       _ImplicitCtor<_NotEmpty, const _Elements&...> = true>
  	constexpr
! 	tuple(const _Elements&... __elements)
  	noexcept(__nothrow_constructible<const _Elements&...>())
  	: _Inherited(__elements...) { }
  
        template<bool _NotEmpty = (sizeof...(_Elements) >= 1),
  	       _ExplicitCtor<_NotEmpty, const _Elements&...> = false>
  	explicit constexpr
! 	tuple(const _Elements&... __elements)
  	noexcept(__nothrow_constructible<const _Elements&...>())
  	: _Inherited(__elements...) { }
  
--- 1470,1483 ----
        template<bool _NotEmpty = (sizeof...(_Elements) >= 1),
  	       _ImplicitCtor<_NotEmpty, const _Elements&...> = true>
  	constexpr
! 	tuple(const __type_identity_t<_Elements>&... __elements)
  	noexcept(__nothrow_constructible<const _Elements&...>())
  	: _Inherited(__elements...) { }
  
        template<bool _NotEmpty = (sizeof...(_Elements) >= 1),
  	       _ExplicitCtor<_NotEmpty, const _Elements&...> = false>
  	explicit constexpr
! 	tuple(const __type_identity_t<_Elements>&... __elements)
  	noexcept(__nothrow_constructible<const _Elements&...>())
  	: _Inherited(__elements...) { }
  
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1562,1568 ****
  	       _ImplicitCtor<_NotEmpty, const _Elements&...> = true>
  	_GLIBCXX20_CONSTEXPR
  	tuple(allocator_arg_t __tag, const _Alloc& __a,
! 	      const _Elements&... __elements)
  	: _Inherited(__tag, __a, __elements...) { }
  
        template<typename _Alloc, bool _NotEmpty = (sizeof...(_Elements) >= 1),
--- 1562,1568 ----
  	       _ImplicitCtor<_NotEmpty, const _Elements&...> = true>
  	_GLIBCXX20_CONSTEXPR
  	tuple(allocator_arg_t __tag, const _Alloc& __a,
! 	      const __type_identity_t<_Elements>&... __elements)
  	: _Inherited(__tag, __a, __elements...) { }
  
        template<typename _Alloc, bool _NotEmpty = (sizeof...(_Elements) >= 1),
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1570,1576 ****
  	_GLIBCXX20_CONSTEXPR
  	explicit
  	tuple(allocator_arg_t __tag, const _Alloc& __a,
! 	      const _Elements&... __elements)
  	: _Inherited(__tag, __a, __elements...) { }
  
        template<typename _Alloc, typename... _UElements,
--- 1570,1576 ----
  	_GLIBCXX20_CONSTEXPR
  	explicit
  	tuple(allocator_arg_t __tag, const _Alloc& __a,
! 	      const __type_identity_t<_Elements>&... __elements)
  	: _Inherited(__tag, __a, __elements...) { }
  
        template<typename _Alloc, typename... _UElements,
diff -Nrcpad gcc-16-20260208/libstdc++-v3/include/std/type_traits gcc-16-20260215/libstdc++-v3/include/std/type_traits
*** gcc-16-20260208/libstdc++-v3/include/std/type_traits	Sun Feb  8 22:32:17 2026
--- gcc-16-20260215/libstdc++-v3/include/std/type_traits	Sun Feb 15 22:32:16 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 674,679 ****
--- 674,682 ----
      : public __bool_constant<__is_member_object_pointer(_Tp)>
      { };
  #else
+   template<typename _Tp>
+     struct is_function;
+ 
    template<typename>
      struct __is_member_object_pointer_helper
      : public false_type { };
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 696,701 ****
--- 699,707 ----
      : public __bool_constant<__is_member_function_pointer(_Tp)>
      { };
  #else
+   template<typename _Tp>
+     struct is_function;
+ 
    template<typename>
      struct __is_member_function_pointer_helper
      : public false_type { };
diff -Nrcpad gcc-16-20260208/libstdc++-v3/testsuite/17_intro/badnames.cc gcc-16-20260215/libstdc++-v3/testsuite/17_intro/badnames.cc
*** gcc-16-20260208/libstdc++-v3/testsuite/17_intro/badnames.cc	Sun Feb  8 22:32:17 2026
--- gcc-16-20260215/libstdc++-v3/testsuite/17_intro/badnames.cc	Sun Feb 15 22:32:16 2026
***************
*** 67,73 ****
  
  // BSD adds:
  #define __used		__used is a BADNAME
! #define __unused	__unused is a BADNAME
          // __inline	(glibc uses this so can't test here)
          // _Complex	(glibc uses this so can't test here)
  #define __istype	__istype is a BADNAME
--- 67,73 ----
  
  // BSD adds:
  #define __used		__used is a BADNAME
!         // __unused	(glibc uses this so can't test here)
          // __inline	(glibc uses this so can't test here)
          // _Complex	(glibc uses this so can't test here)
  #define __istype	__istype is a BADNAME
diff -Nrcpad gcc-16-20260208/libstdc++-v3/testsuite/17_intro/names.cc gcc-16-20260215/libstdc++-v3/testsuite/17_intro/names.cc
*** gcc-16-20260208/libstdc++-v3/testsuite/17_intro/names.cc	Sun Feb  8 22:32:17 2026
--- gcc-16-20260215/libstdc++-v3/testsuite/17_intro/names.cc	Sun Feb 15 22:32:16 2026
***************
*** 303,309 ****
  #if defined (__linux__) || defined (__gnu_hurd__)
  #if __has_include(<features.h>)
  #include <features.h>
! #if __GLIBC__ == 2 && __GLIBC_MINOR__ < 19
  // Glibc defines this prior to 2.19
  #undef __unused
  #endif
--- 303,309 ----
  #if defined (__linux__) || defined (__gnu_hurd__)
  #if __has_include(<features.h>)
  #include <features.h>
! #if __GLIBC__ == 2 && (__GLIBC_MINOR__ < 19 || __GLIBC_MINOR__ == 43)
  // Glibc defines this prior to 2.19
  #undef __unused
  #endif
diff -Nrcpad gcc-16-20260208/libstdc++-v3/testsuite/20_util/function_ref/dangling.cc gcc-16-20260215/libstdc++-v3/testsuite/20_util/function_ref/dangling.cc
*** gcc-16-20260208/libstdc++-v3/testsuite/20_util/function_ref/dangling.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/libstdc++-v3/testsuite/20_util/function_ref/dangling.cc	Sun Feb 15 22:32:16 2026
***************
*** 0 ****
--- 1,74 ----
+ // { dg-do compile { target c++26 } }
+ 
+ #include <functional>
+ 
+ template<typename F>
+ constexpr std::function_ref<int(int, int) const>
+ create(F f)
+ {
+   std::function_ref<int(int, int) const> fr(f);
+   return fr;
+ }
+ 
+ constexpr auto vLambda = create([](int x, int y) static { return x + y; });
+ 
+ constexpr auto vTgreater = create(std::greater<int>{});
+ constexpr auto vDgreater = create(std::greater<>{});
+ constexpr auto vRgreater = create(std::ranges::greater{});
+ 
+ constexpr auto vTplus = create(std::plus<int>{});
+ constexpr auto vDplus = create(std::plus<>{});
+ 
+ struct Empty
+ {
+   static int
+   operator()(int x, int y)
+   { return x + y; }
+ };
+ 
+ constexpr auto vEmpty = create(Empty{});
+ 
+ struct NonEmpty {
+   int v;
+ 
+   static int
+   operator()(int x, int y)
+   { return x + y; }
+ };
+ 
+ constexpr auto vNonEmpty = create(NonEmpty{3});
+ 
+ struct NonStatic {
+   int v;
+ 
+   int
+   operator()(int x, int y) const
+   { return x + y + v; }
+ };
+ 
+ constexpr auto vNonType = create(std::nontype<NonStatic{3}>);
+ 
+ struct StaticWins {
+   static int
+   operator()(int x, int y)
+   { return x + y; }
+ 
+   int
+   operator()(float x, float y) const
+   { return x + y; }
+ };
+ 
+ constexpr auto vStaticWins = create(StaticWins{});
+ 
+ struct StaticWinsET {
+   static int
+   operator()(int x, int y)
+   { return x + y; }
+ 
+   int
+   operator()(this StaticWinsET, float x, float y)
+   { return x + y; }
+ };
+ 
+ constexpr auto vStaticWinsET = create(StaticWinsET{});
+ 
diff -Nrcpad gcc-16-20260208/libstdc++-v3/testsuite/20_util/function_ref/dangling_neg.cc gcc-16-20260215/libstdc++-v3/testsuite/20_util/function_ref/dangling_neg.cc
*** gcc-16-20260208/libstdc++-v3/testsuite/20_util/function_ref/dangling_neg.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/libstdc++-v3/testsuite/20_util/function_ref/dangling_neg.cc	Sun Feb 15 22:32:16 2026
***************
*** 0 ****
--- 1,76 ----
+ // { dg-do compile { target c++26 } }
+ 
+ #include <functional>
+ 
+ template<typename F>
+ constexpr std::function_ref<int(int, int) const>
+ create(F f)
+ {
+   std::function_ref<int(int, int) const> fr(f);
+   return fr;
+ }
+ 
+ constexpr auto vLambda = create([](int x, int y) { return x + y; }); // { dg-error "is not a constant expression" }
+ 
+ struct Empty
+ {
+   int
+   operator()(int x, int y) const
+   { return x + y; }
+ };
+ 
+ constexpr auto vEmpty = create(Empty{}); // { dg-error "is not a constant expression" }
+ 
+ struct NonEmpty {
+   int v;
+ 
+   int
+   operator()(int x, int y) const
+   { return x + y + v; }
+ };
+ 
+ constexpr auto vNonEmpty = create(NonEmpty{3}); // { dg-error "is not a constant expression" }
+ 
+ struct InstanceWins {
+   int
+   operator()(int x, int y) const
+   { return x + y; }
+ 
+   static int
+   operator()(float x, float y)
+   { return x + y; }
+ };
+ 
+ constexpr auto vInstanceWins = create(InstanceWins{}); // { dg-error "is not a constant expression" }
+ 
+ struct EmptyET
+ {
+   int
+   operator()(this EmptyET, int x, int y)
+   { return x + y; }
+ };
+ 
+ constexpr auto vEmptyET = create(EmptyET{}); // { dg-error "is not a constant expression" }
+ 
+ struct NonEmptyET {
+   int v;
+ 
+   int
+   operator()(this NonEmptyET s, int x, int y)
+   { return x + y + s.v; }
+ };
+ 
+ constexpr auto vNonEmptyET = create(NonEmptyET{3}); // { dg-error "is not a constant expression" }
+ 
+ struct InstanceWinsET {
+   int
+   operator()(this InstanceWinsET, int x, int y)
+   { return x + y; }
+ 
+   static int
+   operator()(float x, float y)
+   { return x + y; }
+ };
+ 
+ constexpr auto vInstanceWinsET = create(InstanceWinsET{}); // { dg-error "is not a constant expression" }
+ 
diff -Nrcpad gcc-16-20260208/libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc gcc-16-20260215/libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc
*** gcc-16-20260208/libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc	Sun Feb  8 22:32:17 2026
--- gcc-16-20260215/libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc	Sun Feb 15 22:32:16 2026
*************** void
*** 39,48 ****
  test01()
  {
    using value_type = std::pair<std::pair<X, int>, std::pair<int, X>>;
!   using scoped_alloc
!     = std::scoped_allocator_adaptor<__gnu_test::uneq_allocator<value_type>>;
  
!   const scoped_alloc a(10);
    std::vector<value_type, scoped_alloc> v(a);
    VERIFY( v.get_allocator().get_personality() == a.get_personality() );
  
--- 39,48 ----
  test01()
  {
    using value_type = std::pair<std::pair<X, int>, std::pair<int, X>>;
!   using uneq_alloc = __gnu_test::uneq_allocator<value_type>;
!   using scoped_alloc = std::scoped_allocator_adaptor<uneq_alloc>;
  
!   const scoped_alloc a(uneq_alloc(10));
    std::vector<value_type, scoped_alloc> v(a);
    VERIFY( v.get_allocator().get_personality() == a.get_personality() );
  
*************** void
*** 65,75 ****
  test02()
  {
    using value_type = std::pair<std::pair<X, int>, std::pair<int, X>>;
    using scoped_alloc
!     = std::scoped_allocator_adaptor<__gnu_test::uneq_allocator<value_type>,
! 				    X::allocator_type>;
  
!   const scoped_alloc a(10, 20);
    std::vector<value_type, scoped_alloc> v(a);
    VERIFY( v.get_allocator().get_personality() == a.get_personality() );
  
--- 65,75 ----
  test02()
  {
    using value_type = std::pair<std::pair<X, int>, std::pair<int, X>>;
+   using uneq_alloc = __gnu_test::uneq_allocator<value_type>;
    using scoped_alloc
!     = std::scoped_allocator_adaptor<uneq_alloc, X::allocator_type>;
  
!   const scoped_alloc a(uneq_alloc(10),  X::allocator_type(20));
    std::vector<value_type, scoped_alloc> v(a);
    VERIFY( v.get_allocator().get_personality() == a.get_personality() );
  
diff -Nrcpad gcc-16-20260208/libstdc++-v3/testsuite/20_util/tuple/cons/121771.cc gcc-16-20260215/libstdc++-v3/testsuite/20_util/tuple/cons/121771.cc
*** gcc-16-20260208/libstdc++-v3/testsuite/20_util/tuple/cons/121771.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/libstdc++-v3/testsuite/20_util/tuple/cons/121771.cc	Sun Feb 15 22:32:16 2026
***************
*** 0 ****
--- 1,45 ----
+ // { dg-do compile { target c++17 } }
+ 
+ // Bug 121771 - std::tuple CTAD fails for lvalue reference to function type
+ 
+ #include <tuple>
+ #include <memory>
+ 
+ void func();
+ 
+ std::tuple t(func);
+ std::tuple<void (*)()>& r = t;
+ 
+ struct Explicit {
+     Explicit();
+     explicit Explicit(const Explicit&);
+ } ex;
+ 
+ std::tuple t2(func, 1);
+ std::tuple<void (*)(), int>& r2 = t2;
+ 
+ std::tuple t2x(ex, func);
+ std::tuple<Explicit, void (*)()>& r2x = t2x;
+ 
+ std::tuple t3(1, func, 3);
+ std::tuple<int, void (*)(), int>& r3 = t3;
+ 
+ std::tuple t3x(ex, 2, func);
+ std::tuple<Explicit, int, void (*)()>& r3x = t3x;
+ 
+ std::allocator<int> alloc;
+ 
+ std::tuple ta(std::allocator_arg, alloc, func);
+ std::tuple<void (*)()>& ra = ta;
+ 
+ std::tuple ta2(std::allocator_arg, alloc, func, 1);
+ std::tuple<void (*)(), int>& ra2 = ta2;
+ 
+ std::tuple ta2x(std::allocator_arg, alloc, ex, func);
+ std::tuple<Explicit, void (*)()>& ra2x = ta2x;
+ 
+ std::tuple ta3(std::allocator_arg, alloc, 1, func, 3);
+ std::tuple<int, void (*)(), int>& ra3 = ta3;
+ 
+ std::tuple ta3x(std::allocator_arg, alloc, ex, 2, func);
+ std::tuple<Explicit, int, void (*)()>& ra3x = ta3x;
diff -Nrcpad gcc-16-20260208/libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/123991.cc gcc-16-20260215/libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/123991.cc
*** gcc-16-20260208/libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/123991.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/123991.cc	Sun Feb 15 22:32:16 2026
***************
*** 0 ****
--- 1,56 ----
+ // { dg-do run { target c++17 } }
+ 
+ // Bug 123991 - std::string::compare crashes instead of throwing
+ 
+ #include <string>
+ #include <string_view>
+ #include <stdexcept>
+ #include <testsuite_hooks.h>
+ 
+ void
+ test_compare_3arg()
+ {
+   std::string_view sv;
+   std::string s;
+   static_assert( ! noexcept(s.compare(0, 0, sv)) );
+ #ifdef __cpp_exceptions
+   try
+   {
+     (void) s.compare(1, 0, sv);
+     VERIFY(false);
+   }
+   catch (const std::out_of_range&)
+   { }
+ #endif
+ }
+ 
+ void
+ test_compare_5arg()
+ {
+   std::string_view sv;
+   std::string s;
+   static_assert( ! noexcept(s.compare(0, 0, sv, 0, 0)) );
+ #ifdef __cpp_exceptions
+   try
+   {
+     (void) s.compare(1, 0, sv, 0, 0);
+     VERIFY(false);
+   }
+   catch (const std::out_of_range&)
+   { }
+ 
+   try
+   {
+     (void) s.compare(0, 0, sv, 1, 0);
+     VERIFY(false);
+   }
+   catch (const std::out_of_range&)
+   { }
+ #endif
+ }
+ 
+ int main()
+ {
+   test_compare_3arg();
+   test_compare_5arg();
+ }
diff -Nrcpad gcc-16-20260208/libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/123991.cc gcc-16-20260215/libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/123991.cc
*** gcc-16-20260208/libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/123991.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/123991.cc	Sun Feb 15 22:32:16 2026
***************
*** 0 ****
--- 1,56 ----
+ // { dg-do run { target c++17 } }
+ 
+ // Bug 123991 - std::string::compare crashes instead of throwing
+ 
+ #include <string>
+ #include <string_view>
+ #include <stdexcept>
+ #include <testsuite_hooks.h>
+ 
+ void
+ test_compare_3arg()
+ {
+   std::wstring_view sv;
+   std::wstring s;
+   static_assert( ! noexcept(s.compare(0, 0, sv)) );
+ #ifdef __cpp_exceptions
+   try
+   {
+     (void) s.compare(1, 0, sv);
+     VERIFY(false);
+   }
+   catch (const std::out_of_range&)
+   { }
+ #endif
+ }
+ 
+ void
+ test_compare_5arg()
+ {
+   std::wstring_view sv;
+   std::wstring s;
+   static_assert( ! noexcept(s.compare(0, 0, sv, 0, 0)) );
+ #ifdef __cpp_exceptions
+   try
+   {
+     (void) s.compare(1, 0, sv, 0, 0);
+     VERIFY(false);
+   }
+   catch (const std::out_of_range&)
+   { }
+ 
+   try
+   {
+     (void) s.compare(0, 0, sv, 1, 0);
+     VERIFY(false);
+   }
+   catch (const std::out_of_range&)
+   { }
+ #endif
+ }
+ 
+ int main()
+ {
+   test_compare_3arg();
+   test_compare_5arg();
+ }
diff -Nrcpad gcc-16-20260208/libstdc++-v3/testsuite/28_regex/traits/char/lookup_classname.cc gcc-16-20260215/libstdc++-v3/testsuite/28_regex/traits/char/lookup_classname.cc
*** gcc-16-20260208/libstdc++-v3/testsuite/28_regex/traits/char/lookup_classname.cc	Sun Feb  8 22:32:17 2026
--- gcc-16-20260215/libstdc++-v3/testsuite/28_regex/traits/char/lookup_classname.cc	Sun Feb 15 22:32:16 2026
***************
*** 28,33 ****
--- 28,34 ----
  #include <regex>
  #include <forward_list>
  #include <string.h>
+ #include <ctype.h>
  #include <testsuite_hooks.h>
  
  void
*************** test03()
*** 67,76 ****
--- 68,142 ----
    VERIFY(traits.isctype('C', traits.lookup_classname(s.begin(), s.end(), true)));
  }
  
+ void
+ test04()
+ {
+   // Transform "string" into "StRiNg"
+   auto mix_case = [](std::string s) {
+     int i = 0;
+     for (auto& ch : s)
+       if (++i % 2)
+ 	ch = toupper(ch);
+     return s;
+   };
+ 
+   typedef char CharT;
+   typedef std::regex_traits<CharT> traits;
+   traits t;
+ 
+   auto lookup = [&t](const std::string& s, bool icase) {
+     return t.lookup_classname(s.begin(), s.end(), icase);
+   };
+ 
+   VERIFY( lookup("", false) == 0 );
+   VERIFY( lookup(":::not a valid classname:::", false) == 0 );
+   VERIFY( lookup(":::not a valid classname:::", true) == 0 );
+   VERIFY( lookup("alnu", false) == 0 );
+   VERIFY( lookup("alnumb", false) == 0 );
+   VERIFY( lookup("x", false) == 0 );
+   VERIFY( lookup("di", false) == 0 );
+   VERIFY( lookup("digi", false) == 0 );
+   VERIFY( lookup("digix", false) == 0 );
+   VERIFY( lookup(std::string{"d\0i", 3}, false) == 0 );
+   VERIFY( lookup(std::string{"digit\0", 6}, false) == 0 );
+   VERIFY( lookup(std::string{"digit\0bad", 9}, false) == 0 );
+ 
+   for (std::string cls : { "alnum", "alpha", "blank", "cntrl", "digit",
+ 			   "graph", "lower", "print", "punct", "space",
+ 			   "upper", "xdigit", "d", "s", "w" })
+     {
+       traits::char_class_type val = lookup(cls, false);
+       // val should be non-zero:
+       VERIFY( val != 0 );
+       // val is independent of the case of the name,
+       // i.e. "alpha" and "ALPHA" and "AlPhA" give same result:
+       VERIFY( lookup(mix_case(cls), false) == val );
+ 
+       // Repeat same checks for icase=true.
+       traits::char_class_type ival = lookup(cls, true);
+       VERIFY( ival != 0 );
+       VERIFY( lookup(mix_case(cls), true) == ival );
+ 
+       if (cls == "lower" || cls == "upper") // icase=true should affect value
+ 	{
+ 	  VERIFY( ival != val );
+ 	  VERIFY( ival == lookup("alpha", false) );
+ 	}
+       else
+ 	VERIFY( ival == val );
+ 
+       if (cls == "d")
+ 	VERIFY( val == lookup("digit", false) );
+       else if (cls == "s")
+ 	VERIFY( val == lookup("space", false) );
+     }
+ }
+ 
  int main()
  {
  	test01();
  	test02();
  	test03();
+ 	test04();
  	return 0;
  }
diff -Nrcpad gcc-16-20260208/libstdc++-v3/testsuite/28_regex/traits/wchar_t/lookup_classname.cc gcc-16-20260215/libstdc++-v3/testsuite/28_regex/traits/wchar_t/lookup_classname.cc
*** gcc-16-20260208/libstdc++-v3/testsuite/28_regex/traits/wchar_t/lookup_classname.cc	Sun Feb  8 22:32:17 2026
--- gcc-16-20260215/libstdc++-v3/testsuite/28_regex/traits/wchar_t/lookup_classname.cc	Sun Feb 15 22:32:16 2026
*************** test01()
*** 45,52 ****
--- 45,117 ----
  #undef range
  }
  
+ void
+ test04()
+ {
+   // Transform "string" into "StRiNg"
+   auto mix_case = [](std::wstring s) {
+     int i = 0;
+     for (auto& ch : s)
+       if (++i % 2)
+ 	ch = toupper(ch);
+     return s;
+   };
+ 
+   typedef wchar_t CharT;
+   typedef std::regex_traits<CharT> traits;
+   traits t;
+ 
+   auto lookup = [&t](const std::wstring& s, bool icase) {
+     return t.lookup_classname(s.begin(), s.end(), icase);
+   };
+ 
+   VERIFY( lookup(L"", false) == 0 );
+   VERIFY( lookup(L":::not a valid classname:::", false) == 0 );
+   VERIFY( lookup(L":::not a valid classname:::", true) == 0 );
+   VERIFY( lookup(L"alnu", false) == 0 );
+   VERIFY( lookup(L"alnumb", false) == 0 );
+   VERIFY( lookup(L"x", false) == 0 );
+   VERIFY( lookup(L"di", false) == 0 );
+   VERIFY( lookup(L"digi", false) == 0 );
+   VERIFY( lookup(L"digix", false) == 0 );
+   VERIFY( lookup(std::wstring{L"d\0i", 3}, false) == 0 );
+   VERIFY( lookup(std::wstring{L"digit\0", 6}, false) == 0 );
+   VERIFY( lookup(std::wstring{L"digit\0bad", 9}, false) == 0 );
+ 
+   for (std::wstring cls : { L"alnum", L"alpha", L"blank", L"cntrl", L"digit",
+ 			    L"graph", L"lower", L"print", L"punct", L"space",
+ 			    L"upper", L"xdigit", L"d", L"s", L"w" })
+     {
+       traits::char_class_type val = lookup(cls, false);
+       // val should be non-zero:
+       VERIFY( val != 0 );
+       // val is independent of the case of the name,
+       // i.e. "alpha" and "ALPHA" and "AlPhA" give same result:
+       VERIFY( lookup(mix_case(cls), false) == val );
+ 
+       // Repeat same checks for icase=true.
+       traits::char_class_type ival = lookup(cls, true);
+       VERIFY( ival != 0 );
+       VERIFY( lookup(mix_case(cls), true) == ival );
+ 
+       if (cls == L"lower" || cls == L"upper") // icase=true should affect value
+ 	{
+ 	  VERIFY( ival != val );
+ 	  VERIFY( ival == lookup(L"alpha", false) );
+ 	}
+       else
+ 	VERIFY( ival == val );
+ 
+       if (cls == L"d")
+ 	VERIFY( val == lookup(L"digit", false) );
+       else if (cls == L"s")
+ 	VERIFY( val == lookup(L"space", false) );
+     }
+ }
+ 
  int main()
  {
    test01();
+   test04();
    return 0;
  }
diff -Nrcpad gcc-16-20260208/libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc gcc-16-20260215/libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc
*** gcc-16-20260208/libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc	Sun Feb  8 22:32:17 2026
--- gcc-16-20260215/libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc	Sun Feb 15 22:32:16 2026
***************
*** 1,4 ****
! // { dg-do run { target c++20 } }
  // { dg-require-atomic-cmpxchg-word "" }
  // { dg-add-options libatomic }
  // { dg-additional-options "-fno-tree-sra" }
--- 1,4 ----
! // { dg-do run { target c++11 } }
  // { dg-require-atomic-cmpxchg-word "" }
  // { dg-add-options libatomic }
  // { dg-additional-options "-fno-tree-sra" }
diff -Nrcpad gcc-16-20260208/libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc gcc-16-20260215/libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc
*** gcc-16-20260208/libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260215/libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc	Sun Feb 15 22:32:16 2026
***************
*** 0 ****
--- 1,114 ----
+ // { dg-do run { target c++11 } }
+ // { dg-require-thread-fence "" }
+ // { dg-add-options no_pch }
+ 
+ #include <atomic>
+ #include <cstring>
+ #include <testsuite_hooks.h>
+ 
+ struct TailPadding { int i; char c; };
+ TailPadding ztail{1, 2}; // zeroed-padding
+ constexpr std::atomic<TailPadding> ctail(TailPadding{1,2});
+ std::atomic<TailPadding> gtail(TailPadding{1,2});
+ 
+ struct MidPadding { char c; int x; };
+ MidPadding zmid{1, 2}; // zeroed-padding
+ constexpr std::atomic<MidPadding> cmid(MidPadding{1,2});
+ std::atomic<MidPadding> gmid(MidPadding{1,2});
+ 
+ struct BitPadding { int : 4; int i : 5; int : 4; int j : 5; int : 4;  };
+ BitPadding zbit{1, 2}; // zeroed-padding
+ constexpr std::atomic<BitPadding> cbit(BitPadding{1,2});
+ std::atomic<BitPadding> gbit(BitPadding{1,2});
+ 
+ struct Ctor
+ {
+   Ctor() = default;
+ 
+   constexpr Ctor(char pc, char pi)
+     : c(pc), i(pi), d(pc)
+   {}
+ 
+   char c;
+   int i;
+   char d;
+ };
+ 
+ Ctor zctor{1, 2}; // zeroed-padding
+ constexpr std::atomic<Ctor> cctor(Ctor{1,2});
+ std::atomic<Ctor> gctor(Ctor{1,2});
+ 
+ template<typename T>
+ void test_struct(std::atomic<T>& g, const T& zp)
+ {
+   T const d{3, 4};
+   T t;
+ 
+   std::memcpy(&t, &zp, sizeof(T));
+   VERIFY( g.compare_exchange_strong(t, d) );
+ 
+   static std::atomic<T> st(T{1, 2});
+   std::memcpy(&t, &zp, sizeof(T));
+   VERIFY( st.compare_exchange_strong(t, d) );
+ 
+   thread_local std::atomic<T> tl(T{1, 2});
+   std::memcpy(&t, &zp, sizeof(T));
+   VERIFY( tl.compare_exchange_strong(t, d) );
+ 
+   std::atomic<T> l(T{1, 2});
+   std::memcpy(&t, &zp, sizeof(T));
+   VERIFY( l.compare_exchange_strong(t, d) );
+ 
+   std::atomic<T>* h = new std::atomic<T>(T{1, 2});
+   std::memcpy(&t, &zp, sizeof(T));
+   VERIFY( h->compare_exchange_strong(t, d) );
+   delete h;
+ 
+   constexpr std::atomic<T> cl(T{1, 2});
+ }
+ 
+ #if __cplusplus >= 202002L
+ long double zld(10.5);
+ constexpr std::atomic<long double> cld(10.5);
+ std::atomic<long double> gld(10.5);
+ 
+ template<typename T>
+ void test_floating(std::atomic<T>& g, const T& zp)
+ {
+   T const d = T(7.5);
+   T t;
+ 
+   std::memcpy(&t, &zp, sizeof(T));
+   VERIFY( g.compare_exchange_strong(t, d) );
+ 
+   static std::atomic<T> st(T(10.5));
+   std::memcpy(&t, &zp, sizeof(T));
+   VERIFY( st.compare_exchange_strong(t, d) );
+ 
+   thread_local std::atomic<T> tl(T(10.5));
+   std::memcpy(&t, &zp, sizeof(T));
+   VERIFY( tl.compare_exchange_strong(t, d) );
+ 
+   std::atomic<T> l(T(10.5));
+   std::memcpy(&t, &zp, sizeof(T));
+   VERIFY( l.compare_exchange_strong(t, d) );
+ 
+   std::atomic<T>* h = new std::atomic<T>(T(10.5));
+   std::memcpy(&t, &zp, sizeof(T));
+   VERIFY( h->compare_exchange_strong(t, d) );
+   delete h;
+ 
+   constexpr std::atomic<T> cl(T(10.5));
+ }
+ #endif
+ 
+ int main()
+ {
+   test_struct(gtail, ztail);
+   test_struct(gmid, zmid);
+   test_struct(gbit, zbit);
+   test_struct(gctor, zctor);
+ #if __cplusplus >= 202002L
+   test_floating(gld, zld);
+ #endif
+ }
diff -Nrcpad gcc-16-20260208/libstdc++-v3/testsuite/std/memory/indirect/ctor.cc gcc-16-20260215/libstdc++-v3/testsuite/std/memory/indirect/ctor.cc
*** gcc-16-20260208/libstdc++-v3/testsuite/std/memory/indirect/ctor.cc	Sun Feb  8 22:32:17 2026
--- gcc-16-20260215/libstdc++-v3/testsuite/std/memory/indirect/ctor.cc	Sun Feb 15 22:32:16 2026
***************
*** 16,24 ****
  
  using __gnu_test::uneq_allocator;
  using UneqAlloc = uneq_allocator<int>;
! using ScopedAlloc = std::scoped_allocator_adaptor<
!   uneq_allocator<std::vector<int, UneqAlloc>>,
!   UneqAlloc>;
  
  struct Obj
  {
--- 16,24 ----
  
  using __gnu_test::uneq_allocator;
  using UneqAlloc = uneq_allocator<int>;
! using UneqVecAlloc = uneq_allocator<std::vector<int, UneqAlloc>>;
! using ScopedAlloc
!   = std::scoped_allocator_adaptor<UneqVecAlloc, UneqAlloc>;
  
  struct Obj
  {
*************** test_default_ctor()
*** 61,69 ****
    if (std::is_constant_evaluated())
      return;
  
    // Object is constructed using allocator-aware constructor.
    std::indirect<std::vector<int, UneqAlloc>, ScopedAlloc>
!     i3(std::allocator_arg, ScopedAlloc(11, 22));
    VERIFY( i3->empty() );
    VERIFY( i3->get_allocator().get_personality() == 22 );
    VERIFY( i3.get_allocator().get_personality() == 11 );
--- 61,70 ----
    if (std::is_constant_evaluated())
      return;
  
+   const ScopedAlloc scopedAlloc(UneqVecAlloc(11), UneqAlloc(22));
    // Object is constructed using allocator-aware constructor.
    std::indirect<std::vector<int, UneqAlloc>, ScopedAlloc>
!     i3(std::allocator_arg, scopedAlloc);
    VERIFY( i3->empty() );
    VERIFY( i3->get_allocator().get_personality() == 22 );
    VERIFY( i3.get_allocator().get_personality() == 11 );
*************** test_forwarding_ctor()
*** 99,115 ****
    if (std::is_constant_evaluated())
      return;
  
    std::vector<int, UneqAlloc> v{1, 2, 3, 4, 5};
    // Object is constructed using allocator-aware constructor.
    std::indirect<std::vector<int, UneqAlloc>, ScopedAlloc>
!     i7(std::allocator_arg, ScopedAlloc(11, 22), v);
    VERIFY( i7->size() == 5  );
    VERIFY( v.size() == 5 );
    VERIFY( i7->get_allocator().get_personality() == 22 );
    VERIFY( i7.get_allocator().get_personality() == 11 );
  
    std::indirect<std::vector<int, UneqAlloc>, ScopedAlloc>
!     i8(std::allocator_arg, ScopedAlloc(11, 22), std::move(v));
    VERIFY( i8->size() == 5  );
    VERIFY( v.size() == 0 );
    VERIFY( i8->get_allocator().get_personality() == 22 );
--- 100,117 ----
    if (std::is_constant_evaluated())
      return;
  
+   const ScopedAlloc scopedAlloc(UneqVecAlloc(11), UneqAlloc(22));
    std::vector<int, UneqAlloc> v{1, 2, 3, 4, 5};
    // Object is constructed using allocator-aware constructor.
    std::indirect<std::vector<int, UneqAlloc>, ScopedAlloc>
!     i7(std::allocator_arg, scopedAlloc, v);
    VERIFY( i7->size() == 5  );
    VERIFY( v.size() == 5 );
    VERIFY( i7->get_allocator().get_personality() == 22 );
    VERIFY( i7.get_allocator().get_personality() == 11 );
  
    std::indirect<std::vector<int, UneqAlloc>, ScopedAlloc>
!     i8(std::allocator_arg, scopedAlloc, std::move(v));
    VERIFY( i8->size() == 5  );
    VERIFY( v.size() == 0 );
    VERIFY( i8->get_allocator().get_personality() == 22 );
*************** test_inplace_ctor()
*** 130,143 ****
    VERIFY( i2->c[1] == 0 );
  
    std::indirect<Obj, uneq_allocator<Obj>>
!     i3(std::allocator_arg, 42, std::in_place);
    VERIFY( i3->i == 0 );
    VERIFY( i3->c[0] == 0 );
    VERIFY( i3->c[1] == 0 );
    VERIFY( i3.get_allocator().get_personality() == 42 );
  
!   std::indirect<Obj,  uneq_allocator<Obj>>
!     i4(std::allocator_arg, 42, std::in_place, 10);
    VERIFY( i4->i == 10 );
    VERIFY( i4->c[0] == 0 );
    VERIFY( i4->c[1] == 0 );
--- 132,147 ----
    VERIFY( i2->c[1] == 0 );
  
    std::indirect<Obj, uneq_allocator<Obj>>
!     i3(std::allocator_arg, uneq_allocator<Obj>(42),
!        std::in_place);
    VERIFY( i3->i == 0 );
    VERIFY( i3->c[0] == 0 );
    VERIFY( i3->c[1] == 0 );
    VERIFY( i3.get_allocator().get_personality() == 42 );
  
!   std::indirect<Obj, uneq_allocator<Obj>>
!     i4(std::allocator_arg, uneq_allocator<Obj>(42),
!        std::in_place, 10);
    VERIFY( i4->i == 10 );
    VERIFY( i4->c[0] == 0 );
    VERIFY( i4->c[1] == 0 );
*************** test_inplace_ctor()
*** 174,188 ****
    if (std::is_constant_evaluated())
      return;
  
    std::indirect<std::vector<int, UneqAlloc>, ScopedAlloc>
!     i14(std::allocator_arg, ScopedAlloc(11, 22),
  	std::in_place);
    VERIFY( i14->size() == 0 );
    VERIFY( i14->get_allocator().get_personality() == 22 );
    VERIFY( i14.get_allocator().get_personality() == 11 );
  
    std::indirect<std::vector<int, UneqAlloc>, ScopedAlloc>
!     i15(std::allocator_arg, ScopedAlloc(11, 22),
  	std::in_place, 5, 13);
    VERIFY( i15->size() == 5 );
    VERIFY( i15->at(0) == 13 );
--- 178,193 ----
    if (std::is_constant_evaluated())
      return;
  
+   const ScopedAlloc scopedAlloc(UneqVecAlloc(11), UneqAlloc(22));
    std::indirect<std::vector<int, UneqAlloc>, ScopedAlloc>
!     i14(std::allocator_arg, scopedAlloc,
  	std::in_place);
    VERIFY( i14->size() == 0 );
    VERIFY( i14->get_allocator().get_personality() == 22 );
    VERIFY( i14.get_allocator().get_personality() == 11 );
  
    std::indirect<std::vector<int, UneqAlloc>, ScopedAlloc>
!     i15(std::allocator_arg, scopedAlloc,
  	std::in_place, 5, 13);
    VERIFY( i15->size() == 5 );
    VERIFY( i15->at(0) == 13 );
*************** test_inplace_ctor()
*** 190,196 ****
    VERIFY( i15.get_allocator().get_personality() == 11 );
  
    std::indirect<std::vector<int, UneqAlloc>, ScopedAlloc>
!     i16(std::allocator_arg, ScopedAlloc(11, 22),
  	std::in_place, {1, 2, 3, 4});
    VERIFY( i16->size() == 4 );
    VERIFY( i16->at(2) == 3 );
--- 195,201 ----
    VERIFY( i15.get_allocator().get_personality() == 11 );
  
    std::indirect<std::vector<int, UneqAlloc>, ScopedAlloc>
!     i16(std::allocator_arg, scopedAlloc,
  	std::in_place, {1, 2, 3, 4});
    VERIFY( i16->size() == 4 );
    VERIFY( i16->at(2) == 3 );
diff -Nrcpad gcc-16-20260208/libstdc++-v3/testsuite/std/memory/polymorphic/ctor.cc gcc-16-20260215/libstdc++-v3/testsuite/std/memory/polymorphic/ctor.cc
*** gcc-16-20260208/libstdc++-v3/testsuite/std/memory/polymorphic/ctor.cc	Sun Feb  8 22:32:17 2026
--- gcc-16-20260215/libstdc++-v3/testsuite/std/memory/polymorphic/ctor.cc	Sun Feb 15 22:32:16 2026
***************
*** 16,24 ****
  
  using __gnu_test::uneq_allocator;
  using UneqAlloc = uneq_allocator<int>;
! using ScopedAlloc = std::scoped_allocator_adaptor<
!   uneq_allocator<std::vector<int, UneqAlloc>>,
!   UneqAlloc>;
  
  struct Obj
  {
--- 16,24 ----
  
  using __gnu_test::uneq_allocator;
  using UneqAlloc = uneq_allocator<int>;
! using UneqVecAlloc = uneq_allocator<std::vector<int, UneqAlloc>>;
! using ScopedAlloc
!   = std::scoped_allocator_adaptor<UneqVecAlloc, UneqAlloc>;
  
  struct Obj
  {
*************** test_default_ctor()
*** 48,56 ****
    if (std::is_constant_evaluated())
      return;
  
    // Object is constructed using allocator-aware constructor.
    std::polymorphic<std::vector<int, UneqAlloc>, ScopedAlloc>
!     i3(std::allocator_arg, ScopedAlloc(11, 22));
    VERIFY( i3->empty() );
    VERIFY( i3->get_allocator().get_personality() == 22 );
    VERIFY( i3.get_allocator().get_personality() == 11 );
--- 48,57 ----
    if (std::is_constant_evaluated())
      return;
  
+   const ScopedAlloc scopedAlloc(UneqVecAlloc(11), UneqAlloc(22));
    // Object is constructed using allocator-aware constructor.
    std::polymorphic<std::vector<int, UneqAlloc>, ScopedAlloc>
!     i3(std::allocator_arg, scopedAlloc);
    VERIFY( i3->empty() );
    VERIFY( i3->get_allocator().get_personality() == 22 );
    VERIFY( i3.get_allocator().get_personality() == 11 );
*************** test_forwarding_ctor()
*** 82,98 ****
    if (std::is_constant_evaluated())
      return;
  
    std::vector<int, UneqAlloc> v{1, 2, 3, 4, 5};
    // Object is constructed using allocator-aware constructor.
    std::polymorphic<std::vector<int, UneqAlloc>, ScopedAlloc>
!     i7(std::allocator_arg, ScopedAlloc(11, 22), v);
    VERIFY( i7->size() == 5  );
    VERIFY( v.size() == 5 );
    VERIFY( i7->get_allocator().get_personality() == 22 );
    VERIFY( i7.get_allocator().get_personality() == 11 );
  
    std::polymorphic<std::vector<int, UneqAlloc>, ScopedAlloc>
!     i8(std::allocator_arg, ScopedAlloc(11, 22), std::move(v));
    VERIFY( i8->size() == 5  );
    VERIFY( v.size() == 0 );
    VERIFY( i8->get_allocator().get_personality() == 22 );
--- 83,100 ----
    if (std::is_constant_evaluated())
      return;
  
+   const ScopedAlloc scopedAlloc(UneqVecAlloc(11), UneqAlloc(22));
    std::vector<int, UneqAlloc> v{1, 2, 3, 4, 5};
    // Object is constructed using allocator-aware constructor.
    std::polymorphic<std::vector<int, UneqAlloc>, ScopedAlloc>
!     i7(std::allocator_arg, scopedAlloc, v);
    VERIFY( i7->size() == 5  );
    VERIFY( v.size() == 5 );
    VERIFY( i7->get_allocator().get_personality() == 22 );
    VERIFY( i7.get_allocator().get_personality() == 11 );
  
    std::polymorphic<std::vector<int, UneqAlloc>, ScopedAlloc>
!     i8(std::allocator_arg, scopedAlloc, std::move(v));
    VERIFY( i8->size() == 5  );
    VERIFY( v.size() == 0 );
    VERIFY( i8->get_allocator().get_personality() == 22 );
*************** test_inplace_ctor()
*** 113,126 ****
    VERIFY( i2->c[1] == 0 );
  
    std::polymorphic<Obj, uneq_allocator<Obj>>
!     i3(std::allocator_arg, 42, std::in_place_type<Obj>);
    VERIFY( i3->i == 0 );
    VERIFY( i3->c[0] == 0 );
    VERIFY( i3->c[1] == 0 );
    VERIFY( i3.get_allocator().get_personality() == 42 );
  
    std::polymorphic<Obj,  uneq_allocator<Obj>>
!     i4(std::allocator_arg, 42, std::in_place_type<Obj>, 10);
    VERIFY( i4->i == 10 );
    VERIFY( i4->c[0] == 0 );
    VERIFY( i4->c[1] == 0 );
--- 115,130 ----
    VERIFY( i2->c[1] == 0 );
  
    std::polymorphic<Obj, uneq_allocator<Obj>>
!     i3(std::allocator_arg, uneq_allocator<Obj>(42),
!        std::in_place_type<Obj>);
    VERIFY( i3->i == 0 );
    VERIFY( i3->c[0] == 0 );
    VERIFY( i3->c[1] == 0 );
    VERIFY( i3.get_allocator().get_personality() == 42 );
  
    std::polymorphic<Obj,  uneq_allocator<Obj>>
!     i4(std::allocator_arg, uneq_allocator<Obj>(42),
!        std::in_place_type<Obj>, 10);
    VERIFY( i4->i == 10 );
    VERIFY( i4->c[0] == 0 );
    VERIFY( i4->c[1] == 0 );
*************** test_inplace_ctor()
*** 160,174 ****
    if (std::is_constant_evaluated())
      return;
  
    std::polymorphic<std::vector<int, UneqAlloc>, ScopedAlloc>
!     i14(std::allocator_arg, ScopedAlloc(11, 22),
  	std::in_place_type<std::vector<int, UneqAlloc>>);
    VERIFY( i14->size() == 0 );
    VERIFY( i14->get_allocator().get_personality() == 22 );
    VERIFY( i14.get_allocator().get_personality() == 11 );
  
    std::polymorphic<std::vector<int, UneqAlloc>, ScopedAlloc>
!     i15(std::allocator_arg, ScopedAlloc(11, 22),
  	std::in_place_type<std::vector<int, UneqAlloc>>, 5, 13);
    VERIFY( i15->size() == 5 );
    VERIFY( i15->at(0) == 13 );
--- 164,179 ----
    if (std::is_constant_evaluated())
      return;
  
+   const ScopedAlloc scopedAlloc(UneqVecAlloc(11), UneqAlloc(22));
    std::polymorphic<std::vector<int, UneqAlloc>, ScopedAlloc>
!     i14(std::allocator_arg, scopedAlloc,
  	std::in_place_type<std::vector<int, UneqAlloc>>);
    VERIFY( i14->size() == 0 );
    VERIFY( i14->get_allocator().get_personality() == 22 );
    VERIFY( i14.get_allocator().get_personality() == 11 );
  
    std::polymorphic<std::vector<int, UneqAlloc>, ScopedAlloc>
!     i15(std::allocator_arg, scopedAlloc,
  	std::in_place_type<std::vector<int, UneqAlloc>>, 5, 13);
    VERIFY( i15->size() == 5 );
    VERIFY( i15->at(0) == 13 );
*************** test_inplace_ctor()
*** 176,182 ****
    VERIFY( i15.get_allocator().get_personality() == 11 );
  
    std::polymorphic<std::vector<int, UneqAlloc>, ScopedAlloc>
!     i16(std::allocator_arg, ScopedAlloc(11, 22),
  	std::in_place_type<std::vector<int, UneqAlloc>>, {1, 2, 3, 4});
    VERIFY( i16->size() == 4 );
    VERIFY( i16->at(2) == 3 );
--- 181,187 ----
    VERIFY( i15.get_allocator().get_personality() == 11 );
  
    std::polymorphic<std::vector<int, UneqAlloc>, ScopedAlloc>
!     i16(std::allocator_arg, scopedAlloc,
  	std::in_place_type<std::vector<int, UneqAlloc>>, {1, 2, 3, 4});
    VERIFY( i16->size() == 4 );
    VERIFY( i16->at(2) == 3 );
diff -Nrcpad gcc-16-20260208/libstdc++-v3/testsuite/std/memory/polymorphic/ctor_poly.cc gcc-16-20260215/libstdc++-v3/testsuite/std/memory/polymorphic/ctor_poly.cc
*** gcc-16-20260208/libstdc++-v3/testsuite/std/memory/polymorphic/ctor_poly.cc	Sun Feb  8 22:32:17 2026
--- gcc-16-20260215/libstdc++-v3/testsuite/std/memory/polymorphic/ctor_poly.cc	Sun Feb 15 22:32:16 2026
*************** test_forwarding_ctor()
*** 129,144 ****
    if (std::is_constant_evaluated())
      return;
  
    const VecDerived<int, UneqAlloc> v{1, 2, 3, 4, 5};
    // Object is constructed using allocator-aware constructor.
    std::polymorphic<Base, ScopedAlloc>
!     i5(std::allocator_arg, ScopedAlloc(11, 22), v);
    VERIFY( *i5 == v );
    VERIFY( i5->get_personality() == 22 );
    VERIFY( i5.get_allocator().get_personality() == 11 );
  
    std::polymorphic<Base, ScopedAlloc>
!     i6(std::allocator_arg, ScopedAlloc(11, 22), auto(v));
    VERIFY( *i6 == v  );
    VERIFY( i6->get_personality() == 22 );
    VERIFY( i6.get_allocator().get_personality() == 11 );
--- 129,145 ----
    if (std::is_constant_evaluated())
      return;
  
+   const ScopedAlloc scopedAlloc(uneq_allocator<Base>(11), UneqAlloc(22));
    const VecDerived<int, UneqAlloc> v{1, 2, 3, 4, 5};
    // Object is constructed using allocator-aware constructor.
    std::polymorphic<Base, ScopedAlloc>
!     i5(std::allocator_arg, scopedAlloc, v);
    VERIFY( *i5 == v );
    VERIFY( i5->get_personality() == 22 );
    VERIFY( i5.get_allocator().get_personality() == 11 );
  
    std::polymorphic<Base, ScopedAlloc>
!     i6(std::allocator_arg, scopedAlloc, auto(v));
    VERIFY( *i6 == v  );
    VERIFY( i6->get_personality() == 22 );
    VERIFY( i6.get_allocator().get_personality() == 11 );
*************** test_inplace_ctor()
*** 156,168 ****
    VERIFY( i2->get_personality() == -2 );
  
    std::polymorphic<Base, uneq_allocator<Base>>
!     i3(std::allocator_arg, 42, std::in_place_type<ObjDerived>);
    VERIFY( *i3 == ObjDerived() );
    VERIFY( i3->get_personality() == -2 );
    VERIFY( i3.get_allocator().get_personality() == 42 );
  
    std::polymorphic<Base, uneq_allocator<Base>>
!     i4(std::allocator_arg, 42, std::in_place_type<ObjDerived>, 10, 20, 30);
    VERIFY( *i4 == ObjDerived(10, 20, 30) );
    VERIFY( i4->get_personality() == -2 );
    VERIFY( i4.get_allocator().get_personality() == 42 );
--- 157,171 ----
    VERIFY( i2->get_personality() == -2 );
  
    std::polymorphic<Base, uneq_allocator<Base>>
!     i3(std::allocator_arg, uneq_allocator<Base>(42),
!        std::in_place_type<ObjDerived>);
    VERIFY( *i3 == ObjDerived() );
    VERIFY( i3->get_personality() == -2 );
    VERIFY( i3.get_allocator().get_personality() == 42 );
  
    std::polymorphic<Base, uneq_allocator<Base>>
!     i4(std::allocator_arg, uneq_allocator<Base>(42),
!        std::in_place_type<ObjDerived>, 10, 20, 30);
    VERIFY( *i4 == ObjDerived(10, 20, 30) );
    VERIFY( i4->get_personality() == -2 );
    VERIFY( i4.get_allocator().get_personality() == 42 );
*************** test_inplace_ctor()
*** 189,210 ****
    if (std::is_constant_evaluated())
      return;
  
    std::polymorphic<Base, ScopedAlloc>
!     i8(std::allocator_arg, ScopedAlloc(11, 22),
  	std::in_place_type<VecDerived<int, UneqAlloc>>);
    VERIFY( *i8 == ze );
    VERIFY( i8->get_personality() == 22 );
    VERIFY( i8.get_allocator().get_personality() == 11 );
  
    std::polymorphic<Base, ScopedAlloc>
!     i9(std::allocator_arg, ScopedAlloc(11, 22),
         std::in_place_type<VecDerived<int, UneqAlloc>>, 5, 13);
    VERIFY( *i9 == fe );
    VERIFY( i9->get_personality() == 22 );
    VERIFY( i9.get_allocator().get_personality() == 11 );
  
    std::polymorphic<Base, ScopedAlloc>
!     i10(std::allocator_arg, ScopedAlloc(11, 22),
  	std::in_place_type<VecDerived<int, UneqAlloc>>, {1, 2, 3, 4});
    VERIFY( *i10 == il );
    VERIFY( i10->get_personality() == 22 );
--- 192,214 ----
    if (std::is_constant_evaluated())
      return;
  
+   const ScopedAlloc scopedAlloc(uneq_allocator<Base>(11), UneqAlloc(22));
    std::polymorphic<Base, ScopedAlloc>
!     i8(std::allocator_arg, scopedAlloc,
  	std::in_place_type<VecDerived<int, UneqAlloc>>);
    VERIFY( *i8 == ze );
    VERIFY( i8->get_personality() == 22 );
    VERIFY( i8.get_allocator().get_personality() == 11 );
  
    std::polymorphic<Base, ScopedAlloc>
!     i9(std::allocator_arg, scopedAlloc,
         std::in_place_type<VecDerived<int, UneqAlloc>>, 5, 13);
    VERIFY( *i9 == fe );
    VERIFY( i9->get_personality() == 22 );
    VERIFY( i9.get_allocator().get_personality() == 11 );
  
    std::polymorphic<Base, ScopedAlloc>
!     i10(std::allocator_arg, scopedAlloc,
  	std::in_place_type<VecDerived<int, UneqAlloc>>, {1, 2, 3, 4});
    VERIFY( *i10 == il );
    VERIFY( i10->get_personality() == 22 );
diff -Nrcpad gcc-16-20260208/libstdc++-v3/testsuite/util/testsuite_allocator.h gcc-16-20260215/libstdc++-v3/testsuite/util/testsuite_allocator.h
*** gcc-16-20260208/libstdc++-v3/testsuite/util/testsuite_allocator.h	Sun Feb  8 22:32:18 2026
--- gcc-16-20260215/libstdc++-v3/testsuite/util/testsuite_allocator.h	Sun Feb 15 22:32:16 2026
*************** namespace __gnu_test
*** 332,338 ****
        uneq_allocator() _GLIBCXX_USE_NOEXCEPT
        : personality(0) { }
  
!       _GLIBCXX_CONSTEXPR
        uneq_allocator(int person) _GLIBCXX_USE_NOEXCEPT
        : personality(person) { }
  
--- 332,338 ----
        uneq_allocator() _GLIBCXX_USE_NOEXCEPT
        : personality(0) { }
  
!       _GLIBCXX_CONSTEXPR explicit
        uneq_allocator(int person) _GLIBCXX_USE_NOEXCEPT
        : personality(person) { }
  
